Hi there 👋

SRE に憧れているインフラエンジニアの備忘録

Cloudflare D1 が本当にトランザクションをサポートしていないのか確かめた

最近、こんな記事を見ました。 Cloudflare D1でトランザクションが使えない問題 Zenn このブログしかり、Cloudflare で D1 を使って色々アプリケーションを動かしているので、ちゃんと自分の手で確かめてみよう、と思い確認してみました。 結論 SQLite はトランザクションをサポートしている。 Cloudflare D1 ではネイティブトランザクションをサポートしていないが、batch() によって制約はあるもののトランザクションを実現できる。 実際にやってみる SQLite はトランザクションを正式にサポートしています。 ローカル D1 環境で、実際にトランザクションが機能するかどうかを確認していきます。 wrangler init d1test category は Hello World Example、type は Worker Only を選択しました。 "d1_databases": [ { "binding": "DB", "database_name": "d1test-db", } ] セットアップ直後ではローカルDBは構築されていませんが、以下のようなコマンドを実行することで作成されます。 npx wrangler d1 execute d1test-db --local --command "select * from users" 以下のように sqlite ファイルが作成されていればOKです。 % ls .wrangler/state/v3/d1/miniflare-D1DatabaseObject e7352547963de7050bd7d94658afc4fe78b61811b7815da12d90be8e863abf4d.sqlite e7352547963de7050bd7d94658afc4fe78b61811b7815da12d90be8e863abf4d.sqlite-shm e7352547963de7050bd7d94658afc4fe78b61811b7815da12d90be8e863abf4d.sqlite-wal SQLite コマンドでデータベースに接続します。 ...

February 6, 2026 · 3 min · Me

Neovim で Markdown 編集時に画像を貼り付けたい

