Erlang

tcerl

tcerlを試してみた。ソースを読みながら試行錯誤している段階なので、 おかしな使い方をしているところがある可能性が高いが、使用できた。 tcは、ハッシュ、B+木、固定長、の3種類のDBを提供しているが、 いままで調べた限りでは、tcerlではB+木だけを提供…

couch_btree と dets の速度比較couch_btree と dets の速度比較 - cooldaemonの備忘録 tcerlとの速度比較もしてみたい。

tcerlインストール成功

tcerlのインストールに成功したっぽい。うっはー。 前回との違いは、 tokyocabinetを、aptitudeではなくソースからいれたことと、 tcerlのバージョンもいつのまにか新しくなってて1.3.1だったこと。 tcerlのhow to install にはaptitude install libtokyocab…

見つかった。公開されているErlang 分散処理勉強会の資料のなかだった。 http://d.hatena.ne.jp/cooldaemon/20080618/1213797785 http://www.slideshare.net/cooldaemon/mochiweb-lt to_htmlという関数だった。 メモ 10年後のITを見通す - CNET Japan mochiw…

mochiwebを勉強中。Djangoテンプレートやjspやmakoよようないわゆるテンプレート言語ではなくて、Erlangのデータ構造をHTMLに変換する機能がmochiwebにあるというのをどこかで見た気がしたが、探しても見つからない。見つかったらメモしよう。。。

メモ

ngiさんにWings3Dを開発したチームによる資料を教えてもらったのでメモ。 "3D graphics in Erlang" 3D graphics in Erlang SDLのErlang driverであるところのESDL経由でOpenGLを使っていて、ドライバーの部分は最適化されたcのコードが含まれ、パフォーマン…

Erlangの歴史とか(続き)

1990年には、JAMが効率よく動くようになり、(Prologによるインタプリタのときの70倍) シンタックスもPrologとは異なった独自の言語といえるものとなった、と。。。 ちょっととばして、1996年にOTP(The Open Telecom Platform)の開発が始まる、と。

Erlangの歴史とか

Erlangについて調べ物。勉強会の用意で。 Erlangの開発の歴史は以下のThe development of Erlangに詳しい。 The development of Erlang http://www.erlang.se/publications/icfp97.ps.gz "making reliable systems in the presence of software errors."にも…

dialyzerによる静的解析

ちょうど昨日、ちょっとしたインタビューのようなものがあって、ブログを書いていて良いことはありましたか?ということを聞かれたが、まさに今日、とてもいいことがあった。 昨日、Erlangの-spec構文、というか型記法についてちょっと書き、コンパイル時の…

spec

listsモジュールのlists.erlを読んだら、haskellの型シグネチャのようなものが書かれていた。 たとえばこんな感じ。 -spec(partition/2 :: (Pred :: fun((T) -> bool()), List :: [T]) -> {[T],[T]}). partition(Pred, L) -> partition(Pred, L, [], []). 自…

CSVつづき

デリミタをカンマ以外にも指定できるようにしてみた。 splitw(XS, Delimiter)-> RRS = splitw(XS,,, Delimiter), RS = lists:map(fun lists:reverse/1, RRS), lists:reverse(RS). splitw([Delimiter |XS], Cur, All, Delimiter) -> splitw(XS, , [Cur|All], …

ErlangでCSVが読みたい

Pythonならimport csvですむけれど、ErlangのCSVパース用モジュールのようなものは見当たらない。 CEANでも見つけられない。見つけられないだけかもしれないけれど、練習にもちょうどいいし書いてみよう。 まずはここから、ということでquoteのこととかescap…

gen_serverのビヘイビアの定義(といっていいのかわからないが)はこんな感じになっている。 gen_server.erl behaviour_info(callbacks) -> [{init,1},{handle_call,3},{handle_cast,2},{handle_info,2}, {terminate,2},{code_change,3}]; behaviour_info(_O…

tcerlの続き

家に帰ってから、自宅のUbuntuマシンでtcerldrvのインストールに再チャレンジした。 tcerldrvの./configureが、素直に通った。libtokyocabinet-devなどは入れる必要があったが。 職場のマシン(ml115)と自宅のマシン(110Gd)の違いは、ml115はamd64で110Gdのほ…

Tokyo CabinetのErlang用ポート

Google Code Archive - Long-term storage for Google Code Project Hosting. Dukes of Erl: Tokyocabinet and MnesiaMnesiaで、 MySQL のようにストレージエンジンが自由に選べるようになった、ということらしい。 Mnesiaは、etsとdetsというストレージエン…

つづき

Minimal Erlang SMTP, POP3 server code - Oliver Wyman Labs: Technical のソース。 % darcs get http://www.lshift.net/~tonyg/erlang-smtp/ Copying patch 14 of 14... done. Applying patch 14 of 14... done. Finished getting. % cd erlang-smtp % mak…

ErlangでSMTP

Erlangでメールを出すためのライブラリを調査中。調査中なので、間違っているかもしれません。 残念ながらPythonのように"batteries included"ではないので、いろいろなところをあさる。 あと、日本語の文字コード変換は、iconvを使えと、どこかに書いてあっ…

束縛済み変数でパターンマッチングの続き

Erlangは絶賛勉強中であり、また新たな事実が発見された。 Erlangではマッチングに使うためのパターンを、無名関数でも複数書くことができる。 あと、束縛済み変数をマッチングのパターンに便利に使えるのは、新たにスコープが生成されないで複数のパターン…

Erlangのパターンマッチング

先日、「すでに"束縛されている変数"でパターンマッチングができる」と書いたとこにコメントをいただいたので補足。Erlangでは、変数は1度しか束縛できない。 値を一度しか代入できない。 なので当然、変数Xに対して、次のように まず1を代入、 次に2を代入…