<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>YAGI BLOG</title>
    <link>https://www.yuyagishita.com/</link>
    <description>Recent content on YAGI BLOG</description>
    <image>
      <title>YAGI BLOG</title>
      <url>https://www.yuyagishita.com/images/top.png</url>
      <link>https://www.yuyagishita.com/images/top.png</link>
    </image>
    <generator>Hugo -- 0.152.2</generator>
    <language>en</language>
    <lastBuildDate>Sun, 18 Jan 2026 22:40:52 +0900</lastBuildDate>
    <atom:link href="https://www.yuyagishita.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Obsidian&#43;Claude Code&#43;Neovimで運用始めた</title>
      <link>https://www.yuyagishita.com/posts/20260118/</link>
      <pubDate>Sun, 18 Jan 2026 22:06:56 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20260118/</guid>
      <description>&lt;p&gt;僕はObsidianを2024年ぐらいから使っている。メモアプリは色々と使ってみたけど、使うならObsidian、Apple純正メモ、Google Keepのどれかかなと思っている。メモアプリは色々と書き溜めると自分の資産になり生活の必須アイテムになるので、Evernoteみたいに改悪されると非常に苦しくなる。将来的なサービスの継続性や使いやすさを考えた結果、ビックテックが運用しているアプリもしくは、通常のMarkdownと互換性のあるObsidianを使うことにしている。&lt;/p&gt;
&lt;p&gt;今回は、Obsidianの使い方に変化が最近あるため、それらについて記事を書いた。&lt;/p&gt;
&lt;h2 id=&#34;以前の使い方&#34;&gt;以前の使い方&lt;/h2&gt;
&lt;p&gt;基本的には標準的な使い方をしていたと思う。Obsidianアプリをインストールして、便利なプラグインをいれてデイリーノートやライフハックや目標などを自分の人生に関わることをディレクトリごとに分け、Vimモードで利用するといった感じ。ローカルオンリーで動作することで高セキュリティというのも一つのメリットだと思うが、複数端末で利用して都度メモれるようにしたかったので、同期機能を使っている。
細かい話をすると、ディレクトリでカテゴリを表現して、横断的な内容はタグつけをする。それぞれのカテゴリでMOCを作るといった運用をしている。あとは、個人情報は極力書かないようにしている。データに残している時点で流出の危険性は常につきまとう。&lt;/p&gt;
&lt;h2 id=&#34;使い方の変化&#34;&gt;使い方の変化&lt;/h2&gt;
&lt;p&gt;PCで操作するときは、Obsidianアプリは起動しない。Neovimで保管庫を開いて、sidekick.nvimでClaude Codeを起動する。こうすることで、ちょっとめんどくさいファイル作成やまとまりのない文章をAIにまとめて記載してもらっている。この使い方で一番便利だと思ったことは、過去の自分のドキュメントを分析させて、思考の傾向や今後の行動指針などのドラフトを作ってもらうことができる。この使い方は自分の脳内情報を文書化すればするほど、より分析ができ、より成長できるのではと思っている。
ただ、Claudeに自身の様々な情報を学習させてしまうことになってしまうため、この使い方大丈夫か？とも思っている。とはいえ、すでにブラウザでClaudeを使うときに、個人情報に近しい内容の会話もしているので、AI時代のいまある程度は仕方ないとも思う。&lt;/p&gt;
&lt;p&gt;Claude Codeによるサポートのおかげで、Obsidianアプリの機能を使わないとめんどくさい操作をしなくても、Neovimで全部完結できるのは嬉しい。NeovimのプラグインでObsidianのもあったが、若干使いにくくてやめてしまっていた。&lt;/p&gt;
&lt;h2 id=&#34;さいごに&#34;&gt;さいごに&lt;/h2&gt;
&lt;p&gt;AIにどうやって協業させるかを最近よく考える。AIに自分の仕事を奪われるといったネガティブなイメージをもっていても仕方がないので、ポジティブに変換して時代についていきたい。
ちなみに、このブログはAIをまったく頼らずに書いている。AIを使ったごみ記事でブログを運営する価値は少ないと思っているし、自分にとっては自分の言葉で作ることに価値があると思っている。仕事のドキュメントではごりごり使っている。本当に便利。&lt;/p&gt;</description>
    </item>
    <item>
      <title>開発環境現状確認2026</title>
      <link>https://www.yuyagishita.com/posts/20260115/</link>
      <pubDate>Thu, 15 Jan 2026 23:21:25 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20260115/</guid>
      <description>&lt;p&gt;最近、いろんな方が開発環境の記事をあげていたので、自分も書いてみる。&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&#34;os&#34;&gt;OS&lt;/h2&gt;
&lt;p&gt;個人ではArch Linux、会社ではMacOSを利用している。
Windowsは4年程度さわっていないので、Windowsの環境構築の質問をされたときに、答えられるか冷や汗をかくことがある。&lt;/p&gt;
&lt;p&gt;Arch LinuxはデスクトップにHyprlandを使っていて、タイル型にもだいぶ慣れた。僕はPCゲームをやらないし、ブラウザとObsidianと開発ができれば問題ないので、今後もメイン機はLinuxのなにかしらだと思う。&lt;/p&gt;
&lt;h2 id=&#34;ウィンドウマネージャー&#34;&gt;ウィンドウマネージャー&lt;/h2&gt;
&lt;p&gt;Hyprland。タイル型めっちゃ好き。軽量だし、ほとんどマウス操作せずに大体のことができる。
一時期はGNOMEじゃないと動かないゲームがあったりして、二刀流だったけど、いまはHyprland一択になっている。
ぜひ、タイル型に興味がでた人は検索してみてほしい。&lt;/p&gt;
&lt;h2 id=&#34;エディタ&#34;&gt;エディタ&lt;/h2&gt;
&lt;p&gt;Neovim。ここ数年はVSCodeもIntelliJもほとんど使っていない。
たまにScalaを書くときでもLSPのおかげでNeovimでなんとかなっている。
Neovimは非常に気に入っていてこれを乗り換えることはほとんどないと思う。いままで自力でなんとかキーマップとか覚えていて、体系的にVimを学んだことがないので、どっかで学びたい。
基本的にNeovim推奨のプラグインたちを利用しているはず？？&lt;/p&gt;
&lt;h2 id=&#34;ターミナル&#34;&gt;ターミナル&lt;/h2&gt;
&lt;p&gt;WezTerm。基本的にはNeovimを起動してからあれこれするので、WezTermの機能を使っていない。一応、tmux風な&lt;code&gt;&amp;lt;C-b&amp;gt;&lt;/code&gt;をLeaderに設定している。&lt;/p&gt;
&lt;h2 id=&#34;コーディングエージェント&#34;&gt;コーディングエージェント&lt;/h2&gt;
&lt;p&gt;Claude Code。Anthropicについていけばいいのではと去年あたりから思いProプランを契約し続けている。
会社ではGemini CLIをつかったりもしていて、Claude or Geminiっていう感じ。
ただ、Sub agentsとかSkillsとか全然使いこなせていないので、将来的なAIとの付き合い方を考えながら、慣れていきたいと思っている。&lt;/p&gt;
&lt;h2 id=&#34;シェル&#34;&gt;シェル&lt;/h2&gt;
&lt;p&gt;zsh。一時期はfishを使っていたが、zshの方が運用していて安定感ありそうとかそんな理由で乗り換えた気がする。&lt;/p&gt;
&lt;h2 id=&#34;ブラウザ&#34;&gt;ブラウザ&lt;/h2&gt;
&lt;p&gt;個人はFirefox、会社ではVivaldi。Vivaldiは最初は色々とカスタムしていたが、今となっては特になにもしていない。普通にChromeで良さそうだなと思っている。最近、Appleから本格的に離れようと思っていて、タブレットもAndroidの格安中華タブを買った。となるとGoogle製品に寄せておけばよさそうかなと思っている。&lt;/p&gt;
&lt;h2 id=&#34;dotfiles&#34;&gt;dotfiles&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/yuyagishita/dotfiles&#34;&gt;dotfiles&lt;/a&gt;。
なるべく、ローカル環境と同じようなディレクトリ構成にしていて、シンボリックリンクをはればいい感じに動作するようにしている。
細かい設定を入れられていないのと、セットアップのシェルを雑にClaude作ってもらっていて検証をしていなかったりするので、まだまだ改善の余地がある。&lt;/p&gt;
&lt;h2 id=&#34;メモ&#34;&gt;メモ&lt;/h2&gt;
&lt;p&gt;Obsidian。基本的にメモとして残したい内容はObsidianに書くようにしている。
このアプリ非常に便利で、重宝している。P2P機能が実験的に追加されているので、これが本格的に利用可能状態になったら、端末ごとのデータ連携をこれにしたい。&lt;/p&gt;
&lt;p&gt;それと、Neovimなんかと同じで、自分の頭の中をどう表現しようかなとあれこれいじくるのは、盆栽感があって楽しい。こういった楽しいと思える作業は積極的にやりたい。&lt;/p&gt;
&lt;h2 id=&#34;キーボード&#34;&gt;キーボード&lt;/h2&gt;
&lt;p&gt;HHKB Professional HYBRID Type-SのUS配列黒。Kinesisの分割キーボードを触ってみたいと数年前に思ったけど、高すぎて断念したまま。上司にLofreeのUS配列をもらったりしたけど、HHKBはいまのところは一番好き。
この便利なキー配列になれたらもう他に浮気できない人は多いはず。
昔にこんな記事を書いていた。懐かしい。
&lt;a href=&#34;https://www.yuyagishita.com/review/gadget/hhkb-professional-hybrid-type-s/&#34;&gt;「HHKB Professional HYBRID Type-S」こいつは最高かもしれない&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;AIコーディングがターミナルで活躍するようになっていて、ターミナルに閉じこもっていたのが、意外と正解？だったのかもしれない。dotfilesは盆栽みたいな表現をよく見かけるけど、盆栽をいじる人はこういう気持ちなのかな？実際に盆栽+dotfilesをいじる人がいたら話を聞いてみたい。&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;k0kubunさんの&lt;a href=&#34;https://k0kubun.hatenablog.com/entry/development-environment-2026&#34;&gt;記事&lt;/a&gt;を見て書き始めた。似たような構成にさせていただいた。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>sidekick.nvimの導入をした</title>
      <link>https://www.yuyagishita.com/posts/20260107/</link>
      <pubDate>Wed, 07 Jan 2026 23:07:56 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20260107/</guid>
      <description>&lt;p&gt;昨日、&lt;a href=&#34;https://github.com/folke/sidekick.nvim&#34;&gt;sidekick.nvim&lt;/a&gt;を導入したので感想など書く。&lt;/p&gt;
&lt;h2 id=&#34;導入時に気になったこと&#34;&gt;導入時に気になったこと&lt;/h2&gt;
&lt;p&gt;このプラグインをいれるときに、2つの設定がわからなかった。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;opts.nes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;opts.cli.mux&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;opts.nes&lt;/code&gt;のNESとは、Next Edit Suggestionsの略らしい。
GitHub Copilotが提供する、ファイル全体を解析して大規模なコード変更を提案する機能らしい。
AIが流行り始めたときによく見たCopilotの補完をより強化した感じのものらしい。現状だとこの設定を使えるのはCopilotのみらしく、自分の場合はCopilotは使っていないので、無効にしておいた。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;opts.cli.mux&lt;/code&gt;とは、tmuxやzellijを利用して、チャットのセッションを保持するというものらしい。
たしかにチャットの途中でNeovimを閉じると消えてしまうのは使い勝手が悪いかもしれない。だけど、個人的にはWezterm+Neovimを使っていて、これのためだけにtmuxをいれたくないので、これも無効にした。Claude Code初心者のため徐々に慣れていってセッション管理が必要になったらまた考える。&lt;/p&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;p&gt;現状のAI活用はターミナルで操作するのが色んな面で楽になっている。ターミナルで操作するなら、Neovim内で完結させる。なんて美しいのか。今後もAIxNeovimはアップデートしていきたい。ちなみに、こんな感じになった。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;sidekick-demo&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/posts/20260107/20260107-233052_grim_area.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gateway APIについて学んだ</title>
      <link>https://www.yuyagishita.com/posts/20260105/</link>
      <pubDate>Mon, 05 Jan 2026 17:24:02 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20260105/</guid>
      <description>&lt;p&gt;あけましておめでとうございます。本年はアウトプットの数を増やすという目標のもと、さっそくブログの更新をする。
年末年始は友人・家族と会えたし、飲みすぎないようにしたおかげで溜まってた本の解消やBLEACH全巻読んだりと充実できた。&lt;/p&gt;
&lt;p&gt;去年、学んだk8sのGateway APIについて記事を書く。&lt;/p&gt;
&lt;h2 id=&#34;gateway-apiとは&#34;&gt;Gateway APIとは&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Gateway APIは動的なインフラストラクチャの展開と高度なトラフィックルーティングを提供するAPIの種類のファミリーです。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;とのこと。これだけだとわかりにくいが、要は&lt;strong&gt;k8sへの通信を担うLBをコード化して自動管理しよう&lt;/strong&gt;っていう認識であっていると思う。詳しくは、以下リンクでk8sやGCPの公式ドキュメントをみると理解が深まると思う。特に、GCPのドキュメントは具体的にどのリソースと紐づくのがわかりやすいので、GCPを知っている人はこっちを読むのをおすすめする。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kubernetes.io/ja/docs/concepts/services-networking/gateway/&#34;&gt;https://kubernetes.io/ja/docs/concepts/services-networking/gateway/&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://docs.cloud.google.com/kubernetes-engine/docs/concepts/gateway-api?hl=ja&#34;&gt;https://docs.cloud.google.com/kubernetes-engine/docs/concepts/gateway-api?hl=ja&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;きっかけ&#34;&gt;きっかけ&lt;/h2&gt;
&lt;p&gt;学んだきっかけは、会社でGKE StandardからAutopilot移行をしたときに、&lt;strong&gt;Autopilotクラスタが利用可能なすべてのゾーンにNEGが作成されていない状態で、手動でLBを作成すると障害になるケースがある。&lt;/strong&gt; という事象を発見したから。移行時の話は以下リンクから見れるので興味ある方は見てほしい。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.yuyagishita.com/posts/20251218/&#34;&gt;所属している会社のアドベントカレンダーを書いた2025&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;さわってみた&#34;&gt;さわってみた&lt;/h2&gt;
&lt;p&gt;Gateway APIはk8sのマニフェストファイルを増やすことで実装できる。
kustomizeを利用する前提でディレクトリ構成を以下に記載する。GCPの場合は、LB作成時に必要なフロント、バック、ヘルスチェック、バックに登録するNEGをそれぞれ表現しているイメージを持ってもらうのがわかりやすそう。
また、GKEのPodでNginxを立てている想定でサンプルは実装している。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;k8s/
└── base/
    ├── configmap.yaml
    ├── deployment.yaml
    ├── gateway.yaml
    ├── healthcheck.yaml
    ├── httproute.yaml
    ├── kustomization.yaml
    └── service.yaml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Gateway APIに関係している実装は、&lt;code&gt;gateway.yaml&lt;/code&gt;, &lt;code&gt;healthcheck.yaml&lt;/code&gt;, &lt;code&gt;httproute.yaml&lt;/code&gt;, &lt;code&gt;service.yaml&lt;/code&gt;なので、それぞれサンプル実装を記載して解説をする。&lt;/p&gt;
&lt;h3 id=&#34;gatewayyaml&#34;&gt;gateway.yaml&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;kind: Gateway&lt;/code&gt; では利用するLBの種類やトラフィックをリッスンする場所と方法などの設定ができる。
&lt;code&gt;addresses&lt;/code&gt;は予約したIPを指定して利用することもできる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
  name: nginx
  namespace: default
spec:
  gatewayClassName: gke-l7-rilb  # Regional Internal Load Balancer
  listeners:
  - name: http
    port: 80
    protocol: HTTP
    allowedRoutes:
      namespaces:
        from: All
  addresses:
    - type: NamedAddress
      value: nginx
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;healthcheckyaml&#34;&gt;healthcheck.yaml&lt;/h3&gt;
&lt;p&gt;これはLB作成時に必要なヘルスチェック。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025年振り返りと2026年展望</title>
      <link>https://www.yuyagishita.com/posts/20251231/</link>
      <pubDate>Wed, 31 Dec 2025 21:46:08 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20251231/</guid>
      <description>&lt;p&gt;久しぶりに振り返りと展望を書く。&lt;/p&gt;
&lt;h2 id=&#34;2025年振り返り&#34;&gt;2025年振り返り&lt;/h2&gt;
&lt;p&gt;今年はプライベートではいろんなことがあった。去年、結婚してから結婚式や妊娠など生活の変化が大きかった。
家庭を支えるためにお金について考えることが多かった。仕事はぼちぼち順調ではあるけど、SWEとしての成長は若干止まっているような気がしている。勉強自体は情報収集や読書を中心にできているとは思うけど、もっと自分の実績を社外でも積むような活動が必要かもしれない。
会社ではスペシャリスト（他社でいうところのテックリードやシニアソフトウェアエンジニア）のようなポジションで働いている。役職名としてはかっこいいが、横断的に開発チームが手が届きにくいところをがんばる雑用みたいな感じ。GCP, CI/CD, k8s, AIなどの整備をすることが多くサービス開発からは少し離れている。
今年大きな仕事は、GKEクラスタ移行だった。k8sはおもしろい。開発、運用を幅広く経験しているので、ここらへんから自分が好きな技術でOSSコミットを始めるのがスキルアップとしてはいいのかも。&lt;/p&gt;
&lt;p&gt;あとは、筋トレや資産形成や英語などちょっとずつだけどやりたいことができているので、全体的にはいい評価を上げたい。
強いて言うなら、SNSに時間を溶かしていたりしてもっとやれるだろと思った一年でもあった。来年は、アウトプット前提で行動をしたい。&lt;/p&gt;
&lt;h2 id=&#34;2026年展望&#34;&gt;2026年展望&lt;/h2&gt;
&lt;p&gt;来年は子供が生まれるので、子育てを頑張る年になると思っている。楽しみ。
雑にいまのところ考えていることや2025年できなかったことを引き継ぐような感じで書き出す。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;子育て&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;最重要！妻と協力する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;プログラミング&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;アウトプットを増やす&lt;/li&gt;
&lt;li&gt;OSSコミットをできると理想？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;読書
&lt;ul&gt;
&lt;li&gt;月何冊みたいな目標持っても良さそう&lt;/li&gt;
&lt;li&gt;技術書、小説、ビジネス書など幅広く読む&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;英語学習
&lt;ul&gt;
&lt;li&gt;まずはTOEIC受けてみるぐらいで数値化するのがよさそう&lt;/li&gt;
&lt;li&gt;英会話のレベルを上げたい&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;運動
&lt;ul&gt;
&lt;li&gt;筋トレ週3以上&lt;/li&gt;
&lt;li&gt;フットサル、サッカーを月1以上&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;資産形成
&lt;ul&gt;
&lt;li&gt;つみたてNISAの枠をなるべく埋められるように節約したい&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;人間関係を大切に&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;細かい目標などは改めて立てるとして、2026年は&lt;strong&gt;何事もフットワークを軽く行動する・小さく継続する&lt;/strong&gt;ことを意識して、スキマ時間を有効活用したい。&lt;/p&gt;</description>
    </item>
    <item>
      <title>今年からSoftware Designを読み始めた</title>
      <link>https://www.yuyagishita.com/posts/20251226/</link>
      <pubDate>Fri, 26 Dec 2025 14:10:51 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20251226/</guid>
      <description>&lt;p&gt;今勤めている会社がSoftware Designを定期購読していることに今更気づいた。新卒から働いているのに。。
前から気になっていた雑誌だったので、毎月お借りして読んでいる。&lt;/p&gt;
&lt;h2 id=&#34;読むメリット&#34;&gt;読むメリット&lt;/h2&gt;
&lt;p&gt;これは編集者がソフトウェアエンジニアに向けて、トレンドや基礎技術をまとめてくれているので、広い範囲の技術について知ることができるというメリットがある。普段情報収集するときにFeedlyやX/Twitterやはてぶなどをみることが僕は多くて、自分の興味のある領域ばかり見てしまう傾向がある。（バックエンド開発、DevOpts、SRE、クラウド、k8sなど）&lt;/p&gt;
&lt;p&gt;他の技術に対して、興味を持つきっかけになってありがたいと思っている。AIの発展によって、エンジニアはよりT字型スキルの上横棒の広さが求められていると思う。AIの成果物に対して、ある程度は適切なレビューや判断ができるように知識の幅が求められている気がする。だから、こういった雑誌を読むメリットはさらに大切になっているかも？？？&lt;/p&gt;
&lt;h2 id=&#34;読んだなかで記憶に残っていること&#34;&gt;読んだなかで記憶に残っていること&lt;/h2&gt;
&lt;p&gt;いろんな面白い特集があってあげるのが難しい（&lt;del&gt;忘れてる&lt;/del&gt;）けど、ZOZOのレガシーシステムのモダン化は面白かった。こういったレガシーな課題に対して、技術的に解決するのは大変だけど面白いし、やりがいがあるなと思う。
ZOZOに限らずだけど、2000年初期からあるシステムはDBにロジックを書くのが当たり前だったことが多そうなので、OracleやSQL Serverなどに貯められたストアドのリプレイスやDBの切り替えなどは結構課題になりそうだと思う。
自分務めている会社でもここらへんにはやはり課題感がある。&lt;/p&gt;
&lt;h2 id=&#34;さいごに&#34;&gt;さいごに&lt;/h2&gt;
&lt;p&gt;ということで、来年もしっかり読んでいくぞという気持ち。&lt;/p&gt;
&lt;p&gt;今日もブログ更新できていい感じ。ここから数日は忘年会などが入ってくるため、年内はあと2,3記事更新できればなという感じです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>デジタルデトックス（SNSデトックス）を始めた</title>
      <link>https://www.yuyagishita.com/posts/20251225/</link>
      <pubDate>Fri, 26 Dec 2025 00:07:16 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20251225/</guid>
      <description>&lt;p&gt;今年の仕事納めが終わった。ということで、アウトプットの場を活発化するために、ブログ更新頻度を上げる。アウトプットの質を求めるとなかなかに億劫になってしまう自分がいるので、てきとーな内容でもあげるスタイルで行こうと思う。
ただ、匿名ではないブログなので、最低限のモラルを持ちたいところ。もう20代ではないし。&lt;/p&gt;
&lt;h2 id=&#34;疲れてる自分がいた&#34;&gt;疲れてる自分がいた&lt;/h2&gt;
&lt;p&gt;毎日なにか疲れてる。仕事もしているし、趣味でジムでトレーニングしたり、フットサルをしたりと平日から活動をしているからというのもあるが、疲労感が取れない。
身体の疲れもあるが、頭がなんか重いという感覚がずっとあった。&lt;/p&gt;
&lt;h2 id=&#34;原因は&#34;&gt;原因は・・・&lt;/h2&gt;
&lt;p&gt;タイトルにでっかく書いてるので丸わかりだが、デジタルに触れすぎてることが原因ぽかった。
たしかに仕事もモニターとにらめっこすることが多いし、プライベートでもスマホタブレットPCテレビ、とにかく画面ばっかりみている。それに寝る前にスマホでYoutubeやX/Twitterをみる機会がほとんどで、これらの活動を無意識にしていた。習慣っておそろしい。&lt;/p&gt;
&lt;p&gt;スマホのスクリーンタイムの結果を見たり、生活を振り返ったときに思い当たるのが、スマホでX/Twitterを見てる時間が多いということだった。先程スクリーンタイムを確認したところ、先週はスマホだけでX/Twitterを17時間とか見ていたらしい。自分は他の端末でもTwitterをみているのでもっと見てる。&lt;/p&gt;
&lt;p&gt;これは完全にドーパミン中毒者状態になっているのではと思った。詳しいことはわからないけど、SNSで無限スクロールをする行為は&lt;strong&gt;不定期な報酬を求める行為でパチンコと同じ&lt;/strong&gt;ということだった。
時間を浪費してしまうだけではなく、読書やプログラミング、英語などやりたいと思っていることに使う時間も結構少なかったように思う。&lt;/p&gt;
&lt;p&gt;ということで、デジタルデトックス特にSNSデトックスに踏み切った。&lt;/p&gt;
&lt;h2 id=&#34;現在&#34;&gt;現在&lt;/h2&gt;
&lt;p&gt;先週末あたりからデトックスを始めていて、いまのところ成功しているように思う。ただ、中毒とはおそろしいものだと思うので、気を引き締める必要がある。&lt;/p&gt;
&lt;p&gt;自分はこういったことを意識して生活をしている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;スマホをさわるときにTwitterは開かない（何も考えていないときはまっさきに開いてた）&lt;/li&gt;
&lt;li&gt;通勤電車では、あらかじめYoutubeの英語コンテンツ、BBC・CNN・Sky Sportsあたりダウンロードして、それをみる（通勤電車は満員でスマホを開くぐらいしかできることがなく、暇でTwitterを見ていた）&lt;/li&gt;
&lt;li&gt;目的があるときは開いてOK（無目的の無限スクロールが問題ある）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これが今のところは結構効いていて、おかげでこのブログを書けている。
年末年始の予定がない時間は有意義な活動ができるといいなあと思いつつ、今日は寝る。&lt;/p&gt;</description>
    </item>
    <item>
      <title>所属している会社のアドベントカレンダーを書いた2025</title>
      <link>https://www.yuyagishita.com/posts/20251218/</link>
      <pubDate>Thu, 18 Dec 2025 23:32:50 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20251218/</guid>
      <description>&lt;p&gt;久しぶりの投稿です。
ここ数年は広い領域の仕事をしていて、結構インプットができました。
アウトプットが少ないなと毎回思うので、ちょっとしたことでもいいのでブログ更新しようと思います。
継続って難しい。。&lt;/p&gt;
&lt;h2 id=&#34;アドベントカレンダー書いた&#34;&gt;アドベントカレンダー書いた&lt;/h2&gt;
&lt;p&gt;ということでQiitaのアドベントカレンダーを書いたのでURL載せておきます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://qiita.com/yagiyuuuu/items/e31dc8bcb3c971183c98&#34;&gt;GKE StandardからAutopilotへの移行&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Google CloudのGKE関連やネットワークには知見を貯めれました。こういったところの学びやハマりポイントなど記事にできるとよさそうかなと思っています。&lt;/p&gt;
&lt;p&gt;あとは気分的に本ブログのドメインをサブドメで&lt;code&gt;blog.yuyagishita.com&lt;/code&gt;にしたいかなと思っています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>GKE AutopilotのPodバーストとHPAで問題が起きた</title>
      <link>https://www.yuyagishita.com/posts/20250315/</link>
      <pubDate>Sat, 15 Mar 2025 23:44:06 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20250315/</guid>
      <description>&lt;p&gt;久しぶりに記事書きました。&lt;br&gt;
最近はObsidianに情報をまとめることが多いですが、もう少し気軽にアウトプットしようと思って書きました。
なので、詳細を調査はできていません。適当なこと書いてたらすみません。&lt;/p&gt;
&lt;h2 id=&#34;発生した問題&#34;&gt;発生した問題&lt;/h2&gt;
&lt;p&gt;タイトルにもある通りGKE Autopilotに関する話です。
AutopilotやPodバースト、水平Pod自動スケーリング（HPA）を知らない方はこれらの記事が参考になると思います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-overview?hl=ja&#34;&gt;Autopilot の概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cloud.google.com/kubernetes-engine/docs/how-to/pod-bursting-gke?hl=ja&#34;&gt;GKE で Pod バースト機能を構成する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cloud.google.com/kubernetes-engine/docs/concepts/horizontalpodautoscaler?hl=ja&#34;&gt;水平Pod自動スケーリング&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;発生した問題についてですが、AutopilotクラスタでHPAを有効にしたDeploymentを上げたところ、Podが何度も再起動されながらHPAの最大値までPodが増えるといった挙動をしました。最大値までPodが増えたあとは再起動を何回もして不安定な状態でした。&lt;/p&gt;
&lt;h2 id=&#34;原因&#34;&gt;原因&lt;/h2&gt;
&lt;p&gt;おそらく、Deploymentの&lt;code&gt;resources.requests&lt;/code&gt;が動かしているアプリに対して低すぎたことがこの状態を発生させていたと思います。
こんな感じの設定にしてました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;resources&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;cpu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;50m&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;memory&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;52Mi&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;cpu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;500m&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;memory&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1Gi&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;コスト削減のため、リクエストを最も小さい値にしてました。
対象アプリがrequestsの値を大きく上回ってました。
Podバーストを有効にしているとlimitsはあくまで予約しているだけで実際にはリソースを確保していないということらしいので、以下のような解釈をしました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;requestsの値を大きく上回る&lt;/li&gt;
&lt;li&gt;HPAが適用される（HPAはCPUが80%で動くようにしてました。）&lt;/li&gt;
&lt;li&gt;Podが増える&lt;/li&gt;
&lt;li&gt;よくわからん挙動する&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;対処方法&#34;&gt;対処方法&lt;/h2&gt;
&lt;p&gt;requestsの値を対象アプリが要求している値の120%ぐらいにしました。
正常に動作するようになりました。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Autopilotクラスタを利用することで、Nodeの管理が必要なく運用が楽にはなりますが、自動で管理してくれる分よくわからないことも発生するので、手放しには喜べないなと思いました。&lt;/p&gt;
&lt;p&gt;誰かの役に立ちそうなことがあれば、定期的に自分のメモを書いてるぐらいの感覚でブログを更新したいという気持ちです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2023年振り返りと2024年展望</title>
      <link>https://www.yuyagishita.com/posts/20240111/</link>
      <pubDate>Thu, 11 Jan 2024 11:44:06 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20240111/</guid>
      <description>&lt;p&gt;新年あけましておめでとうございます。去年の振り返りと今年何をしようか簡単にまとめて行きたいと思います。&lt;/p&gt;
