備忘録、はじめました。

作業したこと忘れないようにメモっておきます。

erlang

erlangでsnowflakeを実装してみた

はじめに erlang製のsnowflakeほしいなと言う思いで色々探していて、思い描く感じのがなかったので自作してみた話。 リンク: GitHub - tkyshm/esnowflake: Uniq id generator based on Twitter's snowflake in Erlang 実装 snowflakeのアルゴリズムに関して…

erlangでfluentdクライアントのOTPアプリケーションを実装した

はじめに アプリケーションにログ、データを集めたりするのにしばしば利用される Fluentd というソフトウェアのクライアントをErlang/OTPで実装した話です。 本家のerlangのfluentdのクライアント の実装を眺めていて、 gen_eventで実装されていたため、過負…

Erlangのバージョン管理ツール自作

前はkerlを使って複数バージョンを持ってたけど、buildのときのoption指定とかが思う感じに指定できなかったので自前で用意した話。 GitHub - tkyshm/erlch: Erlang version manager やりたいことは、erlのバージョンを気軽に切り替えられることと、インスト…

Erlangプロセスのmessage_queue_dataの影響について見てみた

前回の「Erlangのメッセージングでバッファを使う - 備忘録、はじめました。」でバッファがないときに大量のメッセージを送受信すると非常に遅くなることが分かりました。 この劣化の要因は大量のメッセージを一斉に送信していることです。 なので、プロセス…

Erlangのメッセージングでバッファを使う

Erlang Angerの3章、3.3.2あたりで過負荷についての対処法として、キューのバッファを作るのが効果的という話が載っていたので、実際にどのくらい差が出るのか簡単に計測してみた話です。 問題設定: この二つの設定に対して、1,000〜500,000メッセージをben…

Cowboyでobserverを起動するメモ

目的 軽量HTTPサーバcowboyのアプリケーションをErlangの監視ツールobserverで視覚的に監視できるようにしたい。 実施内容 relx.configの編集 レシピ relx.configの作成したアプリケーション名(以下app_name)の他に、 wx observer runtime_tools の3つを追…

Ubuntuでriakをインストールするときにやったこと(まとめ)

はじめに riakをインストールしようとした時に、コンパイルでこけたり、実行時にWarningを喰らったりしたので、その問題を解決するために必要なことをまとめました。まず、はじめに今回やったことを箇条書きにします。 apt-get install libpam0g-dev を実行…

webmachineとAJAX

はじめに 2014年5月30日現在、アプリケーションの開発で、バックエンドにwebmachine、フロントエンドにAngularJSを選択しようと考えています。その2つのやりとりでCORSの問題が起きるので、回避方法をメモします。主にやることは、webmachine側のAccess…

webmachineの設定ファイルを作る

はじめに webmachineはErlang製の軽量Webツールキットの一つです。デフォルトだと、webmachineで作るアプリケーションの設定はerlangソース内で記述する形になります。私は設定ファイルを別で分けたかったので今回その作業についてメモします。注意として、w…