<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>sui Tech Blog</title><description>Web開発に関する学習記録をまとめたブログです。</description><link>https://suntory-n-water.com/</link><language>ja</language><item><title>スマホ無し旅行のすゝめ</title><link>https://suntory-n-water.com/blog/no-smartphone-trip/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/no-smartphone-trip/</guid><description>スマートフォンの制限をかけても自分で突破してしまうから、物理的に持っていかない旅をしました。温泉地である越後湯沢の宿で1泊2日、本を読んでぼんやりしてきた感想です。</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate><category>旅行</category><category>ポエム</category></item><item><title>agent-browserがRustネイティブになった今、playwright-cliとどちらを選ぶべきか</title><link>https://suntory-n-water.com/blog/agent-browser-vs-playwright-cli-revisit/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/agent-browser-vs-playwright-cli-revisit/</guid><description>agent-browserがRustネイティブになった今、playwright-cliと改めて比較しました。-i -cオプションでトークン差が約6%まで縮まり、前回の「40%差」は実質解消。ネットワーク監視・diff機能も含めた現時点の選択基準を整理します。</description><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate><category>Playwright</category><category>agent-browser</category><category>AI</category></item><item><title>Cloudflare が WordPress の後継 CMS「EmDash」を作ったので触ってみる</title><link>https://suntory-n-water.com/blog/built-a-blog-site-with-cloudflare-emdash-and-access-control/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/built-a-blog-site-with-cloudflare-emdash-and-access-control/</guid><description>Cloudflare EmDashのマーケティングテンプレートをベースに、ブログ機能の移植、seed反映の確認、デザイン調整、Cloudflare Accessによる管理画面保護まで試した内容をまとめました。</description><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate><category>Cloudflare</category><category>CMS</category><category>Astro</category><category>TypeScript</category></item><item><title>Claude Code の待ち時間にアニメのセリフを流したくて OSS を作った</title><link>https://suntory-n-water.com/blog/cc-spinner-customize-claude-code-spinner-verbs/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/cc-spinner-customize-claude-code-spinner-verbs/</guid><description>Claude Code の処理中に表示される Spinner Verbs をカスタマイズできる CLI ツール「cc-spinner」を作りました。アニメのセリフを入れたら記憶が蘇る体験ができるのではと思い、1日で形にしました。</description><pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate><category>AI</category><category>ClaudeCode</category><category>OSS</category></item><item><title>Claude Code の Pro から Max 20x に移行して1ヶ月使った率直な感想</title><link>https://suntory-n-water.com/blog/claude-code-pro-to-max-one-month-review/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/claude-code-pro-to-max-one-month-review/</guid><description>Claude Code を Pro プランで半年間使い、Max 20x に移行して1ヶ月。Opus をフル活用できた喜びと、「使わなきゃ」という圧に追われた正直な体験談です。性能の話だけでなく、課金モデルと自分の性格の相性について考えました。</description><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>AI</category><category>ClaudeCode</category></item><item><title>Cloudflare Workers のプレビュー URL を自動で無効化する</title><link>https://suntory-n-water.com/blog/cloudflare-workers-preview-version-cleanup/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/cloudflare-workers-preview-version-cleanup/</guid><description>Cloudflare Workers のプレビュー URL は、PR をマージしても自動で無効化されません。バージョンの削除ではアクセスを止められないため、Subdomain API の previews_enabled を GitHub Actions で自動制御する方法を実装しました。</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate><category>CloudflareWorkers</category><category>GitHubActions</category><category>セキュリティ</category></item><item><title>自然言語で自動化ワークフローを作成できるGitHub Agentic Workflowsを試してみた</title><link>https://suntory-n-water.com/blog/github-agentic-workflows-ci-doctor/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/github-agentic-workflows-ci-doctor/</guid><description>GitHub Agentic Workflowsを使って、CIの失敗を自動で診断・修正するワークフローを作りました。Markdownに自然言語で指示を書くだけで、AIエージェントがログを解析し、原因を特定し、修正パッチまで生成します。セットアップから検証結果、セキュリティ設計まで実体験をもとに解説します。</description><pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate><category>AI</category><category>GitHub</category><category>GitHubActions</category><category>GitHubAgenticWorkflows</category></item><item><title>Claude Codeの変更履歴を自動で日本語解説するサイトを作った</title><link>https://suntory-n-water.com/blog/built-claude-code-changelog-viewer/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/built-claude-code-changelog-viewer/</guid><description>Claude Codeは更新頻度が高く、英語のCHANGELOGを毎回追うのは大変です。日本語で自動解説してくれるサービスが見当たらなかったので、Gemini APIとGitHub Actionsで更新処理を自動化したWebサイトを作りました。</description><pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate><category>AI</category><category>ClaudeCode</category><category>Astro</category></item><item><title>AIを使い倒す人間ほど、AI文章に萎える</title><link>https://suntory-n-water.com/blog/visceral-aversion-to-ai-generated-text/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/visceral-aversion-to-ai-generated-text/</guid><description>24時間365日AIを使い倒している私が、技術記事のAI生成文章に感じる「ゾワッ」とする感覚を言語化しました。Markdown記法の残留、不自然なコロン、ビルドがコケるTypeScriptのコード。「またAIね」と萎える瞬間に潜む3つの感情と、使い手だからこそ分かる「AI臭さ」の正体、そしてAI時代に求める技術記事の姿を考えます。</description><pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate><category>ポエム</category><category>AI</category></item><item><title>父島に全部賭けろ</title><link>https://suntory-n-water.com/blog/bet-everything-on-chichijima/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/bet-everything-on-chichijima/</guid><description>片道24時間、週1便、乗船者800名。不便さが強制する「何もしない時間」が、他の観光地では得られない体験をくれる。二度訪れた父島の魅力を語ります。</description><pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate><category>旅行</category><category>ポエム</category></item><item><title>Playwright CLI と agent-browser のどちらがトークン消費量が少ないか比較検証してみた</title><link>https://suntory-n-water.com/blog/playwright-cli-vs-agent-browser-token-comparison/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/playwright-cli-vs-agent-browser-token-comparison/</guid><description>Playwright CLIとagent-browserで同一操作を行い、トークン消費量を比較しました。スナップショットをファイル出力してGrep検索する設計思想により、Playwright CLIはagent-browserより約40%のトークン削減を達成しています。本記事ではAIブラウザ操作ツールの設計思想の違いがコストに与える影響を検証します。</description><pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate><category>Playwright</category><category>agent-browser</category><category>AI</category></item><item><title>AIエージェント向けに最適化されてたagent-browserをPlaywright MCPと比較検証してみた</title><link>https://suntory-n-water.com/blog/i-tried-using-agent-browser/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-tried-using-agent-browser/</guid><description>agent-browserの「Up to 93% less context than Playwright MCP」は本当か気になったので、Yahoo! JAPANを対象にPlaywright MCPと比較してデータ削減率とトークン消費量を検証します。</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate><category>agent-browser</category><category>Playwright</category><category>AI</category></item><item><title>やはり俺のPlaywrightはまちがっている。</title><link>https://suntory-n-water.com/blog/my-playwright-was-wrong/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/my-playwright-was-wrong/</guid><description>過去のプロジェクトから流用したPlaywrightのコードは「動いて」いました。しかし、偶然ドキュメントを読み直したとき、「動く」と「正しく動く」の間には設計思想の違いがあることに気づきました。page.evaluate()ではなくlocatorを使うべき理由、waitForNavigation()が非推奨である理由。公式ドキュメントには、単なるAPIリファレンスではなく「なぜこの方法が推奨されるのか」が書かれています。時間がない現実の中で、それでもドキュメントを読む価値とは何かを考えます。</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate><category>Playwright</category></item><item><title>図解から始める認知負荷との付き合い方</title><link>https://suntory-n-water.com/blog/cognitive-load-management-with-diagrams/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/cognitive-load-management-with-diagrams/</guid><description>AI時代、文字を読む量が圧倒的に増えています。生成AIからの提案を承認する度に大量のテキストを読み込む認知負荷の高さに「もう無理だ」と感じた経験から、技術ブログに図解機能を実装しました。図解は「記憶の定着装置」として機能し、全体像を視覚的に示すことで認知負荷を下げます。本記事では、なぜ図解が有効なのか、そしてAIを活用してどう実装したのかを解説します。</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate><category>ブログ</category><category>AI</category></item><item><title>Claude Codeへ「スキルを使って」と言うのに疲れたあなたへ</title><link>https://suntory-n-water.com/blog/claude-code-dynamic-skill-loading/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/claude-code-dynamic-skill-loading/</guid><description>Claude CodeのAgent Skillsは、ベストプラクティスに従った実装を自動化する優れた仕組みですが、Claudeの推論による実行判定には限界があります。Playwrightを例に挙げると、「クリック操作を修正して」のような自然な指示では、descriptionに「Playwright」が含まれていてもスキルが起動しないことがあります。本記事では、UserPromptSubmitフックを活用し、キーワードマッチングによってスキルを確実に起動させる実装方法を解説します。</description><pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate><category>ClaudeCode</category><category>AgentsSkills</category></item><item><title>Renovate で作る「頑張らない」運用のすすめ</title><link>https://suntory-n-water.com/blog/automate-dependency-updates-with-renovate/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/automate-dependency-updates-with-renovate/</guid><description>依存関係更新の手動対応をやめて、Renovate で自動化する方法をまとめました。クールダウン期間(minimum release age)を設定してサプライチェーン攻撃のリスクを回避しつつ、手間をかけずに安全性を維持する「頑張らない運用」の設計方針を紹介します。</description><pubDate>Thu, 25 Dec 2025 00:00:00 GMT</pubDate><category>Renovate</category><category>GitHubActions</category></item><item><title>Next.js から Astro へ。拡張性を捨て、シンプルさを選んだ理由</title><link>https://suntory-n-water.com/blog/migrating-nextjs-to-astro/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/migrating-nextjs-to-astro/</guid><description>ブログに「何でもできる」Next.jsは過剰スペックでした。新機能に追いつけず、Web標準APIとの相性に悩んだ末、SSGに特化したAstroへ移行しました。拡張性を捨て、「必要最小限」を選んだ技術選択の記録です。</description><pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate><category>Astro</category><category>Next.js</category><category>Playwright</category><category>ブログ</category></item><item><title>Claude Code にルールを強制させる Stop Hooks とBiome v2による仕組みづくり</title><link>https://suntory-n-water.com/blog/enforce-rules-with-stop-hooks-and-biome-v2/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/enforce-rules-with-stop-hooks-and-biome-v2/</guid><description>AIに「ルールを覚えておいて」と頼むのは間違ったアプローチです。Claude CodeのHooksとBiome v2を使えば、規約違反を自動検知してAI自身に修正させる環境を構築できます。</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>ClaudeCode</category></item><item><title>Claude Code にコーディングルールを守らせるのは諦めて、全部 Biome に任せることにした</title><link>https://suntory-n-water.com/blog/delegate-coding-rules-to-biome/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/delegate-coding-rules-to-biome/</guid><description>Claude Code の CLAUDE.md に記載したコーディング規約が守られない課題を、Biome v2.x の GritQL 機能を使って解決します。「引数が2個以上の場合はオブジェクト形式にする」といった独自ルールを Linter で機械的に強制することで、コンテキストウィンドウを圧迫せず、AI が確実にルールを遵守できる環境を構築する方法を解説します。</description><pubDate>Sat, 06 Dec 2025 00:00:00 GMT</pubDate><category>Biome</category><category>ClaudeCode</category></item><item><title>Cloudflareのグローバルネットワーク上でヘッドレスChromeを実行するBrowser Rendering</title><link>https://suntory-n-water.com/blog/cloudflare-browser-rendering-markdown-example/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/cloudflare-browser-rendering-markdown-example/</guid><description>Cloudflare Browser RenderingのREST APIを使って、WebページをMarkdownに変換するAPIを構築する方法を解説します。不要な要素の削除やリソース最適化など、実践的な実装例を紹介します。</description><pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate><category>Cloudflare</category><category>CloudflareWorkers</category></item><item><title>ブログのSVGアイコンがチラついてムカついたのでやったこと</title><link>https://suntory-n-water.com/blog/annoying-flickering-blog-svg-icon-fix/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/annoying-flickering-blog-svg-icon-fix/</guid><description>Next.jsのImageコンポーネントで発生するSVGアイコンのちらつき問題を、SVGインライン化によって解決した実装記録です。publicフォルダ配置では解消できなかった初回表示時のちらつきを、ビルド時にSVGコードを埋め込むことで無くしました。</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>絵文字</category><category>React</category><category>SVG</category><category>Next.js</category></item><item><title>Next.js App RouterとPagefindで爆速のサイト内検索を実装する</title><link>https://suntory-n-water.com/blog/nextjs-pagefind-implementation/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/nextjs-pagefind-implementation/</guid><description>Next.js (App Router) のブログに Pagefind で全文検索機能を実装する手順を紹介します。public ディレクトリへのインデックス出力設定や、クライアントサイドでの動的インポートなど、実装に必要なポイントをコード付きで解説します。</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>Next.js</category><category>Pagefind</category><category>React</category></item><item><title>今日から学ぶGitHub Actionsのセキュリティ設定の基本と最低限の対策</title><link>https://suntory-n-water.com/blog/github-actions-security-basics-minimum-measures/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/github-actions-security-basics-minimum-measures/</guid><description>GitHub Actionsで発生しうるScript InjectionやPull Request Target、権限の過剰付与などの脆弱性と、actionlint・ghalint・zizmor等の静的解析ツールを使った具体的な対策方法を解説します。</description><pubDate>Mon, 17 Nov 2025 00:00:00 GMT</pubDate><category>GitHub</category><category>GitHubActions</category><category>セキュリティ</category></item><item><title>ブログ記事のアーキテクチャをMDXからMarkdownへ変更しました</title><link>https://suntory-n-water.com/blog/blog-new-architecture/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/blog-new-architecture/</guid><description>NotionとLINEメッセージングAPIを使った外出先からのブログ更新システムから、ObsidianとMarkdownベースのシンプルな管理方式へ移行した経緯を紹介します。</description><pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate><category>Markdown</category><category>Notion</category><category>Obsidian</category></item><item><title>Anthropic公式のMCPによるコード実行をserena MCPで試してみたけど無理だった件</title><link>https://suntory-n-water.com/blog/i-tried-running-code-using-official/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-tried-running-code-using-official/</guid><description>AnthropicのMCPコード実行手法をSerena MCPで試しましたが、ツール数が多く型定義が複雑なMCPではうまくいきませんでした。シンプルなMCPでの検証が必要という学びを共有します。</description><pubDate>Sun, 09 Nov 2025 00:00:00 GMT</pubDate><category>MCP</category><category>ClaudeCode</category><category>Serena</category></item><item><title>GASを使うと社内だけで使えるWebサイトが簡単に作れるの知ってました？</title><link>https://suntory-n-water.com/blog/did-you-know-you-can-easily/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/did-you-know-you-can-easily/</guid><description>Google Apps Script(GAS)を使うと社内限定で使えるWebアプリケーションを簡単に構築できます。claspとTypeScriptを使ってGoogleDriveのファイルを検索するアプリケーションを作成します。</description><pubDate>Mon, 03 Nov 2025 00:00:00 GMT</pubDate><category>TypeScript</category><category>GAS</category><category>GoogleAppScript</category><category>clasp</category></item><item><title>Notion APIのデータベース操作APIに破壊的変更があったので、実装を修正してみる</title><link>https://suntory-n-water.com/blog/there-breaking-change-notion-apis-database/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/there-breaking-change-notion-apis-database/</guid><description>Notion APIのバージョン2025-09-03における破壊的変更について解説します。単一データベースモデルからマルチソースデータベースモデルへの移行に伴う実装修正方法を紹介します。</description><pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate><category>TypeScript</category><category>Notion</category><category>NotionAPI</category></item><item><title>仕組みでカバーするStop Hooksで忘れないTypeScriptの型チェック</title><link>https://suntory-n-water.com/blog/dont-forget-check-typescript-types-stop/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/dont-forget-check-typescript-types-stop/</guid><description>Claude CodeのStop Hooksを使って、TypeScriptの型チェックを自動実行する仕組みを実装します。物忘れを仕組みでカバーして、効率的な開発フローを実現します。</description><pubDate>Sun, 28 Sep 2025 00:00:00 GMT</pubDate><category>TypeScript</category><category>ClaudeCode</category></item><item><title>Dev Container環境でSerena MCPのブラウザ自動起動を無効化する</title><link>https://suntory-n-water.com/blog/disable-automatic-browser-launch-serena-mcp/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/disable-automatic-browser-launch-serena-mcp/</guid><description>Dev Container環境でSerena MCPのブラウザ自動起動を無効化する方法を解説します。グローバル設定ファイルとdevcontainer.jsonの設定でダッシュボードの自動起動を制御します。</description><pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate><category>MCP</category><category>DevContainer</category><category>ClaudeCode</category><category>Serena</category></item><item><title>Next.js + OpenNext.js をdevcontainerで起動しようとしたときにハマったこと</title><link>https://suntory-n-water.com/blog/nextjs-cloudflare-devcontainer-glibc-issue/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/nextjs-cloudflare-devcontainer-glibc-issue/</guid><description>Debian 11 bullseyeベースのdevcontainerでNext.js 15 + OpenNext.jsの開発サーバーが起動せず、Debian 12 bookwormベースに変更して解決した事例。glibcバージョン要件とworkerdの実行互換について整理。</description><pubDate>Sun, 21 Sep 2025 00:00:00 GMT</pubDate><category>Next.js</category><category>Cloudflare</category><category>OpenNext.js</category><category>Docker</category></item><item><title>PreToolUseがfailed with non-blocking status code 127になったときにやったこと</title><link>https://suntory-n-water.com/blog/i-did-pretooluse-failed-non-blocking-status/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-did-pretooluse-failed-non-blocking-status/</guid><description>Claude CodeのPreToolUseがfailed with non-blocking status code 127になったときの解決方法を解説します。改行コードがCRLFになっている場合にLFに変更することで解決します。</description><pubDate>Thu, 28 Aug 2025 00:00:00 GMT</pubDate><category>ClaudeCode</category><category>Serena</category></item><item><title>CC-VaultというClaude Code専用のキュレーションメディアを作った</title><link>https://suntory-n-water.com/blog/cc-vault-curation-media/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/cc-vault-curation-media/</guid><description>Claude Codeの新機能が出るたびに色々なサイトを見るのが面倒くさいなと思って、ZennとQiitaのClaude Code記事をまとめるツール「CC-Vault」を作りました。実務でClaude Code使ってて同じような悩みを持つ人に刺さるかもしれません。</description><pubDate>Sun, 13 Jul 2025 00:00:00 GMT</pubDate><category>Claude</category><category>ClaudeCode</category></item><item><title>HonoXにおけるSSRとクライアントサイドHydrationの同期問題とその解決策</title><link>https://suntory-n-water.com/blog/honox-ssr-hydration-issue/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/honox-ssr-hydration-issue/</guid><description>HonoXのSSRとクライアントHydrationの同期問題を解説。サーバーで正しく描画された表示がクライアントで元に戻る現象の原因を解明し、確実な状態同期を行う実装パターンを紹介します。</description><pubDate>Sun, 29 Jun 2025 00:00:00 GMT</pubDate><category>HonoX</category><category>React</category></item><item><title>Cloudflare Workers環境で「Illegal invocation」エラーが起きたときに試したこと</title><link>https://suntory-n-water.com/blog/i-tried-i-got-illegal-invocation/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-tried-i-got-illegal-invocation/</guid><description>Cloudflare Workers上でMCPサーバーを構築し、Notion APIを使用する際に遭遇した「TypeError: Illegal invocation」エラーの根本原因の特定から解決までの検証プロセスを詳しく解説します。</description><pubDate>Sun, 08 Jun 2025 00:00:00 GMT</pubDate><category>MCP</category><category>CloudflareWorkers</category><category>NotionAPI</category></item><item><title>HonoXにVitestを導入する</title><link>https://suntory-n-water.com/blog/installing-vitest-honox/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/installing-vitest-honox/</guid><description>HonoXアプリケーションにVitestを導入する方法を解説します。Cloudflare WorkersのバインディングD1を利用するHonoXアプリケーションのテスト環境構築ガイドです。</description><pubDate>Sun, 01 Jun 2025 00:00:00 GMT</pubDate><category>CloudflareWorkers</category><category>Vitest</category><category>HonoX</category></item><item><title>dependabotによる依存関係更新の集約設定</title><link>https://suntory-n-water.com/blog/aggregating-dependency-updates-dependabot/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/aggregating-dependency-updates-dependabot/</guid><description>dependabotによる依存関係更新を1つのPRにまとめる設定方法を解説します。グループ化設定を導入して、複数のPRを個別にマージする際の一時的なバージョン不整合を解消します。</description><pubDate>Sun, 18 May 2025 00:00:00 GMT</pubDate><category>GitHubActions</category><category>CI</category><category>dependabot</category></item><item><title>Hono + Obsidianプラグインをハンズオン形式で開発してみる</title><link>https://suntory-n-water.com/blog/hands-on-development-hono-obsidian-plugins/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/hands-on-development-hono-obsidian-plugins/</guid><description>Honoを使用してObsidianプラグインを開発するための環境構築手順を解説します。pnpm workspacesを使ったモノレポ構成でCloudflare Workers上で動作するHonoとObsidianプラグインを管理します。</description><pubDate>Sun, 11 May 2025 00:00:00 GMT</pubDate><category>Obsidian</category><category>Hono</category></item><item><title>『ないなら作ればいいじゃない』HonoXで金髪ヒロインしか乗ってないアニメ専門サイトを作った話</title><link>https://suntory-n-water.com/blog/kinpatsu-heroine-honox/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/kinpatsu-heroine-honox/</guid><description>HonoXとCloudflare Workersを活用し、アニメの金髪ヒロインだけを一覧表示するWebサイト「金髪ヒロイン.com」を個人開発した体験と、技術選定や実装の工夫、今後の課題についてまとめました。</description><pubDate>Wed, 07 May 2025 00:00:00 GMT</pubDate><category>HonoX</category><category>Hono</category><category>CloudflareWorkers</category></item><item><title>GitHub Copilotもルールを強制させる</title><link>https://suntory-n-water.com/blog/vscode-github-copilot-multiple-prompt/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/vscode-github-copilot-multiple-prompt/</guid><description>VSCodeで使えるGitHub Copilotでも Cursorと同じようなルールを設定することができます。この記事では複数のルールを設定して開発を行う方法を解説します。</description><pubDate>Thu, 24 Apr 2025 00:00:00 GMT</pubDate><category>GitHub</category><category>GitHubCopilot</category><category>VisualStudioCode</category></item><item><title>チンチロをするMCPサーバーを作ってみる</title><link>https://suntory-n-water.com/blog/chinchillo-mcp-server/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/chinchillo-mcp-server/</guid><description>Model Context Protocol (MCP) を使うと、AIアシスタントに新しい機能を追加できます。この記事では、サイコロゲーム「チンチロ」を例に、TypeScriptでMCPサーバーを実装し、Claude Desktopで遊ぶ方法を紹介します。AIの進化が進む中、MCPの基本的な仕組みを実際に手を動かして学んでみましょう。</description><pubDate>Thu, 10 Apr 2025 00:00:00 GMT</pubDate><category>MCP</category></item><item><title>iOSでもWindowsと同じ絵文字を表示したい！</title><link>https://suntory-n-water.com/blog/ios-kawaii-emoji/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/ios-kawaii-emoji/</guid><description>絵文字は私たちのデジタルコミュニケーションに欠かせない存在ですが、同じ絵文字コードでもOSによって見た目が大きく異なります。例えば「🫠」(溶ける顔)や「😎」(サングラスの顔)は、iOSとWindowsで全く異なるデザインです。本記事では、Webアプリケーション上でOSに関係なく統一した絵文字表示を実現するため、MicrosoftのFluent UI Emojiを使った実装方法を解説します。</description><pubDate>Sun, 30 Mar 2025 00:00:00 GMT</pubDate><category>絵文字</category></item><item><title>「Webサービス公開前のチェックリスト」にあるレスポンスヘッダの内容を調べてみる</title><link>https://suntory-n-water.com/blog/response-header-web-check-list/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/response-header-web-check-list/</guid><description>Webサービス公開前のチェックリストにあるレスポンスヘッダの意味が全くわからなかったので、どんなリスクから守ってくれるのかを調べてみました。この記事ではWebサービスを公開する前に必要なレスポンスヘッダの内容と設定しなかったときのリスクを知ることができます。</description><pubDate>Fri, 28 Mar 2025 00:00:00 GMT</pubDate><category>セキュリティ</category></item><item><title>Notionの画像(S3)をCloudflare R2に格納する</title><link>https://suntory-n-water.com/blog/notion-images-put-cloudflare/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/notion-images-put-cloudflare/</guid><description>Notionで作成されたマークダウンコンテンツには、Amazon S3に保存された画像へのリンクが含まれています。ブログ記事として公開する際に、これらの画像をCloudflare R2ストレージなどの外部ストレージに移行することで非公開ページの画像も表示することができます。この記事ではNotionのページに添付されている画像をCloudflare R2に格納する処理について解説します。</description><pubDate>Tue, 25 Mar 2025 00:00:00 GMT</pubDate><category>CloudflareWorkers</category><category>Cloudflare</category></item><item><title>Vercelで独自ドメインを設定する</title><link>https://suntory-n-water.com/blog/cloudflare-get-domain-vercel/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/cloudflare-get-domain-vercel/</guid><description>独自ドメインを購入し、Vercelにデプロイされたウェブサイトに設定する方法を紹介します。Next.jsで作成したポートフォリオサイトを例に、Cloudflareでドメインを購入から設定完了までの手順を解説します。</description><pubDate>Sat, 22 Mar 2025 00:00:00 GMT</pubDate><category>Cloudflare</category><category>Vercel</category></item><item><title>NotoSansJP使ってるのにSafariのフォントが明朝体になる</title><link>https://suntory-n-water.com/blog/noto-sans-jp-safari-mincho/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/noto-sans-jp-safari-mincho/</guid><description>SafariやiOSのGoogle Chromeだけフォントが明朝体に変わってしまっている件。</description><pubDate>Fri, 21 Mar 2025 00:00:00 GMT</pubDate><category>TailwindCSS</category><category>Next.js</category></item><item><title>LINE Messaging APIから自動でGitHubにPRを発行する</title><link>https://suntory-n-water.com/blog/messaging-api-github-pr/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/messaging-api-github-pr/</guid><description>ポートフォリオの技術記事投稿頻度をあげるためにNotion + Messaging APIでブログ記事を自動でPull Requestを発行できるようにしました。mdxファイルの作成はnotion-markdown-converterを使用しています。</description><pubDate>Thu, 20 Mar 2025 00:00:00 GMT</pubDate><category>LineMessagingAPI</category><category>CloudflareWorkers</category><category>Notion</category></item><item><title>ポートフォリオにブログページを追加しました</title><link>https://suntory-n-water.com/blog/add-blog-to-portfolio/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/add-blog-to-portfolio/</guid><description>ポートフォリオサイトにブログページを追加しました。今後はZennやQiitaで投稿していた内容を、こちらに集約する想定です。</description><pubDate>Mon, 17 Mar 2025 00:00:00 GMT</pubDate><category>ポートフォリオ</category><category>ブログ</category></item><item><title>HonoXで短縮URL作成サイトをつくる</title><link>https://suntory-n-water.com/blog/create-url-shortening-site-honox/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/create-url-shortening-site-honox/</guid><description>HonoXで短縮URL作成サイトを作成します。基本的な環境構築が終わっているsetupブランチから完成版までの変化を追いながら、実装の流れを解説します。</description><pubDate>Mon, 03 Mar 2025 00:00:00 GMT</pubDate><category>Hono</category><category>HonoX</category></item><item><title>Podがなにか分からないから弁当ケースで表現してもらう</title><link>https://suntory-n-water.com/blog/i-dont-know-pod-so-ill/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-dont-know-pod-so-ill/</guid><description>KubernetesのPodとは何かを弁当ケースに例えて理解します。1つ以上のコンテナをまとめたものであるPodの概念を、実務で遭遇した場面から学んだことをまとめました。</description><pubDate>Sat, 22 Feb 2025 00:00:00 GMT</pubDate><category>Docker</category><category>Kubernetes</category></item><item><title>Marpで企業ロゴが入ったスライドを作成する</title><link>https://suntory-n-water.com/blog/create-slide-your-company-logo-using/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/create-slide-your-company-logo-using/</guid><description>Marpで企業ロゴが入ったスライドを作成する方法を解説します。gaiaテーマとCSSの::after疑似要素を活用してヘッダーの右上にロゴを配置する実装を紹介します。</description><pubDate>Sat, 08 Feb 2025 00:00:00 GMT</pubDate><category>CSS</category><category>Marp</category></item><item><title>もう少し楽にBranded Typeを使えるようにしたい</title><link>https://suntory-n-water.com/blog/i-want-make-easier-use-branded/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-want-make-easier-use-branded/</guid><description>Branded Typeを簡単に生成できるツールを作成しました。似たような名前のIDやデータを扱う際の型安全性を高め、間違った型を使う可能性を減らすことができます。</description><pubDate>Sat, 11 Jan 2025 00:00:00 GMT</pubDate><category>TypeScript</category></item><item><title>2025年は毎日ベッドメイキングだけやればいい。</title><link>https://suntory-n-water.com/blog/2025-all-you-need-do-make/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/2025-all-you-need-do-make/</guid><description>ベッドメイキングから始まる小さな成功体験の重要性についてのポエム。</description><pubDate>Fri, 03 Jan 2025 00:00:00 GMT</pubDate><category>ポエム</category></item><item><title>手を動かして理解するクリーンアーキテクチャ</title><link>https://suntory-n-water.com/blog/learn-clean-architecture-through-hands-on-experience/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/learn-clean-architecture-through-hands-on-experience/</guid><description>クリーンアーキテクチャの概要をざっくり理解し、実際に手を動かして実装することで腹落ちを目指します。関心ごとの分離と依存関係の方向性について解説します。</description><pubDate>Thu, 02 Jan 2025 00:00:00 GMT</pubDate><category>TypeScript</category><category>クリーンアーキテクチャ</category><category>SOLID原則</category><category>Hono</category></item><item><title>手を動かして理解するBranded Type</title><link>https://suntory-n-water.com/blog/branded-type-learn-doing/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/branded-type-learn-doing/</guid><description>Branded Typeの概要と実装方法を手を動かして理解します。プリミティブ型に目印を付与して型安全性を高めるテクニックを、既存リポジトリへの適用を通じて学びます。</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate><category>TypeScript</category></item><item><title>初めての実行計画と「ANALYZE」で統計情報の再計算を行う</title><link>https://suntory-n-water.com/blog/first-execution-plan-recalculating-statistics-analyze/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/first-execution-plan-recalculating-statistics-analyze/</guid><description>開発環境で正常に動作していたSQLが検証環境でタイムアウトする問題に対して、EXPLAIN ANALYZEを用いた実行計画の改善と統計情報のリセット方法を解説します。</description><pubDate>Sat, 30 Nov 2024 00:00:00 GMT</pubDate><category>PostgreSQL</category><category>データベース</category></item><item><title>アニメ情報を取得するWebAPIを実際にリクエストして、比較してみる</title><link>https://suntory-n-water.com/blog/lets-actually-request-webapi-retrieves-anime/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/lets-actually-request-webapi-retrieves-anime/</guid><description>アニメ情報を取得するWebAPI(ShangriLa Anime API、Annict API、MyAnimeList API)を実際にリクエストして比較検証しました。各APIの特徴と違いを解説します。</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><category>API</category><category>WebAPI</category><category>アニメ</category></item><item><title>住んでいる地域の人口増減を一目でわかるWebサイトをつくった</title><link>https://suntory-n-water.com/blog/we-created-website-lets-you-see/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/we-created-website-lets-you-see/</guid><description>都道府県と市区町村を選択するだけで、その地域の人口動態を可視化できるWebサイトを作成しました。Next.js、Recharts、shadcn/uiを使用した実装を紹介します。</description><pubDate>Sat, 16 Nov 2024 00:00:00 GMT</pubDate><category>Next.js</category><category>個人開発</category><category>Recharts</category><category>shadcn/ui</category></item><item><title>Wikipediaの全記事を学習させて、日本語で遊んでみる</title><link>https://suntory-n-water.com/blog/learn-all-wikipedia-articles-fun-them/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/learn-all-wikipedia-articles-fun-them/</guid><description>Wikipediaの全記事をWord2Vecに学習させて、単語同士の足し算や引き算を行うことができるWebサイトを作成しました。FastAPIの復習も兼ねた実装を紹介します。</description><pubDate>Sat, 09 Nov 2024 00:00:00 GMT</pubDate><category>Python</category><category>個人開発</category><category>Word2Vec</category><category>Wikipedia</category></item><item><title>Tailwind CSS マーカーとテキストの重なりを防ぐ方法</title><link>https://suntory-n-water.com/blog/prevent-tailwind-css-marker-text-overlap/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/prevent-tailwind-css-marker-text-overlap/</guid><description>Tailwind CSSでリストアイテムが長くなった場合に、テキストがマーカーと重なってしまう問題の解決方法を解説します。</description><pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate><category>CSS</category><category>TailwindCSS</category></item><item><title>Playwrightでクエリパラメータが付与されているページのURLを取得する</title><link>https://suntory-n-water.com/blog/get-url-page-query-parameters-playwright/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/get-url-page-query-parameters-playwright/</guid><description>Playwrightでクエリパラメータが付与されているページのURLを取得する方法を解説します。page.on()メソッドでネットワークを監視する方法を紹介します。</description><pubDate>Thu, 26 Sep 2024 00:00:00 GMT</pubDate><category>テスト</category><category>Playwright</category><category>E2E</category></item><item><title>Next.js AppRouterで動的OGP画像を作成する</title><link>https://suntory-n-water.com/blog/creating-dynamic-ogp-images-nextjs-approuter/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/creating-dynamic-ogp-images-nextjs-approuter/</guid><description>Next.js AppRouterでImageResponse()を使用して動的OGP画像を作成する方法を解説します。エンドポイント作成から画像レイアウトの実装までを紹介します。</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>Next.js</category><category>OGP</category><category>AppRouter</category></item><item><title>GitHub Actionsでビルドしたファイルをリリースノートに格納する</title><link>https://suntory-n-water.com/blog/include-build-files-release-notes-github/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/include-build-files-release-notes-github/</guid><description>GitHub Actionsでビルドしたファイルをリリースノートに格納する方法を解説します。非エンジニアの友人でも簡単に拡張機能をアップデートできる仕組みを実装します。</description><pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate><category>GitHubActions</category></item><item><title>API叩くときはしっかりデコードしよう</title><link>https://suntory-n-water.com/blog/sure-decode-properly-calling-api/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/sure-decode-properly-calling-api/</guid><description>Hono + LINE Messaging APIを使ったコンビニスイーツ提供BOTで、HTMLエンティティのデコードを忘れたことで発生したエラーと、その解決方法を解説します。APIを叩く際のデータ処理の重要性を学びます。</description><pubDate>Mon, 12 Aug 2024 00:00:00 GMT</pubDate><category>HTML</category><category>Decode</category><category>LineMessagingAPI</category><category>Hono</category></item><item><title>ニート→社会人になって睡眠の質は変化したのか調べてみた</title><link>https://suntory-n-water.com/blog/i-investigated-whether-quality-sleep-changed/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-investigated-whether-quality-sleep-changed/</guid><description>ニートから社会人になって睡眠の質がどう変化したのか、iPhoneのヘルスケアアプリのデータを使って定量的に分析しました。睡眠に関するデータ解析の方法を紹介します。</description><pubDate>Thu, 08 Aug 2024 00:00:00 GMT</pubDate><category>ヘルスケア</category><category>睡眠</category></item><item><title>今更だけどMarkdownでPowerPointが作成できるMarpに入門してみる</title><link>https://suntory-n-water.com/blog/little-late-ill-introduce-marp-allows/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/little-late-ill-introduce-marp-allows/</guid><description>MarkdownでPowerPointスライドが作成できるMarpに入門します。ハンズオン形式でMarpの環境構築から実際のスライド作成までを解説します。</description><pubDate>Sun, 28 Jul 2024 00:00:00 GMT</pubDate><category>PowerPoint</category><category>Marp</category></item><item><title>Docker + PostgreSQLで環境構築して、パーティションについて学ぶ</title><link>https://suntory-n-water.com/blog/build-environment-docker-postgresql-learn-about/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/build-environment-docker-postgresql-learn-about/</guid><description>Docker + PostgreSQLで環境構築を行い、パーティションについて学びます。実務でn千万からn億レコードのテーブルを扱う際に必要なパーティション構成の基礎を実践的に解説します。</description><pubDate>Thu, 18 Jul 2024 00:00:00 GMT</pubDate><category>Docker</category><category>PostgreSQL</category><category>データベース</category></item><item><title>Hono Service bindings入門</title><link>https://suntory-n-water.com/blog/introduction-hono-service-bindings/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/introduction-hono-service-bindings/</guid><description>Cloudflare WorkersのService Bindings機能を使って、パブリックにアクセス可能なURLを経由せずに別のWorkersを呼び出す方法を解説します。Honoを使った複数Workersの連携実装例を紹介します。</description><pubDate>Mon, 08 Jul 2024 00:00:00 GMT</pubDate><category>Cloudflare</category><category>CloudflareWorkers</category><category>Hono</category></item><item><title>Hono + DIでInversifyJSを使用する</title><link>https://suntory-n-water.com/blog/using-inversifyjs-hono-di/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/using-inversifyjs-hono-di/</guid><description>HonoとDIで実装したアプリケーションにInversifyJSを使用して改修します。依存性の注入をサポートする軽量のIoCコンテナであるInversifyJSの使い方を解説します。</description><pubDate>Sat, 06 Jul 2024 00:00:00 GMT</pubDate><category>InversifyJS</category><category>DI</category><category>Hono</category></item><item><title>手を動かして理解しようとするDI(依存性の注入)</title><link>https://suntory-n-water.com/blog/understanding-di-dependency-injection-through-hands-on/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/understanding-di-dependency-injection-through-hands-on/</guid><description>依存性の注入(DI)という概念を手を動かしながら理解します。読んでもよく分からなかったので、実装を通じてナンモワカランからチョットワカッタカモになることを目指します。</description><pubDate>Sat, 15 Jun 2024 00:00:00 GMT</pubDate><category>TypeScript</category><category>DI</category><category>オブジェクト指向プログラミング</category><category>Hono</category></item><item><title>Viteで始めるGoogleChrome拡張機能開発</title><link>https://suntory-n-water.com/blog/start-developing-google-chrome-extensions-vite/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/start-developing-google-chrome-extensions-vite/</guid><description>Vite + TypeScriptを使用してGoogle Chrome拡張機能を開発する方法を解説します。初めて拡張機能を開発する方の第一歩になる記事です。</description><pubDate>Thu, 13 Jun 2024 00:00:00 GMT</pubDate><category>ChromeExtension</category><category>TypeScript</category><category>Vite</category></item><item><title>コンビニスイーツをランダムに表示するLINE BOTをつくる</title><link>https://suntory-n-water.com/blog/create-line-bot-randomly-displays-convenience/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/create-line-bot-randomly-displays-convenience/</guid><description>CloudflareWorkersとHonoを使ってコンビニスイーツをランダムに表示するLINE BOTを作成。</description><pubDate>Sat, 27 Apr 2024 00:00:00 GMT</pubDate><category>LineMessagingAPI</category><category>CloudflareWorkers</category></item><item><title>Honoでランダムにアイスクリームを提案するLINE BOTを作る</title><link>https://suntory-n-water.com/blog/create-line-bot-randomly-suggests-ice/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/create-line-bot-randomly-suggests-ice/</guid><description>Hono + Cloudflare Workersを使用してランダムにアイスクリームを提案するLINE BOTを作成しました。チョコモナカジャンボに変わる新しい最強のアイスクリームを見つけることをコンセプトに、技術選定から実装までを解説します。</description><pubDate>Thu, 18 Apr 2024 00:00:00 GMT</pubDate><category>CloudflareWorkers</category><category>LineMessagingAPI</category><category>Hono</category></item><item><title>不動産情報ライブラリAPIを使ってみる！</title><link>https://suntory-n-water.com/blog/try-using-real-estate-information-library/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/try-using-real-estate-information-library/</guid><description>国土交通省の不動産情報ライブラリAPIを使ってみた体験記。</description><pubDate>Mon, 08 Apr 2024 00:00:00 GMT</pubDate><category>Python</category><category>API</category></item><item><title>SQLAlchemy + pytestでRuntimeError Event loop is closedが起きたときにやったこと</title><link>https://suntory-n-water.com/blog/i-did-i-got-runtimeerror-event/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-did-i-got-runtimeerror-event/</guid><description>SQLAlchemyとpytestでRuntimeError Event loop is closedエラーが発生した際の対処法。</description><pubDate>Sun, 17 Mar 2024 00:00:00 GMT</pubDate><category>MySQL</category><category>sqlalchemy</category><category>Docker</category><category>pytest</category><category>FastAPI</category></item><item><title>Google Places API (New)で言語コードを設定せず沼りかけた</title><link>https://suntory-n-water.com/blog/i-almost-got-stuck-without-setting/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-almost-got-stuck-without-setting/</guid><description>Google Places API (New)で言語コードを設定せず沼りかけた経験。</description><pubDate>Fri, 23 Feb 2024 00:00:00 GMT</pubDate><category>GoogleMapsAPI</category><category>GoogleCloud</category></item><item><title>【FastAPI】idをuuidで設定するときは型定義に気をつけたい</title><link>https://suntory-n-water.com/blog/setting-id-uuid-careful-type-definition/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/setting-id-uuid-careful-type-definition/</guid><description>FastAPIでidをuuidで設定する際の型定義の注意点。</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>Python</category><category>FastAPI</category></item><item><title>支離滅裂な文章を生成するアプリ</title><link>https://suntory-n-water.com/blog/app-generates-incoherent-sentences/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/app-generates-incoherent-sentences/</guid><description>GASのLanguageAppクラスを使って支離滅裂な文章を生成するアプリ。</description><pubDate>Sun, 07 Jan 2024 00:00:00 GMT</pubDate><category>GAS</category><category>Next.js</category></item><item><title>Next.js13 デプロイ時にAPIのパスを動的に変えるやり方</title><link>https://suntory-n-water.com/blog/nextjs13-dynamically-change-api-path-during/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/nextjs13-dynamically-change-api-path-during/</guid><description>Next.js13でデプロイ時にAPIのパスを動的に変更する方法。</description><pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate><category>API</category><category>Next.js</category><category>Vercel</category></item><item><title>ザ・ダークパターンをshadcn/uiで作成する</title><link>https://suntory-n-water.com/blog/creating-dark-pattern-shadcn-ui/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/creating-dark-pattern-shadcn-ui/</guid><description>shadcn/uiを使ってダークパターンを実装する例。</description><pubDate>Fri, 29 Dec 2023 00:00:00 GMT</pubDate><category>Design</category><category>Next.js</category><category>shadcn/ui</category></item><item><title>１０％の確率でドオーしか表示されないポケモン生成サイトを作った</title><link>https://suntory-n-water.com/blog/i-made-pokemon-generator-10percent-chance/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-made-pokemon-generator-10percent-chance/</guid><description>PokeAPIを使って10%の確率でドオーしか表示されないポケモン生成サイトを作成。</description><pubDate>Sat, 23 Dec 2023 00:00:00 GMT</pubDate><category>個人開発</category><category>ポケモン</category><category>Next.js</category><category>PokeAPI</category></item><item><title>【個人開発】水瀬いのりさんのライブで聴いたことのない曲を一覧表示するぞ</title><link>https://suntory-n-water.com/blog/list-songs-you-havent-heard-minase/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/list-songs-you-havent-heard-minase/</guid><description>水瀬いのりさんのライブで聴いたことのない曲を一覧表示するアプリの開発。</description><pubDate>Sun, 29 Oct 2023 00:00:00 GMT</pubDate><category>個人開発</category><category>Next.js</category></item><item><title>自分だけのBookNotionを爆誕させた</title><link>https://suntory-n-water.com/blog/i-created-my-own-booknotion/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-created-my-own-booknotion/</guid><description>KindleのハイライトをNotionにまとめる自分専用BookNotionアプリを開発。</description><pubDate>Sat, 14 Oct 2023 00:00:00 GMT</pubDate><category>Next.js</category><category>Notion</category><category>NotionAPI</category></item><item><title>BookNotionを更に神アプリにしたい その１</title><link>https://suntory-n-water.com/blog/i-want-make-booknotion-even-better/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-want-make-booknotion-even-better/</guid><description>BookNotionをより便利にするための機能拡張について。</description><pubDate>Mon, 09 Oct 2023 00:00:00 GMT</pubDate><category>JavaScript</category><category>Notion</category><category>NotionAPI</category></item><item><title>Angularの練習ということで船橋市の人口推移グラフを作ってみた</title><link>https://suntory-n-water.com/blog/angular-practice-i-made-population-graph/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/angular-practice-i-made-population-graph/</guid><description>Angularの練習として船橋市の人口推移グラフを作成。</description><pubDate>Mon, 18 Sep 2023 00:00:00 GMT</pubDate><category>TypeScript</category><category>Angular</category><category>chart.js</category></item><item><title>Postman localhostにリクエストが送信できない</title><link>https://suntory-n-water.com/blog/postman-unable-send-request-localhost/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/postman-unable-send-request-localhost/</guid><description>Postmanでlocalhostにリクエストを送信できない問題の解決方法。</description><pubDate>Sun, 27 Aug 2023 00:00:00 GMT</pubDate><category>API</category><category>Postman</category></item><item><title>ラーメン二郎のコールで学ぶ良いアルゴリズムとは何かをGPT先生に聞いてみる</title><link>https://suntory-n-water.com/blog/asking-gpt-sensei-good-algorithm-learn/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/asking-gpt-sensei-good-algorithm-learn/</guid><description>ラーメン二郎のコールシステムを例に、良いアルゴリズムとは何かを学ぶ。</description><pubDate>Sat, 26 Aug 2023 00:00:00 GMT</pubDate><category>アルゴリズム</category><category>初心者</category><category>TypeScript</category></item><item><title>TypeScriptでコールバック関数を知る</title><link>https://suntory-n-water.com/blog/learn-about-callback-functions-typescript/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/learn-about-callback-functions-typescript/</guid><description>TypeScriptでコールバック関数について学習した備忘録。</description><pubDate>Sun, 20 Aug 2023 00:00:00 GMT</pubDate><category>TypeScript</category></item><item><title>密結合と疎結合の理解を深める</title><link>https://suntory-n-water.com/blog/deepen-your-understanding-tight-loose-coupling/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/deepen-your-understanding-tight-loose-coupling/</guid><description>密結合と疎結合の違いと、コードの品質への影響について。</description><pubDate>Fri, 18 Aug 2023 00:00:00 GMT</pubDate><category>TypeScript</category></item><item><title>Seleniumが本当にバレバレなのか試してみた</title><link>https://suntory-n-water.com/blog/i-tried-see-if-selenium-really/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-tried-see-if-selenium-really/</guid><description>Seleniumによるスクレイピングが本当にバレるのか実際に検証。</description><pubDate>Sat, 12 Aug 2023 00:00:00 GMT</pubDate><category>Python</category><category>Selenium</category><category>スクレイピング</category></item><item><title>TypeScript interfaceとtypeどっち使うんですか？</title><link>https://suntory-n-water.com/blog/typescript-should-i-use-interface-or/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/typescript-should-i-use-interface-or/</guid><description>TypeScriptでinterfaceとtypeのどちらを使うべきかについての解説。</description><pubDate>Fri, 11 Aug 2023 00:00:00 GMT</pubDate><category>JavaScript</category><category>TypeScript</category></item><item><title>ReactとFlaskを連携させてみる part2</title><link>https://suntory-n-water.com/blog/integrating-react-flask-part-2/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/integrating-react-flask-part-2/</guid><description>React→Flask→Reactのデータフロー実装について。FlaskとReactの連携part2。</description><pubDate>Sun, 09 Jul 2023 00:00:00 GMT</pubDate><category>Python</category><category>Flask</category><category>API</category><category>React</category></item><item><title>React + Flaskを連携させてみる</title><link>https://suntory-n-water.com/blog/lets-integrate-react-flask/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/lets-integrate-react-flask/</guid><description>ReactとFlaskを連携させたアプリケーション開発の手順。</description><pubDate>Sat, 01 Jul 2023 00:00:00 GMT</pubDate><category>Python</category><category>Flask</category><category>TypeScript</category><category>React</category></item><item><title>【React】初めてのフロントエンド〜ランダムで今日行くラーメン二郎を決めてもらう〜</title><link>https://suntory-n-water.com/blog/my-first-frontend-randomly-decide-ramen/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/my-first-frontend-randomly-decide-ramen/</guid><description>Reactを使ってランダムでラーメン二郎の店舗を表示するアプリを作成。初めてのフロントエンド開発。</description><pubDate>Sat, 10 Jun 2023 00:00:00 GMT</pubDate><category>JavaScript</category><category>初心者</category><category>Firebase</category><category>React</category></item><item><title>【ChatGPT】今更だけど本を要約してもらった</title><link>https://suntory-n-water.com/blog/little-late-i-got-summary-book/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/little-late-i-got-summary-book/</guid><description>ChatGPTを使って読んだ本を要約してもらった実験記録。</description><pubDate>Sun, 28 May 2023 00:00:00 GMT</pubDate><category>ChatGPT</category></item><item><title>メルカリShopsの再出品があまりにもだるすぎたので効率化してみた</title><link>https://suntory-n-water.com/blog/relisting-items-mercari-shops-so-tedious/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/relisting-items-mercari-shops-so-tedious/</guid><description>メルカリShopsの再出品作業を効率化するため、Pythonとseleniumを使った自動化アプリを開発。</description><pubDate>Tue, 02 May 2023 00:00:00 GMT</pubDate><category>Python</category><category>Selenium</category><category>CSV</category><category>pandas</category></item><item><title>【Python】pyautogui入門 -Kindleのハイライトを削除してみる-</title><link>https://suntory-n-water.com/blog/introduction-pyautogui-trying-remove-highlights-kindle/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/introduction-pyautogui-trying-remove-highlights-kindle/</guid><description>デスクトップのKindleアプリでハイライトと注記を自動削除するPyAutoGUIスクリプト。</description><pubDate>Sun, 23 Apr 2023 00:00:00 GMT</pubDate><category>Python</category><category>OpenCV</category><category>pyautogui</category></item><item><title>【Python】初めての自然言語処理？discord.pyでネガティブな単語に反応するbotを作ってみた。</title><link>https://suntory-n-water.com/blog/my-first-natural-language-processing-i/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/my-first-natural-language-processing-i/</guid><description>Pythonとdiscord.pyを使ってネガティブな単語に反応するbotを作成。自然言語処理と形態素解析の入門。</description><pubDate>Sun, 02 Apr 2023 00:00:00 GMT</pubDate><category>Python</category><category>mecab</category><category>自然言語処理</category><category>形態素解析</category><category>Discord</category></item><item><title>Anacondaはシステム環境変数の設定方法が異なるらしい</title><link>https://suntory-n-water.com/blog/anaconda-seems-different-way-setting-system/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/anaconda-seems-different-way-setting-system/</guid><description>Anacondaとcmdでは環境変数の設定方法が異なるという発見についての備忘録。</description><pubDate>Sat, 01 Apr 2023 00:00:00 GMT</pubDate><category>Anaconda</category></item><item><title>【Python】pyautogui入門 -定型作業を自動化してみる-</title><link>https://suntory-n-water.com/blog/introduction-pyautogui-automating-routine-tasks/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/introduction-pyautogui-automating-routine-tasks/</guid><description>PyAutoGUIとOpenCVを使ってメルカリの定型作業を自動化する方法について。</description><pubDate>Mon, 27 Mar 2023 00:00:00 GMT</pubDate><category>Python</category><category>OpenCV</category><category>自動化</category><category>pyautogui</category></item><item><title>Excel メジャーじゃないけど知っておくと便利な小技3選</title><link>https://suntory-n-water.com/blog/3-tips-excel-arent-major-useful/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/3-tips-excel-arent-major-useful/</guid><description>職場でExcelを使う際によく使うショートカットキーやコマンドを紹介。</description><pubDate>Sun, 19 Feb 2023 00:00:00 GMT</pubDate><category>Excel</category></item><item><title>Django テンプレートタグに空白を入れると認識してくれません</title><link>https://suntory-n-water.com/blog/django-template-tags-not-recognized-if/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/django-template-tags-not-recognized-if/</guid><description>Djangoテンプレートタグで空白を入れると認識されない問題についての備忘録。</description><pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate><category>Python</category><category>HTML</category><category>Django</category></item><item><title>技術書の読書術をざっくり読んで個人的に重要な部分をまとめてみた。</title><link>https://suntory-n-water.com/blog/i-quickly-read-through-book-read/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-quickly-read-through-book-read/</guid><description>技術書の読書術の重要な部分をまとめた備忘録。効果的な読書方法とアウトプットについて。</description><pubDate>Mon, 06 Feb 2023 00:00:00 GMT</pubDate><category>読書</category></item><item><title>【雑記】これ以上心臓に負荷をかけるな【光で目覚めよう】</title><link>https://suntory-n-water.com/blog/dont-put-any-more-strain-your/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/dont-put-any-more-strain-your/</guid><description>アラーム音による心臓への負担を軽減するため、光で目覚める方法を提案する雑記。</description><pubDate>Sun, 22 Jan 2023 00:00:00 GMT</pubDate><category>雑記</category></item><item><title>2022年秋 応用情報技術者試験&quot;&quot;不&quot;&quot;合格体験記</title><link>https://suntory-n-water.com/blog/fall-2022-applied-information-technology-engineer/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/fall-2022-applied-information-technology-engineer/</guid><description>応用情報技術者試験の不合格体験をもとに、なぜ不合格だったのかを振り返る雑記。</description><pubDate>Fri, 23 Dec 2022 00:00:00 GMT</pubDate><category>資格</category></item><item><title>リーダブルコードの個人的重要部分をざっくりまとめてみた</title><link>https://suntory-n-water.com/blog/rough-summary-important-parts-readable-code/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/rough-summary-important-parts-readable-code/</guid><description>リーダブルコードの重要な部分をざっくりまとめて、振り返れるようにした備忘録。</description><pubDate>Sat, 03 Dec 2022 00:00:00 GMT</pubDate><category>初心者</category></item><item><title>PyAutoGUI 画像認識と拡大比率の問題</title><link>https://suntory-n-water.com/blog/pyautogui-image-recognition-magnification-ratio-issue/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/pyautogui-image-recognition-magnification-ratio-issue/</guid><description>PyAutoGUIを用いた作業自動化で発見した画像認識の課題。PCの画面解像度が異なる場合の画像認識の問題について。</description><pubDate>Mon, 28 Nov 2022 00:00:00 GMT</pubDate><category>Python</category><category>OpenCV</category><category>画像認識</category><category>pyautogui</category></item><item><title>Java コンパイルができない</title><link>https://suntory-n-water.com/blog/unable-compile-java/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/unable-compile-java/</guid><description>Java学習中にコンパイルができず無駄に時間を浪費した経験からの備忘録。Eclipseを使用したコンパイルエラーの解決方法。</description><pubDate>Wed, 23 Nov 2022 00:00:00 GMT</pubDate><category>Java</category><category>Eclipse</category></item><item><title>Python BeautifulSoup find()を呼び出すつもりが、find_all()を呼び出してしまったのでしょうか？</title><link>https://suntory-n-water.com/blog/python-beautifulsoup-did-you-mean-call/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/python-beautifulsoup-did-you-mean-call/</guid><description>Pythonでスクレイピングする際に何度も遭遇したfind()とfind_all()の使い分けエラーについての備忘録。</description><pubDate>Sat, 12 Nov 2022 00:00:00 GMT</pubDate><category>Python</category><category>スクレイピング</category><category>BeautifulSoup</category></item><item><title>【MySQL】CSVファイルをDBにインポートする</title><link>https://suntory-n-water.com/blog/importing-csv-file-into-database/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/importing-csv-file-into-database/</guid><description>MySQLにCSVファイルをインポートする際に躓いた点と解決方法をまとめた備忘録。データベース、テーブル、権限設定について。</description><pubDate>Fri, 11 Nov 2022 00:00:00 GMT</pubDate><category>MySQL</category><category>CSV</category></item><item><title>令和3年度秋 基本情報技術者試験 合格体験記</title><link>https://suntory-n-water.com/blog/fall-2021-fundamental-information-technology-engineer/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/fall-2021-fundamental-information-technology-engineer/</guid><description>基本情報技術者試験に合格するまでに使用した参考書やWebサイト、午前免除試験での合格経験をまとめた体験記。</description><pubDate>Thu, 27 Jan 2022 00:00:00 GMT</pubDate><category>資格</category></item><item><title>セブンイレブンで最適な食品を線形計画法を用いて決めたい</title><link>https://suntory-n-water.com/blog/i-want-use-linear-programming-determine/</link><guid isPermaLink="true">https://suntory-n-water.com/blog/i-want-use-linear-programming-determine/</guid><description>線形計画法を用いてセブンイレブンの食品から栄養バランスと価格を最適化した食事を選択。PuLPライブラリを使用してPFCバランスと価格を考慮した最適解を計算した実験記録。</description><pubDate>Sat, 11 Dec 2021 00:00:00 GMT</pubDate><category>Python</category><category>線形計画法</category></item></channel></rss>