&lt;h2 id=&#34;2023年振り返り&#34;&gt;2023年振り返り&lt;/h2&gt;
&lt;p&gt;去年はプライベートの遊びにかなり時間を使っていて、勉強などはあまりできていなかったです。SNSに使う時間を減らそうと思っていましたが、Youtubeにかなり時間を使ってしまいました。時間の使い方をもっと上手にできるようにしたいです。自己成長という面では、読書と英語には少し時間を使えたかなと思っています。読んだ本はあとで一覧にまとめるとして、英語に関してはNetflixで英語字幕・英語音声でドラマを見たりChatGPTと英会話をしたりIELTSの勉強を始めたりしました。英語を上達させたいという気持ちが昔からあるのでコツコツやっていますが、中間目標を設定しないとだらだらやってしまうので今年はIELTSを始めました。資格勉強は中間目標としてはかなり有効な気がしています。&lt;br&gt;
仕事に関してはスペシャリスト(≒テックリード)という役職をもらい少し待遇がよくなりました。役職が上がったのは素直に嬉しかったですが、今後役職を上げるのがとてもむずかしいのと給料面が高くはないので転職活動は視野に入れたいと思っています。というかメガベンに転職したい。&lt;/p&gt;
&lt;h3 id=&#34;2023年読んだ本&#34;&gt;2023年読んだ本&lt;/h3&gt;
&lt;p&gt;主要な本を挙げます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kubernetes完全ガイド 第2版&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;k8sを網羅的に学習するならこの本はかなりおすすめです。k8sのあれなんだっけって思ったときにもかなり役に立ちました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プログラマー脳 ～優れたプログラマーになるための認知科学に基づくアプローチ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;脳の構造に合わせて効率的に学習する方法を学べます。個人的には新人プログラマーに教えるときに認知的負荷レベルを考えるというところは勉強になりました。プログラマー以外の人にもおすすめできる本です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ISUCONに出たことはありませんが、パフォーマンスチューニングについてわかりやすく学べる本です。WEBアプリのパフォーマンス改善をするときはたいていDBのインデックス関連が多いなと実務をしていて感じます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;半沢直樹　アルルカンと道化師&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;池井戸潤が個人的にかなり好きです。おもしろくて熱くなれます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;クスノキの番人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SFチックな設定で人の感情を繊細に扱っていた本でした。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;カケラ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;湊かなえ原作です。個人的にはそこまではまりませんでした。女性の方が楽しめるかもとも思いました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;正欲&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;浅井リョウ原作です。「読む前の自分には戻れない」という言葉がしっくりくる本でした。個人的にはおすすめです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;もものかんづめ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;さくらももこ原作の本をはじめて読みました。ちびまる子ちゃんにでてくる友蔵と友蔵のモデルになった人の性格が真逆でおもしろかったです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;島耕作シリーズ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;社会人になってから読むとけっこうおもしろいです。課長から始まって、今は取締役です。&lt;/p&gt;
&lt;h2 id=&#34;2024年展望&#34;&gt;2024年展望&lt;/h2&gt;
&lt;p&gt;2024年は時間の使い方を見直したいと思います。プライベートの遊びは息抜きの時間にできるよう調整をがんばります。2024年にやりたいと思っていることはいまのところこんな感じです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IELTS バンドスコア6.0以上を取得する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;英検準1級レベルらしいです。自分の英語レベルだと厳しいかもしれませんが、やってみようと思います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;転職する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今年もできない可能性ありますが、メガベンに入るための準備をして応募しようと思います。アルゴリズムが苦手なので今年は継続して競プロをやります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;競プロで茶レベルに達する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;時間的にコンテストを受けるのが難しいときが多いので、茶レベルの問題が解けるように学習します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;読書継続&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;月2冊以上読めればと思っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;筋トレ継続&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;現在は家トレをしているので、できる範囲でがんばります。&lt;/p&gt;
&lt;p&gt;また、何かしら毎年新しいことをしたいのでおもしろそうなことがあったら積極的に取り組みたいです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes完全ガイドを読んだので感想とか</title>
      <link>https://www.yuyagishita.com/posts/20230405/</link>
      <pubDate>Wed, 05 Apr 2023 19:09:12 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20230405/</guid>
      <description>&lt;p&gt;去年からちょっとずつ読んでた「Kubernetes完全ガイド 第２版」を読み終わりました。
なかなかボリュームのある本で668ページもあって読むのが大変でした。k8sを雰囲気しかしらない僕にとってはかなり勉強になる本で、体系的に学ぶことができk8sの全体像が頭に入ってきて解像度がかなり上がりました。&lt;br&gt;
本のアウトプットも兼ねて感想とか気になったこととか書きます。&lt;/p&gt;
&lt;h2 id=&#34;環境構築&#34;&gt;環境構築&lt;/h2&gt;
&lt;p&gt;この本はハンズオン形式なので、k8sの環境を作る必要があります。
僕は最初GKEを作成したのですが、費用がすぐに発生していやだったのでローカルで構築できるkindを利用しました。kindはDocker上でk8sを構築することができとても楽でした。ただ、他のブログなどをみてるとMinikubeがおすすめみたいです。kindはちょっとクセが強く一部の機能を動かすために設定が必要だったりしてたしかに初心者向けではないなと思いました。&lt;/p&gt;
&lt;h2 id=&#34;図が多くて分かりやすい&#34;&gt;図が多くて分かりやすい&lt;/h2&gt;
&lt;p&gt;大体のページに図があって、初めて知った概念などの理解をする補助になりました。文章読んでよくわからなかったら図を先にみて理解してました。&lt;/p&gt;
&lt;h2 id=&#34;第７章までやれば基礎力が身につく&#34;&gt;第７章までやれば基礎力が身につく&lt;/h2&gt;
&lt;p&gt;この章まで終われば、一旦は基礎知識OKな気がしました。
仕事でk8sをさわらないけど、何をしているの知りたいとか動いてるGKEを追えるようになりたいとかの理由でこの本を読み始めた人は一旦区切りかなとか思います。&lt;/p&gt;
&lt;h2 id=&#34;第９章リソース管理とオートスケーリング&#34;&gt;第９章　リソース管理とオートスケーリング&lt;/h2&gt;
&lt;p&gt;k8sを利用する上でかなりのメリットかなと思いました。アプリの負荷にあわせてスケールアウトを自動でやってくれたりするのは可用性を高めてくれてかなりよきですね。&lt;br&gt;
仕事で利用しているGKEではあまり高負荷がかかる場面もないのでここらへんの機能が効果的に発揮されてる場面に遭遇したことがほぼないのが残念です。&lt;/p&gt;
&lt;h2 id=&#34;運用上のベストプラクティスをもっと知りたい&#34;&gt;運用上のベストプラクティスをもっと知りたい&lt;/h2&gt;
&lt;p&gt;この本を読んでて思ったのが、実際の運用だとどの機能をどれぐらい利用して構築しているんだろう、です。
ヘルスチェックや柔軟なスケジューリングやセキュリティなど便利な機能がたくさんあり、それらを知れてとてもよかったです。ただ、僕ぐらいのk8s初心者だと運用レベルをどれぐらい高めればいいのかって疑問がでてきました。何かしらのベンチマークとか取れたりするのかな。。今後そこらへんも調べたいと思いました。&lt;/p&gt;
&lt;p&gt;この本は体系的にk8sを学べて最高です。文句とかは一切ないです。&lt;/p&gt;
&lt;h2 id=&#34;マイクロサービスとの相性の良さ&#34;&gt;マイクロサービスとの相性の良さ&lt;/h2&gt;
&lt;p&gt;複数のコンテナを安全に管理することができるk8sはやっぱりマイクロサービスとの相性はかなりいいですね。
逆にマイクロサービスでなく高負荷がかかったりしないモノリスなアプリだった場合はk8sはオーバースペックかもなと思いました。普通にCloud RunとかECSとかそういうので運用のほうが費用面も考えてコスパがいい気がしてます。もちろん、利用する言語や求められるシステムによっては選択はかなり変わると思いますが。&lt;br&gt;
マイクロサービスやモノリスといった話はそのまま組織論として置換できそうで、大規模なアプリや多数の開発メンバーを抱えている組織だとそれぞれを分離させて管理できるk8sといった技術はかなり有用だなと改めて思いました。
逆に小さい組織の場合はもっとミニマムかつ小回りが聞く技術構成にしたりすると救われそうですね。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;k8sの勉強において最高最強の本でした。
あと、GitOptsについてもこの本きっかけで理解が深まったのでよかったです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>所属している会社のアドベントカレンダーを書いた</title>
      <link>https://www.yuyagishita.com/posts/20221212/</link>
      <pubDate>Mon, 12 Dec 2022 11:15:10 +0900</pubDate>
      <guid>https://www.yuyagishita.com/posts/20221212/</guid>
      <description>&lt;p&gt;ブログをリニューアルしてから初めての投稿です。
今年はブログを全然更新できていなかったので、心機一転+記事を書く手間を極力減らして気軽に投稿できるようにリニューアルしました。
無理せず継続する予定なので今後もよろしくお願いします！&lt;/p&gt;
&lt;h2 id=&#34;アドベントカレンダー書いた&#34;&gt;アドベントカレンダー書いた&lt;/h2&gt;
&lt;p&gt;Qiitaのアドベントカレンダーを書いたのでURL載せておきます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://qiita.com/yagiyuuuu/items/f6bf6252550021624bc5&#34;&gt;Scala + Play Frameworkでリクエストを値オブジェクトにする&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Scalaに関する記事を書いていて、今年はScalaを触ることがほとんどで強い型付けには非常に助けられてます。（型パズル化したときは難しくて時間を溶かしてますが、、）
アプリを作るなら、Java, Scala, Goあたりの静的言語はマストだなーと最近思っています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>損する結婚 儲かる離婚｜幸せな家庭を築くために</title>
      <link>https://www.yuyagishita.com/review/book/losing-marriage-profitable-divorce/</link>
      <pubDate>Wed, 26 Jan 2022 23:10:15 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/losing-marriage-profitable-divorce/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;losing&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/losing-marriage-profitable-divorce.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;明けましておめでとうございます！！2022年最初の投稿です。
最近は英語、競プロ、Rust、筋トレに励んでいます。学生の時は英語の苦手意識が強くて正直嫌いな教科でした。ですが、自分のペースで好きなときに学習ができる今はそこまで苦になっておらずけっこう楽しめてます。
学校の勉強は義務感が強く勉強する目的もとくになかったことが苦手意識につながったのではと思っています。プログラミングも必修になることで学ぶ機会が増えるのは良いことだと思いますが、僕の英語と同様に子供たちの苦手意識が強くならないか心配です。（誰か楽しく学習できる仕組みを作ってくれないかな。）&lt;/p&gt;
&lt;p&gt;今回は「損する結婚　儲かる離婚」という本が面白かったので感想書きます。
藤沢数希さんはおもしろい視点の本を出すので結構好きです。（笑）&lt;/p&gt;
&lt;h2 id=&#34;結婚は金融商品&#34;&gt;結婚は金融商品&lt;/h2&gt;
&lt;p&gt;結婚とは「所得連動型の債券」という金融商品です。とかいきなり言われてもよくわからないですよね。
なぜ結婚を金融商品だと考えているのか。それは結婚と離婚で動くお金が基本的には慰謝料、財産分与、婚姻費用の3つあるからです。
子供がいる場合はこれに養育費がかかりますが、それは離婚成立後の話です。&lt;br&gt;
僕がこの本を読んでてとても驚いたのが、この金融商品はとんでもない利益・損失を生むことがよくあると知ったからです。
テレビなどを見てると離婚する際に慰謝料の話が出てきて有名人とかだととても払っている印象で慰謝料高いなーと思ってました。
この本を読むと僕のようなサラリーマンが離婚するときに動くお金の内、婚姻費用が断然ヤバいことに気づかされます。
慰謝料は精神的な苦痛に対する損害賠償金で浮気などの原因を作った側が支払うお金です。日本では浮気などの慰謝料は100~200万円程度で所得や社会的な地位によって変動はしないです。
財産分与とは結婚してから夫婦が形成した共有財産を対象として半分ずつにします。結婚前の財産は対象外になります。普通のサラリーマンは億レベルの財産を形成しないと思うので何千万円の支払いになることはなく、形成された財産の中から支払いがされます。
最後にサラリーマンでも全財産以上の支払いになる可能性がある婚姻費用（コンピと言われるもの）について書きます。
別名「コンピ地獄」と言われているそうです。（笑）
婚姻費用とは「民法の規定で夫婦は相手の生活を自分と同じレベルで維持し、夫婦の資産、収入その他一切の事情を考慮して、婚姻から生ずる費用を分担する義務があるとされている。」そうです。ということは夫婦間でより稼いでる方が、そうでない方に毎月一定の金額を支払う義務があります。要は夫婦の片方が専業主婦（主夫）の場合は稼いでる方が生活費を送らないといけないです。
なぜこのコンピがヤバいのか。それはコンピの計算方法が、夫の所得、妻の所得、子供の人数と年齢だけから家庭裁判所でほぼ機械的に決まってしまうことにあります。そして、離婚が成立するまでこのコンピは毎月のように支払い義務があることにあります。
わかりやすいようにこの本に記載されていたケースをあげます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ケース1：夫は年収1000万円のサラリーマン、専業主婦、子なし
→コンピは14~16万円（月）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;なんだそれぐらい払えるでしょ、年収1000万円なんだしって思ったあなた、僕も同じように最初思いましたがそれは甘いです。
離婚騒動が裁判までもつれ込むときは調停、家裁、高裁と続き簡単に2&lt;del&gt;3年かかるそうです。
2&lt;/del&gt;3年もの間、毎月支払うってどんな地獄でしょうか。そしてさらに地獄なのが、自分が有責ではなくてもコンピ、共有財産は支払う義務があることです。まさに地獄です。&lt;/p&gt;
&lt;h2 id=&#34;泥沼の離婚裁判&#34;&gt;泥沼の離婚裁判&lt;/h2&gt;
&lt;p&gt;結婚の時に動くお金について知ると離婚裁判が泥沼になることはすぐにわかりますね。
稼ぎが少ない方は配偶者からお金を絞るために永遠と離婚してくれません。
普通に考えたらそうしますよね。何もしなくても毎月のように高額なお金が振り込まれるので。
明らかに婚姻制度のバグだろと思ってしまいますね。
高所得な大人はこの金融商品を譲渡する相手を慎重に選ばないとこのバグに巻き込まれて痛い目に遭いそうですね。（もちろん、離婚せずにいつまでも円満な夫婦でいれば問題ない話です。）&lt;/p&gt;
&lt;p&gt;離婚裁判の実情や有名人の結婚、離婚騒動で具体的な話を知れるので興味あったらこの本読んでみてください。&lt;/p&gt;
&lt;h2 id=&#34;結婚相手の賢い選び方&#34;&gt;結婚相手の賢い選び方&lt;/h2&gt;
&lt;p&gt;結婚して専業主婦を目指す女性がいるとして、結婚相手の賢い選び方は「安定した将来キャッシュフローを期待でき、キャッシュフローの質もいい」男性です。なぜなら、結婚してから財産はしっかり形成される可能性が高く財産分与に期待ができ、高い金額のコンピも期待できるし回収もしやすいからです。慰謝料は相場があり大した金額にならない場合があるので、この2つについて注目するのがポイントですね。
キャッシュフローの質についてあげましたが、たとえば、夫が大企業のサラリーマンだったら給料差し押さえがしやすいですけど、違法風俗店オーナーとかだと裁判所から発行された紙で差し押さえができるかは疑問です。&lt;/p&gt;
&lt;p&gt;具体的にどういう職業の男性がオススメかというと、大企業の会社員、医者、弁護士などです。
反対にお笑い芸人やスポーツ選手はあまりオススメじゃないです。
なぜなら、結婚した後に同じように稼いでくれないと意味がないからです。&lt;br&gt;
結婚相手にオススメの職業が婚活市場で人気があるのには相応の理由がありますね。&lt;/p&gt;
&lt;h2 id=&#34;一夫一妻は自然な形なのか&#34;&gt;一夫一妻は自然な形なのか&lt;/h2&gt;
&lt;p&gt;急に話は変わりますが、一夫一妻制について考えさせられたので書きます。
多くの哺乳類の動物は一夫多妻的な社会を作っています。内容を端折りますが、ヒトは本来ゆるやかな一夫多妻配偶システムを持っているそうです。これは現代の自由恋愛を見ればわかりやすくて、一部の男性が圧倒的にモテて多くの女性が集まり、それ以外の男性にはセックスさせてくれる女性がいない状態になっています。この本では具体的な調査結果が書かれていますが、雰囲気でも十分理解できますよね。これは現代の恋愛市場が一夫多妻制になっていると捉えられます。
それに、一夫一妻で特をするのは誰なのか。
一夫一妻は自然な形ではないかもって思ったあなたにもう1つ伝えたいことがあります。
それは一夫一妻制によって得をしているのは非モテの男性かもしれないということです。
一夫一妻の法規制によってモテる男性は1人の女性と付き合うので、一部の男性による女性の独占が起きません。
ということは非モテの男性にも女性が分配されます。つまり、一夫一妻制は非モテの男性のための法制度であるとも考えられます。&lt;/p&gt;
&lt;p&gt;他にも、一夫一妻が絶対的な扱いになっている影響で女性側が結婚するメリット少なめの男性を選ぶことはなく未婚子なしが増えて少子化にもつながっている可能性があるとか、女性が社会進出をする中で男性との男女格差がなくなっているのでわざわざ結婚せずに好きな男性との婚外子でもいいのではとか色々と考えられます。&lt;/p&gt;
&lt;p&gt;色々と書きましたが、一夫一妻が絶対悪というわけではなくて、古き良き婚姻制度を大事にしてもいいし新しい制度を導入してもいいしとにかく現代にあった多様な家族のあり方が認められる社会になってもいいのかなと思いました。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に&lt;/h2&gt;
&lt;p&gt;もし結婚をするなら正しい知識と覚悟を持ってしようと思いました。
とくに配偶者とより良い結婚生活を築く覚悟がないのに結婚すると相手も自分も不幸になってしまいそうです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>DIE WITH ZERO｜人生で最も大切なことは思い出</title>
      <link>https://www.yuyagishita.com/review/book/die-with-zero/</link>
      <pubDate>Mon, 20 Sep 2021 21:29:35 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/die-with-zero/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;die-with-zero&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/die-with-zero.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;久しぶりの投稿です！
最近、ブログに対する熱を失いかけていたけど友人と会ったときに「次はいつ投稿するの？結構楽しみにしている！」と言われてみてくれる人がいるなら頑張ろうかなと思えました！友よありがとう！！&lt;/p&gt;
&lt;p&gt;このブログでは本のアウトプットをするときに要約を主にしていたけど、今後はなるべく自分の思ったことを主体にして書きます。本の要約ならYouTubeや他のブログにもごろごろあるので同じことをしてもしょうがないですよね。&lt;/p&gt;
&lt;p&gt;この本を読み終わったときの感想は「めっちゃおもしろい！！」です。
ここ数ヶ月で読んだ本の中で一番おもしろくて、結構さくっと聞き終わりました！
よく世間で言われている将来のために貯金をしようとか安定している仕事に就こうとかそういった生き方について考えさせられる内容でした。（それらの生き方が間違っているとは本の中で言っていない。）
著者の考える生き方は今までにない新鮮なものだったのでぜひ読んでみてほしいです！&lt;/p&gt;
&lt;h2 id=&#34;ゼロで死ぬってどういう意味&#34;&gt;ゼロで死ぬってどういう意味？&lt;/h2&gt;
&lt;p&gt;本のタイトルのインパクトがとにかくすごいです。
最初は「ゼロで死ぬ」ってどういうこと？ってなりますが、ゼロで死ぬとはお金を残さずに死ぬことを意味してます。
貯金したまま死ぬということはお金を得るために使った自分の時間がムダになっているし、そのお金で得られたはずの経験を失っています。たしかに将来のためにって考えて今の生活を質素に抑えた結果がムダになるのはもったいないですよね。
この主張で誤解して欲しくないのが、お金を残さずに死ぬってことは「子供のために何も残さなかったり、困っている人のために寄付をしたりせずに自分のためにだけお金を使って死ぬ」ということではないです。
子供のためにお金を残すことも含まれているし、寄付などで他者貢献をしてもいい。&lt;br&gt;
ただ、遺産として残すより前に今渡せばいいのにという著者の主張があります。
なぜなら、自分が死んだときに遺産として子供にお金が渡るのは平均寿命から考えると大体60とか70歳のときぐらいだし、寄付で助けてほしい人は今たくさいいる。子供には人生でもっともお金がなくて大変な若い時期にお金を渡せばいいし、寄付したいと思っているなら今すればいい。そうすれば感謝もされるし自分の経験になる。だからこそ死ぬときにゼロでいいって考え方です。&lt;/p&gt;
&lt;h2 id=&#34;人生でもっとも大切なことは思い出&#34;&gt;人生でもっとも大切なことは思い出&lt;/h2&gt;
&lt;p&gt;著者が考える人生でもっとも大切なことは思い出です。死ぬときに稼いだお金はあの世には持っていけないので、どれだけ価値のある経験をして思い出があるのかが自分の満足度につながるっていうのたしかになと思いました。
思い出を増やすには経験を増やす必要があって、経験を増やすためには自分がしたいことや今しかできないことに時間やお金を費やすってことが大切です。この「今しかできないことをやろう」って考え方は今までの自分にはあんまりなくて、
将来のために今の時間を勉強に費やそうとかをよく考えていました。人生はステージごとに今しかできないことがあって、たとえば、20代ならサッカーや野球みたいな激しい運動をして楽しむことができるけど、60代になってその運動はできないです。運動以外でも旅行や食事、リスクのある挑戦など若いときじゃないとできないし思いっきり楽しめないことがあります。
だからこそ、若いときから少ない給料なのにこつこつ貯金をするのではなく、借金をしたとしてもいい体験ができるのならしようって考え方はありだなと思いました。&lt;br&gt;
この本の中で著者が若いときに毎月貯金をしていて上司から「この先、収入は増えるのになぜ元気で若い今の自分が、将来収入が増えるであろう自分のために貯金をするのか。」のように言われるシーンがあって、自分も経験のためにもっとお金を突っ込もうと思いました。老いたときの経験よりも若いうちの経験は何十年も活きるから、今こそリスクをとった経験をするべきだなと思いました。
歳を取ってからの挑戦は身体的にもきついし、家族がいるので借金もできないしとかを考えると若い今こそリスクを取るべき。&lt;/p&gt;
&lt;h2 id=&#34;終わりを意識する&#34;&gt;終わりを意識する&lt;/h2&gt;
&lt;p&gt;自分の終わり＝死ぬことを意識すると今残っている時間をもっと有意義に使おうって考えることができますね。
これってスティーブジョブズの演説でもみたことある内容だなと思いました。死を意識しないと人は永遠と今の時間が続くと錯覚してしまう。時間が永遠にあると思うから今をムダにしても全然大丈夫だと感じてしまう。
自分の終わりを意識することは大切だなと改めて思いました。
時間は自分の命。&lt;/p&gt;
&lt;p&gt;この本に出てくる自分の寿命を測定するアプリをダウンロードするかどうか考え中です。（課金したらダウンロードできるアプリみたいなので。。）&lt;/p&gt;
&lt;h2 id=&#34;資産を取り崩すのは4560歳がオススメ&#34;&gt;資産を取り崩すのは45~60歳がオススメ&lt;/h2&gt;
&lt;p&gt;これぐらいの年齢は健康でお金を持っていてかつ人生も折り返し地点なので資産を切り崩すことを考えるのに適しているみたいです。
仕事が好きな人にとってはこの歳って稼げるしいいポジションでおもしろい仕事ができているのかなと思います。
仕事をすることはいいことだしやりたいのなら全力でやるべきだとは思うけど、人生の思い出を増やすためにはもっと違った経験にお金を使うことを考え始めるのが良さそうです。
それにお金から得られる価値は年々下がっていて、80歳の時の旅行と30歳の時の旅行ではどっちが楽しめるのかって考えると30歳の方だと思います。歳を取ってからお金を手にしても有意義に使えないときが多そうなので若い内にいい経験できるようにお金を使いたいですね。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に&lt;/h2&gt;
&lt;p&gt;この本の著者は親しい人や家族を何十人も旅行に招待して飛行機代やホテル代、遊び代などすべてを出して最高の思い出を作ったりとすごいいい経験をしている人でうらやましいです。
自分も特別な経験にお金を使いたい！！&lt;/p&gt;
&lt;p&gt;この本の内容を知るためにYouTubeの要約動画を見るのもいいと思いますが、知人の話や著者の実体験が多く語られていてより本を読んだ方がよりイメージしやすいので本がオススメです。&lt;/p&gt;
&lt;p&gt;それとこの記事を書いていて思いましたが、伝わる文章としてうまくまとめようとすると鬼ほど時間がかかるので、
スピードと質のバランスは考え直そうと思いました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>読書方法を変えて低レイヤーの本を3冊読んだ</title>
      <link>https://www.yuyagishita.com/review/book/read-three-low-layer-books/</link>
      <pubDate>Tue, 13 Jul 2021 20:44:35 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/read-three-low-layer-books/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;read-three&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/read-three-low-layer-books.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;以下記事を読んでから技術書の読み方を変えてみました。&lt;br&gt;
&lt;a href=&#34;https://blog.shibayu36.org/entry/2021/01/05/180000&#34;&gt;読書のやり方を変えてみたら知識の吸収速度・引き出し速度が上がった話&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;実際にこの読書方法を実践してみてどうだったか感想を書きます。&lt;/p&gt;
&lt;h2 id=&#34;読んだ本の紹介&#34;&gt;読んだ本の紹介&lt;/h2&gt;
&lt;p&gt;今回は以下の低レイヤーの本を3冊読みました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/477419607X&#34;&gt;[試して理解]Linuxのしくみ　実験と図解で学ぶOSとハードウェアの基礎知識&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4822283151&#34;&gt;プログラムはなぜ動くのか　第2版　知っておきたいプログラムの基礎知識&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4873117127&#34;&gt;コンピュータシステムの理論と実装　モダンなコンピュータの作り方&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;なぜ低レイヤー&#34;&gt;なぜ低レイヤー？&lt;/h2&gt;
&lt;p&gt;僕は情報系の学部出身ではないので、CSの基礎知識がめっちゃ欠けています。。
エンジニアとしてアプリケーション以下の低レイヤーの理解を深めることでハードウェアを効率的に利用した開発ができるようにしたかったです。
また、システム障害時に素早く対応できるようにもしたかったです。
基礎が身についていると新技術の理解度も上がると思うのですぐには効果が出ないですが、以前から勉強したいと思っていました。&lt;/p&gt;
&lt;h2 id=&#34;読書方法の紹介&#34;&gt;読書方法の紹介&lt;/h2&gt;
&lt;p&gt;基本的には参考にした記事の方法で読書しました。
違う点として電子書籍を読む端末を持っていないので紙の本を読み、ハイライト方法には付箋を貼って対処しました。
高校生みたいでちょっと懐かしかったです。笑&lt;br&gt;
それと読書ノートや知見まとめノートは作っていないです。&lt;/p&gt;
&lt;h2 id=&#34;赤色のハイライトまとめ&#34;&gt;赤色のハイライトまとめ&lt;/h2&gt;
&lt;p&gt;最初の「*」は赤色のハイライトをした部分です。
その下のスペースが入った後に「*」がある部分は自分の気づきや学びを書いてます。&lt;/p&gt;
&lt;h3 id=&#34;試して理解linuxのしくみ実験と図解で学ぶosとハードウェアの基礎知識&#34;&gt;[試して理解]Linuxのしくみ　実験と図解で学ぶOSとハードウェアの基礎知識&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;赤色のハイライト * コード領域とデータ領域の「メモリマップ開始アドレス」が必要な理由は、CPU上で実行される機械語命令においては、高級言語で書かれたソースコードと異なり、特定のメモリアドレスを指定する必要があるからです。32
気づきや学び        * プログラムを実行するためにメモリアドレスの指定は必須。

* 1つのCPU上で同時に処理するプロセスは1つだけ 40
    * 1つのCPUで複数の処理を同時に捌けない。最近のCPUは複数のコアを持っているから並列に処理を捌ける。

* 図04-11 プログラム内の関数が実行されるタイミング（正しい理解）52
    * コンテキストスイッチによりプロセスが切り替わる。

* プロセスのページテーブルをうまく設定すれば、図05-23のように、物理メモリ上では断片化している領域を、プロセスの仮想アドレス空間上では大きな1つの領域として見せることができます。112
    * プログラムを動かす環境では仮想化技術は必ず出てくる。

* 図05-25 仮想記憶では、他のプロセスのメモリ空間にはアクセスできない 115
    * 他のメモリ空間を勝手に変更できなくなるので他のプロセスによりメモリ操作の心配がなくなる。

* 仮想メモリの枯渇とは、プロセスが仮想アドレス空間の範囲一杯まで仮想メモリを使い切った状態でメモリを獲得しようとしたときに発生します。133
    * 仮想メモリの容量も気にしないといけないので管理が複雑になる。

* これはストレージデバイスの一部を一時的にメモリの代わりとして使用するしくみです。141
    * スワップの話でOOM対策の一つである。

* プログラムのワークロードをキャッシュメモリのサイズに収めることによって、性能を大きく向上させます。165
    * プログラムを高速に動かすにはCPUの近いところでデータを配置することが大切。

* 設定変更や時間の経過によってシステムの性能が突然、数行も劣化したような場合は、ファイルのデータがページキャッシュに収まらなくなった可能性があります。187
    * ブラウザでもキャッシュの仕組みがあるが、速度を上げるためには必要。

* これらのシステムコールが発行されると、次のような順序でファイルのデータを読み出します。197
    * ファイルシステムによらず統一的なインターフェースでアクセスできるのがLinux。

* SSDとHDDの一番大きな違いは、SSDの場合はデータへのアクセスに機械的な動作が一切なく、電気的な動作だけで住むことです。254
    * SSDのメリットは高速にデータの読み書きができることだが、HDDと比べると費用が高い。
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;プログラムはなぜ動くのか第2版知っておきたいプログラムの基礎知識&#34;&gt;プログラムはなぜ動くのか　第2版　知っておきたいプログラムの基礎知識&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;* CPUの制御装置は、プログラム・カウンタの値を参照して、メモリーから命令を読み出して実行します。21
    * プログラムの実行順序はこのカウンタを参照している。

* コンピュータは、引き算を行う場合に、内部的には足し算として演算するようになっています。40
    * 2進数では補数を使ってマイナス表現をする。

* ポインタとは、データの値そのものではなく、データが格納されているメモリーのアドレスを持つ変数のことです。80
    * C言語で出てくるポインタはアドレスを指定していて自由に値を入れられる。

* 仮想記憶によって発生するページインやページアウトは、低速なディスクのアクセスを伴うので、その期間だけアプリケーションの動作が遅くなってしまいます。103
    * この機能はLinuxでいうところのスワップ。

* Java仮想マシンは、Javaバイトコードを逐次ネイティブ・コードに変換しながら実行します。145
    * JVMで動かすときは高級言語をバイナリまでコンパイルしていない。まずはVMコードに変換している。

* 何らかのプログラミング言語で記述されたソースコードは、ネイティブ・コードに翻訳されなければCPUに理解してもらえません。153
    * 動的言語でも静的言語でも実行するにはネイティブ・コードに変換しないとダメ。

* 複数のオブジェクト・ファイルを結合して1つのEXEファイルを生成する処理がリンクであり、リンクを行うプログラムのことをリンカーと呼びます。159
    * リンクしないとプログラムが動かない。

* ライブラリ・ファイルは、複数のオブジェクト・ファイルをまとめて1つのファイルに格納したものです。160
    * C言語ではライブラリ・ファイルに実行されるバイナリが入っていて標準関数をプログラムの中で実装したときはリンクさせないと実行する関数の中身がないってことになる。

* 外部シンボルとは、他のオブジェクト・ファイルの中にある変数や関数のことです。161
    * 「シンボルの未解決」とはこのファイルに目的の変数や関数が記述されていないときに発生する。

* スタックは、関数の内部で一時的に使用される変数（ローカル変数）や、関数を呼び出すときの引数を格納するためのメモリー領域です。
ヒープは、プログラムの実行時に任意のデータやオブジェクトを格納するためのメモリー領域です。156, 166
    * Javaでもスタックやヒープ領域に関するエラーなどが出てくるのでここら辺の理解は重要。

* レジスタは、メモリーよりアクセスが大幅に速いので、処理を高速化できるからです。219
    * 他の低レイヤーの本を読んでも出てくる箇所。レジスタ、メモリー、ストレージの記憶媒体の使い方は重要。

* IN命令は、指定したポート番号のポートからデータを入力し、それをCPU内部のレジスタに格納します。
OUT命令は、CPUのレジスタに格納されているデータを、指定したポート番号のポートに出力します。235
    * ポート経由でデータの入出力をする。レジスタに格納して実行するタイミングの詳細が気になる。

* CPU内部のレジスタは、データを演算処理するものですが、I/Oコントローラ内部のレジスタは、基本的にデータを一時的にに格納するだけのものです。 236
    * I/Oコントローラ内部にもレジスタのような記憶装置を持っている。
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;コンピュータシステムの理論と実装モダンなコンピュータの作り方&#34;&gt;コンピュータシステムの理論と実装　モダンなコンピュータの作り方&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;* 2の補数を用いることで、単純なビット単位の加算が行えるハードウェアがあれば、特別なハードウェアを用いることなく正と負のどちらの加算も行える、ということになる。31
    * コンピュータを表現する２進数は低レイヤーでは必須知識。

* 機械語においてハードウェアとソフトウェアが交わり、機械語においてプログラマーの抽象的思考（これは記号命令によって表される）がシリコン上で実行される物理的操作に変換される。60
    * プログラマの思考が最終的に機械語に変換される様は魔法みたい。

