hn スコア: 8/10

GitHub 以前の世界: OSS のソーシャルインフラはどう変わったか

Before GitHub

Flask や Jinja の作者 Armin Ronacher が、GitHub 登場以前の OSS 開発を振り返るエッセイ。SourceForge、自前の Trac/Subversion、Bitbucket を経て GitHub に移行した経験から、GitHub が OSS のソーシャルインフラとして果たした役割を論じている。かつては依存先のプロジェクトは少数の著名メンテナが管理する信頼モデルだったが、GitHub と npm の登場でマイクロ依存が爆発的に増加した。GitHub の信頼性低下と Copilot 偏重のプロダクト方針に対する失望を述べつつ、次の時代のコードホスティングのあり方を問いかけている。

#OSS #GitHub #History #DevCulture
hn スコア: 7/10

Cursor Camp: neal.fun が作った AI コーディング体験ゲーム

Cursor Camp

The Password Game や Absurd Trolley Problems で知られる neal.fun の新作インタラクティブ Web 体験。AI コーディングエディタ Cursor をテーマにした遊び心のあるコンテンツで、HN で544ポイントを獲得した。neal.fun の特徴である、一見シンプルだが次第にカオスになっていく構成が AI 時代のコーディング体験を風刺している。

#AI #Humor #WebGame #Cursor
hn スコア: 8/10

forge の連合が必要だ: AT Protocol でコード協業を分散化する Tangled

We need a federation of forges

GitHub への依存から脱却するために、AT Protocol を活用した分散型コードホスティングプラットフォーム Tangled を提案する記事。コード転送には従来通り git を使い、issue や pull request などのコミュニケーション層に AT Protocol を採用する設計で、異なるサーバー間でのフォークやクロスサーバー pull request を実現する。email + git の時代、GitHub + git の時代を経て、AT Protocol + git という新しい組み合わせを提示している。

#OSS #ATProtocol #Git #Decentralization
hn スコア: 8/10

FastCGI: 30年経った今でも HTTP より優れたリバースプロキシ用プロトコル

FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies

HTTP をリバースプロキシとバックエンド間のプロトコルとして使うことの危険性を、直近の Discord の desync 脆弱性を例に解説。HTTP/1.1 はメッセージの明示的なフレーミングがなく、Content-Length と Transfer-Encoding の解釈の違いによる request smuggling 攻撃が後を絶たない。一方 FastCGI は8バイト固定長ヘッダによる明確なフレーミングを持ち、Go の標準ライブラリで http.Serve を fcgi.Serve に変えるだけで導入でき、nginx や Caddy の設定も1行の変更で済む。

#Security #WebServer #Protocol #DevOps
hn スコア: 8/10

Ramp の Sheets AI に間接プロンプトインジェクションで財務データを窃取できる脆弱性

Ramp's Sheets AI Exfiltrates Financials

FinTech 企業 Ramp のスプレッドシート AI 機能に、間接プロンプトインジェクションによるデータ窃取の脆弱性が発見された。外部ソースから取り込んだデータセットに白文字で隠されたプロンプトインジェクションを仕込むと、AI が機密の財務モデルデータを収集し、外部通信を行う数式を挿入する。ユーザーの承認なしにネットワークリクエストが発生するため、human-in-the-loop なしで動作するエージェント型 AI の本質的なリスクを示している。Ramp は3月16日に修正済み。

#AI #Security #PromptInjection #FinTech
hn スコア: 7/10

AI にゲームを遊ばせる: プレイテスト支援のためのエージェント型テストハーネス

Letting AI play my game – building an agentic test harness to help play-testing

インディーゲーム開発者が、AI エージェントを使ったプレイテスト自動化のためのテストハーネスを構築した体験記。人間のテスターでは網羅が難しい分岐やエッジケースを AI に探索させることで、ゲームバランスの問題やバグの早期発見を実現する。HN で117ポイントを獲得し、ゲーム開発と AI の交差点として注目された。

#AI #GameDev #Testing #Agent
hn スコア: 8/10

法執行機関の偽 DDoS サイトを偶然見つけて閉鎖させてしまった話