このブログは Neovim を使って書いているんですが、画像を挿入するときはかなり面倒です。 以前 Windows 環境で記事を書いていたときは、記事で紹介した VSCode プラグインの Paste Image を使っていました。 コピペでmarkdownに画像を取り込む VS Code plugin Paste Image を試す 以前の記事で軽く紹介させてもらいましたが、コピペするだけで markdown に画像が挿入できる VS Code プラグイン Paste Image を試したいと思います。 真面目に調べたら、すでにとても多くの人が試していて、何番煎じかという感じですが。。。気にせずやっていきます。 はじめに このブログは Windows の WSL2 上の vim で作っているので、そもそも VS Code ではなく Vim で同じことが実現できればそっちのほうがいいなと考えました。 で少し調べたところ、md-img-paste という vim プラグインがありました。 結論からいうと、テキストはクリップボード共有できたのですが、md-img-pasteを使った画像ペーストはできませんでした。できた方がいれば教えてください。 テキストのクリップボード共有はこちらを参考にご対応いただければ。ちなみに、これは僕だけかもしれませんが、DISPLAY変数を設定した状態だと vim 起動自体がとても遅く(体感3秒くらい)なりました。。。なので、結局クリップボード共有自体使うのをやめました。 設定方法 Paste Image をお持ちの VS Code に追加します。 config.jsonに以下の設定を追加します。 pasteImage.basePath markdown上で指定する画像ファイルのパスのベースパスを指定します。ここを基準として、pasteImage.pathへの相対パスを出力する形になります。 Hugo では、.../static/ がデフォルトのstaticコンテンツ置き場として構成されています。参考 さらに、僕の場合は画像ファイルはさらにその配下に /img を作って格納するようにしていますので、markdown からは基本的に/img/xxx.pngのような形で指定するようにさせたいわけです。結局、hugo の static ファイル置き場に合わせる、が基本的なやり方になるだろうと理解しています。 pasteImage.insertPattern ペースト時に生成される画像ファイル名を指定します。特にこだわりなければそのままでOKです。 pasteImage.path ペースト時に生成される画像ファイルの置き場所を指定します。画像置き場やmarkdownファイル置き場の設定によって変わってくるので、こちらは個人の設定に合わせてご対応ください。 現状の僕の設定を以下に公開します。 { @a2ito Mac になってからはエディタを Neovim にしており、VS Code にイチイチ切り替えるのが嫌で上記のプラグインも使わなくなっていました。Mac では Shift + Command + 4 のショートカットで画面キャプチャを取得できるので、キャプチャ取得→リネームして画像フォルダに保存→マークダウンでファイルパスを追記、というとても面倒な方法で画像を挿入していました。 ...

February 2, 2026 · 1 min · Me

Do not require status checks on creation オプションについて調べてみた

課題認識 以前、以下の記事で Dependabot について調査しました。 Dependabot でパッケージを自動アップデートする はじめに Dependabot とは、GitHubが提供するセキュリティツールです。リポジトリの依存関係を監視し、脆弱性のあるパッケージや古いバージョンを検知して自動でプルリクエストを作成してくれます。 サプライ チェーンのセキュリティに関するリファレンス - GitHub ドキュメント GitHub Docs 実際に Dependabot を使って、脆弱性のあるパッケージを自動アップデートしてみましょう。 まずは、dependabot の設定ファイルを以下のように作ってみます。 version: 2 updates: # Enable version updates for npm - package-ecosystem: @a2ito その際、Dependabot によって作成された PR の自動マージを適切に運用できるよう、(ビルドやテストが失敗した場合に自動マージされないよう)Require status checks to pass を有効化しました。 このオプションの追加設定として Do not require status checks on creation というものがありました。このオプションはブランチ(や PR)が作られた時点では、ステータスチェックを必須にしないというもので、push 後にしか CI が動かないケースなど、ステータスチェックの制限によってPRがマージができないことを防ぐためのオプションだと理解しました。 説明を読んでもイマイチ理解できなかったので、改めて実機検証を通じて理解したいと思いました。 改めて説明を読む 当該オプションの説明には以下のように記載されています。 Allow repositories and branches to be created if a check would otherwise prohibit it. ...

February 1, 2026 · 2 min · Me

OpenCode から無課金で Gemini を使ってみる

以前の記事で OpenCode・ローカルLLM を試してみましたが、今回は 商用LLM を試していきます。 OpenCode と ローカルLLM を試してみる 今回は、OpenCode とよばれる OSS の AI エージェント + LLM API を活用して、 コスパよいローカルAIエージェント環境を作っていきたいと思います。 OpenCode とは OpenCode は、ソフトウェアエンジニアリングタスクを支援するために設計されたオープンソースの AI エージェントです。 ターミナル上で動くため、どんなエディタにも対応します。僕は普段 Neovim で作業しているため、ターミナルで完結できるので使いやすいと感じます。 Big Pickle OpenCode では、インストール後からそのまま使えるフリーの LLM “Big Pickle” が提供されています。 このモデルで色々と使ってみましたが、複雑・難解なタスクはわかりませんが、簡単なタスク・インプットが豊富なタスクは十分実用レベルと感じました。日本語でいけます。 Zen Curated list of models provided by OpenCode. OpenCode ローカルLLM を試す 今回は、無料で使えるローカルLLMの OpenCode 上でのセットアップの手順を紹介します。 ローカルLLM をローカル環境で動かすためのランタイムとして Ollama と LM Studio を試してみます。 Ollama Ollama ダウンロードページに移動します。 Download Ollama on macOS Download Ollama for macOS インストール確認 @a2ito ※ 2026年2月時点の情報になります。 ...

February 1, 2026 · 3 min · Me

OpenCode と ローカルLLM を試してみる

今回は、OpenCode とよばれる OSS の AI エージェント + LLM API を活用して、 コスパよいローカルAIエージェント環境を作っていきたいと思います。 OpenCode とは OpenCode は、ソフトウェアエンジニアリングタスクを支援するために設計されたオープンソースの AI エージェントです。 ターミナル上で動くため、どんなエディタにも対応します。僕は普段 Neovim で作業しているため、ターミナルで完結できるので使いやすいと感じます。 Big Pickle OpenCode では、インストール後からそのまま使えるフリーの LLM “Big Pickle” が提供されています。 このモデルで色々と使ってみましたが、複雑・難解なタスクはわかりませんが、簡単なタスク・インプットが豊富なタスクは十分実用レベルと感じました。日本語でいけます。 Zen Curated list of models provided by OpenCode. OpenCode ローカルLLM を試す 今回は、無料で使えるローカルLLMの OpenCode 上でのセットアップの手順を紹介します。 ローカルLLM をローカル環境で動かすためのランタイムとして Ollama と LM Studio を試してみます。 Ollama Ollama ダウンロードページに移動します。 Download Ollama on macOS Download Ollama for macOS インストール確認 ...

January 25, 2026 · 3 min · Me