* アセンブラはアセンブリコマンドを入力として受け取り、その出力として対応するバイナリ命令を生成する。116
    * アセンブリと機械語は1:1になっていて機械語の理解にはとてもいい。

* コンパイラにおいても、バイナリである機械語を直接生成したほうが都合がいいため、シンボルを含んだコマンドをわざわざ生成するようなことはしない。128
    * アセンブリを作成する理由はあんまりなさそう。

* 最初のステージは高水準言語の仕様だけに依存し、2番目のステージは対象とする機械語の仕様だけに依存するからである。135
    * VMのメリットとしてそれぞれのステージにのみ関心を持てば良くなる。

* コンピュータサイエンスという分野においては、「シンプルさと優美さを兼ね備えたものは表現力も豊かである」というのが常である。139
    * CSだけではなくこれは言えると思う。シンプルで美しく保てると変更しやすく表現力が豊かだと思う。

* トークナイザは、ソースコードに大して意味を持つコードの最小単位である「トークン（字句）」に変換する。
パーサは、一連のトークンを言語の構文ルールに適合させ、その構文構造を明らかにする。225
    * 上記二つで構文解析器を作成している。Javaとかでも同じなのか。

* 図10-1 Jackコンパイラ 225
    * この図はとてもわかりやすい。

* 一般的に、プログラム言語は、それが許可するトークンと、そのトークンを意味のあるプログラム構造へ結合させる構文ルールを正確に指定する。226
    * 字句解析では高級言語のコードを意味のあるトークンというグループにまとめる。

* プログラマーは通常、LEX（lexical analysis）やYACC（Yet Another Compiler Compiler）などの”コンパイラ生成器”を使ってトークンナイザやパーサを作る。243
    * 一から構文解析器を書くことはないらしい。

* OSは通常、高水準言語によって書かれ、他のプログラムと同様にバイナリへとコンパイルされる。278
    * OSの実装をする際も何かしらの高級言語で書かれている。

* 高水準言語を用いる利点のひとつは、--変数のためのRAM領域への割当や、変数が必要でなくなったときにそれを再利用する方法について、プログラマーはその詳細を気に掛ける必要がない--という点が挙げられる。284
    * システムを作る上で各層毎に役割を与えてそれぞれを依存させないことでその中身を知らなくてもいいようになっている。クリーンアーキテクチャもこういった思考の元だと思う。
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;各本の総評&#34;&gt;各本の総評&lt;/h2&gt;
&lt;h3 id=&#34;試して理解linuxのしくみ実験と図解で学ぶosとハードウェアの基礎知識-1&#34;&gt;[試して理解]Linuxのしくみ　実験と図解で学ぶOSとハードウェアの基礎知識&lt;/h3&gt;
&lt;p&gt;この本は図が多めで理解しやすいように丁寧な説明がされています。
低レイヤー関連の本を読むとき、一番最初に読む本として適していると思います。
詳細な説明は割愛されているのでLinuxのしくみを知るための入門としてオススメです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025年を制覇する破壊的企業｜注目するべき企業が分かる</title>
      <link>https://www.yuyagishita.com/review/book/disruptive-companies-to-dominate2025/</link>
      <pubDate>Mon, 14 Jun 2021 22:44:30 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/disruptive-companies-to-dominate2025/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;distuptive&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/disruptive-companies-to-dominate2025.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回は「2025年を制覇する破壊的企業」をAudibleで聞きました。
最近は&lt;a href=&#34;https://journaling.page/&#34;&gt;Journal&lt;/a&gt;をリリースしてから次に何を作ろうかを決められずにだらだらと過ごしてます。
&lt;a href=&#34;https://muute.jp/&#34;&gt;muute&lt;/a&gt;っていうネイティブアプリでジャーナリングなどのサポートをしてくれて使いやすいアプリがあり、こういう方向性がメンタル領域では良いのかなとか思いました。&lt;/p&gt;
&lt;p&gt;さてこの本を聞いて気になった箇所をふれながら感想を書きます。&lt;/p&gt;
&lt;h2 id=&#34;注目するべき11社&#34;&gt;注目するべき11社&lt;/h2&gt;
&lt;p&gt;著者の山本康正さんがあげた破壊的企業はこれらの企業。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google&lt;/li&gt;
&lt;li&gt;Amazon&lt;/li&gt;
&lt;li&gt;Facebook&lt;/li&gt;
&lt;li&gt;Apple&lt;/li&gt;
&lt;li&gt;Microsoft&lt;/li&gt;
&lt;li&gt;Netflix&lt;/li&gt;
&lt;li&gt;Tesla&lt;/li&gt;
&lt;li&gt;CrowdStrike&lt;/li&gt;
&lt;li&gt;Robinhood&lt;/li&gt;
&lt;li&gt;Impossible Foods&lt;/li&gt;
&lt;li&gt;Shopify&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GoogleやAmazonは誰でも馴染みがあると思いますがCrowdStrike・Robinhood・Impossible Foodsは初耳でした。
CrowdStrikeはPCなどのセキュリティのサービスを提供している企業でインターネットをつなげているだけでPCのセキュリティを最新の状態にできるらしいです。
Robinhoodはゲーム感覚で投資ができるスマホアプリを提供している企業です。投資をするためには手続きが色々と必要だったり、投資アプリが使いづらかったみたいです。
それらの煩わしさから開放されているらしいです。
Impossible Foodsは代替肉を作っている企業です。大豆から肉に近い食感や味を作ることで人口増加により食料問題などの解決策になります。&lt;/p&gt;
&lt;p&gt;これらの企業を注目するべき理由として業界の常識を破壊するだろうってことがあります。
Teslaの話ででてくるロボタクシーは今のタクシー業界やUberなどをまるっと破壊しそうです。ロボが運転を代わりにやってくれるならわざわざ人がやる必要ないですよね。
AmazonやAppleなどはアマゾンプライムやiPhoneの利益が半端ないので他の業界に参入したとき赤字でもサービスを提供できます。
たとえば、Apple Cardはポイント還元を他のクレカよりも高めに設定したとしてもiPhoneユーザーにできればそこで採算が取れるみたいです。
それにそのサービスから得られるユーザーデータを分析することでより精度の高いサービスを考えられます。&lt;/p&gt;
&lt;p&gt;この本を聞いていて具体的になんで注目するべきかをビジネス面、技術面どちらの視点も入れていて非常にためになりました。&lt;/p&gt;
&lt;h2 id=&#34;コングロマリット体験データ&#34;&gt;コングロマリット、体験、データ&lt;/h2&gt;
&lt;p&gt;大切だと思った箇所についてふれます。
コングロマリットとは異業種にも手を伸ばして事業を始める企業のこと。
GAFAなどが映像業界に手を出したのもコングロマリットでGoogleのYouTubeやAmazonのプライムビデオなどが該当します。
技術力やデータを駆使して異業種の不便さを劇的に改善するのが今後のトレンドになりそうですね。&lt;/p&gt;
&lt;p&gt;ハードやソフトの発達によりサービスで得られる体験こそに価値があるという話がでてきます。
サブスクなどが流行っている理由も体験を得られるいい手段だからってことがあると思います。
家で映画を見る場合は15年前ならTSUTAYAとかでビデオを借りて家のビデオデッキを使ってみるっていうのが一般的だったと思います。
でもよくよく考えるとビデオの中身にある映画を見るっていう体験を僕たちは欲しいですよね。ビデオを借りることは手段でしかないです。
体験こそに価値があるのはそういうことです。&lt;/p&gt;
&lt;p&gt;これからの時代ではデータを制した企業が勝つっていう話もありました。
Amazonはユーザーの購買データを膨大に持っていてそれをうまく活用できれば、
「この人は肥満になりやすい商品ばっかり購入しているから保険金は高めに設定する。」といったAmazonの異業種である保険に対しても精度の高い便利な商品を作れます。
データをうまく活用することでユーザーを知ることができます。ユーザーを知れれば今何をすればいいのかが明確になり、新しい効果的な手を企業がうてます。&lt;/p&gt;
&lt;p&gt;これらのトレンドを活用する企業に先行投資すればがっぽり儲けられるかもしれないですね。笑&lt;/p&gt;
&lt;h2 id=&#34;個人レベルで必要な5つのスキル&#34;&gt;個人レベルで必要な5つのスキル&lt;/h2&gt;
&lt;p&gt;これらのスキルがあるとこれからの未来で市場価値の高い人材になれそうです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ファイナンス&lt;/li&gt;
&lt;li&gt;データサイエンス&lt;/li&gt;
&lt;li&gt;プログラミング&lt;/li&gt;
&lt;li&gt;英語&lt;/li&gt;
&lt;li&gt;ビジネスモデルを読む力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自分の中では英語は必須かなと思います。とくに英語の読む力が足りないと最新のニュースや論文などのキャッチアップができないです。
英語圏で情報が出てくることがほとんどなので、時代の最先端をいこうと思うと英語を読めないとつみますね。
データサイエンスやプログラミングなど今ブームになっているIT系の技術についてはある程度どういったものかを知っていればいいと思います。
僕はソフトウェアエンジニアをしているのでプログラミングスキルは一番伸ばさないといけない能力ですが、技術者ではない人はある程度中身を知っていて仕事を依頼できる状態なら問題なさそうです。
個人的にはファイナンスに関する知識が薄いのでここも身につけたいなと思ってます。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に&lt;/h2&gt;
&lt;p&gt;未来がどうなるかは正確にわかる人はいないですが、こういった未来を予測する系はワクワクするのでおもしろかったです。
今の自分は大した知識を持っていないのでもっとIT系だけではなく広い視点で物事を考えられるように学びたいなと思いました。
技術を使って世界を変えることで仕事を失う人がいるとは思いますが、より単純な仕事を機械に任せることで人はクリエイティブな仕事に専念できそうです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>オードリー・タン デジタルとAIの未来を語る｜デジタルとの向き合い方を考える</title>
      <link>https://www.yuyagishita.com/review/book/audreytang/</link>
      <pubDate>Sat, 15 May 2021 23:04:16 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/audreytang/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;audreytang&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/auderytang.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;最近ネットでよく見かけていたオードリー・タンが書いた「オードリー・タン デジタルとAIの未来を語る」をAudibleで聞きました。
ジムで筋トレしている時に耳が空いてるなと思ってここ数ヶ月筋トレをしながらAudibleを聞いています。
効率いいとは思いますが、トレーニング中につい考えてしまうので少しトレーニングの質が下がっているかなと思っています。&lt;/p&gt;
&lt;p&gt;今回は思ったことを書き殴るスタイルで本の内容をアウトプットします。&lt;/p&gt;
&lt;h2 id=&#34;台湾のコロナ対策ですごい結果を出していた&#34;&gt;台湾のコロナ対策ですごい結果を出していた&lt;/h2&gt;
&lt;p&gt;著者は台湾のデジタル担当政務委員であり、世界の中でもいち早く新型コロナウイルスの封じ込めに成功した台湾での対応により世界中に注目されたそうです。
対応内容として主に国民に効率よくマスクを配布するシステム開発をしたそうです。
この対応で僕がいいなと思ったことは国民と政府がお互いに信頼して対応していることです。政府のトップダウンで強制的にやらせるのではなく、国民の意見を尊重した上で対応していました。今の日本のコロナ対応をみていると政府と国民の間に信頼関係が構築できているようには思えないです。台湾では信頼関係があるからこそ妨げが少なく迅速に対応ができたのかなと思いました。&lt;/p&gt;
&lt;h2 id=&#34;aiとの付き合い方&#34;&gt;AIとの付き合い方&lt;/h2&gt;
&lt;p&gt;「今後は人々の仕事をAIが奪う。」といった考えが耳に入ってくるときがあります。ですが、AIはあくまで現代人がやっている単純な作業を代わりにやってくれて、よりクリエイティブな仕事を人ができるようにサポートしてくれる存在です。
これまでの歴史でも科学の発展により単純な作業をする仕事はなくなりました。たとえば、わざわざ洗濯板で洗濯しなくても洗濯機が代わりにやってくれたりとか。&lt;br&gt;
これからの時代は今までより変化が激しいと言われているので成長意欲がなく今と変わる気がない人にとっては仕事がなくなる恐れは確かにあると思います。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に&lt;/h2&gt;
&lt;p&gt;オードリー・タンの経歴が本当にすごくてびっくりました。デジタル担当だけではなくシリコンバレーで起業したり、OSSに貢献していたり。学校にはあまり通っていないみたいですが、自分のやりたいことが明確に決まっている場合はオードリー・タンみたいに学校に通わず挑戦するのがいいのかもと思いました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Journalを支える技術</title>
      <link>https://www.yuyagishita.com/indiedev/journal-tech/</link>
      <pubDate>Tue, 20 Apr 2021 20:50:14 +0900</pubDate>
      <guid>https://www.yuyagishita.com/indiedev/journal-tech/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;journal-tech&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/journal-tech.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://journaling.page/&#34;&gt;Journal&lt;/a&gt;というジャーナリングをするアプリをリリースしました。
ジャーナリングとは自分が思っていることを書き出すことで自分について理解を深めたり、自分がやりたいことを見つけるのに役立ったりします。
日記をイメージしてもらうのがわかりやすいと思います。&lt;/p&gt;
&lt;p&gt;今回はJournalを支えている技術について紹介します。&lt;/p&gt;
&lt;h2 id=&#34;フロントエンド&#34;&gt;フロントエンド&lt;/h2&gt;
&lt;h3 id=&#34;nextjs&#34;&gt;Next.js&lt;/h3&gt;
&lt;p&gt;フロントエンドは&lt;a href=&#34;https://nextjs.org/&#34;&gt;Next.js&lt;/a&gt;（React）とTypeScriptを使っています。
なるべくシンプルに作りたかったので全ページをSPAで作っていますが、SSGできそうなところはSSGを使って静的ファイルにしたいと思ってます。&lt;/p&gt;
&lt;h3 id=&#34;tailwind-css&#34;&gt;Tailwind CSS&lt;/h3&gt;
&lt;p&gt;CSSには&lt;a href=&#34;https://tailwindcss.com/&#34;&gt;Tailwind CSS&lt;/a&gt;を使っています。Next.jsとの相性が良さそうだったのとシンプルで使いやすそうだと思って選びました。CSSの知識が乏しいのでネットの有識者を参考にした結果、Tailwind CSSにしました。&lt;/p&gt;
&lt;h3 id=&#34;vercel&#34;&gt;Vercel&lt;/h3&gt;
&lt;p&gt;フロントエンドの本番環境のデプロイ先には&lt;a href=&#34;https://vercel.com/&#34;&gt;Vercel&lt;/a&gt;を使っています。
VercelはNext.jsの運営元でデプロイがとても簡単で使いやすかったので選びました。
GitHubのリポジトリを指定すれば自動でデプロイをしてくれますし、設定も少なめで本当に簡単です。&lt;/p&gt;
&lt;h3 id=&#34;vectr&#34;&gt;Vectr&lt;/h3&gt;
&lt;p&gt;サイトのロゴやファビコンを作るのに&lt;a href=&#34;https://vectr.com/&#34;&gt;Vectr&lt;/a&gt;を使っています。Vectrはsvg形式のファイルを無料で作れるので利用しました。&lt;/p&gt;
&lt;h2 id=&#34;バックエンド&#34;&gt;バックエンド&lt;/h2&gt;
&lt;h3 id=&#34;echo&#34;&gt;Echo&lt;/h3&gt;
&lt;p&gt;バックエンドはGoのフレームワークである&lt;a href=&#34;https://echo.labstack.com/&#34;&gt;Echo&lt;/a&gt;を使っています。
GoでAPIを作るのにEchoはとてもお手軽とのことだったので選びました。
アーキテクチャにはクリーンアーキテクチャを選んでいます。クリーンアーキテクチャでコードを書いたことがありませんでしたが、テストコードが書きやすかったり、外部のライブラリなどの依存が減るので採用してよかったなと思っています。
また、コード量が増えたことはデメリットかなと思います。&lt;/p&gt;
&lt;h3 id=&#34;cloud-run&#34;&gt;Cloud Run&lt;/h3&gt;
&lt;p&gt;バックエンドの本番環境のデプロイ先は&lt;a href=&#34;https://cloud.google.com/run/&#34;&gt;Cloud Run&lt;/a&gt;を使っています。
ローカルの開発環境でDockerを利用していて同じようなDockerfileでCloud Runにデプロイができ、Cloud Runがいい感じにリクエストをさばいてくれます。&lt;/p&gt;
&lt;p&gt;ただ、アプリが起動するまでに10秒弱ぐらい時間がかかってしまいAPIのレスポンス待ちになってしまうのがデメリットかなと思います。Cloud RunはフルマネージドでAPIを叩かれていないときはコンテナが起動していないのでレスポンスに少し時間がかかってしまうのは仕方ないですね。&lt;/p&gt;
&lt;h3 id=&#34;cloud-sql&#34;&gt;Cloud SQL&lt;/h3&gt;
&lt;p&gt;データベースの本番環境は&lt;a href=&#34;https://cloud.google.com/sql/&#34;&gt;Cloud SQL&lt;/a&gt;(PostgreSQL)を使っています。
普段の仕事でも使っているRDBが自分としては使いやすいの選びました。&lt;/p&gt;
&lt;h2 id=&#34;その他に利用しているサービス&#34;&gt;その他に利用しているサービス&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/features/actions&#34;&gt;GitHub Actions&lt;/a&gt;&lt;br&gt;
CI/CDツール。バックエンドのデプロイに使っています。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://firebase.google.com/docs/auth/&#34;&gt;Firebase Authentication&lt;/a&gt;&lt;br&gt;
ログイン認証のため。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://domains.google/intl/ja_jp/&#34;&gt;Google Domains&lt;/a&gt;&lt;br&gt;
ドメイン取得のため。なるべくGCPにサービスを寄せている。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>禅、シンプル生活のすすめ｜手放すことから始めよう</title>
      <link>https://www.yuyagishita.com/review/book/the-art-of-simple-living/</link>
      <pubDate>Thu, 11 Feb 2021 17:21:21 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/the-art-of-simple-living/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;the-art&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/the-art-of-simple-living.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回の記事は「禅、シンプル生活のすすめ」です。今回もAudibleで聞きました。
最近、ミニマリストや禅などのシンプルな考え方が気になっていたので購入しました。
著者は枡野俊明（ますのしゅんみょう）さんという僧侶、作庭家、日本造園設計代表、多摩美術大学教授などいろんなことをしている人みたいです。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;シンプルに生きることで生活の質を上げる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;とらわれない&lt;br&gt;
人は自分が正しいと思う考えにたどり着いたとき、その考えに固執しがち。
考えや常識にとらわれないことで変化を楽しめるし気持ちが楽になる。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;手放す&lt;br&gt;
物事がうまくいかないとき、何かが足りないと思ってしまいがち。
現状を変えるなら何かを得る前にまずは手放す。今まで抱えていた執着のせいでうまくいってなかったのかもしない。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;不安は実体がない&lt;br&gt;
人は不安を感じることが多いがたいていの不安は現実では起きない。
昔の逸話で不安を抱えている人がお坊さんに相談をしたとき、そのお坊さんが「不安を出してくれれば私が消してあげよう。」と言った。相談者は不安を出すことができないと気づいた。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;今目の前に集中する&lt;br&gt;
将来のことを考えてもどうなるかは誰にもわからない。考えることは大切だができない理由を探している場合が多い。
わからないからこそ不安を抱えるのではなく今目の前にだけ集中する。来月死ぬとしたら誰もが今目の前に集中するはず。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;知足&lt;br&gt;
自分が持っていないものを欲しがったり自分以外の誰かに憧れるのではなくて、今自分がすでに持っているもの注目して生きるということが「足るを知る」。現状の環境や自分が持っているものに感謝をしつつ自分の持っているもの十分に活かそう。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;なぜ墨で絵を描くのか&lt;br&gt;
たとえば同じ夕日でも人によって感じ方がそれぞれ違う。
墨を使って白黒で描くことによりそれを見た人が自分自身の色をつけられる。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;断捨離をする&lt;br&gt;
手放すことを進めるためにも断捨離をして身軽になりたい。
1年間使っていないものは基本的には捨てる対象。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本は電子書籍かオーディオブックにする&lt;br&gt;
本は部屋の場所を取る大きな要因。自分がその本を部屋に置きたいと強く思わない限りはデータで本を扱う。
iPad miniの新型がでたら買って電子書籍を読む用として使う。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;洋服の制服化をする&lt;br&gt;
洋服も場所を取るし手放す対象。洋服の制服化をすると毎日何着るか考えなくて済むし、お金もかからない。
いきなり同じ服しか着ないのはむりなので最低限の洋服を持つことから始める。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本当に必要な質の良い物をもつ&lt;br&gt;
量よりも質を考えて大切に物を扱いたい。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;アドラーと似ている考え方が結構多いと思った&lt;br&gt;
他の本で読んだ考え方と似ている箇所があったりと繋がりがあっておもしろい。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;自分のできる範囲からミニマリストを目指してみる&lt;br&gt;
シンプルに生きるためにも少しづつ自分にあった方法を探したい。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;持つことはコストがかかる&lt;br&gt;
今まであまり意識したことがなかったが持つだけでもコストがかかっている。
物理的にも場所を取るし、心が重くなる原因にもなる。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>最新の継続日数を取得するSQLを作ろうとした</title>
      <link>https://www.yuyagishita.com/tech/database/get-current-streak-postgresql/</link>
      <pubDate>Sun, 31 Jan 2021 12:52:31 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/database/get-current-streak-postgresql/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;get-current-streak-postgresql&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/get-current-streak-postgresql.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;このブログは技術記事メインで運用しようとして始めましたが、気付いたら本のアウトプットメインになってました。笑&lt;br&gt;
たまには技術記事を書こうということで今週取り組んでて苦しんだPostgreSQLを使った最新の継続日数取得について書きます。&lt;/p&gt;
&lt;h2 id=&#34;経緯&#34;&gt;経緯&lt;/h2&gt;
&lt;p&gt;今コツコツと取り組んでいる個人開発でGitHubとかで見る最新の継続日数の取得をしたいと考えたところから始まりました。
ちなみにこんな感じのやつです。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;最新の継続日数&#34; loading=&#34;lazy&#34; src=&#34;../img/current-streak.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Current StreakをSQLで実現しようとしました。&lt;/p&gt;
&lt;h2 id=&#34;実装&#34;&gt;実装&lt;/h2&gt;
&lt;p&gt;ネットで最新の継続日数を取得するSQLの情報が全然なくどうしようかなと迷っていたら、&lt;a href=&#34;https://social.msdn.microsoft.com/Forums/sqlserver/en-US/11df762f-1182-41d3-a9ab-6273516d9e82/latest-number-of-consecutive-days-quotcurrent-streakquot?forum=transactsql&#34;&gt;Latest Number of Consecutive Days(Current Streak)&lt;/a&gt;を見つけました。
この記事を見ていると何やらSQL Serverで実現したいことを実装しているっぽい！ということでこれをPostgreSQLに書き換えてみようと試みました。&lt;/p&gt;
&lt;p&gt;上記記事で最終的にできてたSQLはこんな感じでした。これをPostgreSQLに変えていきます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DECLARE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;habits&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ID&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IDENTITY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Target&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;habits&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Target&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DECLARE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entries&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ID&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IDENTITY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EntryDate&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entries&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EntryDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;20150221&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;20150222&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;20150223&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WITH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;distinct_dates&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DISTINCT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dateadd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HOUR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EntryDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Day&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entries&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;numbering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;distinct_dates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDateApply&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row_number&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OVER&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PARTITION&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;distinct_dates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ORDER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Day&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DESC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rowno&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;distinct_dates&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;outer&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ee&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EntryDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;lastDate&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;from&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entries&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ee&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;where&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ee&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;habitid&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;distinct_dates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDateApply&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDate&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;LastEntryDate&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DATEDIFF&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getdate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;DateDifference&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;case&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;when&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DATEDIFF&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getdate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;THEN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;MIN&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rowno&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DATEDIFF&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getdate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;CurrentStreak&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;numbering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LEFT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;JOIN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;numbering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ON&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;                        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AND&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rowno&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rowno&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Day&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;NULL&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;datediff&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DAY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;GROUP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HabitID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastDate&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;で実際にやってみたらこんなSQLができ上がりました。SQL ServerとPostgreSQLで書き方の差があって結構苦労しました。
&lt;code&gt;outer apply&lt;/code&gt;の書き換えとかも訳わからなくて疲れました。。&lt;/p&gt;</description>
    </item>
    <item>
      <title>教養としての投資｜投資を始めよう</title>
      <link>https://www.yuyagishita.com/review/book/investing-as-an-education/</link>
      <pubDate>Fri, 29 Jan 2021 22:31:50 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/investing-as-an-education/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;investing&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/investing-as-an-education.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回の記事は「ビジネスエリートになるための教養としての投資」です。今回もAudibleで聞きました。
この本は農林中金バリューインベストメンツでCIO（最高投資責任者）の奥野一成（おくのかずしげ）さんが執筆された本です。
長年投資の世界にいる奥野さんが日本人にはなぜ投資が必要なのかをわかりやすく解説してくれてます。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;金融リテラシーを身につけて豊かになる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;企業が利益を出し続けるために必要な要素は「参入障壁」「付加価値」「長期潮流」&lt;br&gt;
まず「参入障壁」の高さが大切。競合に簡単にまねできないビジネスだと市場の取り合いにならない。「付加価値」はその会社が参入障壁を持っていても社会に対して価値を提供できていないと意味がない。
「長期潮流」は「参入障壁」「付加価値」がそろった時に効果を発揮するもので今後の社会の流れに沿っているビジネス（世界人口増加による食糧危機や靴などの必需品の需要増加）なら利益が増幅する。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;楽して稼げるは投機か詐欺&lt;br&gt;
楽して稼げる話があったとしてもしそれが本当なら世の中の人みんな稼げているはず。稼げていないってことは元々勝率50%ぐらいのギャンブルか100%負ける詐欺。
もし本当に楽して稼げる話があったとしてなぜあなたにその情報が届くのかちゃんと考えた方がいい。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;日本人は投資リテラシーが低い&lt;br&gt;
日本人は投資が危険とか汗水かいて働いて得たお金にこそ価値があると考えている人が多い。
実際には投資は正しい知識を持てばリスクに対してリターンをしっかりと得られるし、会計や英語や世界情勢など複合的な知識が求められるので頭でとても汗水かいている。
日本人はそもそも投資の経験不足で、日本人の資産内訳が現預金53.3%でアメリカの資産内訳が12.9%からも投資をしないことがわかる。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;短期的な投資はゼロサムゲームでほとんど投機&lt;br&gt;
短期的な投資はたとえば株だと上がった株価で儲けた人がいるならその分損をした人がいる。あくまで株価の上下のみで勝ち負けを決めているため。
これはギャンブルになりやすい。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;働いて得たお金は基本的に自己投資に回して余剰資金を投資に回す&lt;br&gt;
資金力がない僕のような会社員はまずは自己投資に回すことで自分をアップデートするべき。高い価値を発揮する労働力になればその分稼ぐ力が身につく。
で余った分のお金は生活が苦しくならないレベルで投資に回す。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;つみたてNISAで少額から始める&lt;br&gt;
銘柄を選んで株式投資する場合はその会社の株を死ぬまでもつ気持ちで買うべきって話があって今の自分の投資だと銘柄を選ぶ能力がない。
なので、まずはつみたてNISAでアメリカ株に投資することから始める。また投資状況が気になって毎日チェックして時間を使ってしまうのはもったいないので無理ない範囲から始める。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ウォーレン・バフェット最強。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>デール・カーネギーの「人を動かす」はとりあえず読むべき</title>
      <link>https://www.yuyagishita.com/review/book/how-to-win-friends-and-influence-people/</link>
      <pubDate>Sat, 09 Jan 2021 18:58:47 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/how-to-win-friends-and-influence-people/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;how&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/how-to-win-friends-and-influence-people.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;2021年に入って一発目の記事はデール・カーネギーの「人を動かす」です。いつも通りAudibleで聞きました。
この本は1936年発売で作者のデール・カーネギーは作家、セールス・スピーチなどの対人スキルの研究者だったそうです。
自分の目的のためにどうやって相手に気持ちよく動いてもらうかについてさまざまな偉人の話を交えながら30原則にまとめてあります。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;人の動かし方を学んで、人間関係を良好にする方法を学ぶ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;自己重要感を満たしてあげることが大切&lt;br&gt;
人を動かすためにもっとも大切なことは相手に自己重要感を与えること。自己重要感は自分の存在がこの世界で特別で重要だと思いたい感情のことで承認欲求とほぼ同じ。
人は誰しもこの自己重要感を生まれながらに持っていて、自己重要感を満たすととても幸せな気持ちになる。自己重要感を与えるもっともかんたんな方法は褒めること。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;議論をしない、否定をしない&lt;br&gt;
議論は相手の意見と自分の意見が違った時に起きるが、自分の正当性を相手にぶつけて議論に勝ってもいいことはない。相手は自分が非難されて攻撃されたと感じてしまう。
そうすると自分を守るために自己正当化をしたり、議論の相手を敵だと認識して人を動かすどころではなくなる。相手に気持ちよく動いてもらうのに議論や否定などの攻撃はアンチパターン。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;相手に心から関心を寄せる&lt;br&gt;
人を動かすためには相手を褒める・励ます・話を聞く・相手に思いつかせるなどのさまざまな手法があるが、これらは相手に心から関心を寄せていないと逆効果になる。
てきとーに褒められらたり、励まされてもばかにされたように感じるだけ。本当に相手の立場になったつもりで考えることが大切。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;相手が間違っていると思っても相手の立場に立って尊重する&lt;br&gt;
間違っていることを否定されたらどういう気持ちになるか考えて行動する。もしどうしても指摘したいときはまずは相手のことを褒めたりしてから「〇〇したらどうか？もっとよくなるかも」と提案をする。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;自分の目的別に行動を考えて実行する&lt;br&gt;
自分の目的が短期的に人を動かして成果を出したい場合は相手を褒めることを重視して行動をする。
自分の目的が長期的に家族のような関係を築きたい場合は褒めないようにする。アドラー心理学にもあるように褒めることは承認欲求の奴隷に相手をしてしまうことに繋がるため。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;この本は当たり前がいくつも書かれているが、それを実践することは難しいからこそベストセラーになっていると思った。&lt;/li&gt;
&lt;li&gt;人を動かすvs嫌われる勇気の構図が頭に浮かんできて褒めるについてとても考えさせられた。これらの本を読むと矛盾しているように思うがそもそもの目的が違っていてビジネス向けのカーネギー、家族向けのアドラーって感じだと思う。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>2020年の振り返り</title>
      <link>https://www.yuyagishita.com/lookback/2020/</link>
      <pubDate>Sat, 26 Dec 2020 21:38:51 +0900</pubDate>
      <guid>https://www.yuyagishita.com/lookback/2020/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;2020&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/2020.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;2020年ももう終わりですね！毎年思いますが、1年が終わるの本当に早いです。皆さん2020年はどんな1年だったでしょうか。
コロナウイルスの影響で生活ががらりと変わった人がとても多いと思います。僕は仕事では今まで週2でやっていたリモートワークが週5に変わった感じで仕事がなくなるとかはありませんでした。
柔軟な対応をしてくれた会社には感謝です。&lt;br&gt;
環境の変化が激しかった2020年ですが、自分は何ができて何ができなかったのか振り返ろうと思います。&lt;/p&gt;
&lt;h2 id=&#34;できたこと&#34;&gt;できたこと&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;ブログ開設&lt;/li&gt;
&lt;li&gt;Twitterの継続&lt;/li&gt;
&lt;li&gt;個人開発に取り組んだ&lt;/li&gt;
&lt;li&gt;AtCoderを始めた&lt;/li&gt;
&lt;li&gt;自宅環境の改善&lt;/li&gt;
&lt;li&gt;読書の継続&lt;/li&gt;
&lt;li&gt;ジャーナリングの習慣化&lt;/li&gt;
&lt;li&gt;筋トレの継続&lt;/li&gt;
&lt;li&gt;サウナの習慣化&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;1-ブログ開設&#34;&gt;1. ブログ開設&lt;/h3&gt;
&lt;p&gt;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;ja&#34; dir=&#34;ltr&#34;&gt;本日、個人ブログの公開を行いました！！&lt;br&gt;&lt;br&gt;まだまだ、記事は少ないし、サイトの見栄えや設定が整っていませんが、これから改善していくので、よろしくお願いします！！&lt;a href=&#34;https://t.co/aFzW1X5Cyy&#34;&gt;https://t.co/aFzW1X5Cyy&lt;/a&gt;&lt;/p&gt;&amp;mdash; Yu (@yuyagishita) &lt;a href=&#34;https://twitter.com/yuyagishita/status/1241731942266966020?ref_src=twsrc%5Etfw&#34;&gt;March 22, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;

