Luaの区間

Luaの添え字が1から始まることは衆人の知るところである。毀誉褒貶について、私は知らない。添え字を1から始めるとLuaの仮装機械と標準ライブラリが喜ぶということを、私は知る。 それはさておき。 不要なメモリの確保は絶対悪である。もちろん、絶対悪など…

Lua 5.3の命令セット入門

MOVEを基準として、命令ごとにどれくらい時間がかかるかを比べた。当たり前だけれど、メモリ確保は時間がかかるので避ける。 MOVEとだいたい同じくらい MOVE LOADK LOADBOOL GETUPVAL SETUPVAL UNM NOT MOVEの1.5倍くらいまで ADD SUB MUL BOR BXOR BNOT VAR…

正規表現入門 (3)

前回までのあらすじ。EREに入門したはずなのに、Localeの隘路にはまりこんでいた。 今回のあらすじ。不正 (invalid) と未定義 (undefined) の隘路にはまりこむ。 正規表現クイズ! a{4,2} a{4}{2} ^$ $^ ^{0}$ ${0}^ 答えあわせタイム! a{m,n}はmがn以下で…

正規表現入門 (2)

前回までの正規表現! 「POSIX LocaleのLC_COLLATEにはcollating symbolもcollating elementもない。伝説の木の下で告白を、じゃなかった、POSIX Localeの下で[.または[=で始まるハイクを詠め。カイシャクしてやる」と言ったな。あれは嘘だ。ゴメン! ゴメン…

あるいはHash DoS

配列など存在しない(キットラー風に)。Luaには存在しない。 にもかかわらず、Luaのテーブルは配列のようにふるまう。あなたがC++ならば、連続した整数をインデックスに使うとき、Luaのテーブルはあたかもstd::vectorのようにふるまうと理解してかまわない…

正規表現入門 (1)

私の正規表現の理解は浅い。SUSのRegular Expressionsの節を読みたくないあまり、うっかりpcregrepを使ってしまうくらい浅い。と言い条、PCREとECMAScriptの正規表現の区別もあいまいだ。一念発起してEREの仕様を読みはじめた。なんたることか、いつのまにか…

配列など存在しない(キットラー風に)。Luaには存在しない。

配列など存在しない(キットラー風に)。Luaには存在しない。シークエンスは存在するけれど。にもかかわらず、LuaのJSONエンコーダは、テーブルをオブジェクトとしてエンコードするか配列としてエンコードするかを決定しなければならない。 典型的な問題の例…

random_deviceの実装(再訪)

いっときの気の迷いで作って放置したブログにFaith and Brave氏からコメントをいただいていた。 最新のlibstdc++のrandom_deviceの実装を眺めると、可能ならばデフォルトでRDRAND命令を使うようになった点が目を引く(random_deviceとRDRAND命令についてはこ…

色空間 (2)

ICCをダウンロードすることができるいくつかのウェブページ。 International Color Consortium sRGB Profiles ICC Profile Registry Adobe ICC Profiles JAPAN COLOR ICCプロファイル

色空間

いまどきの画像形式はICCプロファイルを埋めこむことができる。噂では、BMPつまりDIBもICCプロファイルの参照を保持することができるらしい。BMPといえばBasic Multilingual Planeである二十一世紀、それ以上、詳しく知ろうとは思わないけれど。 つねづね疑…

RabbitMQ Serverのビルド

Erlang/OTPが必要だ。RabbitMQのErlang VersionsはR15B以降を使うべきだと教えている。Riak用のR15B01を使いまわすつもりだったのだけれど、@kuenishi氏から合わせないほうがよいというご指摘をいただいた。 OTPは複数バージョン入れるべし さて、RabbitMQ s…

帰ってきたしまむら非凸多角形

かつて、ファッションセンターしまむらのホームページで店舗を検索するとグーグルマップが表示された。最初のしまむら非凸多角形を(恣意的に)作成するのは簡単な作業だった。 https://twitter.com/vaporoid/status/171805298934292480 あれから、二年が経…

SWI-PrologのHTTPサーバライブラリ (3)

3.12節から、適当に訳したり、雑感を述べたり。訳文のおかしいところも散見されるかと思うけれど、作者のJan Wielemaker氏はオランダの方なのだろうか、元の英文からして読みづらいように思われる。 3.12 Running the server The functionality of the serve…

SWI-PrologのHTTPサーバライブラリ (2)

今回は趣向を変えて節ごとに雑感を、長いので3.11節まで。とりあえず使いたいという場合には全部読みとばしてよいだろう。3.12節から読むとよろしいのではないか。 3 The HTTP server libraries HTTPサーバライブラリの大枠を説明している。この節に述べられ…

SWI-PrologのHTTPサーバライブラリ

SWI-PrologのHTTPサーバライブラリのマニュアルの最初のほうから。 3 The HTTP server libraries The HTTP server library consists of two parts obligatory and one optional part. The first deals with connection management and has three different i…

カレントディレクトリ

UNIXまたはUNIXに似たシステムにおいて、すべてのプロセスは固有のカレントディレクトリを持つだろう。プロセスがひとつ以上のスレッドを持つとき、それぞれのスレッドが固有のカレントディレクトリを持つかどうかまでは判らない。一般にスレッドたちはカレ…

SWI-Prologのビルド

Prologの話はまったくない。Cの話しか、ここにはない。clibのいくつかの落とし穴について書きとめておこう。なお、私はすべてをソースコードからビルドすることをよしとする。本物のプログラマはバイナリパッケージを信用しない。本物のプログラマが信じるの…