kawasin73のブログ

技術記事とかいろんなことをかくブログです

作ったもの

Rust で SQLite を再実装した 2023

気合いで実装、どうもかわしんです。 この記事は Rust Advent Calendar 2023 の6日目 兼 情報検索・検索技術 Advent Calendar 2023 の 6 日目です。 Rust で SQLite をフルスクラッチで実装しています。 github.com なぜ SQLite を Rust で再実装しようと思…

Rust で SQLite を再実装している

セキュリティを盾に一点突破。どうもかわしんです。最近 Rust で SQLite を実装してます。 以前の記事で HTTP Parser を Rust で実装しようとしたものの、すでに実装されていたので断念しましたが、いい題材を見つけました。SQLite です。開発中のリポジトリ…

Go でトランザクションをフルスクラッチで実装した

一歩ずつ一歩ずつ前へ進んでいく、確実に。どうも、かわしんです。 到底 1 記事に収まるような内容ではなく長いので、トランザクションの作り方に興味のない方は途中の「なぜ Go なのか」まで読んでいただければ嬉しいです。 この記事は、Go2 Advent Calenda…

Go で昇格可能な RWMutex を実装した

順番は守りましょう。どうも、かわしんです。トランザクションを実装中です。 さて、先日トランザクションの並行制御アルゴリズムである「S2PL (Strict Two Phase Lock)」を実装した 1 のですが、Read オペレーションでは Read Lock を取った後にすぐに解放…

ネストした JSON を CSV に自動変換する Python ライブラリを作った

プログラマーあるある、なにかと独自のミニ言語を作りがち。どうも、かわしんです。どうしても簡潔にやりたいことを表現するためにミニ言語つくりがちですよね。JSON で構文作ると長いし。 さて、ACES Inc. という東大の松尾研究室発の AI ベンチャーがある…

Pipenv と Docker を使った開発環境のベストプラクティス

イテレーションの速さがあなたの生産性を左右する。どうも、かわしんです。生産性の高いプログラマって1つ1つの試行が素早い(自動化しているかツールを使っている)ためにものすごいスピードで開発できていると思うんですよね。 さて、最近 Python で開発…

55 日かけて OS を作った

整骨院は保険がきく。どうも、かわしんです。 突発的な不調の場合は整骨院は保険が適用され 3 割負担になります。慢性的なもの(肩こり)には適用されません。 さて、5 月 20 日に以下のように宣言して作り始めた OS が、昨日ようやくひと段落したのでまとめ…

Twitter をフィルタリングする Twilter を作った

あなたとわたしと Twitter。どうも、かわしんです。 今週の頭の日曜月曜火曜の 3 日間かけて Twilter というコマンド(?)サービス(?)を作ったので、その紹介をしたいと思います。 Github リポジトリはこちらです。star をつけていただけると喜びます。 …

Go 言語でタイムアウト付きのファイルロックを実現する

言語の壁をぶっ壊す。どうも、かわしんです。 プロセス間の待ち合わせの手法としてファイルロックがあります。このファイルロックをタイムアウトでキャンセルすることを可能にするために以下のライブラリを作ったのでその解説をしたいと思います。 github.co…

macOS で動かす C コンパイラを C で作った

LISENCE と LICENSE 、正しいスペルがどっちかわからない。どうも、かわしんです。正解は LICENSE です。 僕は、よく MIT ライセンスを使います。気が向いたら WTFPL( Do What The F*ck You Want To Public License )を使います。趣がありますよね。 さて…

Mac で起動可能な Windows 10 の USB イメージを作る

この記事は、PSI(東京大学工学部システム創成学科知能社会システムコース) Advent Calendar 2018 の 22 日目です。 はじめに 東大の応用プロジェクトという授業で、LabVIEW というソフトウェアを使ってセンサーアプリケーションを作ることになりました。 …

Go でビットベクトルライブラリを作った話

この記事は、DMM.com Advent Calendar 2018 の 15 日目の記事です。 Go 言語でエンディアン(ビッグエンディアン、リトルエンディアン)を指定できるビットベクトルライブラリを作ったのでその紹介をします。 このライブラリは、mmap でファイルがマッピング…