&lt;br&gt;
3月22日にブログの公開をしました。コロナウイルスが日本で流行り始めて家にいる時間がめちゃくちゃ増えたので前から作りたかったブログを作りました。
ブログはGolang製SSGのHugoを使って構築しました。Golangの学習も兼ねてHugoを選びましたが、今だったらNext.jsとかGatsbyとかを選んでいたかもです。&lt;/p&gt;
&lt;h3 id=&#34;2-twitterの継続&#34;&gt;2. Twitterの継続&lt;/h3&gt;
&lt;p&gt;去年Twitterをはじめて気付いたら1年以上経っていました。Twitterはつよつよエンジニアをフォローして考え方を吸収したり、情報を集めることをメインで利用してました。
情報発信の場としてはうまく活用できてないですが、今の自分では駆け出しエンジニアにフォローされるよう頑張るぐらいしかできないしそもそもフォロワーを増やす意味は？って考えたら
発信に力をいれる必要が今はないかもと思ってます。&lt;/p&gt;
&lt;h3 id=&#34;3-個人開発に取り組んだ&#34;&gt;3. 個人開発に取り組んだ&lt;/h3&gt;
&lt;p&gt;自分的には個人開発に力を入れて時間をたくさん使ってました。
個人開発は企画、デザイン、フロント、バックエンド、DB、インフラなどすべてを自分でやらないといけなくてめちゃくちゃ勉強になりました。
個人開発はリリースして収益化できればそれで食べていけるし、ポートフォリオとして機能するし、勉強になって自分のスキルが向上するしエンジニアにとっていいことしかないなーと思いました。
自分のプロダクトを作りたい、おもしろいことをしたいって気持ちにしたがって来年も取り組みます！&lt;/p&gt;
&lt;h3 id=&#34;4-atcoderを始めた&#34;&gt;4. AtCoderを始めた&lt;/h3&gt;
&lt;p&gt;自分のプログラミング能力をあげたいと思って競技プログラミングを始めました。D問題以上が解けなくて自分の力のなさを実感しています。。
僕はPythonで競技プログラミングをしていて、C系に比べるとちょっと遅いのかなーと思いつつ仕事で使ってある程度かけるPythonでやってます。&lt;/p&gt;
&lt;h3 id=&#34;5-自宅環境の改善&#34;&gt;5. 自宅環境の改善&lt;/h3&gt;
&lt;p&gt;コロナウイルスの影響で自宅にいる時間がめちゃくちゃ増えたので自宅環境の改善をしました。
自分の部屋が狭いので家具を捨ててスペースを作って、そこにフレキシースポットのデスクとアーロンチェアの中古を置いてます。また、HHKBを買ったり（これまじでいい買い物だった。）、AirPods Proを買ったり（隣の住人がうるさくてノイズキャンセルしたくてw）といい感じになりつつあります。&lt;br&gt;
次は4kモニターを買う予定です。お金がありません。&lt;/p&gt;
&lt;h3 id=&#34;6-読書の継続&#34;&gt;6. 読書の継続&lt;/h3&gt;
&lt;p&gt;今年はいろんな本を読みました。読んだといってもほとんどAudibleなので聞いたが正解ですかね。
読んだ本はこれらの本です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;嫌われる勇気&lt;/li&gt;
&lt;li&gt;幸せになる勇気&lt;/li&gt;
&lt;li&gt;LIFE SHIFT&lt;/li&gt;
&lt;li&gt;仕事は楽しいかね？&lt;/li&gt;
&lt;li&gt;論語と算盤&lt;/li&gt;
&lt;li&gt;1兆ドルコーチ&lt;/li&gt;
&lt;li&gt;僕は君の「熱」に投資しよう&lt;/li&gt;
&lt;li&gt;パン屋ではおにぎりを売れ&lt;/li&gt;
&lt;li&gt;デール・カーネギーの人を動かす方法（読み途中）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;アドラー心理学の嫌われる勇気、幸せになる勇気が1番衝撃でした。マジでオススメです。
読書は自分の世界が広がるので今後も続けます。&lt;/p&gt;
&lt;h3 id=&#34;7-ジャーナリングの習慣化&#34;&gt;7. ジャーナリングの習慣化&lt;/h3&gt;
&lt;p&gt;ジャーナリングを始めました。詳しくはググって欲しいです。
代わりに0秒思考をやめました。ジャーナリングは自分の気持ちや考えを0秒思考よりもより柔軟に広く深められると思ったのでこっちに乗り換えました。
0秒思考ありがとう。&lt;/p&gt;
&lt;h3 id=&#34;8-筋トレの継続&#34;&gt;8. 筋トレの継続&lt;/h3&gt;
&lt;p&gt;週2筋トレを継続しています。全人類やった方がいいですね、間違いない。
緊急事態宣言のときは家で自重トレをしてましたが、基本的にジムにいってます。
継続した結果、体重が72.5kg→65kgまで減って満足です。体が軽い。
今度ブログの記事にしようかなと思っています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>TablePlusで追加したデータが取得できない</title>
      <link>https://www.yuyagishita.com/tech/database/not-get-data-added-in-tableplus/</link>
      <pubDate>Mon, 07 Dec 2020 20:48:35 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/database/not-get-data-added-in-tableplus/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;not-get-data-added-in-tableplus&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/not-get-data-added-in-tableplus.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;PostgreSQLにTablePlusからデータを作成したはいいもののGolangから作成したデータが取得できない。。
ということが発生していました。解決策はとても単純でしたが、少しハマったので記事にしました。&lt;/p&gt;
&lt;h2 id=&#34;解決策&#34;&gt;解決策&lt;/h2&gt;
&lt;p&gt;TablePlusの画面でデータを作成した後にコミットができていなかったです。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;データ作成&#34; loading=&#34;lazy&#34; src=&#34;../img/not-complete-commit.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;上記画像の状態だとコミットができていません。⌘Sなどでコミットしてあげましょう。&lt;/p&gt;
&lt;p&gt;しっかりと公式ドキュメントを読まなあかんですね。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「パン屋ではおにぎりを売れ」で考える技術を身に付けよう</title>
      <link>https://www.yuyagishita.com/review/book/sell-onigiri-in-bakery/</link>
      <pubDate>Wed, 18 Nov 2020 23:37:31 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/sell-onigiri-in-bakery/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;sell-onigiri-in-bakery&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/sell-onigiri-in-bakery.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回は「パン屋ではおにぎりを売れ」をAudibleで聞きました。この本は今年の6月発売なのにすぐにAudibleに対応されていてAmazonさんさすがです。&lt;br&gt;
この本の著者は編集者の柿内尚文さんでさまざまなベストセラーを世に送り出していて、企画した本の累計発行部数が1000万部を超えているそうです。
漫画ではなくビジネス書でこれだけ売り出すのは相当すごいみたいですね。&lt;br&gt;
めちゃくちゃ結果を出している柿内さんはセンスがあったからとつい思ってしまいますが、
ご本人は自分のことを平凡だと言っていて考える技術を身に付けて実践してきたから今があると言っているそうです。
この本は柿内さんが実践している考える技術について詳しく解説されています。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;考える技術を学んで自分の人生に活かす&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;素晴らしいアイデアを生むための3つのルール&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;ゴールを決める&lt;/li&gt;
&lt;li&gt;インプットして現状を整理する&lt;/li&gt;
&lt;li&gt;考える技術を使う&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;「考える」の基本は「広げる」と「深める」&lt;br&gt;
「広げる」ことで可能性を考えて、新しいものを生み出すことができる。&lt;br&gt;
「深める」ことで本質的な価値に気付ける。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ずらす法&lt;br&gt;
今存在しているものを位置をずらすことで新しい価値を生む考え方。
柿内さんが若手ビジネスパーソン向けに作成した「「のび太」という生き方」が40代女性に売れていて小中学生からファンレターがよく届いてたことから、
児童向けの本としてアピールすることで40万部のベストセラーにした。ずらすことで新しい価値が生まれる。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;かけあわせ法&lt;br&gt;
さまざまなことやものをかけあわせることで思考を広げて新しいものを生む考え方。
ヒットの2大要素は「新しさ」と「共感」。「出会ったことがない言葉と言葉」をかけあわせて思いもよらないアイデアを生むきっかけになる。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;360度分解法&lt;br&gt;
360度全方位から分解して魅力や価値があるところを無理やりにでも見つける考え方。
たとえば、出版業界では不況だが本をもっと買ってもらうためにはどうするかを考える際に「本と健康」というテーマを作ってみる。
このテーマで本を買ってもらうために健康長寿の人に読書の習慣をもつ人が多い、読書は脳を若返らせる、短い読書でもストレスが大幅に減る、といったデータがあまり知られていないことを活用して
本の価値を伝えることができるのではと考える。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;シコ練&lt;br&gt;
考える練習を習慣化する。ロジカル思考で考えを深めたり、他でも使えないか考えを広げたり、本書で紹介された考える技術を元に考えて意識せずともできるようにする。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;思考ノートで貯金&lt;br&gt;
シコ練や日頃考えた内容をメモすることで思考を貯金する。いつかどこかで活きることがあるかもしれない。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ロジカル思考やアイデアを生む時の考え方を言語化して誰でも体現ができるようにしていてとても分かりやすかった。&lt;/li&gt;
&lt;li&gt;「仕事は楽しいかね？」で「新しいアイデアは新しい場所に置かれた古いアイデア」という言葉があったが、かけあわせ法がまさにこれだなと思った。&lt;/li&gt;
&lt;li&gt;とても読みやすい本なので、ロジカル思考とかが苦手だったり知らない人に対してオススメしたいと思った。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>「幸せになる勇気」でアドラー心理学の実践方法がわかる</title>
      <link>https://www.yuyagishita.com/review/book/the-courage-to-be-happy/</link>
      <pubDate>Thu, 29 Oct 2020 22:02:46 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/the-courage-to-be-happy/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;the-courage-to-be-happy&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/the-courage-to-be-happy.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回は以前に紹介した「嫌われる勇気」の続編である「幸せになる勇気」をAudibleで聞きました。
アドラー心理学は今までの生き方とはガラッと変わるような考え方をしていて前作を読んだ時にはとても感銘を受けましたが、結局生活の中にどうやって落とし込めばいいんだろう？みたいな感じに僕自身なっていました。
本作ではアドラー心理学の実践方法にふれていて前作を読んだ人は必ず読んだ方がいいなと思いました。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;アドラー心理学の実践方法を学ぶ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;叱っても、褒めてもいけない。&lt;br&gt;
叱ることは相手を尊敬せずに従わせる行為であり、コストの低い暴力的なコミュニュケーションである。
また、褒めることは相手の承認欲求を満たす行為であり、所属する共同体の中で競争を産んでしまう。
競争が生まれると勝ち負けが生まれて誰もが敵になってしまう。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;教育する際に「問題行動の5段階」は知っておいた方がいい。&lt;br&gt;
第一段階：称賛の欲求&lt;br&gt;
褒めてもらうことで共同体の中で特権的な地位を得ようとする。&lt;br&gt;
第二段階：注目喚起&lt;br&gt;
とにかく目立つことで特別な存在になろうとする。&lt;br&gt;
第三段階：権力争い&lt;br&gt;
戦いに勝利することで、自らの力を誇示して特権的な地位を得ようとする。&lt;br&gt;
第四段階：復讐&lt;br&gt;
愛が得られないとわかったので、他者と憎しみでつながろうとする。&lt;br&gt;
第五段階：無能の証明&lt;br&gt;
これ以上の絶望を経験したくないので、あらゆる課題から逃げようとする。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;尊敬とは、人間の姿をありのままに見て、その人が唯一無二の存在であることを知る能力のことである。&lt;br&gt;
この言葉はエーリッヒ・フロムの言葉で普通に世間で認知されている尊敬とかかなり違っている。
一般的な尊敬は経営者や上司や芸能人などに憧れを抱くような感情だと思うが、エーリッヒ・フロムはこう言っている。&lt;br&gt;
「それは尊敬ではなく、恐怖であり、従属であり、信仰です。相手のことをなにも見ておらず、権力や権威に怯え、虚像を崇めているだけの姿です。」&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;自立とは自己中心性からの脱却である。&lt;br&gt;
自立はただ親元を離れて自分の力で生活をすることとかではなく、愛のタスクに向き合って人生の主語を「わたし」から「わたしたち」に変えること。
利己的にわたしの幸せを求めるのではなく、利他的にあなたの幸せを願うのではなく、不可分なるわたしたちの幸せを築き上げることが愛である。
わたしたちの幸せを得るための課題こそが共同体感覚にも繋がる。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;叱ることも褒めることもせずに相手を尊敬する。&lt;br&gt;
叱ることは悪影響でしかないので絶対にしない。
褒めない対応は難しい場面があるが基本的に相手を尊敬して成果を出した場合もその相手が頑張ったから今があることを伝える。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;相手を信頼する。&lt;br&gt;
人の悩みは人間関係であり、人の幸せも人間関係から得ることができる。
交友関係を築くためにも相手がどういう人間なのかよく考え、その上で相手を損得なしに信頼する。
だが何度も裏切ったりする相手の場合は無理に信頼をする必要はない。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;本作もめちゃくちゃおもしろかった。アドラー心理学は理解するのが難しいが確かにって思うことがたくさんある。&lt;/li&gt;
&lt;li&gt;他者とは分かり合えないとか一見すると冷たい考え方に思えるが、現実的に考えてどうやったら幸せに生きることができるのかに踏みこんでいて興味深い。&lt;/li&gt;
&lt;li&gt;愛のタスクの話で運命に支配されてはいけない、自らの勇気を持って運命の手綱を握るみたいな話もおもしろかった。
よく僕たちは「運命の人」とか言うがそれは普段出会う人などが「運命の人」ではなかったと無理やり納得させているだけで、
この人とどんな困難に襲われても共に歩む勇気を持てていない。
将来のことは誰もわからないからこそ楽になるため、運命の下僕になるのではなく、運命といえるだけの関係を築き上げることが大切。
幸福な運命を作れるのかは自分次第。運命に中指を立てろ！&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>「僕は君の「熱」に投資しよう」は挑戦したい気持ちを後押ししてくれる</title>
      <link>https://www.yuyagishita.com/review/book/anri-enthusiasm/</link>
      <pubDate>Thu, 08 Oct 2020 22:28:40 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/anri-enthusiasm/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;anri-enthusiasm&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/anri-enthusiasm.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回僕が読んだ本は、「僕は君の「熱」に投資しよう」です。
久しぶりにAudibleではなく紙で読みましたが、やっぱり紙で文字をみながらの方が何回も反芻できるし読んでる感があっていいので個人的には紙派です。&lt;/p&gt;
&lt;p&gt;この本の著者は佐俣アンリさんという方で、ベンチャーキャピタルで有名な松山太河さんという方のカバンもちからはじめてシードファンド（まだ事業ができていない初期段階に投資するファンド）として
日本最大となる300億円のファンドを運営しているそうです。300億円を動かすとかはデカすぎて想像がつきませんでしたが、この本を読んでいると常におもしろいことや世の中に影響を与えることに挑戦していて
人生をめちゃくちゃ楽しんでいることが伝わってきました。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;自分の挑戦したいことに役立てる&lt;/li&gt;
&lt;li&gt;起業家と投資家について知る&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ただ頑張るだけでは意味があまりなく、「どこで」頑張るかが大切。&lt;br&gt;
たとえば、食品工場で死ぬほど頑張って個人の生産性を上げたところでインパクトは少ないしその工場の偉い人が得をするだけ。
努力をする場所を間違わなければその環境が自分のなりたい姿に最短距離で近づけくれる。&lt;/li&gt;
&lt;li&gt;自分の中に熱があるならぶつけようぜ。&lt;br&gt;
熱を持っていて挑戦できることはとても楽しくやりがいがある。
スポーツやアートなど熱をぶつける対象はなんでもいいが、起業なら何度失敗してもやり直せるし想像ができないような成果を上げることもできる。&lt;/li&gt;
&lt;li&gt;シードを狙うベンチャーキャピタリストはロマンをおって投資をしている。&lt;br&gt;
機関投資家などはロジカルに考えて投資した以上のリターンが見込めるかを考えているが、アンリさんは人類の進歩や社会に圧倒的なインパクトを出すかもこいつっていう直感を大事にしている。
そのためロジカルに考えると絶対回収できなさそうな投資を行っている。&lt;/li&gt;
&lt;li&gt;逆境の時にこそ逃げないこと。&lt;br&gt;
頭がいい人はその状況を分析して失敗だと思ったら逃げてしまう。逆境こそ耐えて跳ね除ける人が信頼を勝ち得ることができる。&lt;/li&gt;
&lt;li&gt;本当に大切なことを「1つだけ」やろう。&lt;br&gt;
人は今やらなければいけないことを後回しにしてやったほうがいいことをしてしまう。
自分がやりたいことを達成するためにやるべきことのみに取り組もう。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;自分がやりたいことに時間をよりかける。&lt;br&gt;
今自分は「プロダクトを作ること」をしたいので、ブログや筋トレ以外の遊びなどの時間を必要最低限にする。
「Just for Fun」の精神で取り組む。&lt;/li&gt;
&lt;li&gt;正しい場所で努力をする。&lt;br&gt;
個人でやっているだけでプロダクトを作るための環境にいないので、プロダクトを作っている人がいる場所に飛び込む。
また、1週間の大半を勤めている会社の仕事に費やしていてこの時間をどうにかしたい。。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;挑戦している人って最高にかっこいいし、自分もそういう人でありたいと思った。&lt;/li&gt;
&lt;li&gt;正しい場所で本当に大切な努力をすることは理解したが、いきなり会社をやめてノープラン！みたいなことをすると生活ができなくなるので、
挑戦しつつ生活は担保できるラインで攻めたいなと思った。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Next.js(React),Go kit(Golang)で「SENRYU」を個人開発した</title>
      <link>https://www.yuyagishita.com/indiedev/senryu/</link>
      <pubDate>Sun, 20 Sep 2020 22:04:18 +0900</pubDate>
      <guid>https://www.yuyagishita.com/indiedev/senryu/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;senryu&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/senryu.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回はじめて個人開発でアプリを作りました！！今年の1月に個人開発をしようと考えてから、アプリ企画・技術選定をして、開発途中で作るアプリを変えたりと色々と迷走しましたが、なんとか一区切りつきました！！（8か月ぐらいかかるなんてチンタラやってたなあ（笑））&lt;/p&gt;
&lt;p&gt;開発したアプリや今まで考えていたことなどをまとめます。&lt;/p&gt;
&lt;h2 id=&#34;アプリ概要&#34;&gt;アプリ概要&lt;/h2&gt;
&lt;p&gt;川柳を共有することができるSNSアプリ「SENRYU」を開発しました。&lt;/p&gt;
&lt;h2 id=&#34;機能&#34;&gt;機能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ログイン&lt;/li&gt;
&lt;li&gt;ユーザー登録&lt;/li&gt;
&lt;li&gt;ログアウト&lt;/li&gt;
&lt;li&gt;川柳一覧表示&lt;/li&gt;
&lt;li&gt;マイ川柳一覧表示&lt;/li&gt;
&lt;li&gt;川柳投稿&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;フロントエンド&#34;&gt;フロントエンド&lt;/h2&gt;
&lt;h3 id=&#34;nextjsreact&#34;&gt;Next.js(React)&lt;/h3&gt;
&lt;p&gt;フロントエンドにはNext.jsを利用しました。TypeScriptを使ってみたくて、TypeScriptと相性がいいReactを選択して、最近話題のNext.jsにしようと決めました。&lt;br&gt;
Next.jsはルーティング設定が楽だし、SSG, SSR, SPAをページごとに設定できて便利だしと使って良かったなと思っています。ただ、認証はFirebaseやNextAuth.jsを利用して他のSNSアカウントとかでログインする実装にするのが楽だと感じました。&lt;/p&gt;
&lt;h3 id=&#34;material-ui&#34;&gt;Material-UI&lt;/h3&gt;
&lt;p&gt;ReactのUIコンポーネントライブラリであるMaterial-UIを利用してUIの基礎を作りました。簡単に見た目を整えることができるので、とても便利です。&lt;/p&gt;
&lt;h3 id=&#34;styled-components&#34;&gt;styled-components&lt;/h3&gt;
&lt;p&gt;Material-UIの見た目を調整したい時にCCS in JSのstyled-componentsを利用しました。TypeScript内でCSSを書けるので普段CSSとかを書かない僕には使いやすかったです。&lt;/p&gt;
&lt;h2 id=&#34;バックエンド&#34;&gt;バックエンド&lt;/h2&gt;
&lt;h3 id=&#34;go-kitgolang&#34;&gt;Go kit(Golang)&lt;/h3&gt;
&lt;p&gt;個人的にGolangを利用したかったのとマイクロサービス構成でアプリを作ってみたいという理由からGo kitを利用しました。使ってみた感想としてあまり日本語のドキュメントとかなく調べるのが大変でしたが、Golangにはホットリロードがあってコンパイルが速く言語に慣れれば開発スピードが上がりそうだなと思いました。&lt;/p&gt;
&lt;h2 id=&#34;データベース&#34;&gt;データベース&lt;/h2&gt;
&lt;h3 id=&#34;mongodb&#34;&gt;MongoDB&lt;/h3&gt;
&lt;p&gt;NoSQLを利用したことがなかったので今回利用しました。MongoDBの基礎的な知識を身につけることはできましたが、RDBMSよりもNoSQLを利用するメリットがあんまりわからなかったです。&lt;/p&gt;
&lt;h2 id=&#34;開発環境&#34;&gt;開発環境&lt;/h2&gt;
&lt;h3 id=&#34;docker&#34;&gt;Docker&lt;/h3&gt;
&lt;p&gt;マイクロサービス構成でアプリ開発をしていたので、それぞれのサービス毎にコンテナを作成しました。ローカルでDockerコンテナを立てて開発するときはVSCodeのRemote Containerが非常に便利でした。ぜひ使ってみてほしいです。&lt;/p&gt;
&lt;h2 id=&#34;対象リポジトリ&#34;&gt;対象リポジトリ&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/yuyagishita/senryu-frontend&#34;&gt;senryu-frontend&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://github.com/yuyagishita/senryu-user&#34;&gt;senryu-user&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://github.com/yuyagishita/senryu-post&#34;&gt;senryu-post&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;記事を書くまでの経緯&#34;&gt;記事を書くまでの経緯&lt;/h2&gt;
&lt;p&gt;元々、今年の1月に他のサービス開発を考えていました。技術選定の時には&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Next.js(React)&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Go kit(Golang)&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Github Actions&lt;/li&gt;
&lt;li&gt;AWS&lt;/li&gt;
&lt;li&gt;K8s&lt;/li&gt;
&lt;li&gt;マイクロサービス&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;でアプリを開発してリリースをしようと思っていました。せっかくの個人開発だし勉強もかねて挑戦してやる！っていう気持ちで技術選定をしましたが、今思うとDocker以外はほぼ経験がなかったのでめちゃくちゃ無謀だったなと思います。（笑）&lt;br&gt;
そんな感じで技術選定をしてから要件や仕様決めて開発を始めましたが、わからないことが多すぎで全然進捗がなかったです。。亀の足のような遅さでしたがなんとか進めていた
4月頃か5月頃に気づいてしまいました。&lt;br&gt;
「クラウドでK8s使うと金けっこうかかるやんけ！」&lt;br&gt;
今思うと当たり前だし、調査不足すぎだよ自分。。ということがあり、最初に作りたかったサービスは世にリリースするのが厳しいなと思いましたが、せっかくある程度までは勉強して作っていたので、違うサービスとして開発をしてGithubで公開してポートフォリオ的な感じにしようと決めました。&lt;br&gt;
といった経緯で今に至ります。結果的には個人開発したアプリをリリースすることはできませんでしたが、Next.jsとGolangを学べたり個人開発の雰囲気を味わえたので良かったです。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に&lt;/h2&gt;
&lt;p&gt;個人開発はすべてを自分で考えないといけないので、とても大変ですが技術選定や作業の進め方など誰からも指図されずに好きなようにできるので、楽しいし学びが多いですね。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「1兆ドルコーチ」でコーチングの重要性がわかる</title>
      <link>https://www.yuyagishita.com/review/book/trillion-dollar-coach/</link>
      <pubDate>Wed, 16 Sep 2020 23:15:46 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/trillion-dollar-coach/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;trillon-dollar-coach&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/trillon-dollar-coach.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回は「1兆ドルコーチ」についてのレビュー記事です。皆さんはビル・キャンベルをご存知でしょうか？僕はこの本を読むまでこの人を知りませんでした。ビル・キャンベルはシリコンバレーの伝税のコーチでスティーブ・ジョブズと共に倒産寸前のアップルを再建したり、グーグルのエリック・シュミットやラリー・ペイジと共にGoogleを巨大企業に導いたり、他にも数々の企業に貢献をした人らしいです。ビルはあまり表に出たがらなかったらしいのであまり知られていないそうです。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;なぜレジェンドと言われているかを知ることができる。&lt;/li&gt;
&lt;li&gt;コーチングの重要性を理解できる。&lt;/li&gt;
&lt;li&gt;仕事でマネージャーをしている人は良好なチームを築くための助けになる。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;「人がすべて」ビルはどんな会社の成功でも支えているのは人だと考えていて、人が実力を発揮できるように手を貸すことが大切だと教えてくれている。その環境を作るためにも支援、敬意、信頼を持って行動するべき。&lt;/li&gt;
&lt;li&gt;強いチームを作るためには信頼と愛が必要。会社において信頼・愛は想像しにくいが、相手を思いやって行動してチームメンバーがありのままの自分を出せる環境を作ることで大きな成功を掴めるチームになる。心理的安全性が担保される状況になるとリスクがあっても大胆な行動ができるようになる。&lt;/li&gt;
&lt;li&gt;コーチングによって「なぜ」を追求して自分を深く知り、勇気を出させ挑戦を促せる。コーチングはされる側が自分について内省し、自分がなぜその行動をするのかが明確になる。それを繰り返すことで自分がやりたいことを見つけて本心で取り組める。コーチングはする側の能力だけではなく、される側の素質も大切で正直で謙虚さがないとコーチングを受け入れることができない。&lt;/li&gt;
&lt;li&gt;ぶれずに自分の信念を貫くことが大切。ビルは常に「人がすべて」や信頼や愛が大切だという考えを持っていて、そこがぶれずに誰に対してもつらい状況でも貫いていた。そのような人だからこそ信頼され数々の貢献をすることができた。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;エレベータートークをする。職場で同僚と信頼関係を築くために、エレベーターなどで人と会ったら自分から話しかける。信頼関係を気付くためには相手に興味をもち相手を知ることが大切。&lt;/li&gt;
&lt;li&gt;フリーフォームで話を聞く。相手に全神経を集中させて相手が言いそうなことを先回りして考えず、質問を通して問題の核心をつく。自分がコーチングをするときに相手が抱えている問題を相手自身に気づいてもらうことで問題をしっかりと認識して自らの行動で改善できるようになる。&lt;/li&gt;
&lt;li&gt;自分をオープンにする。信頼関係を築くためにありのままの自分を相手に伝えて仕事、プライベート共に相互理解ができるようにする。&lt;/li&gt;
&lt;li&gt;人を助ける。時間や人脈などを使って人のために惜しみなく使う。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ビルが言っていることは信頼しようとか思いやりを持とうなど当たり前のことが多いがこの当たり前のことをぶれずに継続することが大切だし、とても難しい。&lt;/li&gt;
&lt;li&gt;信頼関係を築くために雑談が大切で、「雑談の一流、二流、三流」の本にもあったが雑談力は良い関係を作るためには必須の力だと改めて思った。&lt;/li&gt;
&lt;li&gt;1人の力はたいしたことがないけど、人と人の繋ががで大きな力になると思った。自分も何かしらのコミュニティに参加して繋がりを増やしたいなと思った。&lt;/li&gt;
&lt;li&gt;ビルは聖人みたいな人格者かなと思ったら、言葉使いは汚いし飲みの席で盛り上げるムードメーカーだったり信頼できない人には関係を築かないかったり人間味溢れる人でそこも魅力なのかなと思った。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Next.jsのgetServerSidePropsでリダイレクトをする</title>
      <link>https://www.yuyagishita.com/tech/javascript/nextjs-getserversideprops-redirect/</link>
      <pubDate>Sun, 13 Sep 2020 00:24:52 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/javascript/nextjs-getserversideprops-redirect/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;nextjs-getserversideprops-redirect&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/nextjs-getserversideprops-redirect.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;勉強用にNext.jsで個人開発をしていて、cookieに値がない時トップ画面にリダイレクトする実装をしたかったのですが、参考にできる情報が少なかったので記事にしました。&lt;/p&gt;
&lt;h2 id=&#34;リダイレクト方法&#34;&gt;リダイレクト方法&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;parseCookies&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;nookies&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GetServerSideProps&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;next&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;getServerSideProps&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;GetServerSideProps&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;context&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cookies&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;parseCookies&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;context&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;userId&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;typeof&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cookies&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;userId&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;undefined&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cookies&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;userId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;userId&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;context&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;res&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;writeHead&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;302&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Location&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;context&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;res&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;props&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;cookieにuserIdを仕込んでいて、userIdがなかったらログインしていないとみなしてトップ画面に戻す実装をしました。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/vercel/next.js/discussions/14890&#34;&gt;RFC: Returning redirects from getServerSideProps / getStaticProps&lt;/a&gt;
にもあるように&lt;code&gt;getServerSideProps&lt;/code&gt;でリダイレクトする方法が書かれていますが、うまく実装ができなかったのでレスポンスを書き換える感じの実装にしました。&lt;br&gt;
Next.js関連は日本語の記事が少ないので、情報を探すのが大変ですね。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「Type &#39;型&#39; is not assignable to type &#39;never&#39;」のエラーを解消した</title>
      <link>https://www.yuyagishita.com/tech/javascript/vue-never-type/</link>
      <pubDate>Tue, 08 Sep 2020 21:11:11 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/javascript/vue-never-type/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;vue-never-type&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/vue-never-type.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;仕事でVueを使っていて、&lt;a href=&#34;https://qiita.com/FumioNonaka/items/63ce689b3599a6922182&#34;&gt;追加と削除が繰り返される配列要素のオブジェクトに一意のid番号を振る&lt;/a&gt;の記事に書かれているオブジェクトの追加と削除を実装しようとして、