I accidentally made law enforcement shut down their fake honeypot

Operation PowerOFF(DDoS-for-hire サービスの取り締まり作戦)を調査中に、オランダ警察が運営する偽の booter サイト「Cyberzap」を発見した経緯。MX レコードが bit.nl を指している点や、支払いが常にエラーになる点から偽サイトと特定。conducting-research-hello-operation-poweroff@lina.sh というメールで登録して調査を進めたところ、運営側がパニックを起こしてサイトを閉鎖してしまった。ハニーポット運用のセキュリティ上の欠陥を明らかにした面白い事例。

#Security #DDoS #LawEnforcement #Humor
zenn スコア: 8/10

国立国会図書館の OCR 技術で完全オフライン日本語 OCR の Chrome 拡張を作った

国立国会図書館のOCR技術を使って、完全オフラインOCRのChrome拡張を作ってみた

国立国会図書館が開発した日本語 OCR モデルをブラウザ内で動作させる Chrome 拡張機能を開発した記事。通信ゼロで動作するため、社外秘資料や個人情報を含む画像でも安全に利用できる。以前から Tesseract.js や yomitoku などの日本語 OCR をブラウザで試してきた知見を活かし、実用レベルの精度をローカル環境で実現している。

#OCR #Chrome #Privacy #WebAssembly
zenn スコア: 7/10

40% キーボードに移行する前に知っておきたかったこと

40%キーボードに移行する前に知っておきたかったこと

30-40% のキー数が極端に少ないキーボードレイアウトへの移行における注意点をまとめた記事。Shift や Ctrl などの修飾キーとレイヤー切り替えキーを「Meta キー」として統一的に扱い、日常的にコマンドを叩くエンジニアは5カラムなど極端にキー数を削った配置への安易な移行を推奨しないと結論づけている。修飾キーの同時押しとレイヤー切り替えの干渉問題や、テンキーレスからの段階的移行を提案している。

#Keyboard #DX #Hardware #Ergonomics
zenn スコア: 7/10

GitHub Copilot の本当の強み 2: トークンベース課金への移行

GitHub Copilotの本当の強み 2

GitHub が2026年6月1日から Copilot の課金体系を「プレミアムリクエスト」から「トークンベース」に変更すると発表したことを受けた分析記事。前回の記事でコスパが最大の強みと紹介していたが、トークンベース課金への移行により状況が変わる可能性を指摘。Claude、Gemini、GPT 等の複数モデルを切り替えて利用できるマルチモデル対応は引き続き強みだが、使用量に応じたコスト管理が新たな課題になると分析している。

#GitHubCopilot #AI #Pricing #DevTools
zenn スコア: 7/10

QA エンジニアのための AI 時代 Playwright 実践ガイド

QAエンジニアのためのAI時代Playwright実践ガイド

Playwright 未経験の QA エンジニア向けに、Page Object Model と Fixtures Pattern でメンテナブルな E2E テスト基盤を構築し、Claude Code で自動修正 PR を生成するまでのハンズオン書籍。docker compose run で動くテンプレートリポジトリを章ごとに進める構成で、最終的に夜間の auto-heal で失敗テストの修正 PR を自動生成する仕組みを実現する。

#Playwright #QA #AI #E2E
zenn スコア: 6/10

TypeScript で unknown を安全に扱う型ガードライブラリ is-kit

TypeScriptでunknownを扱うの、つらくない?

API レスポンスや外部データなど TypeScript で unknown 型を扱う際のストレスを軽減する型ガードライブラリ is-kit の紹介。Zod のようなスキーマ定義アプローチとは異なり、型ガードを組み立てる関数合成ベースの設計を採用している。isString、isNumber などのプリミティブガードを組み合わせて複雑なオブジェクト型のガードを構築でき、軽量で依存関係なしに利用できる。

#TypeScript #Library #TypeSafety #DX
zenn スコア: 6/10

Hono 公式の Inertia アダプタで型が貫通する SPA 開発体験

Hono × Inertia.js が作る新しい型貫通体験に触れてみた

