タグ

ブックマーク / charsbar.hatenadiary.org (30)

  • YAPC::Asiaの資料、ほか - Charsbar::Note

    期間中にノートパソコンが2台お釈迦になったことをはじめ、個人的にはいろいろとorzなことの多かったYAPCでしたが、それはそれとして、ひとまず下記にスライドを上げてあります。フォント崩れとか起こしているようなので後日別の場所に別形式のファイルを用意するかもしれませんが、まずはご報告まで。 Practical Bug ReportingView more presentations from charsbar. Top Tens of 2008/2009View more presentations from charsbar. 今年こそは番5分前までスライドを書いているなんてことはやめて、もっとゆったり楽しもうと思っていたのですが、結局Jonathan Worthington氏とShawn Moore氏のスライドがそれぞれ2つに、Jesse Vincent氏のが1つ、公開されなかったYu

    YAPC::Asiaの資料、ほか - Charsbar::Note
  • WindowsでPerlスクリプトをダブルクリックで実行したいけど - Charsbar::Note

    一瞬でコマンドプロンプトが閉じて困るという人は、レジストリから該当のキーを探してこんな風にすればいいんでないかと。 cmd.exe /k C:\Perl\bin\perl.exe "%1" %* 注意:レジストリをいじる自信のない人はまねしないこと! cf: http://d.hatena.ne.jp/ktat/20090602/1243877242 追記:これをしてしまうとコマンドラインを常用している人にとってはヒストリーがきかなくなってしまうので、適材適所ということで。

    WindowsでPerlスクリプトをダブルクリックで実行したいけど - Charsbar::Note
  • HEConとShibuya.pmのスライド - Charsbar::Note

    26日に行われたHTTP::Engine Conference #1と27日に行われたShibuya.pm #10のスライドを置いておきます。 Mojoが$txを引き回しているワケ (HECon) Catalystの次はMojo? (Shibuya.pm) いずれもタイトルと内容はあまりマッチしていませんが、HEConの方は、1) かつてコンテキストの連れ回しをレジストリパターンで解決しようという話があったけど、AnyEvent::Mojoを活かすために立ち消えになった、2) いまは$selfのなかにコンテキストを突っ込むことで解決しようとしている、という話。Shibuya.pmの方は一連のCGI話のトリということで、当初ネタにしようと思っていたCatalystとMoose、HTTP::Engine、Mojoをめぐるドロドロした話はすっ飛ばして、昔ながらのベタなCGIも、古くはCGI.pm

    HEConとShibuya.pmのスライド - Charsbar::Note
  • Mojoを使ってみた - Charsbar::Note

    ちょろっと使ってみたのでレポートしてみる。 MojoというのはCatalystの原作者sriことSebastian Riedelが最近つくっている「ウェブアプリケーションフレームワークの土台をつくる」フレームワークのこと。人いわく「rubyにおけるrack、pythonにおけるwsgiに相当するもの」だそうですが、その評価の是非はさておき、大きな特徴をいくつかあげると、 インストールはきわめて簡単 「やってみたかったから」再発明 RFC大好き コンテキスト持ち歩き系 というところでしょうか。国内では同じような趣旨のHTTP::Engineが開発されていますが、Mooseをバリバリ使っているHTTP::Engineに比べて、Mojoはアクセサからなにから、ほとんどのコードを自分で再実装しているので、インストールに困るような依存モジュールは(ほとんど)なし。ぶっちゃけ「さくらのレンタルサーバ

    Mojoを使ってみた - Charsbar::Note
  • Log::Dump - Charsbar::Note

    名前の通り、基的にはデバッグ用のロガーなのですが、useするだけでlogなどのメソッドがはえて、オブジェクトだろうとなんだろうと気にせず放り込めるというの(だけ)が売り(よくある $c->log->info("message") のようなAPIはテスト用のモックをつくるときとか、ロガーを切り替えたくなったときとかに面倒なことになりがち)。 SYNOPSISはこんな感じ。 use Log::Dump; # クラスから直接log __PACKAGE__->log( error => 'foo' ); # オブジェクトからももちろん使える sub some_method { my $self = shift; # 引数が複数にわかれていても、オブジェクトまじりでも無問題 # (必要ならData::Dumpでダンプする) $self->log( info => 'my self is ', $s

    Log::Dump - Charsbar::Note
  • Mojoの遅さはたいした問題じゃありません - Charsbar::Note

    わかっている人にとってはごく当たり前の話ですが、あらためて明記しておきましょう。 最近ここで取り上げたMojoが、見ようによっては存外遅いというベンチマークが公開されました。また、MojoのライバルともいえるHTTP::Engineとの性能比較も紹介されています。 その結果については、とやかく申しますまい。CGIとしてのfairさはさておき、(mod_phpなどの)常駐モジュールと比べて(perlが、ではなく)CGIがあきらかに桁ひとつ遅いというのは、十年も前からわかっていたこと。いかに小手先のテクニックを駆使したところで、その事実が覆ることはこの先もないと言ってよいでしょう。 でも、MojoやHTTP::Engineにとって、大事なのは、そういうことではないはずですよね? 従来のCGI.pm(あるいは、より速いCGI::Simple)を使った解は、いざユーザが増えてより速いFastCGI

    Mojoの遅さはたいした問題じゃありません - Charsbar::Note
  • 遅ればせながらYAPC::Asia 2008のあれこれ - Charsbar::Note

    発表資料 今年はパワポにテキストを流し込んで整形する時間がなかったので、Text::Hatenaで整形したものをWin32::IE::SlideShowで表示していました。YAPCのWikiやSlideShareの方には後日PDF化したもの(のリンク)をアップするつもりですが、とりあえず素のテキストをさらしておきます。 Web is not the only one that requires frameworks Everyone wanna know where you belong (LT) メインの方は、先日のCatalystConのリベンジというわけで、思い切り内容を削って、めいっぱいゆっくり話してみたわけですが、やっぱりこういうのは落ち着きませんね。最後の方、あえてCPANやPPMのような一般的な例をあげてありますが、実際はGames::NonogramとかGames::Sud

    遅ればせながらYAPC::Asia 2008のあれこれ - Charsbar::Note
  • Catalyst Conference #1 - Charsbar::Note

    今回は竹迫さんのリクエストもあったのでなるべくゆっくりめに話そうと思うには思っていたのですが、結局だれだったかが「時間が長くなっても話のペースは変わらんと思う」と予言していた通りになってしまったのが申し訳ないというかなんというか。 すべては当日の朝、スライド書いている最中に 10:20 <t********> Catalyst 年表とかほしいとふとおもいますた 10:20 <t********> 2005年 sri 独裁政権時代 10:20 <t********> とか、そんな感じの。という天の声を聞いて、ちょろっとだけ差し替えるつもりが100%増量になってしまったのが敗因、ということにしておきたいと思います。 なにはともあれ資料はこちら。 http://www.tcool.org/talks/catalyst_conf1.pdf それから、今回自重したCatalystで軽量版のJifty

    Catalyst Conference #1 - Charsbar::Note
  • ActivePerl 5.10用のリポジトリ - Charsbar::Note

    暫定的にhttp://ppm.tcool.org/archives510/で公開しています。最終的にはhttp://ppm.tcool.org/archives/の方に統合予定。現時点で831個のパッケージを登録してありますが、Date-CalcとMath-Pariがうまく入らないせいで芋蔓式に登録できていないパッケージも多いので、実用性は期待しないように。PlaggerとかJiftyとかは入っていません。Catalystまわりはそこそこ使える状態になっていますが、バリデータとか認証まわりに抜けているものが多いです。 それでもいいという方は、まだpackage.lstとかpackage.xmlを用意していないので、リポジトリを登録したら、コマンドラインから ppm repo sync --max-ppd 1000 (--force)を実行して、強制的にPPD一覧を更新してください。 あと、

    ActivePerl 5.10用のリポジトリ - Charsbar::Note
  • さくらインターネットでCPAN - Charsbar::Note

    さくらの共有サーバにCPANを、という話。しばしばotsuneさんの記事が引き合いに出されるのですが、うちのとは違うのか、そのままだとうまくいかんのよねーという部分があるのでちょっと書いておく。 http://www.otsune.com/bsd/tips/usercpaninstall.html さくらのシェルに入ったら、何の準備もしなくていいから、まずはCPANシェルを起動する。これまで何もしたことがなければCPAN 1.76の初回起動時の質問が出てくるので、適当に回答。肝の部分はcpan_homeを指定する部分と(これ、いまのさくらなら「/home//.cpan」というのが自動的に用意されるはず)、「Parameters for the 'perl Makefile.PL' command?」の部分。ここ、otsuneさんの記事では「PREFIX=~/local」以外にもいろいろ書い

    さくらインターネットでCPAN - Charsbar::Note
  • On Module::New - Charsbar::Note

    昨日のSoozy Con4で発表したスライド。Text::Hatenaで加工していたのでここに(ほとんど)そのまま貼り付けておきます。 2008/01/31追記: 最新版はこちらから。近日中にアップの予定はありますが、まだCPANにはあがっていません。 http://svn.coderepos.org/share/lang/perl/Module-New/trunk Soozy Conf #4 Jan. 27, 2008 Kenichi Ishigaki (charsbar) はじめに 今日は日語オンリー Win32::IE::SlideShowとCharsbotというIRCボットでプレゼン動かします Module::Newとは? こんなの。 11:44 <t********> o 11:45 <t********> なんか妙なのが。 11:45 <t********> pmsetup

    On Module::New - Charsbar::Note
    pmakino
    pmakino 2008/02/10
  • いまさらながらWindows上でのPlaggerのインストールについて

    わかっている人にとっては耳タコな話でしかないわけですが、最近またppmを使ってもインストールできないと嘆く人が増えたので簡単に。 1) ActiveStateやtheoryx5のリポジトリは、少なくともPlaggerをまともにインストールしたかったら消しましょう(うちのを追加するだけではだめです) 理由はいろいろですが、これだけで問題の八割は解決します。 もう少し詳しく言うと、 1-1) PlaggerのMakefile.PLはある意味非常に変態的なので、標準的なPPM::Make経由でパッケージングしているよそのリポジトリが提供しているPlaggerパッケージをインストールしても十分な依存モジュールはインストールされません。 1-2) 同じ理由で、Math-BigInt系のいくつかのモジュールもMakefile.PLに変な仕掛けがしてあるので、よそのを経由するとうまく入らないか、入れるの

    いまさらながらWindows上でのPlaggerのインストールについて
  • WWW::Mixi::Scraper - Charsbar::Note

    いささか出遅れた感があるけれど、Web::ScraperやXPathの練習代わりに書いてみた。使い方はこんな感じ。 use WWW::Mixi::Scraper; my $mixi = WWW::Mixi::Scraper->new( email => 'foo@bar.com', password => 'password' ); my @list = $mixi->parse('http://mixi.jp/new_friend_diary.pl'); my @list = $mixi->new_friend_diary->parse; my @list = $mixi->parse('http://mixi.jp/new_bbs.pl?page=2'); my @list = $mixi->new_bbs->parse( page => 2 ); my $diary = $mixi-

    WWW::Mixi::Scraper - Charsbar::Note
  • Perlでマルチバイトなファイル名を扱えないというFUD - Charsbar::Note

    UTF8文字列をファイル名として扱った場合にprint等と違ってwarningが出ないのは仕様としては不思議だな、と思いますけれど。 http://asakura.g.hatena.ne.jp/asakura-t/20070511/1178859381 不思議でもなんでもない。CP932環境では文字化けして見えるというだけで、ファイルそのものは正しく扱えていますもの。だから、たとえばWindows上でこんなスクリプトをutf8で書いて実行すると、ファイル名こそ「繝輔ぃ繧、繝ォ.txt」なんてなるけど、ファイルの中にはきちんとhogeという文字列が保存されている。浅倉さんが期待した通りの結果にならないからって、仕様的に間違っていない動作をしているプログラムを責めるのは筋違いだ。 #!/usr/bin/perl use utf8; open my $fh, '>', 'ファイル.txt'; p

    Perlでマルチバイトなファイル名を扱えないというFUD - Charsbar::Note
  • どこで混乱しているのかわかりませんが - Charsbar::Note

    Perlが扱うUTF8文字列なファイル名はWindows(あるいはそこで動くアプリケーション/ツール)にとっての「正常な」ファイル名ではありません*1。少なくともPerl以外のアプリケーション/ツールで作った「ファイル.txt」はお互いに開けます*2がPerlでは開けませんし、逆もまたしかりです。 http://asakura.g.hatena.ne.jp/asakura-t/20070511/1178888051 以下、基的に全部CP932環境のWindowsでの話。 1) こういうスクリプトをCP932で書くとWindows環境では「ファイル.txt」と読めるファイルが出来ます。 open my $fh, '>', 'ファイル.txt'; print $fh 'test'; close $fh2) こういう風に書いても同じです。 use utf8; open my $fh, '>',

    どこで混乱しているのかわかりませんが - Charsbar::Note
  • YAPC::Asiaのスライドを公開しました - Charsbar::Note

    家のサイトはいろいろ改装中なのでファイルだけ置いておきます。 PDF版 PPS版 いちおう日語はつけてありますが、それでもまだ注釈が足りない部分はあると思います。特に最後のNAPCまわりの話については昔のNapsterがどう構成されていたかとかの背景知識がないとぜんぜんピンとこないんでないかと思いますが、その辺はまたそのうち機会があれば、ということで。

    YAPC::Asiaのスライドを公開しました - Charsbar::Note
  • ppm.tcool.orgで411エラーが出る件 - Charsbar::Note

    ppm.tcool.orgについて、 Plagger迷い人 『リポジトリを登録すると >packlist...status 411 と表示されリストがうまく取得できていないようです。 ちなみに、ActivePerl-5.8.8.819です。 http://d.hatena.ne.jp/charsbar/20060820/1156040481#c1157376346 というコメントをもらったんですが…… まず、サブマシンに最新版(build 819)をインストールして問題は確認しました。ppmのバージョンが4にあがって「なにこれ別物?」というくらいに様子が変わっていたのでどうしたものかと思ったのですが(ppmGUIになっていたなんてはじめて知りました)、暫定的な対処法として、 ppm rep add tcool http://ppm.tcool.org/server/ppmserver.c

    ppm.tcool.orgで411エラーが出る件 - Charsbar::Note
  • ppm for Plagger - Charsbar::Note

    tcool.orgをホストしてもらっていたサーバの借り換え時期が迫っていたので、これを機にあちこちに分散していたものを少し整理しようと思って、さくらの専用サーバを借りることにしました。まだ完全に移行し切れていないので不安定な部分もあるかもしれませんが、とりあえずコンテンツ類をSubversionで更新できるのは楽でいいですね。 で、せっかく自由に遊べる環境ができたので、一念発起してWin32用のppmリポジトリを用意することにしました。Plagger Hackathonあわせでつくったので現状Plaggerやその依存関係の一部くらいしか入っていませんが、XML::LibXMLやEncode::Detectがうまく入らなくてお悩みの方はお試しくださいませ。 リポジトリの登録は、コンソールからppmを立ち上げたあと、 rep add tcool http://ppm.tcool.org/ser

    ppm for Plagger - Charsbar::Note
  • CharsbarNote - PlaggerをWindowsにインストールするときの注意点

    しげふみさんのところをはじめ、ppm経由のインストールメモはなるべく目を通すようにしているのですが、どこを見てもだいたい大きな落とし穴が残っているのであらためて明記しておきます。 ppm.tcool.org経由でインストールしたPlaggerがうまく動かない場合、assetsの罠を除けば、その原因はたいていActiveStateないしtheoryx5のリポジトリがtcoolのリポジトリより上にあるせいです。 つまり、 C:\>ppm ppm> rep add http://ppm.tcool.org/server/ppmserver.cgi?urn:PPMServer Repositories: [1] ActiveState Package Repository [2] Autonamed 1 ppm> とか、 C:\>ppm ppm> rep add tcool http://ppm.

    CharsbarNote - PlaggerをWindowsにインストールするときの注意点
  • PPM 4.x問題その後 - Charsbar::Note

    ActivePerl 5.8.8 build 818以降についてくるGUI版PPMの件、先日theoryx5リポジトリの中の人が新しいPPM::Makeをリリースしてくれたのでいろいろテストを繰り返しているのですが、 最新版のPPM::MakeでつくったppdファイルならPPM 4のGUIからでも依存関係を正しくたどってくれる(旧版のPPM::MakeでつくったppdファイルをそのままPPM 4で読もうとしても依存関係をうまく認識してくれない) 最新版のPPM::Makeはpackage.lst/package.xmlというファイルをつくれるようになった。これは、なければないでPPM 4側がよしなにしてくれるんですが、用意しておくとPPM 4が検索をするときに元データとして使ってくれる。 ところがこのキャッシュ、なかなかのくせもので、うまく動いているときはいいんですが、壊れたパッケの情報を

    PPM 4.x問題その後 - Charsbar::Note