GyaanSetu WebDev

Frontend, backend and devops for the modern web.

209 articlesDeep, practical knowledge

OpenCode、ターミナルでのReact Hooksのリファクタリングによりスプリントの作業時間を1時間短縮

2週間の試用期間において、OpenCodeは11個のコンポーネントにわたるReactフックの名前変更、テストに合格するpytestファイルの生成、npmパッケージのアップグレードをすべてコマンドラインから実行しました。これにより、使い慣れたエディタをそのまま使いながら、チームのスプリント作業時間を約1時間節約することに成功しました。

WebDev · 4 分で読めます

TS 6.0の新フラグがブラケット記法を強制し、未定義プロパティによるクラッシュを激減させる

インデックスシグネチャへのドット記法によるアクセスをコンパイル時エラーにすることで、この新フラグはキーの欠落によるバグを早期に発見可能にします。--noUncheckedIndexedAccess と組み合わせることで、undefined型に対する完全な安全性を実現できます。

WebDev · 3 分で読めます

TechForgeが警告:初期のマイクロサービスは、レイテンシの大きい「分散モノリス」に陥る恐れがある

本ガイドでは、多くのスタートアップが単一の共有データベースを維持したまま、自社のコードベースを「マイクロサービスベース」と称している実態を明らかにしています。その結果、モジュールが密結合したままとなり、ネットワークレイテンシの問題を依然として抱えることになります。サービスを切り出すのは、真のスケールアップや所有権の分離が必要になった時に限定すべきです。

WebDev · 5 分で読めます

World Labs、ロボットのトレーニングコスト削減に向けた「Real-to-Sim-to-Real」パイプラインを導入

最近のa16zのポッドキャストにおいて、Fei-Fei Li氏とYunzhu Li氏は、World LabsのSceniXがいかにして倉庫、レストラン、ホテルの正確なデジタルツインを作成し、ロボットが実際の現場に降りる前にシミュレーション上でタスクをリハーサルできるようにしているかを解説しました。

WebDev · 3 分で読めます

ChatGPTの流入を確保しつつ、学習用ボットのみをブロックする方法

GPTBotに対して一律に「Disallow: /」を設定すると、学習用クローラーのみがブロックされ、ChatGPTの回答パネルにページを表示させる引用ボットは引き続き動作します。GPTBotやClaudeBotを拒否しつつ、OAI-SearchBotやChatGPT-Userなどのボットを許可するには、明示的なrobots.txtルールやCloudflareのAI Crawl Controlを活用しましょう。

WebDev · 4 分で読めます

Whisperのセルフホスティング vs. API:その真のコスト

Whisperのセルフホスティング vs. API:その真のコスト。チームがAssemblyAIの請求書を目にしたとき、誰かがこう尋ねます。「コストを節約するために、Whisperを自分たちでホスティングすればいいんじゃない?」一見、簡単そうに思えます。ダウンロードして…

WebDev · 3 分で読めます

Cloudflareのボットチャレンジが決済POSTを阻害、Fetchの活用で解決

Stripeへリダイレクトする単純なHTMLフォームはテストでは動作しましたが、Cloudflare経由の実際のChromeユーザーでは503エラーが発生しました。送信処理をfetch優先のフローに切り替えることで、POSTリクエストがボットチャレンジを通過できるようになり、その後のGETリダイレクトによって決済を完了させることができました。

WebDev · 4 分で読めます

ネットワークAPIの誤認により、低速ネットワーク環境下でブラウザ版Pythonプレイグラウンドがクラッシュ

5.5MBのブラウザ内Pythonランタイムにおいて、3Gや低速な回線を利用するユーザーが気づかないうちにタイムアウトが発生しました。これは、ChromeのNetwork Information APIが返したプレースホルダーのダウンリンク値を、コードが高速な通信であると誤認したことが原因であり、結果として一連の誤診を招くこととなりました。

WebDev · 3 分で読めます

クリーンアップスクリプトにより、数十件の記事からコードスニペットが消失

定期メンテナンス作業中にLiquidの {% raw %} タグが誤って「閉じられていない変数」と認識され、そのタグを使用しているすべての記事から周囲のコードブロックが削除されてしまいました。この事態により、緊急のロールバックと移行テストの再検討を余儀なくされました。

WebDev · 3 分で読めます

ステートレスMCPにより、Cloudflare上でMarkdownを無料で配信可能に

ベンチマークの結果、読み取り専用MCPサーバーは主要なエンドポイントにおいてCPU使用時間が0〜1ミリ秒に抑えられており、Cloudflareのリクエストあたりの制限である10ミリ秒を大幅に下回っています。なお、ネットワーク遅延の影響で、総実行時間(ウォールクロックタイム)は最大で約88ミリ秒に達する場合があります。

WebDev · 2 分で読めます

Hermes AgentがAI自動化の可能性を広げる一方、セキュリティの負担は開発者に委ねられる

Hermes Agentのモジュール設計は、言語モデル、オーケストレーション・コア、および実行可能なツールを分離しており、スクリプトやRESTコール、Dockerコマンドの連携を可能にします。その一方で、エージェントのサンドボックス化やAPIキーの保護といったセキュリティ対策も求められます。

WebDev · 3 分で読めます

BrowserAct、ボット検知テストでPlaywrightのヘッドレスモードを凌駕

サンドボックスのログインページを用いた比較検証において、BrowserActのステルスブラウザがisBot:falseを返したのに対し、PlaywrightのデフォルトのヘッドレスセッションはisBot:trueと判定。デフォルトのuser-agentやwebdriverフラグがいかに自動化を露呈させてしまうかを浮き彫りにしました。

WebDev · 4 分で読めます

Astro 7のアップグレードで数式、見出しリンク、カスタムオプションが壊れる:その修正方法

Astro 7はRustベースのSätteri markdownエンジンを使用しており、HTML-ASTプラグインよりも前に構文ハイライトを実行します。この変更により、$$...$$ブロックがコードとして誤分類されるほか、見出しスラグ(heading-slug)プラグインがIDを生成できなくなり、指定した非標準のMarkdown設定も破棄されてしまいます。

WebDev · 4 分で読めます

Substringの割り当てによりホットループで7.8 MBを浪費 — Spanルックアップへの切り替え

プロファイラーによる解析の結果、Substringを用いた辞書ルックアップのたびに新しい文字列が生成され、7.8 MBものガベージが割り当てられていることが判明しました。.NET 9のReadOnlySpan<char>を用いたGetAlternateLookupを活用することで、この割り当てを排除し、ループの実行速度を1.5倍に高速化できます。

WebDev · 1 分で読めます

177MBのアップロードではFastPixが他を圧倒、65MBのテストではCloudinaryが勝利

Node.jsのテスト環境を用いて、帯域制限された10 Mbpsの回線でアップロード時間と準備完了までの時間を測定した結果、177MBのファイルではFastPixが最速、65MBのクリップではCloudinaryが2秒で準備完了状態となることが分かりました。一方、Muxはコールドスタート時のフレーム処理において優れた性能を示しました。

WebDev · 3 分で読めます

AV2は30%の効率向上を実現するも、FFmpegへの対応やハードウェアデコーダーは未実装

2026年5月にリリースされたAV2リファレンスエンコーダー1.0.0は、AV1と比較してビットレートを30%削減できるものの、既存のAV1エンコーダーよりも動作が大幅に遅く、FFmpegへの統合やハードウェアデコーダーも未対応であるため、ライブストリーミングのパイプラインには適していません。

WebDev · 3 分で読めます