<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tatsuya Matoba</title>
    <link>https://mtb-production.info/</link>
    <description>Recent content on Tatsuya Matoba</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Sat, 22 Nov 2025 02:56:00 +0900</lastBuildDate>
    <atom:link href="https://mtb-production.info/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>コーディングエージェント利用に関する個人振り返り</title>
      <link>https://mtb-production.info/posts/2025/11/22/coding-agent-reflection-personal-review/</link>
      <pubDate>Sat, 22 Nov 2025 02:56:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/22/coding-agent-reflection-personal-review/</guid>
      <description>個人的な活動ふりかえりを行った。&#xA;既存活動の継続 とりあえず既存の活動の多くは継続できている。 それはそれで良かったのだろう、と思っている。活動は基本的に継続したほうがいい。問題がない限り。&#xA;前のめりの仕事 以前より、前のめりで仕事に向き合うことができた。それによって楽しい気持ちになった。私自身の性格・特性として、前のめりに仕事に向き合うとエネルギーが湧いてくるのだろう。&#xA;コーディングエージェントの利用を控えたポジティブな効果 コーディングエージェントの利用を控える方向性になっている。それによって開発速度が安定してきた。開発速度が安定すると、開発体制を改善することに意識がむき始めた。その方向に意識が向き始めたことを嬉しく思っている。&#xA;コーディングエージェントによる開発の加速は弱い コーディングエージェントの利用を控えたことで、開発がどんどん加速していく感覚は無くなった。仮に他の人がコーディングエージェントを利用して加速していくとしたら、「私は本当に大丈夫なんだろうか？」という懸念がある。&#xA;とはいえ、まあそれ、一回考えたしな。というのもある。同じような仕組みを印を押したように複製していくようなアプリケーション開発なら、コーディングエージェントが得意ではあるが、私のように走りながら考えるタイプの開発者はコーディングエージェントを利用することで考えられなくなっていく。仕事の特性があるのだろう、というのもある。&#xA;総括 私はコーディングエージェントの利用を控えて、前のめりに活動したほうがモチベーションは上昇する。仕事もそのほうが安定する。とはいえ、コーディングエージェントの利用を控えるといっても普通に使っている。&#xA;私は今後も私なりの仕事に取り組んでいく。</description>
    </item>
    <item>
      <title>もう少しいい感じのGit-Based CMSが欲しい</title>
      <link>https://mtb-production.info/posts/2025/11/19/better-git-based-cms/</link>
      <pubDate>Wed, 19 Nov 2025 04:25:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/19/better-git-based-cms/</guid>
      <description>もうちょっといい感じのGit-Based CMSが欲しい。欲しいと思っている。作るか迷っている。&#xA;迷っている理由 作り終わるのか？ 作り始めて中途半端で終わるのが嫌だから とはいえ、微妙にストレスが溜まるのも辛い なんとかならんものかなあ、と思う気持ちがある 欲しい理由 DecapCMSを使っている。が微妙に痒いところに手が届かない&#xA;管理画面でのログインセッションがすぐ切れる 管理画面で記事の検索ができない 管理画面のUIが割と謎（このボタン、あっちのボタンと同じか？なぜ、レスポンシブに対応してないのか？このボタン、ちゃんと動いてないのでは？なぜリダイレクトしないのか、など） 記事のソートがうまく動いてない 記事一覧に表示されている情報が微妙に足りない。 </description>
    </item>
    <item>
      <title>FastAPI&#43;jinja2をユニットテストする</title>
      <link>https://mtb-production.info/posts/2025/11/18/fastapi-jinja2-unittest/</link>
      <pubDate>Tue, 18 Nov 2025 14:27:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/18/fastapi-jinja2-unittest/</guid>
      <description>FastAPI+jinja2をユニットテストする機会があった。Claudeにサンプルコードを出してもらった。以下はそのコードである。割と愚直にチェックするのがスタンダードなのだろう、と感じた。&#xA;# app.py from fastapi import FastAPI, Request from fastapi.templating import Jinja2Templates from fastapi.responses import HTMLResponse app = FastAPI() templates = Jinja2Templates(directory=&amp;#34;templates&amp;#34;) @app.get(&amp;#34;/&amp;#34;, response_class=HTMLResponse) async def read_root(request: Request): return templates.TemplateResponse( &amp;#34;index.html&amp;#34;, {&amp;#34;request&amp;#34;: request, &amp;#34;title&amp;#34;: &amp;#34;Home&amp;#34;, &amp;#34;items&amp;#34;: [&amp;#34;A&amp;#34;, &amp;#34;B&amp;#34;, &amp;#34;C&amp;#34;]} ) # test_app.py import pytest from fastapi.testclient import TestClient from app import app client = TestClient(app) def test_render_template(): &amp;#34;&amp;#34;&amp;#34;HTMLレンダリングの基本テスト&amp;#34;&amp;#34;&amp;#34; response = client.get(&amp;#34;/&amp;#34;) # ステータスコード確認 assert response.status_code == 200 # Content-Type確認 assert &amp;#34;text/html&amp;#34; in response.</description>
    </item>
    <item>
      <title>pytestでfixtureに名前をつける</title>
      <link>https://mtb-production.info/posts/2025/11/18/pytest-fixture-name-parameter/</link>
      <pubDate>Tue, 18 Nov 2025 12:53:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/18/pytest-fixture-name-parameter/</guid>
      <description>こんな構文を見た。これはなんだ？と思った調べたら、fixtureオブジェクトに名前をつけている。hogehoge でfixtureを呼び出せるようになる。&#xA;@pytest.fixture(name=&amp;#34;hogehoge&amp;#34;) def hoge_fixture(): passs </description>
    </item>
    <item>
      <title>Makoって何？</title>
      <link>https://mtb-production.info/posts/2025/11/18/mako-template-intro/</link>
      <pubDate>Tue, 18 Nov 2025 11:01:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/18/mako-template-intro/</guid>
      <description>alembicを触ってみたら、 migrations/script.py.mako が出てきた。これ何？ということで調べてみた。&#xA;Alembicがマイグレーションスクリプトを自動生成する際のテンプレートらしい。&#xA;そもそも、 makoって何？って思ったので調べた。&#xA;https://www.makotemplates.org/&#xA;Pythonのテンプレートエンジンで、SQLAlchemyグループで開発している様子。&#xA;https://github.com/sqlalchemy/mako&#xA;へー。</description>
    </item>
    <item>
      <title>書きたいことが思い浮かばない私がブログを書く理由</title>
      <link>https://mtb-production.info/posts/2025/11/17/why-i-write-blog-instead-of-talking-to-ai/</link>
      <pubDate>Mon, 17 Nov 2025 17:15:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/17/why-i-write-blog-instead-of-talking-to-ai/</guid>
      <description>「人に伝えたい話をブログに書く」という話を見たんだが、最近、それを聞いて思い浮かぶ人がいない。理由はわからないが。まあこういうのは「わからない」と言ってるとそのうち分かったりする。&#xA;未来の自分に伝えたい話をブログに書く？ この話をして一つ思ったのは、「未来の自分に伝えたい話をブログに書く」というパターンもあるな、と思った。それは以前自分が別の記事に書いたことがある。その記事を探してみる。これだ。&#xA;誰も辿りつかないブログ記事も書く意味がある&#xA;はい。一度説明を試みたことがある、というのは未来につながる話をしていた。まあ、そうですね。はい。&#xA;そういう意味で言うと「人に伝えたい話が思い浮かばない」と言う理由を考えて書いてみよう。&#xA;人に会わなくなった？ すぐに思い浮かぶ理由は「人に会ってないから」である。 新しい人に会ってないし、別に説明することもないので、人に伝えることがなくなっていて、その結果、伝えたい話も思い浮かばない、である。&#xA;少し考えた後に、この理由は違うような気もしてきた。なぜなら、全く人に会ってないわけではないし、勉強会で人に会うこともある。自分が知っている情報を説明していない人なんてたくさんいる。&#xA;説明する必要がなくなった？ その次に思い浮かんだのは、「説明する必要がないから」である。 人にあったとしても説明する理由がなければ、説明しないことがあるのではないか。必要なら説明しているだろう。必要性が少なくなっているから説明する機会も減っているんだ、と言う話。&#xA;これも、考えてみたけど、違う気がしている。必要性の話ではなくて、意欲の話をしているので、必要じゃなくても説明したいことが以前はあった気がしている。&#xA;特に何も思い浮かばないので、AIにブレストさせてみよう。&#xA;情報の鮮度感が薄れているのでは？ 一度自分の中で整理した知識や経験を他の人に話したい衝動が弱くなるのではないか、と言う話。 まあ、それはあるっちゃある。というか、とりあえず書きたくなった情報をとりあえずAIにつっこんでいることがいるし。&#xA;説明する前に自己整理できるようになったのでは？ 前はブログを書きながら頭を整理していたが、経験によって書かなくても整理できるようになったのでは、と言う説。 まあ、これもあるといえばある。以前は、ブログに書きながら整理していたが、AIに突っ込んで整理することが以前より増えた。&#xA;育児・勉強・仕事など、自分の足場の話が多いのでは？ 自分自身の足場を整える意識が強いから、外部発信よりそっちの方が優先度が低いのでは。と言う説。 まあ、そうですね。それはある。あるんだけど、あんまりしっくりはこない。&#xA;伝える相手が人間からAIに変わったのではないか？ AIにブレストさせている時点で、伝えたい相手が人間からAIに変わっていないか？と言う説。 まあ、それは割とある。というか、かなりある。 元々、自分が考えていることの感想を誰かにもらいたいからブログを書き始めたようなところがある。しかも、AIが登場する数年前は、インターネット上に情報が多すぎて、自分のブログに感想をもらうのは難しくなったよな、と言う話を友人としていたことすら覚えている。&#xA;なので、とりあえず書いた文章をAIに入れてそれで考えを深めようと、しているケースが割とある。で、それでぼちぼち満足していたこともある。&#xA;とはいえ、今ブログを書いている理由は？ 実は、情報を入れる相手が人間からAIに変わったが、AIに情報を入れ続けていたら、なんかそれが飽きてきたのはある。なんか情報がどんどんAIに吸い込まれていって、それだけになっている感じがあるというか。&#xA;ブログを書くと情報が積み上がる感じがあるんだが、AIに情報を入れても積み上がっていく感じがしない。だから、とりあえず暇つぶしで情報を入れる場所はAIじゃない気がするな、と思っている。&#xA;ああ、分かった。だから私は、暇つぶしのために何かを書いていきたいんだな。</description>
    </item>
    <item>
      <title>継続のために重要なこと</title>
      <link>https://mtb-production.info/posts/2025/11/17/cost-of-maintenance/</link>
      <pubDate>Mon, 17 Nov 2025 16:53:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/17/cost-of-maintenance/</guid>
      <description>継続のために重要なことは、維持費をできる限りかけない、ということである。維持費が少しでもかかるとめんどくさくなっていく。ぶっちゃけめんどくさいなーと思い始めたらもうダメな気がしている。めんどくさくない範囲内で継続していくのが重要である、と思っている。&#xA;このブログが今も生きている理由は、維持費がかかっていないから、という理由が大きい。ふと伝えたくなったので書いておいた。</description>
    </item>
    <item>
      <title>何かをブログに書きたい</title>
      <link>https://mtb-production.info/posts/2025/11/17/writing-something-for-motivation/</link>
      <pubDate>Mon, 17 Nov 2025 16:39:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/17/writing-something-for-motivation/</guid>
      <description>何かをブログに書くと、やる気が湧いてくる気がする。気のせいでもやる気はあった方がいい。というわけでブログに何かを書いておこうと思う。とは言え、特に書きたい話はない。なので、思いつくままに言葉を綴ってみる。&#xA;先日、ブログを再開する話を書いた。その気持ちは1日経った今も変わっていない。「人に伝えたい話をブログに書けばいい」という話は一日経ってみても、「そうだろうな」と思う。&#xA;とは言え、「何を伝えればいいやら」と思っているのが今現在でもある。リハビリ的に書いたとしてもどうにもならない話をブログに書いて公開していきたいと思っている。それがこの記事ではある。</description>
    </item>
    <item>
      <title>隙間時間にブログを書くと活動が進む</title>
      <link>https://mtb-production.info/posts/2025/11/17/blog-writing-in-spare-time-drives-progress/</link>
      <pubDate>Mon, 17 Nov 2025 10:32:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/17/blog-writing-in-spare-time-drives-progress/</guid>
      <description>隙間時間で活動を進めていくために、ブログを書くのは効果的だと思う。 その話を少しだけ書いておく。&#xA;なぜ、効果的か 書きながら進められるから効果的なのだと思う。考えたことや試したこと、今後やりたいことを等身大で書きつつ、活動を進められる。それが私にあっているように思う。&#xA;ブログを書いておくことで、隙間時間でも活動が少しずつ進んでいく感覚が得られる。逆にブログを書かずに進めていく場合、その感覚を得るのが少々難しいと感じている。進んでいる感というのは重要だと思っている。&#xA;そもそも、なぜ、隙間時間での活動が難しいのか 隙間時間で活動を進めていくことが難しいのは、思い出しの時間が必要になるから、というのが一つある。５分しか時間を取れないのに、思い出して４分使ってたらほとんど何もできない。しかし、思い出しが終わってるところから進むと、次の話を検討していける。思い出しやすい状態になっているのが一つの重要な話だと思う。&#xA;ブログだからこその話 思い出しやすい状態になるだけであれば、ブログで公開している意味がない、というか必要性がないように見える。ただ、私にとって、ブログで公開している、というのは一つの意味になる。理由はよくわからないが、私の場合、自分一人しか見ないメモで検討していたことと、公開状態で考えていたことの場合、自分の中での意味が変わってくる。公開状態で考えたことのほうが、次につながりやすいように思う。理由はわからない。&#xA;今後について できるだけ、行動の理由や背景を言語化して、ブログに書きながら進んでいきたいと思う。ここはそういう場所だと思う。</description>
    </item>
    <item>
      <title>PageFindの導入を検討する</title>
      <link>https://mtb-production.info/posts/2025/11/16/pagefind-introduction-consideration/</link>
      <pubDate>Sun, 16 Nov 2025 22:58:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/16/pagefind-introduction-consideration/</guid>
      <description>PageFindの導入を検討した。静的サイトに全文検索を入れる仕組みを調べてたら出てきたから。時間がなくて少しだけ触っただけになった。&#xA;hugoのテーマ側を調整して、検索へのリンクを入れないといけないがそれはできていない。次の機会にやる。いつになることやら。</description>
    </item>
    <item>
      <title>decap-cmsの検索がよくわからない</title>
      <link>https://mtb-production.info/posts/2025/11/16/decap-cms%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%81%8C%E3%82%88%E3%81%8F%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84/</link>
      <pubDate>Sun, 16 Nov 2025 22:17:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/16/decap-cms%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%81%8C%E3%82%88%E3%81%8F%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84/</guid>
      <description>decap-cmsの検索がよくわからない。動いてるのか動いてないのかわからん&amp;hellip;&#xA;とりあえず、検索して既存の記事がヒットする時とヒットしない時がある。不安定な動きをされるとどこまで信用して良いのかわからない。&#xA;なんとなくの予想として、応答を早くするために、単純な全文一致検索ではない検索になっているのだと思うが、普通にヒットするはずのものが表示されないのが辛い。&#xA;自分でgit based cmsを作るか検討する話があったが、このような体験をしているとその気持ちが少し蓄積する。ただ、本当に作り切れるのか、ということを考えると安易に作らない方がいいし、decap cms頑張ってほしい、という気持ちも湧いてくる。</description>
    </item>
    <item>
      <title>私に「しずかなインターネット」がハマってない</title>
      <link>https://mtb-production.info/posts/2025/11/16/shizukana-internet-not-for-me/</link>
      <pubDate>Sun, 16 Nov 2025 22:04:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/16/shizukana-internet-not-for-me/</guid>
      <description>私は「しずかなインターネット」がハマってないな、と思った。なんかコンセプトとしては好きな感じがするし、良いんだけどなんだろう。なんか、あんまり書いてない。&#xA;なんなんだろう。こういう風に自分のhugoサイトに書いてる時は、自分のサイトに書いてる感じがあるんだけど、そんな感じに近いけど違う感じがある。なんか人のサイトにお邪魔して書いてる感じ。まあその通りなんだけど。&#xA;多分、あの静かな感じは、インターネットの原体験に近くて、今私が書いてる記事もそんな感じの執筆体験に近い。インターネット上に自分が考えていることを自由に発信する。それを誰が見てるとか見てないとか、そんなの知らない。でもとりあえず書いてる。書いてるという事実だけが積み上がっていく感じ。&#xA;なので、まあ考え方とか目指してる雰囲気とかはわかるんだけど、私は自分のサイトを庭をいじる感じで調整したいから、ハマってないんだろうな、とか思った。</description>
    </item>
    <item>
      <title>AIによる支援機能をつけたGit-BasedCMSが欲しい</title>
      <link>https://mtb-production.info/posts/2025/11/16/ai-assisted-git-based-cms/</link>
      <pubDate>Sun, 16 Nov 2025 21:53:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/16/ai-assisted-git-based-cms/</guid>
      <description>AIによる支援機能をつけたGit-BasedCMSが欲しい。そのままである。&#xA;例えば、さっき書いたようなslugとdescriptionを生成してくれる機能は、標準搭載していて良いと思っている。わざわざ別の何かを開いて入力するのがめんどくさい。&#xA;ただし、私は、本文を生成してもらいたくない。本文生成機能があるとサボって入力しなくなるのが目に見えている。それは良くない。&#xA;あと、tagとかcategoryの類もSlugやdescriptioと同じで自動設定してほしい。本文とタイトルを書き終わったら、ボタンポチッと押したら良い感じに複数提案して欲しい。それを私は適当に選んで終わり、って感じにしたいと思っている。&#xA;気軽に何かしら思考のログを残していくためにはそれくらいのカジュアルさがあった方がやっていきやすいと思っている。</description>
    </item>
    <item>
      <title>slugとdescriptionはAIに提案してもらう</title>
      <link>https://mtb-production.info/posts/2025/11/16/ai-generated-slug-and-description/</link>
      <pubDate>Sun, 16 Nov 2025 21:45:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/16/ai-generated-slug-and-description/</guid>
      <description>この記事のslugとdescriptionはAIに提案してもらっている。タイトルと中身は自分で書いている。なぜか。考えるのがめんどくさいからだ。&#xA;ぶっちゃけ、slugとdescriptionは、人が見つけるために必要な情報である。この記事を見つけやすくするための作業は私がやるのではなくてAIにやってもらいたい。AIにやってもらうと嬉しいのは、そういう作業だと思っている。&#xA;自分が考えていることを吐き出していく、情報を書いていくのは私がやる。私がやらないとダメだと思っているし、AIが書いた文章を私は読むのがめんどくさい。いや、大量に読んでいるから、それは語弊がある。他の人のブログを見たときに、それがAIによる文章だったらがっかりする。ブログはそんなことを期待して読む場所じゃないと思っている。&#xA;でも、それを見つけやすくする努力とか、そんなのはめんどくさいなと思っている。でも、一応書いておかないとなんかもやっとするから一応書いておくし、slugも設定しておく。というか私が英語話者ならタイトルをそのままslugにしたと思うが、私は日本語話者である。そして、日本語がslugになっていると、URLが普通に長くなって嫌だ。なので、英語に変換するが、なんか考えるのが面倒なので、AIにやってもらっている。</description>
    </item>
    <item>
      <title>DecapCMSを導入した</title>
      <link>https://mtb-production.info/posts/2025/11/16/introduced-decap-cms/</link>
      <pubDate>Sun, 16 Nov 2025 21:40:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/16/introduced-decap-cms/</guid>
      <description>別に隠すこともないので書くが、このブログにDecap CMSを導入した。ブログを書きやすい状態にしたかったのが理由である。なので、この記事はDecapCMSから更新している。&#xA;https://decapcms.org/&#xA;以前も書いた通り、このブログは、hugoで構築されている。理由は、WordPressをホスティングして、セキュリティメンテナンスのことを考えたくなかったからである。静的サイトジェネレータを使いたかった。その中で、hugoを使っている理由は忘れてしまった。どこかに書いてるかもしれない。&#xA;ただ、hugoを使って思うのは記事を書くのが微妙にめんどくさい、ということである。markdownで記事を管理しているのだが、front matterを書くのがめんどくさい。もっとGUIで自動設定したり簡単に設定したい。&#xA;なので、それを踏まえて、自分でGit-baseのCMSを作ることを検討していた。ただ、検討している中で、decap cmsを見つけたので、とりあえず導入してみた。すでに痒いところが出てきてるが、しばらくは使ってみると思う。</description>
    </item>
    <item>
      <title>ブログの更新を再開したい</title>
      <link>https://mtb-production.info/posts/2025/11/16/restart-blogging/</link>
      <pubDate>Sun, 16 Nov 2025 21:33:00 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2025/11/16/restart-blogging/</guid>
      <description>久しぶりにブログを書く。とりあえず書きたい気持ちになったので書くことにした。&#xA;なぜ、書きたいのか やっぱり、ブログを書いておくと良いな、と思ったから。久しぶりにこのブログを見て、以前考えたことが残っていたのを見て面白いと思った。とりあえずブログを書いておくと将来的に面白いことが増えていく気がする。なので、ブログは書いておきたい気持ちがある。&#xA;なぜ、書かなかったのか なぜだろうか。忘れた。しかし、時期的に見ると、多分、頻繁にブログを更新する時期が過ぎたんだろう。前回は、2023年7月半ばから２週間くらいブームになっていたようだ。&#xA;何を書きたいのか 今の所、これを書きたい、という感じではない。とりあえず何かを書いておきたいと思っている。今考えていること、最近やったこと、そんなことをとりあえず書く。&#xA;どういう状況なのか まあこれから書いていきたいと思っているが、最初に伝えることは、「最近、喋り足りていない」ということはある。何かを誰かに伝えたいというか、話したい気持ちになることはあるが、それを伝える先がない。とりあえず雑談的に何かを話したい気持ちはある。それを書いていきたい。</description>
    </item>
    <item>
      <title>自分のブログを見て回答するボットを使った気づき</title>
      <link>https://mtb-production.info/posts/2023/07/30/%E8%87%AA%E5%88%86%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E8%A6%8B%E3%81%A6%E5%9B%9E%E7%AD%94%E3%81%99%E3%82%8B%E3%83%9C%E3%83%83%E3%83%88%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%B0%97%E3%81%A5%E3%81%8D/</link>
      <pubDate>Sun, 30 Jul 2023 22:48:57 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/30/%E8%87%AA%E5%88%86%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E8%A6%8B%E3%81%A6%E5%9B%9E%E7%AD%94%E3%81%99%E3%82%8B%E3%83%9C%E3%83%83%E3%83%88%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%B0%97%E3%81%A5%E3%81%8D/</guid>
      <description>自分のブログを検索して回答するボットを作った。 現時点では、自分のローカルマシンでのみ動作している。 たまに、「こういう記事を書いた気がするんだけど、どう？」とか聞いている。&#xA;実際に自分で自分のブログを閲覧して回答するボットを作ってみると気づいたことがある。 それは自分が想像している以上に自分はブログに何も書いていないということだ。 自分が何かしらの記録をブログに書いたと思っているトピックであっても何も書いてないことがあった。&#xA;現時点では、公開されている一つのブログしか閲覧対象にしていない。 なので、実は別のブログに書いているのかもしれないし、記事として書いたけど、ローカルマシンに残っていたり下書きのまま放置しているかもしれない。&#xA;どちらにしても重要なのは、公開してるブログにはその情報を書いていないということだ。 自分が何を知っていて何を知らないのかを、ブログで公開しておくのがいいと思っている。 それがより成長スピードを上げることにつながっていく。&#xA;自分のブログを見て答えるボットを作っただけでも自分の客観的な理解について理解が深まって行くのが面白い。 今後も、このボットの開発は続けて行くことになりそうだ。</description>
    </item>
    <item>
      <title>実践的な情報の言語化が重要</title>
      <link>https://mtb-production.info/posts/2023/07/30/%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E6%83%85%E5%A0%B1%E3%81%AE%E8%A8%80%E8%AA%9E%E5%8C%96%E3%81%8C%E9%87%8D%E8%A6%81/</link>
      <pubDate>Sun, 30 Jul 2023 22:39:26 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/30/%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E6%83%85%E5%A0%B1%E3%81%AE%E8%A8%80%E8%AA%9E%E5%8C%96%E3%81%8C%E9%87%8D%E8%A6%81/</guid>
      <description>今日はMore Effective Agileという本について紹介する。 と言ってもこの本は一度別のブログで紹介したことがあるように思う。 と思ったので探してみたが、見つからなかった。気のせいのようだ。&#xA;この本はいい本だ。何がいい本かというと、アジャイルについて実践的な情報がたくさん書かれているからだ。&#xA;自分が実務をしながら考えたことがある内容やモヤモヤしていた内容について様々な言語化が進められている。 言語化が進んでいるというのはすごく重要だ。 一度、言語化されたものはそれを説明しやすい状態になる。&#xA;私は、言語化能力が高いといわれることがある。しかしそれは正確ではないと思っている。言語化能力が高いのではなくて、言語化のために使っている時間が多いだけだと思う。 このようにブログを書いているのも一つの言語化になる。&#xA;話が脱線してきたがMore Effective Agileは良い本だ。 何がいいのかという部分については、この記事とは別のところで話しようと思う。 一つの記事は長くなりすぎないようにしておきたい。この記事は、実践的な情報の言語化が大切だという話で閉じておこう。</description>
    </item>
    <item>
      <title>インターネットで知り合った人にもっと情報を出していけ</title>
      <link>https://mtb-production.info/posts/2023/07/28/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%A7%E7%9F%A5%E3%82%8A%E5%90%88%E3%81%A3%E3%81%9F%E4%BA%BA%E3%81%AB%E3%82%82%E3%81%A3%E3%81%A8%E6%83%85%E5%A0%B1%E3%82%92%E5%87%BA%E3%81%97%E3%81%A6%E3%81%84%E3%81%91/</link>
      <pubDate>Fri, 28 Jul 2023 21:01:09 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/28/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%A7%E7%9F%A5%E3%82%8A%E5%90%88%E3%81%A3%E3%81%9F%E4%BA%BA%E3%81%AB%E3%82%82%E3%81%A3%E3%81%A8%E6%83%85%E5%A0%B1%E3%82%92%E5%87%BA%E3%81%97%E3%81%A6%E3%81%84%E3%81%91/</guid>
      <description>サースな1on1ラジオを聴いていた。その中で、TwitterやSNS経由で人と繋がるのが怖かったという話が出ていた。その話を聞いて思ったけど、自分はいつの間にかその感覚を忘れてしまっていた。&#xA;在宅勤務が当たり前の生活で、インターネット上で募集がかかっているイベント以外で外に出ることが少なくなってきたし、会社での飲み会も少ない。そんな状況ではむしろSNS経由以外で人と知り合うことが少ない。&#xA;最近、もっと友人や色んな人に自分が考えていることや表現を共有していけ、という話が出た。それは分かると言えば分かるんだが、誰に共有すればいいんだよ、と思っている節はある。インターネット上のオープンなコミュニティでの活動を増やして行くべきなのかもしれない。</description>
    </item>
    <item>
      <title>TechFeedはRSSがあるらしい</title>
      <link>https://mtb-production.info/posts/2023/07/27/techfeed%E3%81%AFrss%E3%81%8C%E3%81%82%E3%82%8B%E3%82%89%E3%81%97%E3%81%84/</link>
      <pubDate>Thu, 27 Jul 2023 13:36:08 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/27/techfeed%E3%81%AFrss%E3%81%8C%E3%81%82%E3%82%8B%E3%82%89%E3%81%97%E3%81%84/</guid>
      <description>技術情報をどうやってキャッチアップしていくか、という部分について色々考えている。 そんな中で、見つけた良さげなサービスの一つがTechFeed。 ただ、現状のアプリのUIは個人的には好きではない。&#xA;ただ、調べているとどうやらTechFeedはRSSがあるらしい。 RSSがあるなら、それを読み込んで記事をストックしたり、自分なりのUIを作ることもやりやすいのでは。 というわけで、近々その辺りを試してみたい。&#xA;忘れないためにここに書いておく。</description>
    </item>
    <item>
      <title>自分のはてなブログを検索するチャットボットを作った</title>
      <link>https://mtb-production.info/posts/2023/07/26/hatena-blog-chatbot/</link>
      <pubDate>Wed, 26 Jul 2023 13:59:06 +0000</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/26/hatena-blog-chatbot/</guid>
      <description>タイトルの通り、自分のはてなブログを検索するチャットボットを作った。 別に公開はしてない。&#xA;llama-indexというライブラリを使っている。 llama-indexにはllama-hubという外部のリソースを読み込むためのプラグインが提供されている。 その中のはてなブログ用のプラグインを使った。&#xA;実際は、プラグインをそのまま使うだけだと、情報が足りなかったのでPRを出した。 具体的には、エントリーのテキストを読んでくるだけで、エントリーのURLまで取得できてなかった。 以前、はてなブログ用のAPIラッパーを作ったことがあり、取得できることはわかっていたので追加した。&#xA;https://github.com/emptycrown/llama-hub/pull/425&#xA;作ってみて触っていると、自分に関する情報を自分の代わりに答えてくれるボットができた。 このボットに対して知識的な部分は聞いてくれると良さそうだな、と思っている。 今のところははてなブログだけだが、他のブログ記事も読み込んでみるなど、ブログを整理していきたい気持ちが加速してきた。</description>
    </item>
    <item>
      <title>mypyを導入してみる</title>
      <link>https://mtb-production.info/posts/2023/07/25/mypy%E3%82%92%E5%B0%8E%E5%85%A5%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/</link>
      <pubDate>Tue, 25 Jul 2023 12:13:42 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/25/mypy%E3%82%92%E5%B0%8E%E5%85%A5%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/</guid>
      <description>Pythonで書いてある型アノテーションが正しいことをチェックしたい。 書いてない部分については、とりあえず何でもいいというか、チェックの対象外とする予定。&#xA;まず、インストール&#xA;pip install mypy 次に設定を追加する。&#xA;[mypy] files = ./ ignore_missing_imports = True check_untyped_defs = True とりあえず、手元の簡単なプロジェクトには入った。</description>
    </item>
    <item>
      <title>Pythonの型チェッカを少しだけ覗く</title>
      <link>https://mtb-production.info/posts/2023/07/24/python%E3%81%AE%E5%9E%8B%E3%83%81%E3%82%A7%E3%83%83%E3%82%AB%E3%82%92%E5%B0%91%E3%81%97%E3%81%A0%E3%81%91%E8%A6%97%E3%81%8F/</link>
      <pubDate>Mon, 24 Jul 2023 21:26:10 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/24/python%E3%81%AE%E5%9E%8B%E3%83%81%E3%82%A7%E3%83%83%E3%82%AB%E3%82%92%E5%B0%91%E3%81%97%E3%81%A0%E3%81%91%E8%A6%97%E3%81%8F/</guid>
      <description>Pythonの型チェッカーについて調べたい。 といっても基本的にはロバストPythonに書いてあることを読んで自分なりの理解をまとめる。 ついでに気になったことを調べておく、というのがこの記事の趣旨。&#xA;ロバストPythonという書籍のP77に以下のような記載がある。 「本質的に型チェッカとは検証済みドキュメントをもたらすものだ」 私はこの表現がいいなと思っているし、適切だと思っている。&#xA;Pythonにおいて型はアノテーションであり本質的にはコメントと同じである。 ただ、ただの自然言語のコメントよりPythonのアノテーションは検査しやすくなっているのだろう。&#xA;Pythonの型チェッカ mypy: 最も広く使われる型チェッカ。厳密度を設定するオプションが多数設定できる。コードベースが重くなるとチェックに時間がかかるらしい。 Pyre: 別プロセスで起動してデーモンを起動しておくとチェックしてくれるタイプ。コードベースクエリというコードベースに含まれる属性の検索とPysaという静的アナライザが付属している。 Pyright: Microsofが作った型チェッカ。PylanceというVS Code拡張があり、リアルタイムでデータ型を検査できる。 ここまで調べていて思ったが、そもそもPythonの型チェッカはPyrightしかリアルタイムでデータ型を検査できないのだろうか？&#xA;それについては改めて次の機会に調べることにする。</description>
    </item>
    <item>
      <title>GitのSubmodulesとは何かを調べたメモ</title>
      <link>https://mtb-production.info/posts/2023/07/24/git%E3%81%AEsubmodules%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%9F%E3%83%A1%E3%83%A2/</link>
      <pubDate>Mon, 24 Jul 2023 20:44:10 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/24/git%E3%81%AEsubmodules%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%9F%E3%83%A1%E3%83%A2/</guid>
      <description>GitのSubmodulesとは何かを調べたメモを書く。&#xA;https://git-scm.com/book/en/v2/Git-Tools-Submodules&#xA;Git Submoduleとは GitのSubmoduleは、Gitリポジトリに別のGitリポジトリを含める機能。 submoduleはリポジトリなので、個別にバージョン管理が可能になる。&#xA;Git Submodulesは何が嬉しいのか Pythonを使ってるとGitリポジトリから直接インストールできる。 なので、Submoduleにする必要性をあまり感じたことがない。 それを踏まえ、もう少し検討してみた。&#xA;フレームワークを保守していて、それをプロダクトで使っている場合は、Submodulesが嬉しように思う。 フレームワークの場合、一つの修正を入れるために複数の箇所を修正することになるのはあり得る。&#xA;その他、ChatGPTと議論しながらいくつか考えてみた。しかし、大規模で複数のチームが混在しており、また、複数のプロダクトも存在するような状況でなければ、GitSubmodulesが有効な場面が想像できなかった。&#xA;以下にChatGPTとの検討のまとめを貼っておく。（ChatGPTにまとめさせたものを調整している。）&#xA;Git Submodulesの有効な使用シーン 共有ライブラリの管理： プロジェクトが独自に開発した共有ライブラリを、複数のプロジェクトで再利用したい場合。パッケージマネージャーで直接管理できないような独自のコードを、各プロジェクトで一貫して利用できる。&#xA;マイクロサービスアーキテクチャ： マイクロサービスをそれぞれ独立したリポジトリで管理し、それら全てを参照する親リポジトリを作ることで、全体の一覧性や管理性を向上させられる。&#xA;大規模なプロジェクトの分割： 大規模なプロジェクトを複数の部分（モジュールやコンポーネント）に分割し、それぞれを独立したリポジトリとして管理する場合。各部分の開発がより独立性を持たせられる。&#xA;Git Submodulesのメリットとデメリット メリット コードの再利用： 共通のコードを再利用したい複数のプロジェクト間でコードを共有できる。これにより、同じコードの複製を避けられる。&#xA;独立性： 各サブモジュールは自身のリポジトリを持ち、独立に開発・メンテナンスできる。これは大規模なプロジェクトや複数のチームが関与する場合に特に有用。&#xA;特定のバージョンの追跡： 親リポジトリは子リポジトリの特定のバージョンを参照できる。特定のバージョンのコードを追跡することができ、親リポジトリの安定性を保てる。&#xA;デメリット 複雑性： Git Submodulesの管理は少々複雑であり、初めて使う人にとっては理解するのが難しい。サブモジュールの更新、ブランチの管理、コンフリクトの解決など、特殊な手順を必要とする。&#xA;更新の手間： 親リポジトリはサブモジュールの特定のバージョンを追跡するため、サブモジュールの新しいバージョンを使用するには、親リポジトリを明示的に更新する必要がある。&#xA;混乱の可能性： Git Submodulesを知らない人がリポジトリをクローンした場合、彼らはサブモジュールの存在に気づかず、空のディレクトリを見つけることになる。これは混乱を招くことがある。</description>
    </item>
    <item>
      <title>私の書いたドキュメントを読むエージェントの妄想</title>
      <link>https://mtb-production.info/posts/2023/07/24/%E7%A7%81%E3%81%AE%E6%9B%B8%E3%81%84%E3%81%9F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%82%92%E8%AA%AD%E3%82%80%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%AE%E5%A6%84%E6%83%B3/</link>
      <pubDate>Mon, 24 Jul 2023 20:22:16 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/24/%E7%A7%81%E3%81%AE%E6%9B%B8%E3%81%84%E3%81%9F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%82%92%E8%AA%AD%E3%82%80%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%AE%E5%A6%84%E6%83%B3/</guid>
      <description>私の全てのブログやアウトプットを読んだことがあるエージェントについて考えている。 そんなエージェントがいたら私は何を聞きたいのだろうか。 LLMが発達してきて、この問が非現実的なものではなくなってきた。&#xA;一つ目に思いついたのは、「過去の自分はこのテーマについて何か書いてあるか」だ。 私はたくさんの記事や文章を書きすぎて、特定のテーマについて書いたかどうかを覚えていない。 過去の自分の考えや記事を探す時に使いたい。目の前の問題について解決策が見つかるかもしれないからだ。&#xA;二つ目は「これに何か関係ありそうな情報はあるか」だ。 過去の経験や検討が応用できるのであれば素早く情報を確認したい。 過去の意思決定は未来の意思決定の参考にできるかもしれない。&#xA;三つ目は「こういうトピックについて、話してくれる？」だ。 過去に自分が書いたことのあるトピックを見ながら何かしらの情報を話させるのも悪くない。&#xA;四つめは「こういう話が来たんだけど、一次回答を作ってみて。」だ 自分の文章を元に新しい回答を作らせるのもやってみたい。&#xA;こういうことを考えていると、ブログに文章を書き溜めるのも少し楽しみが増えていく。</description>
    </item>
    <item>
      <title>なぜ、私が不要になった本を図書館に寄贈するのか</title>
      <link>https://mtb-production.info/posts/2023/07/22/%E3%81%AA%E3%81%9C%E7%A7%81%E3%81%8C%E4%B8%8D%E8%A6%81%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E6%9C%AC%E3%82%92%E5%9B%B3%E6%9B%B8%E9%A4%A8%E3%81%AB%E5%AF%84%E8%B4%88%E3%81%99%E3%82%8B%E3%81%AE%E3%81%8B/</link>
      <pubDate>Sat, 22 Jul 2023 21:23:36 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/22/%E3%81%AA%E3%81%9C%E7%A7%81%E3%81%8C%E4%B8%8D%E8%A6%81%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E6%9C%AC%E3%82%92%E5%9B%B3%E6%9B%B8%E9%A4%A8%E3%81%AB%E5%AF%84%E8%B4%88%E3%81%99%E3%82%8B%E3%81%AE%E3%81%8B/</guid>
      <description>私は、不要になってきた本は図書館に寄贈することにしている。 今回は、その話を少しだけ書いておく。 同じように考える人がいるかもしれないからだ。&#xA;まず、私はたくさんの本を買う。それも、物理的な本を買う。電子書籍より実際の紙の本を優先的に購入している。 物理的に本を購入すると、家が本で溢れてくる。 家のスペースには限りがあるので、溢れた本をどうにかしなければならない。&#xA;以前は、溢れた本を押入れに入れていたり、月額制の預かりサービスに預けていた。 しかし、それらの対策も暫定的な対策にしかならず、本が溢れていく。 日々の維持費もかかっていくので本を手放すことについて考え始めた。&#xA;本を手放すことについて考えたとしても、本を捨てるのは好きではない。 また、中古本として売るのも好きではない。あなたが大切にしていた本は10円です、と言われるのはなんか気分が良くない。 それなら、無料で引き取ってもらう方が希望がある。&#xA;そして、図書館に無料で寄付すると、誰かに辿り着くのかもしれない、という気持ちがある。 無料で寄付する先が他にあるのであれば他の場所も検討するかもしれない。 ただ、せっかくなので、地域の人や本に興味を持つ人に届いてもらえるといいな、という気持ちはある。&#xA;なので、実際のところは中古本でも悪くはない。値付けされるのが嫌なだけだ。</description>
    </item>
    <item>
      <title>なぜ、私が「スーパーエンジニアへの道」を買い、まだ持っているのか</title>
      <link>https://mtb-production.info/posts/2023/07/22/%E3%81%AA%E3%81%9C%E7%A7%81%E3%81%8C%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%B8%E3%81%AE%E9%81%93%E3%82%92%E8%B2%B7%E3%81%84%E3%81%BE%E3%81%A0%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B/</link>
      <pubDate>Sat, 22 Jul 2023 20:46:08 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/22/%E3%81%AA%E3%81%9C%E7%A7%81%E3%81%8C%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%B8%E3%81%AE%E9%81%93%E3%82%92%E8%B2%B7%E3%81%84%E3%81%BE%E3%81%A0%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B/</guid>
      <description>G・M・ワインバーグ氏の著書の一つに、「スーパーエンジニアへの道 技術リーダーシップの人間学」という本がある。 私はこの本を新卒の頃に購入して読んだ。 そして、働き始めてそろそろ10年経つ今でも本棚に並べてある。この本について話す。&#xA;なぜ、買ったのか なぜ、この本を私が買ったのか。 もう10年近く前の話なので、ほとんどわすれてしまった。 しかし「スーパーエンジニア」「技術リーダーシップ」「人間学」という言葉が魅力的だったり、ワインバーグ氏の書いた「コンサルタントの秘密」が面白かったことがきっかけだと記憶している。&#xA;購入したのはAmazonだった。 思い返してみると、Amazonがあったから忙しい生活の中で、スムーズにこの本を見つけることができた。 そして、スムーズに購入することもできた。 Amazonがなければ、購入することも読むことも難しかったかもしれない。&#xA;なぜ、まだ持っているのか 私はこの本をまだ本棚に並べている。なぜ、まだ本棚に並べているのだろうか。&#xA;私がこの本を本棚に並べている理由は、この本が価値ある本だからだ。 この本は、ワインバーグ氏の経験をもとに書かれている。 ワインバーグ氏の経験は貴重であり、あんなに経験豊富な人が自身の経験を書き綴った本は少ない。&#xA;また、考え方や観点も私視点で興味深いことがあり、時間をおいて読み返せばまた新しい発見が得られそうな気がしている。 なので、言い換えると、時間をおいて読み返すために、私はこの本を本棚に並べている。 ただし、実際のところ、この本をゆっくりと読み返す時間は取れていない。&#xA;今、ざっと見て何か発見があるか 目次を見て、今一番光って見えたのは「自分でやってしまう」というリーダーシップにおける障害の話だった。 この状況に私はまさしく当てはまっている。 自分でやってしまうのは良くないと知りつつ、最近は、色々な疲れから自分がやってしまうことは多い。&#xA;なぜ、自分がやってしまうのか、についての言語化がこの本には書かれていた。 それは「今、最も重要な問題を解く」ということを「より多くの問題を現在だけでなく未来にわたって解ける環境を作る」より重要視してしまうから、とのことだ。 すごく納得がいく。&#xA;また、この問題は「目の前の重要な問題は、プロジェクトや組織の存続に関わるのかどうか」という問題に変わるとも述べられている。 存続に関わる問題であれば、組織的に問題が解けるようにするのではなく、いち早く問題を解決することが重要になる。 「自分がやってしまう」という状況がどんな状況であれば許されるか、ということについても学びがある。&#xA;と、まあこんな感じで久しぶりに読んでも学びがある本だった。</description>
    </item>
    <item>
      <title>なぜ、自分の行動の理由を説明したいのか</title>
      <link>https://mtb-production.info/posts/2023/07/22/why-i-want-to-explain-my-actions/</link>
      <pubDate>Sat, 22 Jul 2023 11:41:36 +0000</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/22/why-i-want-to-explain-my-actions/</guid>
      <description>私は、自分の行動の理由を説明したい。 なぜ、自分の行動の理由を説明したいのだろうか。 それは、行動の数が多すぎて、理由を覚えていられなくなってきたからだ。&#xA;なぜ、自分がそのような行動をとっていたのか、という部分を自分の外で言語化しておきたい気持ちがある。 時間が経つにつれて行動の理由は忘れていく。 私は、自分が行動するときに他の人に相談しないことも多々ある。私が忘れたら、誰も知らない状態になる。&#xA;私の行動の理由を知っているのは私だけであるのに、私がそれを忘れてしまう。 これがなんとなく怖いと思っている。 日常的に、誰かに自分の生活や行動を話をしていれば、それは避けられるのかもしれない。 しかし、大人になるとそうもいかない。&#xA;だから、こうして、自分の行動の理由をブログにでも書き残しておこうとしている。 誰かに反応してもらいたいわけではなく、自分が忘れても大丈夫だと安心したい。 自分の行動の理由を一度言語化することで、コンパクトに思い出せるようになったり、安心感を得られる。&#xA;だから私は自分の行動の理由を説明したいと思っている。</description>
    </item>
    <item>
      <title>なぜ、本棚にある本を紹介したいのか</title>
      <link>https://mtb-production.info/posts/2023/07/22/%E3%81%AA%E3%81%9C%E6%9C%AC%E6%A3%9A%E3%81%AB%E3%81%82%E3%82%8B%E6%9C%AC%E3%82%92%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%8B/</link>
      <pubDate>Sat, 22 Jul 2023 20:33:40 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/22/%E3%81%AA%E3%81%9C%E6%9C%AC%E6%A3%9A%E3%81%AB%E3%81%82%E3%82%8B%E6%9C%AC%E3%82%92%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%8B/</guid>
      <description>本棚にたくさんの本がある。その中からいくつか紹介したい気持ちになった。 本を紹介することで、自分が本を読んだ意味が見えてくるような気がしているからだ。&#xA;そもそもの話として、私がなぜ本を読むのか、という話を少し。 私が本を読むのは、その本が自宅にあったからだ。自宅にない本は読まない。 ただ、自宅に本がある理由は私が買ったからだ。&#xA;私が本を買うのは、その本に書いてあるであろう内容に興味が湧いたからだ。 なので、私の自宅の本棚を見ると、私の興味が見えてくる。 私の本棚にある本を紹介するということは、私の興味を紹介するということに等しい。</description>
    </item>
    <item>
      <title>気がついたらブログを毎日書いてる</title>
      <link>https://mtb-production.info/posts/2023/07/20/daily-blogging-motivation/</link>
      <pubDate>Thu, 20 Jul 2023 14:06:47 +0000</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/20/daily-blogging-motivation/</guid>
      <description>気づけばブログを数日連続で更新している。 以前、ブログを書く意味が見えない話をしていたが、今は毎日更新している。なぜだろうか。&#xA;毎日更新しているのは、気軽だからだ。 自分の学びを積み上げて行く感じがシンプルで、何か建設的なことをしている気がしてくる。 私は建設的に生きていたいのだと思う。&#xA;そして、このブログに書いてるのは他の人の反応が見えないからだ。 完全に自己満足としてブログを運営することができる。 自分だけがこのブログのユーザーなので、自分が欲しい記事を書けば良い。他の人のことを考えないから更新が楽になる。&#xA;はてなブログであったり、Qiitaであったり、Zennであったり、Mediumであったり、ブログSNSに何かを書くのは抵抗がある。 PV数やコメント数、リアクションの数など、そういった数字に追われてしまう。 自分が本当に面白い記事や自分が書きたい記事、書きたい情報を忘れて数字について考えてしまう。それが嫌だ。&#xA;このブログでは数字を見なくても良い状態になっている。 アクセス解析について少しだけ考えてみていた。 しかし、入れないほうがいいのかもしれないと思ったりもしている。&#xA;そういえば、この話をしていて思い出した。 以前、同僚だったJ氏がマイクロブログのための何かプロトコルについて話をしていた気がする。名前は思い出せないが。 あのプロトコルを自分のブログに入れてみると面白いかもしれない。</description>
    </item>
    <item>
      <title>Llama-indexのIndexをS3に保存する</title>
      <link>https://mtb-production.info/posts/2023/07/20/llama-index%E3%81%AEindex%E3%82%92s3%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B/</link>
      <pubDate>Thu, 20 Jul 2023 21:25:34 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/20/llama-index%E3%81%AEindex%E3%82%92s3%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B/</guid>
      <description>Llama-indexのIndexをS3に保存したい。ドキュメントとしてはここに記載がある。&#xA;https://gpt-index.readthedocs.io/en/latest/core_modules/data_modules/storage/save_load.html#using-a-remote-backend&#xA;s3fs を使っている。&#xA;s3fs とは S3をファイルシステムのように扱うライブラリ。fsspecをベースにしている。&#xA;https://pypi.org/project/s3fs/&#xA;使ってみよう。&#xA;前提として以下を設定する。&#xA;AWSにIAMユーザーを作成する。ACCESS KEY ID, ACCESS KEY SECRETを取得する AWSにS3バケットを作成する。バケット名を確認しておく。 使ってみるとこうなる&#xA;&amp;gt;&amp;gt;&amp;gt; import s3fs &amp;gt;&amp;gt;&amp;gt; aws_key = &amp;#34;...&amp;#34; # AWSで利用するACCESS KEY IDを設定する。 &amp;gt;&amp;gt;&amp;gt; aws_secret = &amp;#34;...&amp;#34; # AWSで利用するACCESS KEY IDのSECRETを設定する &amp;gt;&amp;gt;&amp;gt; bucket_name = &amp;#34;...&amp;#34; # 作成したバケット名を設定する &amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; s3 = s3fs.S3FileSystem(key=aws_key, secret=aws_secret) &amp;gt;&amp;gt;&amp;gt; s3.ls(bucket_name) [] &amp;gt;&amp;gt;&amp;gt; with s3.open(f&amp;#39;{bucket_name}/new-file.txt&amp;#39;, &amp;#39;w&amp;#39;) as f: ... f.write(&amp;#34;Hello s3fs!!&amp;#34;) ... 12 &amp;gt;&amp;gt;&amp;gt; s3.ls(bucket_name) [&amp;#39;.../new-file.txt&amp;#39;] # バケット名の部分はマスキングしてる &amp;gt;&amp;gt;&amp;gt; with s3.</description>
    </item>
    <item>
      <title>NotionデータベースにPythonを使ってデータを書き込む</title>
      <link>https://mtb-production.info/posts/2023/07/19/notion%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%ABpython%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80/</link>
      <pubDate>Wed, 19 Jul 2023 21:25:21 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/19/notion%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%ABpython%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80/</guid>
      <description>NotionデータベースにPythonを使ってデータを書き込む話を書きます。&#xA;前提 NotionにMy Integrationにインテグレーションの登録が必要です。 登録先のNotionデータベースは手作業で作成が必要です。 My Integrationに登録したインテグレーションを作成したNotionデータベースにコネクトする必要があります。これも手作業です。 上記が全て終わっている前提で進めます。&#xA;サンプルコード notion-clientとpython-decoupleを使っています。 以下がサンプルです。&#xA;from notion_client import Client from decouple import config notion = Client(auth=config(&amp;#34;NOTION_API_KEY&amp;#34;)) database_id = config(&amp;#34;NOTION_DATABASE_ID&amp;#34;) kargs = { &amp;#34;parent&amp;#34;: {&amp;#34;database_id&amp;#34;: database_id}, &amp;#34;properties&amp;#34;: { &amp;#34;タイトル&amp;#34;: {&amp;#34;title&amp;#34;: [{&amp;#34;text&amp;#34;: {&amp;#34;content&amp;#34;: &amp;#34;テストタイトル&amp;#34;}}]}, &amp;#34;ID&amp;#34;: {&amp;#34;rich_text&amp;#34;: [{&amp;#34;text&amp;#34;: {&amp;#34;content&amp;#34;: &amp;#34;hogehoge&amp;#34;}}]}, }, } kargs[&amp;#34;children&amp;#34;] = [ { &amp;#34;object&amp;#34;: &amp;#34;block&amp;#34;, &amp;#34;type&amp;#34;: &amp;#34;paragraph&amp;#34;, &amp;#34;paragraph&amp;#34;: { &amp;#34;rich_text&amp;#34;: [{&amp;#34;type&amp;#34;: &amp;#34;text&amp;#34;, &amp;#34;text&amp;#34;: {&amp;#34;content&amp;#34;: &amp;#34;テストメッセージ&amp;#34;}}] }, }, ] response = notion.pages.create(**kargs) </description>
    </item>
    <item>
      <title>ブログのアクセス解析方法を調べる</title>
      <link>https://mtb-production.info/posts/2023/07/19/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E8%A7%A3%E6%9E%90%E6%96%B9%E6%B3%95%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B/</link>
      <pubDate>Wed, 19 Jul 2023 08:06:26 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/19/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E8%A7%A3%E6%9E%90%E6%96%B9%E6%B3%95%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B/</guid>
      <description>こちらのブログにアクセス解析を仕込むことについて考えてみた。 ただ、最近のアクセス解析がどのようなものなのか、どんな選択肢があるのか、を理解できていない。 そのため、軽く、最近のアクセス解析事情について調べてみる。&#xA;アクセス解析ツール ここからは検索して出てきたアクセス解析ツールについてメモを書いていく。&#xA;Googleアナリティクス これは有名。使ったことがある。先日、昔のGoogleアナリティクスが使えなくなる？ので、GA4に切り替えた云々の話をよく見かけた気がしている。GA4もアクセス解析のツールということで合ってるのだろうか？&#xA;https://moltsinc.co.jp/access-analysis/8165/#lwptoc3&#xA;上記のページを見る限りGoogleアナリティクスのバージョンが切り替わっただけで、アクセス解析としてはこれまで以上に使えるように見える。&#xA;Googleサーチコンソール これも実は使ったことがある。Google検索からどれくらいアクセスがあるか、などを調べることができるツールという認識。現時点で登録していないので、登録しても良いように思う。&#xA;忍者アクセス解析 検索出てきたが、使ったことがない。簡単に設置できるらしいのでやってみても良いかもしれない。&#xA;https://www.ninja.co.jp/analyze/&#xA;アクセス解析研究所 検索で出てきた。ただ、使ったことがない。&#xA;以下のサイトを見ると、Googleアナリティクスの場合、設定が必要だが、アクセス解析研究所のツールを使うとそこまで設定が必要ない様子。&#xA;https://yanai-ke.com/acsesslab01/&#xA;確かに、Googleアナリティクスの設定が面倒でアクセス解析を設置していない節があるので、それは良さそう。&#xA;終わり 他にも出てきたが、調べるのに疲れたので、ここで終了。&#xA;Googleアナリティクスの設定をやるのが億劫で放置していたが、簡単に設定できるツールもあるようだし、Web上でGoogleアナリティクスの使用例もあるようなので、もっと気を楽にして導入してみても良いのかもしれない。</description>
    </item>
    <item>
      <title>Pythonでtsvファイルをcsvファイルに変換する</title>
      <link>https://mtb-production.info/posts/2023/07/18/python%E3%81%A7tsv%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92csv%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/</link>
      <pubDate>Tue, 18 Jul 2023 22:34:18 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/18/python%E3%81%A7tsv%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92csv%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/</guid>
      <description>tsvファイルをcsvファイルに変換したくなった。 ChatGPTに聞きつつ、Pythonのコードを作成した。メモとして置いておく。&#xA;import csv # タブ区切りのCSVファイルを読み込む with open(&amp;#39;input.tsv&amp;#39;, &amp;#39;r&amp;#39;) as tsvfile: reader = csv.reader(tsvfile, delimiter=&amp;#39;\t&amp;#39;) rows = list(reader) # カンマ区切りのCSVファイルに書き出す with open(&amp;#39;output.csv&amp;#39;, &amp;#39;w&amp;#39;, newline=&amp;#39;&amp;#39;) as csvfile: writer = csv.writer(csvfile, delimiter=&amp;#39;,&amp;#39;) writer.writerows(rows) </description>
    </item>
    <item>
      <title>このブログのここまでについて</title>
      <link>https://mtb-production.info/posts/2023/07/18/%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%81%93%E3%81%93%E3%81%BE%E3%81%A7%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/</link>
      <pubDate>Tue, 18 Jul 2023 22:22:14 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/18/%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%81%93%E3%81%93%E3%81%BE%E3%81%A7%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/</guid>
      <description>このブログの運営について振り返っておく。&#xA;Keep 約2年ほど運営されている。運営が続いているのは良いことだ。 サーバーの維持費がかかっていないことが理由の一つだと思う。 維持費がかかっていないのであれば、運営を辞める理由がない。&#xA;更新するためのスクリプトが用意されているのも良いことだ。 久しぶりにブログを更新しようとした際にブログが更新する方法がわからないのは辛い。 スクリプトを実行すれば簡単にブログが更新できる。&#xA;頑張らないことで続いている。検索エンジンにも登録していないし、アクセス解析もしてない。いきなりいろんなことを設定しようとすると、しんどくなってしまうことを知っている。だから無理しないでできる範囲しかやってない。気が向いたらやる、というレベルの自分のモチベーションに従ってやってるのは良い。&#xA;Problem 問題、というか気になっている程度のことを書いておく。&#xA;ブログが他の場所にも存在しているので、できたらマージしたい。無理にマージしなくても良いのかもしれないし、複数のブログを持っている意味があるのであればそれはそれでよい。ただ、現時点では複数のブログについて一つ一つの意味を明確にできていないのもある。&#xA;ブログ記事を検索したい。現在、来訪者向けに記事を探しやすくする仕組みは提供していないし、頑張って作ろうともしていない。ただ、自分自身が「こんな話を書いた気がする」と思った際に探すのが手間な状況になっている。これは良くない。なんとかしてほしい。&#xA;無理しない範囲でアクセス解析や検索エンジンへの登録は進めていく方が良さそうに思っている。別にやらなくても良いといえば良いが、やってみるのも悪くない気がしている。急がない程度でどこかでやっておきたい。&#xA;Try 今後も維持費をかけずに運営を続けていく。 運営に関するタスクは積極的にスクリプトにする。ドキュメントより自動化。 頑張らずに気が向いたら構築を進めるレベルで今後もやっていく。 気が向いたらブログの整理について考えてみる 気が向いたらブログの検索性を高める方法を考えていく。 気が向いたら検索エンジン周りの設定やアクセス解析の設定を進めていく。 </description>
    </item>
    <item>
      <title>なぜ、GitHubではなくブログでコードを公開するか</title>
      <link>https://mtb-production.info/posts/2023/07/17/%E3%81%AA%E3%81%9Cgithub%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%85%AC%E9%96%8B%E3%81%99%E3%82%8B%E3%81%8B/</link>
      <pubDate>Mon, 17 Jul 2023 22:52:19 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/17/%E3%81%AA%E3%81%9Cgithub%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%85%AC%E9%96%8B%E3%81%99%E3%82%8B%E3%81%8B/</guid>
      <description>気づいたことを記録しておく。&#xA;なんとなく私は、GitHubのリポジトリで自分が書いたスニペットのコードを公開せずに、ブログで公開することが多い。 その理由をこれまでは説明できなかったが、いくつかの理由がわかってきた。なので、ここに書いておく。&#xA;まず、GitHubの公開リポジトリにコミットすると、草が生える。それが嫌だ。 「自分はこんなに活動してますよ！！」というアピールがなんか目障りに感じている。 別に他の人がそんなふうにアピールしているのは特に何も思わないが、自分はアピールしたいと思わない。&#xA;次にGitHubで公開するのはコードの断片ではなくて、リポジトリであるというのもポイントになる。 自分が書いたコードを誰かに共有するのはやぶさかではないが、別に履歴まで公開したいと思っていない。履歴を見て、あれやこれやと言われたくない。 私がコードを公開するのは誰かの参考になれば、という気持ちだけで自分の書いたものにコメントが欲しいからではない。&#xA;そういえば、最近、技術系のブログSNSでコードを公開しないののも同じ理由だと気づいた。 最近のブログSNSではコメント機能が充実していたり、コードの修正依頼を出せる仕組みになっている。 私は自分が書いた記事に対して欲しいフィードバックは「役に立った」だけであり、こちらの間違いを指摘したり、別の方法の提示は興味がない。&#xA;私は、目の前の問題を解決することに興味があって、その問題の解決の記録を共有することで他の人の役に立つのが好きである。 しかし、問題の解決方法をブラッシュアップしたいと思っていないし、問題の解決方法がベストかどうか、についても興味がない。</description>
    </item>
    <item>
      <title>ChatGPTのエクスポートデータをプログラムから扱う</title>
      <link>https://mtb-production.info/posts/2023/07/17/chatgpt%E3%81%AE%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%8B%E3%82%89%E6%89%B1%E3%81%86/</link>
      <pubDate>Mon, 17 Jul 2023 22:38:59 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/17/chatgpt%E3%81%AE%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%8B%E3%82%89%E6%89%B1%E3%81%86/</guid>
      <description>ChatGPTからエクスポートした会話データをプログラム上から扱いやすくしたい。 最終的には、会話データをいい感じにNotionに保存して、検索したり個人ノートとして使いやすくしたい。&#xA;まずは、会話データをPythonから使いやすい状態にして、その後にNotionにインポートする方法を検討する。&#xA;import json from typing import Optional from dataclasses import dataclass from dataclasses_json import dataclass_json path = &amp;#34;...&amp;#34; @dataclass_json @dataclass class Author: &amp;#34;&amp;#34;&amp;#34; メッセージの送信者情報 &amp;#34;&amp;#34;&amp;#34; role: str name: Optional[str] metadata: dict def __str__(self): return self.role @dataclass_json @dataclass class Message: &amp;#34;&amp;#34;&amp;#34; メッセージ情報 &amp;#34;&amp;#34;&amp;#34; id: str author: Author create_time: float update_time: Optional[float] content: dict end_turn: Optional[bool] weight: float metadata: dict recipient: str def __str__(self): content = &amp;#34;&amp;#34;.join(self.content[&amp;#34;parts&amp;#34;]) return f&amp;#34;{self.author}: {content}&amp;#34; @dataclass_json @dataclass class Mapping: &amp;#34;&amp;#34;&amp;#34; メッセージのマッピング情報 &amp;#34;&amp;#34;&amp;#34; id: str message: Optional[Message] parent: Optional[str] children: list[str] @dataclass_json @dataclass class ChatHistory: &amp;#34;&amp;#34;&amp;#34; Chat履歴データ &amp;#34;&amp;#34;&amp;#34; id: str title: str create_time: float update_time: float mapping: dict[str, Mapping] current_node: str class ExportDataService: &amp;#34;&amp;#34;&amp;#34; エクスポートしたデータを扱うサービス &amp;#34;&amp;#34;&amp;#34; def __init__(self, path: str): self.</description>
    </item>
    <item>
      <title>ブログ記事に自動でカテゴリを割り当てる</title>
      <link>https://mtb-production.info/posts/2023/07/16/%E3%83%96%E3%83%AD%E3%82%B0%E8%A8%98%E4%BA%8B%E3%81%AB%E8%87%AA%E5%8B%95%E3%81%A7%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B/</link>
      <pubDate>Sun, 16 Jul 2023 23:02:54 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/16/%E3%83%96%E3%83%AD%E3%82%B0%E8%A8%98%E4%BA%8B%E3%81%AB%E8%87%AA%E5%8B%95%E3%81%A7%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B/</guid>
      <description>昨日書いた記事の中でブログのカテゴリを設計した。 また、別の記事では、このブログを管理するhugoのメタデータを編集しやすくするクラスを作った。&#xA;ここではそれらを前提にしてChatGPTを利用し、ブログ記事にカテゴリを付与していく。&#xA;今回は後述のクラスを作った。&#xA;以下のように実行すると、カテゴリが自動で設定される。&#xA;editor = LlmEditor(post) editor.set_categories() import json from langchain import PromptTemplate from langchain.chat_models import ChatOpenAI from langchain.prompts.chat import HumanMessage # あらかじめ用意したカテゴリとその説明 CATEGORIES = { &amp;#34;ブログ構築記録&amp;#34;: &amp;#34;ブログを構築する過程で得た知見を記録する&amp;#34;, &amp;#34;新技術の試用&amp;#34;: &amp;#34;新しい技術を試してみた結果を記録する&amp;#34;, &amp;#34;DIYシステム&amp;#34;: &amp;#34;自作したシステムの構築過程を記録する&amp;#34;, &amp;#34;日常の気づき&amp;#34;: &amp;#34;日常の中で気づいたことを記録する&amp;#34;, &amp;#34;草の根活動報告&amp;#34;: &amp;#34;草の根活動の報告を記録する&amp;#34;, &amp;#34;個人活動の振り返り&amp;#34;: &amp;#34;個人活動の振り返りを記録する&amp;#34;, } # カテゴリーを選択するプロンプト GET_CATEGORIES_PROMPT = &amp;#34;&amp;#34;&amp;#34; Set categories for text separated by triple backsticks. Provide in JSON format with the following key: categories Constraint: Categories must be one or more but not more than two of the following.</description>
    </item>
    <item>
      <title>このブログでのヘッダーメニューの追加の方法</title>
      <link>https://mtb-production.info/posts/2023/07/16/%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E3%81%AE%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%81%AE%E6%96%B9%E6%B3%95/</link>
      <pubDate>Sun, 16 Jul 2023 21:11:38 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/16/%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E3%81%AE%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%81%AE%E6%96%B9%E6%B3%95/</guid>
      <description>config.toml に以下の設定を追加すると、ヘッダーのメニューが追加できる&#xA;[[languages.ja.menu.main]] name = &amp;#34;Tags&amp;#34; weight = 3 url = &amp;#34;tags/&amp;#34; ただし、現時点ではタグやカテゴリが整理できていないので、整理できたのちに追加する。</description>
    </item>
    <item>
      <title>hugoの形式で書いた記事のメタデータをプログラムから扱う</title>
      <link>https://mtb-production.info/posts/2023/07/15/hugo%E3%81%AE%E5%BD%A2%E5%BC%8F%E3%81%A7%E6%9B%B8%E3%81%84%E3%81%9F%E8%A8%98%E4%BA%8B%E3%81%AE%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%8B%E3%82%89%E6%89%B1%E3%81%86/</link>
      <pubDate>Sat, 15 Jul 2023 22:46:12 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/15/hugo%E3%81%AE%E5%BD%A2%E5%BC%8F%E3%81%A7%E6%9B%B8%E3%81%84%E3%81%9F%E8%A8%98%E4%BA%8B%E3%81%AE%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%8B%E3%82%89%E6%89%B1%E3%81%86/</guid>
      <description>hugoの形式で書いた記事のMetadataをプログラムから扱いたい。&#xA;一つ前の記事で、ブログのカテゴリーやタグの方針について書いた。 しかし、どう考えても手作業でそれを管理していくのは無理である。 なので、ここでは自動でカテゴリーやタグを設定する方法を考える。&#xA;自動でタグやカテゴリーを設定する方法を考える前に、プログラムから簡単にタグやカテゴリーを設定する方法を確立しておきたい。&#xA;前提知識 hugoでは、記事のメタデータは各記事ファイルに埋め込むことができる。 そのメタデータは front-matterと呼ばれる。&#xA;https://gohugo.io/content-management/front-matter/&#xA;front-matterは、yaml、toml、またはjsonで記述することができる。このブログの場合はtoml形式を利用している。&#xA;例えば以下のようになる。&#xA;draft = true date = 2023-07-15T22:46:12+09:00 title = &amp;#34;hugoの形式で書いた記事のMetadataをプログラムから扱う&amp;#34; description = &amp;#34;&amp;#34; slug = &amp;#34;&amp;#34; authors = [] tags = [] categories = [] externalLink = &amp;#34;&amp;#34; series = [] Pythonでfront-matterを読み込み、編集して再書き込みする 以下のプログラムを動かしたところ、動くことが確認できた。 といってもほとんどChatGPTに書いてもらっている。&#xA;from pathlib import Path import toml BASE_DIR = Path(__file__).resolve().parent.parent def read_front_matter(file_path): &amp;#34;&amp;#34;&amp;#34; front_matterを読み込む &amp;#34;&amp;#34;&amp;#34; with open(file_path, &amp;#34;r&amp;#34;) as file: lines = file.readlines() # ファイルの先頭から&amp;#39;+++&amp;#39;で囲まれた部分を抽出 front_matter_lines = [] content_start_index = 0 for i, line in enumerate(lines): if line.</description>
    </item>
    <item>
      <title>このブログにおけるカテゴリーとタグの設計</title>
      <link>https://mtb-production.info/posts/2023/07/15/%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%81%A8%E3%82%BF%E3%82%B0%E3%81%AE%E8%A8%AD%E8%A8%88/</link>
      <pubDate>Sat, 15 Jul 2023 21:57:42 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/15/%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%81%A8%E3%82%BF%E3%82%B0%E3%81%AE%E8%A8%AD%E8%A8%88/</guid>
      <description>そもそもの疑問：タグとカテゴリーはどう使い分けるか このブログではカテゴリーとタグ、両方を設定できる。 どっちを設定すべきなのだろうか。 カテゴリーが一つしか設定できないのであれば、話はわかるが、カテゴリーは複数設定できる。&#xA;どのように使い分ければいいだろうか。&#xA;カテゴリーとタグのメリット・デメリット カテゴリーとタグのメリット・デメリットについてはすでにたくさん議論されているはずだ。 考えるのが面倒なので、ChatGPTに出力させた。&#xA;ブログにおいて、記事にカテゴリーを設定する場合とタグを設定する場合のメリットデメリットを整理してください。出力結果はマークダウンとしてください。&#xA;ChatGPTの結果を自分が読みやすいように整理し、口調を断定型にしたものが以下である。&#xA;カテゴリー メリット&#xA;整理と構造: カテゴリーはブログの内容を整理し、構造を提供する。これにより、読者は特定のトピックに関連するすべての投稿を簡単に見つけられる。 SEOの強化: カテゴリーページは特定のキーワードに関連するコンテンツの集合体として機能し、検索エンジン最適化（SEO）に役立つ。 ナビゲーション: カテゴリーはサイトのナビゲーションを強化し、ユーザビリティを向上させる。 デメリット&#xA;過度の一般化: カテゴリーは通常、一般的なトピックをカバーする。特定のニッチな内容の詳細な分類するのには不適切なことが多い。&#xA;カテゴリーの乱用: 多くのカテゴリーを設定しすぎると、ブログが乱雑に見える。ユーザーが探している情報を見つけるのが難しくなる。&#xA;タグ メリット&#xA;細分化: タグは記事をより具体的なトピックやアイデアに関連付けられる。非常に特定の主題に興味を持つ読者にとって有用。 関連性: タグを使用すると、関連する記事を互いにリンクさせることができる。これにより、読者は関連する他の記事を簡単に見つけられる。 柔軟性: タグは非常に柔軟であり、記事をさまざまな方法で関連付けられる。 デメリット&#xA;タグの乱用: 多くのタグを使いすぎると、ブログが混乱し、見づらくなる。また、タグを一貫して使用しないと、効果が薄れる。&#xA;SEOの問題: タグが適切に管理されていない場合、それは重複コンテンツの問題を引き起こす。SEOに悪影響を与える。&#xA;タグとカテゴリーの使い分け計画 どちらを使う場合も、計画が重要で乱用すると、悪影響を引き起こすことがわかった。&#xA;タグとカテゴリーの使い分け計画を考えていきたい。しかし、この手の話題はインターネット上にたくさんあるはずなので、ChatGPT先生に考えてもらおう。&#xA;ブログ記事を整理したいと考えています。タグとカテゴリーの両方が使えるため、タグとカテゴリーの使い分け計画を立てていきたいです。計画を作成してもらえますか？また、計画を立てるために必要な情報があれば、質問を返してもらえますか？&#xA;以下は、ChatGPT先生による計画である。文章は私が読みやすいように私の主観で編集している。&#xA;ブログ記事の整理のために必要な情報 ブログの内容: ブログはどのような主題について書かれているか。その主題は大きく何つかのカテゴリーに分けられるか。 記事の数と頻度: どのくらいの頻度で投稿を行っているか。既に公開済みの記事の数はどれくらいあるか。 読者の関心: 読者はどのようなトピックに特に興味を持っているか。どの記事が最も人気があるか。 SEOの目標: あなたのSEOの目標は何か。特定のキーワードを強調したいか。 カテゴリーの計画 ブログの主要なテーマを基に、3-7つの主要なカテゴリーを作成する。これらは、ブログがカバーする主要なトピックを表す。 新しい記事を書くたびに、それが最も関連性が高いカテゴリーに割り当てる。あまりに多くのカテゴリーに記事を割り当てると混乱を招くので、1つか2つのカテゴリーに限定する。 SEOの観点から、各カテゴリーはあなたが検索エンジンでランク付けしたい特定のキーワードに関連するようにする。 タグの計画 記事の特定の詳細に関連したタグを作成する。これらは、記事の中で取り上げた特定のサブトピックやアイディアを表す。 記事に対して複数のタグを割り当てることができるが、適切なタグを使用することが重要。タグは関連する記事を一緒に束ねるため、あまりにも多くのタグを使用すると混乱を招く。 タグは一貫性を持って使用する。同じ概念に対して複数の異なるタグを使用しないようにする。また、使用頻度の低いタグを作成しないように注意。 タグとカテゴリーの設計 まず、ブログ記事を整理するために、必要な情報を抽出した。&#xA;内容 情報 ブログの内容 既存の知り合いに伝えたい情報ではないが、インターネット上においておくと誰かの役に立つ可能性がある情報を書いている。ブログ構築記録や新技術のお試しログ、DIYシステム、日常の気づき、草の根活動報告、個人的な活動の振り返り 記事の数と頻度 現時点では19しか記事がない。執筆の頻度は非常にムラがある。1日に数回更新する時もあれば、更新が半年開くこともある。 読者の関心 わからない。現時点ではこのブログのアクセス解析をとっていない。また検索エンジンにも登録していない SEOの目標 現時点で明確ではない。 ブログ内容をもとにカテゴリーは以下の6つに設定する。</description>
    </item>
    <item>
      <title>Hugoのテーマを編集したい</title>
      <link>https://mtb-production.info/posts/2023/07/15/hugo%E3%81%AE%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%97%E3%81%9F%E3%81%84/</link>
      <pubDate>Sat, 15 Jul 2023 21:22:38 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/15/hugo%E3%81%AE%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%97%E3%81%9F%E3%81%84/</guid>
      <description>Hugoのテーマを編集したい。ふとそう思った。現在、自分がどんなテーマを使っていて、何ができるのかすらわかっていない。まずは現状を把握して何ができるのか、を把握していきたい。&#xA;前提として、このブログはHugoで動いている。記事もHugoで管理している。そして表示は何らかのテーマを利用している。&#xA;Hugoのテーマはどこに設定するのか インターネットを検索していると、どうやら config.toml の theme に設定するらしい。&#xA;私の config.toml を確認すると以下のように設定している。&#xA;theme = &amp;#34;hugo-coder&amp;#34; もはや覚えていないが、このテーマを過去の私が設定したようだ。&#xA;リポジトリはこれだろう&#xA;https://github.com/luizdepra/hugo-coder/&#xA;Hugo-coderというテーマについて Webサイトには、 A simple and clean blog theme for Hugo. と書いてある。&#xA;このページにさまざまな設定が書いてあるので眺めた。&#xA;https://github.com/luizdepra/hugo-coder/blob/main/docs/configurations.md&#xA;眺めた結果、自分がそもそもの話としてHugoについて詳しくないことがわかってきた&#xA;これから とりあえずHugoについてもう少し調べてみようと思う。 現状、雰囲気でこのページを作っているので、いじり方もよくわからない。</description>
    </item>
    <item>
      <title>久しぶりにこのブログを更新しておく</title>
      <link>https://mtb-production.info/posts/2023/07/15/%E4%B9%85%E3%81%97%E3%81%B6%E3%82%8A%E3%81%AB%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F/</link>
      <pubDate>Sat, 15 Jul 2023 21:18:30 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2023/07/15/%E4%B9%85%E3%81%97%E3%81%B6%E3%82%8A%E3%81%AB%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F/</guid>
      <description>久しぶりにこのブログを更新したい。生存確認のための更新。まだこのブログを更新するつもりはあるぞ、という気持ち。&#xA;ただ、何を更新すればいいかわからない。このブログを誰が読んでいるのかわからないし、何が求められているのかもわからない。&#xA;そもそも、このブログを書く理由についても自分で整理できていない。他にもブログを書く場所はたくさん持っている。あえてここに書く理由はなんなのだろうか。&#xA;すぐに思い浮かぶ理由としては記事をリポジトリで管理していることにある。記事をリポジトリで管理しているのでコンテンツを自分が所有している感が強い。なんらかのプラットフォームに自分で投稿したコンテンツはどうも自分が所有している感じが少ない。</description>
    </item>
    <item>
      <title>別で思考実験用のブログを作った</title>
      <link>https://mtb-production.info/posts/2022/11/20/%E5%88%A5%E3%81%A7%E6%80%9D%E8%80%83%E5%AE%9F%E9%A8%93%E7%94%A8%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F/</link>
      <pubDate>Sun, 20 Nov 2022 22:59:57 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2022/11/20/%E5%88%A5%E3%81%A7%E6%80%9D%E8%80%83%E5%AE%9F%E9%A8%93%E7%94%A8%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F/</guid>
      <description>久しぶりにこのページを見た。&#xA;もう少しこのページも更新しておきたいと思っている。 漠然とブログを書いておくのは好きだからだ。&#xA;最近、実はここと別にWordPressのブログを作ってみた。 なぜ、WordPressのブログを？という部分は別のブログに書いた。 彼方は思考実験のような部分があるので、こちらに書かなくてもいいようなことを書いている。&#xA;ここには、活動の記録を書いておきたい。</description>
    </item>
    <item>
      <title>ブログを書く意味について改めて</title>
      <link>https://mtb-production.info/posts/2022/06/01/%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E6%9B%B8%E3%81%8F%E6%84%8F%E5%91%B3%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%94%B9%E3%82%81%E3%81%A6/</link>
      <pubDate>Wed, 01 Jun 2022 00:25:59 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2022/06/01/%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E6%9B%B8%E3%81%8F%E6%84%8F%E5%91%B3%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%94%B9%E3%82%81%E3%81%A6/</guid>
      <description>ブログを書く意味が見出せてなくなってきた。 ブログを書かなくてもいいのではないか、と思い始めている。&#xA;改めて、自分に問いかけたくなった。&#xA;「ブログを書く意味があるのだろうか」&#xA;少し考えたところ、ブログを書かないと外との交流がなくなると感じた。 しかし、ブログを書いたからといって外部との交流があるわけではない。 ブログを書いていることで外部との交流を諦めていないと自分に言い聞かせているように思う。&#xA;外界との交流がなくなると自分はちっぽけだと感じていく。 だから、交流は必要だ。 ただし、外部との交流はインターネット上での活動だけで行う必要はない。&#xA;最近の話で言えば、テニスを始めた。 テニスについての情報を気晴らしにツイートをまとめるため、Twitterのテニスアカウントを作った。 また、 テニスアカウントを作って色んな人と交流を始めた。&#xA;テニスアカウントを作ったところ、発信に対してたくさんのいいねがついた。 一つのツイートに対して「いいね」の数は少なくても10はある。 この状況に少し驚いた。&#xA;丹精込めた自分が書いたブログ記事の閲覧数は10より少ない事がある。 雑に作ったテニスアカウントの方が閲覧数がはるかに多い。 自分は何をしていたんだろう、と思った。&#xA;そうすると、自分はもっと特殊なメディアを立ち上げるべきではないか、という考えが浮かぶ。 社会とのつながりを求めて、インターネット上で発信しているのだとすれば、個人メディアとしてブログを書くのではなく、もっと特殊なカテゴリで記事を書くべきではないだろうか。 そもそも、個人メディアを誰が読むのか。&#xA;特殊なメディアを立ち上げることを考えるとどうなるか。 例えば、記事を書くとして、読者は誰なのか、どれくらいの頻度で記事を書くだろうか。&#xA;改めて思う。自分は個人でブログを書く意味はあるだろうか。</description>
    </item>
    <item>
      <title>Javaのビルドに関係する用語を調べた　</title>
      <link>https://mtb-production.info/posts/2021/12/31/java%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E3%81%AB%E9%96%A2%E4%BF%82%E3%81%99%E3%82%8B%E7%94%A8%E8%AA%9E%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%9F/</link>
      <pubDate>Fri, 31 Dec 2021 10:20:48 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/12/31/java%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E3%81%AB%E9%96%A2%E4%BF%82%E3%81%99%E3%82%8B%E7%94%A8%E8%AA%9E%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%9F/</guid>
      <description> 目的 Javaのビルドについて理解したい。 そのために、関係する用語の意味を調べて整理したい。 背景 諸々の状況があって、Javaのビルドの仕組みについて調べ始めた。 Javaのビルドについて調べる中で、不明な用語が多数あることに気づいた。 ここでは、Javaのビルドに関係する用語を調べて整理しておく。 調査結果 Apache Ant OSに依存しないJava開発をターゲットにしたOSSのビルドツール。元々、Apache Tomcatのビルド用ツールとして作られた。 開発者は、ビルドに関する作業を「タスク」としてXMLのビルドファイルに定義する。それをAntで実行してビルドする。 Java開発の大規模化・複雑化により厳しくなったため、Apache Mavenが開発された。 Apache Maven ビルドツール。Java開発のデファクトスタンダード。Eclipseに組み込まれている。InteliJも対応している。 開発者は、ビルドに関する作業内容は定義せず、作業目的をXMLのビルドファイルに定義する。それをMavenが読み込んでビルドする。 Mavenはビルドのために必要なソフトウェアをリポジトリからダウンロードして利用する。 Apache Ivy Apache Antのサブプロジェクトで、依存ライブラリの管理ツール。 ビルドに必要なリソースの依存関係を管理し、適切にダウンロードして利用する。 機能はApache Mavenと競合している。 Groovy JVM上で動作するOSSのスクリプト言語。現在は、Apache Software Foundationで管理されている。 Groovyは内部でJavaのAPIを呼び出すため、JVMから見れば両方Javaに見える。 JavaのフレームワークでGroovyをサポートしているものもある。例えば、Spring Frameworkは、Groovyをサポートしている。 Gradle Groovyのビルドツール。Gradle.IncにOSSとして開発されている。InteliJが対応している。 Apache Ant/Apache Mavenの考え方を引き継いでいるビルドツールだが、設定ファイルをXMLではなくGroovyで記述できる。 Apache Antを呼び出せたり、Mavenの設定ファイルをGradle用に変換できたり、別のビルドツールから移行しやすい。 Scala 主にJVM上で動作するマルチプラットフォームのプログラミング言語。 ScalaはJVMで動作する。Scala.jsを利用すればScalaをJavaScriptにトランスパイルする。 また、Scala Nativeを利用すれば、 JVMなしで動作できる。 sbt Scalaのビルドツール。&#x9;Scalaコミュニティのデファクトスタンダード。Lightbend.Incにて、OSSとして開発されている。 設定ファイルをScalaベースのDSLで記述する。 変更を加えたファイルのみの再コンパイルやテスト自動実行などをサポートしている。 Bazel Googleが開発するOSSのビルドツール。 Javaだけでなくさまざまな言語に多く対応している。（Python, Groovy, Scala, C#&amp;hellip;） ビルドファイルはStarlark言語（Pythonの方言）を利用して記述する。 クラウド上での分散並列ビルドを実現しており、非常に大規模なリポジトリで高速なビルドを行えるように設計されている。 参考資料 Javaビルドツール入門 </description>
    </item>
    <item>
      <title>React（Create React App=CRA）とNext.jsは何が違うのか</title>
      <link>https://mtb-production.info/posts/2021/12/30/reactcreate-react-appcra%E3%81%A8next.js%E3%81%AF%E4%BD%95%E3%81%8C%E9%81%95%E3%81%86%E3%81%AE%E3%81%8B/</link>
      <pubDate>Thu, 30 Dec 2021 16:58:16 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/12/30/reactcreate-react-appcra%E3%81%A8next.js%E3%81%AF%E4%BD%95%E3%81%8C%E9%81%95%E3%81%86%E3%81%AE%E3%81%8B/</guid>
      <description>目的 React（Create React App=CRA）とNext.jsは何が違うのかを調べて整理する。 背景 CRAで作ったReactアプリは何となく雰囲気で動かせるようになってきた人が、Next.jsに関わるケースがあると思います。 そしてその際、CRAで作ったReactアプリの知識のうち、何を流用できる/できない、また注意点は何かを素早く知りたい状況になると思います。 ここではそのようなケースに遭遇した際に参考になる記事を書きます。 概要 URL 公式: https://nextjs.org/ docs: https://nextjs.org/docs/getting-started リポジトリ: https://github.com/vercel/next.js npm: https://www.npmjs.com/package/next Next.jsにできること 適切な場所でレンダリングするサービスを提供できる。 CRAで作ったReactアプリのように、アプリケーションをブラウザ上でレンダリングできる。 サーバーサイドアプリのように、アプリケーションをリクエスト時でレンダリングできる。（いわゆるSSR） 静的サイトジェネレータのように、ビルド時にレンダリングできる。（いわゆるSSG） 対象のコンポーネントへTS/JSファイルのパスでルーティングできる CRAで作ったReactアプリでは、react-router-domなどの3rd pathyライブラリを利用して、Componentへルーティングするのが一般的。 Next.jsではpageディレクトリ配下にあるTS/JSファイルにルーティングされる。 ファイルパスを pages/post/[pid].js などと指定することで、動的にルーティングできる。 Dynamic Routes 画像をトリミングして配信できる Next.jsのコンポーネントを利用して画像をJSXに定義すると、トリミングして配信されるらしい。 Image Component and Image Optimization Rustコンパイラでビルドできる（Next.js ver12.0 ~） ローカルでのリフレッシュが3倍速、プロダクションビルドが5倍速らしい。参考: Next.js 12について本気出して和訳してみた 注意点 Reactはライブラリで、Next.jsはフレームワークである。 Reactは仮想DOMを扱うためのユーティリティライブラリだが、Next.jsはフレームワーク。 Reactは利用者が、必要なライブラリを選んだり構造を検討する必要がある。ポジティブにいうと自由度がある。 Next.jsは、SSR／SSGのフレームワークなので、構造は決まっていたりお作法がある。ポジティブにいうと規律がある。 Next.jsはサービスになる。 Reactアプリをデプロイする場合、ビルドしてJSファイルを取得し、別のHTTPサーバーが配信するように思う。（もしくはそのままserveするか） Next.jsアプリをデプロイする場合、ビルドして静的な情報を配置し、Next.jsをサービスとして起動して、Next.jsが配信する。 Next.jsでページ共通処理を入れるとき、Custom Appという機能を使う必要がある Next.jsはファイルベースでルーティングするので、Reactで言うところのRouter／Switchコンポーネントがない。 Reactなら共通処理はSwitchの外に定義するが、Next.jsの場合は、Custom Appを利用する。 普通のReactで動くライブラリがそのまま動かないケースがある。 動かない理由までは追ってないが、Dynamic Importという機能を使うと良いらしい。 情報源と解決Tips CSSモジュールを使っている際に、ブラウザ読み込み時にCSSが当たるのが遅れる。 情報源と解決Tips Next.jsでHTTPサービスを起動でき、Nginx等でリバースプロキシして利用する SSRするので当然ですが、そのままHTTPサーバーになります。 PythonならWSGI、RubyならRack、PerlならPSGIみたいなものがありますが、そういうのはない。 Next.jsのお作法は学ぶ必要がある 例えば getStaticPaths getStaticProps getServerSideProps がそれぞれどういう処理の流れになってるかなど。 所感・感想 最初 React / Next.</description>
    </item>
    <item>
      <title>自宅で使えるサーバーを作りたいと思った</title>
      <link>https://mtb-production.info/posts/2021/09/04/%E8%87%AA%E5%AE%85%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84%E3%81%A8%E6%80%9D%E3%81%A3%E3%81%9F/</link>
      <pubDate>Sat, 04 Sep 2021 02:17:04 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/09/04/%E8%87%AA%E5%AE%85%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84%E3%81%A8%E6%80%9D%E3%81%A3%E3%81%9F/</guid>
      <description>ふと、自宅でのみ使えるサーバーを作りたいと思った。&#xA;きっかけとしては、以下の三つ。&#xA;古いMacBookProが余っていること。 先々月から個人用RedmineをAWS環境に立てているのだけど、費用が1800円/月くらいかかってたこと Redmineにアクセスするのは基本的に自宅にいる時なので、自宅からアクセスできれば良いんじゃね？と思ったこと。 ぼんやりと以下のような流れでできないだろうか、と思った。&#xA;MacBookProサーバーに自宅のルーターとゴニョゴニョして常に同じローカルIPを割り当てる MacBookProサーバーにUbuntuを入れてRedmineを立てる。 クライアントにするマシンのhostsにMacBookProサーバーへのローカルIPのルーティングを書く。 クライアントマシンから接続する。MacBookProサーバーは、適切にホスト名とポートを制限する。 想像なので、実際にやれるかどうかは、これから調べてみる。&#xA;ここまで書いておいて気づいたそもそもの話だが、良く考えたらAWS環境に立てているRedmineはECのオンデマンドインスタンスになっているので、スポットインスタンスに切り替えたらもっと安くなるのだろうか。&#xA;AWSの勉強も兼ねてその辺を考えてみても良いのかもしれない。</description>
    </item>
    <item>
      <title>Contact</title>
      <link>https://mtb-production.info/contact/</link>
      <pubDate>Mon, 30 Aug 2021 22:15:52 +0900</pubDate>
      <guid>https://mtb-production.info/contact/</guid>
      <description>mail: tatsuya.matoba.wk.jp [at] gmail.com&#xA;もしくは、TwitterのDMまでご連絡ください。</description>
    </item>
    <item>
      <title>SOFT SKILLSを再度、ざっと読んでみた</title>
      <link>https://mtb-production.info/posts/2021/08/30/soft-skills%E3%82%92%E5%86%8D%E5%BA%A6%E3%81%96%E3%81%A3%E3%81%A8%E8%AA%AD%E3%82%93%E3%81%A7%E3%81%BF%E3%81%9F/</link>
      <pubDate>Mon, 30 Aug 2021 19:25:43 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/30/soft-skills%E3%82%92%E5%86%8D%E5%BA%A6%E3%81%96%E3%81%A3%E3%81%A8%E8%AA%AD%E3%82%93%E3%81%A7%E3%81%BF%E3%81%9F/</guid>
      <description>先日、SOFT SKILLSについて読書をした。 その際に、気になった箇所を書き出しており、その書き出した箇所はまとめた。&#xA;再び時間が15分ほど取れそうな状況になった。改めてSOFT SKILLSをざっと眺めてみた。&#xA;今、気になる項目を列挙しておく。&#xA;成功するブログの作り方 SNSの使い方 給料の運用 給与交渉の方法 この辺を気が向いたときに、読んで整理していく。</description>
    </item>
    <item>
      <title>過去に読んだ本をもう一度読むと気づきがある</title>
      <link>https://mtb-production.info/posts/2021/08/30/%E9%81%8E%E5%8E%BB%E3%81%AB%E8%AA%AD%E3%82%93%E3%81%A0%E6%9C%AC%E3%82%92%E3%82%82%E3%81%86%E4%B8%80%E5%BA%A6%E8%AA%AD%E3%82%80%E3%81%A8%E6%B0%97%E3%81%A5%E3%81%8D%E3%81%8C%E3%81%82%E3%82%8B/</link>
      <pubDate>Mon, 30 Aug 2021 19:18:10 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/30/%E9%81%8E%E5%8E%BB%E3%81%AB%E8%AA%AD%E3%82%93%E3%81%A0%E6%9C%AC%E3%82%92%E3%82%82%E3%81%86%E4%B8%80%E5%BA%A6%E8%AA%AD%E3%82%80%E3%81%A8%E6%B0%97%E3%81%A5%E3%81%8D%E3%81%8C%E3%81%82%E3%82%8B/</guid>
      <description>過去に読んだ本をもう一度読む活動の良さを体験した。&#xA;以前読んだ時とは、違う印象を得た。&#xA;自分の場合、興味がある箇所しか読まないことが関係している。 状況が変わった後に再び本を読むと、気づくことが変わる。&#xA;定期的に自分の本棚を眺めて、知識をアップデートしていきたい。</description>
    </item>
    <item>
      <title>いくつかカジュアル面談を受けてきた</title>
      <link>https://mtb-production.info/posts/2021/08/30/%E3%81%84%E3%81%8F%E3%81%A4%E3%81%8B%E3%82%AB%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E9%9D%A2%E8%AB%87%E3%82%92%E5%8F%97%E3%81%91%E3%81%A6%E3%81%8D%E3%81%9F/</link>
      <pubDate>Mon, 30 Aug 2021 19:11:31 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/30/%E3%81%84%E3%81%8F%E3%81%A4%E3%81%8B%E3%82%AB%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E9%9D%A2%E8%AB%87%E3%82%92%E5%8F%97%E3%81%91%E3%81%A6%E3%81%8D%E3%81%9F/</guid>
      <description>カジュアル面談をいくつか受けた。&#xA;受けていく中で、自分のやりたいことをや模索中のこと何度も説明することになった。 何度も説明する中で、自分のやりたいことや考えていること、状況がはっきりしてきた。&#xA;先日、SOFT SKILLSを読んだが、今では気になる箇所が変わっているように思う。&#xA;もう一度読んでみても良さそう。&#xA;また、カジュアル面談を受けて気づいたことを書き出したい。 ただ、気づいたことが多すぎるので、別の機会に書いていきたい。</description>
    </item>
    <item>
      <title>hugoで内部リンクを貼る</title>
      <link>https://mtb-production.info/posts/2021/08/28/hugo%E3%81%A7%E5%86%85%E9%83%A8%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E8%B2%BC%E3%82%8B/</link>
      <pubDate>Sat, 28 Aug 2021 19:17:43 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/28/hugo%E3%81%A7%E5%86%85%E9%83%A8%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E8%B2%BC%E3%82%8B/</guid>
      <description>hugoで内部リンクを貼る方法をメモ。&#xA;[内部リンク]({{&amp;lt; ref &amp;#34;/posts/target.md&amp;#34; &amp;gt;}}) 以下を参考にさせていただいた。&#xA;https://hugo.nakaken88.com/use/internal-link/</description>
    </item>
    <item>
      <title>hugo-coderで日本語フォントを設定する</title>
      <link>https://mtb-production.info/posts/2021/08/27/hugo-coder%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/</link>
      <pubDate>Fri, 27 Aug 2021 02:08:16 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/27/hugo-coder%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/</guid>
      <description>hugo-coderのフォントが日本語ではない。&#xA;日本語フォントに変えたいと思った。&#xA;Google FontよりNoto Sans JPを選択して追加した。&#xA;やったこと&#xA;config.tomlにcustomCSSの設定を追加。 static配下に設定したCSSを追加 差分の例&#xA;--- a/hugo/config.toml +++ b/hugo/config.toml @@ -42,7 +42,7 @@ maxSeeAlsoItems = 5 # Enable Twemoji enableTwemoji = false # Custom CSS -customCSS = [] +customCSS = [&amp;#34;css/custom_style.css&amp;#34;] # Custom SCSS customSCSS = [] # Custom JS 追加したcssは次のファイル。とりあえず気になったところを上書きしている。&#xA;body { font-family: &amp;#39;Noto Sans JP&amp;#39;, sans-serif; } h1 { font-family: &amp;#39;Noto Sans JP&amp;#39;, sans-serif; } .list ul li .title { font-family: &amp;#39;Noto Sans JP&amp;#39;, sans-serif; } 以下のStackOverflowを見ると、 custom_css というパラメータで指定しても動く様子。 ただ、hugoのexample configだとcustomCSSというパラメータだったので、今回はこちらを採用した。</description>
    </item>
    <item>
      <title>hugoの言語に日本語を設定する</title>
      <link>https://mtb-production.info/posts/2021/08/27/hugo%E3%81%AE%E8%A8%80%E8%AA%9E%E3%81%AB%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/</link>
      <pubDate>Fri, 27 Aug 2021 01:49:54 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/27/hugo%E3%81%AE%E8%A8%80%E8%AA%9E%E3%81%AB%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/</guid>
      <description>config.toml を以下のように修正した。&#xA;+++ b/hugo/config.toml @@ -2,7 +2,7 @@ baseURL = &amp;#34;http://www.example.com&amp;#34; theme = &amp;#34;hugo-coder&amp;#34; -languageCode = &amp;#34;en&amp;#34; +languageCode = &amp;#34;ja&amp;#34; -defaultContentLanguage = &amp;#34;en&amp;#34; +defaultContentLanguage = &amp;#34;ja&amp;#34; paginate = 20 ... -[languages.en] + +[languages.ja] languageName = &amp;#34;:uk:&amp;#34; -[[languages.en.menu.main]] +[[languages.ja.menu.main]] name = &amp;#34;About&amp;#34; weight = 1 url = &amp;#34;about/&amp;#34; -[[languages.en.menu.main]] +[[languages.ja.menu.main]] name = &amp;#34;Blog&amp;#34; weight = 2 url = &amp;#34;posts/&amp;#34; -[[languages.en.menu.main]] +[[languages.ja.menu.main]] name = &amp;#34;Projects&amp;#34; weight = 3 url = &amp;#34;projects/&amp;#34; -[[languages.en.menu.main]] +[[languages.</description>
    </item>
    <item>
      <title>「SOFT SKILLS ソフトウェア開発者の人生マニュアル」をざっと眺めた</title>
      <link>https://mtb-production.info/posts/2021/08/27/soft-skills-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E4%BA%BA%E7%94%9F%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%92%E3%81%96%E3%81%A3%E3%81%A8%E7%9C%BA%E3%82%81%E3%81%9F/</link>
      <pubDate>Fri, 27 Aug 2021 01:33:34 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/27/soft-skills-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E4%BA%BA%E7%94%9F%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%92%E3%81%96%E3%81%A3%E3%81%A8%E7%9C%BA%E3%82%81%E3%81%9F/</guid>
      <description>タイトルの通り。&#xA;30分ほど時間が取れたので、その時間の中でざっと全体を眺めた。 詳細は読んでおらず、トピックと分量、流れを見た。&#xA;ソフトウェア開発者として、独立する話や、自分を売り込む話があるのが印象的だった。&#xA;次は、独立の項目、製品開発の項目、マーケティング基礎、ブランドについて読んでいく。</description>
    </item>
    <item>
      <title>足跡出版 2021年8月近況報告会</title>
      <link>https://mtb-production.info/posts/2021/08/27/%E8%B6%B3%E8%B7%A1%E5%87%BA%E7%89%88-2021%E5%B9%B48%E6%9C%88%E8%BF%91%E6%B3%81%E5%A0%B1%E5%91%8A%E4%BC%9A/</link>
      <pubDate>Fri, 27 Aug 2021 01:29:55 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/27/%E8%B6%B3%E8%B7%A1%E5%87%BA%E7%89%88-2021%E5%B9%B48%E6%9C%88%E8%BF%91%E6%B3%81%E5%A0%B1%E5%91%8A%E4%BC%9A/</guid>
      <description>岸と二人で開催した。&#xA;最近、どうですかの雑談をした。&#xA;現状、サークルとして集まって何かをするのは、時間的に難しい。 定期的に近況報告会をやっていく話となった。</description>
    </item>
    <item>
      <title>VimにTypeScriptの補完を入れる</title>
      <link>https://mtb-production.info/posts/2021/08/26/vim%E3%81%ABtypescript%E3%81%AE%E8%A3%9C%E5%AE%8C%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B/</link>
      <pubDate>Thu, 26 Aug 2021 13:33:52 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/26/vim%E3%81%ABtypescript%E3%81%AE%E8%A3%9C%E5%AE%8C%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B/</guid>
      <description>導入 こちらを入れました。 https://github.com/Quramy/tsuquyomi&#xA;参考にしたサイトはこちら。 https://honmushi.com/2020/04/04/tsukuyomi-vim-ts/&#xA;よく使いそうなコマンドのメモ 定義ジャンプ: Control + ] 定義ジャンプの後に戻る: Control + t 複数回ジャンプした後に戻れそう</description>
    </item>
    <item>
      <title>hugoのテーマをhugo-coderに切り替えました</title>
      <link>https://mtb-production.info/posts/2021/08/25/hugo%E3%81%AE%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92hugo-coder%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%BE%E3%81%97%E3%81%9F/</link>
      <pubDate>Wed, 25 Aug 2021 23:47:16 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/25/hugo%E3%81%AE%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92hugo-coder%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%BE%E3%81%97%E3%81%9F/</guid>
      <description>タイトルの通り、テーマを切り替えました。&#xA;hugo-coder&#xA;シンプルで良い感じだと思っています。&#xA;少しずつコンテンツを追加していきたい所存。</description>
    </item>
    <item>
      <title>About</title>
      <link>https://mtb-production.info/about/</link>
      <pubDate>Wed, 25 Aug 2021 23:09:08 +0900</pubDate>
      <guid>https://mtb-production.info/about/</guid>
      <description>このWebサイトについて このウェブサイトでは、管理人 Tatsuya Matoba の活動に関する情報を公開しています。 主に、ウェブサイト制作、音楽制作、プログラミング、ソフトウェア開発に関する活動を扱います。&#xA;免責事項 本ウェブサイトに記載された内容は、管理人の活動に関する情報の開示を目的として掲載しています。 正確な情報を提供するよう努めていますが、内容の正確さを保証しません。 本ウェブサイトおよびリンク先からいかなる不利益が生じても、一切の責任を負いかねます。</description>
    </item>
    <item>
      <title>Goを少しだけ触ってみる</title>
      <link>https://mtb-production.info/posts/2021/08/22/go%E3%82%92%E5%B0%91%E3%81%97%E3%81%A0%E3%81%91%E8%A7%A6%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/</link>
      <pubDate>Sun, 22 Aug 2021 23:35:13 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/22/go%E3%82%92%E5%B0%91%E3%81%97%E3%81%A0%E3%81%91%E8%A7%A6%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/</guid>
      <description>Goに触れる機会が多くなってきたように思う。 HugoもGoだし。&#xA;とりあえず、最低限の文法だけ書けるようになりたい。&#xA;30minだけ触ってみて記録を書いておく。&#xA;インストール インストール手順はここにありそう&#xA;ただ、手元のmacdでは入ってた。 これを使うことにする。&#xA;&amp;gt; go version go version go1.16.3 darwin/arm64 チュートリアル こちらのチュートリアルをこなしていく。&#xA;hello world go mod initでモジュールを作成する。これを実行しないとgo runなど使えない。&#xA;&amp;gt; go mod init example.com/hello go: creating new go.mod: module example.com/hello go: to add module requirements and sums: go mod tidy example.com/hello の部分は本来はモジュールを補完するパスを書く。 今回は暫定でチュートリアルの記載にしたがっている。&#xA;以下のgoのコードを書く。そして、runすると実行結果が得られる。&#xA;package main import &amp;#34;fmt&amp;#34; func main() { fmt.Println(&amp;#34;Hello, Hello!!&amp;#34;) } &amp;gt; go run . Hello, Hello!! fmtはGoの標準ライブラリらしい。 ここにドキュメントがある。&#xA;外部ライブラリを利用する 外部ライブラリを利用する場合、https://pkg.go.dev/ でライブラリを検索する。&#xA;importは以下のように書く。</description>
    </item>
    <item>
      <title>Hugo一つ目の記事</title>
      <link>https://mtb-production.info/posts/2021/08/17/hugo%E4%B8%80%E3%81%A4%E7%9B%AE%E3%81%AE%E8%A8%98%E4%BA%8B/</link>
      <pubDate>Tue, 17 Aug 2021 21:12:47 +0900</pubDate>
      <guid>https://mtb-production.info/posts/2021/08/17/hugo%E4%B8%80%E3%81%A4%E7%9B%AE%E3%81%AE%E8%A8%98%E4%BA%8B/</guid>
      <description>Hugoで一つ目の記事です。&#xA;Netlifyで記事を作成し始めたので、まず一つ投稿します。&#xA;記法チェックをしておきます。&#xA;hugoでは、マークダウンで記事が書けます。&#xA;箇条書き1 箇条書き2 箇条書き3 Pythonのコードを書くと以下のように表示されます。&#xA;import random for x in range(10): result = random.random() print(result) 今後は、技術記事を書いていきたい所存</description>
    </item>
    <item>
      <title>技術書典7「デザイナーはどうやって作るか」</title>
      <link>https://mtb-production.info/projects/techbookfest7/</link>
      <pubDate>Sun, 22 Sep 2019 11:00:00 +0900</pubDate>
      <guid>https://mtb-production.info/projects/techbookfest7/</guid>
      <description>足跡出版というサークルで技術書典7に出展しました。&#xA;前作の「IT実務のアンチパターン」シリーズのデザインを担当してくれた友人とともに、共著で新作を執筆しました。&#xA;「デザイナーはどうやって作るか」というタイトルの本で、デザイナーとエンジニアの共著になっています。&#xA;エンジニア目線では、デザイナーがデザインを作る際にどうやっているかをエンジニアの目線から質問して、理解した内容をまとめています。デザイナー目線では、非デザイナーに理解されにくいデザイナーの行動を説明していく内容になっています。</description>
    </item>
    <item>
      <title>技術書典6「IT実務のアンチパターン コミュニケーション編」</title>
      <link>https://mtb-production.info/projects/techbookfest6/</link>
      <pubDate>Sun, 14 Apr 2019 11:00:00 +0900</pubDate>
      <guid>https://mtb-production.info/projects/techbookfest6/</guid>
      <description>前回の技術書典5に引き続き技術書典6に出展しました。&#xA;サークル名を「mtbプロジェクト」から「足跡出版」に変えました。 活動の記録を整理して出していきたいという思いから名付けています。&#xA;前回頒布した「IT実務のアンチパターン プロジェクト計画編」が好評だったので増刷して頒布しました。 また、続編（というか、書ききれなかった内容）を「IT実務のアンチパターン コミュニケーション編」という形でまとめて頒布しました。&#xA;こちらも好評だったのでtogetterに口コミをまとめさせてもらいました。&#xA;書籍「IT実務のアンチパターン コミュニケーション編」まとめ #技術書典 #IT実務のアンチパターン</description>
    </item>
    <item>
      <title>技術書典5「IT実務のアンチパターン プロジェクト計画編」</title>
      <link>https://mtb-production.info/projects/techbookfest5/</link>
      <pubDate>Mon, 08 Oct 2018 11:00:00 +0900</pubDate>
      <guid>https://mtb-production.info/projects/techbookfest5/</guid>
      <description>技術書典5に出展しました。&#xA;mtbプロジェクトというサークルで、「IT実務のアンチパターン プロジェクト計画編」という名称の技術同人誌を頒布しました。&#xA;初めての技術書典への出展でした。&#xA;Twitterにて、好評なコメントをいただいたので、togetterにまとめさせてもらいました。&#xA;書籍「IT実務のアンチパターン プロジェクト計画編」まとめ #技術書典 #IT実務のアンチパターン</description>
    </item>
  </channel>
</rss>
