メモ

ブログ

フロントエンド開発、SEO、AI、分析、そして実際のプロダクト開発についてのメモ。

42 記事

2026年8月31日9 分で読めます

「Guaranteed Resources — No Sharing」のはずのAVA Hosting VPSで、CPU Stealが平均32.73%だった

AVA HostingのKVM VPSを通常の本番トラフィック下で計測したところ、CPU stealは平均32.73%、CPU idleは0%、CPU pressureは約99%でした。これは否定的なレビューではなく、VM内部でLinuxが実際に何を示したのかを記録した実体験ベースのデバッグ記事です。

AVA HostingVPSLinuxCPU stealVPS性能
2026年8月31日11 分で読めます

FDCServersのVPSは3 TB超のトラフィックまで正常だった。それが突然、ディスク読み込みに18秒かかるようになった

FDCServersのVPSは当初、実トラフィックを問題なく処理し、3 TBを超えるデータを転送していました。ところが通常の負荷で仮想ディスクの深刻なstallが発生するようになり、CPU iowaitは100%、LinuxのI/O pressureはほぼ100%、read latencyは18.7秒、flush latencyは53秒超に達しました。

FDCServersVPSLinuxディスクI/ODevOps
2026年8月31日9 分で読めます

トラフィックをゼロにしても、REGXAのVPSでCPU Stealが94%になった

REGXAのKVM VPSで深刻な性能問題を調査したところ、CPU stealが92〜94%、localhostへのHTTPSリクエストが数秒、接続キューが増大し、HTTP 504まで2分以上かかる状態を確認しました。production trafficをすべて外した後もCPU stealは94.17%まで上昇し、REGXAのサポートは最終的にshared infrastructure上のresource contentionが原因だと説明しました。

REGXAVPSLinuxCPU steal仮想化
2026年8月28日13 分で読めます

Nginxの背後でBunny Storageを2か月使って分かったこと――画像・動画・音声を専用メディアサーバーへ移した理由

Bunny CDNは使わず、Bunny Storageを自前Nginxキャッシュのprivate originとして2か月運用した。Production logから、cold mediaでのlong-tailな接続timeoutと、MP4におけるNginx SliceとETag不整合という別の問題が見え、最終的に単純なprivate media originへ移行した。

Bunny StorageNginx動画キャッシュCache missメディアサーバー
2026年8月20日11 分で読めます

WebPからAVIFへの再圧縮でSSIMULACRA2をどう使うか:元ソースは60、既に非可逆圧縮された素材は65にした理由

すでに非可逆圧縮されたWebPからAVIFを作る場合、SSIMULACRA2が測るのは2世代目の劣化だけです。そのため、良好な元ソースには60/58、既知の非可逆圧縮派生物には65/63を使っています。

AVIFWebPSSIMULACRA2画像圧縮Webパフォーマンス
2026年8月17日13 分で読めます

DeepSeekが値上げしたので、同じV4 Flashを旧料金より安く提供するホストを探してみた

8月17日の朝、DeepSeek APIの支出が普段のおよそ5倍になっていることに気づきました。その後、同じDeepSeek-V4-Flash-0731 checkpointを提供する別のプロバイダーを見つけて実際に試したところ、現在の料金はDeepSeekの旧料金より約45%安い水準でした。

DeepSeekRunwareLLM APIAIインフラOpen-weightモデル
2026年8月13日18 分で読めます

フレームやタイミングを壊さずアニメーションWebP・GIF・APNGをH.264 MP4へ変換する方法

本番処理では、ユーザーが実際に見る完全なフレームを再構成し、元のタイミングを保ち、最終MP4ごとに一つのCFRを選び、拡大せず最小の共通キャンバスを使います。互換なH.264セグメントをエンコードし、二度目の非可逆エンコードをせずに連結し、ファイル本体とHTTP配信の両方を検証します。実測した一例では、合計1.49 GBの217個のアニメーションWebPが78.49 MBのH.264 MP4一本になりました。

H.264FFmpegMP4アニメーションWebPGIFAPNG動画圧縮メディア処理
2026年8月13日23 分で読めます

ブラウザエラーを片っ端から通知していた私が、ノイズを本当に使える本番監視へ変えた方法

最初のフロントエンド監視は、広告ブロック、GTM の失敗、AbortError、情報の乏しい Script error、実際の Next.js チャンク障害まで同じ「エラー」として通知していました。そこで、所有元・ユーザー影響・証拠の質・相関・復旧を軸に監視を作り直しました。