Hono と Inertia.js を組み合わせた SPA 開発の型安全性を検証した記事。サーバー側の c.render() で渡したデータの型がクライアント側の React コンポーネントの PageProps まで自動的に貫通する仕組みを解説。API エンドポイント定義、React Router、useEffect + fetch パターンが不要になり、サーバー/クライアント間の型の不整合が型レベルで検出できる。

#Hono #Inertia #TypeScript #React
zenn スコア: 6/10

仕様駆動開発を4か月続けて見えてきたこと

仕様駆動を取り入れて4ヶ月ほど経ったので思うことなど

少人数チームで仕様駆動開発を4か月間実践した振り返り記事。実装前に仕様書を書き、レビューを経てから開発に入るプロセスにより、手戻りの削減と認識齟齬の早期発見を実現した。プロセスが重くなりがちな点への対策として、仕様書のテンプレート簡素化や段階的な導入方法を紹介。組織規模やプロダクト特性による向き不向きも率直に述べている。

#SpecDriven #Process #TeamDev #DX
devto スコア: 8/10

Claude に SSH アクセスを渡したくないので Go 製の構造化オペレーションツールを作った

I don't want to give Claude SSH access to my home server

AI エージェントにサーバーの SSH アクセスを与える代わりに、構造化された狭いインターフェースで操作させる Go 製ツール HomeButler を開発した話。単一バイナリでデーモン不要、CLI/MCP/Web ダッシュボードの3つのインターフェースを提供し、system、docker、ports、backup、watch などの JSON を返す明示的なオペレーションのみに制限する。Claude Desktop から MCP 経由で接続でき、エージェントのブラストラジウスを限定しつつサーバー運用を支援できる。

#AI #Security #Go #MCP
devto スコア: 7/10

猫の写真に秘密のメッセージを隠して6か月間誰にも気づかれなかった

I Hid a Secret Message in a Cat Photo and Nobody Noticed for Six Months

CTF で出会ったステガノグラフィに触発され、実際に猫の写真にメッセージを隠して6か月間検出されなかった体験記。RGB 画像の最下位ビット(LSB)エンコーディングの仕組みを詳細に解説し、各ピクセルの8ビット色チャンネルの最後の1ビットを書き換えることで、人間の目には識別不能な変化でデータを埋め込む手法を実装している。暗号化がメッセージを読めなくするのに対し、ステガノグラフィはメッセージの存在自体を隠す点の違いを強調している。

#Security #Steganography #Tutorial #WebDev
devto スコア: 7/10

AI を使って E2E テストアーキテクチャを立て直した方法

How I Used AI to Fix Our E2E Test Architecture

Playwright の E2E テストスイート(38ファイル・約165テスト)を引き継いだところ、ローカルでの通過率が6%だった状況を AI を活用して改善した事例。まず AI に設定ファイル、Page Object、spec ファイル、CI ワークフローを分析させ18件の分析ドキュメントを生成。その後 Pragmatic Programmer の tracer bullet パターンに基づき8段階のスライスを設定し、UI fixture chain から段階的にアーキテクチャを再構築した。

#Playwright #AI #Testing #Architecture
devto スコア: 7/10

Tauri v2 vs Electron: 6か月の実開発を経た率直な比較

Tauri v2 vs Electron After 6 Months of Real Development — My Honest Take

8年前の MacBook Air で複数の Mac アプリを Tauri v2 で出荷した開発者による実体験比較。バンドルサイズは Electron の150MB に対し Tauri は10MB 未満だが、Rust の学習コストとして2-3か月の期間が必要。macOS ネイティブ API(PDFKit、Vision Framework)の呼び出しには Swift/ObjC サイドカーバイナリを自前で管理する必要がある。ホットリロードは Rust 側の変更で30-60秒のリコンパイルが発生し、Electron より開発体験で劣る点も率直に指摘している。

#Tauri #Electron #Rust #Desktop
devto スコア: 6/10

冪等性キー: 決済フローで見落とされがちな重要パターン

Idempotency Keys: What Most Tutorials Don't Tell You

