Links of February

GitHub

1月から始めた月次振り返りの2月版です。

興味を持ったこと

パーソナルソフトウェア

業務でコーディングをしていると、YAGNIを意識しながらコードをできるだけ書かずに要件を満たし、テスタビリティを高めるための設計をします。コードは書けば書くほどメンテナンスコストがかかり、バグを生み出す原因にもなります。

そのようなことを繰り返していると、パーソナルプロジェクトでもそれを適用してしまい、コードを書かないで済む方法を考えてしまうようになりました。

しかし、コードを書くこと自体が楽しいということを思い出しました。コードを書くことで、自分の考えを形にすることができるし、それが動いているのを見ると達成感があります。コードを書くこと自体が楽しいということを忘れないようにしたいです。

コーディングは問題解決の手段だとは思っていますが、解決までの過程がなんだかんだ楽しいです。そのためにexperimentalな技術を試したり、自分のアイデアをテストする過程が楽しいです。

使い捨てでもいいので、自分のアイデアを形にするためにコードを書くように戻ってきました。

デザイン倫理、ハーバーマスと広告

ハーバーマスが論じた公共性の構造転換は有名で、コーヒーハウスを新聞やパンフレット、政治論議などが交わされ、身分を超えて意見交換できる場として定義し、言論や出版の自由を得て自由に討論することにより政治的に参加することができた18世紀の市民社会を指しています。

しかし、ハーバーマスは当初は活発だった市民的公共圏が、現代に至って大量消費社会やマスメディアの台頭によって形骸化・「再封建化」しているのではないか、という問題提起もしています。つまり、本来は市民の自由な討論が行われるはずの場が、広告やメディア支配などによって形だけのものになりかねない、という懸念です。

また、アドテクノロジーは、プライバシーの侵害や子どもの搾取、ダークパターンの強化など、様々な問題を引き起こしていると言われています。

llms.txt

AI向けに平文を提供するライブラリが増えています。/llms.txtというファイルを提供することで、AIがライブラリの概要を理解しやすくなります。

Cursorも複数のruleファイルを読み込めるようになり、今後はAI生成しやすくIDEで読み込みやすいライブラリがスタンダードになるかもしれません。

弱いロボット(Weak Robots)

AGIの研究は進んでいますが、アライメントの問題が度々取り上げられます。強いロボットは、人間を超える知能を持ち、人間を脅かす可能性があります。岡田美智男さんのロボットにインスピレーションを受けて、弱いロボットに注目しました。

弱いロボットが強いロボットのアライメントをしたり、ウェルビーングの向上に貢献することができるかもしれません。弱いロボットは、人間と協力して働くことで、人間の生活をより良くすることができます。

Sakana AIの進化的モデルマージ的なアプローチや、OpenAIの弱いモデルが強いモデルを監督するアプローチなどにも面白いなと思っています。

Google検索ができる前

現在では、ChatGPTやPerplexity.aiといった高度なAIシステムまで登場し、情報へのアクセスはますます容易になっています。しかし、Google検索ができる前にどのように情報を得ていたのかが気になりました。

情報検索の進化は、紙媒体から始まり、1960年代後半には初期のオンライン検索システムが登場し、1980年代にはロッキード社のDialogシステムが登場しました。Dialogは高額な料金設定で、専門的なトレーニングが必要でしたが、利用者は効率的な検索技術を習得しました。日本でも丸善が導入し、研究機関や企業で活用されました。1990年代にはYahooディレクトリ型検索が登場し、その後GoogleがPageRankアルゴリズムを導入することで検索の高速化と精度向上が実現。現在ではAI技術を活用した新しい検索ツールが登場し、情報アクセスは劇的に進化しています。

Rest of World

Googleの元CEO、エリック・シュミット氏の娘、ソフィー・シュミット氏が創設したRest of Worldは、西側諸国以外のテクノロジー関連の話題をカバーするアメリカの非営利出版物です。

アフリカ、アジア、ラテンアメリカなど、西側諸国以外の地域でのテクノロジーの進化に焦点を当てており、記事の内容も面白かったです。

その他

プロダクト・ツール

CLINE

Devin / Cursor、Copilot Agentなどなど、コーディングエージェントが増えており、犇々と失業を感じます。APIでClaude 3.7 Sonnetを使ってRSSベースのポッドキャストアプリの試作をしていました。

Claude CodeはCLI製なのが良いのですが、LSPを恐らく積んでいないように感じます。CLINEのヘッドレス版があってもいいかなと思っています。

Gemini Code Assist

GitHubとの統合でPRのレビューをしてくれるようになります。数日間試していましたが、レビュー負荷が少し削減されたように感じます。

.gemini フォルダで設定などを定義できるのですが、あまりまだ日本語は話してくれなさそうです。

superwhisper

