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

Scala STM を試してみる

ScalaSTM を試してみました。正直、ライブラリ内でどのように STM を実現しているか理解していませんが、とりあえずプリントデバックしてみました。 準備 面倒なので sbt, maven 共に使いませんでした。 % curl -O http://scala-tools.org/repo-releases/org…

Scala Advent Calendar JP 2010 Day 22: Scala Actor + NIO

この記事は Scala Advent Calendar JP 2010 22 日目(12/28)です。 Scala Actor + NIO で Echo server を書いてみました。 毎度の事ですが、突っ込み添削大歓迎です。 Source 解る方用の説明をさらっと行うと、Actor は Thread Pool として利用しており、NIO …

Scala Advent Calendar jp 2010 の 12/18 - Loan pattern in CPS を読んだ感想

Loan pattern in cps - hano - GitHub Perl の Coro に慣れていると、Scala の限定継続は使い難いなーと思っていたら、認識を覆されたのでメモ。私の理解不足でしたと。 以下に簡単なサンプルを用意しました。 object Sample { import scala.util.continuati…

Scala で XML を Parse する(implicit 編)

以前、Scala で XML を Parse する(添削希望) という記事を書いたところ、ありがたい事に Scala で XML を Parse する ( DSL 編 ) - 国道十六号高架下 というトラックバックを頂いたので、喜び勇んで拝読させて頂いた。 しかし、残念ながら私のスキルでは、…

PartialFunction で FSM(Finite State Machine) やってみた

Twitter で FSM を Actor 無しで…みたいな話しが出ていたのでやってみました。 突っ込み添削大歓迎です。 main の中の zip が余分だった。List(FSM(GetState) -> State1, FSM(ToState2) -> State2, ...) の方が読みやすい。 object Test { def main (args: A…

Scala Actor + HttpServer

Scala で 簡易的な httpd を作れないかと調べていたら、Java に HttpServer という便利なクラスがあった。 handler は、Actor 上で使いたいので Executor を継承した ActorExecutor というのを作ってみた。 import java.net.InetSocketAddress import java.u…

Scala で常駐する Daemon を作る方法

Scala で常駐する Daemon を作る用途があり、fsc が使っている方法をパクったのでメモを残す。例によって添削は熱烈大歓迎です。 ざくっと概要を説明すると ProcessBuilder 経由で別の Java VM を起動し、さっさと exit してしまえば Daemonize 完了となる。…

Play framework の Tutorial を Scala と Scalate で行う(Step1, Step2)

Scala を使い始めて Java 文化*1に辟易している方は絶対に使った方が良い Play framework の Tutorial を行ってみたので、そのメモを残す。Play framework は、1.1 の beta version がインストール済みであると仮定する。 Tutorial を始める前の下準備 Play …

第五回 Erlang 分散処理勉強会 無事終了

第五回 Erlang 分散処理勉強会ですが、皆さんにご助力頂き、無事終了いたしました。 発表者の皆様、運営にご協力頂いた皆様、会場をご提供頂いた日本オラクルの皆様、本当にありがとうございました。 懇談会について 今回は、開始時間が遅かったので懇談会を…

RabbitMQ の Java Client を Scala から使う

下準備 下記から RabbitMQ Java Client をダウンロードする http://www.rabbitmq.com/java-client.html 「ant dist」でコンパイルすると「build/dist」配下に幾つかの jar が出来る。 今回は下記の二つを利用する。 commons-io-1.2.jar rabbitmq-client.jar …

Scala で XML を Parse する(添削希望)

Scala で XML を Parse してみたのですが、今ひとつカッコ悪いコードになってしまいました。 凄腕の Scala Hacker に添削して欲しい所です… orz import scala.io.Source import scala.xml.{Node, NodeSeq} import scala.xml.parsing.XhtmlParser object Test…

JavaScript のブラウザ判別

今年の春に入社した新人がブログを書き始めたので返事を書いてみる。 IEとFirefoxのイベント処理 - SASAKURE-CODING どのような言語でもそうですが、基本的に我々初学者が困るような事は、世の中の誰かが既に解決済みである可能性が高いです。 とは言え、何…

第二回 Erlang 基礎勉強会まとめ

以前、告知した通り 2010年7月28日(水) にジェミナイ・モバイル・テクノロジーズ株式会社様の会議室をお借りして Erlang 基礎勉強会の第二回目を行う事ができました。快く会場をご提供して頂いたジェミナイ・モバイル・テクノロジーズ株式会社様、また、ジェ…

第五回 Erlang 分散処理勉強会を 8/27(金) に開催します

詳細と参加のお申し込みは下記の URL からお願いします。 第五回 Erlang 分散システム勉強会 : ATND今回は、Erlang をご活用されている企業である Gemini Mobile Technologies 様をお招きし、分散 KVS である Hibari の発表を行って頂く予定です。 また、他…

neocomplcache で zencoding.vim 内の snippets を補完する

vim

zencoding.vim 内の Snippets を覚えられなかったので neocomplcache で補完できないかと思い、下記のような Plugin を書いてみました。 http://gist.github.com/469369 需要はあまりないと思いますが晒しておきます。

第二回 Erlang 基礎勉強会

去年末に第一回を行った Erlang 基礎勉強会ですが、7/28 にジェミナイ・モバイル・テクノロジーズ 株式会社様の会議室をお借りして第二回を行おうと思います。 今回は、手続き型言語に慣れ親しんだ方向けに、Erlang の軽量プロセスや、そのプロセスを用いた…

vim-ref のプラグインを自作する

vim-ref は、プラグインで拡張できる設計となっているので、試しに Twitter 検索用のプラグインを自作してみました。 と言っても、Twitter 検索を実行する適当なコマンドを Perl で自作し、プラグインの中から実行しているだけの簡単な仕組みです。 ref-twit…

vim-ref が Erlang に対応した!

Vim から各種リファレンスを参照できる @thinca 氏作のvim-ref が Erlang に対応したので試してみました。 「:Ref erlang [検索したい単語]」と入力するか、検索したい単語の上で 'K' を押下すると「erl -man」の結果をバッファに表示してくれます。 それだ…

tmux で cdd (別の WINDOW のカレントに移動)する

cdd - screen の別WINDOWのカレントディレクトリに移動する zsh スクリプト - 川o・-・)<2nd life 上記を tmux で行いたかったので cdd に二行ほど加えてみました。diff cdd.org cdd.new 44a45 > export WINDOW=`tmux respawn-window | cut -d ':' -f 3` 4…

Erlang + ManPageView(Vim) で関数を検索

以前、ManPageView を修正し erl -man 対応を行ったのですが、Man がモジュール単位であるため関数名で検索できませんでした。 そこで Man を開いた後に関数名で検索するように無理矢理修正してみました。 http://github.com/cooldaemon/myhome/blob/master/…

Erlang + Lua = erluna

第四回 Erlang 分散処理勉強会から早や3ヶ月…、学ぼう・試そうと思っていた事が思うようにできない日々を悶々と過ごしておりましたが、何とか時間を作って Erlang linkd-in driver を試すために Lua を組み込んでみました。 Source Code cooldaemon's erluna…

第四回 Erlang 分散処理勉強会 まとめ

第四回 Erlang 分散処理勉強会は、皆様のご協力のもと、無事に終了する事ができました。 発表者の皆様、運営にご協力頂いた皆様、会場をご提供頂いたオラクルの皆様、本当にありがとうございました。 運営について 会場 今回、日本オラクル様に会場をご提供…

第四回 Erlang 分散処理勉強会と懇談会について

明日(2010/2/26)に行われる第四回 Erlang 分散処理勉強会ですが、下記の通り、お願い申し上げます。 キャンセルについて 参加を断念される方は、他のキャンセル待ちの方の為に、下記の URL にて、忘れずキャンセル処理を行って下さい。 http://atnd.org/even…

Perl で作成した RabbitMQ 専用クライアントライブラリを AnyEvent と Coro で非同期化しました

以前、AMQP と RabbitMQ を学ぶために RabbitFoot という名前の Perl 版のクライアントライブラリを作成したのですが、非同期化して欲しいと要望を頂いたので、AnyEvent と Coro を利用してみました。 AnyEvent と Coro は、今回、初めての利用となるため、…

SimpleHttpClient を用いた iPhone アプリのサンプルを公開します

http://github.com/cooldaemon/TestSimpleHttpClient とても適当ですが、雰囲気は伝わるかと。 リクエスト送信、レスポンス受信と解析は、スレッドが異なるので、表示に干渉する場合は performSelectorOnMainThread:withObject:waitUntilDone: を利用する必…

RabbitMQ でお手軽 Client-Server モデルを実現する

Erlang のコードは一行も出てきません。 以前作った RabbitFoot を使うので、Perl のコードしか出てきませんが、RabbitMQ(AMQP) を理解する助けになると思います。 事前準備 Client から Server へ Request を送るための Queue を用意します。 % /path/to/ra…

Vimshell で erl コマンドを実行する

Erlang 基礎勉強会で、Emacs 使いの方々が少し羨ましかったので、真似して MacVim 上で Vimshell から erl コマンドを実行してみました。ちなみに、今回使用したのは MacVim-KaoriYa の 20090802 版です。 Vimshell の準備 MacVim-KaoriYa 20090802 版は、テ…