タグ

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

  • モダンPerl連載第39回 - Charsbar::Note

    報告が遅くなりましたが、今回はsoozy.con/kamakura.pm開催記念ということでめずらしく作者が日人のネタがメインになっています。当初は年末年始に原稿を書いて、年明け早々に公開、のつもりでいたのですが、Tengの開発が格化したうえカンファレンスまでやるということになったので、締め切りを半月遅らせてもらったのでした。分量が分量なのでたいしたことを追記できたわけではありませんが、今回4系統のサンプルを書いてみて、それぞれ特徴があっておもしろいなあと思ったことです。個人的には生DBIと、以前ならJifty::DBIを使っていたものについては少しずつData::Modelに乗り換えているところ。Tengは「天狗」からということになっていますが、オジサンにはテレサ・テン(Teresa Teng)のTengに見えて仕方ないのよね――というネタは、さすがに編では自重しました。マッパは「

    モダンPerl連載第39回 - Charsbar::Note
  • 2011年のPerl - Charsbar::Note

    すでに多くの方にご覧いただいているようですが、gihyo.jpの新春特別企画のひとつとして「2011年のPerl」という記事を書かせていただきました。書きそびれたこと、あえて書かなかったこと、いろいろありますが、お正月用の小ネタとして気軽に読み流していただければさいわいです。 http://gihyo.jp/dev/column/newyear/2011/perl-prospect 以下、多少補足しておきますと…… Perlのリリーススケジュールについては、5.13系列のPorting/release_schedule.podに記載されています。いまのところPerl 5.14のリリース日は最短で2011年4月8日頃になりそうです。 書き方がわかりづらかったですが、最新版の更新履歴はperldeltaに、過去の更新履歴はperl(バージョン)deltaに書いてあります。いまCPANにあがって

    2011年のPerl - Charsbar::Note
    yappo
    yappo 2011/01/06
    唯一の日本ネタがそれかw
  • DBD::SQLite 1.30_02 - Charsbar::Note

    あと、先日リリースしたDBD::SQLite 1.30_02の変更点について。 DBD::SQLiteはこれまで DBIが用意した枠組みの範囲内でのトランザクションを利用している(AutoCommit/begin_work) fork()などを利用して並列性を高めている 読み書きを平行して行っている といった条件が重なったときにトランザクションがデッドロックすることがある、という問題を抱えていました。最小限の再現コードはこんな感じになります。 use strict; use warnings; use DBI; my $pid = fork(); if ($pid) { do_transaction(); } else { sleep 1; do_transaction(); exit; } unlink 'test.db'; sub do_transaction { my $dbh =

    DBD::SQLite 1.30_02 - Charsbar::Note
  • モダンPerl連載第25回 - Charsbar::Note

    前々回、前回からの続きで、今回はモジュールのひな形をつくる話を取り上げてみました。 Module::Setupの件について補足しておくと、事前調査の時点ではforce installしたあともホームディレクトリまわりの処理がこけててうまく動かなかった、という問題があったのですが、その後メインマシンでテストしたときにはどういうわけか問題が再現せず。うちのHOME環境変数の問題なのか、あるいはユーザ権限のせいか(メインマシンではAdminレベルで入っているけど、事前調査のときは違っていたかも)、それともOSのバージョンその他の理由があったのかはまだ追跡していないのですが、とりあえずテストについてはYappoさんにパッチをお送りして新しいのをリリースしていただいているのでいまは動くようになっています(Module::Collectの方もgithub版をリリースしていただけるとありがたく >Yap

    モダンPerl連載第25回 - Charsbar::Note
    yappo
    yappo 2010/02/09
    Module::Collect shipit しましたー
  • Test::系のモジュールを書いている人は要注意 - Charsbar::Note

    詳細はuse Perl;の記事とコメントにある通りですが、最新の開発版Test::Moreでサブテストの導入が始まっています。これをサポートするためにTest::Builderに修正が加わったため、Test::Builder->newがシングルトンを返すことを前提にしているテスト系モジュールは今後期待した動作をしなくなる可能性があります。 http://use.perl.org/~Ovid/journal/39193 dagolden氏が用意したfalse-positiveなものを含むリストによると、あぶないのはこのあたり。 GFUJI/Test-LeakTrace-0.08.tar.gz GFUJI/Test-LeakTrace-0.09.tar.gz KOGA/Test-Perl-Metrics-Simple-0.1.tar.gz MIYAGAWA/Test-Synopsis-0.04

    Test::系のモジュールを書いている人は要注意 - Charsbar::Note
    yappo
    yappo 2009/07/01
    やべぇ、やらなきゃ
  • DBD::SQLite 1.20 - Charsbar::Note

    長らくバグが放置されたままだったDBD::SQLiteですが、先日AliasことAdam Kennedyがメンテナを引き継いだのを受けて、いま何人かのCPAN Authorsが集まってごりごり直しています。tokuhiromさんのところでパッチが紹介されていたもののように、有名どころのバグはあらかた潰し終わって、これからSQLiteのソースをamalgamationに変えたり、unicodeまわりのバグを直したり、という作業が行われる予定なのですが、とりあえず一区切りということで、正式版の1.20が出ています。 Class::DBI、Jifty::DBI、Rose::DB、Data::ObjectDriverなどをお使いの方は、ぜひアップデートしてみてください(以上のものは、私のところで全部テストが通ることを確認済みです。ほかにテストしておいてほしいものがあったらご一報をば)。 追記:DO

    DBD::SQLite 1.20 - Charsbar::Note
    yappo
    yappo 2009/04/08
  • Mojoの遅さはたいした問題じゃありません - Charsbar::Note

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

    Mojoの遅さはたいした問題じゃありません - Charsbar::Note
  • Mojoを使ってみた - Charsbar::Note

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

    Mojoを使ってみた - Charsbar::Note
  • WWW::Mixi::Scraper 0.19 - Charsbar::Note

    一ヶ月ほど前にYappo++さんがEchoまわりを整備してくださっていたにもかかわらず、もろもろの事情でアップしそびれていたのですが、先ほど微調整したものをCPANにアップしました。これまでのtrunk版とは返り値の内容が変わっているので、echo bot/clientを開発・利用されている方はお手数ですが修正をお願いします。変更点としては、 view_echoの返り値は、 { link => 'http://mixi.jp/view_echo.pl?id=xxxx&post_time=xxxx', id => 'xxxx', time => 'yyyymmddhhmmss', name => 'username', comment => 'comment', }の配列リファレンスではなく、ハッシュリファレンスそのものに。 (list|recent|res)_echoの返り値は、 { co

    WWW::Mixi::Scraper 0.19 - Charsbar::Note
    yappo
    yappo 2008/09/08
    YATTA! charsbar++
  • 「輝け!全日本最強 CPAN Author 決定選手権 2007」完全版 - Charsbar::Note

    いささか遅くなりましたが予告通り完全版の一覧を掲載します。このデータは基的にYAPC直前、2008年5月15日時点でのものですが、抜けが判明したworemacxさんの分については先ほど目視で抽出しました。ほかの方のYAPC後の更新については反映されていませんのであしからずご了承ください。 ちなみに過去の選手権の結果はnipotanさんのサイトに掲載されています。 2006年度 2005年度 というわけで、あらためてなんちゃらかんちゃら出てこいや〜、とな。 モジュール数5個以上の部 過去二回の選手権ではモジュール数による分類はなかったのですが、この一覧のもとになっているCPANTSの仕組み上、モジュール登録数の少ない新しいAuthorの方が有利になる側面があるので、今回は家CPANTSの分類にしたがってランキングを分けました。YAPC当日に発表したのはこのグループのベスト10です。表は、

    「輝け!全日本最強 CPAN Author 決定選手権 2007」完全版 - Charsbar::Note
    yappo
    yappo 2008/05/22
    mikioさんがアップを始めたもようです
  • MVC今昔 - Charsbar::Note

    ウェブアプリをどう開発するのが正しいか、というのはひとまずおきます。 MVC「モデル・ビュー・コントローラ」って、いまはもう誤解の方が広まりすぎて大元の意味が忘れられているんじゃないかと思いますが、誕生した1979年当時は、語順にしっかり意味があったんですね。 モデルは、コンピュータが生のデータを扱うところ。 ビューは、モデルからもらってきたデータを取捨選択して、人間がわかるように直すところ。 コントローラは、その人間にわかるように直したデータを、今度は出力デバイスが理解できる生のデータに直すところ。 逆もしかりで、 コントローラは、入力デバイスから生のデータをもらうところ。 ビューは、コントローラからもらってきたデータを、人間がわかるように直すところ。 モデルは、ビューからもらったデータを、コンピュータが理解できる生のデータに直して更新するところ。 しかも、ただ機能を分割するだけでなく、

    MVC今昔 - Charsbar::Note
    yappo
    yappo 2008/03/07
    MVC戦争に発展したら面白そう
  • DateTimeX::Web 0.01 - Charsbar::Note

    いい加減DateTimeまわりのモジュールを列挙するのがいやになったので、工場を書いた。 use strict; use warnings; use DateTimeX::Web; my $dtx = DateTimeX::Web->new( timezone => 'Asia/Tokyo', on_error => 'ignore' ); my $dt = $dtx->from( year => 2008, month => 2, ... ) || $dtx->now;などとすると、タイムゾーンとかをよきにはからったDateTimeオブジェクトが出てくる寸法。 $dtx->for_mail( $dt ); # Fri, 29 Feb 2008 20:57:00 +0900 $dtx->for_mysql; # 2008-02-29 20:57:00 という感じで日時の文字列をつくったり、

    DateTimeX::Web 0.01 - Charsbar::Note
    yappo
    yappo 2008/02/29
    おおお
  • CatalystやDBICのプラグイン/コンポーネントの継承の話 - Charsbar::Note

    NEXTやClass::C3に気持ち悪い一面があるのは事実だけれど、いくらフックポイントを用意しても、空気を読まずにフックポイントの用途を意図的/非意図的に誤解して想定外のことをすれば気持ち悪いことになってしまうのは変わらない。その辺はたとえばフックポイントが豊富に用意されているPlaggerでSmartFeed系のプラグインを使ったあとにソート/フィルタ系の野良プラグインを使おうとしてハマるのといっしょ。 それでもPlaggerの場合はmiyagawaさんがOKしたもの以外はtrunkに入れず、野良の開発陣まで含めてみんな勝手にプラグインをCPANにアップしたりしないという統制がきいていたからCPAN経由での問題はあまり起こらなかったし、ときおり野良プラグインで問題が起こっても「野良だからしょうがないよね」という諦めがあったけれど、Catalystの場合はみんなが玉も石もとりあえずCPA

    CatalystやDBICのプラグイン/コンポーネントの継承の話 - Charsbar::Note
  • Jipotter - Charsbar::Note

    にぽたんさんが「最近の Twitter との付き合いかた」で紹介していたTwitterクライアントに触発されてtokuhiromさんがSledgeで書いてCodeReposで公開したNipotterに触発されてJiftyベースのTwitterクライアントをでっちあげました。チェックアウトはこちらから。 svn co http://svn.coderepos.org/share/lang/perl/Jipotter/trunk 内容的にはtokuhiromさんのNipotterをほとんどそのまま移植しただけなので、いまのところまだJiftyらしいアプリにはなっていませんし、にぽたんさんのに比べると機能的にもかなり見劣りしますが、JiftyにしろJifty::DBIにしろTemplate::Declareにしろ(パッケージのテストファイル以外に)オープンになっているコード例は少ないので、その辺

    Jipotter - Charsbar::Note
  • WWW::Mixi::Scraper 0.07 - Charsbar::Note

    昨日のリニューアルに対応した0.07をCPANにアップしました。手元のlive testsは全部パスしていますが、環境によってはまだうまくとれないものがあるかもしれません。おかしなところを見つけた方はcodereposにコミットするか、立場上おおっぴらにコミットするわけにはいかないお方はCPANのメールアドレスあたりにパッチを投げていただけると助かります。 PlaggerでCustomFeed::Mixiを使っていた方は、代替品のCF::MixiScraperもあわせてどうぞ(ネームスペースの問題とかあるのでまだ家にはコミット申請していませんが、どうしましょうね)。 #追記:家にコミットしました。

    WWW::Mixi::Scraper 0.07 - Charsbar::Note
    yappo
    yappo 2007/10/02
  • WWW::Mixi::Scraper in CodeRepos::Share - Charsbar::Note

    WWW::Mixi::Scraperをうちのリポジトリからyappoさん管理のCodeRepos::Shareのリポジトリの方に移しておきました。mixi側の変更で動かなくなった箇所が出たとか新しいプラグイン書いたとかありましたらぜひコミットしたってください。

    WWW::Mixi::Scraper in CodeRepos::Share - Charsbar::Note
  • CommitBitの使い方 - Charsbar::Note

    CommitBitというのは、JiftyベースのSubversionリポジトリ管理ツール。リポジトリ管理ツールといってもTracやSVN::Webのようなコミットを管理するものとは違って、リポジトリにアクセスできるユーザのメールアドレスとかパスワードを管理するもの。実際の動作例はCommitBitのサイト自体をご覧いただくとして、一年ほど前に登場したときちらと触ったきりだったのですが、AliasことAdam Kennedy氏が春先にリポジトリをぶっ壊したとき、最新版のJiftyだとCommitBitが動かないと嘆いていたのは聞いていたので、なにか敷居の高い部分でもあるのかなとは思っていたのです。 が、実際に試してみたところ、設定さえしてしまえば、Windows上でもわりとあっさり動くのですね。 ただ、その設定が必要な項目がいささかわかりづらいので、以下、「とりあえず動く」というところまでの

    CommitBitの使い方 - Charsbar::Note
  • Plagger::Plugin::CustomFeed::MixiScraper - Charsbar::Note

    注意:現在CF::MixiScraperはPlagger家のリポジトリに入っています。利用される方はかならずそちらを参照してください。 http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/CustomFeed/MixiScraper.pm きちんと試してないけど、とりあえずこんな感じで。WWW::Mixi::Scraper 0.06以上が必要。 package Plagger::Plugin::CustomFeed::MixiScraper; use strict; use base qw( Plagger::Plugin ); use DateTime::Format::Strptime; use WWW::Mixi::Scraper; use Time::HiRes; our $MAP = { Friend

    Plagger::Plugin::CustomFeed::MixiScraper - Charsbar::Note
  • Text::Hatena 0.20は要注意 - Charsbar::Note

    I uploaded Text::Hatena 0.20. It's quite new version of Text::Hatena. I rewrote the whole code using Parse::RecDescent and Regexp::Assemble. Number of modules were reduced to 2 from 47 files. Line of codes where changed from 2600 lines to 600 lines. My benchmark marked 300-400% higher performance than ver.0.16. I also removed some syntaxes which were specific to Hatena Diary. Now, API for parsing

    Text::Hatena 0.20は要注意 - Charsbar::Note
  • 1