備忘録、はじめました。

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

2017-01-01から1年間の記事一覧

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…

go-i18nで必要なjsonをgoのソースコードから生成するgoi18n-parser

モチベーションとして、 多言語対応をしたい goのソースコードから自動で翻訳ファイルを作成したい シンプルでいい(複雑な機能は要らない) があり、最小限で作ってみたので紹介します。 github.com goi18n-parser goi18n-parser ではソースコードの解析に …