ブラウザエラー監視フロントエンド可観測性JavaScript エラー本番監視Next.jsWeb パフォーマンス
2026年8月13日30 分で読めます

古い Next.js タブがデプロイ後に壊れる理由:古い HTML、消えたチャンク、バージョンずれ

あるデプロイ後、本番監視で自分の Next.js アプリに属するチャンクの読み込み失敗を記録しました。ログが証明していたのは失敗が起きたことだけで、原因ではありません。この記事ではその事例を起点に、長時間開いたタブ、古い HTML、欠落した /_next/static リソース、バージョンずれ、旧資産の保持、deploymentId、公開順序、監視、制御された復旧を整理します。

Next.jsデプロイバージョンずれウェブキャッシュフロントエンド信頼性静的リソース
2026年8月13日18 分で読めます

CFRを壊した1 tick:なぜ5580は5625ではなく、3751は3750ではなかったのか

16 fpsのMP4で、あるパケットの継続時間が5625ではなく5580 tickだったため、検証処理が何度実行しても出力を拒否しました。その後、24 fpsで本来3750 tickになる箇所に3751を検出しました。2つの障害から、ソースのタイミング、CFRへの量子化、MP4のタイムベース、PTS/DTS、マルチプレクス処理、パケット単位の検証を切り分ける必要性を学びました。

FFmpegH.264CFR動画タイムスタンプPTSとDTSMP4検証
2026年8月13日17 分で読めます

H.264のまま本番動画を約280 MBから約50 MBまで削減した方法

実運用の動画1本が、CRF 28、x264 veryslow、720p級の解像度上限、有効なフレームレート、控えめなデコーダー要件を中心にH.264設定を組み直したことで、約280 MBから約50 MBまで縮小した。さらに前の段階では同じ例が約350 MBから238 MBまで縮んでおり、旧ライブラリの調査では毎秒数メガビット級のH.264が珍しくなかったことも分かった。

H.264FFmpegx264動画圧縮ウェブ性能メディア最適化
2026年4月16日9 分で読めます

「サイトが落ちている」だけでは足りない。GitaeでDNS・TLS・経路まで切り分ける

Gitaeは「サイト自体が落ちているのか、それとも自分の環境だけの問題なのか」を切り分けるために作った診断ツールです。モスクワとヘルシンキの外部VDSから、DNS、HTTPS/TLS、ポート、経路、IP、ホスティング、CMSのシグナルを確認し、結果を断定ではなく診断材料として扱います。

GitaeWebサイト診断Webサイト監視DNSチェックSSLチェックPingTracerouteポートチェックホスティングSEO
2026年4月14日9 分で読めます

本番開発でCodexとTypeScriptの相性が非常に良いと感じる理由

本番開発では、TypeScriptがCodexにプロンプトだけでは与えられないものを提供します。機械的に検証できる契約、素早いコンパイラのフィードバック、そして大規模なリファクタリングを安全に進めるための道筋です。

TypeScriptCodexAIコーディングソフトウェア開発JavaScript開発ワークフロー
2026年4月6日6 分で読めます

Jurfi.comを作った理由:構造化された法務ドラフトを作るブラウザ型ドキュメントスタジオ

Jurfi.comは、フォームとテンプレートから構造化された法務文書の作業ドラフトをブラウザ上で作るために開発したサービスです。ドラフトはローカルに保持でき、レビューを前提とし、ソフトウェアが弁護士の代わりになるとは考えていません。

JurfiJurfi.com法務文書LegalTechSaaS文書ドラフトブラウザツール
2026年4月5日6 分で読めます

初めてのSaaS売上。1件の支払いが本当に証明したこと

自分で作ったSaaSから初めて受け取った支払いは小さなものでしたが、手元にある証拠の質を変えました。1件の取引で何を検証でき、何はまだ証明できないのか。そして、なぜ節目そのものより再現性が重要なのかを整理します。

SaaS初売上個人開発プロダクト検証プロダクト開発スタートアップ開発者の経験
2026年4月3日14 分で読めます

Codexで15のプロジェクトをレビューしながら、最終判断は自分で持ち続ける方法

15のソフトウェアプロジェクトをレビューする作業は、以前なら反復チェックだけで膨大な時間が必要でした。Codexを使うことで、バグ、テスト、SEO、翻訳、ローカライズ、整合性チェックを大幅に速く進められるようになりました。ただし、AIの指摘は結論ではなく仮説として扱い、変更内容は必ず自分で検証しています。