決済フローにおける冪等性キーの実装パターンを解説。ネットワーク断やユーザーの二重クリックで同一リクエストが複数回送信される問題に対し、Idempotency-Key ヘッダを使って重複処理を防ぐ仕組みを説明している。冪等性はキャッシュではなく、リクエストが一度も処理されていない場合はリトライを許可し、外部の決済プロバイダが既に処理済みの場合は再実行しないという区別が重要だと強調。JavaScript での実装例を交えて解説している。

#Backend #Payment #API #Architecture
reddit スコア: 7/10

AI は自分の生産性を下げ、集中力を奪っている

AI is making me less productive and more distracted

12年のキャリアを持つ Web 開発者が、Claude Code を毎日使う中で感じる生産性低下について率直に語った投稿。プロンプトを送信して応答を待つ間に別の作業を始め、さらに次のタスクを考え、待ち時間にスマートフォンを確認するというフラグメント化したワークフローが集中力を奪っていると指摘。r/webdev で137アップボートを獲得し、同様の経験を持つ開発者から多くの共感コメントが寄せられた。

#AI #Productivity #DX #DevCulture
reddit スコア: 7/10

シニア Python 面接官が目撃した AI カンニングの現実

Interview for a senior python position gone awry

Django、ORM、PostgreSQL、非同期プログラミングに強いシニア Python 開発者を採用する面接を実施した際の体験談。一次面接を通過した候補者が二次面接で、回答の質と応答時間のパターンから AI ツールを使ったカンニングが疑われた。r/webdev で157アップボート、190コメントを集め、AI 時代の技術面接の信頼性に関する活発な議論を呼んだ。

#Interview #AI #Python #DevCulture
reddit スコア: 7/10

5人チームの AI ツール月額費用を計算したら想像以上だった

our ai stack costs more than i realized

5人の開発チームが使う AI ツールのコストを集計した結果を共有した投稿。Cursor Teams、Claude Team プラン(月100ドル/席)、CodeRabbit(PR レビュー)、Codex、その他のツールを合わせて月額約945ドル、一人当たり約189ドルに達していた。「丸め誤差」だと思っていた支出が、改めて計算すると無視できない金額になっていることに気づいた。r/webdev で60アップボートを獲得し、AI ツールの ROI に関する実践的な議論が展開された。

#AI #Cost #DevTools #TeamDev
reddit スコア: 8/10

pip v26.1 で相対的な依存関係クールダウンが正式サポート

pip v26.1 adds support for relative dependency cooldowns

Python Software Foundation の Security Developer-in-Residence である Seth Larson が、pip v26.1 で追加された相対的な依存関係クールダウン機能を解説。pip.conf に uploaded-prior-to = P7D と設定すると、PyPI にアップロードされてから7日以上経過したパッケージのみをインストールする。これにより、マルウェアの多くがアップロード後数時間以内に検出・削除される実態を活かし、サプライチェーン攻撃のリスクを大幅に低減できる。

#Python #pip #Security #SupplyChain
reddit スコア: 6/10

Snap CEO が警告: テック業界は AI への反発を過小評価している

Snap's Evan Spiegel warns tech leaders are underestimating a coming backlash against AI

Snapchat の CEO Evan Spiegel が、テック業界のリーダーたちが AI に対する社会的反発を過小評価していると警告した。r/technology で7,342アップボートを獲得し、AI の急速な普及に対するユーザーや社会からの pushback が現実味を帯びてきていることを示す発言として注目された。AI によるコンテンツ生成やプライバシーへの影響に対する消費者の不信感が高まっている状況を指摘している。

#AI #Industry #Privacy #Society
reddit スコア: 6/10

React の技術面接で最後の質問に撃沈した話

Bombed the final question of a React technical discussion, looking for feedback

15年のフルスタック経験を持つシニア開発者が、30分の React 技術面接で最後の質問につまずいた体験を共有。State 管理に関する基本的な質問から始まり順調に進んでいたが、最後の想定外の質問で回答できなかった。r/webdev で33アップボート、59コメントを集め、シニアレベルでも面接で予期しない質問に直面する現実と、面接準備の方法論について議論が展開された。

#React #Interview #Career #DevCulture