erlang

Erlang リリース コトハジメ

ブログだと細かい変更が面倒なので Gist に書いてみました。Gist の方がレンダリングされて見やすいのでオススメです https://gist.github.com/4243786

AES の CTR モード

[crypto][erlang]AES の CTR モードのストリームタイプ 暗号データにランダムアクセスが可能になる (IVec が固定) ため、並列処理が可能となる AES の Counter Mode を試してみました。 ストリーム暗号なので、パディングがいらないのがいいですね。 まずは…

LZ4 の Erlang バインディングを(作ってもらって)使ってみた

LZ4 Extremely Fast Compression algorithm http://code.google.com/p/lz4/ ドラクエ 10 にも使われている圧縮アルゴリズム LZ4 を Erlang から使うバインディングを試してみました。 https://github.com/joewilliams/erlang-lz4 動かしてみたところ ... セ…

Erlang Study Meeting Tokyo 2012.09 を開催しました

無事成功しました。発表もその後の懇親会も楽しかったです。 プレゼン 全てのプレゼンは英語で発表、質疑応答も基本英語、強制はしていないのですがなんとなくそんな感じに。 @lhoguin cowboy の作者による、cowboy のロードマップやそれに関係するライブラ…

Erlang R15B02 の Google Drive ミラー

Erlang の R15B02 がリリースされたのでミラーを用意しました。今までは Dropbox でしたが速度が尋常じゃなく早いので Google Drive にしてみました。Erlang/R15B02 https://docs.google.com/folder/d/0BwsKtP8AY5SzdzdjbWdWLS1jYzg/edit SHA1(otp_doc_html_…

函数プログラミングの集い 2012 in Tokyo で発表してきました

函数プログラミングの集い 2012 in Tokyo - [PARTAKE] http://partake.in/events/9a5f18bf-ca0c-48cd-a050-8a564c1ab0d9継続開発のススメ Erlang/OTP 編 — Gist https://gist.github.com/9ee65f0dfa9b7dd78fde応用セッションの一発目として「継続開発のスス…

eunit-2.2.3

次にリリースされる R15B02 に入るであろう eunit の最新版にいろいろ機能が入りました。https://github.com/erlang/otp/commit/f968ff87b1d6fb74237010bffa0390953337425e Include fixture setup and cleanup errors in Eunit Surefire report documentatio…

継続開発のススメ Erlang/OTP 編(発表資料たたき台)

函数プログラミングの集い 2012 in Tokyo - [PARTAKE] http://partake.in/events/9a5f18bf-ca0c-48cd-a050-8a564c1ab0d9イベントで発表するので発表資料用のたたき台を作りました。継続開発のススメ Erlang/OTP 編 Gist https://gist.github.com/9ee65f0dfa9…

非公式 MessagePack ライブラリを公開しました

Erlang 勉強したてでも使える、お気軽ライブラリを目指して作りました。 GitHub URL https://github.com/voluntas/yet-another-msgpack-erlang ライセンス Apache 2.0 公式 公式は @kuenishi が書いたものがあります。 URL https://github.com/msgpack/msgpa…

Erlang Binary Pretty Printer を使おう

Erlang のバイナリ表記は十進数です、個人的には見やすいのですが、長くなると何が書いてあるのかわかりにくかったりします。特にテストの時エラー時やデバッグ時はかなり読みにくいなと感じていました。それを解決する素敵なツールが。 binpp です。https:/…

Erlang から YAML を扱う

Erlang から YAML を扱うライブラリに決定的なのが無かったのですが、つい最近出て来ました。libyaml を NIF(Native Implemented Function) でダイナミックリンクしたものです。goertzenator/yamler https://github.com/goertzenator/yamler 使ってみる前に …

型を指定してバイナリから変換するライブラリ

誰得なライブラリな気がするので、微妙ですが ... 作った理由 Erlang で外部 API とかを使って Console とかからデータを貰えるような仕組みを作ると、 かならず必要なのがバリデータとかコンバーターです。毎回似たようなの書いててだるいなぁって思ってい…

ローカル開発時の継続ビルド+テスト Erlang 版

もちろん rebar 前提です。 OMake とか watch コマンドとか色々ありますが、自分は Python の watchdog を使っています。watchdog は Python で出来てる監視ツールです、pip でインストールしましょう $ pip install watchdogMakefile ... 色々省いてます .P…

string から term を生成する方法

