<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>カタツムリワークス ブログ</title><link>https://blog.katatsumuri.work/</link><description>Recent content on カタツムリワークス ブログ</description><generator>Hugo</generator><language>ja-jp</language><lastBuildDate>Wed, 09 Sep 2026 09:00:00 +0900</lastBuildDate><atom:link href="https://blog.katatsumuri.work/index.xml" rel="self" type="application/rss+xml"/><item><title>祝日 API を"消費"して稼働報告書を自動生成する ― Excel の数式を殺さずに祝日対応を差し込む</title><link>https://blog.katatsumuri.work/2026/09/09/excel-report-generator-consumes-holiday-api/</link><pubDate>Wed, 09 Sep 2026 09:00:00 +0900</pubDate><guid>https://blog.katatsumuri.work/2026/09/09/excel-report-generator-consumes-holiday-api/</guid><description>&lt;p&gt;前回、「消費者が LLM や表計算である前提で祝日 API を設計する」という producer 側の話を書きました。今回はその&lt;strong&gt;対になる consumer 側&lt;/strong&gt;、実際にその API を業務ツールから叩く実装記録です。&lt;/p&gt;</description></item><item><title>消費者が LLM な API を設計する ― 稼働表のための /calendar と isBusinessDay</title><link>https://blog.katatsumuri.work/2026/09/08/llm-friendly-calendar-api/</link><pubDate>Tue, 08 Sep 2026 09:00:00 +0900</pubDate><guid>https://blog.katatsumuri.work/2026/09/08/llm-friendly-calendar-api/</guid><description>&lt;p&gt;業務委託の&lt;strong&gt;稼働表&lt;/strong&gt;を Excel やスプレッドシートで作るとき、地味に面倒なのが「今月は何日が祝日か」を毎回調べることです。さらに最近は、&lt;strong&gt;その稼働表を LLM に作らせたい&lt;/strong&gt;とも思うようになりました。となると、人が眺めるための祝日一覧ではなく、&lt;strong&gt;叩いてそのまま渡せる API&lt;/strong&gt; が欲しくなります。&lt;/p&gt;</description></item><item><title>Rust + axum の自己紹介 API を Cloud Run に載せた話（Docker 化の人柱メモ）</title><link>https://blog.katatsumuri.work/2026/06/17/rust-axum-api-on-cloud-run/</link><pubDate>Wed, 17 Jun 2026 09:00:00 +0900</pubDate><guid>https://blog.katatsumuri.work/2026/06/17/rust-axum-api-on-cloud-run/</guid><description>&lt;p&gt;会社の自己紹介情報（会社概要・メンバー・サービスなど）を返す API を Rust + axum で書いて、Google Cloud Run に載せました。25.4MB のイメージで、コールドスタート 0.44 秒くらいで動いています。&lt;/p&gt;</description></item><item><title>Cloudflare をやめて Cloud Run にした話 ―「DNS を動かさない」という制約</title><link>https://blog.katatsumuri.work/2026/06/16/cloud-run-over-cloudflare/</link><pubDate>Tue, 16 Jun 2026 09:00:00 +0900</pubDate><guid>https://blog.katatsumuri.work/2026/06/16/cloud-run-over-cloudflare/</guid><description>&lt;p&gt;自己紹介 API（Rust + axum で書いています）を &lt;code&gt;api.katatsumuri.work&lt;/code&gt; で公開するとき、最初は Cloudflare Workers に載せるつもりでした。が、最終的に Google Cloud Run に切り替えています。&lt;/p&gt;
&lt;p&gt;技術的な優劣の話ではなく、&lt;strong&gt;「ドメインの DNS を動かせない」という制約&lt;/strong&gt;が決め手でした。同じような状況の人もいると思うので、判断の経緯を残しておきます。&lt;/p&gt;</description></item><item><title>submodule pointer の追従を GitHub Actions で自動化した話</title><link>https://blog.katatsumuri.work/2026/06/15/automate-submodule-pointer-bump/</link><pubDate>Mon, 15 Jun 2026 18:00:00 +0900</pubDate><guid>https://blog.katatsumuri.work/2026/06/15/automate-submodule-pointer-bump/</guid><description>&lt;p&gt;カタツムリワークスのリポジトリは、親リポジトリが &lt;code&gt;api&lt;/code&gt; / &lt;code&gt;blog&lt;/code&gt; / &lt;code&gt;web&lt;/code&gt; / &lt;code&gt;infra&lt;/code&gt; の 4 つを &lt;strong&gt;Git submodule&lt;/strong&gt; で束ねる構成にしています。便利なのですが、運用していると地味に面倒なことが一つありました。&lt;strong&gt;子リポジトリを更新するたびに、親の submodule pointer を手で追従させる必要がある&lt;/strong&gt;ことです。&lt;/p&gt;</description></item><item><title>ブログをはじめました</title><link>https://blog.katatsumuri.work/2026/06/12/hello/</link><pubDate>Fri, 12 Jun 2026 10:00:00 +0900</pubDate><guid>https://blog.katatsumuri.work/2026/06/12/hello/</guid><description>&lt;p&gt;合同会社カタツムリワークスのブログをはじめました。&lt;/p&gt;
&lt;p&gt;技術のことも雑談も、カタツムリらしく &lt;strong&gt;ゆっくり&lt;/strong&gt; 綴っていきます。
どうぞよろしくお願いします。&lt;/p&gt;
&lt;h2 id="このブログについて"&gt;このブログについて&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Hugo（テーマなし・自前レイアウト）で作っています&lt;/li&gt;
&lt;li&gt;飾りすぎず、文章の読みやすさを大事にしています&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-rust" data-lang="rust"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;fn&lt;/span&gt; &lt;span style="color:#6639ba"&gt;main&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;{&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;println!&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;Hello, カタツムリワークス!&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これからよろしくお願いします。&lt;/p&gt;</description></item></channel></rss>