makecontext関数でコルーチンを実装してみる
ユーザレベルでコンテキストの切り替えを行う関数としてmakecontextという関数があります(ここでいうコンテキストはこれです)。 これを使うとpthreadやプロセスを利用せずに処理の流れを制御できます。
車輪の再発明感がかなりありますが、この関数と関連する関数を使って簡単なコルーチンライブラリを実装してみました。
レポジトリは以下です。
https://github.com/kimito/libcr
ファイバ・コルーチン実装まとめ
リアクティブプログラミングを行うにあたって、並行処理の方法としてマルチスレッドモデルではなくファイバ(またはコルーチン)を使うことがひとつのポイントに思えたので調査してみました。なお、範囲は普段自分がよく使う言語ということで、C/C++/Ruby/Javascriptにしました。
続きを読むThe Reactive Manifesto 日本語訳
まえがき
ガートナーのレポートやInfoQの記事なんかをみると、リアクティブプログラミングというのがこれからくるよ、というのが書いてあったので少し前にちょっと調べていました。その時にアジャイルマニフェストみたいな感じでThe Reactive Manifestoという文書があったのでその時はザクッとみてふーんという感じだったのですが、最近見返そうと思ったらまだ日本語訳がありませんでした。
なので、もうちょっと詳しく読むついでに原文を書いた(一人である)Jonas Bonérさんに日本語訳を書いていいか聞いてみたら(今みたらこの時点で英語が若干間違えてる...)、
@kimito_k Absolutely not. Excellent. Thanks. Let me know when you publish it.
— Jonas Bonér (@jboner) 2014, 1月 15
とわりとフランクに許可をもらったので訳してみました。
なお、訳が怪しい部分は原語をカッコで併記しています。訳の間違い・日本語のわかりにくさなどあるかも知れませんが、悪しからずご了承ください。
Ruby on Railsをすぐに試せるVagrant環境
Ruby on RailsでWebアプリを作るときには、当たりまえですがRuby on Railsの環境を準備する必要があります。慣れの問題といえばそうなのですが、これが結構面倒くさい。
しかし、ちょっとググってみたところだとVagrantをOSのセットアップの自動化手段として使っている方が多いみたいで、Rails用のProvisioningまで含めてセットアップしている例は(日本語では)あまりみられませんでした。
というわけで、Vagrantを試してみるということも含めて、セットアップ後に'rails new ...'とすぐに試せるところまでの設定をVagrantを使ってやってみました。ちなみにpuppetとかchefは使わずに、シェルスクリプトで書いてます。
続きを読む