cuspy memo


バター猫のパラドックス

2007/08/28 Tuesday 02:38:12

バター猫のパラドックス - Wikipedia より

それらは、猫が地面に向かって落ちるとともに落下速度が下がり、回転し始め、トーストのバターが塗られた面と猫の足の両方が着地しようとするため高速で回転しながら地面から少し上で浮いたところで安定状態になるだろうと提案する。

やった!、ネコ発電で夏のエネルギー不足問題も解決したも同然。

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

panda のコンパイルエラーとその対処

2007/08/27 Monday 23:29:01

PDF生成ライブラリの panda(0.5.4) をコンパイルしようとしたら

gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -DHAVE_LIBPNG -DHAVE_LIBTIFF -DHAVE_LIB JPEG -MT objects.lo -MD -MP -MF .deps/objects.Tpo -c objects.c -fPIC -DPIC -o . libs/objects.o
objects.c: In function ‘panda_newobject’:
objects.c:102: error: invalid lvalue in assignment

こんな感じのエラーが出るので

diff panda-0.5.4.orig/objects.c panda-0.5.4/objects.c
102c102
< (panda_child *) created->cachedLastChild = NULL;

> created->cachedLastChild = NULL;

こんな感じに書き換えたメモ。
そんな事より panda って PDF を作るだけのライブラリのプロジェクトだと思っていたらパーサーも作っているということを今、知った。

http://www.stillhq.com/extracted/pandalex/

あとで試してみよう。

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

ひっそりとSSHログインする方法

2007/08/25 Saturday 23:03:44

Giving yourself a quieter SSH login
http://www.debian-administration.org/articles/546

へー

% touch ~/.hushlogin

とするだけで SSHログインしたときの Last login: 〜が表示されなくなるんだ。
もちろん /var/log/wtmp にはちゃんと残っているのでログイン記録は last コマンドで確認できるんだけど、やっぱり毎回表示してくれる方が安心。
もしも突然意図せず Last login:が表示されなくなったりしたら要注意だな。

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/06/19 Thursday @ 22:01:57

Leave a comment

You must be logged in to post a comment.

hoge

シソーラス辞書を買ってみた

2007/08/23 Thursday 02:30:23

インターネット上でのシソーラス(類義語)検索サービスといえば言語工学研究所が有名でよく使わせて貰ってたんだけど検索回数に制限があったりとイマイチ使い勝手が良くない。

そんでいろいろ調べていたら amazonで EPWING形式のシソーラス辞書が売られていることを発見。


EPWING版 CD-ROM 類義語使い分け辞典

これが今日届いたんだけど失敗だったかな、語彙数が少なすぎる。しかも ndtpd 経由で問い合わせると詳細が出てこないような気がする。
例えば以下のように ndtpc で検索してみると、

% ndtpc 絶えず
DICT: 類義語使い分け辞典
<307:a2>絶えず
■ 絶えず(たえず)・絶え間なく(たえまなく)

たったこれだけ。
付属してくる windows 用のビューアを使うと用例とかもっと詳細が表示されるみたいなんだけどそんなの使ってられないし困ったな。
プロトコル的にも詳細を引っぱってくる方法はなさそうなので最悪の場合 ndtpd に手を入れなくちゃならないかも。うげ-

※)この製品はネットワーク経由で使用するとライセンス違反だそうなのでもちろん ローカルホストの ndtpd に問い合わせてイルヨ。

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/06/17 Tuesday @ 22:25:28

Leave a comment

You must be logged in to post a comment.

hoge

libxmlrpc-c で 非同期問い合わせ

2007/08/17 Friday 04:27:51

C言語で XML-RPC をしゃべる為のライブラリ libxmlrpc-c を使った非同期問い合わせについて。

また例のどう書く?ネタなんだけど、XML-RPC リクエストを大量に行う場合、シリアルに問い合わせを行うと、どうにもならないくらい遅かったので非同期問い合わせに書き直してみた。