CodexAIコーディングコードレビューソフトウェアテスト開発ワークフローローカライズテクニカルSEO開発者生産性
2026年4月2日9 分で読めます

ChatGPT PlusのCodex上限、残り3〜5%で重い開発タスクを始める理由 — Update:2026年夏にはこの方法が通用しなくなった

Update:2026年夏までに、このワークフローは私の環境では安定して使えなくなった。アカウントから5時間枠の表示が消え、週次上限だけが見える状態になり、長時間のタスクは週次上限を使い切ると途中で止まることがあった。

CodexChatGPT PlusAIコーディングツール開発者ワークフローソフトウェア開発TypeScript移行ESLint整理リファクタリングCodex使用制限2026年アップデート
2026年4月1日17 分で読めます

AIでSEO記事を1万本公開した結果、Googleのインデックスが0ページになった

大量のAI記事は最初、SEOの近道に見えました。Googleは生成した1万本の記事URLをすべてクロールしましたが、実際にインデックスされ、検索結果に表示されてトラフィックを生んだのは約1,000ページでした。その後、その約1,000ページも徐々に消え、最終的にはサイト全体のインデックス数が0になりました。この失敗から学んだAI、SEO、翻訳、そしてAIを「作者」ではなく「補助者」として使う考え方を書きます。

AI SEO生成AIGoogle検索大量生成コンテンツインデックスAI支援ライティング多言語SEO
2026年3月31日8 分で読めます

8GB/256GBのM1 MacBookを5年間使って分かった、まだ買い替えていない理由

約1000ドルで買った8GBメモリ・256GB SSDのベースモデルM1 MacBookを、開発、動画・音声処理、画像処理、執筆、学習、サイドプロジェクトに1日およそ15時間使ってきました。5年後の今は限界も見えますが、買い替えを考える理由は故障や実用性の低下ではなく、自分のワークロードが大きくなったからです。

MacBookAppleM1Apple Siliconソフトウェア開発長期レビューハードウェアの寿命
2026年3月30日10 分で読めます

ChatGPTでブログを20言語に翻訳したら、世界中から検索流入が来るようになった

AIによって多言語ブログのコスト構造が変わった。1言語だけで書いていたブログを最大20言語で公開するようにした結果、各言語の検索ページが世界中の読者との新しい入口になった。

AIローカライズ多言語SEOChatGPTNext.js国際SEOブログ
2026年3月27日6 分で読めます

無料の静的QRコード生成ツールとしてQRVizを公開し、集客はSEOに賭けた

QRVizはキャンペーン管理サービスではなく、ブラウザで使う静的QRコード生成ツールです。 qrviz.com を無料のQRコード生成ツールとして公開しました。広告予算、有料集客、収益化ファネルはありません。集客はSEOだけに頼っているため、最大の不確実性は「作れるか」ではなく「見つけてもらえるか」です。

QRコード生成Qrvizプロダクト公開SEOサイドプロジェクトWeb開発プロダクト開発
2026年2月18日6 分で読めます

SaaSを作るより顧客獲得のほうが難しいと感じた理由

SaaSを作った実体験から得た教訓です。エンジニアリングには明確で検証しやすいフィードバックがある一方、集客、ポジショニング、メッセージ、Retentionには別の、ずっと予測しにくいループがありました。

SaaS成長顧客獲得プロダクトマーケティングブートストラップ公開開発集客
2026年2月17日7 分で読めます

SaaSプロダクトを一人で作った。決済を始めて「仕事」の意味が変わった

このプロダクトを夜や週末、休日を使って一人で開発した。決済を有効にした瞬間、バグ、オンボーディング、モデレーション、リテンション、信頼性は「後で考えること」ではなく、実際のプロダクト運用そのものになった。

SaaSソロ開発プロダクトローンチPaymentsReliabilityプロダクト運用
2026年1月22日4 分で読めます

I Got 550 Views from One Image, Voiceover, and Subtitles: What Three Shorts Tests Actually Taught Me

A simple YouTube Short built from one static image, a voiceover, and subtitles reached 550 views. After three early tests, the useful lesson was not a proven formula, but a repeatable way to experiment without confusing a promising signal with proof.

YouTube ShortsContent ExperimentsShort-form VideoVideo EditingCapCutCreator Workflow
2026年1月20日7 分で読めます

モスクワのフロントエンド求人で応募が約6,000件。そこから言えること、言えないこと

