詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

オレ流2025年スターターデッキ

この記事は「はてなエンジニア Advent Calendar 2024 - Hatena Developer Blog」の 42 日目の記事です。昨日は id:mangano-ito さんの「2025年、それはスクワットの時代 🏋️」でした。


お題を作りました! みんなも参加してね → お題「私の2025年スターターデッキ」


現環境はmacOS/Androidです。

タスク管理: Google Tasks

今年からの新顔。過去にはTickTickを使ってた (2022) がカレンダーに入れたとて予定を無視して好き勝手してしまうのであまり機能しなくなってしまった。2024年は社内のドキュメントシステムに手動で週ごとにコピペ運用していて、そこそこよかったのだけどタスクが焦げ付いてきたのでGoogle Tasksに移動してみる。タスク管理に必要なのは定期的な棚卸しだよキミィ。

タスク管理のDue Dateの類、うまく使えた気がしないんだよな。マジの締め切り入れる運用にしたら間に合わないし、作業日を入れても真の締切を知ってるのでやらないし(それが悪いんだろうという声はある)。

去年より、マニャーナの法則を参考に、Inbox+WillDoを管理するようにしている。それでもうまくいってるわけではないが……。Google Tasksでは、その日やるタスクにスターをつける、というような運用。

ブラウザ: Vivaldi

数ヶ月ぶりに復活。ブラウザのタブも同様に増え続けるのでChromeとFirefoxとVivaldiとをローテーションしている。Vivaldiはカスタム検索エンジンを登録できて、Androidからも同じように使えるのが便利。前使ってたときの読み残しが100タブあった。

SNS: Bluesky

@motemen.works on Bluesky

昨年末からの新顔。Xはもうだいぶ積極的には見ないようになっていたのだが、ある時期ふいにBlueskyを使ってみたら同じようなタイミングで知ってる人が使いはじめていたのでそのまま定着しつつある。公式系のアカウントもあったりなかったりで

フォント: Moralerspace Argon NF

GitHub - yuru7/moralerspace: Moralerspace は、欧文フォント Monaspace と日本語フォント IBM Plex Sans JP 等を合成したプログラミング向けフォントです。

たぶん新顔?Humanist Sans というらしい字体。これは線の太さが一定ではない感じなのかな。MonaSpaceに日本語フォントをくっつけてくれたやつです。ありがとうございます。ターミナルでメールも読んでいるので日本語が読みやすいのはうれしい。

Operator というフォントが好きで、たまに思い出しては値段にびびってスゴスゴと帰るということを繰り返しているのだけどこれに近いフォントを探して彷徨っていたときに見つけた。

ターミナル: WezTerm

WezTermに移行した - 詩と創作・思索のひろば (2024)

去年より。Ghosttyというのが最近出たらしいが、自分はまだ触ってない。

メーラ: neomutt

結局ターミナルでメールを読むことにした - 詩と創作・思索のひろば (2022)

継続。気分でウェブのGmailも使いますが。letterknifeもあわせて。

個人メモ: Workflowy

A simpler way to organize your work - Workflowy

使いはじめたのはもっと前だけど、Cosenseに移ったりしつつ、半年くらい前からWorkflowyに戻ってきた。巷に言うアウトラインエディタなんだけどアウトラインがどうこう、ということはあまり考えてなくて、「とりあえずどこに書いてもいいメモ」として使っている。とにかく全部フラットにあるのが何も考えなくてよい。階層的な整理はほとんどしてなくて、トップレベルとか開いたところにどんどん書き込んでいってる。

似たようなもののOSSとしてLogseqってのがあるが、一瞬使ったけどスマホとの同期に一手間要りそうなので戻ってきた。Logseqは自分で拡張できるのがいいんだけどねえ。

使ってみたい人は こちらのリンク から利用をはじめるとお互いトクです。

エディタ: VSCode

Vimmer、Visual Studio Codeを使う - 詩と創作・思索のひろば (2023)