TypeScriptで書いている時にエラーが発生したので、その解消法について記載します。&lt;/p&gt;
&lt;h2 id=&#34;発生したエラー&#34;&gt;発生したエラー&lt;/h2&gt;
&lt;p&gt;以下コードの3行目で&lt;code&gt;Type &#39;boolean&#39; is not assignable to type &#39;never&#39;.Vetur(2322)&lt;/code&gt;のエラーが発生しました。このエラーは解消しなくてもアプリが動きましたがエラー状態は気持ちが悪いので解消法を探しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;getNewId() {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;usedIds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stats&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;reduce&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;accumulator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;stat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nx&#34;&gt;accumulator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;accumulator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;nextid&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;usedIds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;findIndex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;exists&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;exists&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;nextid&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;usedIds.length&lt;/span&gt; : &lt;span class=&#34;kt&#34;&gt;nextid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;解消法&#34;&gt;解消法&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;[]&lt;/code&gt; → &lt;code&gt;[] as boolean[]&lt;/code&gt;のように記載することでエラーを解消できます。&lt;a href=&#34;https://www.it-swarm.dev/ja/typescript/typescript%E3%81%AF%E3%80%81%E9%80%A3%E7%B5%90%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E9%85%8D%E5%88%97%E3%82%92%E5%89%8A%E6%B8%9B%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E3%80%8Cnever%E3%80%8D%E5%9E%8B%E3%82%92%E6%8E%A8%E6%B8%AC%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F/807763968/&#34;&gt;TypeScriptは、連結を使用して配列を削減するときに「never」型を推測するのはなぜですか？&lt;/a&gt;に記載されているように&lt;code&gt;boolean[]&lt;/code&gt;にキャストしてあげればOKです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;これは、[]の型がnever[]であると推論されているためだと思います。これは、空でなければならない配列の型です。型キャストを使用してこれに対処できます。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今回のコードは無理やり配列を作っているので、TypeScriptが値を持たないと判断して&lt;code&gt;never[]&lt;/code&gt;を返していたみたいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;usedIds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;sitePermmisons&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;reduce&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;accumulator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sitePermmison&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nx&#34;&gt;accumulator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;sitePermmison&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;accumulator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;accumulator&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;boolean&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;最後に&#34;&gt;最後に&lt;/h2&gt;
&lt;p&gt;今回のエラーはとても単純な内容でしたが、&lt;code&gt;reduce&lt;/code&gt;, &lt;code&gt;findIndex&lt;/code&gt;の使い方やVueでオブジェクトの追加、削除方法などをあまり理解していない状態だったので、色々と調べていたらかなり時間をかけてしまいました。
なんとなくの実装で進めると大はまりすることがあるので、理解しつつ作業のスピードを落とさないようにバランスを考えないとなーと思いました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「論語と算盤」は現代語訳で読んだ方がいい</title>
      <link>https://www.yuyagishita.com/review/book/rongo-soroban/</link>
      <pubDate>Wed, 05 Aug 2020 22:25:22 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/rongo-soroban/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;shibusawa&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/shibusawa.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回はAudibleで「論語と算盤」を聞きました。この本は「日本近代化の父」と呼ばれる渋沢栄一が執筆した本です。
渋沢栄一は幕末の頃に尊王攘夷派の武士でしたが、一橋慶喜（後の徳川慶喜）に仕えていたことから幕臣となり、明治維新後は大蔵省、実業家になりました。みずほ銀行、JR東日本、帝国ホテル、東京海上日動、東京ガス、王子製紙などの会社設立に関わり約500社の設立に携わったそうです。（そりゃ日本近代化の父とか呼ばれますよね。）&lt;/p&gt;
&lt;h2 id=&#34;現代語訳で読んだ方がいい理由&#34;&gt;現代語訳で読んだ方がいい理由&lt;/h2&gt;
&lt;p&gt;この本は渋沢栄一が1916年に書いたそうで100年前の書籍です。100年も前だと今は使っていない言い回しが多かったりして理解するのが難しいです。また、論語に関する知識もそんなにないので、余計難しかったです。それに加えて、Audibleで聞いていたので「今言っていた言葉どういう漢字使うんだよ。。」とか考えてしまい、さらに難しかったです。これから読もうと考えている人は現代語訳版を購入して渋沢栄一が伝えたいことをしっかり理解できるようにするのがいいと思います！&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;渋沢栄一のように人から尊敬されて、仕事も人生も充実させるために必要なことを知る。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;道徳を伴わない商売は不幸になる。&lt;/li&gt;
&lt;li&gt;自分のためだけではなく、誰かのために貢献をすることで、自分の利益にもなるし社会の利益にもなる。&lt;/li&gt;
&lt;li&gt;人を理解するには「視・観・察」が大切。「視る」ことでその人の行動を知り、「観る」ことでその行動の動機を知り、「察る」ことでその人が何に満足しているのかを知る。そうすることでその人が自分の欲を満たしたいだけなのか、それともその人が言っている動機が本当なのかがわかる。&lt;/li&gt;
&lt;li&gt;「智・情・意」が調和しているといい。「知」（知恵）だけあっても自分の利益のみを求めてしまうし、「情」（情愛）だけあっても感情に流されてしまうし、「意」（意志）だけあってもただの頑固者になってしまう。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;誰かに貢献することを意識して日々行動する。&lt;/li&gt;
&lt;li&gt;人と接する時は「視・観・察」を意識してその人の本質を知る。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Vuetifyで「Data Tables」を使って管理画面を作成する</title>
      <link>https://www.yuyagishita.com/tech/javascript/vuetify-datatables/</link>
      <pubDate>Sat, 18 Jul 2020 17:24:13 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/javascript/vuetify-datatables/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;vuetify.js&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/vuetifyjs.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回は久しぶりに技術ネタの投稿です！
最近会社で&lt;code&gt;Nuxt.js + TypeScript&lt;/code&gt;を利用して開発をしていて、「Vuetify」でデザインをいい感じにしながら開発を進めています。
こんな感じのテーブルを作成します。データのソート、表示数変更、新規作成、編集、削除、検索ができるにしています。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;完成形&#34; loading=&#34;lazy&#34; src=&#34;../img/datatable.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;全体のコード&#34;&gt;全体のコード&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;117
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;118
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;119
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;120
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;121
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;122
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;123
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;124
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;125
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;126
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;127
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;128
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;129
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;130
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;131
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;132
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;133
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;134
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;135
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;136
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;137
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;138
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;139
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;140
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;141
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;142
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;143
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;144
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;145
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;146
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;147
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;148
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;149
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;150
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;151
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;152
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;153
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;154
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;155
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;156
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;157
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;158
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;159
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;160
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;161
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;162
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;163
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;164
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;165
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;166
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;167
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;168
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;169
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;170
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;171
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;172
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;173
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;174
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;175
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;176
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;177
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;178
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;179
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;180
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;181
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;182
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;183
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;184
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;185
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;186
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;187
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;188
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;189
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;190
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;191
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;192
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;193
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;194
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;195
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;196
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;197
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;198
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;199
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;200
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;201
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;202
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;203
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;204
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;205
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;206
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;207
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;208
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;209
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;210
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;211
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;212
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;213
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;214
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;215
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;216
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;217
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;218
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;219
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;220
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;221
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;222
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;223
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;224
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;225
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;226
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;227
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;228
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;229
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;230
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;231
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;232
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;233
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;234
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;235
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;236
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;237
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;238
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;239
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;240
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;241
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;242
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;243
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;244
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;245
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;246
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;247
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;248
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;249
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;250
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;251
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;252
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;253
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;254
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;255
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;256
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;257
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;258
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;259
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;260
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;261
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;262
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;263
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;264
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;265
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;266
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;267
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;268
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;269
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;270
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;271
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;272
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// pages/yagiblog-sample.vue
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;template&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;card&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;card&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cols&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;6&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nx&#34;&gt;テーブル作成のサンプル&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-col&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cols&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;6&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;dialog&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;dialog&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;500px&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;template&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;slot&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;activator&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{ on, attrs }&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;btn&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;primary&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;dark&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mb-2&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bind&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;attrs&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;on&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;on&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nx&#34;&gt;新規作成&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-btn&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/template&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;card&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;card&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;span&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;headline&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;formTitle&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/span&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-card-title&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;card&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;container&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cols&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;12&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;6&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;md&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;4&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;field&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;editedItem.name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;氏名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-text-field&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-col&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cols&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;12&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;6&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;md&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;4&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;field&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;editedItem.height&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;身長(m)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-text-field&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-col&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cols&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;12&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;6&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;md&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;4&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;field&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;editedItem.weight&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;体重(kg)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-text-field&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-col&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;cols&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;12&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;6&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;md&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;4&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;field&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;editedItem.bodyFatPercentage&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;nx&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;体脂肪率(%)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-text-field&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-col&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-row&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-container&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-card-text&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;card&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;spacer&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-spacer&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;btn&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;blue darken-1&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;click&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;close&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  &lt;span class=&#34;nx&#34;&gt;キャンセル&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-btn&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;btn&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;blue darken-1&amp;#34;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;click&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;save&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  &lt;span class=&#34;nx&#34;&gt;保存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-btn&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-card-actions&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-card&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-dialog&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;field&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;search&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nx&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;icon&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mdi-magnify&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nx&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;検索&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nx&#34;&gt;single&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;line&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nx&#34;&gt;hide&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;details&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-text-field&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-col&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-row&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-card-title&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;headers&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;items&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;persons&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;items&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;per&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;5&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;search&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;search&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kr&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;elevation-1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;template&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;slot&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{ item }&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;icon&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;small&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mr-2&amp;#34;&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;click&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;editItem(item)&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nx&#34;&gt;mdi&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pencil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-icon&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;icon&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;small&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;click&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;deletePerson(item)&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nx&#34;&gt;mdi&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;delete&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-icon&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/template&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-data-table&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/v-card&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/template&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;script&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;lang&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Vue&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;vue&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;interface&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Persion&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;default&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Vue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;extend&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;dialog&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;search&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;editedIndex&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;editedItem&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;defaultItem&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;氏名&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;align&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;start&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;身長(m)&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;体重(kg)&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weight&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;体脂肪率(%)&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;bodyFatPercentage&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;操作&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;actions&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sortable&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;persons&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;naosuke.ii&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.68&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;60&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;iemochi.tokugawa&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;61&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;14&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;kaishu.katsu&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;55&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;12&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;eiichi.shibusawa&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.63&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;65&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;aritomo.yamagata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.75&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;63&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;shigenobu.okuma&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;68&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;19&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;taro.okamoto&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.72&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;63&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;18&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;toshimichi.okubo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.82&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;70&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;17.5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;takamori.saigo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;80&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;18&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;kaoru.inoe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.79&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;65.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;12.3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;yukichi.fukuzawa&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.98&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;65&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;yoshinobu.tokugawa&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.75&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;58&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;hideyo.noguchi&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.56&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ichiyo.higuchi&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;49&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;soji.okita&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;62&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;13&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;isami.kondo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.75&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;68&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;bodyFatPercentage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;computed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;formTitle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedIndex&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;新規作成&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;編集&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;methods&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;deletePerson&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Persion&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;persons&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;indexOf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;confirm&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34; を削除しますか？&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;persons&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;splice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;index&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;editItem&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Persion&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedIndex&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;persons&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;indexOf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedItem&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Object&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;assign&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({},&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;dialog&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;dialog&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;$nextTick&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedItem&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Object&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;assign&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({},&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;defaultItem&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedIndex&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedIndex&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;Object&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;assign&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;persons&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedIndex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedItem&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;persons&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;push&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;editedItem&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;基本的な使い方&#34;&gt;基本的な使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;v-data-table&amp;gt;&lt;/code&gt;にヘッダーやアイテムを渡せばいい感じにテーブルを作成してくれます。ここで書かれている&lt;code&gt;&amp;quot;headers&amp;quot;&lt;/code&gt;や&lt;code&gt;&amp;quot;persons&amp;quot;&lt;/code&gt;はscriptに記載されている&lt;code&gt;data: () =&amp;gt; ({})&lt;/code&gt;内を参照しています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「仕事は楽しいかね？」は目標なんて要らないことを教えてくれる</title>
      <link>https://www.yuyagishita.com/review/book/the-max-strategy/</link>
      <pubDate>Wed, 24 Jun 2020 22:01:11 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/the-max-strategy/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;the-max-strategy&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/the-max-strategy.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回、Audibleで「仕事は楽しいかね？」を聞きました。この本は3時間54分で聞くことができ短いので聞きやすい本でした。あらすじを簡単に説明すると、舞台は大雪の空港で飛行機は止まっていて主人公を含む大勢の人は空港から動けずにいました。主人公は35歳で15年働いているが、出世したわけでも事業を立ち上げて成功したわけでもない普通のサラリーマン。そこに有名な実業家である老人、マックスがやってきて、普通とは違った考え方や深い言葉をさまざまな実例をもとに教えてくれるといった内容です。マックスの言葉には考えさせられることが多く、あっという間に聞けました。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;仕事に対して活かせることがないか見つけるため。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;明確な目標設定は要らない。5年先を見据えた目標設定をして行動するなどは悪くないが、人生は予想外な出来事が多く思い通りにいかないことがほとんどである。また、5年後に目標を達成できたとしても変化の早い今の時代において時代遅れの目標達成になってしまうおそれがある。「今日の目標は明日のマンネリ」&lt;/li&gt;
&lt;li&gt;変化を恐れずに積極的に試すことが大切である。人はつい完璧を求めてしまい、ブログやYouTubeを始めようと思っても結局行動ができない。たとえ失敗をしたとしても、その経験は必ずどこかで活かされる。本当の失敗は何もしないこと。&lt;/li&gt;
&lt;li&gt;自分の知識や経験を増やして何にでも興味を持つ。成功するアイデアは自分たちの周りに常にあって、それにほとんどの人が気付けない。コカコーラは薬剤師のジョン・ペンバートンが作った頭痛薬に偶然、店員がソーダで割って飲んでいたことから始まったという話がある。自分のところに偶然アイデアが転がってきたときに気づいて行動ができる人間にならないとむだにしてしまう。&lt;/li&gt;
&lt;li&gt;仕事や私生活における失敗や課題にアイデアは隠れている。失敗や課題があると人は嫌な気持ちになったり、感情的になってしまうことがある。だが、そういう時こそ冷静になって分析をすると思いがけない発見がある。課題を敵として捉えるのではなく、仲間にできないか考えることが発見につながる。&lt;/li&gt;
&lt;li&gt;新しいアイデアは新しい場所に置かれた古いアイデアである。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;明確な目標設定をせずに、「明日は今日と違う自分になる。」を目標にする。さまざまなことを&lt;strong&gt;試して&lt;/strong&gt;自分を変化させる。その時に自分が良いと思う変化を積極的に取り入れる。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;マックスの話は最初何を言っているんだこの老人はと思ってしまうことが多々あったが、論理的に説明してくれてなるほどと納得させてくれる。&lt;/li&gt;
&lt;li&gt;よく学校や会社で言われた目標を立てて逆算して取り組もう！みたいなことが逆にその人が変化することを妨げてしまうなと思った。明確な目標設定をして取り組んでいると自分の他の可能性に気付けないし、柔軟に行動することができなくなる。&lt;/li&gt;
&lt;li&gt;違った考え方を教えてくれて面白かったが、しっかりと理解をして自分のものにできていないように思った。自分とは違った考えを受け入れるには思考停止しないで、なぜかと考えることを繰り返すことが大切だと思った。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>「LIFE SHIFT」は無形資産の大切さを教えてくれる</title>
      <link>https://www.yuyagishita.com/review/book/lifeshift/</link>
      <pubDate>Thu, 11 Jun 2020 20:37:43 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/lifeshift/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;lifeshift&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/lifeshift.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Audibleで2冊目に購入した本「LIFE SHIFT」を聞き終わりました！単行本だと428ページとなかなか厚めの本で、オーディオブックだと13時間22分もありました。以前聞いた「嫌われる勇気」は6時間59分だったので、正直聞くのが長くてめっちゃしんどかったです。（笑）
この本の注文日が4月25日なので、聞き終わるのに1か月半は費やしています。もっと聞く時間を作らないといけないなと思いました。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;これからの長寿化時代をどうやって生きれば幸せで豊かになれるのかについて知る。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;人生におけるこれまでの3ステージ（教育→仕事→引退）では長寿化時代を幸せに生きることはできない。長寿化や年金制度の崩壊により引退生活を普通に過ごすのでも、老後の資金についてこれまで以上に考える必要がある。&lt;/li&gt;
&lt;li&gt;長く生きる恩恵を得るにはマルチステージの人生を過ごすといい。自分で起業してビジネスを始めてもいいし、さまざまな知識やスキルを身につけて複数の仕事を並行でしてもいいし、自分について深く知るために思い切った冒険をしてもいい。考えて行動をするといい方向に人生が進みやすい。&lt;/li&gt;
&lt;li&gt;これまで以上に自分が築く資産のうち、無形資産が大事になる。マルチステージの人生を生きるために自分のスキルを高めたり、自分を変えるために人脈を増やしたり、友人や家族とより良い関係を築くことが大切になる。&lt;/li&gt;
&lt;li&gt;お金や不動産、株などの有形資産はあくまで無形資産を変えた結果生まれる資産。自己投資を増やすことでより稼ぐことができるし、世界に影響を与えるようなおもしろい仕事ができる。&lt;/li&gt;
&lt;li&gt;無形資産は、生産性資産、変身資産、活力資産がある。これが本当に重要。&lt;/li&gt;
&lt;li&gt;結婚相手はこれまで以上に慎重に考えないといけない。マルチステージの人生を送るためにも妻は専業主婦で夫は仕事人間では夫婦でお互いに無形資産をバランスよく蓄えてアップデートすることが難しくなる。お互いに家事や仕事を分担して取り組める関係性がこれからの時代には合っている。&lt;/li&gt;
&lt;li&gt;健康的に過ごせる時間が多くなり長く生きるということは何も考えず行動しない人はさらに苦しい人生になってしまう。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;自分の知識やスキルに投資して、多くの価値提供ができる人になる。&lt;/li&gt;
&lt;li&gt;いろいろな人に出会い、人的ネットワークを広げて、変身資産を蓄える。&lt;/li&gt;
&lt;li&gt;目先のお金や仕事、人間関係にとらわれず、長期的な視野を持つ。&lt;/li&gt;
&lt;li&gt;今までの友人や家族との関係を大切にする。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;この本は普段長くても数年先しか考えていなかった僕のような人に、具体的なこれから起きる人生を示している。&lt;/li&gt;
&lt;li&gt;今までの価値観にそった人生では必ず苦しくなってしまう場面がたくさんあることを教えてくれる。&lt;/li&gt;
&lt;li&gt;国や年代関係なくすべての人に言えることがつまっている本なので、一度は読んだほうがいい。&lt;/li&gt;
&lt;li&gt;自分の知識やスキルについて投資するのは意識して行動していたけど、人的ネットワークを広げることがこれからの変化が早い時代に有効だと考えていなかった。同じ人間関係だけでは新しい考え方が入ってこないので、薄くてもいいから幅広く人間関係を広げることは大事だと気づけた。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>「React Hook Form」でフォームを簡単に作る</title>
      <link>https://www.yuyagishita.com/tech/javascript/react-hook-form/</link>
      <pubDate>Tue, 26 May 2020 09:00:24 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/javascript/react-hook-form/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;react-hook-form&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/react-hook-form.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Next.js(React)でログイン機能を実装していて、フォーム作成に苦戦していました。
そもそも、Reactを全然理解していないので、フォームの値はどうやって取得すればいいのか？みたいなところからわかりませんでした。&lt;/p&gt;
&lt;p&gt;今回はReact+TypeScriptでフォームを作成するのに&lt;strong&gt;React Hook Form&lt;/strong&gt;がとても便利だったので、紹介します。&lt;/p&gt;
&lt;h2 id=&#34;react-hook-formとは&#34;&gt;React Hook Formとは&lt;/h2&gt;
&lt;p&gt;公式サイトを見ると「高性能で柔軟かつ拡張可能な使いやすいフォームバリデーションライブラリ」らしいです。&lt;br&gt;
詳細は以下公式サイトを見てください。&lt;br&gt;
&lt;a href=&#34;https://react-hook-form.com/&#34;&gt;React Hook Form&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;さっそく実装をする&#34;&gt;さっそく実装をする&lt;/h2&gt;
&lt;p&gt;まずはReact Hook Formをインストールします。
以下コマンドをプロジェクト配下で実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;npm install react-hook-form
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;インストールしたら、&lt;code&gt;import&lt;/code&gt;してフォームの値をサポートするための&lt;code&gt;FormData&lt;/code&gt;型を作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;useForm&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;react-hook-form&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;FormData&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;username&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;password&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;今回はログイン用のフォームを作成するために、&lt;code&gt;string&lt;/code&gt;型の&lt;code&gt;username&lt;/code&gt;と&lt;code&gt;password&lt;/code&gt;を用意しました。
次に、&lt;code&gt;useForm&lt;/code&gt;を使ってフォーム作成に必要なメソッドを受け取ります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;useForm&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;react-hook-form&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;FormData&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;username&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;password&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;default&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Login() {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;handleSubmit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;watch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;errors&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;useForm&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;FormData&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;useForm&amp;lt;FormData&amp;gt;()&lt;/code&gt;のように書いてフォームで使う型を設定できます。
&lt;code&gt;const&lt;/code&gt;で定義されているメソッドについては以下にまとめました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;register&lt;/code&gt;:　input/selectのRefとバリデーションルールをReact Hook Formに登録する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;handleSubmit&lt;/code&gt;:　フォームバリデーションに成功するとフォームデータを渡す&lt;/li&gt;
&lt;li&gt;&lt;code&gt;watch&lt;/code&gt;:　指定されたinput/inputsを監視し、その値を返す&lt;/li&gt;
&lt;li&gt;&lt;code&gt;errors&lt;/code&gt;:　各inputのフォームのエラーまたはエラーメッセージを含む&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのメソッドを使って、フォームを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;useForm&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;react-hook-form&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;FormData&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;username&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;password&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;default&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Login() {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;handleSubmit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;watch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;errors&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;useForm&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;FormData&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;onSubmit&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;data&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;FormData&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;watch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;username&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;watch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;form&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;onSubmit&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;handleSubmit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;onSubmit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)}&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;className&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;filed&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;className&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;username&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;input&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;username&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;na&#34;&gt;placeholder&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;username&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;na&#34;&gt;ref&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;required&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;true&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;errors&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;username&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;usernameを入力してください。&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;className&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;filed&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;className&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;input&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;na&#34;&gt;placeholder&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;na&#34;&gt;ref&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;required&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;true&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;errors&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;password&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;passwordを入力してください。&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;className&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;filed&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;button&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;login&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;button&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;form&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;フォームの流れにそって解説します。&lt;br&gt;
フォームの&lt;code&gt;input&lt;/code&gt;で作成した&lt;code&gt;FormData&lt;/code&gt;を使うためには&lt;code&gt;name&lt;/code&gt;属性に設定します。また、&lt;code&gt;ref={register({ required: true })}&lt;/code&gt;のように書くことで、&lt;code&gt;input&lt;/code&gt;は入力必須にしています。
&lt;code&gt;{errors.username &amp;amp;&amp;amp; &amp;quot;usernameを入力してください。&amp;quot;}&lt;/code&gt;は&lt;code&gt;username&lt;/code&gt;がバリデーションエラーになったら表示されます。最後に、フォームに入力をしてボタンを押してバリデーションエラーが発生していない場合、&lt;code&gt;&amp;lt;form onSubmit={handleSubmit(onSubmit)}&amp;gt;&lt;/code&gt;が動いて、&lt;code&gt;const onSubmit = (data: FormData): void =&amp;gt; console.log(data);&lt;/code&gt;が実行されてコンソールに入力された値が表示されます。
フォームに入力がない状態でボタンを押すと以下のような挙動をします。
&lt;img alt=&#34;バリデーションエラー&#34; loading=&#34;lazy&#34; src=&#34;../gif/react-hook-form.gif&#34;&gt;
&lt;code&gt;console.log(watch(&amp;quot;username&amp;quot;));&lt;/code&gt;は&lt;code&gt;username&lt;/code&gt;に入力された値が変わるとその都度コンソールに表示します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>HugoでTwitterカードを表示させる</title>
      <link>https://www.yuyagishita.com/tech/hugo/twitter-card/</link>
      <pubDate>Fri, 22 May 2020 22:38:37 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/hugo/twitter-card/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;hugo-twitter-card&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/hugo-twitter-card.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;これまでこのブログはTwitterなどにリンクを貼った際にサムネイル画像を表示できていなかったので、Twitterカードで画像を表示できるようにしました。また、Twitterだけではなく、Slack（コミュニケーションツール）などでも画像が表示できるにしています。&lt;/p&gt;
&lt;h2 id=&#34;twitterカードとは&#34;&gt;Twitterカードとは&lt;/h2&gt;
&lt;p&gt;サルワカくんの記事が分かりやすかったので、詳しく知りたい人は以下記事を読んでみてください。&lt;br&gt;
&lt;a href=&#34;https://saruwakakun.com/html-css/reference/twitter-card&#34;&gt;【2020年版】Twitterカードとは？使い方と設定方法まとめ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;簡単に説明すると、Twitterでよく見かけるURLを貼ったときに表示されるやつです。&lt;/p&gt;
&lt;h2 id=&#34;twitterカード表示対応&#34;&gt;Twitterカード表示対応&lt;/h2&gt;
&lt;p&gt;僕が現在使っているHugoのテンプレートは&lt;strong&gt;Beautiful Hugo&lt;/strong&gt;なので、このテンプレートでの対応方法を書きます。&lt;/p&gt;
&lt;p&gt;今回重要なファイルは2つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;themes/beautifulhugo/layouts/partials/seo/twitter.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;themes/beautifulhugo/layouts/partials/seo/opengraph.html&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ファイルの中身を以下に書きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;// themes/beautifulhugo/layouts/partials/seo/twitter.html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Title | default .Site.Title }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:title&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ . | truncate 70 }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Description | default .Params.subtitle | default .Summary }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:description&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ . | truncate 200 }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Params.share_img | default .Params.image | default .Site.Params.logo }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:image&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ . | absURL }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:card&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;summary&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Site.Author.twitter }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:site&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;@{{ . }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:creator&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;@{{ . }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;// themes/beautifulhugo/layouts/partials/seo/opengraph.html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Title | default .Site.Title }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:title&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ . }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Description | default .Params.subtitle | default .Summary }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:description&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ . }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Params.share_img | default .Params.image | default .Site.Params.logo }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ . | absURL }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- with .Site.Params.fb_app_id }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fb:app_id&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ . }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{- end }}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:url&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ .Permalink | absLangURL }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:type&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;website&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:site_name&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ .Site.Title }}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここでみてほしいのは、&lt;code&gt;.Params.share_img&lt;/code&gt;です。
Beautiful Hugoでは各記事のFront Matter（mdファイル内の一番上に&lt;code&gt;title&lt;/code&gt;とか&lt;code&gt;date&lt;/code&gt;が書いてあるところ）に、&lt;code&gt;share_img: &amp;quot;表示させたい画像のパス&amp;quot;&lt;/code&gt;のように書いてあげればTwitterカードに画像を表示できます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go製APIから「fetch」するのにハマった</title>
      <link>https://www.yuyagishita.com/tech/javascript/fetch-api/</link>
      <pubDate>Tue, 19 May 2020 21:04:08 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/javascript/fetch-api/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;javascript&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/javascript.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Next.js(React)+Go&lt;/code&gt;で個人開発をしていて、FetchAPIを利用して&lt;code&gt;Go&lt;/code&gt;でローカル環境にたてたAPIを&lt;code&gt;Next.js&lt;/code&gt;で呼び出す際に、値が取れずにはまりました。
今回はどうやって解消したのか記事にしました。&lt;/p&gt;
&lt;h2 id=&#34;今回発生したエラー&#34;&gt;今回発生したエラー&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Next.js&lt;/code&gt;で&lt;code&gt;fetch&lt;/code&gt;を使ってPOSTした際に、以下のようなエラーが発生。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Error serializing `.postData` returned from `getServerSideProps` in &amp;#34;/posts/get-api&amp;#34;. Reason: `object` (&amp;#34;[object Promise]&amp;#34;) cannot be serialized as JSON. Please only return JSON serializable data types.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ようわからんけど、APIから値が取れてないみたいでした。
&lt;code&gt;Next.js&lt;/code&gt;から&lt;code&gt;fetch&lt;/code&gt;する際のコードは以下のようにしていました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;getServerSideProps&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GetServerSideProps&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:8080/login&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;　&lt;span class=&#34;err&#34;&gt;←&lt;/span&gt;　&lt;span class=&#34;nx&#34;&gt;APIはローカルの8080番ポートにたてていました&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kd&#34;&gt;let&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;postData&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;method&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;cache&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;no-cache&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;#34;Content-Type&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;application/json charset=utf-8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;JSON&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stringify&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;username&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;yagiyu&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;miran&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;postData&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;props&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;postData&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;また、上記を実行した時のレスポンスが以下で、APIと通信はできたが、値を取れませんでした。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;Response&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;timeout&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Symbol&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Body&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;internals&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;PassThrough&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;_readableState&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ReadableState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;readable&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;_events&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Object&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;prototype&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;_eventsCount&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;_maxListeners&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;undefined&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;_writableState&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;WritableState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;writable&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;allowHalfOpen&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;_transformState&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Object&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Symbol&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;kCapture&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;disturbed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Symbol&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Response&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;internals&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;http://localhost:8080/login&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;status&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;statusText&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;OK&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Headers&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Symbol&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Object&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;prototype&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;counter&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ターミナルから&lt;code&gt;curl&lt;/code&gt;を実行すると、以下のように成功していました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「Nike Training Club」を1か月継続して、身体を絞った</title>
      <link>https://www.yuyagishita.com/fitness/nike-training/</link>
      <pubDate>Tue, 12 May 2020 19:57:35 +0900</pubDate>
      <guid>https://www.yuyagishita.com/fitness/nike-training/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;nike-training&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/nike-training.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;コロナウイルスの影響により、ジムに通うことができなくなってしまったので、&lt;strong&gt;Nike Training Club&lt;/strong&gt;というアプリを利用し始めました。このアプリで自宅トレーニングを1か月継続したので、使ってみてどうだったか解説します。&lt;/p&gt;
