2008-01-01から1年間の記事一覧
Supervisor の停止を下記の通り書いていたら・・・ stop() -> case whereis(?MODULE) of Pid when pid(Pid) -> exit(Pid, shutdown), ok; _ -> not_started end. Common Test で怒られてしまった。Application の stop は怒られないなーと思い source を追っ…
一応、メモ。 branch ごと clone する SourceForge から kai を取得する例。 $ git svn clone https://kai.svn.sourceforge.net/svnroot/kai -T trunk -b branches -t tags branch が増えた場合 git svn rebase は、現在の作業 branch を更新するだけなので…
個人的な意見であり、決して一般的な意見ではないと思うのだけれど、Erlang 言語でプログラムをしていると、高階関数やメタ機能の利用が面倒で困る。 つい最近も、ちょっとしたモジュールを書いている際、モジュールへ動的に関数を追加できれば、コード行数…
package MyApp::View::TT; use strict; use warnings; use base 'Catalyst::View::Templated'; use Template; MyApp->config->{'View::TT'} = { EVAL_PERL => 0, TEMPLATE_EXTENSION => '.tt2', CATALYST_VAR => 'c', INCLUDE_PATH => [ MyApp->path_to('roo…
たけまる / Erlang で Apache worker MPM っぽいこと accept 待ちのプロセスを supervisor 配下に置いてみました。tcp_server.hrl -author('cooldaemon@gmail.com'). -define(MAX_TIME, 60). -define(SHUTDOWN_WAITING_TIME, 2000). -define(MAX_ACCEPT, 100…
CentOS 5.1 で、ローカル環境向け yum リポジトリサーバを作ってみる - cooldaemonの備忘録 の続き。 CentOS 5.1 向けの RPM に perl 5.10 は存在しないので Fedora から SRPM をもらってきて、RPM を作る事にする。 ローカルにビルド環境を作る root で作業…
大人の事情で、仕方なく CentOS を使うハメになりイロイロ勉強中。Linux なんて触りたくないなぁ(w; apache のインストール リポジトリを HTTP で配布する事にしたので、apache を入れてみる。 $ yum -y install httpd 適当に httpd.conf を設定して起動し…
http://labs.miu.vc/svn/cooldaemon/doc/mochiwebLT.pdf SlideShare に上げようとしたのですが、重くて断念しました orz という事で、株式会社 MIU 様の公開リポジトリをお借りしました。ご好意感謝致します。> drkazu 社長 SlideShare にあげた。http://www…
vim+manpageviewで補完を便利に - はこべにっき# manをvimの中でみるためのプラグイン,manpageviewを導入してみた. おー便利!と思って導入してみたら、man をかなり大きく表示してしまい、補完の為だけに表示しておくのは邪魔な気がしました。 そこで、ma…
下記、最新版では改善されたそうです。"osx10.5.3でMacPortsから入れたerlangが動くようになった! - Inquisitive!"Mac OS X 10.5.3 にあげたら MacPorts の Erlangが動かない ... - Twisted Mind /opt/local/bin/erl が動かなくなったので、あきらめました…
ほぼ、source を読み終わったので、使い方の解説を何回かに分けて記述して行こうと思う。 とりあえず今回は、mochiweb のデモを動かすまでの手順の紹介。まずは、svn で mochiweb 本体をダウンロードし make する。 $ svn checkout http://mochiweb.googleco…
まずは、こちらから make_gosh_completions.scm を頂く。 なんとなく、下記のように書き換えて、名前を gosh_dict_maker.scm として保存。 #!/usr/bin/env gosh (use gauche.interactive) (define (main args) (let loop ((line (read-line))) (if (eof-obje…
現在、MacPorts から Gauche-dbd-mysql をインストールすると 0.2.1 が入ってしまう。 0.2.1 は MySQL5 に対応してないらしいので 0.2.2 を入れたい。 そこで、既存の Gauche-dbd-mysql の Portfile を少しだけ修正して 0.2.2 が入るようにしてみた。 Portfi…
vcscommand.vim が git 対応になっていたので更新。 ついでに COMMIT_EDITMSG ファイルを開く際に一工夫してくれる git-commit を入れてみた。インストール後、.vimrc に下記を加えると・・・ let git_diff_spawn_mode=1 autocmd BufNewFile,BufRead COMMIT_…
下記を参考に、自分なりにやってみたんだけど・・・ show current git branch on zsh prompt (2) - Bart's Blog function git_branch() { local git_dir branch git_dir=$(git rev-parse --git-dir 2> /dev/null) || return if test -d "$git_dir/../.dotest…
下記のコードのように、-module の二つ目の引数にリストを渡すと・・・ -module(new_test, [Test1, Test2, Test3]). -author('cooldaemon@gmail.com'). -export([get/1]). get(test1) -> Test1; get(test2) -> Test2; get(test3) -> Test3. new/3 が定義され…
mochiweb に付属の reloader を使うと、更新のあった module を再読み込みしてくれるので、デバックの手間が少し減る。 source の中身 gen_server として常駐する。 timer:send_interval/2 を使って自分自身に一秒間隔でメッセージ doit を送る。 doit を受…
mxml.dict 作り方 まずは、こちらを参考に Flex3 のリファレンスをローカル環境にダウンロード。 Flex3のヘルプ続き - 0x廃棄階層 - 統治局 2008/04/17に取得した http://ss-o.net/txt/Flex3LangrefUrlList.txtを置いておきます。 wget -i Flex3LangrefUrlLi…
以下のエントリを拝見させて頂いて、思った事のメモ。 MVCのモデルはDBじゃなくてもいいんだよ - D-6 相変わらず根無し個人差があるかとは思いますが、Catalyst を使っていると、 C のテストを書く行為を、私は、そんなに苦に感じない。ただ、C は URI リ…
単純に erl_interface を Inline::C から使っただけなんですが(w; erlang 側の準備 特別な準備は無し。 とりあえず、送受信するプロセスを適当に作っておく。 -module(pingpong). -compile(export_all). start() -> register(pingpong, spawn(?MODULE, loo…
C と Erlang ノード上のプロセスの間で、直接メッセージを送受信できる便利なライブラリ erl_interface を試したみた。 以下、メモと言うより code snippets。pingpong.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include "erl_interf</arpa/inet.h></netinet/in.h></sys/socket.h></string.h></stdlib.h></stdio.h>…
早く、公式 で対応して欲しい。 diff ~/.vim/syntax/perl.vim.org ~/.vim/syntax/perl.vim/syntax/perl.vim 74a75,77 > syn match perlConditional "\<given\>" > syn match perlConditional "\<when\>" > syn match perlConditional "\<default\>" 76c79 < syn keyword perlCondition</default\></when\></given\>…
yaws 調査の為、試しに RESTfull な I/F を持つストレージを作ってみたので晒してみる。 インストール % svn co http://labs.miu.vc/svn/cooldaemon/erl/ssd/trunk/ ssd % cd ssd % makemake を実行する前に、Makefile 内の yaws のインストール先を編集する…
Yaws を embedded モードで動かす為のメモ(適当) appmods で使う為のモジュール 適当に、arg を出力するモジュールを準備する。 -module(put_arg). -author('cooldaemon@gmail.com'). -include("/path/to/yaws/include/yaws_api.hrl"). -export([out/1]). ou…
yaws で遊んでいたのですが、GET で a=b&a=c みたいな引数を渡すと yaws_api:parse_query(Arg) を実行した際の戻り値が [{"a","b"}, {"a","c"}] となるので、リスト内のタプルのキーが重複する場合は、どうやったら素早くタプルを取り出せるのかなぁと思い、…
Catalyst 本を参考に、やっつけで書いてみた。 Catalyst 本との違いは fixture に対応している点。 使い方(Test::WWW::Mechanize::Catalyst と連携等)や解説は、近いうちに書く。後で Helper にする。 package MyApp::Test::Database; use strict; use warni…
http://blog-emotion.com/emo/ さて、どんなもんだろうか?
まだ、解らない事だらけだが、使い始める所まで辿り着いたのでメモを残す。 run_test コマンドの準備 run_test とは、名前の通り、テストを実行してくれるコマンドで、実際は、erl コマンドを実行するシェルスクリプト。 作業は、Common Test がインストール…
170ページしかないので半日で読めた。 ほぼ、知っている内容ばかりだったけど、Chapter 8 の Testing がとても良かった。(今度、日記に書こうっと) その他は、Catalyst::Controller::REST、Jemplate、PAR 辺りが面白かったかな?(現在、js は Mochikit を…
タイトルにあるような事を行うモジュールを作ってみました。 source http://labs.miu.vc/svn/cooldaemon/perl/SVN-Hook-PreCommit/ POD が雛形そのまんま。 使い方 モジュールをインストールした後に、下記を /path/to/hooks/pre-commit として保存する。 #!…