トップ «前の日(04-03) 最新 次の日(04-05)» 追記

おいぬま日報(不定期)

カテゴリ | 技術情報まとめWiki | 検索エンジンから来た人向け | RSS

2003年
4月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30



2003-04-04

@ [java] iContract

Design by contractを実現するためのツール。


2004-04-04

@ [ruby] 配列とcase

caseのwhenの式に*をつけた配列を式として書くと配列を展開してくれる。はげしく便利。

array = [ "a", "b", "c" ]
case @hoge
when *array
  # "a", "b", "c"のいずれかの場合の処理


2005-04-04

@ [java] exewrap

JARファイルを実行可能なEXEに変換してくれるツールだそうです。ついにJavaでもこういうのが(フリーで)出てきましたね。

@ [pc] メモリ

最近爆安ですね。PC3200の1GBで11,000円か〜。VMwareとEclipse動かしてるとしんどい時があるので今のうちに増設するかな。

本日のツッコミ(全2件) [ツッコミを入れる]

# アベベ [PC3200/512MBが3988円であったらしいよ、クレバリーとか。今週末あたり底値とか予想されてるらしいけど…]

# おいぬめ [今日買って来ました。1GBは大人気なのか、色んな店で売り切れ続出でした。在庫が少なくなると値段上がっちゃうかもね。]


2006-04-04

@ [emacs] 関数を一覧表示するnavi.el

Meadow/Emacs memoより。C-x C-lでファイルに定義されている関数の一覧を出すことが出来て、一覧から関数の定義位置にジャンプすることが可能。便利。


2007-04-04

@ [yapc] YAPC::Asia 2007 Tokyoに行ってきました

今日と明日開催されるYAPC::Asia 2007 Tokyoに今年も参加してきました。仕事の都合とかで全部のセッションには参加できなかったのですが、参加できたやつはどれも内容が濃くて非常に参考になりました。というわけでノートを少し取ったのでメモ代わりに書いておきます。

@ perl I18N in 20 minutes - Dan Kogaiさん

スライド

Perl内部ではデータは全てUnicodeで保持されているのは有名ですが、PerlのUnicodeのサポートっぷりは他のLL言語に比べてすごく進んでるよ、という話。

Encode.pm
これは文字コードを変換するためのインターフェースのひとつ。他のインターフェースとしてはPerlIO(open)とか、binmodeとか。
PerlのUnicodeサポート具合
他のLL言語もエンコード/デコードは当り前にできるけど、文字列リテラルにUnicodeを書いたり\N{greek:Sigma}みたいなCharNames、正規表現、シンボル(日本語の関数名とか)、ユニコードプロパティまでサポートしているのはPerlぐらい。

という感じでした。ちなみにJavaって一番最初にまっとうにUnicodeをサポートした言語だったと思うのですが、Javaと比較するとどうなんでしょう?というのが気になりました。

@ Perlネットワークプログラミング再考 - Naoya Itoさん

スライド

今回ははてなのサービスに関連することではなくって、Perlでのネットワークプログラミングについて。

最近はCometとかAS3のSocket APIが熱い!というわけで自前でエコーサーバを作りつつ色んなネットワークプログラミングの方法を試してみました、というような感じで以下を紹介。

  1. BSD Socket API(すごい原始的)
  2. IO::Socket - 1.よりはマシだけどブロッキングが発生(1つのクライアントしか処理できない)
  3. ブロッキングの問題を解決するためにI/O多重化
  4. select(2)
  5. IO::Select - selectよりわかりやすい(でもC10K問題が...)
  6. epoll(Linux)、/dev/kqueue(BSD)、devpoll(Solaris)

そして最近のPerlではより高度に抽象化された(epollやらselectとかを隠蔽)モジュールがありますよんということで、POEやEvent::Lib(libeventのラッパ)やらDanga::Socketを紹介。

でPOEはもうライブラリというかネットワークプログラミングのフレームワークの領域なので残りの時間を割いて詳しく説明していました。

