PPM(プロダクト・ポートフォリオ・マネジメント)を「分類」から「動かす道具」として読み直す
PPM は事業を「市場成長率 × 市場シェア」の2軸で4象限に分けるフレームワーク ただの分類で終わらせず、象限を「動かす」道具として使うと戦略になる 事業の一生は 問題児 → 花形 → 金のなる木 → 負け犬 の順。負け犬はスタートではなく終着点 お金の流れは 金のなる木 → 問題児。稼ぎ頭の資金で次世代を育てる 「低成長」は悪い意味ではない。悪いのは成長率ではなくシェアの低さ
PPM は事業を「市場成長率 × 市場シェア」の2軸で4象限に分けるフレームワーク ただの分類で終わらせず、象限を「動かす」道具として使うと戦略になる 事業の一生は 問題児 → 花形 → 金のなる木 → 負け犬 の順。負け犬はスタートではなく終着点 お金の流れは 金のなる木 → 問題児。稼ぎ頭の資金で次世代を育てる 「低成長」は悪い意味ではない。悪いのは成長率ではなくシェアの低さ
class セレクタ依存をやめて a11y ベース(role + accessible name)に寄せる Capybara はもともと a11y ベース設計。click_button "保存" を徹底すれば 8 割対応できる ただし Capybara.enable_aria_label = true / enable_aria_role = true は最初に必ず設定する 学習リソースは「一般…
Ubuntu の unattended-upgrade が nginx のパッチリリースを上げた ことで、apt パッケージで配布されている nginx モジュール(Web アプリのワーカーを管理する連動コンポーネント) との ABI 不整合 を起こし、Web アプリのワーカーが spawn できなくなった ALB ヘルスチェックは失敗を返し、ASG が unhealthy 判定 → 次々と E…
AWS の ALB は 2016 年のローンチ時点から リクエストをバッファリングしている。Slow client 対策で Puma の前に Nginx を置く必要はない Rails コミュニティで長年「Puma の前に Nginx」と言われてきたのは、オンプレや HAProxy 直結構成での話。…
長期キャリアで効くのは「自分が何をできるか」より「他人が自分をどう語るか」 直属上司は評価上の語りを独占しやすく、関係がこじれると修復のコストが高い 「上司を説得する」より「上司を経由しない情報経路を増やす」方が現実的 経路は 4 つ。上のレイヤー / 横の信頼 / 社外の市場価値 / 過去判断の証拠化 上司の単独裁量が相対的に小さくなれば、関係に依存せずキャリアを守れる
「サクッと設定したい」と書かれた依頼を見てイラっとした 自分も同じことをしてないか過去の依頼文を棚卸ししたら、「すぐ確認できる」「内容ほぼ同一」など、相手の工数を勝手に見積もる表現が出てた 何度かリマインドを重ねた依頼を見直すと、丁寧語で包んだ催促文に不満が滲んでた 文章を磨くだけでは根本解決にならない。…
MSA = アプリを小さな独立サービス群に分割する設計、対義語はモノリス(1 つの大きなアプリ) 各サービスは独立デプロイ・独立 DB・言語選択自由 障害局所化・チーム分割しやすさが利点、運用の複雑化が欠点 「Rails は MSA に向かない」と言われるのは、1 アプリで全部やる前提で作られているから
CPA は Cost Per Acquisition(顧客獲得単価)の略で、1 件のコンバージョン獲得にかかった広告費を示す指標 「CPA が高いから広告費を厚く張れる」は因果が逆。正しくは「LTV が高いから CPA が高くても回収できる → 結果として広告費を厚く張れる → 競争でさらに CPA が上がる」 高 CPA な顧客層は「採算が合う高 LTV 層 = 取り合いになっているリード」と…
iptables の hashlimit モジュールで、送信元 IP ごとに独立したトークンバケットを持たせて HTTP/HTTPS をレート制限できる ユーザー定義チェーンに「正常レートなら RETURN」「超過したら DROP」を 2 段で組むのが定番形 --hashlimit-burst を 100 くらい残しておくと、ブラウザの並列リクエストを潰さずに済む
user:pass@host 形式の URL でページを開くと、fetch() の相対パスが認証情報を引き継いでしまう fetch('/api/...') が "Request cannot be constructed from a URL that includes credentials" で死ぬ location.origin を先頭に付けた絶対 URL にすれば解決 Chrome(デス…
ImageMagick の InterpretImageFilename に「連続パーセント記号 %% を処理する箇所」で off-by-one error があった バグの本体は 書き込み ではなく 読み込み 側のポインタが \0 を 1 バイト飛び越えること 1 バイトの read overflow 自体は軽症(クラッシュ or 軽い情報漏洩)だが、パーサーがそのバイトを「次の動作の判断材料…
ファイルとして置かれた SSH 秘密鍵は、コピー・同期・マルウェアによる窃取のリスクから逃げられない 「複製不可能」とは、秘密鍵をハードウェアの中で生成して 外部にエクスポートできない 状態にし、外に出るのは公開鍵と署名結果だけにする運用 OpenSSH 8.2+ なら FIDO セキュリティキー(YubiKey 等)を 追加ソフトなし で使える。…
バケット ACL を public-read にすると、誰でもバケット直下に対する ListObjectsV2 が叩けてしまう(オブジェクトキー・サイズ・LastModified が匿名で取得できる情報漏洩リスク) 個別オブジェクトの public-read 配信(CarrierWave の asset_sync / Rails アセット等)は維持しつつ、 バケットレベルのリストだけを拒否 した…
AWS CLI v2 は出力が一定量を超えるとデフォルトで less を起動し、ターミナルが全画面の pager 表示に切り替わる 抑制方法は 3 通り: コマンド単位の --no-cli-pager、環境変数 AWS_PAGER=""、~/.aws/config の cli_pager 永続化したいなら .zshenv に export AWS_PAGER="" を書いておくのが手軽 aws…
ある記事は「依頼された仕事をやらない人」の本質を「考えるのが嫌」と診断し、処方箋として「考えなくていい仕事に閉じ込めろ」と提案している しかしその処方箋が指す領域は、ちょうど今 AI が一番得意な領域と重なる 「計画が苦手」を 8 要素に分解すると、AI で代替できる部分と人間に残る部分がはっきり分かれる AI に食われるのは「計画が苦手」全員ではなく、着手できない人 + 考える行為自体を避ける…