連続受賞。便利ですハイ。

ポケモン徹底攻略の詳細検索の条件をAIにいい感じに作ってもらう

ポケモン対戦の構築を考えるときには、ポケモン徹底攻略の詳細検索が欠かせませんね。

覚える技、タイプ相性、特性など非常に複雑な組み合わせでポケモンを検索できる反面、当然のことながらフォームの入力要素も非常に多くなっているわけで、

とても縦長になっている。これは大変なので、AIに生成させることにしました。

ポケ徹検索くん

「草・炎半減でフェアリー等倍」「特性頑丈、ステロとほえるを覚える」など、自然文を入力するとポケ徹の検索結果へのリンクを案内してくれます。便利。

内部では Structured Outputs を使って、入力を何かしらの検索クエリに変換させている。

GPTもGeminiも、わりとポケモンの略語を知っていて両壁とか剣舞とかもふつうに通じるのはよい驚きだったけど、安定しないこともあるので結局プロンプトにいくつか指示を入れている。技の名前は漢字で与えられることが多い(と考えられる)一方、検索欄で有効なのはひらがなorカタカナなのでそのように正規化して、と言ってるがときどき「リフレクター」が「りふれくたー」になったりして、なかなかうまくいかないなあ。

ホントはGemini 2.0も試してみたかったが、いま時点でOpenAI互換のAPIが動いてないようなので後日。

ちなみに一番大変だったのはAIっぽさを出すためにinputを虹色にするところなどです。

ISUCON14に参戦した(カラアゲネイティブ、14,987点)

最近の感じでカラアゲネイティブチームで参加したのだけど、toriclsが参加できないことがわかっており、新メンバーとしてMOSHの村井さんに入っていただいて2024年バージョンとして挑戦。

リポジトリはこちら。

GitHub - motemen/isucon14: カラアゲネイティブ (2024)

最終的な構成については大工事などとくになく、nginx + app*3 + db という普通の構成になった。

pt-query-digestを見ていくところからやっていったのだけど、マッチング周りであるとか、アプリケーションやユーザの理解に基づく改善に手を付けられなかった(手数が足りていなかった、というのもあるが、発想と優先度づけ)のは反省点。村井さんがalpの分析もさっとやってくれて、いつも自分がそこまで手を回せてなかったのが気になっていたので助かった。

あとは思い出せる範囲でざっくりと。

  • いつも通りという感じで自分がリポジトリやデプロイ周辺の準備をしつつ、残りの2名でレギュレーションやアプリケーションの理解を進める。
    • とくに準備をできてなかったのだけど、前回のMakefileを見ながらやっていたら意外とスムーズにいけて、これはよかった。
    • シミュレータまで用意されててすごい。
  • pt-query-digest の結果を見ながら、作戦会議。素朴にインデックスを張る、総走行距離をDBに保存する、冪等キーの対応、SSE化などいくつか手を付けられる方面がありそうだったので、なんとなく割り当てて散。
  • 総走行距離を別テーブルに
    • この変更で微妙にエンバグしてしまい、後に悩まされることになる……。chair_locationを更新しなくなった結果、chair_locationの更新時刻にDB上の値を利用できなくなり、別の値を用意したのが微妙にズレていて、ベンチマーカーから総走行距離がわずかにズレている、という警告を受け取るようになってしまった。
    • 村井さんに見てもらったりして、最終的には直せたけど時間を無駄に食ってしまった。。
  • その後は自分がSSE対応を入れようとしたのだけど、今ひとつスコアが上がらず本体に入れられなかった。。
  • あとはSongmuさんと村井さんがマッチング改善、冪等キー、複数台化などなどやってくれて最終的に14k点まで行ってフィニッシュ! 悔いが残る。

今回、ベンチ周辺で一切困らなかったのですごい。運営の皆様おつかれさまでした&ありがとうございました。

はてなで一緒に働きませんか?