ブックマーク / zenn.dev (41)

  • APIもDBも東京なのに、全クエリが太平洋横断していた話

    はじめに AI x 旅行アプリのアバトラベル(iOS / Android)は、2026年6月にフルリニューアルしました! ところがその直後から、「ほぼ全てのAPIが一律に遅い」 という不思議な症状に悩まされていました。弊社に協力いただいているつよつよエンジニアの栗田さんの調査により、原因はAPIのコードでもDBのチューニング不足でもなく、接続先ホスト名のDNS解決にありました。 バックエンドAPIFastAPIPython)、Fly.io東京リージョン(nrt)で稼働 DB:PlanetScale(AWS ap-northeast-1 = 東京) という同一リージョン構成にもかかわらず、全クエリが太平洋を渡って米オハイオへ往復していたのです。 環境変数を1つ変えるだけでSELECTが約35倍速くなった一方、原因にたどり着くまでの切り分けにはそれなりの回り道がありました。同じ構成(ジオD

    APIもDBも東京なのに、全クエリが太平洋横断していた話
  • AIに8割書かせたコード、半年運用の答え合わせ。効いた3つと、腐った3つ

    半年前に「AIに8割書かせたコードを、保守できるようにやっていること」という記事を書きました。ありがたいことに、自分がいちばん読まれた記事になりました。 あれから半年、その方針のまま実際に運用してみて、答え合わせができました。先に言うと、保守性は「足す」では買えませんでした。コメントを足す、ドキュメントを足す、きれいな抽象を足す。そのほとんどは、半年後に腐っていました。効いたのは、少数の「効く型」だけです。 この記事では、良かれと思って足したのに無駄だった3つを先に、そのあと半年後も効いていた3つを書きます。前編が「やること」の記事なら、こっちは「やらなくてよかったこと」の記事です。 効かなかった、腐った3つ フェアじゃないので、外した対策から書きます。 1. AIに盛らせた、大量のコメントとdocstring いちばん腐りました。AIは頼めばいくらでもコメントを書きます。半年前の自分は「

    AIに8割書かせたコード、半年運用の答え合わせ。効いた3つと、腐った3つ
  • AIが書いたコードはAIが見る ── レビューが詰まらず、品質はむしろ上がる

    これが今のcortexの「典型的な1ヶ月」。 世間でよく聞く「AIで開発スピードを上げても結局レビューが詰まる」「AIが書いたコードは品質が下がる」という声は、cortexの中では構造的に起こりにくいパイプラインで受け止めています。ここから順に分解します。 「AIが書くとレビューが詰まる」を構造で防ぐ 通説:レビューが新しいボトルネックになる AIで書く速度が上がるほど、書いたコードを見る側(レビュアー)の負荷が比例して増える。Anthropicの社内ブログ(How Anthropic teams use Claude Code)でも、書く側より見る側にボトルネックが移っていること、シニアエンジニア仕事がコードを書くことよりAI出力を統合・レビューすることに寄ってきていること、が報告されています。 これはcortexでも実際に同じ現象が起きました。Claude Codeをフル稼働させた瞬

    AIが書いたコードはAIが見る ── レビューが詰まらず、品質はむしろ上がる
    casm
    casm 2026/05/26
    「通常のAIレビューは PRのdiffしか見ません。(…)cortexではPart 2で書いた Product Graph(cpg)── コード・ドキュメント・DB・インフラを1つのグラフに統合し(…)た知識基盤 ── をAIレビュアーに渡し」
  • 【前編】PowerPointの中身は「入れ子の箱」だった ── python-pptxでスライド構造を丸裸にする

    1. PPTXファイルの正体 ── ZIP の中の XML 群 PowerPointファイルは、見た目はひとつの塊だが、実態は XMLファイルの集合体をZIPで圧縮したもの だ。 スライド体(slide*.xml)とは別に、デザインを司る「マスター」「レイアウト」「テーマ」が独立したファイルとして存在している。この分離が、後述するテンプレートの概念に直結する。 python-pptx は、このZIP内のXML群を Python の Presentation オブジェクトに変換してくれる。開発者は XML を意識せずに、Python のオブジェクト操作だけでスライドを読み書きできる。 2. PPTXの5層構造 ── コードで辿る入れ子の箱 PPTXの中身は、マトリョーシカのような入れ子構造を持っている。python-pptx はこれを忠実にオブジェクトモデルとして表現する。 文字の装飾(太

    【前編】PowerPointの中身は「入れ子の箱」だった ── python-pptxでスライド構造を丸裸にする
  • 転職してエクセルファイルを読み解いてHTMLに変換する仕事をしていたが、悪役令嬢は出てこないし、勇者パーティーも追放されなかった話

    こんにちは。アルダグラムのテクニカルフェロー(自称?)をしている蓬莱です。 (特に社内外でアナウンスされているわけでもないので、当に自称かも知れない。。) とあるMから始まるGAFAM企業をやめてブラブラしていたところを、縁があってアルダグラムに入社させていただく事になりました。(もうちょっとで半年になります) 突然ですが、皆さん、エクセルファイルを読んでますか? 「普通に仕事でエクセル使ってるわー。嫌やけど。」 みたいな話じゃありません。 エクセルファイルをアプリではなく人間が読むという話です。 「ちょっと何言ってるかわかんない・・」 って帰ろうとしたアナタ!ほんのもう少しだけお付き合いください。。(頼みますから・・) とりあえず、このgif動画を見てみてください。(gifなので巻き戻せないのが難点) エクセルファイルをhtmlに変換している例 高速にエクセルファイルをHTMLファイル

    転職してエクセルファイルを読み解いてHTMLに変換する仕事をしていたが、悪役令嬢は出てこないし、勇者パーティーも追放されなかった話
  • Anthropic社員のClaude Code活用術8選 — 公式情報から読み解く実践テクニック

    ポイントは、これらが一回のプロンプトの工夫ではなく、 プロジェクト全体の「環境」として蓄積される ことです。調べていくうちに気づいたのは、これらのテクニックに共通するパターンがあるということ — ポッドキャストではこの考え方を「 複利的エンジニアリング 」(筆者訳、原文では compounding という表現)と表現していました。使えば使うほどClaudeが賢くなる構造だと言えそうです。 参考:2026 Agentic Coding Trends Report、Anthropic公式ブログ 2. コードを書く前の戦略を使い分ける Claude Codeに、いきなり「実装して」は効率が悪いとのことです。ただし、計画の立て方にも複数のアプローチがあり、 ゴールが明確なときと、何が必要かまだわからないときでは戦略が異なります 。 ゴールが明確なとき → Plan Mode "If my goal

    Anthropic社員のClaude Code活用術8選 — 公式情報から読み解く実践テクニック
  • RAGで足りなくなったので Agentic Search を調べてみた

    はじめに 「なんでそこにあるデータを見てくれないかなぁ(泣)」…RAGを自作した人なら、一度はこう思ったことがあるのではないでしょうか。 私自身、社内情報検索用のチャットボットをRAGで構築しましたが、回答精度がなかなか上がりませんでした。チャンクサイズを調整し、ハイブリッド検索を導入し、リランキングを入れ、プロンプトをこねくり回しても、ユーザーの曖昧な一言で検索が空振りする。そこにあるはずのデータに辿り着けない。加えて、言語モデルやツールがどんどん進化するので、チャットボットへの期待値も勝手に上がっていきます。質問者は「当然正確に答えてくれるだろう」と思っている。回答の生成自体は言語モデルがよしなにやってくれますが、回答の元になる情報は社内のデータにきちんと辿り着かないといけない。ここがボトルネックでした。 この壁を越えるヒントが、Agentic Searchにありました。 2025年前

    RAGで足りなくなったので Agentic Search を調べてみた
  • Claude Code のリモートコントロールとスマホ通知の始め方

    tl;dr Claude Code のリモートコントロール機能を使ってスマホやブラウザからローカルパソコンで開いているセッションを操作できるよ Notification Hook + Bark を使えばスマホにプッシュ通知も飛ばせるよ この記事の通りに進めると、バナー通知をタップすれば iOS アプリで自動でセッションが開くようになるよ Claude Code のリモートコントロール機能はいいぞ! このポストは多くの方に見てもらえました。スマホで Claude Code を操作することはそれだけ関心のあることなのでしょう。公開されたばかりなこともあってバギーではあるものの、Anthropic からこの機能が公開されたのは当にありがたいです。ただ、現状はデフォルトで通知をスマホで受け取ることができない。そこで、その場しのぎではありますが、私なりに設定している方法を記事にまとめました。 前半

    Claude Code のリモートコントロールとスマホ通知の始め方
  • 小1にGemini使わせてみたら、AIより先に困ったことがあった

    はじめに こんにちは!QAエンジニアのAyakaです。 前回の記事では、子供とGeminiを使ってみた体験と、AIとの距離感について書きました。 今回はそのときに出てきた、もう少し技術寄りの気づきについてです。 小1はキーボード入力がほぼできないので、音声入力でGeminiを使いました。 ここで想定外のところに壁がありました。 小1の操作フロー 実際の流れはこんな感じです。 マイクボタンを押す 子供が話す 音声認識結果が「入力欄」にテキスト化される 紙飛行機ボタンを押して送信 ここまでは一見スムーズでした。 起きたこと 実際に表示された入力欄には 「答えは1個」 と出ていました。 大人から見ると普通の文章ですが、小1にとっては 「答」 「個」 どちらもまだ習っていない漢字でした。 読めない文字が含まれているだけで、「これで合ってるのかな?」という不安につながっていました。 音声で話した内容

    小1にGemini使わせてみたら、AIより先に困ったことがあった
    casm
    casm 2026/02/19
    なるほど英語ネイティブになれば解決するのか。
  • なぜ、Claude Codeは、RAGを捨ててAgentic Searchを選んだのか?

    先日、Claude Codeの開発者でありAnthropicのエンジニアでもあるBoris Cherny氏が、「初期のClaude CodeではRAG+ローカルベクターDBを使っていたが、最終的にAgentic Searchの方が圧倒的に良いと分かった」 という発言がありました 私はBoris氏のこの投稿を見たとき「やっぱ、そうだよな」と思いました。なぜなら私もRAGで検索システムを作った際に似たようなことを考えていたからです。この記事ではこの騒動の背景を整理しつつ、なぜClaude CodeがRAGを捨ててAgentic Searchを選んだのかを説明します。 Boris Cherny氏について Boris Cherny氏はAnthropicのエンジニアであり、Claude Codeの創設者 でもあります。また『Programming TypeScript』の著者でもあり、複数の技術系ポ

    なぜ、Claude Codeは、RAGを捨ててAgentic Searchを選んだのか?
  • Claude Codeで「AI部下10人」を作ったら、勝手にバグ直して「違反は切腹」ルールを追加してきて、オレは適当にしゃべるだけになった

    結論 「テストして」って言っただけなのに、AIが自分でバグ見つけて、自分で直して、「違反は切腹」ってルールを自分で追加してきた。 人間、何もしてない。 何を作ったか Claude Code × tmux でホワイトカラー向けマルチタスクツールを作った。 名前は multi-agent-shogun。 戦国時代の軍制をモチーフに、将軍1名・家老1名・足軽8名の階層構造でAIエージェントを統制する。 上様(人間) ↓ 「やれ」 将軍(Claude Code) ↓ 「家老、タスクを分解せよ」 家老(Claude Code) ↓ 「足軽ども、並列で実行せよ」 ┌──┬──┬──┬──┬──┬──┬──┬──┐ │1 │2 │3 │4 │5 │6 │7 │8 │ ← 8人同時に動く └──┴──┴──┴──┴──┴──┴──┴──┘ 足軽(Claude Code × 8) とにかくshogunにぶち

    Claude Codeで「AI部下10人」を作ったら、勝手にバグ直して「違反は切腹」ルールを追加してきて、オレは適当にしゃべるだけになった
  • Anthropic ハッカソン優勝者のClaude Codeの設定がすごすぎた

    概要 まるで新入社員に業務マニュアルを渡す感覚で、Claude Codeに「このルールで動作して」「この作業は専用のツールや手順に任せて」といった指示を与えられます。プログラミング経験がなくても、用意された設定ファイルを適用するだけで、実務に耐える開発環境を簡単に整えられる便利なテンプレート集です。 このプロジェクトは、Anthropic社のCLIツール「Claude Code」を最大限活用するための設定ファイル集です。 プロジェクト構成 everything-claude-code/ ├── agents/ # 専門エージェント定義 ├── commands/ # スラッシュコマンド ├── contexts/ # コンテキスト切り替え設定 ├── examples/ # 設定ファイルのサンプル ├── hooks/ # イベントトリガー自動化 ├── mcp-configs/ # MC

    Anthropic ハッカソン優勝者のClaude Codeの設定がすごすぎた
  • CTOとして会社に置くと決めた、ありがたい技術書5選

    技術を紹介したい! Recustomer株式会社でCTOをしている、眞鍋と申します。 まだCTOとしては日が浅いのですが、 先日、Startup CTO of the Year 2025 でオーディエンス賞をいただくなど、 少しずつCTOらしい活動が増えてきました。 どんな会社にしていきたいかや、どんなエンジニア組織を作っていきたいかというお話は、 いろいろな登壇やエントランスブックなどでお話してきました。 一方、一人のエンジニアとして好きなのお話はしたことがなく、 「エンジニアの皆さんに是非読んでほしい」 という気持ちも込めて、会社に置いているを紹介してみようかなと思います。 注意 ここで紹介するというのは、5~10年前くらいに非常にお世話になったを中心にし、 あまり屋さんやブログ等で見かけなくなったを中心に紹介しようと思っています。 あと、日語で書かれているにして、ち

    CTOとして会社に置くと決めた、ありがたい技術書5選
  • 97.5%の精度を実現!Gmailで動く反社チェックAIを1日で作ってみた

    検出精度 ✅ 全体精度: 97.5% - 80件中78件で正確な判定を実現 ✅ DB検出: 100% - データベース照合による検出は完璧 ⚠️ LLM検出: 95% - Web検索+LLM判定で1件誤判定 ⚠️ 中リスク判定: 95% - 疑わしい情報の分類で1件誤判定 技術スタック 今回は特にスピード重視で作りつつ、一定の保守性も担保できるような仕組みにするために、できるだけ慣れている言語・環境でかつ、AIエージェント開発と相性が良く、実現したい機能のライブラリが十分に揃っているという3つの条件をもとに技術選定を行いました。 バックエンド 言語: Typescript 実行環境: Bun Webフレームワーク: Hono バリデーション: Zod DB: PostgreSQL(w/Drizzle ORM) LLM API: Azure OpenAI GPT-4.1: データのパース、検

    97.5%の精度を実現!Gmailで動く反社チェックAIを1日で作ってみた
  • 【書評】400ページ以上に渡り解説される、Azure RAGの構成サービスに関する知識理解を確かめられる資格対策本のご紹介(AI-102本)

    書の特長と概要 何の開発に役立つ? こちらの書籍の範囲はAzure AIの中でも実装済みのML/LLMモデルをAPI呼び出しで扱う製品をターゲットとしています(Azure MLは除く)。 その領域はAzureでRAG/Agentシステムを構築する上でとても重要な要素を担うサービス群です。AzureでRAGを構築したことがある方は主にデータの抽出や加工に関する前処理にAzure Document Intelligenceを、リトリーバル環境としてマネージドな検索サービスであるAzure AI Searchを、LLMをマネージドな環境で提供するAzure OpenAI Serviceを利用したことがある人も多いのではないかと思います。Azure Content Safetyを用いた入出力のフィルタリングの話やハイブリッドサーチ、その他にもRAG関係ないシンプルな検索システムの構築や紙媒体をデ

    【書評】400ページ以上に渡り解説される、Azure RAGの構成サービスに関する知識理解を確かめられる資格対策本のご紹介(AI-102本)
    casm
    casm 2025/02/28
    「…リブランディングされる前の製品名…など読者の理解を助けるためのコメントが差し込まれており」
  • NFCカードを使って読み取れる名刺を作った

    オフラインイベントの人気が盛り返してきた最近では、懇親会などで名刺をいただく機会が増えました。 そこで質問です。 名刺をいただいた後に、帰宅して見返したことがあるでしょうか? 僕は恥ずかしながら名刺をいただいても実のところ家に帰ってストックするだけのことが多いです。 なぜ、NFCカードで名刺を作るのか? ネットワーキング活動で名刺を交換することの目的を考えてみましょう。 自分の名前、存在を知ってもらうことです。 名刺を交換することは、名刺を渡した人が自分の名前を帰った後も覚えているという状況を作らなければ達成できません。 そこで、NFCカード名刺です。 NFCカードを使えば、その場で読みこんでもらってリンクからSNSのフォローという行動までその場で明確につなげることができるほか 「差し上げます。上書きできるので再利用してください」 と名刺を渡した人がもしその気になれば、家に帰ってからもう一

    NFCカードを使って読み取れる名刺を作った
    casm
    casm 2025/02/13
    名刺面はシールという力技。
  • RAG開発の超入門【RaggleのQuickStart | Pythonのソースコードあり】

    はじめまして、ますみです! 株式会社Galirage(ガリレージ)という「生成AIに特化して、システム開発・アドバイザリー支援・研修支援をしているIT企業」で、代表をしております^^ この記事では、入門者向けの「RAG」の開発手法を解説します! もしもPythonを使ったことがない方は、下記のZennを参考にしてください。 また、RAGについての基礎知識を学びたい方は、下記のZennを参考にしてください。 さらに、RaggleというRAGの精度を競うコンペを開催しているため、ご興味のある方は、こちらのコンペを通して、RAGのスキルアップにご活用ください! なんと1位の人には、賞金30万円も付与されます🏆 それでは、早速解説をしていきます! この記事の内容を習得すれば、Raggleに応募できる状態になるため、ぜひ皆さんもRaggleのコンペに挑戦していただけたら幸いです^^ 全体の流れ

    RAG開発の超入門【RaggleのQuickStart | Pythonのソースコードあり】
  • 長い処理には通知音コマンドを仕込んでおくと捗るぞ

    こんにちは! Magic Moment フロントエンドエンジニアの @morishin です。 この記事は、Magic Moment Advent Calendar 2024 4 日目の記事です。 はじめに 開発あるある 皆さん開発をしていて、コマンドの "待ち" が長いとき、こんな経験はありませんか。 「ビルドに時間がかかるなぁ」 (別の作業をする) 「もう終わったかな (ターミナルチラー」 「まだかー」 (以降無限ループ) 作業に集中できない! 逆に 「このインストール時間かかるなぁ」 「終わるまでちょっと休憩しようかな (スヤァ」 〜3 時間後〜 「...あっ、いつの間にか終わってた!」 処理の完了に気付かずついつい休憩しすぎた! ありませんか?ありますよね? まあ休憩しすぎたっていうのはないにしても、実はエラーで処理が中断していたのに気付かなかった、というのはあるあるな気がします。

    長い処理には通知音コマンドを仕込んでおくと捗るぞ
    casm
    casm 2024/12/05
    「いったん Ctrl-Z でサスペンドし、fg または bg コマンドで再開させる際に仕込めば大丈夫です。」
  • RAGの「文脈が消える問題」を解決する「LongRAG」

    株式会社ナレッジセンスは、エンタープライズ企業向けにRAGを提供しているスタートアップです。記事では、RAGの性能を高めるための「LongRAG」という手法について、ざっくり理解します。 この記事は何 この記事は、RAGの文脈消える問題を克服する新手法「LongRAG」の論文[1]について、日語で簡単にまとめたものです。 今回も「そもそもRAGとは?」については、知っている前提で進みます。確認する場合は以下の記事もご参考下さい。 題 ざっくりサマリー LongRAGは、「文書全体を読まないと正答できない」ようなタイプの質問に対しても、RAGの精度を上げるための新しい手法です。中国科学院・清華大学の研究者らによって2024年10月に提案されました。 ざっくり言うと、LongRAGとは、「階層化」+「フィルタリング」です。 2つとも、よく知られたRAGの手法ですが、これらを組み合わせるこ

    RAGの「文脈が消える問題」を解決する「LongRAG」
  • Webサービス公開前のチェックリスト

    個人的に「Webサービスの公開前チェックリスト」を作っていたのですが、けっこう育ってきたので公開します。このリストは、過去に自分がミスしたときや、情報収集する中で「明日は我が身…」と思ったときなどに個人的にメモしてきたものをまとめた内容になります。 セキュリティ 認証に関わるCookieの属性 HttpOnly属性が設定されていること XSSの緩和策(あくまでも緩和) SameSite属性がLaxもしくはStrictになっていること 主にCSRF対策のため。Laxの場合、GETリクエストで更新処理を行っているエンドポイントがないか合わせて確認 Secure属性が設定されていること HTTPS通信でのみCookieが送られるように Domain属性が適切に設定されていること サブドメインにもCookieが送られる設定の場合、他のサブドメインのサイトに脆弱性があるとそこからインシデントに繋がる

    Webサービス公開前のチェックリスト