2023年末、採用担当者から「1求人に300〜500件の応募が来る」と聞いた時点で十分に競争が激しいと感じていました。ところが2026年1月20日、モスクワのミドルレベルのフロントエンド求人で、公開から数時間のうちに応募数が6,000件近くまで伸びているのを目にしました。この数字が示すものと、逆に証明できないものを、候補者側の視点から整理します。

キャリアIT転職市場フロントエンドロシアモスクワ採用転職活動
2026年1月1日6 分で読めます

DeepSeekでNode.jsの個人開発が変わった:半年で4,000件超のコミット

2025年のGitHubグラフは、前半ほぼ空白だったのに対し、後半だけで4,000件を超えるcommitになりました。この記事では、AI codingがNode.jsの個人開発workflowをどう変えたか、どこで時間を短縮でき、どこで失敗し、なぜ生成速度より検証が重要だったのかを振り返ります。

Node.jsDeepSeekAI CodingDeveloper ProductivitySide ProjectsSoftware Engineering
2025年12月30日6 分で読めます

My First TikTok at 28: What a Vertical Product Demo Taught Me About Traffic

At 28, I posted my first TikTok and cross-posted the same product demo to Reels and Shorts. The useful lesson was not the view count: it was how much a 9:16 frame changes a desktop interface, and how to measure short-form traffic without confusing reach with acquisition.

TikTokProduct MarketingProduct DemosAnalyticsIndie Dev
2025年11月16日8 分で読めます

25年物のドメインを買ったら、消えたURLに1日1,000件超のリクエストが来た

2000年に初めて登録されたドメインで新サイトを公開した直後、旧URLに1日1,000件超のリクエストが届き、Yandex Webmasterには一晩で900件超のエラーが出ました。実際に確認できた事実と推測を切り分け、410を限定的に使った理由と、今なら履歴のあるドメインをどう監査するかを整理します。

SEOHTTPDevOpsドメインWebクローリング
2025年11月14日8 分で読めます

Yandex に 12,500 ページがインデックスされていたのに、ロシアからの流入はほぼゼロだった:見落としていた Cloudflare の問題

Yandex には 12,500 ページがインデックスされていた一方、ロシアからのトラフィックはほぼゼロでした。原因をネットワーク経路まで切り分け、Cloudflare のプロキシを無効化し、VDS 上の Nginx にキャッシュ・圧縮・基本的な保護を移して到達性を回復しました。重要だったのは、インデックス・到達性・トラフィックを別々に見ることです。

DevOpsSEONginxCloudflareネットワークインフラ
2025年10月27日7 分で読めます

静的な Next.js サイトには毎日数千件の脆弱性スキャンが来る。それでも Nginx はほとんど動じない

ログには WordPress、PHP バックドア、.env、.git/config を探すリクエストが大量に残ります。しかし静的な Next.js + Nginx 構成では、その多くが低コストなミスと 404 で終わり、観測中の CPU 負荷も変わりませんでした。静的サイトの安全性について、この経験から言えることと言えないことを整理します。

セキュリティNext.jsNginxDevOps静的ホスティングAttack Surface
2025年10月27日6 分で読めます

新規サイトで Yandex は伸びたのに Google はほとんど動かなかった

同じ新規プロジェクトで、Google Search は長期間で約300クリックにとどまった一方、Yandex Webmaster ではクリック数が +500% と表示されるほど上昇しました。この数字から確認できること、確認できないこと、そしてクロール・インデックス・ランキング・トラフィックを混同せずに差を調べる方法を整理します。

SEOGoogle SearchYandexGoogle Search ConsoleYandex WebmasterテクニカルSEO
2025年10月17日8 分で読めます

Yandex が Next.js の 4,278 ページを一晩でインデックスした。そこで本当に確認できたこと

Next.js で静的生成した 4,278 ページが、ほぼ一晩で Yandex のインデックスに入りました。これは確かな技術的マイルストーンでしたが、順位やトラフィックの成功を証明するものではありません。SSG とプログラマティック SEO について、この結果から言えることと言えないことを整理します。

SEONext.jsSSGYandexプログラマティックSEOインデックス
2025年10月16日8 分で読めます

SEOを1か月実践して分かったこと:オーガニック632人と怪しいボットトラフィック

仕事で予定していた大きなSEO施策に備え、個人のサイドプロジェクトを実験環境にしました。1か月でオーガニック訪問者は632人まで増えましたが、83人を記録した日の分析から、怪しいトラフィックや計測ツールの見え方を成長と取り違えない重要性を学びました。

