頭をスッキリ、どうも、かわしんです。 Andrej Karpathy の LLM Knowledge Bases がちょうど欲しかったので作ってみました。 LLM Knowledge BasesSomething I'm finding very useful recently: using LLMs to build personal knowledge bases for various to…
外部に依存しない。どうも、かわしんです。 複雑なプログラムをわかりやすく書くために、カプセル化 (Encapsulation) というテクニックが使われます。これは内部の詳細な実装や状態をモジュールのインターフェースの内側に隠蔽することで、外部からモジュー…
必要なことを必要なだけ。どうも、かわしんです。 前回の記事では、AI を使って作ってきた日本の上場株式銘柄解析システムのアーキテクチャについて解説しました。 kawasin73.hatenablog.com 今回は、銘柄解析の肝となる XBRL パーサーである Arelle が遅か…
1発当てて大儲け。どうも、かわしんです。 X の流行を見るに AI コーディングを流石にやらないといけないと思い、今年の8月から Claude Code Max プランを契約して AI コーディングの題材として日本の上場銘柄解析システムを作らせていました。 https://x.c…
推測より計測。どうも、かわしんです。 昨日、Recall.ai のリングバッファがどのように設計されたのかを考察しました。 kawasin73.hatenablog.com その後、Hacker News のコメントを見ているとリングバッファはオーバーエンジニアリングでもっと簡単な方法と…
あなたとわたしとロバストとパフォーマンス。どうも、かわしんです。 先日 Recall.ai というビデオ会議に関連するサービスのブログ記事を読みました。 www.recall.ai インフラ費用を減らすために動画処理サーバーのプロファイルをとったところ、CPU 時間を一…
気合いで実装、どうもかわしんです。 この記事は Rust Advent Calendar 2023 の6日目 兼 情報検索・検索技術 Advent Calendar 2023 の 6 日目です。 Rust で SQLite をフルスクラッチで実装しています。 github.com なぜ SQLite を Rust で再実装しようと思…
後方互換性って辛いね、どうもかわしんです。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com 再実装するために SQLite の公式ドキュメントやソースコードを読み込んでいるわけですが、その過程で気付いたおもしろポイントを共有しよ…
予習は大切、どうもかわしんです。 「天下一 Game Battle Contest 2023」に参加しました。4位でした。 tenka1.klab.jp 去年このコンテストの存在をちょうど終了した時に知ってやりたいなと思い、Twitter アカウントをフォローして1年待ってました。今回の大…
型は型、どうもかわしんです。SQLite では型は絶対ではなく、あくまでも尊重です。信用しすぎると裏切られます。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com なるべく本家の SQLite と compatible にするために SQLite のドキュ…
困った時はドキュメント、どうもかわしんです。最近、諸事情で SQLite のドキュメントを読んでいます。 前回の記事 で紹介した通り SQLite を Rust で再実装しています。おかげさまで 300 を超える Github Star もいただき嬉しいです。 github.com SQLite は…
セキュリティを盾に一点突破。どうもかわしんです。最近 Rust で SQLite を実装してます。 以前の記事で HTTP Parser を Rust で実装しようとしたものの、すでに実装されていたので断念しましたが、いい題材を見つけました。SQLite です。開発中のリポジトリ…
キャリアの危機。どうもかわしんです。 この記事の内容は全て僕個人の意見であり、所属する組織を代表するものではありません。 最近周りで ChatGPT が話題です。特に GPT-4 が出てきたあたりからの Twitter で観測する人々の騒ぎ方をみるにこれまでとは何か…
速さは正義。どうも、かわしんです。 Rust で一番速い HTTP パーサーは C で書かれた picohttpparser の Rust バインディング、picohttpparser-sys です。ガハハ。 $ RUSTFLAGS="-C target-feature=+sse4.2" cargo +nightly bench Finished bench [optimized…
エラーハンドリングはヌケモレなく、どうもかわしんです。ちゃんとエラーハンドリングしてますか? 以前のブログでも書いた通り、プログラミングする以上発生しうるエラーのうち回復可能なエラーは必ずハンドリングするべきです。 kawasin73.hatenablog.com …
メモリとキャッシュと整合性。どうも、かわしんです。 最近「詳解 LINUX カーネル」という分厚い本を読んでいるのですが、割と序盤の第 2 章で気になったことがあったので調べてみました。 ライトスルーとライトバック ご存知の通り、CPU にはキャッシュがあ…
時代はワークライフバランス。どうもかわしんです。 新しい技術は追わない。これは僕の個人的な方針です。別に最先端を追い続けることを否定するわけではありません。 ここでいう新しい技術は、web 界隈の新しいフレームワークとかライブラリとか SaaS とか…
お久しぶりです。どうも、かわしんです。前回の投稿から丸々1年が経ったのでブログを投稿したいと思います。 1 年間何をしてたのか 1 年前、新卒として某外資系 IT 企業にソフトウェアエンジニアとして就職し、それから某 Android アプリを開発するソフトウ…
お前のいう想定外はただの調査不足。どうも、かわしんです。新年度が始まり周りのみんなは働き始めているのを感じますが、僕は4月6日入社なのでもう少しモラトリアムを満喫します。 さて、去年開催された GoCon 2019 Spring で「エラー設計について / Design…
サーバーレスでピタゴラスイッチ。どうも、かわしんです。イベントをサーバレスで繋げてピタゴラスイッチを作るのって案外楽しいもんですね、GUI コンソールで作ってる限りは。 さて、今回は AWS Batch のジョブ実行が失敗した時に Slack に通知する機能を作…
誰一人見捨てない!!! どうも、かわしんです。Celery は見捨てるんです。 この記事は Pythonその2 Advent Calendar 2019 の 15 日目の記事です。 やや強めのタイトルですが、AWS SQS を使った非同期ワーカーでまともな実装は ndkale しかないという内容です。…
限りある時間を大切に。どうも、かわしんです。情報洪水の現世をスマートに生きていきましょう。 さて、去る 12 月 4 日に開催された 「golang.tokyo #28 ~年末だよ!Go大忘年会<大会!~」 で LT をしてきました。 golangtokyo.connpass.com 発表資料はこ…
一歩ずつ一歩ずつ前へ進んでいく、確実に。どうも、かわしんです。 到底 1 記事に収まるような内容ではなく長いので、トランザクションの作り方に興味のない方は途中の「なぜ Go なのか」まで読んでいただければ嬉しいです。 この記事は、Go2 Advent Calenda…
順番は守りましょう。どうも、かわしんです。トランザクションを実装中です。 さて、先日トランザクションの並行制御アルゴリズムである「S2PL (Strict Two Phase Lock)」を実装した 1 のですが、Read オペレーションでは Read Lock を取った後にすぐに解放…
速ければ速いほど良い。どうもかわしんです。トランザクションを実装中です。 トランザクションの並行処理で S2PL (Strict Two Phase Lock) を Go で実装しようとしているのですが、どうしても昇格可能な Reader Writer Mutex が必要になり、Github にいい実…
トランザクションは慎重に。どうも、かわしんです。今トランザクションを実装しています。 タイトルは釣りです。MySQL のデフォルトのトランザクション分離レベルである REPEATABLE READ での話です。後、確かめた訳ではないですが MySQL に限った話ではない…
プログラマーあるある、なにかと独自のミニ言語を作りがち。どうも、かわしんです。 昨日、11 月 16 日に開催された WEBエンジニア勉強会 #15 の LT 10 分枠で「ネストした JSON を CSV に自動変換する Python ライブラリを作った」というタイトルで登壇して…
いつも心に省メモリ。どうも、かわしんです。今日はメモリアロケーションについてのポエムを綴ります。さらっと流してください。 ちなみに、ここでいう省メモリとはメモリサイズだけの話ではありません。 メモリをアロケート(確保)するとき、あなたはどん…
プログラマーあるある、なにかと独自のミニ言語を作りがち。どうも、かわしんです。どうしても簡潔にやりたいことを表現するためにミニ言語つくりがちですよね。JSON で構文作ると長いし。 さて、ACES Inc. という東大の松尾研究室発の AI ベンチャーがある…
先頭を 駆くる者には 落とし穴 ハマっては埋め ハマっては埋め どうも、かわしんです。昨日サイボウズ株式会社で開催された「GitHub Actions Meetup Tokyo β」という非公式の Github Actions の勉強会で LT をしてきました。 gaugt.connpass.com 発表スライ…