libxmlrpc-c にはサーバーに同期的にブロックして問い合わせる関数 xmlrpc_client_call() の他に非同期で問い合わせを行う xmlrpc_client_call_asynch() が用意されている。

この非同期関数のサンプルコードをマネマネして書いてみたんだけど一向にパフォーマンスが向上しないので調べてみると、xmlrpc_client_call_asynch() の関数自体はノンブロッキングで帰ってきているが、実際の XML-RPC リクエストは 1っ発づつ送られていることが解った。

あれこれパラメーターを変えたりしてずいぶん悩まされた結果、答えはドキュメントに書いてあった。

http://xmlrpc-c.sourceforge.net/doc/libxmlrpc_client.html#concurrency_libwww
より

The asynchronous facility, in at least one experiment Bryan did, was rather disappointing used with the libwww transport. The no-wait call had no visible effect, and the RPC finishing function did each RPC serially (waits for one to complete before starting the next one). Because libwww is undocumented and its code too complex to read easily, Bryan did not determine if there are circumstances under which it behaves better.

libxmlrpc-c は transport(HTTP リクエストを送るレイヤのライブラリ)として、libwww と libcurl をサポートしているんだけど、デフォルトで使用される libwww の場合、非同期問い合わせは絶望的なんだそうな。libwww はアンドキュメンテッドな上コードが複雑すぎて非同期問い合わせに対応できなかったんだそうな。

で、debian package の libxmlrpc-c3 には libcurl の transport が組み込まれていなかったので、libxmlrpc-c-1.06.17 のソースをダウンロードしてきてコンパイルしようとすると

% ./configure —-disable-libwww-client
% make
gcc -o xmlrpc xmlrpc.o dumpvalue.o blddir/lib/util/cmdline_parser.o blddir/lib/util/getoptx.o blddir/lib/util/casprintf.o -Lblddir/src/.libs -lxmlrpc_client -lxmlrpc -L/usr/lib -lcurl -L/usr/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lkrb5support -lcom_err -lresolv -lidn -lssl -lcrypto -ldl -lssl -lcrypto -lz -Lblddir/lib/expat/xmlparse/.libs -lxmlrpc_xmlparse -Lblddir/lib/expat/xmltok/.libs -lxmlrpc_xmltok -Lblddir/lib/libutil/.libs -lxmlrpc_util
blddir/src/.libs/libxmlrpc.so: undefined reference to `xmlCreatePushParserCtxt’
blddir/src/.libs/libxmlrpc_client.so: undefined reference to `xmlrpc_libwww_transport_ops’
blddir/src/.libs/libxmlrpc.so: undefined reference to `xmlParseChunk’
blddir/src/.libs/libxmlrpc.so: undefined reference to `xmlFreeParserCtxt’
collect2: ld returned 1 exit status

エラー。
expat の問題っぽいので試しに、XML パーサーを libxml に変えてみる