SEOWeb解析ボットトラフィックYandex MetricaSEO実験
2025年10月6日6 分で読めます

Yandex Webmasterを危うく無視しかけた。2週間後、Googleより多くの流入が来ていた

SEOが重要な仕事のプロジェクトに備えて、Next.jsのサイドプロジェクトで実践しました。最初の2週間はGoogleから58人、Yandexから200人が訪れ、流入・インデックス・診断を別々に見る重要性を学びました。

SEONext.jsGoogle SearchYandexSearch Consoleインデックス
2025年10月5日8 分で読めます

Yandex Metrica vs Google Analytics:1週間併用して私が Metrica を選んだ理由

新しいプロジェクトで Google Analytics と Yandex Metrica を1週間並行運用しました。私が Metrica をより頻繁に使うようになった決め手は Webvisor のセッションリプレイです。ただし、これは自分の作業フローに合っていたという結論であり、どちらが万人にとって優れているかを証明する比較ではありません。

Web解析UXセッションリプレイYandex MetricaGoogle AnalyticsGA4
2025年10月3日6 分で読めます

Yandex が /en なしでブログをクロールした。308 リダイレクトが 404 を防いだ話

約3,000ページの /en/blog/... URL を sitemap に追加した後、Yandex が対応する /blog/... をクロールしようとしているのを確認しました。事前に設定していた 308 リダイレクトのおかげで 404 にはなりませんでした。この経験から学んだのは「Yandex が sitemap を壊した」という話ではなく、URL 設計にどれだけ耐障害性を持たせられるかという点です。

SEOYandexSitemap308リダイレクトテクニカルSEOクローリング
2025年10月2日7 分で読めます

新規サイト2つでGoogle流入が急増し、数日後に約10分の1まで落ちた

2回のローンチで、公開直後にGoogleのインプレッションが急増し、数日後にはトラフィックが約10分の1まで低下しました。現象そのものは確認できましたが、いわゆる「Googleハネムーン」が原因だとは証明できません。

SEOGoogle SearchSearch Consoleオーガニック流入テクニカルSEO
2025年10月1日7 分で読めます

Yandex検索から一晩で2,000ページが消えた。そこで本当に分かったこと

Yandex Webmasterを開くと、約8,000ページのうち2,000ページが検索に参加しなくなっていました。25%という大きな下落でしたが、重要だったのは「観測できた検索状態の変化」と「証明できた原因」を混同しないことでした。

SEOYandex Webmasterインデックス検索可視性テクニカルSEO
2025年7月11日3 分で読めます

MoscowJS 66で10個以上質問し、賞品を2つ獲得した

MoscowJS 66で、Telegramボット、LangChain.js、サイトビルダーのアーキテクチャ、TypeScriptの型テストに関する発表を聞きながら10個以上質問しました。そのうち2つが「ベスト質問」に選ばれ、賞品を2ついただきました。

イベントJavaScriptTypeScriptAILangChain.jsコミュニティMoscowJS
2025年6月23日8 分で読めます

PiterJS #79で得たもの:レガシーモノリス、FrontOps、Webパフォーマンス、そして良い質問

サンクトペテルブルクのPiterJS #79は、既存システムの保守に焦点を当てた回でした。レガシーモノリス、FrontOps、Webパフォーマンス指標について実用的なメモを持ち帰り、Q&Aでは2つの賞も受け取りました。

PiterJSJavaScriptFrontOpsDockerWebパフォーマンスコミュニティ
2025年6月17日6 分で読めます

I Launched a Next.js Blog in 21 Languages. Here’s What 439 Google Impressions Actually Told Me

In its first week, my 21-language Next.js blog recorded 439 Google impressions and 5 clicks. Later, 436 of 471 pages were indexed. The useful lesson was learning to separate visibility, indexing, and actual search performance.

Next.jsSEOI18nMultilingual SEOGoogle SearchWeb Development
2025年6月7日4 分で読めます

JavaScript歴6年で参加したMoscowJS 65:それでもローカルミートアップに行く理由

2025年6月5日、T Bankで開催されたMoscowJS 65に参加しました。4つの発表はAIを異なる角度から扱っていましたが、いちばん大きな気づきはもっとシンプルでした。ローカルミートアップには、ドキュメントや録画だけでは完全には置き換えられない価値があります。

JavaScriptMoscowJSミートアップ開発者コミュニティAI