文字列から Erlang Term を作る方法がわからなかったのでメモ。かなりマニアックですが ... 。もっと簡単な方法があったら教えてください。 > {ok,Tokens,_} = erl_scan:string("[{foo,bar},x,3]."). {ok,[{'[',1}, {'{',1}, {atom,1,foo}, {',',1}, {atom,1…

Erlang/OTP R15B01 を CentOS 6.2 にインストールする

インストールメモ。 Dropbox は自分の Public ディレクトリ hipe/native-libs/sctp は使わないので無効にしてある halfword-emulator は有効 systemtap も有効 $ yum install gcc gcc-c++ ncurses-devel make openssl-devel systemtap-sdt-devel $ curl -O h…

軽量ウェブサーバ Cowboy を試す

mochiweb を仕事でも使っているので特に困っていないのですが、せっかくなので cowboy を触ってみることにしました。ちなみに、作者の @lhoguin が来月あたり日本に来るらしく、日本の Erlang な人と会いたいと行っているので興味ある人は是非。 更新 2012-0…

LDAP クライアントが erlang/otp に追加されてた

Erlang で LDAP クライアントといえば eldap で、かなり古い実装で R8 か R9 くらいの頃の実装です。 もともとは GPL だったのが MIT になって github に公開されていました。https://github.com/etnt/eldap 仕事で使うかも知れないと思って、たまにパッチを…

Erlang R15B01 で DTrace(SystemTap) を使ってみる

注意: DTrace まったくわかりません。D 言語(D スクリプト) は書けません。読めません。とりあえずインストールして動かしてみたよ、程度のレベルです。 DTrace 使ったらこんなに幸せになったよエントリーではありません。 追記 2012-04-04 R15B01 が出たの…

Erlang + SPDY + TLS NPN が Firefix 11 で動いた

まったりと SPDY を追っかけたりしてます、今更かよ、遅いよとか禁止。Chrome では既に動いていましたが、Firefox も 11 から有効に出来る様になりましたね。 Jetty が対応したり、Netty が対応したり(Twitter がパッチを送ったそうですね)とちょっとワクワ…

Erlang + UUID ライブラリを触ってみる

RFC 4122 で定義されている UUID を Erlang から使うにはどうやるのかなと思って調べてみました。詳細は参考に書いた "UUID と Perl について" という記事が素晴らしいので、それを読んで下さい。Erlang の NIF バインディングはこれ、rebar の設定が古いの…

jiffy と mochijson2 と simplejson のベンチマークを取ってみた

MBA なのでスペックがしょぼいです。( Core2Duo 1.6 / 4G / SSD 128 ) Erlang R15B Python 2.7.2 追記 2012-03-19 simplejson を 2.4.0 にアップデート tokoroten.json を置き換える 結果 simplejson は C 拡張アリですencode(decode(data)) を 100 回ほど回…

Erlang gen_server(SUB) に対して Python (PUB) からメッセージを送ってみる

Erlang 側で gen_server を複数立てておき、全てを Subscriber として待ち受け状態にして、Python 側からメッセージを送ってみます。メッセージはルートは使わないでファンアウトです。メッセージは JSON でシリアライズしています。 ソース $ git clone git…

zmq で Erlang/Python のデータのやりとりに JSON を使う

通信が確認出来たので、シリアライズしたデータを渡すテストです。 色々ありますが、まずは簡単な JSON データにしてみました。 ソースコード https://github.com/voluntas/snowflake/tree/feature/zmqgit checkout 7c153e853e624b9aeefe6c0e83003b92c8ecbd3…

zmq で REQ/REP を Erlang/Python でつないでみる

Erlang と Python でメッセージのやりとりをしてみます。まずは Erlang が REQ で Python が REP です。 相変わらず同期ですが、テストはシンプルな方が良いので同期から。 サンプルコード https://github.com/voluntas/snowflake/tree/feature/zmqここの 0d…

Lager を使ってみた

概要 Lager というのは Riak の Basho が開発したロギングツールです。https://github.com/basho/lagerそもそも Erlang にはロギングモジュールは付随しているのですが、あからさまに使いにくいのです ... 。 特徴 Lager ですがかなり柔軟に出来ています。 …

eldap_pool というライブラリを作ってみた

作ってみたというよりは既存のライブラリを組み合わせてみた、という方が正しいです。eldap という、古い LDAP ライブラリはあるのですが、これがコネクションプールには対応していなかったので、実際に使うには厳しいのかなぁと考えていたので対応させてみ…

Heroku 上で WebMachine (Erlang) を動かす

heroku コマンドが入っていない場合は gem install heroku で入ります。まずは webmachine を持ってきて、webmachine ベースのアプリを new_webmachine.sh で作ります。 $ cd /tmp $ git clone git://github.com/basho/webmachine $ cd webmachine $ make $ …

riak 1.0.0 の導入方法とクラスターの構築について

riak 1.0.0 がそろそろ出るので導入方法など 変更履歴 パッケージを riak 1.0.0 rc2 に変更 riak って何 Basho Technology, Inc. が開発している Erlang で書かれている商用分散 KVS です。 アジェンダ インストール方法 ローカル環境での構築 クラスター環…

Riak 1.0 の Secondary Index を試す

Riak 1.0 における Secondary Index の制限 マルチインデックスクエリーがない SQL っぽいクエリー言語がない ソート/ページネーションがない 文字列と数値のみ バックエンド DB は LevelDB のみ GitHub からソースを取って来てビルドする 重要なのは 1.0 ブ…

riak-erlang-client を触ってみた

https://github.com/basho/riak-erlang-clientgit clone して make すれば動きます。通信はPB です。ただ中身で使うデータは Erlang の binary です。 term_to_binary -> binary_to_term という方法が使えます。サンプルそのままですが ... riak は 1 ノード…