そういえば、「Danga::Socketを使ってみようと思ってCPANのPOD見たけどよくわからなかった」と言っていたのですが、僕も同様に使い方がわかりませんでした。PerlbalとかMogileFSのコード嫁って感じなのですかねぇ。とにかくselectやepollのレベルの話は、普段アプリケーションのコードだけ書いているとあんまり意識しないところなので、詳しく聞けてとても参考になりました。

@ Everything Vox - Ben Trottさん

Six ApartのCTOであるトロットさんのセッション。基本英語なのですが、宮川さんが随時日本語に訳してくれてとてもわかりやすかったです。内容はタイトルのとおりVoxのアーキテクチャについて。

VoxはYouTube、Amazon、flickrなどのWebサービスにアクセスできて、そこにあるものをまとめ上げることができる。んで、当然WebサービスなのでAPI叩いてごにょごにょやっているらしいのですが、Net::AmazonやNet::FlickrなどのCPANモジュールは使わず、独自のライブラリでやっているそう。理由は、こういうCPANモジュールを入れると色んなXMLパーサのモジュールが依存関係にあるので、mod_perlのメモリ上にそんなたくさんのXMLパーサのせるとメモリの無駄、っていうことだそうです。なのでその独自ライブラリはLib::XMLをベースにしてゼロから作られているとのこと。

さらにGDataやOpenSearch、MediaRSSをOpen Media Profileとしてまとめ上げて、Atomに独自のフォーマットを足しているらしいです(ちょっとここよくわからず)。

Ajaxについて
Catalyst::Plugin::JSONRPCを使っていて(っていうかこれ宮川さん作ですよね)、独自JSライブラリを構築しているらしい。2年前ぐらいから取り組んでいたので、prototype.jsとかまだ有名じゃなかったそうな。
スケーリング
Big-IP, Perlbal, mod_perl, memcached, Global DB, Clustered DB, MogileFSという感じでシステムを組んでスケーリングしているらしいです。ちなみにDBにアクセスするところはData::ObjectDriverというORMをVox用にこさえて、キャッシングとパーティショニングをORM側でデフォルトサポートしているそうな。ちなみにパーティショニングするとAUTO_INCREMENTなカラムでID管理できなくなるので、そこはyuiddという独自のID管理サーバを作って対応していると言ってました。
TheSchwartz - 分散型ジョブ管理サーバ
いわゆる非同期のジョブ(タスク)を実行するサーバだそうです。シュワルツって最初人名かと思いました。Voxの中では
  • Video transcoding(FLV変換のこと)
  • キャッシュ削除
  • Six Update Stream(謎)
で使っていると言ってました。
Catalyst
フレームワークにはCatalystを使っていて、なんでCatalystかというと、それなりに動作速度が優れていて拡張性があるから、ということでした。まぁ「触媒」の名は飾りじゃないってことですね。ただし、Viewとして使っているTTが速度的にはイマイチで、Voxの自分のホームページを表示する際の、実行にかかっている時間の60%はTTが処理している時間になっているそうです(データをとってくるところとかは全てmemcachedから引いてくるので速い)。
memacached
get_multiいいですよ。
Perlbal
Apacheのmod_proxyよりいいよ。Stand aloneの静的ファイルを返すWebサーバとしても使えるよ。
質疑応答とか
DBをパーティショニングしていると横断検索とか大変だと思いますがどうしてますか?→全部アプリケーションで検索しているよ。

なんとなくdanga製品の総本山だけあって、いろいろうまく組み合わせて使っているなぁ、というのが感想でした。Data::ObjectDriverのコードは、ビルトインでパーティショニングを組み込んでいるという点が気になったので、今度真面目に読んでみようと思いました。

@ で...

この3つ以外にも色々とセッション聴いたのですが、もう書く気力がないので今日はここまで。あ、もちろん明日もいきますよー。

@ livedoor Readerは

ホントにクローリングが速くなった!10分前に書いたエントリがもう未読として上がってきましたよ!


Bookmark: あんてな | ぶっくまーく | 覚え書き | Project Amateras | ExcelPettyCashBook | FreeStyle Wiki

2002|10|11|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|11|12|
2008|01|02|03|04|05|06|07|08|10|11|12|
人気ブログランキング - おいぬま日報(不定期)