% ./configure —-disable-libwww-client —-enable-libxml2-backend
% make
gcc -o xmlrpc xmlrpc.o dumpvalue.o blddir/lib/util/cmdline_parser.o blddir/lib/util/getoptx.o blddir/lib/util/casprintf.o -Lblddir/src/.libs -lxmlrpc_client -lxmlrpc -L/usr/lib -lcurl -L/usr/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lkrb5support -lcom_err -lresolv -lidn -lssl -lcrypto -ldl -lssl -lcrypto -lz -L/usr/lib -lxml2 -lz -lpthread -lm -Lblddir/lib/libutil/.libs -lxmlrpc_util
blddir/src/.libs/libxmlrpc_client.so: undefined reference to `xmlrpc_libwww_transport_ops’
collect2: ld returned 1 exit status

今度は違うエラー、眠い、xmlrpc というと XML-RPC リクエストをお手軽に問い合わせることが出来る便利ツールだったはず。debian package に含まれていない理由はこんなところかな。

configure を追っかけて tools/xmlrpc をビルドしないようにするためには —-disable-cplusplus を付ければよいことが解った。(tools/xmlrpc は C++じゃないのに!)

% ./configure —-disable-libwww-client —-enable-libxml2-backend —-disable-cplusplus
% make

この様にしてビルドした libxmlrpc-c で無事非同期問い合わせが出来ましたとさ。Happy!

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/05/30 Friday @ 12:02:51

  2. Latest Site News…

    SweN, Latest Site News and Latest…

    Trackback by Latest Site News — 2008/06/03 Tuesday @ 05:36:04

  3. Latest Blog News…

    SweN, Latest Blog News and Latest…

    Trackback by Latest Blog News — 2008/06/03 Tuesday @ 05:36:46

  4. News…

    SweN, News and News…

    Trackback by News — 2008/06/03 Tuesday @ 05:37:26

  5. Sites News…

    SweN, Sites News and Sites…

    Trackback by Sites News — 2008/06/03 Tuesday @ 05:37:47

  6. Latest Sites News…

    SweN, Latest Sites News and Latest…

    Trackback by Latest Sites News — 2008/06/03 Tuesday @ 05:38:47

  7. Latest…

    TsetaL, Latest and Latest…

    Trackback by Latest — 2008/06/03 Tuesday @ 05:39:10

  8. Latest News…

    SweN, Latest News and Latest…

    Trackback by Latest News — 2008/06/03 Tuesday @ 05:39:26

  9. Blog News…

    SweN, Blog News and Blog…

    Trackback by Blog News — 2008/06/03 Tuesday @ 05:39:51

  10. Latest Refresh…

    HserfeR, Latest Refresh and Latest…

    Trackback by Latest Refresh — 2008/06/03 Tuesday @ 05:41:05

Leave a comment

You must be logged in to post a comment.

hoge

軽量ターミナルエミュレーター: urxvt

2007/08/16 Thursday 01:48:31

今どき LANG=ja_JP.eucJP が許されるのは小学生までだよねー、などと罵られても UTF-8 の扱えない krxvt を使い続けていた理由として krxvt が非常に省メモリで動作するという特徴が決定的だった。
ちょっと前に計測したターミナル別メモリ使用量をまとめてみると(xrdb -remove して計測)

VSZ(kB) RSS(kB) UTF-8
xterm 10548 2780
kterm 6388 2388 ×
aterm 7396 2216 ×
mlterm 10312 4448
krxvt 5236 1684 ×
urxvt 10300 4596

という様に urxvt は UTF-8 を扱えるんだけど、krxvt の約2倍メモリ食いなので urxvt を1つ立ち上げるくらいなら krxvt を2つ立ち上げられるもんね-。という貧しい理由で krxvt を使い続けていた。

で、さっきなんとなく urxvt のサイトを見ていたら、

Daemon mode: one daemon can open multiple windows on multiple displays, which improves memory usage and startup time considerably.

なんだって-
さっそく urxvtd, urxvtc を試してみた、大雑把な仕組みとしては、
urxvtd を起動すると $HOME/.rxvt-unicode-x31 という UNIXドメインソケットを作成し待機する。
urxvtd を起動した後、 urxvtc を起動するとソケットに対し terminal 生成リクエストを投げて urxvtc 自身は終了する。
新しく生成された terminal は urxvtd で select() によって多重化され管理される。

urxvtd のメモリ使用量を計測してみると。

urxvtc の起動数 VSZ(kB) RSS(kB)
0 6372 1200
1 10488 4572
2 10812 4664
3 11128 4740

おお、ターミナル1枚につき 300k 程度しか消費しないので3枚目で urxvtc の方がお得、という結果になった。靴下は3足セットで買った方がお買い得の法則だな。
自分のターミナル使用状況を振り返ってみると常時 4,5 枚、ピークは 10 枚程度になる(もちろん screen の裏にもう20, 30枚隠れているけど今回は関係ない話)ので総合的に urxvt の方が省メモリと言うことになる。ぼちぼち移行せねば。

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/05/30 Friday @ 13:24:34

  2. Blog News…

    SweN, Blog News and Blog…

    Trackback by Blog News — 2008/06/03 Tuesday @ 06:51:01

  3. Latest…

    TsetaL, Latest and Latest…

    Trackback by Latest — 2008/06/03 Tuesday @ 06:52:32

  4. Sites News…

    SweN, Sites News and Sites…

    Trackback by Sites News — 2008/06/03 Tuesday @ 06:54:02

  5. Latest Site News…

    SweN, Latest Site News and Latest…

    Trackback by Latest Site News — 2008/06/03 Tuesday @ 06:54:22

  6. Latest Sites News…

    SweN, Latest Sites News and Latest…

    Trackback by Latest Sites News — 2008/06/03 Tuesday @ 06:56:06

  7. Latest Blog News…

    SweN, Latest Blog News and Latest…

    Trackback by Latest Blog News — 2008/06/03 Tuesday @ 06:58:50

  8. Latest News…

    SweN, Latest News and Latest…

    Trackback by Latest News — 2008/06/03 Tuesday @ 07:24:20

Leave a comment

You must be logged in to post a comment.

hoge

ドレミファソラシドの定義(2)

2007/08/13 Monday 02:37:40

音大出の sayacanto 曰く

純正律は基本の音の倍音の振動数を倍、倍、にとって行く音階。
例えばピアノの一番低い音のドを鳴らした時に、その音の中に含まれて聞こえる倍音は下から、
ド、ド、ソ、ド、ミ、ソ、♭シ、ド、レ、ミ、・・・と続いていくの音程のこと。平均律より音の幅は整っているので、合唱、声楽などは純正律で演奏される。

平均律はピアノの調律と同じ音程で音の幅を無理やり均等に決めて音をとっているので、厳密にはどの音もはもらない。

平均律、純正律のほかに、ピタゴラス音律と言うのもある。

へー、今も昔も関係なくいろんな定義が使い分けられているんだな。
ぱっと見、純正律より平均律の方が計算しやすくて便利と思ったんだけどよく見ると、逆数が等差数列になってるみたいなので純正律も一般化出来そう。

そういえば最近読んでる結城先生の新書「数学ガール」に調和数の式

H_n = \sum_{k=1}^n{\frac{1}{k}}

が出てきてHは Harmonic の H なんだけど
これをk\to\inftyにすると

\sum_{k=1}^{\infty}{\frac{1}{k}} = \zeta(1)

調和級数、すなわちs=1の場合のリーマンのゼータ関数になる。
この\zeta(1)が無限に発散する性質を利用して素数が無限にあることを証明してたのに感動した話はまた今度。

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/05/30 Friday @ 13:30:17

Leave a comment

You must be logged in to post a comment.

hoge

memcachefs 0.5 release

2007/08/12 Sunday 20:23:29

http://freshmeat.net/projects/memcachefs/?branch_id=70740&release_id=259580

ChangeLog:
* flush() と fsync() を実装し忘れていたので実装した。
* ソースファイルを分けてすっきりした。
* コネクションプーリングっぽい事をやってみたけれど完全じゃないんだな
* ついでに debianize した。

あと David Walluck さんが MandrivaLinux のパッケージを作ってくれた。仕事早ス。
http://sophie.zarb.org/viewrpm/1da6e4e1bf164c4d23fdbf499a760461

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/05/30 Friday @ 12:02:34

  2. Blog News…

    SweN, Blog News and Blog…

    Trackback by Blog News — 2008/06/03 Tuesday @ 05:30:15

  3. News…

    SweN, News and News…

    Trackback by News — 2008/06/03 Tuesday @ 05:33:00

  4. Latest Site News…

    SweN, Latest Site News and Latest…

    Trackback by Latest Site News — 2008/06/03 Tuesday @ 05:33:21

  5. Latest Refresh…

    HserfeR, Latest Refresh and Latest…

    Trackback by Latest Refresh — 2008/06/03 Tuesday @ 05:34:32

  6. Latest News…

    SweN, Latest News and Latest…

    Trackback by Latest News — 2008/06/03 Tuesday @ 05:35:18

  7. Latest Blog News…

    SweN, Latest Blog News and Latest…

    Trackback by Latest Blog News — 2008/06/03 Tuesday @ 05:35:37

Leave a comment

You must be logged in to post a comment.

hoge

ドレミファソラシドの定義(どう書く?org - Tiny MML)

2007/08/11 Saturday 03:06:03

ちょっと前に書いたどう書く?org の問題でカエルの歌を鳴らせっていうお題があって、意外にも評価が高かったのと、自分でもあまり書いたことがない部類の問題だったのでコメントを残しておく。

お題: http://ja.doukaku.org/31/
投稿: http://ja.doukaku.org/comment/1480/

このお題は、各言語におけるサウンドデバイスの制御方法と音階に関する知識が問われる問題で、まずは linux での音の鳴らせ方から。

linux のサウンドドライバは昔だと OSS, 最近だと ALSA が使われている場合が多いのだけど、両方ともユーザープログラムからは /dev/dsp というキャラクタデバイスで制御を行う。
適切にドライバが組み込まれていると

% cat /dev/urandom > /dev/dsp

を実行すると砂嵐のテレビのような雑音が鳴る。
プログラムから鳴らす場合も、ただ open() して write() すればよいのだけれどその前に流し込む音データの種類を設定する必要がある。/dev/dsp を open() したディスクリプタに対して ioctl() で以下のような設定を行った。

  • PCMフォーマットの設定

  • int fmt = AFMT_U8;
    ioctl(fd, SOUND_PCM_SETFMT, &fmt);

    PCMフォーマットとは音の大きさを量子化するときの bit数の事。
    AFMT_U8 は 符号なし 8bit を意味するので、この場合 256 種類の音量を表現できる。音は波なのでこの bit 数が少ないと音質は荒くなり多いと音質は良くなる。カエルの歌ごときでは 8bit で十分。というか 16 bit になるとエンディアンを考慮しなければならなくなるので面倒になる。

  • チャンネル数の設定

  • int channels = 1;
    ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &channels);

    もちろん 1 がモノラルで、2 がステレオ。カエルの歌ごときではモノラルで十分。

  • サンプリングレートの設定

  • #define RATE 8000
    int rate = RATE;
    ioctl(fd, SOUND_PCM_WRITE_RATE, &rate);

    サンプリングレートとは音の波形を時間軸で分割するサンプリング(標本化)を一秒間に何回分割するかという回数の事。
    ここでは 8000(8kHz)を設定したので\frac{1}{8000}=0.000125秒の間隔で波形をサンプリングできる。(latex が役に立った!)

上記のコードで、
PCMフォーマット: 8bit
チャンネル数: モノラル
サンプリングレート: 8000Hz
という設定が行えた。

次にどうやってドレミファソラシドを鳴らせば良いのか解らなかったので音階について調べてみた。
ドレミファソラシドの定義方法には「純正律」と「平均律」という2種類の方法があるそうだ、最近の子は「平均律」を使うそうなのでこっちでやってみた。
平均律ではラの音(440Hz)を基準にして周波数は以下のように算出できる

440 = 440Hz
440 \times {(\sqrt[12]{2})}^{2} = 493.88Hz
440 \times {(\sqrt[12]{2})}^{3} = 523.25Hz
440 \times {(\sqrt[12]{2})}^{5} = 587.32Hz
440 \times {(\sqrt[12]{2})}^{7} = 659.25Hz
ファ 440 \times {(\sqrt[12]{2})}^{8} = 698.45Hz
440 \times {(\sqrt[12]{2})}^{10} = 783.99Hz
440 \times {(\sqrt[12]{2})}^{12} = 880Hz (1オクターブ下のラの2倍の周波数)
440 \times {(\sqrt[12]{2})}^{14} = 987.76Hz (1オクターブ下のシの2倍の周波数)
440 \times {(\sqrt[12]{2})}^{15} = 1046.50Hz (1オクターブ下のドの2倍の周波数)

\sqrt[12]{2}の乗数が 1つ飛びだったり2 つ飛びだったりしているのは間に #の音が入っているから。

ドレミファソラシドの周波数が解ったところでこれらの周波数で描くサインカーブを最初に設定したサンプリングレートでサンプリングを行う。
周波数fの音の波形は\sin(2 \pi ft)で表せられるので 8kHz の PCMフォーマットでサンプリングするには以下のようなコードになる。

for(j = 0;j < RATE; j++)
buf[j] = 255 * sin(2.0 * M_PI * freq * j / RATE);

buf は 8000 byte の配列で 8000Hz でサンプリングするのでちょうど1秒間の音データとなる。

参考:
http://homepage3.nifty.com/iromono/kougi/ningen/node16.html

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/06/10 Tuesday @ 00:18:16

Leave a comment

You must be logged in to post a comment.

hoge

mod_jk 1.2.24 やっぱりナシで事件

2007/08/10 Friday 00:47:58

(ひ)さんに教えて頂いた

http://japan.zdnet.com/oss/story/0,3800075264,20354205,00.htm

にあるように先月の終わり辺りに Tomcat の Connector mod_jk 1.2.24 がリリースされたんだけど mod_jk を経由してTomcat 側の認証を行おうとしたときに正しく認証出来ないというバグが見つかったので 1.2.24 のリリースが取り消しになったという出来事を追っかけたときのメモ。

* 事の発端 tomcat-users ML で

Leif Neve: mod_jk 1.2.24 にアップデートしたら Tomcat Manager で認証出来なくなったんだけど・・・
Mladen Turk: 明らかにバグだね、修正してコミットしたよ。
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c?r1=559234&r2=562022&pathrev=562022

* tomcat-dev ML での議論

Mladen Turk: セキュリティリークではないけどセキュリティ関係の問題が見つかったよ
Rainer Jung: 1.2.25 を出すのは早過ぎない?、1.2.24 で良くない?
Mladen Turk: しかし 1.2.24 はうまく動かない、 1.2.23 ではちゃんと動いてたんだよ、試してみてよ。
Rainer Jung: わかった、ちょっと違う patch を提案するけどもう少し精査する必要がある。
Rainer Jung: AS400 用の #ifdef と #ifndef がこんがらがっちゃってたみたい、それで小さいレスポンスが flush されていなかったんだ。
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c?r1=562085&r2=562084&pathrev=562085

あーよくあるよくある。AS400 っていうと IBM の iSeries の事かな。触ったことがないな。
そういえば今週も残りわずかだけど 1.2.25 は今週中に出るのだろうか

参考:
http://mail-archives.apache.org/mod_mbox/tomcat-dev/200708.mbox/browser
http://mail-archives.apache.org/mod_mbox/tomcat-users/200708.mbox/browser

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

WordPress で LaTeXっふ

2007/08/09 Thursday 02:10:21

前々から数式を残したいなぁと思っていたので wordpress で latex を使う為のプラグイン LatexRender を入れてみたよ\LaTeX

http://sixthform.info/steve/wordpress/index.php?p=13

(よ)さんから頂いた酒を飲みながらセットアップしてたらメモを取るのをさっぱり忘れてしまったんだけど latex imagemagick gs などをインストールして設定ファイルを書き換えただけだと上手く動作しなくてコードを修正する必要があったんだ\LaTeX

e^{i\pi} = -1
\triangle \Psi + {2m \over {\hbar^2} } (E - V) \Psi = 0

ひゃっほー、これでいろんな式が記述できるぜ-\LaTeX

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

LL Spirit

2007/08/08 Wednesday 23:25:02

忘れないうちにメモからメモへメモ。
それにしても一昨年の LLDN は机があったので沢山書き残せたけれど、去年のリングと今年のはメモを取るのが困難だった。たぶん来年も期待できないので下敷きが必須。(来年は 1300人入っても大丈夫な会場らしい)

* 基調講演
遅刻したので最初の方聞きそびれてしまった。
flip flop を制御しして音を鳴らす(楽しそう)
クヌースのコードは嫌い goto文が多いから

* Language Update
** Perl
perl 6 より前に perl 5.10 というのがが出るらしい(10月?)
変数が定義済みかどうか確認するのにいつもなら3項演算子で


$c = defined($a) ? $a : $b;

と書くところ

$c = $a // $b;

と書けるようになる。これは使いそう。
trie最適化(詳しく知りたい)

** Io
シンプルな手続き型言語
構文が BNF で5行
予約語が無い

** PHP
叩かれる宿命
PHP6 から namespace
Zend Framework

** python
3.0 で後方互換性が崩れる

** Ruby
1.9 が今年のクリスマスに release

* Lightning Talk

** Coq定理証明という選択肢
おもしろい。
全ての文字列に対して SQL インジェクションが無いことを証明 -> バグがない -> テストが必要ない
どんな証明になるんだろうか、あとで調べる
関連URL
http://coq.inria.fr/
http://d.hatena.ne.jp/yoshihiro503/

** イメージファイト!
「例えば、PHPを避ける」
こんな事が IPA のサイトで書かれていることを知らなかったので爆笑してしまった。例えば、っていう言葉遣いがツボにはまった。
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html

** C++のためのx86 JITアセンブラ xbyak
xbyak を使って LL のコードから JIT コンパイルを行う。
xbyak は GNU lightning の親戚みたいな物だろうか。
関係ないけどデモでプロットしていた3次元グラフはたぶんローレンツの微分方程式で、あれを見ると微分方程式が解きたくなってきた。

** じゃ、どう書く?
やっぱり一番モデレートの評価が高いのは shiro さんだったか。
今後参加者増えてくれると面白くなりそう。

  1. Robert wrote related post…

    Silk posts and stories…

    Trackback by Robert wrote related post — 2008/06/10 Tuesday @ 00:16:00

Leave a comment

You must be logged in to post a comment.

hoge

memcachefs 0.4 release

2007/08/04 Saturday 01:27:05

謎のロシア人 Zakharov 君に指摘された通り、memcachefs-0.3.1 で 1M 程度の書き込みを行おうとすると

% dd if=/dev/zero of=./mnt/data bs=1000k count=1
1+0 records in
1+0 records out
1024000 bytes (1.0 MB) copied, 13.2842 seconds, 77.1 kB/s

というように約 13 秒と信じられないくらい時間が掛かってしまう問題があった。
これは大きいデータを書き込む際に 4094 byte ずつ細切れにして書き込みを行っているため 1M のデータだと memcached への get と set が 256 回ずつ行われていたのが原因。(256回の realloc もか)

先程この実装を改良し open(), write()…, close() の一連の流れの中で get と set を一度ずつしか行わないように修正したところ

% dd if=/dev/zero of=./mnt/data bs=1000k count=1
1+0 records in
1+0 records out
1024000 bytes (1.0 MB) copied, 0.0194081 seconds, 52.8 MB/s

よしよし、650倍早くなった。release release!

http://memcachefs.sourceforge.net/

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

どう書く?org - ローカル変数の一覧を取得

2007/08/02 Thursday 00:52:48

あーしんどかった。。。今回のお題はこれ

http://ja.doukaku.org/35/

またリフレクション系のお題で python では一行で書けるらしい。
ローカル変数の一覧を表示しろじゃなくて連想配列で返せって所が地味に嫌がらせっぽいけど頑張って C で書いてみた。

http://ja.doukaku.org/comment/1657/

これでもエラー処理とかを省いて何とか 100 行に収まった感じ。
ちゃんと型情報を取得して実装すると軽く 300 行超えそうだったので妥協してしまったorz
いつの間にか金メダルを貰えてて嬉しかったんだけど、これでマイナスモデレートされたらショックで寝込むかも。

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge