December 2011
1 post
注目している Advent Calendar 2011
Perl Hackers http://perl-users.jp/articles/advent-calendar/2011/hacker/
Scala http://partake.in/events/33870915-f25b-40b6-9456-b898b898d48b
Scalaz http://partake.in/events/4b3afdc8-e4ec-4010-b8ec-31b89210dda0
Haskell http://partake.in/events/eaea52c2-61ef-46d5-a855-3a2dde459e3a
定理証明 http://partake.in/events/30381166-394a-4fab-a5ea-5984d051de01
Vim http://atnd.org/events/21925
October 2011
2 posts
Akka STM CommitBarrier
http://akka.io/docs/akka/1.2/scala/transactors.html#coordinated-transactions
Scala STM Commit Barrier
A `CommitBarrier` allows multiple transactions on separate threads to perform a single atomic commit. All of the actions performed by all of the atomic blocks executed by members of the barrier will appear to occur as a single atomic action, even though they are spread across multiple threads. Commit barriers can be used to implement transactors, where actions taken by multiple actors should be...
August 2011
1 post
Scala STM コードリーディングメモ
Ref を作る
object Ref の factory は、impl.STMImpl.instance
impl.STMImpl.instance は、scala.concurrent.stm.ccstm.CCSTM を impl.STMImpl にキャストしたもの
Ref.apply で 1:Int とか渡すと newPrimitiveRef > factory.newRef が呼ばれる
factory は、impl.RefFactory だけど CCSTMRefs.Factory が実体。CCSTM が CCSTMRefs.Factory を extends している
最終的に new IntRef(1) の結果が返る
atomic の呼び出し
atomic > scala.concurrent.stm.TxnExecutor.defaultAtomic...
May 2011
1 post
scala + amqp の I/F 悩み中
結果を全て Either で返すと仮定すると下記となる
(connect(host = "localhost", username = "guest", password = "guest") { conn =>
conn.channel { ch =>
for {
ex <- ch.declareExchange(name = "test.exchange", type = "direct").right
q <- ch.declareQueue(name = "test.queue").right
br <- q.bind(exchange = ex, routingKey = "test").right
pr <- ex.publish(routingKey = "test",...
April 2011
1 post
scala + amqp
以下、Java 版 RabbitMQ Client の接続例
ConnectionFactory factory = new ConnectionFactory()
factory.setUsername(userName);
factory.setPassword(password);
factory.setVirtualHost(virtualHost);
factory.setHost(hostName);
factory.setPort(portNumber);
Connection conn = factory.newConnection();
これを Scala を使ってラップしたい。
・案1:コールバック内で設定する(implicit 使ってみたい病
val conn = connect {implicit prop =>
...
September 2010
1 post
2010年秋見たいアニメ
10/1(金) 22:00 アニマックス http://www.animax.co.jp/marvelanime/ 10/2(土) 24:10(以降 23:50) テレビ東京 http://www.tegamibachi.com/ 10/3(日) 23:25 NHK BS2 http://www9.nhk.or.jp/anime/yakumo/ 10/3(日) 25:00 テレ埼 http://www.geneonuniversal.jp/rondorobe/anime/hakuoki/ 10/3(日) 25:35 テレビ東京 http://www.starchild.co.jp/special/arakawa_ub/ 10/8(金) 25:55 TBS http://www.togainu.tv/ 10/9(土) 25:30 テレ玉...
August 2010
1 post
贈与税のメモ
親族以外の第三者から1000万を贈与された場合。 (贈与額-基礎控除額110万円)×税率-控除額=贈与税額 (1000 - 110) x 0.4 - 125 = 231 以下、参考値 (1110 - 110) x 0.4 - 125 = 275 (710 - 110) x 0.3 - 65 = 115 (510 - 110) x 0.2 - 25 = 55 (410 - 110) x 0.15 - 10 = 35 (310 - 110) x 0.1 - 0 = 20
July 2010
2 posts
MacPort から入れた Scala 2.7 API Document の PATH
sbaz install scala-devel-docs すると下記に入る。 /opt/local/share/scala-2.7/doc/scala-devel-docs/api 形式が HTML なので、どうやってコマンドラインから参照できるようにしようか悩み中。 vim からリファレンス見たいなぁ・・・。
Scala 2.7 を MacPort から入れた場合の scala-tool-support...
/opt/local/var/macports/software/scala27/2.7.7_0/opt/local/share/scala-2.7/misc/scala-tool-support/ vim とかディレクトリがあるので、.vim 配下へごっそりコピー。
June 2010
2 posts
Mac OS 10.6 起動時に root 権限でコマンドを実行する
・絶対に必要なこと /Library/StartupItems にディレクトリとファイルを置く $ sudo mkdir /Library/StartupItems/Foo $ sudo vi /Library/StartupItems/Foo/Foo —- #!/bin/sh . /etc/rc.common StartService () { # shell command } StopService () { # shell command } RestartService () { StartService; } RunService “$1” —- $ sudo chmod 755 /Library/StartupItems/Foo/Foo パラメータとして start/stop/restart...
2010年夏見たいアニメ
http://www.geneonuniversal.jp/rondorobe/anime/hotd/ http://www.denyuden.jp/ http://www.okiagari.net/ http://www.occult-gakuin.jp/ http://moyashimon.noitamina.tv/
May 2010
2 posts
Github で Pull Request をもらった際の対応
ど忘れしている事が多いのでメモ。 master の箇所は任意のブランチを指定。 git remote add -f [user name] http://github.com/[user name]/[project name].git git fetch [user name] git log -p master..[user name]/master git merge [user name]/master git log -p master..[user name]/master git push
ref.vim + neocomplcache
let g:NeoComplCache_SameFileTypeLists = { \ ‘perl’ : ‘ref’, \ ‘ruby’ : ‘ref’, \ ‘erlang’ : ‘ref’, \ ‘objc’ : ‘c’, \ ‘tt2html’ : ‘html,perl’, \ ‘int-erl’ : ‘erlang,ref’, \...
April 2010
1 post
Concept for exchanging erlang value to lua value...
erlang value => lua value [a, b, c] => {“a”, “b”, “c”} {a, b} => nil # ignore tuple [a, b, c, [1, 2, 3]] => {“a”, “b”, “c”, {1, 2, 3}} [a, {foo, bar}, c] => {“a”, “c”, foo = “bar”} [a, {foo, bar, baz}, c] => {“a”, “c”} # ignore triple in array [a,...
March 2010
1 post
2010年春見たいアニメ
私 http://www.angelbeats.jp/ http://www.1931.tv/ 妻 http://www.bgata-hkei.com/ http://www.tbs.co.jp/anime/maidsama/ http://www.geneonuniversal.jp/rondorobe/anime/hakuoki/ http://www.starchild.co.jp/special/arakawa_ub/ http://www.tbs.co.jp/anime/k-on/
February 2010
4 posts
A queue is an erlang process in the RabbitMQ.
(rabbit2@mbp)1> rabbit_misc:dirty_read_all(rabbit_queue). [{amqqueue,{resource,«”/”»,queue,«”test_q”»}, false,false,[],<0.1100.0>}] (rabbit1@mbp)1> rabbit_misc:dirty_read_all(rabbit_queue). [{amqqueue,{resource,«”/”»,queue,«”test_q”»}, false,false,[],<9974.1100.0>}] (rabbit2@mbp)2>...
Clustering RabbitMQ nodes on a single machine.
RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1 ./scripts/rabbitmq-server -detached RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit2 ./scripts/rabbitmq-server -detached RABBITMQ_NODENAME=rabbit2 ./scripts/rabbitmqctl stop_app RABBITMQ_NODENAME=rabbit2 ./scripts/rabbitmqctl reset RABBITMQ_NODENAME=rabbit2 ./scripts/rabbitmqctl cluster rabbit1@foo RABBITMQ_NODENAME=rabbit2 ./scripts/rabbitmqctl...
Concept code for AnyEvent::RabbitMQ
I need some advice for this concept.
use AnyEvent::RabbitMQ; my $cv = AnyEvent->condvar; my $failur_cb = sub { warn @_; $cv->send; }; my $ar = AnyEvent::RabbitMQ->new({ timeout => 1, })->load_xml_spec( '/path/to/amqp0-8.xml', )->connect({ host => 'localhosti', port => 5672, user => 'guest', port ...
January 2010
2 posts
Alice and Wonderland
http://alicetheapp.com/ git clone http://github.com/auser/alice.git cd alice make make boot mkdir web cd web git clone http://github.com/auser/wonderland.git /path/to/rabbitmq/scripts/rabbitmq-server -detached /path/to/alice/scripts/alice.sh -d -s [sname] -r [rabbit@foo] -p [port]
常用している Firefox の Addon (備忘)
Firebug
YSlow
FireCookie
Inline Code Finder
FireRainbow
FireFinder
Live HTTP headers
User Agent Switcher
Selenium IDE
Vimperator
Greasemonkey
SQLite Optimizer
RequestPolicy
2010年見たいアニメ
http://www.nodame-anime.com/ http://www.katanagatari.com/
October 2009
1 post
clang のインストール
cd /path/to svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm cd llvm/tools svn co http://llvm.org/svn/llvm-project/cfe/trunk clang cd .. ./configure make
September 2009
2 posts
視聴予定のアニメを嫁の希望で追加
http://anime.webnt.jp/seitokai/index.html http://www.sasameki.com/broadcast/index.html http://www.ntv.co.jp/bungaku/ http://www.tv-tokyo.co.jp/anime/fairytail/
2009下期に見たいアニメ
http://www.starchild.co.jp/special/asura/ http://www.blasmi.com/ http://www.project-railgun.net/ http://www.bantorra.com/
June 2009
12 posts
分散処理勉強会 #3 の資料は明日の夜に公開予定
仕事が忙しいのと、タクトオブマジックのやりすぎで、まだ 1/3 しか出来てない orz まずいなぁ。
gen_paxos のコードを読み始めた
Kai 以外で gen_fsm を使ってる例を久しぶりに見た。素敵。 状態ごとの説明は、勉強会で教えてもらえるかもしれないので 今のうちに疑問点を洗い出す。 まずは、ディクレクトリ構成の変更と coordinator を gen_server 化する事から始める予定。 議題ごとに gen_fsm を使い捨てているので どっかにプロセスをストックしておいて 再利用できないもんかなぁ?(優先度低) nil preparing proposing acceptor learner decided 実際に動かしてみた 幾つかのノードを起動し、幾つかの議題を出してみた。 その後、過半数のノードを除去し、議題を出すと、ひたすら合意を取り続ける。 この状態で、除去したノードと同じ名前のノードを復活させ、net_adm_ping/1 で繋ぐ。...
見る予定のアニメ一覧
http://umineko.tv/web/main/index.html http://www.bakemonogatari.com/ http://www.canaan.jp/ http://www.spicy-wolf.com/top.html http://tokyo-m8.com/
Perl の Coro を使ってみた
use Coro; use Coro::Select; sub printit { my ($string) = @_; for (1..5) { print $string, “\n”; select undef, undef, undef, 1; } }
for my $coro ( async { printit ‘foo’ }, async { printit ‘bar’ }, ) { $coro->join; }
Erlang で作られた Packrat Parser
http://github.com/seancribbs/neotoma/tree/master あとで使ってみる。
Ruby Enterprise Edition
社内の Ruby 環境は、これに統一する事にした。 諸々全て /opt/ruby-enterprise-X.X.X-YYYYMMDD 配下にインストールされるので 確かに No Risk で導入検証できる。 wget http://rubyforge.org/frs/download.php/58677/ruby-enterprise-X.X.X-YYYYMMDD.tar.gz tar zxvf ruby-enterprise-X.X.X-YYYYMMDD sudo ./ruby-enterprise-X.X.X-YYYYMMDD/installer ただし、Tiger だと以下のエラーが出た。 /usr/bin/ld: unknown flag: -rpath あとで調べる。 同じ事で困っている人がいた。...
MacVim + KaoriYa が Tiger(10.4) でも動くようになったので導入してみた
.vimrc で文字コード判別している箇所を if !has(‘kaoriya’) でザックリ不使用にした。 何故か、MacVim だと動く rails.vim が動かなくなった。 頻繁に rails で仕事するわけではないので、後で気が向いたら調べる。
Erlang ODBC は並列?
マニュアルを読んだけど、言及されていなかった。 後でコードを読む。
Skip Graphs
「キーの範囲検索ができる」と聞いても嬉しくない。 「キーの部分一致検索ができる」と聞くと嬉しい。
そーいや
最近、tumblr でつぶやいてばかりだ。なぜ、twitter を使わないのか?>自分
Vim indent file for Erlang.
http://www.vim.org/scripts/script.php?script_id=2023 便利。
Erlang 64bit 環境でも dets は最大 2G まで
4G という迷信があるので、実際に試してみたのですが、2G を超えた時点でエラーが出ました。 dets のマニュアルは間違ってない。 始めに誰が 4G なんて言い出したんだろうなぁ?
May 2009
5 posts
Erlang R13B を Mac Port から入れる
Mac Port から rrdtool を入れていたおかげで、xorg 関連のライブラリを全て入れ直す羽目になった。
xrender やらなんやら、とにかく消したり入れたりしまくった。
erlang が入るまで、2時間もかかったよ orz
port outdated でこまめに更新を確認しないと、いざって時に困るねー。
ToDo 管理
5 年ほど、コビィ博士の手帳を使い続けて来たが、iPhone を手に入れた事だし そろそろ Remember The Milk に乗り換えて iPhone と連携させようかと思った。 http://www.rememberthemilk.com/ 手帳は電池切れが存在せず、どこで開いても非礼にならない所が強みであるため 完全以降は厳しいかもしれないなぁ・・・どうしよっかなぁ
FreeBSD 6.4 to 7.2
いつものごとく。 portsnap fetch update portupgrade -a freebsd-update upgrade -r 7.2-RELEASE freebsd-update install shutdown -r now freebsd-update install rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db portupgrade -af shutdown -r now freebsd-update install http://blogger.tempus.org/2009/05/freebsd-64-freebsd-72.html
最後のfreebsd-update installを実行すると、古いライブラリを消去してくれます。が、私が portupgrade -af のやり方を間違えたのか、再構築後の一部...
iOctocat
dbloete という方から、git-phone を watching してるなら iOctocat もお薦めだよーみたいなメールが届いた。 はいはい、スパムスパムと思いつつも clone してコンパイルして試してみたら、git-phone より多くの機能が実装されており、しかも使いやすかった。ビックリ。常用確定。
libxml2 の SAX API では、 HTML_PARSE_RECOVER...
一度、 DOM Tree を作らないと、壊れた HTML は扱えない。そりゃそうか。
April 2009
6 posts
NERD_commenter を導入したら TT ファイルを開くとエラーになる
下記を追加してみた。 928 elseif a:filetype == “tt2html” 929 call s:MapDelimitersWithAlternative(‘<!—’, ‘—>’, ‘[%#’, ‘%]’) 良い具合に動いてる。けど、.vimrc から変数とかで設定できるようにしとけば良いのに。
GMail の未読一覧
is:unread で検索できるなんて知らなかった。 これは一般的な事なのかな?
iPhone に集中していたら
渋谷を越えて目黒だった orz
iPhone SDKの教科書が欲しい
ジュンク堂のページで検索したら、池袋本店に在庫が 20 冊以上あった。 早速、会社帰りに買いに行こっと。
iPhone から投稿
閲覧には便利だけどキー入力には慣れが必要だね
rascut のインストール
# sudo gem install rubygems-update # sudo gem update -–system # gem sources -a http://gems.github.com # sudo gem install hotchpotch-rascut
March 2009
3 posts
Restore state on supervisor restart
という ML の質問に対して、下記の返信がった。 The supervisor will always start the child with the same arguments, for better or for worse. A common trick is to create an ets table in the supervisor (e.g. in the supervisor init() callback, or in the child start function before spawning the process, taking care not to try to create it more than once.) This way, your server can store data in the ets table that survives...
2009年4月に見る予定のアニメのメモ
http://www.starchild.co.jp/special/asura/ http://www.tbs.co.jp/anime/ph/ http://www.phantom-r.jp/ http://www.valkyria-anime.com/ http://www.hagaren.jp/ http://www.guinsaga.net/ http://www.anime-shangri-la.jp/