Binary Hacks in Action Development Environment Conferenceで15分ほど喋った内容のスライドを公開しました。 最後のスライドで、来月にオライリージャパンから出版予定の Binary Hacks の宣伝をさせていただきました。従来、あまりまとめられることがなく「知る人ぞ知る」的な存在だった低レイヤの技術のノウハウを集めて誰にでも使えるようにすることが本書の目的です。ご期待ください。
JavaScript ではてなブックマーク数を表示 はてなブックマークのブックマーク数は人気の指標として参考になります。このブログでは各エントリの末尾に、ブックマーク数を画像で取得する API を使って、ブックマーク数を表示するように設定しています。 ブログシステムのようにテンプレートを使える場合は、ブックマーク数を表示する HTML をたくさんのページに貼り付けるのは簡単ですが、そうでない場合はなかなか面倒です。そこで、ここでは JavaScript を使ってはてなブックマーク数を表示する方法を紹介します。 やり方 まず、次のような JavaScript を hatena-bookmark.js として保存してウェブに置きます。 function makeHatenaBookmarkLinks() { return ("<a href='http://b.hatena.ne.jp/ent
再入不可能な関数を C で実装する 一度実行したら二度と中身を実行できなくなる再入不可能な関数を C で実装してみます。通常、このような関数はシングルトンなどの静的なデータの初期化に使いますが、ここではデータについては考えないことにします。 static 変数をフラグに使う まずは最も単純な方法から見ていきます。次の関数は static 変数をフラグに使って再入を防いでいます。厳密に言えば関数そのものには入ってしまっていますが、ここで気にしないことにします。 void once(void) { static int entered; // 最初は 0 if (entered == 1) { // すでに入ったことがある場合は return; // すぐ出る } entered = 1; // 初回の場合のみ、何かを実行する } この方法はシングルスレッドのプログラムではうまく動きますが、マ
詳解UNIXプログラミング いつか全部読もうと思いつつ、長らくつまみ読みしかしていなかった『詳解UNIXプログラミング』を、ようやく思い立って最初から最後まで読みました。 この本のすごいところは、ほとんどすべてのページに、Unix のシステムプログラミングを行う上で重要なことが書かれていることです。本書を通読しながら、「こんなこともできたのか」「こんな落とし穴があったのか」「こういう仕組みだったのか」といった発見が数え切れないほどありました。 買った当初は、とりあえず持っておいて必要なときにリファレンス的に使えばいいや、と考えていたのですが、リファレンスというものは「何ができるか」をある程度知っていないと有効に活用できません。そういった意味でも通読して、Unix のシステムコールでどんなことができるのかを一通り知ったのは大きな収穫でした。 本書では全編を通じて、システムプログラミングにあり
Epeg で JPEG ファイルのサムネイルを高速に生成する Epegは JPEG ファイルのサムネイル (縮小画像) を高速に生成するライブラリです。JPEG に特化した手法でサムネイルの処理を行うため、内部的に画像をビットマップに伸張せず、高速かつ少ないメモリで処理できるのが特徴です。 インストール Epeg は Debian パッケージになっていないようなので、ソース (ダウンロード) からインストールしました Epeg は内部的に libjpeg を使っているため、Debian GNU/Linux では sudo apt-get install libjpeg62-dev で事前にインストールしておく必要があります。 Epeg そのものは ./configure && make && sudo make install でビルド・インストールできます。 サンプルコード Epeg の
main() の前に関数を呼ぶ C/C++ のプログラムで、main() の前に関数を暗黙的に呼びたいときがあります。ここでは GCC の拡張を使った方法と、C++ のコンストラクタを使った方法を紹介したいと思います。 GCC では main() の前に呼ばれる関数を __attribute__((constructor)) という拡張機能を使って定義できます。たとえば、次のプログラムでは main() の前に foo() が呼び出されます。 #include <stdio.h> __attribute__((constructor)) void foo() { printf("hello, before main\n"); } int main (int argc, char **argv) { printf("hello, world\n"); return 0; } 実行結果は以下の
Binary 2.0カンファレンス2005 Binary 2.0 カンファレンス2005 を 2005年12月2日に開催します。 主催 - Binary 2.0 カンファレンス実行委員会 (協力 Shibuya.pm)日時 - 2005年12月2日 (金) 18:30-21:30 (18:00 開場)会場 - 神保町三井ビル 17F 株式会社インターネットイニシアティブ (IIJ) 大会議室参加費 - 無料事前登録 - 定員100名 (定員に達したので締め切りました)プログラム 内容・順番・時間などは予告なく変更する場合があります。 無事に終了しました。当日の模様は 発表資料とレポートをどうぞ。 プログラム概要 Binary 2.0 時代の到来 - 高林哲 10分プログラムはなぜ Mona OS で動くか?fork?何それ? - ひげぽん 15分Dynamic Programming La
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く