実際に見たセッションで良かったモノ&気になったモノをピックアップ。
・ Ingy döt Net - JavaScript Love for Perl Hackers
jQueryのようなsyntacsをPerlで実現するためのpQueryを紹介していました。
より直感的にスクレイピング出来そうな感じ。
・Gosuke Miyashita (mizzy) - Easy system administration programming with a framework - フレームワークでシステム管理プログラミングをもっと簡単に
システム管理系のフレームワークにFuncってのがあるんですが、それのPerl版。
まだ開発真最中なようですが、非常に有益そうなので、取り入れてみたいなって感じです。
・Masahiro Nagano (kazeburo) - memcached in mixi
最近では使っていない方が珍しいmemcashedですが、mixiさんではどうやって使っているのか?
Mooseのセッションの裏で、激しく迷ったんですが、仕事に役立ちそうなので見てきました。
3Gのメモリ×100台のmemcashed専用サーバーにはちょっとビックリ。
探索アルゴリズムであるConsistent hashの説明はとてもわかりやすかったです。
ウチにも導入したいなー
・Yoshinori TAKESAKO (takesako) - How to defend Apache/CGI against multibyte XSS attacks
XSSフィルタのmod_waffleの紹介。apacheに組み込めるのが非常にポイント高いですね!
・Naoya Ito - Introduction to DBIx::MoCo
MoCoいいよ、MoCo。Rubyで言うところのMethod Chainや、Rails使いならなじみのあるfixtureが素敵。
透過的にmemcashedが組み込める所と、search結果にcollect使えたりするところが良いです。
自分で作る案件にはData::ObjectDriver使おうかと考えていたけど、MoCoにかなり傾いています。
さいきんはてなさんはRubyチックになっているなぁ・・って感じがします。(素晴らしい!)
仕事の都合でここまでしかみれなかったんですが、ぼちぼちGoogle Videoにあがるハズなので、片っ端から見てみようと思います。実際見れなかったもので気になっているのはテンプレートエンジンですね。
TemplateToolkitは良いんだけど、Railsから比べると、もう少しPerlネイティブに書きたい時があるんですよね。
パフォーマンス比較している、"makoto kuwata - The Fastest Template Engine in Perl World"を早く見たいです。
最近、Catalystで開発したほうがいいんじゃないか?ってうっすら思っているので、次新規案件やるときは、Catalyst + MoCo + MobileAttribute + よさげなTemplate Engineでやってみようかと思います。
ニーズが無さそうだけど・・・
twitter、nowa、frepaのヒトコトをrubyで更新に プチプロフのヒトコト更新もコマンドラインからマルチポスト出来るようにしてみた。
apiが(多分)ないので、mechanaizeで強引にHackします。
#!/usr/bin/ruby
require 'net/http'
require 'rubygems'
require 'mechanize'
require 'kconv'
exit unless $*[0]
# update puchi-prof
agent = WWW::Mechanize.new # インスタンス生成
agent.user_agent_alias = 'Windows IE 6' # User-Agentの設定
page = agent.get('http://www.pcpf.jp/') # プチプロフにアクセス
puts page.uri
login_form = page.forms.first
login_form.fields.name('pcpf_id').value = 'user_name'
login_form.fields.name('password').value = 'password'
page = agent.submit(login_form) # フォームのsubmitボタンを押す
page = agent.get('http://my.m.pcpf.jp/status_message/')
hitokoto_form = page.forms.first
#puts hitokoto_form
hitokoto_form.fields.name('body').value = $*[0].tosjis
puts hitokoto_form.fields.name('body').value
page = agent.submit(hitokoto_form)
mechanaizeは組み込みではないので、gemで入れる必要がアリ。
これ使うと何でもアリな感じww
完全にHackしどころを間違えた感が・・・
なんとなくポスト
普段はtwitterとかnowaのヒトコトとかの更新をコマンドラインからやっています。
#!/usr/bin/ruby
require 'net/http'
exit unless $*[0]
# update twitter
req = Net::HTTP::Post.new('/statuses/update.xml')
req.basic_auth("user_name", "password")
req.body = 'status=' + URI.encode($*[0] + '[rubyからポスト]')
Net::HTTP.start('twitter.com') do |http|
res = http.request(req)
# print res.body
end
このファイルをtwit.rbで保存しておいて、パスの通った所に置いておけば
$ twit 'ひとこと'
とするだけで更新可能。仕事の合間に更新できますw
rubyには組み込みのnet/httpが入っているのが激しく便利。print res.bodyはデバック時の時だけ有効にしています。定数化しておけばいんだけどね。そこまでニーズが無かった・・
ちなみに、nowaの更新もurlを変えるだけ。twitter.comをapi.nowa.jpに変えるだけのお手軽さ。
フレパのヒトコトもurlをwww.frepa.livedoor.comに変えるだけで更新できちゃう。
最近はまったのでメモ書き。
LeopardからApacheのバージョンが2.2.6になっています。
Tigerと違って、Apache1.3+mod_perlが標準ではないので、mod_perl2を自前で入れる必要があるんですね。
今の職場はPerlがメインのWeb開発なので、mod_perlないとお話にならないのですね。
が、普通にインストールすると、
Intel Macだと、アーキテクチャータイプが違うとかで起動してくれない。
(非インテルは未確認)
そこで、mod_perlを入れる際に、環境変数をいじる必要があります。
$ wget http://search.cpan.org/CPAN/authors/id/G/GO/GOZER/mod_perl-1.30.tar.gzmod_perl-1.30.tar.gz $ tar zxvf mod_perl-1.30.tar.gz $ cd mod_perl-1.30 $ export ARCHFLAGS="-arch x86_64" $ export CFLAGS="-arch x86_64" $ perl Makefile.PL $ make $ make install
デフォルトで入っているモジュールだけだと、make testでモジュールが足りないと怒られると思うので、エラーメッセージ見ながら追加してあげて下さい。
メジャーリリースということもあって、競合するソフトも多いみたいですね。
MacOSX10.5(Leopard)を問題なくインストールする方法
とか、
今んとこLeopardで動作しないソフトウェア報告スレ2
ざっとチェックして、致命的なものがなさそう。
一部ではインスコ終了時に、ブルースクリーンが出ると報告があるのですが、
周りの人たちでそういった人がいなかったので、とりあえず自宅のMac Book Pro へインサート。
最初は内蔵HD認識しなくて焦ったけど、メニューバーいじったり、コンソールでdfとかやっていたら出てきました。(謎)
今のところは快適に動いています。
が、やっぱりSynergyが挙動不審。
いつもこんなシェルで起動させているんですが、
/usr/local/bin/synergys --config /etc/synergy.conf &
コレだと何故かClientから接続した場合にsynergysが落ちてしまう。(??)
バックモードで起動して原因特定しようとおもったら、-fオプション付けると、正常に動作する。さてはデバックさせない気か??
まぁ、とりあえず動作しているので、これはコレで良いとして、
デバック出力は普段から出しているのは邪魔なので、最終的に変更したシェルがコレ。
/usr/local/bin/synergys -f --config /etc/synergy.conf >/dev/null 2>&1 &
ちょwどんだけww
ツンデレシェルができてしまいました。
デバックしてーのか、したくねーのか、どっちだよ!!
って感じですな。