&lt;h2 id=&#34;nike-training-clubとは&#34;&gt;「Nike Training Club」とは&lt;/h2&gt;
&lt;p&gt;NIKEが提供しているトレーニング支援アプリのことで、180種類を超えるワークアウトとトレーナー達の音声と映像ガイドが入っていて、すぐにトレーニングを開始できます。&lt;/p&gt;
&lt;h2 id=&#34;ワークアウトの種類が豊富&#34;&gt;ワークアウトの種類が豊富&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;work-outmenu&#34; loading=&#34;lazy&#34; src=&#34;../img/nike-workout.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;収録されているワークアウトは自宅でできる自重トレーニングから器具を使ったワークアウトなど幅広いです。中には、ヨガやボクシングなどのワークアウトも収録されているので、気分を変えて取り組めます。
トレーニング器具がない人は器具なしのワークアウトを選択して取り組むことをオススメします。&lt;/p&gt;
&lt;h2 id=&#34;ワークアウトの音声と映像ガイドが分かりやすい&#34;&gt;ワークアウトの音声と映像ガイドが分かりやすい&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;nike-guide&#34; loading=&#34;lazy&#34; src=&#34;../img/nike-guide.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;すべてのワークアウトに音声と映像ガイドがあるので、やり方が分からなくても正しいフォームで取り組むことができます。フォームがおかしかったり、無理なペースでワークアウトに取り組むと怪我の原因になるので、この機能はとても優秀です。&lt;/p&gt;
&lt;h2 id=&#34;ワークアウト後に消費カロリーがわかる&#34;&gt;ワークアウト後に消費カロリーがわかる&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;nike-after-workout&#34; loading=&#34;lazy&#34; src=&#34;../img/nike-after-workout.png&#34;&gt;
ワークアウト後には&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;所要時間&lt;/li&gt;
&lt;li&gt;ワークアウトで消費したカロリー（Apple Watchなどがない正確な値は分からない）&lt;/li&gt;
&lt;li&gt;ワークアウト中の平均心拍数（Apple Watchなどが必要）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;が記録されて、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;体感したワークアウトのキツさ（アクティビティ）&lt;/li&gt;
&lt;li&gt;ワークアウトを行った場所（ロケーション）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を記録します。&lt;br&gt;
ワークアウトのキツさを記録することで、「パーソナルプラン」を作成時に反映されます。&lt;/p&gt;
&lt;h2 id=&#34;あなたに合わせたパーソナルトレーニングを作成してくれる&#34;&gt;あなたに合わせたパーソナルトレーニングを作成してくれる&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;nike-after-workout&#34; loading=&#34;lazy&#34; src=&#34;../img/nike-personal-training.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;簡単な質問に答えることで、あなたに合ったスケジュールを作成してくれます。また、ワークアウトにある程度取り組むとワークアウト後に記録したワークアウトのキツさに合わせて、ワークアウトを修正してくれます。ジムで器具を使う場合でも、自宅で行う場合でも自分のレベルに合ったトレーニングを提案してくれるのはとても便利です。&lt;/p&gt;
&lt;h2 id=&#34;今まで取り組んだワークアウトをすべて記録してくれる&#34;&gt;今まで取り組んだワークアウトをすべて記録してくれる&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;nike-all-result&#34; loading=&#34;lazy&#34; src=&#34;../img/nike-all-result.png&#34;&gt;
日々取り組んだワークアウトを記録してくれるので、今まで自分が積み上げてきたワークアウトが可視化されて自分の自信につながります。昔と今のワークアウトの結果を比較して、自分の成長を感じられます。&lt;/p&gt;
&lt;h2 id=&#34;nike-run-clubと連携できる&#34;&gt;「Nike Run Club」と連携できる&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;nike-run-club&#34; loading=&#34;lazy&#34; src=&#34;../img/nike-run-club.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nike Run Club&lt;/strong&gt;はランニング専用アプリで、GPSを利用して走行距離や走っているペースなどを記録してくれます。このアプリと連携をすることで、ワークアウトで欠かせない有酸素運動であるランニングの結果についても一覧で確認できます。&lt;/p&gt;
&lt;h2 id=&#34;1か月自重のパーソナルトレーニングを継続した結果&#34;&gt;1か月自重のパーソナルトレーニングを継続した結果&lt;/h2&gt;
&lt;p&gt;自宅に体重計がないので、体重と体脂肪率の変化は正確には分かりませんが、取り組む前後の写真を確認すると、かなり身体を絞ることができました。
とくに腹筋に効果が出ていて、始める前はあまり割れていませんでしたが、&lt;strong&gt;腹筋がかなり割れました&lt;/strong&gt;。&lt;br&gt;
自重トレーニングで全身鍛えるワークアウトが多かったので、全身を絞ることができました。
全身の写真はもう少し鍛えたら、筋トレ始める前と後の記事を書きますのでお待ちください。（笑）&lt;/p&gt;
&lt;p&gt;継続して取り組めば必ず身体は生まれ変わると思います。&lt;/p&gt;
&lt;h2 id=&#34;自宅トレーニングを行う際に必要なもの&#34;&gt;自宅トレーニングを行う際に必要なもの&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;ヨガマット&lt;/strong&gt;は必需品です。ヨガマットなしで取り組むと背中の骨や肘などが痛くなるので、ヨガマットは絶対に必要です。コロナウイルスが流行している今は自宅トレーニンググッズがかなり売れているようなので、手に入れることはできないかもしれませんが。。&lt;/p&gt;
&lt;h2 id=&#34;自宅でトレーニングをしていて不満に思ったこと&#34;&gt;自宅でトレーニングをしていて、不満に思ったこと&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;マンションやアパートで取り組みづらいワークアウトが多い&lt;/li&gt;
&lt;li&gt;自重トレーニングで肩や背中、胸筋のワークアウトがない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自重のパーソナルトレーニングはバービーやスクワットジャンプなどうるさい音が出てしまうワークアウトが多いので、なかなかマンションやアパートに住んでいる人は正直やりづらいと思います。僕はヨガマットの上でなるべく音が出ないようにやっていましたが、迷惑になっていたかもしれません。&lt;/p&gt;
&lt;p&gt;自重トレーニングで肩や背中、胸筋を集中的に鍛えるワークアウトはなく、下半身を鍛えるワークアウトが多いので、上半身を鍛えたい人には少し物足りないと思います。NIKEさんこれらのワークアウトも追加してください。（無料でこのクオリティなのに、わがまま（笑））&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Nike Training Club&lt;/strong&gt;は無料なのに、すごい高機能で日々のトレーニングを支えてくれるので、
Nike Run Clubと連携させて使ってみてください。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CSSの「@media」でレスポンシブ対応させる</title>
      <link>https://www.yuyagishita.com/tech/css/media-query/</link>
      <pubDate>Fri, 08 May 2020 07:31:02 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/css/media-query/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;css-logo&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/css-logo.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;以前に僕のブログを見たことがある人にはわかると思いますが、サムネイル画像がなかったり、文字のサイズ、余白などが違ったりとデザインをガラッと変えました！
