programming
仕事でごりごり gyp を使って早くも3年になる。いくつか個人的に痒いところを修正して公開してみた。 Github においてある修正版 okumura/gyp オリジナル gyp - Generate Your Projects - Google Project Hosting 修正は以下のとおり。 Android: 非 cygwin …
256色画像全盛期はとっくに過ぎ去った感がありますが、今回は画像を256色以下に減色するという話です。減色された画像の画質を向上させる方法として誤差拡散法がありますが、今回はそれはやりません。 減色する方法は大昔から研究されていて有名なものがいく…
今回は「gyp でネイティブコードプロジェクトのビルドを多環境に対応させる」です。私がやっていることをメモしておきます。 背景 私は Windows のコードをよく書いていました。ある時から Android、Windows Mobile、Linux、Mac OS X、iOS でも動くように意…
Cでコードを書いているとハッシュテーブル*1が欲しくなることが多々あります。というわけで小さいのを書いてみました。 https://github.com/okumura/thtbl ハッシュテーブルについて ハッシュテーブルは、あるキーをハッシュ関数を使ってマッピングし、それ…
画像の色数を求めるにはハッシュ的なものを使うよりもソートした方が速いという話です。 http://blog.livedoor.jp/junki560/archives/21233822.html http://blog.livedoor.jp/junki560/archives/21305807.html また、ヒストグラムを高速に作ろうとすると色の…
今日のコード。Windows XPとMac OS X 10.6.8で動作することを確認しています。 https://github.com/okumura/bswap バイナリプログラミングをやっていると、エンディアンに応じてバイトオーダーをひっくり返す(バイトスワップ)というのがよくあります。バイ…
はじめに HTTP は利用頻度が高いネットワークプロトコルの一つだと思います。HTTP サーバを書くことはそんなに多くないと思いますが、HTTP クライアントは何らかの形で利用したり実装したりしたことがある人は多いのではないでしょうか。今回は、ネイティブ…
二年前に出会ったナイスガイから C でコードを書くときに大事なことをいくつか教わった。 教わったことは、何かしら自分でまとめて誰かに伝えていかねばと思っているのでぼちぼちまとめていく。 移植性を高くする 以前の私は環境限定のコードを書くことが多…
C10K Problem では、epoll/kqueue は速く、select/poll などは遅い、というのをよく見かける。実際ベンチマーク結果を見ると、そのように見える。計算量的には、epoll/kqueue は O(log2N)、select/poll は O(N) のように見える。ベンチマーク結果は libevent…
Command-Line Options debug or release MBCS or Unicode for Windows target host target CPU architecture support CFLAGS, CXXFLAGS Project Options support dependencies more target Platform freebsd openbsd target CPU architecture support CFLAGS…
プログラミングをしていると、状態管理をすることがよくあります。私がよく迷うのは、state、status の使い分け方です。 私の理解では、state = one of status です。例えば、HTTP レスポンスの最初の一行目*1には status code というものがありますが、これ…
先日から yamake というオレオレメイクツールを作っている*1のですが、その直後のとあるツイートで gyp、Ninja というビルドシステムがあるということを知りました。どちらも、Chromium のビルドをより良くするために生まれたようです。知らなかったので、少…
気づけばあまり Eclipse のお世話になっていないので、Emacs でいいやと思うようになりました。で、Eclipse でお気に入りだった機能と最低限必要な機能をどうやって代替するかのメモを書いておきます。 タグジャンプ M-. 先に TAGS ファイルを作っておく必要…
C でコードを書くときのディレクトリの作り方の話です。これはまぁ好みの話ですね。私は大抵こうします。 contrib include lib src doc include xxx lib src samples tests contrib には、外部ライブラリを入れます。中に include と lib ディレクトリを作っ…
RPC → シリアライズ → protobuf → MessagePack と見ているうちに、IDL がやりたくなってきました。MessagePack では、Thrift IDL が使えるようです。Thrift IDL*1 は facebook*2 で開発されたんですねー。 多言語開発の手法の一つとして、C/C++ で書いて SWI…
「yaml って Makefile を書くのに向いてるんじゃないか?」で書いたものを試しに作ってみた。 okumura/yamake - GitHub scons がお気に入りなので、Python で書いた*1。今のところ YAML から scons のスクリプトを出力することができるだけ。 これが・・・ p…