2024/12
Published At: 2025/1/7 20:40:00

2024/12

2024/12月 総括

新年が始まってもう一週間も経っているので、12月の記憶はおぼろげですが……。

プライベートでは

  • PAS TASTA のライブ
  • クリスマスイルミネーション
  • 牛タンを焼く
  • 良い蕎麦屋を見つける

などがあり楽しかった。いくつかの忘年会が新年会になったのは財布に優しい話。

会社の話はしづらいけど、だるい仕事を倒していろいろ面白いことを進められそうな感じになってきた。 技術的にも、事業的にも。Rubyとはしばらくお別れになりそうな気配が漂っている……。


2024-12-02

  • (toC)Webサービスでディズニーランドは作れるだろうか?
    • ディズニーランドは様々なアトラクション(機能)がある
    • 一方でユーザがWebサービスに対して期待するメイン機能はそれほど多くなさそう
      • X, Instagram: 投稿・閲覧ができる。細かくはプロフィールがなんとかあるが、トイレみたいなものでしょう。
        • そして閲覧に偏重する傾向もある
      • そうすると、メインの機能はブラッシュアップされていく
    • 逆にtoB SaaS はなんかディズニーランド的でそこに様々が集約されていることに価値がありそう
  • 多くの人が使うtoC Webサービスを目指すにはユニクロドンキホーテを目指す必要がある?