Eureka LabsのAndrej Karpathyさんのツイートで知りました。キーボードに触れずにWhisperを使って音声入力をすることができるツールです。Cursor Composer w Sonnetで対話をしながらちょっとしたホームクックのアプリケーションを作ることができるのがとても魅力的です。

コーディングの経験のない知り合いも、Cursorで自分のためのアプリケーションを何ら問題なく作成してVercelにデプロイして使っていました。

アクセシビリティやデジタルデバイドの問題を解決するためにも、音声入力や音声操作のツールには可能性を感じます。

Mimestream

MimestreamはGmailのAPIを使ったmacOS向けのネイティブメールクライアントです。元Appleのエンジニア作。

最近はメールを中心にやり取りをするように変えました。GitHubだったり、GNU Mailmanのメーリングリストだったり、メールでやり取りできるものはメールでやり取りするようにしています。

インボックスが溜まらないように、ニュースレターやリリースなどはラベルをつけて自動アーカイブをして、暇なときに見るようにしています。

Inoreader

RSSリーダーをInoreaderに変えました。GitHubのリリースやイシューを自動検索してフィードにして受け取ったりしてライブラリのアップデートをウォッチするようにしたいなと思っています。

個人ブログもRSSで購読しています。

Celbo

まだクローズドβで試せていないのですが、Pythonのデータ解析のためのホワイトボードツールが出ていました。

R StudioやJupyter Notebookの代替としてどこまで使えるのかが気になっています。

Grep

Vercelが買収したGitリポジトリをインデックスしたコード検索エンジンです。文字のタイプごとに再検索が走りサクサク検索できます。

Code Search | Grep by Vercel

Home Assistant

パーソナルな統合されたホームアシスタントを作りたいなと思っていました。今まで全く知らなかったのですが、ChatGPTとブレストする中で発見し、かなりGitHubでアクティブな有名なOSSでした。

後ほど詳述しますが、FlexispotやOura Ring、Pi-holeなどを統合していきたい気持ちがあります。

その他

やったこと

ハビットトラッカーをやめた

ハビットトラッカーをやめました。上手いバランスで使えればいいのでしょうが、完璧主義が強く、達成できなかった時のストレスのほうが大きかったのでやめました。

Raycastのスクリプト

RaycastにはシェルスクリプトやPython、Node.jsなどを使ってスクリプトを作成することができます。この機能を使ってデイリーノートなどを楽に取れる仕組みを作りました。

Obsidian VaultでWebクリップをしたり、Astroでブログを書いたりしていると、長期的にはリンク切れが目立つようになると思います。

Wikipediaにはリンク切れを検出して、Archive.orgのリンクに貼り替えるボットが動いており、似たようなものを取り入れたりしてもいいかなと考えています。

App Router + Firebase Auth + Playwrightのサンプル

全然なかったので作りました。nextのミドルウェアがNode.js対応したのでもう少し書きやすくなると思います

GitHub - yutakobayashidev/next-app-router-firebase-auth-e2e

Nix環境へ移行

Homebrewをやめて、Nix環境に移行しました。Nixのパッケージ管理システムは、外部の状態に依存しない関数として動作し、副作用を避けることを重視する関数型プログラミングの考え方を取り入れていてとても興味を惹かれたのが理由です。

まだHomebrewから完全移行はできていませんが、徐々に移行していきたいと思います。

1Password CLI & Shell Plugins

前前から存在は知っていたのですがなかなか使えずに放置していたので試しました。背景としては、envファイルをAIエージェントがreadすることが増えたり、Rspackのnpmトークンが盗難されて悪意のあるPublishが行われ、postinstallにスクリプトが埋め込まれるなど、セキュリティの重要性を感じていたからです。

Oura Ring

上陸したGalaxy Ringを最初買おうかなと思っていたのですが、Web APIがなるのが決め手となり、Oura Ring 4を買おうとしています。身体が急速に劣化しているのを感じていたので、リカバリーできるうちに改善していく試みです。最近はVDT障害を減らすためにデスク周りの工夫もしようとしています。

睡眠やストレスの測定ができるので、Grafanaに流し込んだりして遊びたいなと思っています。ローカルのAIエージェントでデータを読ませてヘルスモニタリングをしたりする時代になると思っており、ローカルで平文やオブジェクトとして保存できるサービスを選んでいきたいですね。

FlexiSpotの遠隔操作

Flexispotは手元操作用のコントローラーをRJ45端子で差し込んでおり、シリアル通信をしています。LANケーブルを繋いで通信すれば任意の場所から操作可能になるのではないかと思い調べていました。

生成AIでソフトウェアを書くのはだいぶ自動化されそうなので、ハードウェアを楽しむのもありかなぁと思ったりして遊んでいます。

GitHubスポンサー

@cordx56さんのGitHubスポンサーになりました。

イベント

読んだ本

  • 誰のためのデザイン? 増補・改訂版 ―認知科学者のデザイン原論

このウェブサイト上のコンテンツは CC BY 4.0 DEED で利用できます