デザインについて考えると、どんどん深みにはまって正解がまったくわからなかったです。（笑）&lt;/p&gt;
&lt;p&gt;CSSで&lt;code&gt;@media&lt;/code&gt;を使ってデバイスの大きさごとに表示を調整したので、その記事を書きます。&lt;/p&gt;
&lt;h2 id=&#34;mediaとは&#34;&gt;&lt;code&gt;@media&lt;/code&gt;とは&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;@media&lt;/code&gt;を使うことで、各デバイスや画面サイズごとに適用するCSSを指定できます。
レスポンシブにする場合は必須みたいです。（CSSは本当によくわからない。。）&lt;/p&gt;
&lt;h2 id=&#34;使い方&#34;&gt;使い方&lt;/h2&gt;
&lt;p&gt;以下のような感じで使うことができます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;@media (max-width: 767px){
    img {
        width: 100%;
        height: auto;
    }
}
@media (min-width: 768px){
    img {
        width: 277px;
        height: 145px;
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;(max-width: 767px)&lt;/code&gt;はデバイスの画面幅が767px以下だったら、&lt;code&gt;{}&lt;/code&gt;のCSSを適用します。
&lt;code&gt;(min-width: 768px)&lt;/code&gt;はデバイスの画面幅が768px以上だったら、&lt;code&gt;{}&lt;/code&gt;のCSSを適用します。
これは例としてあげていて、レスポンシブ対応させるときは画像サイズを&lt;code&gt;%&lt;/code&gt;や&lt;code&gt;auto&lt;/code&gt;を使って指定することでいい感じにできます。&lt;/p&gt;
&lt;p&gt;767pxを画面幅の境目にしている理由として、今のパソコンやスマホ、タブレットのサイズを考えると、767pxのサイズに合わせる見やすくできるそうです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;@media screen and (max-width: 767px)&lt;/code&gt;のような書き方をしているサイトが多数ありますが、&lt;code&gt;screen&lt;/code&gt;とはスクリーン画面ではなく、&lt;strong&gt;プリンターまたは音声機器以外のデバイスすべて&lt;/strong&gt;なので、わざわざ&lt;code&gt;screen&lt;/code&gt;をつける必要はないです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;レスポンシブ対応させるときは&lt;code&gt;@media&lt;/code&gt;を使って、デバイス毎にCSSを変更させましょう。&lt;/p&gt;</description>
    </item>
    <item>
      <title>一度は使ってみてほしいメモ帳アプリ「Boost Note」</title>
      <link>https://www.yuyagishita.com/review/app/boostnote/</link>
      <pubDate>Sun, 03 May 2020 21:46:23 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/app/boostnote/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;&lt;img alt=&#34;boostnote&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/boostnote.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;去年から「Boost Note」というメモ帳アプリ使っていて非常に便利なので、紹介記事を書きます。&lt;/p&gt;
&lt;h2 id=&#34;boost-noteとは&#34;&gt;「Boost Note」とは&lt;/h2&gt;
&lt;p&gt;開発者向けのMarkdown式のメモ帳アプリです。
簡単に操作できて、Todo管理やちょっとしたコードやコマンドをメモるのに最適です。
Windows, Mac, Linux, Android, iOSの環境で使うことができて、クラウドストレージもあるので（無料枠は100MBまで）各端末で共有をして使うこともできます。
OSSで提供されるレベルではないように思います。&lt;/p&gt;
&lt;p&gt;ダウンロードは&lt;a href=&#34;https://boostnote.io/&#34;&gt;こちら&lt;/a&gt;からできます。&lt;/p&gt;
&lt;h2 id=&#34;メリット&#34;&gt;メリット&lt;/h2&gt;
&lt;h3 id=&#34;めんどくさい設定が必要なく即使える&#34;&gt;めんどくさい設定が必要なく、即使える&lt;/h3&gt;
&lt;p&gt;アプリをインストールしてから、簡単な初期設定をすれば即使えます。初期設定も名前やエディター、フォントの色や大きさなどを設定するだけで使えます。（名前だけ設定すれば、あとはデフォルトでいい感じに使えます。）
めんどくさい設定がないので、とても嬉しいです。&lt;/p&gt;
&lt;h3 id=&#34;動作が軽い&#34;&gt;動作が軽い&lt;/h3&gt;
&lt;p&gt;起動してからすぐにメモることができます。メモって考えたことをすぐに書きたい時が多いので動作が
軽いのは便利です。アプリの起動が遅くて、もっさり動くとストレスの元になりますよね。&lt;/p&gt;
&lt;h3 id=&#34;ちょっとメモしたいことをmarkdownですぐに書ける&#34;&gt;ちょっとメモしたいことをMarkdownですぐに書ける&lt;/h3&gt;
&lt;p&gt;Markdownで書けるので、Todo管理するときのチェックボックスやメモしたいコードを記載することができ、後から見返した時にわかりやすいです。&lt;/p&gt;
&lt;h3 id=&#34;ローカルでもクラウドでも使うことができる&#34;&gt;ローカルでもクラウドでも使うことができる&lt;/h3&gt;
&lt;p&gt;ローカルでもクラウドでも使うことができるので、他の端末にも共有したいときにわざわざデータを移行する必要がないので、便利です。
僕はまだ使ったことがないですが。。&lt;/p&gt;
&lt;h3 id=&#34;タグ付けやブックマークをして整理できる&#34;&gt;タグ付けやブックマークをして整理できる&lt;/h3&gt;
&lt;p&gt;メモが増えてくると管理がめんどくさくなってきます。メモごとにタグ付けやブックマークをすることができるので、大切なメモがどこにあるのかすぐに見つけることができます。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;「Boost Note」は便利なので、開発者の人は是非使ってみてください。また、開発者の人じゃなくても直感的で使いやすいしMarkdownも難しくないので、使ってみてほしいです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MongoDB 入門</title>
      <link>https://www.yuyagishita.com/tech/database/mongodb-tutorial/</link>
      <pubDate>Thu, 30 Apr 2020 20:26:52 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/database/mongodb-tutorial/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;mongodb-logo&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/mongodb-logo.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;最近、MongoDBを使うことがあり、NoSQLをはじめて使いました。MongoDBを触ったことがない人のために書きます。&lt;/p&gt;
&lt;h2 id=&#34;mongodbインストール起動&#34;&gt;MongoDBインストール&amp;amp;起動&lt;/h2&gt;
&lt;p&gt;今回はDockerHubからMongoDBのコンテナイメージをインストールします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ docker pull mongo
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;インストールができたら、以下コマンドでコンテナを起動します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ docker run --name mongo-sample -d mongo
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;-d&lt;/code&gt;はバックグランドで起動することを意味してます。
起動したコンテナ内に以下コマンドで入ります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ docker exec -it mongo-sample bash
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;mongodbのシェル起動&#34;&gt;MongoDBのシェル起動&lt;/h2&gt;
&lt;p&gt;MongoDBのコンテナ内で以下コマンドを実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ mongo
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;シェルを起動したら、環境準備は完了です。&lt;/p&gt;
&lt;h2 id=&#34;基礎的な用語解説&#34;&gt;基礎的な用語解説&lt;/h2&gt;
&lt;p&gt;MongoDBをさわっていく上で、イメージしやすくするために、Oracleの用語と比較します。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;MongoDB&lt;/th&gt;
          &lt;th&gt;Oracle&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;データベース&lt;/td&gt;
          &lt;td&gt;データベース&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;コレクション&lt;/td&gt;
          &lt;td&gt;テーブル&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ドキュメント&lt;/td&gt;
          &lt;td&gt;行（レコード）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;フィールド&lt;/td&gt;
          &lt;td&gt;列（カラム）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;テストデータ作成&#34;&gt;テストデータ作成&lt;/h2&gt;
&lt;p&gt;以下コマンドをシェルで入力して、テストデータを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt; db.foods.insert({name:&amp;#39;apple&amp;#39;, price:50, producer:[&amp;#39;sato&amp;#39;]});
&amp;gt; db.foods.insert({name:&amp;#39;meat&amp;#39;, price:100, producer:[&amp;#39;suzuki&amp;#39;]});
&amp;gt; db.foods.insert({name:&amp;#39;fish&amp;#39;, price:120, producer:[&amp;#39;kaneko&amp;#39;, &amp;#39;kitamura&amp;#39;]});
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;以下コマンドでDBの情報をみることができます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt; db.stats()
{
	&amp;#34;db&amp;#34; : &amp;#34;test&amp;#34;,
	&amp;#34;collections&amp;#34; : 1,
	&amp;#34;views&amp;#34; : 0,
	&amp;#34;objects&amp;#34; : 3,
	&amp;#34;avgObjSize&amp;#34; : 86,
	&amp;#34;dataSize&amp;#34; : 258,
	&amp;#34;storageSize&amp;#34; : 20480,
	&amp;#34;numExtents&amp;#34; : 0,
	&amp;#34;indexes&amp;#34; : 1,
	&amp;#34;indexSize&amp;#34; : 20480,
	&amp;#34;scaleFactor&amp;#34; : 1,
	&amp;#34;fsUsedSize&amp;#34; : 28014751744,
	&amp;#34;fsTotalSize&amp;#34; : 62725623808,
	&amp;#34;ok&amp;#34; : 1
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;test&lt;/code&gt;データベースに&lt;code&gt;&amp;quot;collections&amp;quot; : 1&lt;/code&gt;となっていて、&lt;code&gt;foods&lt;/code&gt;コレクションが作成されて、&lt;code&gt;&amp;quot;objects&amp;quot; : 3&lt;/code&gt;からドキュメントが3つ作成されていることが分かります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>GitHubのプライベートリポジトリをgo getする</title>
      <link>https://www.yuyagishita.com/tech/golang/go-get-github-private-repository/</link>
      <pubDate>Mon, 27 Apr 2020 20:01:04 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/golang/go-get-github-private-repository/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;gopher-and-monalisa&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/gopher-and-monalisa.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;個人開発していて、GitHubの自分のプライベートリポジトリを&lt;code&gt;go get&lt;/code&gt;しようとして、エラーに遭遇しました。
今後同じような目にあった時のために、備忘録として残します。&lt;/p&gt;
&lt;h2 id=&#34;エラー内容&#34;&gt;エラー内容&lt;/h2&gt;
&lt;p&gt;以下のようなエラーが発生しました。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ go get github.com/&amp;lt;username&amp;gt;/&amp;lt;private-repository-name&amp;gt;

go: downloading github.com/&amp;lt;username&amp;gt;/&amp;lt;private-repository-name&amp;gt; v0.0.0-20200426100620-259de4f4dd2c
go get github.com/&amp;lt;username&amp;gt;/&amp;lt;private-repository-name&amp;gt;: github.com/&amp;lt;username&amp;gt;/&amp;lt;private-repository-name&amp;gt;@v0.0.0-20200426100620-259de4f4dd2c: verifying module: github.com/&amp;lt;username&amp;gt;/&amp;lt;private-repository-name&amp;gt;@v0.0.0-20200426100620-259de4f4dd2c: reading https://sum.golang.org/lookup/github.com/&amp;lt;username&amp;gt;/&amp;lt;private-repository-name&amp;gt;@v0.0.0-20200426100620-259de4f4dd2c: 410 Gone
	server response:
	not found: github.com/&amp;lt;username&amp;gt;/&amp;lt;private-repository-name&amp;gt;@v0.0.0-20200426100620-259de4f4dd2c: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/d99582f38bf8799347c5c3580859733d5d5c417fd23feb23ec82dc0787605157: exit status 128:
		fatal: could not read Username for &amp;#39;https://github.com&amp;#39;: terminal prompts disabled
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;原因&#34;&gt;原因&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;go get&lt;/code&gt;でモジュールをダウンロードする際は通常、http通信をしているみたいです。
GitHubのプライベートリポジトリへは認証が通らず、エラーになっていました。&lt;/p&gt;
&lt;h2 id=&#34;解決方法&#34;&gt;解決方法&lt;/h2&gt;
&lt;p&gt;以下手順で解決できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Personal access tokens&lt;/code&gt;を作成&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git config&lt;/code&gt;設定&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;1-personal-access-tokensを作成&#34;&gt;1. &lt;code&gt;Personal access tokens&lt;/code&gt;を作成&lt;/h3&gt;
&lt;p&gt;GitHubの&lt;a href=&#34;https://github.com/settings/tokens&#34;&gt;Developer settings&lt;/a&gt;画面でトークンを作成できます。
設定画面を開いたら、「Generate new token」を押すと、以下の画面が表示されます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「嫌われる勇気」は承認欲求がいらないことを教えてくれる</title>
      <link>https://www.yuyagishita.com/review/book/the-courage-to-be-dislinked/</link>
      <pubDate>Fri, 24 Apr 2020 19:54:22 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/the-courage-to-be-dislinked/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;the-courage-to-be-dislinked&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/the-courage-to-be-dislinked.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;本日「嫌われる勇気」をAudible（オーディオブック）で読み終わりました。オーディオブックは本の内容を朗読してくれるサービスで、作業しながら本の内容をインプットできれば効率が良さそうと思い、始めました。本の内容とオーディオブックで読んだ（聞いた）感想も交えて記載します。&lt;/p&gt;
&lt;h2 id=&#34;読む目的&#34;&gt;読む目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;アドラー心理学を学んで、自分の人生に役立てる。&lt;/li&gt;
&lt;li&gt;自分の常識が変化する体験をする。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;承認欲求は不必要な感情。承認欲求は他者からよく思われたいという感情からきていて、この感情に縛られると他者の言動を気にしてしまい、自由になることができない。&lt;/li&gt;
&lt;li&gt;課題の分離をすることで、自由になることができる。他者が抱えている課題には介入せずに、自分の課題に集中的して取り組むことが大切である。&lt;/li&gt;
&lt;li&gt;他者貢献があなたを幸せにする。&lt;/li&gt;
&lt;li&gt;原因論ではなく、目的論で考える。目的論で考えると次の行動が取りやすい。&lt;/li&gt;
&lt;li&gt;トラウマは存在しない。その人が行動しない理由をトラウマのせいに無意識でしている。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;行動すること&#34;&gt;行動すること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;承認欲求から逃れるために課題の分離をする。自分が悩むことや行動することは自分の課題であり、それについて他者がどう思うかは他者の課題だと理解する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;オーディオブックを使った感想&#34;&gt;オーディオブックを使った感想&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;作業をしながら聞いたので、本の概要や大切なキーワードについては理解ができたが、全体的な理解は薄い。&lt;/li&gt;
&lt;li&gt;作業しながら、インプットができるので、効率的で良い。&lt;/li&gt;
&lt;li&gt;プログラミングをしながら聞くことが多かったが、今回の本のような難しい内容ではなくもっと理解をしやすい本なら頭に入ってきそう。&lt;/li&gt;
&lt;li&gt;全然頭に入ってこなかったら、今後は移動時間や家事をやっている時のみに使おうと思っていたが、ある程度は頭に入ってきていたので、今後もこのインプットを継続する。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>「ゼロ秒思考」で思考力を高める</title>
      <link>https://www.yuyagishita.com/lifehack/lifestyle/zerothink/</link>
      <pubDate>Tue, 21 Apr 2020 21:14:14 +0900</pubDate>
      <guid>https://www.yuyagishita.com/lifehack/lifestyle/zerothink/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;zerothink&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/zerothink.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;「ゼロ秒思考」を始めて、7か月が経過しました。&lt;br&gt;
「ゼロ秒思考」とは、赤羽雄二さん著のビジネス書で、取り組み方はA4の紙1枚にテーマを書いて、1分で3、4行程度それについて自分が思ったことを書きます。それを1日10セット毎日繰り返します。自分が考えたことを瞬時に書くだけでいいので、そこまでハードルは高くないのかなと思います。YouTuberのAKIOBLOGさんの影響で始めました。&lt;/p&gt;
&lt;p&gt;僕の場合は、書いた紙の管理がめんどくさいと思ったので、iPhoneのメモアプリに書いていました。本当はA4の紙にペンを使うことを著者は推奨しているので、やる際はそちらのやり方に沿ってください。&lt;br&gt;
こんな感じで書いてます。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;&lt;img alt=&#34;zerothink-sample&#34; loading=&#34;lazy&#34; src=&#34;../img/zerothink-sample.png&#34;&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;欲望がだだ漏れですね。笑&lt;br&gt;
自分が「ゼロ秒思考」に取り組んだ感想を書きます。&lt;/p&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;h3 id=&#34;なぜかと考える癖がつく&#34;&gt;「なぜか」と考える癖がつく&lt;/h3&gt;
&lt;p&gt;始める前は普段生活をしていて、物事に対してそういうものだと思い思考停止してしまっていました。たとえば、日本では「新卒で入社してから3年はその会社で働こう。」といった考え方があります。そういうものだと受け入れてしまってはいないでしょうか？なぜ3年働く必要があるのかと考えると、3年も継続できなかった人間はまたやめるかもと企業から思われて再就職できないのではとか、最低でも3年は働いてもらわないとその企業が新卒採用で使った資金を回収することができないから企業側が定着させたのではとか考えることができます。&lt;br&gt;
思考の深掘りをすることで、仮説を立てて自分の意見を持つことができます。&lt;/p&gt;
&lt;h3 id=&#34;頭の中が整理される&#34;&gt;頭の中が整理される&lt;/h3&gt;
&lt;p&gt;自分がやりたいことや疑問に思ったことなどを深掘りしていくので、頭の中が整理されます。やってみるとわかりますが、自分が理解していたと思っていても、うまく言語化できずに自分の理解不足がわかります。それに、頭の中のモヤモヤがすっきりします。&lt;/p&gt;
&lt;h3 id=&#34;やるべきことが明確になる&#34;&gt;やるべきことが明確になる&lt;/h3&gt;
&lt;p&gt;頭の中が整理されていくことで、今やるべきことや大切なことが明確にわかります。それらを実行するために必要な情報を集めたりする行動を迷いなくとれるようになります。&lt;/p&gt;
&lt;h3 id=&#34;1つのテーマを繰り返したりそのテーマから派生した内容を深掘りしないと思考が浅くなる&#34;&gt;1つのテーマを繰り返したり、そのテーマから派生した内容を深掘りしないと思考が浅くなる&lt;/h3&gt;
&lt;p&gt;注意点として、次から次にテーマをがらりと変えて行う思考が浅いまま終わってしまいます。
たとえば、先ほど挙げた「どのようにいきたい？」というテーマで&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自由にいきたい&lt;/li&gt;
&lt;li&gt;自分で仕事を選べるようになりたい&lt;/li&gt;
&lt;li&gt;楽しく生きたい&lt;/li&gt;
&lt;li&gt;世の中に新しい価値を生み出したい&lt;/li&gt;
&lt;li&gt;自分の周りの人は最低でも幸せにしたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;といった答えを出していますが、このままだと思考が浅いです。
自由にいきたいと言っているが、そもそも自由って何？どんな状態をさしているのかといった内容が全然わかりません。思考の深掘りをするためにも「自由に生きるとは？」というテーマでまた取り組む必要があります。それで、これ以上深掘りすることができない状態になったら、それが今の自分の答えになります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;毎日繰り返すとスムーズに思考の深掘りをすることができるようになるので、ぜひ取り組んでみてください。僕も続けます！&lt;/p&gt;</description>
    </item>
    <item>
      <title>AtCoder Beginner Contest 163の振り返り</title>
      <link>https://www.yuyagishita.com/tech/atcoder/abc163/</link>
      <pubDate>Sun, 19 Apr 2020 21:55:38 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/atcoder/abc163/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;abc163&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/abc163.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回で5回目のコンテスト参加となりました。今回は「Unrated」になってしまいました。
コロナウイルスの影響で参加者がめちゃくちゃいて、サーバ処理が追いつかなかったんですかね。。コンテストが始まると一気にサーバ負荷がかかるという特殊な状況ですが、運営側には頑張っていただきたいです。&lt;br&gt;
今回はC問題まで解いたので、そこまでの解説をします。&lt;/p&gt;
&lt;h2 id=&#34;a---circle-pond&#34;&gt;A - Circle Pond&lt;/h2&gt;
&lt;h3 id=&#34;問題文&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;半径Rの円の周長を出力してください。&lt;/p&gt;
&lt;h3 id=&#34;制約&#34;&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ R ≤ 100&lt;/li&gt;
&lt;li&gt;入力は全て整数である。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;解説&#34;&gt;解説&lt;/h3&gt;
&lt;p&gt;Pythonは&lt;code&gt;math.pi&lt;/code&gt;で円周率を使えます。&lt;/p&gt;
&lt;h3 id=&#34;回答&#34;&gt;回答&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;math&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pi&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;b---homework&#34;&gt;B - Homework&lt;/h2&gt;
&lt;h3 id=&#34;問題文-1&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;高橋君の夏休みはN日間です。&lt;br&gt;
夏休みの宿題がM個出されており、i番目の宿題をやるにはAi日間かかります。&lt;br&gt;
複数の宿題を同じ日にやることはできず、また、宿題をやる日には遊ぶことができません。&lt;br&gt;
夏休み中に全ての宿題を終わらせるとき、最大何日間遊ぶことができますか？&lt;br&gt;
ただし、夏休み中に全ての宿題を終わらせることができないときは、かわりに&amp;rsquo;&lt;code&gt;-1&lt;/code&gt;&amp;lsquo;を出力してください。&lt;/p&gt;
&lt;h3 id=&#34;制約-1&#34;&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ N ≤ 10^6&lt;/li&gt;
&lt;li&gt;1 ≤ M ≤ 10^4&lt;/li&gt;
&lt;li&gt;1 ≤ Ai ≤ 10^4&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;解説-1&#34;&gt;解説&lt;/h3&gt;
&lt;p&gt;この問題は高橋君の夏休み日数から宿題にかかる全日数を引くだけです。&lt;/p&gt;
&lt;h3 id=&#34;回答-1&#34;&gt;回答&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;M&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;A&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;M&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;-1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;c---management&#34;&gt;C - management&lt;/h2&gt;
&lt;h3 id=&#34;問題文-2&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;N人の社員からなる会社があり、各社員には1,&amp;hellip;,Nの社員番号が割り当てられています。&lt;br&gt;
社員番号1の社員以外の全ての社員には、自分より社員番号が小さい直属の上司がちょうど1人います。&lt;br&gt;
XさんがYさんの直属の上司であるとき、YさんはXさんの直属の部下であるといいます。&lt;br&gt;
社員番号iの社員の直属の上司の社員番号がAiであることが与えられます。各社員について直属の部下が何人いるか求めてください。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「FACTFULNESS」は1度は読むべき名作</title>
      <link>https://www.yuyagishita.com/review/book/factfulness/</link>
      <pubDate>Thu, 16 Apr 2020 20:02:57 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/book/factfulness/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;factfulness&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/factfulness.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;2019年に読んだ本の中でダントツに面白かった本です。書店のランキングの上位に常に入っていて、気にはなっていましたが、分厚めの本だったので敬遠していました。
読み出したら、めちゃくちゃ面白くて１週間ぐらいで読み切りました。&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;ja&#34; dir=&#34;ltr&#34;&gt;今年読んだ中で1番おもしろかった本でした。&lt;br&gt;&lt;br&gt;ファクトフルネスとは自分の中にある本能を理解して、数字や出来事をもとに事実を把握するといった意味があります。&lt;br&gt;&lt;br&gt;この本を読んで、自分がいかに世界を知らなくて、偏見や先入観で物事を見ていることが分かりました。&lt;br&gt;&lt;br&gt;めちゃくちゃおすすめです。 &lt;a href=&#34;https://t.co/qHKcOlmDbt&#34;&gt;pic.twitter.com/qHKcOlmDbt&lt;/a&gt;&lt;/p&gt;&amp;mdash; Yu (@yuyagishita) &lt;a href=&#34;https://twitter.com/yuyagishita/status/1193064794883907584?ref_src=twsrc%5Etfw&#34;&gt;November 9, 2019&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;以前にこのようなツイートをしていて、「FACTFULNESS」を一言でいうと&lt;br&gt;
&lt;strong&gt;「FACTFULNESSとは自分の中にある本能を理解して、数字や出来事をもとに事実を把握する」&lt;/strong&gt; といった意味があります。
ここから要点まとめ&amp;amp;感想をまとめていきます。&lt;/p&gt;
&lt;h2 id=&#34;要点まとめ感想&#34;&gt;要点まとめ&amp;amp;感想&lt;/h2&gt;
&lt;p&gt;僕は「FACTFULNESS」を読み始めて、いきなりびっくりさせられました。
本のイントロダクションで「クイズに挑戦してみよう」という部分があり、クイズは全13問あって内容は世界の事実に関する問題です。
その問題の中で数問ピックアップします。&lt;/p&gt;
&lt;p&gt;質問1
「現在、低所得国に暮らす女子の何割が、初等教育を修了するでしょう？」&lt;br&gt;
A　20%&lt;br&gt;
B　40%&lt;br&gt;
C　60%&lt;/p&gt;
&lt;p&gt;質問3
「世界の人口のうち、極度の貧困にある人の割合は、過去20年でどう変わったでしょう？」&lt;br&gt;
A　約2倍になった&lt;br&gt;
B　あまり変わっていない&lt;br&gt;
C　半分になった&lt;/p&gt;
&lt;p&gt;さあ、みなさん分かりましたか？&lt;/p&gt;
&lt;p&gt;正解は、質問1は&lt;strong&gt;C&lt;/strong&gt;で質問3は&lt;strong&gt;C&lt;/strong&gt;です！&lt;br&gt;
僕は最初にこの問題に取り組んだ時に、低所得国の初等教育か。。そんなに教育受けれる子はあんまりいなんだろうなと思って、AかBって思いましたし、世界の貧困もあんまり変わっていないだろうと思いました。
みなさんはどうですかね？多分僕と同じように思った人はかなり多いと思います。
なぜなら、実際に著者のハンス・ロスリングさんはこれらの問題を世界中の人に対して実施した結果、10%程度の平均正解率だったそうです。質問3の正解率は平均で7%です。
しかも、これらの問題に取り組んだ人には、学者や大学教授などの学歴が高く優秀な人たちが多く含まれています。&lt;/p&gt;
&lt;p&gt;このような結果になった理由として、&lt;strong&gt;人間は物事をドラマチックに考えてしまう&lt;/strong&gt;癖があるそうです。確かに、ニュースとかを見ていて、飛行機が墜落したとか殺人事件が起きたとか物騒なニュースが多く流れていて、それを見る度に世の中には危険がたくさんあると考えてしまいます。飛行機が墜落する確率なんて、今やほとんどない確率なのに。&lt;/p&gt;
&lt;p&gt;ハンス・ロスリングさんはこの本の中で、人間には &lt;strong&gt;10の思い込み&lt;/strong&gt;があることを伝えています。
その中で僕が特に気をつけた方がいいと思った&lt;strong&gt;思い込み&lt;/strong&gt;を1つ挙げます。&lt;/p&gt;
&lt;h3 id=&#34;分断本能&#34;&gt;分断本能&lt;/h3&gt;
&lt;p&gt;分断本能とは全ての物事に対して、2つのグループに分けようとしてしまう本能です。例を挙げると「発展途上国」と「先進国」、「金持ち」と「貧乏人」、「善」と「悪」。大抵の場合は、分かりやすく二極化することはなく、真ん中ぐらいの国や所得層、良い面もあれば悪い面もあったりします。&lt;br&gt;
人がこのように分断させて考えてしまうのは物事をシンプルにさせたいのと二極化をすることでドラマチックな展開を希望しているからです。確かに二極化させた方が構図が分かりやすく対決したりしたら面白くはなりそうです。&lt;br&gt;
この本能のせいで、偏った見方をしてしまいます。&lt;/p&gt;
&lt;p&gt;この本能を抑えるためには、&lt;strong&gt;「分断」を示す言葉に気づくこと&lt;/strong&gt;が大切です。多くの場合、実際には分断されておらず、誰もいないと思われていた中間部分に大半の人がいます。
また、世界を示しているデータを元に世界を見る工夫をすれば防ぐことができます。&lt;/p&gt;
&lt;p&gt;この本は&lt;strong&gt;10の思い込み&lt;/strong&gt;に対する対処方法として、正確なデータや事実を元に思考しようと教えてくれていて、現在世界中で流行している「covid-19」に対してもこの考え方をするべきだと僕は思っています。人々が恐怖本能に駆られて、買い占めをしたり、宅配の人に対してアルコールスプレーを吹き付けたりと本能で行動をしてしまっていてとても残念です。現在のコロナウイルスの感染の仕方や物流が止まっていないことを正確に認識できていれば、そのような行動はしないはずです。&lt;br&gt;
感染症が流行っている今こそ、「FACTFULNESS」を読むべきだなと思います。&lt;/p&gt;</description>
    </item>
    <item>
      <title>AtCoder Beginner Contest 162の振り返り</title>
      <link>https://www.yuyagishita.com/tech/atcoder/abc162/</link>
      <pubDate>Sun, 12 Apr 2020 22:28:00 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/atcoder/abc162/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;abc162&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/abc162.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回で4回目のコンテスト参加となりました。結果として、C問題まではなんとか解くことができました。ですが、B問題を1回凡ミスしたことに気づかず20分後に再提出したこととC問題はPythonでは時間制限を突破できなくて、PyPyで提出をしてなんとか正解だったのであまり良くない内容でした。
まだまだ余裕でD問題に到達することができていないです。。&lt;br&gt;
基礎力を強化するためにも、今回も振り返りをしていきます。(回答に記載しているコードは提出してACしたコードです。)&lt;/p&gt;
&lt;h2 id=&#34;a---lucky-7&#34;&gt;A - Lucky 7&lt;/h2&gt;
&lt;h3 id=&#34;問題文&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;3桁の整数Nが与えられます。Nのいずれかの桁に数字の7は含まれますか？
含まれるなら Yes を、含まれないなら No を出力してください。&lt;/p&gt;
&lt;h3 id=&#34;制約&#34;&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;100 ≤ X ≤ 999&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;解説&#34;&gt;解説&lt;/h3&gt;
&lt;p&gt;この問題は入力された3桁の文字数それぞれに「7」が含まれているかを確認すればOKです。&lt;/p&gt;
&lt;h3 id=&#34;回答&#34;&gt;回答&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;7&amp;#39;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;7&amp;#39;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;7&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Yes&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;No&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;b---fizzbuzz-sum&#34;&gt;B - FizzBuzz Sum&lt;/h2&gt;
&lt;h3 id=&#34;問題文-1&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;FizzBuzz列a1,a2,&amp;hellip;を次のように定めます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iが3でも5でも割り切れるなら、ai = FizzBuzz&lt;/li&gt;
&lt;li&gt;そうではなくiが3で割り切れるなら、ai = Fizz&lt;/li&gt;
&lt;li&gt;そうではなくiが5で割り切れるなら、ai = Buzz&lt;/li&gt;
&lt;li&gt;そうではないなら、ai = i&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FizzBuzz列のN項目までに含まれる数の和を求めてください。&lt;/p&gt;
&lt;h3 id=&#34;制約-1&#34;&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ X ≤ 10^6&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;解説-1&#34;&gt;解説&lt;/h3&gt;
&lt;p&gt;入力されたN項目までのそれぞれの数字をFizzBuzzで判別して、該当しない数字を足せばOKです。&lt;/p&gt;
&lt;h3 id=&#34;回答-1&#34;&gt;回答&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ans_num&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;FizzBuzz&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;elif&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Buzz&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;elif&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Buzz&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;ans_num&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ans_num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;c---sum-of-gcd-of-tuples-easy&#34;&gt;C - Sum of gcd of Tuples (Easy)&lt;/h2&gt;
&lt;h3 id=&#34;問題文-2&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;$$
\sum_{a=1}^{K} \sum_{b=1}^{K} \sum_{c=1}^{K} gcd(a, b, c)
$$
を求めてください。&lt;br&gt;
ただし、gcd(a, b, c)はa,b,cの最大公約数を表します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>React &#43; Go &#43; MongoDBの環境をDocker Composeで作成した</title>
      <link>https://www.yuyagishita.com/tech/docker/react-golang-mongodb-with-docker-compose/</link>
      <pubDate>Sat, 11 Apr 2020 12:51:41 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/docker/react-golang-mongodb-with-docker-compose/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;react-golang-mongodb-with-docker-compose&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/react-golang-mongodb-with-docker-compose.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;現在、勉強がてら個人開発をしていて、せっかくの個人開発なので、今までさわったことがないReact, Go, MongoDBでwebアプリを作ります。
その最初の段階として、Docker Composeを使って環境構築を進めます。&lt;/p&gt;
&lt;h2 id=&#34;reactの環境構築&#34;&gt;Reactの環境構築&lt;/h2&gt;
&lt;p&gt;今回の開発では、プロジェクト配下をこんな感じにしています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;プロジェクト
├── backend
├── frontend
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reactは&lt;code&gt;frontend&lt;/code&gt;配下に構築します。&lt;/p&gt;
&lt;h3 id=&#34;dockerfileの作成&#34;&gt;&lt;code&gt;Dockerfile&lt;/code&gt;の作成&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Dockerfile&lt;/code&gt;にDocker上で起動させるコンテナの構成情報を書きます。
&lt;code&gt;frontend&lt;/code&gt;配下に以下内容で作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Dockerfile&#34; data-lang=&#34;Dockerfile&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;node:13.12.0-alpine3.10&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WORKDIR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/src/app&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;1行目にはコンテナのDockerイメージ、2行目にはコンテナ内の作業ディレクトリを記載しています。
alpineはAlpine Linuxのことで、必要最低限の構成がされているおかげで、Dockerイメージの軽量化を図ることができます。&lt;/p&gt;
&lt;h3 id=&#34;docker-composeymlの作成&#34;&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;の作成&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;で複数のコンテナをまとめて起動することができます。拡張子は「.yml」「.yaml」どちらでも動きます。
&lt;del&gt;どっちかに統一してくれればいいのに。&lt;/del&gt;&lt;br&gt;
プロジェクト配下に以下内容で作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;3&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;node&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;context&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;./frontend&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;dockerfile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Dockerfile&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;./frontend:/usr/src/app&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;command&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;sh -c &amp;#34;yarn start&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;s2&#34;&gt;&amp;#34;3000:3000&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;volumes&lt;/code&gt;ではコンテナ内の&lt;code&gt;usr/src/app&lt;/code&gt;を&lt;code&gt;frontend&lt;/code&gt;に永続化させます。
&lt;code&gt;ports&lt;/code&gt;では外部の3000ポートとコンテナ内の3000ポートをつなげています。ローカル環境では&lt;code&gt;localhost:3000&lt;/code&gt;でアクセスができるようになります。&lt;/p&gt;
&lt;h3 id=&#34;dockerイメージのビルド&#34;&gt;Dockerイメージのビルド&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;のある階層で以下コマンドを叩きます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;docker-compose build
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Building node
Step 1/2 : FROM node:13.12.0-alpine3.10
 ---&amp;gt; b529a862f234
Step 2/2 : WORKDIR /usr/src/app
 ---&amp;gt; Using cache
 ---&amp;gt; b753b92fbf97
Successfully built b753b92fbf97
Successfully tagged プロジェクト名_node:latest
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上記のような表示がされ、ビルドすることができます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「HHKB Professional HYBRID Type-S」こいつは最高かもしれない</title>
      <link>https://www.yuyagishita.com/review/gadget/hhkb-professional-hybrid-type-s/</link>
      <pubDate>Thu, 09 Apr 2020 17:58:56 +0900</pubDate>
      <guid>https://www.yuyagishita.com/review/gadget/hhkb-professional-hybrid-type-s/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;hhgb&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/hhkb.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;ずっと欲しかったHHKBの最新モデル。2019年末に発売してからずっと欲しかったですが、お値段が3万代と非常に高価だったので、なかなか手を出すことができませんでした。ですが、コロナウイルスの影響により、飲み会などでお金を使う機会がなくなり、ある程度生活に余裕が生まれたので、遂に念願の購入をしました！！（また貧乏生活が始まります。笑）&lt;br&gt;
僕は今まで自分でキーボードを買ったことがなく、いきなり最高級品に手を出すのはどうかと思いましたが、キーボードは長年使えることを考えるとどうせ買うなら一番いいやつを買おうということで購入しました。今回はキーボード初心者が買ってどうだったかレビューしていきます。&lt;/p&gt;
&lt;h2 id=&#34;hhkb-professional-hybrid-type-s-について&#34;&gt;HHKB Professional HYBRID Type-S について&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの箱&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_box_1.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの中身&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_nakami.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回、購入したのは「Hhkb Professional HYBRID Type-S」の&lt;strong&gt;英語配列/墨&lt;/strong&gt;です。&lt;br&gt;
2019年12月10日に3年ぶり発売されたHHKBの最新モデルで、Bluetooth 接続で最大4台までの端末と同時ペアリングできるほか、USB Type-C による有線接続、そしてキーマップのカスタマイズ（WindowsOSのみ）に対応。（Macは5月とかに対応予定みたいです）静電容量無接点方式により心地よいタイピングが実現されているそうです。&lt;br&gt;
開封すると、HHKBの本体、各国語で用意された取扱説明書、Macユーザー向けの注意書き、そして富士通の乾電池が入っていました。&lt;/p&gt;
&lt;h2 id=&#34;非常に美しいフォルム&#34;&gt;非常に美しいフォルム&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの正面&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_front.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;見てください！この美しいフォルムを！！&lt;br&gt;
最大限にキーの数を減らしているので、非常にコンパクトです。キーの数は僕が購入した英語配列で60キーです。通常のキーボードはキーが100キー程度あることを考えると本当に少ないです。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの右側&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_right.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;特徴的な配列になっていて、「Fn」キーと他のキーを同時押しすることでカーソル移動など様々な機能を使うことができます。例えば、「Fn」+「;」同時押しで左にカーソル移動ができます。僕は普段MacBookProを使っていて、「Delete」キーの位置が違うのでよく押し間違えてしまうのと、矢印の移動がまだ慣れていないです。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの左側&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_left.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;左側は「Fn」キーと同時押しで音量変更などができます。
MacOSの場合はドライバのインストールが必要です。&lt;br&gt;
&lt;a href=&#34;https://www.pfu.fujitsu.com/hhkeyboard/macdownload.html&#34;&gt;Mac用ドライバ （HHKB Professionalシリーズ専用）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBのDIP&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_dip.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Macで扱う場合は背面にあるDIPスイッチの「SW2」をオンにすれば使うことができます。&lt;/p&gt;
&lt;h2 id=&#34;4台まで接続可能なbluetooth接続&#34;&gt;4台まで接続可能なBluetooth接続&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBのbluetooth&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_bluetooth.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;前作から進化している点として、4台までBluetooth接続登録をすることで、「Fn」+「Control」+「1~4の数字キー」でいつでも切り替えことができます。僕はMacBookProしか接続していないので、他の端末を買ったら使ってみたいです。&lt;/p&gt;
&lt;h2 id=&#34;人間がタイピングしやすい設計&#34;&gt;人間がタイピングしやすい設計&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの横&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_side.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;すべてのキートップ面を中央方向に向けた「シリンドリカルステップスカルプチャ」、3段階のチルト切り替えでキーボードを好みの角度にできる「傾き調整機能」、タイピングミスを減らすために全てのキーが45gになっている「キー荷重」などタイピングのしやすさにめちゃくちゃこだわっていますね。&lt;/p&gt;
&lt;h2 id=&#34;電源は充電式ではなく乾電池&#34;&gt;電源は充電式ではなく乾電池&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの乾電池&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_denti.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;HHKBは充電式ではなく乾電池を採用しています。画像の所に乾電池2本を入れることで動きます。乾電池を採用している理由として、充電式だと内蔵しているバッテリーが劣化するとパフォーマンスが下がってきたり、動かなくなるので、長期的に使うことを見越して乾電池にしているそうです。この出っ張りは見た目的にはあんまり美しくないですね。。&lt;/p&gt;
&lt;h2 id=&#34;実際に使った感想&#34;&gt;実際に使った感想&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;HHKBの尊師スタイル&#34; loading=&#34;lazy&#34; src=&#34;../img/hhkb_sonshi.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;基本的には尊師スタイルで使っています。尊師スタイルとはリチャード・ストールマンという有名プログラマがラップトップ上にHHKBを置いてタイピングしている画像が元になっているそうです。&lt;br&gt;
僕は今まで会社では支給された一般的なキーボード（結構なお古）、自宅ではMacBookProのバタフライキーボードを使っていました。最近はコロナウイルスの影響により、フルリモートワークとなっていて、バタフライキーボードを使っているのですが、HHKBを1度使うともう今までの生活に戻ることはできそうにないです。笑　打鍵感がしっかりしていて、キータッチが軽く、ストロークもいい感じだし、何よりも「スコスコ」となる音がたまらなくいいです。文字を入力していてすごい気持ちがいいです。いい買い物をしたなととても満足しています。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;特にキーボードにこだわりがないなら、買うべきです。&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>PythonでPoetryを使ってみた</title>
      <link>https://www.yuyagishita.com/tech/python/poetry/</link>
      <pubDate>Sun, 05 Apr 2020 16:12:01 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/python/poetry/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;poetry&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/poetry.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;先日、僕が入会しているオンラインサロンのメンバーの方に、「PipenvよりもPoetryの方がいい！」といったことをお聞きして、Poetryを知らなかったので調べて使ってみました。日本語に翻訳してくれている&lt;a href=&#34;https://cocoatomo.github.io/poetry-ja/&#34;&gt;公式ドキュメント&lt;/a&gt;にそって進めていきます。&lt;/p&gt;
&lt;h2 id=&#34;poetryとは&#34;&gt;Poetryとは&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.python.org/dev/peps/pep-0518/&#34;&gt;PEP 518&lt;/a&gt;で提案された&lt;code&gt;pyproject.toml&lt;/code&gt;によるパッケージ管理を導入したツールです。
&lt;code&gt;pyproject.toml&lt;/code&gt;で&lt;code&gt;requirements.txt&lt;/code&gt;、&lt;code&gt;setup.py&lt;/code&gt;、&lt;code&gt;setup.cfg&lt;/code&gt;、&lt;code&gt;MANIFEST.in&lt;/code&gt;を置き換えることができます。Pipenvは&lt;code&gt;requirements.txt&lt;/code&gt;の置き換えしかできないので、いろんなファイルを置き換えることができて良いですね。また、Pipenvで使用する&lt;code&gt;Pipfile&lt;/code&gt;は独自規格で今後継続的に採用されるか不明なので、PipenvよりPoetryを使う方が良さそうです。&lt;/p&gt;
&lt;h2 id=&#34;poetryインストール&#34;&gt;Poetryインストール&lt;/h2&gt;
&lt;p&gt;MacやLinuxでは以下コマンドでインストールします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;$HOME/.poetry/bin&lt;/code&gt;にインストールされます。&lt;br&gt;
Poetryを更新したいときは、以下コマンドを実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;poetry self update
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;bash-fish-zshでの補完の有効化&#34;&gt;Bash, Fish, Zshでの補完の有効化&lt;/h2&gt;
&lt;p&gt;僕はシェルにFishを使っていて、補完をサポートしてくるのでありがたいです。
公式ドキュメントには自分のシェルに合った次のコマンドどれかを使えばいいそうです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Bash
poetry completions bash &amp;gt; /etc/bash_completion.d/poetry.bash-completion

# Bash (macOS/Homebrew)
poetry completions bash &amp;gt; $(brew --prefix)/etc/bash_completion.d/poetry.bash-completion

# Fish
poetry completions fish &amp;gt; ~/.config/fish/completions/poetry.fish

# Zsh
poetry completions zsh &amp;gt; ~/.zfunc/_poetry

# Oh-My-Zsh
mkdir $ZSH/plugins/poetry
poetry completions zsh &amp;gt; $ZSH/plugins/poetry/_poetry
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;変更を効かせるために、シェルの再起動をしましょう。&lt;/p&gt;
&lt;h2 id=&#34;プロジェクトのセットアップ&#34;&gt;プロジェクトのセットアップ&lt;/h2&gt;
&lt;p&gt;Poetryを試すためのプロジェクトを作成します。
次のコマンドで作成できます。&lt;code&gt;poetry-demo&lt;/code&gt;と名付けています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;poetry new poetry-demo
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;すると&lt;code&gt;poetry-demo&lt;/code&gt;ディレクトリが作成されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;poetry-demo
├── pyproject.toml
├── README.rst
├── poetry_demo
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_poetry_demo.py
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;pyproject.toml&lt;/code&gt;がプロジェクトの依存関係をまとめてくれています。中身はこのようになっています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PythonでPipenvを使ってみた</title>
      <link>https://www.yuyagishita.com/tech/python/pipenv/</link>
      <pubDate>Fri, 03 Apr 2020 21:00:13 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/python/pipenv/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;pipenv&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/pipenv.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Pipenvを使うと、個人開発の時だけではなく、複数人で開発する際にもパッケージ管理が楽になります。Pythonで作業環境を整えるのが非常に簡単になります。&lt;br&gt;
&lt;a href=&#34;https://pipenv-ja.readthedocs.io/ja/translate-ja/&#34;&gt;公式&lt;/a&gt;によると&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pipenvは、手動でパッケージのインストールおよびアンインストールを行うのと同じように Pipfile に対してパッケージの追加および削除を行うのに加え、自動でプロジェクト用の仮想環境を作成し管理します。 またPipenvは、いかなるときも重要な Pipfile.lock を生成し、これを利用しビルドが常に同じ結果になるようにします。&lt;br&gt;
Pipenvは主にアプリケーションのユーザーと開発者に、簡単に作業環境を作れる方法を提供するためのツールです。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;とのことです。&lt;/p&gt;
&lt;h2 id=&#34;pipenvインストール&#34;&gt;Pipenvインストール&lt;/h2&gt;
&lt;p&gt;僕はMacを使っているので、Homebrewでインストールします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;brew install pipenv
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;プロジェクト作成パッケージのインストール&#34;&gt;プロジェクト作成＆パッケージのインストール&lt;/h2&gt;
&lt;p&gt;Pipenvを試すためのプロジェクトを作成します。
今回は&lt;code&gt;pipenv-test&lt;/code&gt;ディレクトリをホームディレクトリに作成して、その配下にPythonの静的解析ができるflake8をインストールをします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mkdir pipenv-test
cd pipenv-test
pipenv install flake8
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;インストールをするとターミナルに以下のような表示がされます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Creating a virtualenv for this project…
Pipfile: /Users/ユーザーネーム/pipenv-test/Pipfile
Using /usr/local/Cellar/pipenv/2018.11.26_4/libexec/bin/python3.8 (3.8.2) to create virtualenv…
⠋ Creating virtual environment...created virtual environment CPython3.8.2.final.0-64 in 719ms
  creator CPython3Posix(dest=/Users/ユーザーネーム/.local/share/virtualenvs/pipenv-test-x1ZFqoq_, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/Users/ユーザーネーム/Library/Application Support/virtualenv/seed-app-data/v1)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

✔ Successfully created virtual environment!
Virtualenv location: /Users/ユーザーネーム/.local/share/virtualenvs/pipenv-test-x1ZFqoq_
Creating a Pipfile for this project…
Installing flake8…
Adding flake8 to Pipfile&amp;#39;s [packages]…
✔ Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✔ Success!
Updated Pipfile.lock (e8e061)!
Installing dependencies from Pipfile.lock (e8e061)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 5/5 — 00:00:01
To activate this project&amp;#39;s virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;Pipfile&lt;/code&gt;でインストールしたパッケージなどを管理していて、プロジェクトを他の人に共有するときに依存関係が分かります。
&lt;code&gt;Pipfile&lt;/code&gt;の中身はこんな感じになります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pythonコードを静的解析した</title>
      <link>https://www.yuyagishita.com/tech/python/try-flake8-autopep/</link>
      <pubDate>Wed, 01 Apr 2020 20:34:45 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/python/try-flake8-autopep/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;python&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/python.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回は&lt;strong&gt;flake8&lt;/strong&gt;, &lt;strong&gt;autopep8&lt;/strong&gt;を使って、Pythonコードを静的解析します。&lt;/p&gt;
&lt;h2 id=&#34;静的解析とは&#34;&gt;静的解析とは&lt;/h2&gt;
&lt;p&gt;コードを実行せずに行う解析です。コーディングルールチェックや、制御フローの解析、コードの複雑度の分析をすることでソースコードにある問題点を発見してくれます。&lt;/p&gt;
&lt;h2 id=&#34;flake8とは&#34;&gt;flake8とは&lt;/h2&gt;
&lt;p&gt;pep8のチェック、pyflakesのチェック、及び循環的複雑度をチェックできるラッパーのことです。導入をすることで普段から綺麗なコーディングができます。&lt;/p&gt;
&lt;h2 id=&#34;autopep8とは&#34;&gt;autopep8とは&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.python.org/dev/peps/pep-0008/&#34;&gt;pep8&lt;/a&gt;のスタイルガイドに適用するように、自動的にPythonコードをフォーマットしてくれます。&lt;/p&gt;
&lt;h2 id=&#34;flake8-autopep8インストール&#34;&gt;flake8, autopep8インストール&lt;/h2&gt;
&lt;p&gt;さっそくインストールしていきましょう。&lt;br&gt;
以下コマンドでflake8をインストールできます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pip install flake8
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次にautopep8をインストールします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pip install autopep8
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;とても簡単ですね。&lt;/p&gt;
&lt;h2 id=&#34;使い方&#34;&gt;使い方&lt;/h2&gt;
&lt;h3 id=&#34;flake8&#34;&gt;flake8&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;flake8 &amp;lt;対象ファイルへのパス&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このコマンドで対象ファイルを静的解析することができ、結果をターミナルに表示してくれます。&lt;/p&gt;
&lt;h3 id=&#34;autopep8&#34;&gt;autopep8&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;autopep8 --in-place --aggressive --aggressive &amp;lt;filename&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/hhatto/autopep8&#34;&gt;公式ドキュメント&lt;/a&gt;にはこのように実行することを推奨しています。
&lt;code&gt;--in--place&lt;/code&gt;をつけることでファイルを更新してくれます。これがないとコードを自動的にフォーマットして、更新してくれません。
&lt;code&gt;--aggressive&lt;/code&gt;をつけることでコード整形のレベルを指定でき、２つつけることでレベル2になり修正対象のエラーが増えるそうです。
このコマンドで対象ファイルを静的解析することができ、結果をターミナルに表示してくれます。&lt;/p&gt;
&lt;h2 id=&#34;試してみる&#34;&gt;試してみる&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;test.py&lt;/code&gt;を任意のディレクトリに作成します。
内容はこんな感じにしてみました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;example&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_e&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_h&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_a&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_b&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_d&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_e&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_g&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_h&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;num_a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_e&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_h&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;   &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;mi&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;   &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;example&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;num_a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;     &lt;span class=&#34;n&#34;&gt;num_b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;num_c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;num_d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num_e&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;num_f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;num_g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;num_h&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;適切な改行や空白をいれることができていないし、文字列がとても長くなってしまっています。まずはflake8で静的解析をします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;test.py:1:18: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:1:24: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:1:30: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:1:36: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:1:42: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:1:48: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:1:54: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:1: E305 expected 2 blank lines after class or function definition, found 0
test.py:3:6: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:12: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:18: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:24: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:30: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:36: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:42: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:3:80: E501 line too long (80 &amp;gt; 79 characters)
test.py:4:9: E201 whitespace after &amp;#39;(&amp;#39;
test.py:4:47: E231 missing whitespace after &amp;#39;,&amp;#39;
test.py:4:80: E501 line too long (81 &amp;gt; 79 characters)
test.py:4:80: E202 whitespace before &amp;#39;)&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;コードが汚いと怒られていますね。この汚いコードを綺麗にするために、autopep8を実行します。
その後、ソースコードを見ると&lt;/p&gt;</description>
    </item>
    <item>
      <title>筋トレ歴5ヶ月で体重を3.9kg、体脂肪率を7%落とした筋トレメニュー</title>
      <link>https://www.yuyagishita.com/fitness/workout-menu/</link>
      <pubDate>Mon, 30 Mar 2020 22:12:44 +0900</pubDate>
      <guid>https://www.yuyagishita.com/fitness/workout-menu/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;workout-menu&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/workout-menu.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;2019年11月に「FASTGYM24」に入会して、5ヶ月経ちました。&lt;br&gt;
この5ヶ月間で体重が &lt;strong&gt;3.9kg&lt;/strong&gt;、体脂肪率が &lt;strong&gt;7%&lt;/strong&gt; 落ちました！！&lt;br&gt;
今回は自分が週2で行っている筋トレメニューについて紹介をします。（現在はコロナウイルスの影響を考慮して休会をしているので、自宅でできるメニューを考えなくてはいけません。。）&lt;/p&gt;
&lt;h2 id=&#34;筋トレメニュー&#34;&gt;筋トレメニュー&lt;/h2&gt;
&lt;p&gt;最近行った筋トレメニューの記録です。ジムで筋トレするときは、最初にトレーニング前の体重・体脂肪率・骨格筋量を測定してから、メニューの表示順番でトレーニングをしています。&lt;br&gt;
メニューの順番はジムの混み具合で変えていて、基本的にはBIG-3系の種目（ベンチプレス・デッドリフト）からやっています。
大体2時間あれば全メニューが完了していました。
&lt;img alt=&#34;2020/3/27メニュー&#34; loading=&#34;lazy&#34; src=&#34;../img/kintore-menu-20200327.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;全身を鍛えるために、それぞれの部位を10×3セット行っています。&lt;/p&gt;
&lt;p&gt;【胸】&lt;br&gt;
ベンチプレス&lt;/p&gt;
&lt;p&gt;【肩】&lt;br&gt;
リアレイズ&lt;br&gt;
ローイング&lt;br&gt;
振り子&lt;/p&gt;
&lt;p&gt;【背中・下半身】&lt;br&gt;
デッドリフト&lt;br&gt;
懸垂&lt;/p&gt;
&lt;p&gt;【腹】&lt;br&gt;
アブドミナル&lt;br&gt;
トーソ・ローテーション&lt;/p&gt;
&lt;p&gt;【有酸素運動】&lt;br&gt;
バイク&lt;/p&gt;
&lt;p&gt;肩のトレーニングは筋トレYouTuberのJinさんのトレーニングを参考にしていて、かなり効きます。&lt;/p&gt;
&lt;p&gt;バイクは足が筋肉痛にならない程度で、汗をかくようにこいでいます。有酸素運動はランニングとバイクを気分で変えながら行っています。&lt;/p&gt;
&lt;p&gt;週2で筋トレをしている理由としては、筋トレしている友人が山本義徳先生の方法が効率いいと聞いて、取り入れています。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;自分にあった筋トレと重量でメニューを組んで、コツコツやれば誰でも身体を変えることができます。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;マッチョを目指して頑張りましょう！！&lt;/p&gt;</description>
    </item>
    <item>
      <title>AtCoder Beginner Contest 160の振り返り</title>
      <link>https://www.yuyagishita.com/tech/atcoder/abc160/</link>
      <pubDate>Sun, 29 Mar 2020 16:05:35 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/atcoder/abc160/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;abc160&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/abc160.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回で3回目のコンテスト参加となりました。前回が2月22日（土）だったので１ヶ月ぶりでした。この１ヶ月、AtCoderの問題に取り組んでいなかったので、散々な結果となりました。。（日頃からコツコツとやらないとダメですね。）&lt;/p&gt;
&lt;p&gt;今回の結果はC問題が解けずに終わってしまい、悔しかったです。今後、類似問題が出てきても解けるように振り返りをします。
今回の僕の結果は&lt;a href=&#34;https://atcoder.jp/users/yuyagishita/history/share/abc160&#34;&gt;こちら&lt;/a&gt;から。（弱弱なので、お恥ずかしい。笑）&lt;/p&gt;
&lt;h2 id=&#34;a---coffee&#34;&gt;A - Coffee&lt;/h2&gt;
&lt;h3 id=&#34;問題文&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;ある長さ6の英小文字からなる文字列がcoffeeに似ているとは、3文字目と4文字目が等しく、5文字目と6文字目も等しいことを言います。与えられる文字列Sがcoffeeに似ているか判定してください。&lt;/p&gt;
&lt;h3 id=&#34;制約&#34;&gt;制約&lt;/h3&gt;
&lt;p&gt;Sは長さ6の英小文字からなる文字列である。&lt;/p&gt;
&lt;h3 id=&#34;解説&#34;&gt;解説&lt;/h3&gt;
&lt;p&gt;この問題は長さ6の文字列が&lt;strong&gt;3文字目 = 4文字目&lt;/strong&gt;、&lt;strong&gt;5文字目 = 6文字目&lt;/strong&gt;の時にYes、違う時にNoを表示すればOKです。&lt;/p&gt;
&lt;h3 id=&#34;回答&#34;&gt;回答&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Yes&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;No&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;b---golden-coins&#34;&gt;B - Golden Coins&lt;/h2&gt;
&lt;h3 id=&#34;問題文-1&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;高橋君は金色の硬貨が好きです。自分が持っている500円硬貨1枚につき1000、5円硬貨1枚につき5の嬉しさを得ます。高橋君はX円を持っています。これを高橋君の嬉しさが最大になるように両替したとき、高橋君の嬉しさはいくらになりますか？
(なお、利用できる硬貨は500円玉、100円玉、50円玉、10円玉、5円玉、1円玉の6種類とします。)&lt;/p&gt;
&lt;h3 id=&#34;制約-1&#34;&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;0≤X≤10^9&lt;/li&gt;
&lt;li&gt;Xは整数&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;解説-1&#34;&gt;解説&lt;/h3&gt;
&lt;p&gt;高橋君が持っているX円が500円何枚分（Y枚）あるのかを求めてから、&lt;code&gt;X＝X-500*Y&lt;/code&gt;円をして、同様にX円が5円何枚分（Z枚）あるか求めます。
その後、&lt;code&gt;Y*1000+Z*5&lt;/code&gt;を表示すればOKです。&lt;/p&gt;
&lt;h3 id=&#34;回答-1&#34;&gt;回答&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;math.floor&lt;/code&gt;を使うことで小数点以下を切り捨てしています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;X&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;total_500&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;total_5&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;total_count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;500&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;total_500&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;math&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;floor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;500&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;total_count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;total_500&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;X&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;total_500&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;500&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;total_5&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;math&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;floor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;total_count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;total_5&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;X&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;total_5&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;total_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;c---traveling-salesman-around-lake&#34;&gt;C - Traveling Salesman around Lake&lt;/h2&gt;
&lt;h3 id=&#34;問題文-2&#34;&gt;問題文&lt;/h3&gt;
&lt;p&gt;1周Kメートルの円形の湖があり、その周りにN軒の家があります。i番目の家は、湖の北端から時計回りにAiメートルの位置にあります。
家の間の移動は、湖の周りに沿ってのみ行えます。
いずれかの家から出発してN軒すべての家を訪ねるための最短移動距離を求めてください。&lt;/p&gt;
&lt;h3 id=&#34;制約-2&#34;&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;2≤K≤10^6&lt;/li&gt;
&lt;li&gt;2≤N≤2×10^5&lt;/li&gt;
&lt;li&gt;0≤A1&amp;lt;&amp;hellip;&amp;lt;AN&amp;lt;K&lt;/li&gt;
&lt;li&gt;入力中のすべての値は整数である。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;解説-2&#34;&gt;解説&lt;/h3&gt;
&lt;p&gt;この問題を解いているとき、全ての出発地点からの最短経路を全部計算するのかなと思ってしまい、実装方法が訳分からずに途中で解くのをやめました。。&lt;br&gt;
解き方として、円形の湖沿いを通って全ての家を通る必要があるので、最短経路を求めるには家と家の距離が最大の道を通らなければいいみたいです。（こういう問題を円環っていうらしいです。）
以下の画像のように、湖を2周した長さを直線で表示すると、それぞれの家と家の距離がわかるので、最大の道をKメートルから引いてあげます。
&lt;img alt=&#34;解説&#34; loading=&#34;lazy&#34; src=&#34;../img/ABC160-C2.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://www.yuyagishita.com/about/</link>
      <pubDate>Fri, 27 Mar 2020 17:01:47 +0900</pubDate>
      <guid>https://www.yuyagishita.com/about/</guid>
      <description>&lt;h2 id=&#34;栁下-優--yu-yagishita&#34;&gt;栁下 優 / Yu Yagishita&lt;/h2&gt;
&lt;p&gt;1995年生まれ。明治大学理工学部卒業後、都内のWeb系企業にソフトウェアエンジニアとして就職。バックエンド、SRE、DevOpts関連の仕事を主にしている。&lt;/p&gt;
&lt;h2 id=&#34;skills&#34;&gt;Skills&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Scala&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Kubernetes&lt;/li&gt;
&lt;li&gt;Google Cloud&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;certification&#34;&gt;Certification&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.yuyagishita.com/tech/java/pass-java-silver/&#34;&gt;Oracle Certified Java Programmer, Silver SE 8 認定資格&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;interest&#34;&gt;Interest&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;サッカー観戦&lt;/li&gt;
&lt;li&gt;筋トレ&lt;/li&gt;
&lt;li&gt;読書&lt;/li&gt;
&lt;li&gt;プログラミング&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;contact&#34;&gt;Contact&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://x.com/yuyagishita&#34;&gt;X/Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/yuyagishita&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Hugoで作成したサイトの表示設定について</title>
      <link>https://www.yuyagishita.com/tech/hugo/config-setup/</link>
      <pubDate>Tue, 24 Mar 2020 16:36:43 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/hugo/config-setup/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;hugo&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/hugo.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;今回、Hugo + Netlify で本ブログを作成しましたが、最初サイトの見栄えがよくなかったので、各種設定をしました。
Hugoは&lt;code&gt;config.toml&lt;/code&gt;を修正すれば、簡単にサイトの表示を変えることができます。
今回は僕が行った修正を記載します。&lt;/p&gt;
&lt;h2 id=&#34;configtoml設定&#34;&gt;&lt;code&gt;config.toml&lt;/code&gt;設定&lt;/h2&gt;
&lt;p&gt;現在の本ブログの&lt;code&gt;config.toml&lt;/code&gt;はこんな感じになっています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;baseURL = &amp;#34;https://yuyagishita.com/&amp;#34;
languageCode = &amp;#34;en-us&amp;#34;
title = &amp;#34;YAGI BLOG&amp;#34;
theme = &amp;#34;beautifulhugo&amp;#34;
summarylength = 100
HasCJKLanguage = true

[Params]
  readingTime = true
  wordCount = true
  socialShare = true

[Author]
  github = &amp;#34;yuyagishita&amp;#34;
  twitter = &amp;#34;yuyagishita&amp;#34;

[taxonomies]
  category = &amp;#34;categories&amp;#34;
  tag = &amp;#34;tags&amp;#34;

[[menu.main]]
  name = &amp;#34;Home&amp;#34;
  url = &amp;#34;/&amp;#34;
  weight = 1

[[menu.main]]
  name = &amp;#34;Tags&amp;#34;
  url = &amp;#34;tags&amp;#34;
  weight = 2

[[menu.main]]
  name = &amp;#34;Categories&amp;#34;
  url = &amp;#34;categories&amp;#34;
  weight = 3

[blackfriday]
  hrefTargetBlank = true
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;１つずつ解説していきます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx &#43; uWSGI &#43; Python(Django)の環境をdockerで作成する</title>
      <link>https://www.yuyagishita.com/tech/python/django-setup/</link>
      <pubDate>Mon, 23 Mar 2020 22:18:15 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/python/django-setup/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;django&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/django.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;はじめに&#34;&gt;はじめに&lt;/h1&gt;
&lt;p&gt;Nginx + uWSGI + Python(Django)のアプリ環境をDockerで作成する方法を本記事にまとめました。&lt;/p&gt;
&lt;h1 id=&#34;docker-for-windowsのインストール&#34;&gt;Docker for Windowsのインストール&lt;/h1&gt;
&lt;p&gt;コントロールパネルを開いて、「プログラムと機能」→「Windowsの機能を有効化または無効化」→「Hyper-V」にチェックが入っているか確認します。&lt;br&gt;
チェックが入っていなかった場合は、チェックを入れてPCを再起動させて有効化させます。&lt;br&gt;
次に「Docker Desktop for Windows」のインストールをします。&lt;br&gt;
インストールは&lt;a href=&#34;https://docs.docker.com/docker-for-windows/install/&#34;&gt;ここ&lt;/a&gt;からできます。&lt;/p&gt;
&lt;h1 id=&#34;djangoを動かす環境構築&#34;&gt;Djangoを動かす環境構築&lt;/h1&gt;
&lt;h2 id=&#34;ディレクトリ構成&#34;&gt;ディレクトリ構成&lt;/h2&gt;
&lt;p&gt;以下、構成でDjangoアプリを動かします。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;ディレクトリ構成&#34; loading=&#34;lazy&#34; src=&#34;../img/django_sample.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;infrastrcuture作成&#34;&gt;Infrastrcuture作成&lt;/h2&gt;
&lt;p&gt;Alpineにpython + uWSGI、Nginxをインストールします。&lt;/p&gt;
&lt;h3 id=&#34;docker-composeyml作成&#34;&gt;docker-compose.yml作成&lt;/h3&gt;
&lt;p&gt;Nginxとpython + uWSGIのコンテナを作成します。&lt;br&gt;
今回はログをdjango-sample配下に出力するようにしていますが、お好きなところにログを吐き出すように設定してください。&lt;/p&gt;
&lt;p&gt;django-sample/docker-compose.yml&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-:django-sample/docker-compose.yml&#34; data-lang=&#34;:django-sample/docker-compose.yml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;2&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;nginx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;./Infrastructure/nginx/&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;./logs/nginx:/var/log/nginx&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;s2&#34;&gt;&amp;#34;80:80&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;networks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;django-sample-network&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ipv4_address&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;172.23.0.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;./Infrastructure/python/&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;./Application/django-sample:/home/work/django-sample&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;./logs/django:/home/work/django&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;./logs/uwsgi:/home/work/uwsgi&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;s2&#34;&gt;&amp;#34;8000:8000&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;networks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;django-sample-network&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ipv4_address&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;172.23.0.5&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;networks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;django-sample-network&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;driver&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;bridge&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ipam&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;driver&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;subnet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;172.23.0.0&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/24&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;dockerfile作成&#34;&gt;Dockerfile作成&lt;/h3&gt;
&lt;h4 id=&#34;nginx&#34;&gt;Nginx&lt;/h4&gt;
&lt;p&gt;django-sample/Infrastructure/nginx/Dockerfile&lt;/p&gt;</description>
    </item>
    <item>
      <title>AtCoder用にPythonの環境構築</title>
      <link>https://www.yuyagishita.com/tech/atcoder/environment-setup/</link>
      <pubDate>Mon, 16 Mar 2020 22:24:26 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/atcoder/environment-setup/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;atcoder-python&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/atcoder-python.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;本記事は以前&lt;a href=&#34;https://qiita.com/yu_yagishita&#34;&gt;Qiita&lt;/a&gt;に投稿した内容を本ブログに持ってきています。&lt;/p&gt;
&lt;h1 id=&#34;はじめに&#34;&gt;はじめに&lt;/h1&gt;
&lt;p&gt;最近、&lt;a href=&#34;https://atcoder.jp/&#34;&gt;AtCoder&lt;/a&gt;を始めました。&lt;br&gt;
AtCoderは競技プログラミングサイトで、毎週リアルタイムのコンテストが開催されていて、AtCoderで評価されたレーティングを利用して、転職活動ができる&lt;a href=&#34;https://jobs.atcoder.jp/&#34;&gt;AtCoderJobs&lt;/a&gt;というサービスが話題になっているそうです。&lt;br&gt;
最初、シェルがfishでHomebrewなどが入っている状態で色々試していましたが、うまくいかなかったので、Mac環境をきれいにして環境構築をしました。&lt;/p&gt;
&lt;h1 id=&#34;環境&#34;&gt;環境&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;macOS Catalina 10.15.2&lt;/code&gt;
&lt;code&gt;Homebrew 2.1.15&lt;/code&gt;
&lt;code&gt;bash 3.2.57&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;シェルをbashに戻す&#34;&gt;シェルをbashに戻す&lt;/h1&gt;
&lt;p&gt;ターミナルで以下コマンドを叩いて、ターミナルの再起動をするとシェルがbashに戻ります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ chsh -s /bin/bash
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;homebrewをアンインストールする&#34;&gt;Homebrewをアンインストールする&lt;/h1&gt;
&lt;p&gt;以下コマンドを叩いてパスワードを入力すると、Homebrewをアンインストールできます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ruby -e &amp;#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;https://docs.brew.sh/FAQ&#34;&gt;Homebrewの公式サイト&lt;/a&gt;に記載されています。&lt;/p&gt;
&lt;h1 id=&#34;homebrewインストールする&#34;&gt;Homebrewインストールする&lt;/h1&gt;
&lt;p&gt;以下コマンドを叩く。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ usr/bin/ruby -e &amp;#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;インストールできたか確認するために、以下コマンドを叩きます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ brew doctor
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;すると、&lt;code&gt;Warning&lt;/code&gt;が大量に出たので、&lt;a href=&#34;https://qiita.com/6592sho/items/b24766e203fb7a48b056&#34;&gt;brew doctorでWarningが出たので解決方法まとめました。(for Mac)&lt;/a&gt;を参考に解決しました。&lt;br&gt;
&lt;code&gt;Warning: Unbrewed dylibs were found in /usr/local/include.&lt;/code&gt; のログに関しては残すことを忘れてしまっていたので、上記記事を引用しています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don&amp;#39;t worry or file an issue; just ignore this. Thanks!

Warning: Unbrewed header files were found in /usr/local/include.
If you didn&amp;#39;t put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
  /usr/local/include/arith.h
  /usr/local/include/binary_log_types.h
  /usr/local/include/cdt.h
  /usr/local/include/cgraph.h
  /usr/local/include/color.h
  /usr/local/include/decode.h
  /usr/local/include/demux.h
  /usr/local/include/encode.h
  /usr/local/include/errmsg.h
  /usr/local/include/fcfreetype.h
  /usr/local/include/fcprivate.h
  /usr/local/include/fontconfig.h
  /usr/local/include/freetype/config/ftconfig.h
  /usr/local/include/freetype/config/ftheader.h
  /usr/local/include/freetype/config/ftmodule.h
  /usr/local/include/freetype/config/ftoption.h
  /usr/local/include/freetype/config/ftstdlib.h
  /usr/local/include/freetype/freetype.h
  /usr/local/include/freetype/ftadvanc.h
  /usr/local/include/freetype/ftbbox.h
  /usr/local/include/freetype/ftbdf.h
  /usr/local/include/freetype/ftbitmap.h
  /usr/local/include/freetype/ftbzip2.h
  /usr/local/include/freetype/ftcache.h
  /usr/local/include/freetype/ftchapters.h
  /usr/local/include/freetype/ftcid.h
  /usr/local/include/freetype/ftdriver.h
  /usr/local/include/freetype/fterrdef.h
  /usr/local/include/freetype/fterrors.h
  /usr/local/include/freetype/ftfntfmt.h
  /usr/local/include/freetype/ftgasp.h
  /usr/local/include/freetype/ftglyph.h
  /usr/local/include/freetype/ftgxval.h
  /usr/local/include/freetype/ftgzip.h
  /usr/local/include/freetype/ftimage.h
  /usr/local/include/freetype/ftincrem.h
  /usr/local/include/freetype/ftlcdfil.h
  /usr/local/include/freetype/ftlist.h
  /usr/local/include/freetype/ftlzw.h
  /usr/local/include/freetype/ftmac.h
  /usr/local/include/freetype/ftmm.h
  /usr/local/include/freetype/ftmodapi.h
  /usr/local/include/freetype/ftmoderr.h
  /usr/local/include/freetype/ftotval.h
  /usr/local/include/freetype/ftoutln.h
  /usr/local/include/freetype/ftparams.h
  /usr/local/include/freetype/ftpfr.h
  /usr/local/include/freetype/ftrender.h
  /usr/local/include/freetype/ftsizes.h
  /usr/local/include/freetype/ftsnames.h
  /usr/local/include/freetype/ftstroke.h
  /usr/local/include/freetype/ftsynth.h
  /usr/local/include/freetype/ftsystem.h
  /usr/local/include/freetype/fttrigon.h
  /usr/local/include/freetype/fttypes.h
  /usr/local/include/freetype/ftwinfnt.h
  /usr/local/include/freetype/t1tables.h
  /usr/local/include/freetype/ttnameid.h
  /usr/local/include/freetype/tttables.h
  /usr/local/include/freetype/tttags.h
  /usr/local/include/ft2build.h
  /usr/local/include/geom.h
  /usr/local/include/graphviz_version.h
  /usr/local/include/gvc.h
  /usr/local/include/gvcext.h
  /usr/local/include/gvcjob.h
  /usr/local/include/gvcommon.h
  /usr/local/include/gvconfig.h
  /usr/local/include/gvplugin.h
  /usr/local/include/gvplugin_device.h
  /usr/local/include/gvplugin_layout.h
  /usr/local/include/gvplugin_loadimage.h
  /usr/local/include/gvplugin_render.h
  /usr/local/include/gvplugin_textlayout.h
  /usr/local/include/gvpr.h
  /usr/local/include/lt_dlloader.h
  /usr/local/include/lt_error.h
  /usr/local/include/lt_system.h
  /usr/local/include/mux.h
  /usr/local/include/mux_types.h
  /usr/local/include/my_command.h
  /usr/local/include/my_list.h
  /usr/local/include/mysql.h
  /usr/local/include/mysql/client_plugin.h
  /usr/local/include/mysql/plugin_auth_common.h
  /usr/local/include/mysql/udf_registration_types.h
  /usr/local/include/mysql_com.h
  /usr/local/include/mysql_time.h
  /usr/local/include/mysql_version.h
  /usr/local/include/mysqld_error.h
  /usr/local/include/mysqlx_ername.h
  /usr/local/include/mysqlx_error.h
  /usr/local/include/mysqlx_version.h
  /usr/local/include/pack.h
  /usr/local/include/pathgeom.h
  /usr/local/include/pathplan.h
  /usr/local/include/png.h
  /usr/local/include/pngconf.h
  /usr/local/include/textspan.h
  /usr/local/include/types.h
  /usr/local/include/usershape.h
  /usr/local/include/xdot.h

Warning: Your Xcode (10.3) is outdated.
Please update to Xcode 11.3 (or delete it).
Xcode can be updated from the App Store.

Warning: Broken symlinks were found. Remove them with `brew cleanup`:
  /usr/local/lib/node_modules/expo-cli/node_modules/.bin/detect-libc
  /usr/local/lib/node_modules/expo-cli/node_modules/.bin/prebuild-install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;まずは、&lt;code&gt;Warning: Unbrewed header files were found in /usr/local/include.&lt;/code&gt;の解決をします。&lt;/p&gt;</description>
    </item>
    <item>
      <title>GoでインストールからHello Golang！！</title>
      <link>https://www.yuyagishita.com/tech/golang/hello-golang/</link>
      <pubDate>Mon, 16 Mar 2020 22:22:38 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/golang/hello-golang/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;gopher&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/ghpher.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;本記事は以前&lt;a href=&#34;https://qiita.com/yu_yagishita&#34;&gt;Qiita&lt;/a&gt;に投稿した内容を本ブログに持ってきています。&lt;/p&gt;
&lt;h1 id=&#34;概要&#34;&gt;概要&lt;/h1&gt;
&lt;p&gt;MacにGoをインストールして、「Hello Golang！！」を表示させるところまでを解説していきます。&lt;br&gt;
また、僕はシェルにfishを使っているので、fish向けの環境構築についても記載します。&lt;/p&gt;
&lt;h1 id=&#34;環境&#34;&gt;環境&lt;/h1&gt;
&lt;p&gt;macOS Catalina 10.15.1&lt;br&gt;
Homebrew 2.1.15&lt;br&gt;
fish 3.0.2&lt;/p&gt;
&lt;h1 id=&#34;goインストール&#34;&gt;Goインストール&lt;/h1&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ brew install go
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ go version
go version go1.13.3 darwin/amd64
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Homebrew使うとコマンド一つでインストールできるので、とても便利です。&lt;/p&gt;
&lt;h1 id=&#34;gopathの設定&#34;&gt;GOPATHの設定&lt;/h1&gt;
&lt;p&gt;GOPATHとは、Goのソースをまとめているディレクトリを指定している環境変数のことであり、
GOPATHを利用することで、外部ライブラリの導入やビルド作業を非常に簡単に行うことができます。&lt;/p&gt;
&lt;p&gt;bashでGOPATHを指定するには、&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ vim ~/.bash_profile
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;で設定ファイルに以下追記をします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;export GOPATH=$HOME/go（←ワークスペースにしたい場所）
export PATH=$PATH:$GOPATH/bin
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;僕のようにシェルにfishを使っている人は、&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vim ~/.config/fish/config.fish
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;で設定ファイルに以下追記をします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;set -x GOPATH $HOME/go
set -x PATH $PATH $GOPATH/bin
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これでGOPATHの設定は完了です。&lt;/p&gt;
&lt;h1 id=&#34;hello-golang&#34;&gt;Hello Golang！！&lt;/h1&gt;
&lt;p&gt;ではいよいよ「Hello Golang!!」を表示させていきます。&lt;/p&gt;
&lt;h2 id=&#34;ディレクトリ構成&#34;&gt;ディレクトリ構成&lt;/h2&gt;
&lt;p&gt;最終的に以下構成になります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;go/
┣ bin/
   ┣ hellogolang
┣ pkg/
┣ src/
   ┣ hellogolang/
              ┣ main.go
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;以下ファイルのそれぞれの役割に関して記載します。&lt;br&gt;
bin：　実行ファイルが格納されるディレクトリ&lt;br&gt;
pkg：　ビルドしたパッケージオブジェクトが格納されるディレクトリ&lt;br&gt;
src：　パッケージごとのソースが格納されるディレクトリ&lt;/p&gt;</description>
    </item>
    <item>
      <title>新卒でJava Silverに合格した体験記</title>
      <link>https://www.yuyagishita.com/tech/java/pass-java-silver/</link>
      <pubDate>Mon, 16 Mar 2020 22:20:52 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/java/pass-java-silver/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;java-silver&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/java-silver.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;本記事は以前&lt;a href=&#34;https://qiita.com/yu_yagishita&#34;&gt;Qiita&lt;/a&gt;に投稿した内容を本ブログに持ってきています。&lt;/p&gt;
&lt;p&gt;2019年3月に&lt;strong&gt;Oracle Certified Java Programmer, Silver SE 8 認定資格&lt;/strong&gt;を取得していて、これから受験しようと思っている人のためになればと思い、記事を作成しました。&lt;/p&gt;
&lt;h2 id=&#34;java-silverとは&#34;&gt;Java Silverとは&lt;/h2&gt;
&lt;p&gt;Oracle社が提供しているJava技術者向けの資格の１つで、今回僕が受けたテストは、「&lt;strong&gt;Oracle Certified Java Programmer, Silver SE 8 認定資格&lt;/strong&gt;」です。&lt;br&gt;
公式によると&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Oracle Certified Java Programmer, Silver SE 8 認定資格は、Javaアプリケーション開発に必要とされる基本的なプログラミング知識を有し、上級者の指導のもとで開発作業を行うことができる開発初心者向け資格です。
&lt;a href=&#34;https://www.oracle.com/jp/education/certification/jse8-2489021-ja.html&#34;&gt;https://www.oracle.com/jp/education/certification/jse8-2489021-ja.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この試験のレベルは入社してからJavaの基礎的な研修を受けて、業務を数ヶ月こなせば初見でも全く分からない問題はないかなといった感じです。&lt;br&gt;
オブジェクト指向がまったく分からない状態で、Java Silverの勉強を始めるのは少ししんどいかもです。&lt;br&gt;
また、受験料が3万弱するので、落ちると悲惨です。。&lt;br&gt;
確実にとりましょう！（Oracleの資格は一回落ちても、無料で再度受験できるキャンペーンをやっていることがあるので、申し込む時に忘れずに。）&lt;/p&gt;
&lt;h2 id=&#34;勉強を始める前の僕のレベル&#34;&gt;勉強を始める前の僕のレベル&lt;/h2&gt;
&lt;p&gt;IDE（Eclipse）を使って、なんとかJavaのコードはかけるが、基礎的な型の継承やポリモーフィズムやカプセル化などの理解は曖昧って感じでした。&lt;/p&gt;
&lt;h2 id=&#34;試験勉強の仕方&#34;&gt;試験勉強の仕方&lt;/h2&gt;
&lt;p&gt;自分は2018年9月から2019年3月までにJava Silverに合格することを会社の自分の目標にしていて、&lt;strong&gt;Javaプログラマ Silver SE 8 スピードマスター問題集&lt;/strong&gt;を購入して、最初はコツコツと出勤時のお昼時間や業務中に空いている時間で勉強していました。&lt;br&gt;
ですが、だらだらと勉強をしてしまっていたせいで、気付いたら1月も終わろうとしていました。笑&lt;br&gt;
そこからやばいと思い本気で勉強を始めました。&lt;/p&gt;
&lt;h3 id=&#34;本気の時の勉強&#34;&gt;本気の時の勉強&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;出社時のお昼時間&lt;/li&gt;
&lt;li&gt;業務中の空いた時間&lt;/li&gt;
&lt;li&gt;平日は退社してから、カフェで2時間勉強&lt;/li&gt;
&lt;li&gt;休日は予定がなかったら、3〜4時間ぐらい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こんな感じで&lt;strong&gt;60時間程度&lt;/strong&gt;は学習にあてました。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Javaプログラマ Silver SE 8 スピードマスター問題集&lt;/strong&gt;は3〜4周取り組みました。&lt;br&gt;
1周目で分からなかった問題にチェックマークをつけて、２周目で再度解けなかった問題に取組み、最後の演習問題で分からなかった章の問題に次の周で取り組むといった具合で問題集を解いていました。&lt;br&gt;
他には、&lt;a href=&#34;https://tech.pjin.jp/&#34;&gt;TECH Projin&lt;/a&gt;にJava Silverの問題があったので、その問題を解いたりしていました。&lt;/p&gt;
&lt;h2 id=&#34;出題範囲&#34;&gt;出題範囲&lt;/h2&gt;
&lt;p&gt;１章　Javaの基礎&lt;br&gt;
２章　Javaのデータ型の操作&lt;br&gt;
３章　演算子と判定構造の使用&lt;br&gt;
４章　配列の作成と使用&lt;br&gt;
５章　ループ構造の使用&lt;br&gt;
６章　メソッドとカプセル化の操作&lt;br&gt;
７章　継承の操作&lt;br&gt;
８章　例外の処理&lt;br&gt;
９章　Java APIの主要なクラスの操作&lt;/p&gt;</description>
    </item>
    <item>
      <title>PythonでOpenPyXLを用いたExcel操作まとめ</title>
      <link>https://www.yuyagishita.com/tech/python/openpyxl/</link>
      <pubDate>Mon, 16 Mar 2020 22:18:19 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/python/openpyxl/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;python&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/python.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;本記事は以前&lt;a href=&#34;https://qiita.com/yu_yagishita&#34;&gt;Qiita&lt;/a&gt;に投稿した内容を本ブログに持ってきています。&lt;/p&gt;
&lt;h1 id=&#34;概要&#34;&gt;概要&lt;/h1&gt;
&lt;p&gt;業務でPythonを使ってExcelを作成することがあったので、備忘録としてこの記事を作成しました。&lt;br&gt;
実行環境は&lt;code&gt;Python 3.7&lt;/code&gt;で、&lt;code&gt;OpenPyXL&lt;/code&gt;を利用してExcelを作成します。&lt;/p&gt;
&lt;h1 id=&#34;作成保存読み込み&#34;&gt;作成・保存・読み込み&lt;/h1&gt;
&lt;h3 id=&#34;新規にexcel作成&#34;&gt;新規にExcel作成&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;openpyxl&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Workbook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wb&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Workbook&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;excel保存&#34;&gt;Excel保存&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wb&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;test.xlsx&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;save()&lt;/code&gt;にはエクセルを保存したいpath（ディレクトリとファイル名）を指定してください。&lt;/p&gt;
&lt;h3 id=&#34;アクティブなシート取得&#34;&gt;アクティブなシート取得&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wb&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;active&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;シート作成&#34;&gt;シート作成&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wb&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;create_sheet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Sheet2&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws3&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wb&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;create_sheet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sheet3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 最初のシートに設定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws4&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wb&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;create_sheet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sheet4&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 最後から２番目にシートに設定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;excel読み込み&#34;&gt;Excel読み込み&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;openpyxl&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;load_workbook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;load_workbook&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;test.xlsx&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;シート編集&#34;&gt;シート編集&lt;/h1&gt;
&lt;h3 id=&#34;シートのタイトル命名&#34;&gt;シートのタイトル命名&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;test-sheet&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;セルに文字入力&#34;&gt;セルに文字入力&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;A1&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;hogehoge&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;[&#39;A1&#39;]&lt;/code&gt;の部分に指定したいセルを入力&lt;/p&gt;
&lt;h3 id=&#34;数式を使う&#34;&gt;数式を使う&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;A1&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;=SUM(1, 1)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;セルの結合&#34;&gt;セルの結合&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;merge_cells&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;A2:D2&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;セルの結合解除&#34;&gt;セルの結合解除&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;unmerge_cells&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;A2:D2&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;セルの色付け&#34;&gt;セルの色付け&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;openpyxl.styles&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PatternFill&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;fill&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PatternFill&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;patternType&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;solid&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fgColor&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;4d4d4d&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;A1&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fill&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fill&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;patternType&lt;/code&gt;はセルの塗り方、&lt;code&gt;fgcolor&lt;/code&gt;はセルに塗る色を指定しています。
色に関しては、以下サイトなどを参考にしてください。
&lt;a href=&#34;https://www.color-sample.com/colors/4d4d4d/&#34;&gt;https://www.color-sample.com/colors/4d4d4d/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;文字に色付け&#34;&gt;文字に色付け&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;openpyxl.styles.fonts&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Font&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;A1&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;font&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Font&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;FFFFFF&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;列の幅を変更&#34;&gt;列の幅を変更&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;column_dimensions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;セルに罫線を設定&#34;&gt;セルに罫線を設定&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;openpyxl.styles.borders&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Border&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Side&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;border&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Border&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;top&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Side&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;thin&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;000000&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;bottom&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Side&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;thin&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;000000&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;left&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Side&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;thin&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;000000&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;right&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Side&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;thin&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;000000&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;row_num&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;col_num&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cell&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row_num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;column&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col_num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;border&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;border&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;ws&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cell&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row_num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;column&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col_num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;alignment&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Alignment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;horizontal&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;left&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vertical&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;top&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wrap_text&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;horizontalで水平方向を、verticalで垂直方向を何揃えにするかを指定しています。horizontal, verticalでは以下の定数を指定することができます。&lt;br&gt;
horizontal&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;center&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;centerContinuous&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;fill&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;left&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;justify&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;distributed&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;right&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;general&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;vertical&lt;/p&gt;</description>
    </item>
    <item>
      <title>PythonでExcelを添付してメールを送信する</title>
      <link>https://www.yuyagishita.com/tech/python/django-mail/</link>
      <pubDate>Thu, 12 Mar 2020 23:26:17 +0900</pubDate>
      <guid>https://www.yuyagishita.com/tech/python/django-mail/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;python&#34; loading=&#34;lazy&#34; src=&#34;https://www.yuyagishita.com/img/python.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;本記事は以前&lt;a href=&#34;https://qiita.com/yu_yagishita&#34;&gt;Qiita&lt;/a&gt;に投稿した内容を本ブログに持ってきています。&lt;/p&gt;
&lt;h1 id=&#34;概要&#34;&gt;概要&lt;/h1&gt;
&lt;p&gt;先日、業務で「PythonでExcelを添付してメールを送信する」機能を試行錯誤して実装しました。&lt;br&gt;
Djangoのメール送信機能を使ったら、わりかし簡単に実装できたので、自分と同じに状況になるかもしれない人のために記事を作成しました！&lt;/p&gt;
&lt;h1 id=&#34;環境&#34;&gt;環境&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;Python 3.7&lt;/code&gt;&lt;br&gt;
&lt;code&gt;Django 2.2&lt;/code&gt;&lt;br&gt;
※ Djangoを利用していないと本記事の実装はできません。&lt;/p&gt;
&lt;h1 id=&#34;事前準備&#34;&gt;事前準備&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;openpyxl&lt;/code&gt;をインストールします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ pip install openpyxl
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;メールサーバの設定&#34;&gt;メールサーバの設定&lt;/h1&gt;
&lt;p&gt;プロジェクトの&lt;code&gt;settings.py&lt;/code&gt;に送信先の情報を追加します。&lt;br&gt;
送信するメールサーバの情報を記載してください。&lt;br&gt;
settings.py&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-settings.py&#34; data-lang=&#34;settings.py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;EMAIL_HOST&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;00.00.00.00&amp;#39;&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 送信メールサーバ&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;EMAIL_PORT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;000&amp;#39;&lt;/span&gt;         &lt;span class=&#34;c1&#34;&gt;# 送信メールポート&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;メールに添付するexcelを整える&#34;&gt;メールに添付するExcelを整える&lt;/h1&gt;
&lt;p&gt;添付したいExcelをbytesオブジェクトに変換します。&lt;br&gt;
これをしないとメール送信ができません。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;from openpyxl import load_workbook
from io import BytesIO

wb = load_workbook(&amp;#39;test.xlsx&amp;#39;) # 添付したいExcelを読み込む
excelfile = BytesIO()
wb.save(excelfile)              # Excelをbytesオブジェクトに変換する
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;メールをexcelを添付して送信する&#34;&gt;メールをExcelを添付して送信する&lt;/h1&gt;
&lt;p&gt;以下、コードでメール送信ができます！！&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;from django.core.mail import EmailMessage

subject = &amp;#34;件名&amp;#34;
body = &amp;#34;本文です。&amp;#34;
send_from = &amp;#34;hogehoge1@gmail.com&amp;#34; # 送信者
send_to = [&amp;#34;hogehoge2@gmail.com&amp;#34;] # 宛先リスト
bcc = [&amp;#34;hogehoge3@gmail.com&amp;#34;] # Bccリスト

email = EmailMessage(subject, body, send_from, send_to, bcc)
email.attach(&amp;#39;test.xlsx&amp;#39;, excelfile.getvalue(), &amp;#39;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&amp;#39;)
email.send()
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;参考資料&#34;&gt;参考資料&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://speakerdeck.com/thinkami/djangocongress-jp-2019-talk&#34;&gt;https://speakerdeck.com/thinkami/djangocongress-jp-2019-talk&lt;/a&gt;
&lt;a href=&#34;https://narito.ninja/blog/detail/64/&#34;&gt;https://narito.ninja/blog/detail/64/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