2024-12-03

  • MCP というのが流行っているらしくて気になっている
    • おおよそ野生状態だった Function Calling をプロトコル化しましたみたいな話
    • で、どうやら自然言語でSQL書いて分析みたいなのが楽に用意できそうなのが気になっている
      • @ai_syacho: しゃ、来たわ。

      • Claude MCPと昔作ったサンプルSupabaseが繋がった。ずらずら情報が出てくるしデータ分析もできる。

      • もう。

      • なんだろう。言葉が出ない。

      • https://pbs.twimg.com/media/Gdi5EWHWwAAntwW.jpg

      • @ai_syacho: Claude MCP + Supabase 連携手順

        1. Claude 公式クイックスタートをやっておく
      • https://t.co/P92Q5n1pQy

        1. supabaseダッシュボードで
      • Project Settings > Database

      • URLを取得

        1. MCPのjsonファイルに以下の(〜〜〜〜〜〜〜)のところをURLで埋める
      • {

      • "mcpServers": {

      • "postgres": {

    • へ〜と思いつつ、うちは MySQLAthenaしか使っていないので↓を待つ
    • awesome 系もあってもちろん野良?MCP実装も出てきている
  • 1つのBFFに対して複数Frontendがあるのは微妙?
    • 分けたいモチベーション
      • v0.devなどを使ってフロントエンドの開発を加速したい
      • 現状 Next13+Pages+Emotion みたいな形でやってるやつと相性が悪い
  • ソフトウェア開発のインターフェイス部分はエンジニアからすると、一番末端だけどエンジニアリングに明るくない人からするとかなり中心と捉えられるのは意識しなければなぁという気持ちになった。
    • https://scrapbox.io/files/674e93f62b82f0e8cee32e81.png
    • 右側の末端をどれだけ広く高く見せられるかが(特にビジネスだと)大事で、そのためのという気持ち。
    • まぁでもそうだよな。「パソむず〜」って言いながら型パズル解いてるのが本質なわけない。
  • App RouterでuseAppContext みたいなのってどうやるの
    • よくわからんな〜- layout.tsx を Client Component にして、<AppContext>{children}</AppContext> としました - そして、page.tsxServer Component として動きます - うれしい - page.tsx の中に Client Component を入れてその中に Server Component を入れたら怒られます - うれしくない - > Error: async/await is not yet supported in Client Components, only Server Components. This error is often caused by accidentally adding 'use client' to a module that was originally written for the server. - 俺も同じ認識だったけどなんで layout.tsxClient Componentであることが許されてるの?- Rendering: Composition Patterns | Next.js - 100億回読んだけど Client Component で得た結果を下に渡せないの不便 - 100億回読んだ証左 2024-09-09#66de43c7188b52000039a9eb
  • https://the-guild.dev/graphql/codegen/plugins/presets/preset-client

2024-12-04

  • 最近朝が早い
    • 程よい寒さのおかげか
      • どちらかと言えばやや楽しいエンジニアリングをやってる期間なので、それなりにハードに指と頭動かしてるし、寝付きがいいからかもしれない
    • コーヒー豆を使い切ったから猿田彦珈琲に行った。なんか割とデカいサイズがモーニングで400円だったのでちょっと得した気持ち。
  • 通常Geminiの出来が微妙すぎてAdvancedに課金するモチベーションが生まれない
    • しばらく無料開放するとかしてほしい…。
  • NextAuthの再実装みたいなやつが作れて気分がいい
  • ブラックフライデーで買った龍が如くを早くやりたくて仕方ない
  • これこの辺の話で一番納得に近づいてる。
    • @windymelt: Int ← Int型の値ですね、そうですね

    • List Int ← IntがListに入っていますね、そうですね

    • Future Int ← Intがそのうちやってくるらしい

    • Stream Int ← Intがじゃぶじゃぶやってくる

    • 〜抽象化〜

    • F Int ← Intがもらえるけど、その評価戦略はFというパラメータに外出しされています。

    • まだ flatMap よくわかってない!

2024-12-05

  • バッチ管理全部Event Bridgeに任すことは出来ないだろうか
    • Vercelsolid_queueでいまやってるけど、これサービス増えたら一元管理できないとつらくなりそうだ
    • まぁ先の話ということにしたい
  • だいぶ楽しい仕事をやっておりだいぶ楽しい
    • 具体的にはApp Routerの実戦投入
    • shadcn/uiTailwindも入れて非常に楽しく画面を作らせていただいております
  • App Router, 脳のメモリをPages Router比3倍くらい持って行く
    • JSXが Server だけで動くやつ / Template みたいなやつ / Intaraction が発生するやつ のどれかを当てるゲーム
      • Pages Routerは gSSR / gSSG などで明確だったから Intaraction に集中すればよかった
      • App Routerでも同様に 'use client'; を書いて回ればいいという感じ(妥協)があるが、Container / Presentational Componentみたいなみたいなところに落とすときに再設計が必要でう〜ん
  • MCPの MySQL のやつ Close されてた…
  • どうでもいい画面、v0.devに聞きながらshadcn/uiで書いていくの本当に楽でいいな〜〜
  • 2年近くほぼ売れてないサービスを1人で開発してるの狂気の沙汰な気がするけどそろそろ1000 Pull Request になる
  • "2024-12-5"ZodでDateにする

2024-12-06

  • designcomputer/mysql_mcp_server試してみる
    • これを書けと書かれているが、手元にuv入れてないんだよな
    • 環境変数でこれを使えとも書かれているけどどっちが必要なんだ?
    • uv 入れて、uv tool install mysql_mcp_server してみたけど動かない。
      • 動かないとは、Claude MCP can't connect to SQLite MCP serverClaude MCP can't connect to SQLite mysql server が出るということ
  • 素直にまずはMCPのQuick Startに従ってみる
  • ググるとこんなコメントが
    • https://www.reddit.com/r/ClaudeAI/comments/1h0my0y/comment/lzlhrw5/ - > Instead, in your terminal type: - > which uvx - > then copy paste the output of that into the "command" field instead of uvx - > For me for example - > $> which uvx - > results in - > /Users/bob/.local/bin/uvx - > so I changed it to - > { - > "mcpServers": { - > "sqlite": { - > "command": " /Users/bob/.local/bin/uvx ", - > "args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"] - > } - > } - > }
    • これだ〜〜〜
    • Claude Appが uvx を適切に掴めなかったことと、そのエラーがわかりにくかったことには目をつぶろう
    • Claude DesktopからMySQLに接続できた!
  • MCPに対応したアプリ作りたい!

2024-12-07

2024-12-09

  • PAS TASTA最高 一番好きな TASTA です
  • chore / ops ? な作業を減らしたい
  • 自分の学習の原動力は「いまの面倒を楽をしたい」が大きいな
    • パソコンやプログラミング、AIとか
    • 小学校の頃、字をうまく書くのが苦手かつ努力したくなくて、「将来は多分パソコンでみんな文字書くから汚くてもいい」ってごねてたのいまだに覚えてる
      • 結果としてうまいに越したことはなかったが
    • なので?突き詰める気持ち・センスが育ってなさすぎてこれは器用貧乏の特徴だと思う
    • クックパッドで働けたのは本当に良くって、自分のこの程度でいいだろの水準をいくらか高められたし(まだまだ低そうだけど)、適当にやったツケについて考られるようになった気がする
  • bunのrepl でバグ踏んでいる
  • open-graph-scraperを使ってYouTubeのOGP作ろうとすると失敗しがち
    • なぜか1回目のアクセスでは
      • YouTube でお気に入りの動画や音楽を楽しみ、オリジナルのコンテンツをアップロードして友だちや家族、世界中の人たちと共有しましょう。

      • というのが返ってくる
    • 2回アクセスするということをしているが遅くなる……。
  • GitHubGithub ActionsではないCI(つまりVercel)の通知を受け取りたい
    • 微妙にCI終わったかな〜に頭を持っていかれている
  • Gitの commit message, 特に description? body?の部分誰が読むんだよと思っていたけど、本当にAIが読むので書いたほうがいい。今からでも遅くないと思い始めた。
  • 最近 rubocopがエラーを出して終了することが多くてかなわん
  • @pastak: 今年はNode.js実装ことTypeScript参考実装を担当しました!皆さんのチャレンジの手助けが出来ていれば幸いです。是非フィードバックなどあればブログなどでお願いします!!! #isucon

    • ISUCON13ではNewRelicいれるの大変だったから助かりました!!!
  • AIのトークン消費がもったいないので感謝を伝えなくなる人類
    • ChatGPTの横に「今から送るメッセージで消費される金額予想」とか表示されたら面白そう。
    • 高級AIに長く相談する人ほどAIに感謝を述べなくなるみたいな

2024-12-10

  • ISUCON 14 (言語別, Node.js )で Top10 に入ってたようでかなりうれしい
    • 「まだまだ精進しなはれ」なスコアではあるけど
  • Cursor便利すぎて失職
    • 仕事のメインがマジでコードレビュー
    • 機械を入れて高速化したらどうなる?仕事量が増えるだけじゃ
  • 1つのリポジトリに複数 Vercel Projectが入っていると、ビルドが並列化されずつらい
  • Claude Desktopからバンバンコメント投げまくってMCP使いまくってたら普通に rate limit かかった

2024-12-11

  • ISUCON, 知らぬ間にスピードアップするゲームじゃなくなってた
    • @soudai1025: isuconで負けたことに言い訳する気は無いし、それは実力不足なので受け入れているけどチームとしてpostgres移行と向き合ってるし、それによって世の中に実績を出していく事に価値があると思っています。

    • 例えばmysqlからpostgresに移行するハマりどころを一つ一つ潰すことには社会的な価値があると思ってます。

    • そんな我がチームがどんな気持ちでどんなコンセプトで何を価値としているるかも理解せずに結果だけでマウント取られるのが単純に不愉快でした。

    • じゃあ

    • @songmu

    • さんはisucon終わって世の中にどんな価値を提供してるんですかね?

    • 何をアウトプットされたんですかね?

    • 世の中の何をよくされたんですかね?

    • isuconは仕事じゃないから楽しみ方は人それぞれです。

    • なので各チームのコンセプトや取り組みに物言いをするつもりはありません。

    • ですが少なくとも僕は今日、isuconの反省点として履歴テーブルの扱いをブログにしました。

    • お仕事が忙しいからアウトプット難しいですかね?

    • まこぴーやまさよしと俺らがどんな気持ちでisuconに課題感をもってチャレンジしてるか想像できないのにエンジニア採用やりますって本気でいってるんですかね?

    • 酒の勢いで話されてると思いますが会社の看板を背負っている人の発言としては心配です。

    • 他人ならスルーしますが知ってる人だからこそ、ちゃんとフィードバックするべきだと思うので書きました。

    • 週末仲間と集まってスプラやるに近い感覚なんだけどな
  • 昨日VercelでビルドしていたものをGithub Actionsに移した結果、
    • Preview ビルド時間が 8分→ 20分
    • Production ビルド時間 6分 →
    • になっていて最悪
  • 通常業務の中にCapCutとかを使った動画編集が入ってるのおもしろい
  • 機能に気持ちがあるサービスの開発に携わるのは避けたい

2024-12-12

2024-12-13

2024-12-17

2024-12-18

  • 芸歴6年目だけどいまだにいい commit message の書き方わかってない
  • 俺も〇〇に移ってからのほうが長いってやつ言ってみたい気がする
    • ckpd: 2020/04-2022/12: 32ヶ月?
    • fssy: 2023/01-2024/12: 24ヶ月?
      • 割ともうそんなに時間が経っていたか………………絶望
  • Railsでの改行問題みんなどうしてるん
    • Pattern Aは個人的には
      • にも見えて微妙だ
    • じゃあ右代入使ってこれは?
    • 見慣れなさすぎて変数の宣言見落とすわな
    • ま、そんなに気にしてないんすけどね自分は。こだわりある人に任せたい。
  • 気乗りしない日はコードがアルファベットの壁に見えてダメだなあ、終わらせたい仕事なのだけど

2024-12-19

  • Github Actionsが異常に遅くなった回が以前あったけど、もしかしたら GitHub Actionsがホストされてるのはアメリカだからか?
  • https://yucali.fussy.fun/checkin
    • PCだと早いけどSPだと何故か20秒近くかかる?
  • AIアイコンの人が書いたテックブログ、内容もAIが書いているのか…?と思えて妙に信用できなくて笑った
    • そもそもそのくらいの信用度で野生ブログ読めって話でもある気がする
  • 基盤、いつでも戦える状態にしておくために必要という感じがすごい募る
    • ガタガタの足元でチャンスが降ってきても戦えない
  • Railsのうまい例外の使い方身につけたいですね

2024-12-20

2024-12-21

  • モスバーガーのチーズバーガー意外と美味しいし高くないし最高
  • CQRS+ESカンファレンス - connpass
    • CQRS+ESカンファレンス 来た
    • 渋谷駅の新南改札から比較的スムーズに来れた
    • ドメインイベントで描く未来: CQRS/ESが変えるシステムとDXの可能性
      • CQRS, 理屈としては雰囲気わかるけど例えば複数のイベントを集計する必要があったりしてすごいややこしくなりそう
        • 新規にイベントを生やしたときの migration とか
        • リソース上はsnapshot を取るのはわかる気がする
      • CQRS+ES の話なのか CQRS の話なのかよくわからない時あるな
        • 必ずセットなの?
      • 前提としてモデルとイベントモデル(ドメインイベント)を分離している必要があると思うけどその話が薄そう
        • 何に対するイベントなのかがわからない
      • SSoTの source はどこにあるんだろう?バックエンドでずっと持っているわけではないのかな
        • 状態を得るためにバックエンドに都度フロントエンドからアクセスするわけではなさそう
      • event stromingbig pictureなに?
    • 2年間の実運用を経て振り返るイベントソーシングの実際
      • データ数が多くてデバッグが難しい
      • 読み取り速度の話
        • キャッシュやスナップショットを使ってやっていく
          • この辺はストレージをもとにシステム組んで revalidation とか含めていい感じになってほしいな
        • コードのアプデごとにスナップショットの作り直し。賢い。
      • Azure Cosmos DBのServerless モードなら月100円マジ?!
      • 書き込み時にトランジションはってない
        • マジ?
        • 複数イベントを書き込むときにエラー出るかもなるほど
      • CQRS+ES やってる人、かなり真面目にやってそう(?)
      • 「ビジネス上のアーキテクチャ特性」便利な言葉だ
        • (結果整合性があるので)「更新されるには時間がかかります」
    • ??
      • GitHub - nrslib/cqrs-sample-codes
      • user_events じゃなくて domain_event_entry みたいなやつに一行入れてくの乱暴に感じる
      • user.create は users へのレコード書き込みではなくて event { type: "user.created" }作成なのすごいな
        • ん。このあとに users テーブルにも作ってるのか
        • user.created
      • 全体的に裏でどんなSQLクエリが発行されているのか気になる
      • イベント
      • Sagaってやつで workflow を作ってやっているっぽい
      • 個人情報は encrypt しておくなるほど?
  • 関数型ドメインモデリング - アスキードワンゴを最近読んでいたけど、いわゆるドメインモデルとは合わない形でテーブル定義をしてパフォーマンスチューニングをすることがあった。
    • え〜〜〜全然どんな事例だったか覚えてないのもったいない気がする
    • こういうときってどうするんだろう?ドメインモデルとリポジトリパターンみたいな感じで分けて、DB側の都合はそこら辺で解決するようにするのかな
      • なんかコード量がどのくらい増えるのかいまいちわからない

2024-12-22

2024-12-23

2024-12-24

  • App Routerの嫌いなところいっぱい踏めて楽しい
  • ちょっと朝思いついた面白を仕込んでみたけど全くウケなかった
    • クリスマス前後にリリースをするべきではない
      • というのは心を休めるために言ってます…
  • 今年はクリスマスケーキを買わなかった
    • 逆張りじゃないって!!
    • なんか大きなケーキを飽きるほど食べる贅沢に浸れるほどお金と気持ちに余裕がなかった
  • ussu

2024-12-25

  • NHKだけ東京に残して放送キー局全部地方に散ったら面白いことにならないかな
  • お笑いは難しい
    • 無難に進めるところと攻めるところの緩急が自分には全くわからない
    • ある時よくてある時ダメになったりもする
      • アップデートが求められるけど
  • Possible race condition in postgresql type_map initialization · Issue #51780 · rails/rails · GitHub
    • 半年以上オープンだ
  • 完璧な人間なんていないんだから、その組織が置かれてる状態に応じてうまくやろうよ……という気持ちでいっぱいです。
    • クリスマスだからね
    • 一方で自分の都合のために相手を捻じ曲げようとする人間は退場すべし

2024-12-26

2024-12-29

monthly