practice

faster octree color quantization

256色画像全盛期はとっくに過ぎ去った感がありますが、今回は画像を256色以下に減色するという話です。減色された画像の画質を向上させる方法として誤差拡散法がありますが、今回はそれはやりません。 減色する方法は大昔から研究されていて有名なものがいく…

tiny hash table

Cでコードを書いているとハッシュテーブル*1が欲しくなることが多々あります。というわけで小さいのを書いてみました。 https://github.com/okumura/thtbl ハッシュテーブルについて ハッシュテーブルは、あるキーをハッシュ関数を使ってマッピングし、それ…

画像の色数を求めたりヒストグラムを作るためのソートをいろいろ実装してみた

画像の色数を求めるにはハッシュ的なものを使うよりもソートした方が速いという話です。 http://blog.livedoor.jp/junki560/archives/21233822.html http://blog.livedoor.jp/junki560/archives/21305807.html また、ヒストグラムを高速に作ろうとすると色の…

Topological sort

トポロジカルソート*1を書いてみました。C言語、D言語、Lua、Rubyで。 https://github.com/okumura/topological_sort トポロジカルソートが何に使えるかというと、makeの依存性解決などで使えます。yamakeというビルドシステムを作る上で、参考にしているシ…

Goodbye Eclipse, Hello Emacs.

気づけばあまり Eclipse のお世話になっていないので、Emacs でいいやと思うようになりました。で、Eclipse でお気に入りだった機能と最低限必要な機能をどうやって代替するかのメモを書いておきます。 タグジャンプ M-. 先に TAGS ファイルを作っておく必要…

C code directory style

C でコードを書くときのディレクトリの作り方の話です。これはまぁ好みの話ですね。私は大抵こうします。 contrib include lib src doc include xxx lib src samples tests contrib には、外部ライブラリを入れます。中に include と lib ディレクトリを作っ…

Thrift IDL part 1

RPC → シリアライズ → protobuf → MessagePack と見ているうちに、IDL がやりたくなってきました。MessagePack では、Thrift IDL が使えるようです。Thrift IDL*1 は facebook*2 で開発されたんですねー。 多言語開発の手法の一つとして、C/C++ で書いて SWI…