MZQのブックマーク (213)

  • Let’s Encryptの短期証明書はかなり厳しいのでARI対応クライアントを使った方がよい

    Let’s Encryptの短期証明書は、90日証明書の延長くらいの感覚で入るとかなり厳しいです。 サブドメインを含む複数の証明書を短い間隔で発行・更新する構成では、証明書発行まわりのレート制限に引っかかりやすくなります。短期証明書では更新回数が増えるので、その影響がかなり表面化しやすくなります。 まずステージング環境で試した方がよい 開発やテストでは、番ではなくステージング環境を使った方がよいです。番と同じ種類の挙動をかなり緩い制限で試せるので、証明書の切り方や更新方法を確認する段階では先にこちらを使う方が安全です。 環境 ACME directory URL 短期証明書はレート制限に当たりやすい 短期証明書は有効期限が160時間しかなく、Let’s Encryptは3日ごとの更新を勧めています。90日証明書より更新回数が大きく増えるので、レート制限に当たりやすくなります。 特に厳し

    Let’s Encryptの短期証明書はかなり厳しいのでARI対応クライアントを使った方がよい
    MZQ
    MZQ 2026/04/20
  • 令和最新版 GoでのDockerfile / Docker Composeの書き方

    GoでよくDockerfileとComposeを書いてるんですが、いい感じの書き方が固まってきたので共有します。 コード例 もあるのでご自由にどうぞ! 1. マルチステージビルドにする もう当たり前だと思うので割愛しますが、マルチステージビルドは必須です。 ビルドに必要なものと、実行に必要なものを分けるだけで、最終イメージのサイズと攻撃面をかなり抑えられます。 2. Distrolessを使用する 実行イメージは小さいほど扱いやすいですが、単にAlpineを選べばよいわけでもありません。 Alpineだと実効性能が落ちるケースもあるらしいので、Distrolessを選びましょう。 静的リンクできるGoのバイナリなら、static 系の最小構成イメージでそのまま動かせます。 更に nonroot タグを使って、最初から非rootで動かすのもおすすめです。 また必要なら cosign でイメー

    令和最新版 GoでのDockerfile / Docker Composeの書き方
  • 非エンジニアがClaude Codeでアプリを作って公開した全記録

    自作したタスク管理アプリ「長い長いノート」 このアプリを、エンジニアではない人間がAIコーディングツールだけで作りました。 私はライターです。コードを自分でゼロから書く力はないし、読めているのかも正直自信がない。そんな人間が、Claude Codeを使ってWebアプリを開発し、番環境にデプロイして、実際にユーザーに使ってもらうところまでやりました。 かかった期間は約4ヶ月。Claude Codeの前で手を動かした時間は合計で約20時間(調べ物やバグの再現確認にかけた時間は含まない)。これはその全記録です。 作ったもの 「長い長いノート」というタスク管理アプリです。普通のTodoアプリとの違いは一つだけ。タスクを完了すると、自動的にタイムラインに記録されること。チェックを入れたタスクが消えずに、日付付きで下に積み上がっていく。だから「あれいつやったっけ?」がいつでも検索できる。 技術スタッ

    非エンジニアがClaude Codeでアプリを作って公開した全記録
  • トヨタが独自の“ゲームエンジン”「Fluorite」を開発:FlutterとDartで次世代デジタルコクピットを再定義 | XenoSpectrum

    自動車業界の巨人、トヨタ自動車が、自社製ソフトウェアの核心部を自ら構築するという、極めて野心的かつ戦略的な一歩を踏み出した。ベルギーで開催された世界最大級のオープンソースイベント「FOSDEM 2026」において、Toyota Connected North America (TCNA) は、Flutterを基盤としたオープンソースの3Dゲームエンジン「Fluorite」を発表したのだ。 これは一見すると「車載エンターテインメントの強化」と見えるが、その核心は、トヨタが自社のデジタルコクピット(HMI:Human Machine Interface)における支配権を握り、UnityやUnreal Engineといった既存の巨大ゲームエンジンへの依存を脱却するための、周到に準備された技術的独立宣言といえる。 なぜ世界一の自動車メーカーが、あえてゲームエンジンを自社開発するに至ったのか。その背

    トヨタが独自の“ゲームエンジン”「Fluorite」を開発:FlutterとDartで次世代デジタルコクピットを再定義 | XenoSpectrum
    MZQ
    MZQ 2026/02/11
  • ログ設計ガイドライン

    免責事項 有志で作成したドキュメントである。フューチャーには多様なプロジェクトが存在し、それぞれの状況に合わせて工夫された開発プロセスや高度な開発支援環境が存在する。ガイドラインはフューチャーの全ての部署/プロジェクトで適用されているわけではなく、有志が観点を持ち寄って新たに整理したものである相容れない部分があればその領域を書き換えて利用することを想定している。プロジェクト固有の背景や要件への配慮は、ガイドライン利用者が最終的に判断すること。ガイドラインに必ず従うことは求めておらず、設計案の提示と、それらの評価観点を利用者に提供することを主目的としている掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとする。掲載している情報は予告なく変更する場合がある 対象スコープアプリケーションが出力するログ(アプリログ)が対象AWS

  • ログ設計ガイドラインを公開しました | フューチャー技術ブログ

    はじめにTechnology Innovation Groupの八木です。 フューチャー社内の有志メンバーでログ設計ガイドラインを作成し公開しました! ログは、システムの稼働状況を可視化し、トラブルが発生した際に迅速に原因特定するための生命線になります。しかし、その重要性の一方で、プロジェクトごとに設計がバラバラになりがちだったり、とりあえず標準出力しているだけになっていたりと、十分に活用しきれていないケースも多く見受けられます。 記事では、今回公開したログ設計ガイドラインの背景や、現場で役立つ設計のポイントを抜粋してご紹介します。 ガイドライン作成のモチベーションこれまで、ログ設計は個々のエンジニアの経験則や、プロジェクトごとの慣習に委ねられることが多くありました。しかし、システムが複雑化し、マイクロサービスやクラウドネイティブな構成が当たり前になった現代において、ログの役割は「単なる

    ログ設計ガイドラインを公開しました | フューチャー技術ブログ
  • AIが脆弱性を96%見つける時代に、僕らがセキュリティを学ぶ意味はあるのか

    「このコード、セキュリティ的に大丈夫かな……」 PRレビューのたびに、なんとなく不安になる。SQLインジェクション、XSS、CSRF——知識としては知っている。でも、自分のレビューで当に脆弱性を潰しきれているかと聞かれたら、正直自信がない。 そしてある日、こんなニュースが流れてきた。 「自律型AIハッカーツール Shannon、既知の脆弱性に対して96%の成功率でexploitを自動生成」 ——あ、もう僕らの出番ないじゃん。 はじめに 結論から少しだけ言うと、AIセキュリティを自動化する時代だからこそ、僕ら開発者のセキュリティ"感覚"がむしろ重要になる——と今は思っている。 「え、逆じゃない?」と思った人、もう少しだけ付き合ってほしい。 AIセキュリティツールが気を出し始めた まず、今何が起きているのかを整理したい。 GitHub Trendingで1位になったShannonは、自律

    AIが脆弱性を96%見つける時代に、僕らがセキュリティを学ぶ意味はあるのか
    MZQ
    MZQ 2026/02/10
  • 自分のコードをAIに攻撃させたら"守り"が全部ザルだった

    セキュリティ、ちゃんとやってる?」 この質問、正直めちゃくちゃ怖い。 SQLインジェクション対策? やってる。XSS対策? エスケープしてる。CSRF? トークン入れてる。 ——でも、「ちゃんと」って何だ? OWASPのチェックリストを上から順に潰して、ESLintセキュリティプラグインを入れて、dependabotのアラートを処理して。やることはやっている。はずだった。 自分のコードに自律型AIハッカーをけしかけるまでは。 はじめに セキュリティは「そこそこ意識している」つもりだった。 でも今は、コードを書くときの思考回路がまるっきり変わった。守る側の視点だけでコードを書いていた頃には、絶対に気づけなかったことがある。 きっかけは、GitHub Trendingで爆発的に伸びていた「shannon」という自律型AIハッキングツールだった。1日で+3,000スター以上。AIエージェント

    自分のコードをAIに攻撃させたら"守り"が全部ザルだった
    MZQ
    MZQ 2026/02/10
  • ​【完全無料】社内ポータルを5分で自作|サーバー不要の「置くだけキット」配布中 | うしろぽっけ

    共有フォルダに 置くだけポータル 「あのファイルどこ?」は、もう終わり。 サーバー契約なし。 HTMLファイル1つで動く、 あなただけの社内ポータルを5分で作れます。 🚀 今すぐキットをダウンロード

    MZQ
    MZQ 2026/02/04
  • なぜcronからsystemd timerへ移行しているのか?歴史と設計思想から理解する

    この時代において cron は、軽量・シンプル・依存関係なしという 非常に優れた設計でした。 cron の「通知」はログではなくメール cron は「ログを溜める」より「異常を通知する」発想でした。典型的には stdout/stderr をメールで送るのが当時の設計です。 2. crontab の何が問題だったか? cron は長年使われてきましたが、現代のサーバ運用では次の問題が顕在化しました。 問題① 実行されたか分からない(状態がない) cron には「実行履歴」という概念がありません。 成功したか? 実行されたか? 何秒かかったか? これらを OS 側で追跡しません。 問題② ログが自動で残らない(可観測性が低い) cron は標準でログを「保存」しません。 そのため実務ではよく次のようになります。 出力先は人力 ローテーションも自前 失敗検知も自作 運用が属人化しやすいのが問題で

    なぜcronからsystemd timerへ移行しているのか?歴史と設計思想から理解する
    MZQ
    MZQ 2026/02/03
  • 生成 AI 時代のアイデア探索方法 (2026 年版) - 🐴 (馬)

    生成 AI の登場でプログラミングをはじめとした知的作業の方法が大きく変わってきています。 特に2025年は、調査やアイデア生成のタスクにおいて、生成AIの実用度が増したように思います。ChatGPT Pro 5.2 の登場と、着実な NotebookLM の進歩+Gemini 3とNano Bananaは、調査や情報の構造化という観点でとても大きな進展でした。 アイデアの作り方については、過去、2023年に「Climate Tech スタートアップの始め方」という記事でまとめたことがあります。今回は、生成AI以後の、2026年2月時点でのお勧めの「アイデアの探索方法」をまとめてみたいと思います。 🎯 この記事のゴール この記事では、アイデア(仮説)を作るステップを細かく分けながら、その途中で生成AIをどう使うかについてお話しします。 アウトプット目標は「この仮説を元に人に会いに行けば、

    生成 AI 時代のアイデア探索方法 (2026 年版) - 🐴 (馬)
    MZQ
    MZQ 2026/02/02
  • 知っているようで知らないCLAUDE.mdを深掘りする | gihyo.jp

    「Claude Code」は、CLI上で動くLLMによるAIエージェントツールです。連載は12月5日に発売された『Claude CodeによるAI駆動開発入門』に書ききれなかった応用的な内容や最新のアップデートについて解説します。書籍をあわせて読むとさらに理解が深まることでしょう。 今回は知っているようで知らない、Claude Codeの「CLAUDE.md」について深掘っていきます。 CLAUDE.mdとは記憶である 前提としてClaude Codeは、立ち上げた際、つまりセッション間で、そのコードベースやユーザーとの過去のやり取りを基的に覚えていません。しかしセッションを立ち上げるたびに、膨大なコードベースを毎回走査して理解していくのも現実的ではありません。 そのため、コードやルールなどを理解する起点として存在しているのがCLAUDE.mdです。 これはエンジニアにとってのREAD

    知っているようで知らないCLAUDE.mdを深掘りする | gihyo.jp
  • iptables入れたのにまだ27%直接アクセスされてた ー IPv6を忘れていた

    前回のあらすじ Cloudflareを導入したのに、75%が直接アクセス(バイパス)されていた話を書きました。 対策として、iptablesCloudflare以外からのアクセスをDROPしました。 # Cloudflare IPv4 のみ許可 sudo iptables -A INPUT -p tcp --dport 80 -s 173.245.48.0/20 -j ACCEPT # ... 他のCloudflare IPレンジ sudo iptables -A INPUT -p tcp --dport 80 -j DROP

    iptables入れたのにまだ27%直接アクセスされてた ー IPv6を忘れていた
    MZQ
    MZQ 2026/01/13
  • クレジットカード番号の混入を防ぐ技術 - inSmartBank

    あけましておめでとうございます! 駅伝企画 第四区走者の みにせら (minisera) です。 普段は顧客体験チーム(CRE)でサーバーサイドエンジニアをやっています。 上ちょ(@psnzbss) から受け取ったタスキを持って走り抜けます!よろしければ前記事もどうぞ。 blog.smartbank.co.jp この記事ではクレジットカード番号(PAN: Primary Account Number)がシステム内に紛れ込むのを検出・防止する仕組みについてお話しします。「カード番号っぽい文字列」を見つけ出すアルゴリズムをGoで実装し、大量の誤検知と格闘した経験から、段階的にリリースしていく中で得られた知見を共有できればと思います。 なぜクレジットカード番号の検出が必要なのか 想定されるリスク クレジットカード番号検出の技術解説 1. 正規表現による候補抽出 2. 正規化 3. Luhnアルゴ

    クレジットカード番号の混入を防ぐ技術 - inSmartBank
    MZQ
    MZQ 2026/01/09
  • これからメールサーバをつくるならStalwart - Tomohisa Oda

    メールサーバを作る場合、多くのOSがサポートされていることから、MTAはPostfixでMDAはDovecotを使うことが多いでしょう。この場合、昨今、大手メールSaaSが取り組んでいる送信ドメイン認証やTLS通信の強化に対応するには、追加のミドルウェアが必要となります。 例えば、送信時のDKIM署名をするならOpenDKIMを利用し、転送でメールを改変するのならFromを書き換えにPostSRSdを利用し、そのまま転送するならARC署名をOpenARCを利用したり、あるいはDKIMもARCもrspamdを利用するか、などなど。OpenDKIMもrspamdのそれも、元はMTAのsendmail由来のmilterという拡張仕様によって実現されていて、野良を含めるともっといろんな選択肢があったりします。さらには、DMARCポリシー適応とレポートの運用や、DKIMなどの鍵のローテーション、受信

    これからメールサーバをつくるならStalwart - Tomohisa Oda
    MZQ
    MZQ 2025/12/25
  • runtime/secret でGoのランタイムから秘匿情報を消す

    はじめに この記事は、Google Developer Experts Advent Calendar 2025 13日目の記事です。 先日、Go の tip に入った面白い新機能についての話をしようと思います。 このコミットで、runtime/secret という新しいパッケージが入りました。 runtime/secret このコミット、テストケースが多いだけであり実はそれほど大きな変更ではありません。実際に追加された主たる関数は secret.Do と secret.Enabled だけです。 // Do invokes f. // // Do ensures that any temporary storage used by f is erased in a // timely manner. (In this context, "f" is shorthand for the /

    runtime/secret でGoのランタイムから秘匿情報を消す
    MZQ
    MZQ 2025/12/13
  • GoでGracefulに停止する定期実行ワーカー - すぎゃーんメモ

    起動してから、指定された処理を「s秒ごと」のように固定間隔で実行し続ける、というワーカー的なプログラムを考える。 何も考慮しない場合 最も原始的には以下のように time.Ticker を使ってループし続ければ良い。 type Worker struct { interval time.Duration task func(context.Context) } func NewWorker(interval time.Duration, task func(context.Context)) *Worker { return &Worker{ interval: interval, task: task, } } func (w *Worker) Start(ctx context.Context) { ticker := time.NewTicker(w.interval) defer

    GoでGracefulに停止する定期実行ワーカー - すぎゃーんメモ
  • タイミーで蓄積された Aurora MySQL 運用ナレッジ─ 障害・チューニング・実践知を特別公開 - Timee Product Team Blog

    はじめに タイミーで SRE 業務を担当している徳富(@yannKazu1)です。 日々、数千万件のデータと向き合う中で、Aurora MySQL の運用をより良くするための改善を積み重ねています。 記事では、その中で経験してきた “机上ではわからないリアルな気づきや学び” を、できるだけ具体的にまとめました。 これから Aurora気で運用したい方や、同じような課題に悩んでいる方のヒントになれば嬉しいです。 (この記事はTimee Product Advent Calendar 2025の3日目の記事です。) 1. オンラインDDLでも「ゼロロック」ではない ─ ALTER TABLE 実行時の落とし穴 「MySQL のオンラインDDLなら、日中でもサッと ALTER できるよね?」 ──そんなふうに思ってしまうこと、ありますよね。 たしかにオンラインDDLはとても便利で、データ

    タイミーで蓄積された Aurora MySQL 運用ナレッジ─ 障害・チューニング・実践知を特別公開 - Timee Product Team Blog
    MZQ
    MZQ 2025/12/04
  • LEFT JOINの論理削除はWHERE句でしぼるな

    これはなに こんにちは、レバテック開発部のもりたです。 論理削除、皆さんは採用していますか? わたしが普段開発するシステムでは論理削除を採用しているものもあるのですが、今回はその論理削除の気を付けるべき点として「子テーブルの論理削除されたレコードの絞り込みをWHERE句でしてはならない」という問題について解説します。慣習的に起こりにくいミスなんですが、案外ダメなことを知らない人もいると思うので、ご紹介です。 どうすればいいか? こうじゃなくて... SELECT * FROM parents LEFT JOIN children ON parents.id = children.parents_id WHERE parents.deleted_at IS NULL AND children.deleted_at IS NULL -- 子テーブルの論理削除の絞り込み ; SELECT * F

    LEFT JOINの論理削除はWHERE句でしぼるな
  • ドキュメントを手作業で保守する時代は終わり ~Google、「Code Wiki」を公開プレビュー/公開リポジトリのドキュメントを継続的に自動生成、「Gemini CLI」拡張機能も開発中

    ドキュメントを手作業で保守する時代は終わり ~Google、「Code Wiki」を公開プレビュー/公開リポジトリのドキュメントを継続的に自動生成、「Gemini CLI」拡張機能も開発中