🐙

catatsuy's Picks Vol.4

2025/02/23に公開

Go

https://go.dev/blog/synctest

https://github.com/catatsuy/notify_slack でテスト時にsleepしている箇所があるので使いたい。ただ先日使ったらうまく動かなかった。余裕があれば調べてフィードバックする。

https://github.com/go-sql-driver/mysql/blob/master/CHANGELOG.md#v190-2025-02-18

go-sql-driver/mysqlの新バージョンリリース。zlib compression(MySQL 8.0.18かららしい)やVECTOR型(MySQL 9.0かららしい)とかが入った。

Security

https://letsencrypt.org/2025/02/20/first-short-lived-cert-issued/

ついに有効期限6日間の証明書が始まる。少なくとも1日に1回実行する必要があるので、大分世界観が変わる。

https://letsencrypt.org/2025/01/09/acme-profiles/

ACMEにprofilesの仕様が追加される。これでshortlivedの証明書を発行できるようになるらしい。

https://github.com/go-acme/lego/pull/2415

legoのshortlived証明書の実装。

Cloud Service

https://aws.amazon.com/jp/blogs/news/customers-like-slack-choose-the-amazon-chime-sdk-for-real-time-communications/

Slackのビデオ通話の機能はAmazon Chime SDKを使っていたのか、という気持ちに。

https://aws.amazon.com/jp/blogs/messaging-and-targeting/update-on-support-for-amazon-chime/

ついにAmazon Chimeが終了。AWSの人とミーティングするときに何度か使ったことがあるが、その後Google Meetに変更してほしいとお願いした後は使っていない。なおAmazon Chime SDKは引き続き利用可能。

CDN

https://docs.fastly.com/en/guides/about-the-ai-accelerator-page

Fastly AI Acceleratorが割とおもしろい。Fastly上で軽量なLLMを使ってembeddingを保存しておき、そのembeddingが一定以上近いpromptが指定されていたらキャッシュを返却する。ユーザーが比較的短いプロンプトを入力するサービスなら、ChatGPTのAPIを使ってキャッシュヒット率を上げられてChatGPTの料金を下げられそう。

デフォルトのx-semantic-thresholdが0.75で低すぎるので、ある程度高くしておかないと似てないpromptでキャッシュが使い回される問題が起こりそう。CDNのキャッシュをうまく使った機能でおもしろい。

AI

https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/

Tim O’Reillyの予測。ChatGPTで要約させてみた。

  1. プログラミングの進化とAIの影響
    過去にもプログラミングの進化により低レイヤーの作業が不要になったが、それに伴い新しいスキルや技術が求められるようになった。現在のAIの進化も同様に、プログラマーの役割を変えるが、プログラミングそのものが終わるわけではない。

  2. AIがもたらす変化と新しいスキルの必要性
    AIを活用することで、より多くの人が簡単にプログラムを作成できるようになり、開発の敷居は下がる。しかし、単なるコード作成ではなく、AIを活用したシステム設計や管理、デバッグなどのスキルがより重要になる。

  3. 未来のプログラマー像と市場の拡大
    AIがプログラミングを支援することで、開発のスピードと規模が拡大し、新しいアプリケーションやビジネスが生まれる。そのため、AIを使いこなせるプログラマーや、より高度な設計や戦略を考えられるエンジニアの需要は増加し続ける。

https://zenn.dev/keiichiro/articles/c278888993359f

解説とかPodcastもAIがすべて作る時代が本当に来そう。

https://www.cognition.ai/blog/cognition-open-source-initiative

The Devin Open Source Initiativeというのがあるらしい。通るかは分からないけど、メールを送ってみた。

Database

https://speakerdeck.com/kanmo/how-mixi2-uses-tidb-for-sns-scalability-and-performance

ホームタイムラインはRedisで全員分作成し、DBはTiDBで無停止で運用。

タイムライン生成は投稿したらフォローされている人のタイムラインに書き込みが行われるので、書き込みヘビーになる。この書き込みヘビーなシステムをどう安定させるかが難しい。

そこでRedisを使って管理することで、古いデータを削除するのも自動、タイムラインの時系列順のソートもRedisのzsetで可能。1から作っただけあってお手本のような設計。

https://dev.mysql.com/doc/refman/9.2/en/vector-functions.html

ちゃんと追ってなかったが、MySQLは9からVECTOR型がある。ただしOSS版だとcos類似度などが求められない模様。使い道がないのではないか?

https://www.sbbit.jp/article/cont1/155196

最近はPostgreSQLの方が勢いがあると感じる。pgvectorも普通に実用できるレベルなので便利。

https://www.percona.com/blog/orchestrator-for-managing-mysql-high-availability-using-raft/

OrchestratorでRaftを有効にできる。真面目にMySQLを運用するなら、OrchestratorでRaftを有効にしてMySQLが障害になっても短期間で自動昇格されるシステムを作りたいところ。

https://techblog.hacomono.jp/entry/2024/12/18/000000

Spannerの方法はGoogle以外には厳しいと考えると、TiDBは現実的な気がする。CockroachDBはパフォーマンス劣化が厳しそう。

Private

https://github.com/rack/rack/issues/2284

直してもらったが、GitHubが72時間くらいキャッシュを持つらしく、なかなか変わらなかった。今はもう直っている。

https://github.com/go-chi/chi/issues/984

chiのドキュメントにPathValueのことが書かれておらず、隠し機能になっていることに不満があるのでissueとPRを送ってみている。

Discussion