日向夏特殊応援部隊

俺様向けメモ

Perl

Catalyst Conference #1を開催します->締め切りました

詳しくはCodeReposのhttp://coderepos.org/share/wiki/CatalystCon1からどうぞ。 開催日はwikiにも書いてありますが4/22(火)になりました。会場は30人くらいまでしか入れないので、参加申し込み多数(!?)の場合は先着順と言う事でお願いします。ちなみに参加…

DBIx::Class::Service Released

まだCPANに反映されて居ないと思いますが、DBIx::Class:Serviceと言うモジュールをリリースしました。 /lang/perl/DBIx-Class-Service/trunk (CodeRepos) DBIx-Class-Service-0.02 - Aggregate DBIC processes between multiple tables. - metacpan.org どん…

GraphViz::ISA::MultiでDBICのクラスツリーを作る

もうすぐ送別会なのでソースだけ。 画像もうpりました。 とてもじゃないけど印刷出来ないグラフが表示されます。>< ソース #!/usr/bin/perl use strict; use warnings; use Module::Find; use GraphViz::ISA::Multi; setmoduledirs("./lib"); my @modules …

DBIx::Class SourceCode Reading

Class::C3::Componentised Source Code Reading - Yet Another Hackadelic DBIx::Class::Componentised Source Code Reading - Yet Another Hackadelic Class::Accessor::Grouped - Yet Another Hackadelic を予備知識としてDBIx::Classを読み解きます。 も…

Class::Accessor::Grouped

Class::Accessor::GroupedはDBIx::Classの親クラスの一つです。*1 DBIx::Classを理解する上で避けれないので調べてみました。 要約 簡単に言えばあるクラスのインスタンスが他のクラスのインスタンスを持つような場合に、その他のクラスのアクセサへのショー…

DBIx::Class::Componentised Source Code Reading

d:id:ZIGOROu:20080317:1205779889 の続きです。 DBIx::Class::Componentisedとは 恐らくDBIC関連のdistにおける基底クラスだと考えて良いと思います。 DBIx::Classはこのクラスを継承していて、DBIx::Class::Componentisedは前回説明した、Class::C3::Compo…

Net::OpenID::Consumerでsregを試す

ふと思い立ってOpenIDが使えるちょっとしたサービスを作ってみようかなと思っています。 で、その中でsreg*1を使いたかったのでNet::OpenID::Consumerのopenid2 branchで出来るかどうか調べてみました。 その前にsregについて具体的に説明 The request param…

DBIx::Class::Schema::Loaderの手動スキーマ生成、初心者向けチュートリアル

と言う訳で自分なりに色々調べてみた。 テスト用データベース定義 CREATE TABLE `User` ( `user_id` bigint(20) NOT NULL auto_increment, `name` varchar(255) character set latin1 default NULL, `created_on` datetime default NULL, `updated_on` datet…

DBICx::DeployでSchema->Database

DBICx::Deployが便利す。 これは既にある既存のSchemaクラスからデータベースを構築(deploy)する物です。元々MySQLでテーブル作ってからDBIx::Class::Schema::LoaderとかでSchema生成してあったとして、 それをSQLiteで手元でちょっとテストとかそういうのに…

Class::C3::Componentised Source Code Reading

DBIC関連の基底クラスとも言えるモジュールがClass::C3::Componentisedです。C3ベースのコンポーネント化されたクラスモジュールを作る際のベースですね。 1.0003をテキストとします。 load_components() sub load_components { my $class = shift; my $base…

DBICのTransactionとAutoCommit

追記(2008-03-16T02:21:32+09:00) ごめんなさい、要約が超間違えてました>< 要約 transactionしたい場合はAutoCommit => 1としてtxn_doすると幸せになれます。 解説 しようかと思ったけど、同様の現象で既にきちんと解説してる人が居るのでそちらにリンク…

Catalyst::Controller::Atompubのdispatch、Slugヘッダとか

Atompubの勉強始めました。 Catalyst::Controller::Atompubについて こちらはid:teahut*1さん自身がPerl(Catalyst)でAtompubサーバーを作る解説記事を書かれていますので、そちらを見ると大体分かると思います。で今の所、分かった事とか困ってる事とか書い…

Digest認証メモ

Digest認証をPerlで書いてみる私的なメモですよ。 Digest認証とは Digest認証 - Wikipedia ダイジェストアクセス認証スキーム 辺りを読めば分かります。説明は割愛。 サーバー側で事前に行うべき事 まずはブラウザのパスワード入力プロンプトに出て来るrealm…

XML::LibXML::XPathContextで良くやるミス

自戒の為にメモっとく。 <doc xmlns:foo="http://foo.com/" xmlns="http://bar.com/"> <x/> <foo:x/> </doc> なんてxmlがあるとして、 #!/usr/bin/perl use strict; use warnings; use XML::LibXML; use XML::LibXML::XPathContext; my $doc = XML::LibXML->new->parse_file("test.xml"); my $xpc = XML:…

Template-Toolkitでマルチバイトな話

先に言っておくと、hide-kさんのまとめが分かりやすいです。 http://blog.hide-k.net/archives/2007/03/catalyst_2.php 最もCatalystを使う際にと言う事ですが。 utf8フラグを立てないでTTを使う場合 ソース自身はutf8で書くんですけど、 #!/usr/bin/perl us…

Japanese Mozilla HackersなブログのフィードをOPML化

実は、ニッチなJavaScriptブログと言う位置づけで、Ci.nsIZIGOROu - Mozilla 拡張機能勉強会と言うブログもやってる訳ですが、 最近こんなエントリを書きました。 Japanese Mozilla Hackers - Ci.nsIZIGOROu - Mozilla 拡張機能勉強会 で見かけたブクマコメ…

Nagios::Plugins::Memcached 0.02 Release

昨日、ちょっと修正して0.02をリリースしました。 Nagiosのプラグインでmemcachedを監視するコマンドです。*1監視項目は、 接続できるか レスポンスタイム キャッシュサイズ キャッシュヒット率 の4つです。 接続とレスポンス 指定時間内に接続出来るかどう…

WWW::Mechanize付属のmech-dumpが便利な件

Scrapingは余りやらないんですけど、いざやる場合にフォームのパラメタとか調べるのは面倒です。そんな時にWWW-Mechanizeに付属のコマンドのmech-dumpを使うと便利です。 サンプル 例えば、Pathtraqのトップページなら、 $ mech-dump --forms http://pathtra…

堅牢なパスワードを強制するテクニック

やっぱりサービス側で堅牢なパスワードをユーザーに強制する仕組みが無いと問題があるサービスと言うのはたくさんあるって事で、Perlで出来る限り簡単にそういう仕組みを作れないかなと。幾つかピックアップしてみました。 Data::Passwordモジュールを使う …

Term::ANSIColorでカラフルなシェルを作るたった一つの方法

もはや何も言うまい。 $ perl -MTerm::ANSIColor=:constants -e 'print BLUE BOLD ON_WHITE "bold blue", RESET . "\n";'

Time::Progressでプログレスバーを実現する。

ひょっとしたら役に立つかもしれないけど、基本的には無駄な知識です。あしからず。 サンプルソース #!/usr/bin/perl use strict; use warnings; use Time::Progress; my @actions = qw(setup prepare accept finalize); my $progress = Time::Progress->new…

Shibuya.pm Technical Talk #08 - Advanced MogileFSの資料を公開します

ダウンロード shibuya_pm_tt08_advanced_mogilefs.ppt 解説 今回はMogileFSのpluginの作り方にフォーカスを当てた内容になっています。 MogileFSのpluginは、 DB Schemaをplugin用に定義する global_hookにコールバックを定義する 新しいcmdをquery workerに…

MogileFSのplugin機構のメモ (1)

以前書いた記事、d:id:ZIGOROu:20070626:1182850060 にてMogileFS::Client::FilePathsと、この記事では思い切り書き忘れてましたけど、MogileFS::Plugin::MetaData, MogileFS::Plugin::FilePathsに関する雑多なメモです。詳しくは来月上旬にあるShibuya.pmに…

SVG::Convertをrelease

昨日リリースしました。 何をやるモジュールか 一応汎用的なSVGからのconvertモジュールと言う位置づけにしたいと考えていますが、現時点ではXAMLへの変換しか出来ません。 元ネタ Having fun with XAML (Silverlight) and SVG 使い方 use SVG::Convert; my …

mogadmコマンドが多機能になってた件

全然気づかなかったんだけど、MogileFS-Utils-2.12にて下記の機能がいつの間にやら使えるようになっていました。w stas MogileFSの状態表示 slave Slaveデータベースの管理 fsck File systemの監視workerの管理 settings 動的な設定値管理 それとdeviceにmo…

Module-StarterをModule-Installに対応させる

Module-Starter-1.75 - a simple starter kit for any module - metacpan.orgって今のバージョンは1.42で、2005年にリリースされた物です。DEVELOPER RELEASEとして1.43_01が出ている物の、一向に更新が無いままです。1.43_01では確かModule::Install対応し…

ins,del要素のdatetime属性が書けない人の為のワンライナー

僕です。orz... $ perl -MDateTime::Format::W3CDTF -MDateTime -e 'print DateTime::Format::W3CDTF->format_datetime(DateTime->now->set_time_zone("Asia/Tokyo")) . "\n";' 2007-08-24T19:46:41+09:00DateTime::Format::W3CDTFで出来るお!

URIとURI::Escapeのurlencodeについて (2)

d:id:ZIGOROu:20070824:1187943710の続き。ちなみにそのブクマコメントで、個人情報もネタにするハム一さん事、id:nipotanさんが答えを書いてました。 調べちゃったお!!!>< URIモジュールの場合 httpと言うschemeの場合は、あれこれ経てURI::httpオブジ…

URIとURI::Escapeのurlencodeについて (1)

ソース #!/usr/bin/perl use strict; use warnings; use URI; use URI::Escape qw(); local $\ = "\n"; my $uri = URI->new("http://d.hatena.ne.jp/ZIGOROu/"); $uri->query_form("key=a b c d e"); print $uri->query; print URI::Escape::uri_escape("key…

DateTime, DateTime::Format::Epoch::Unix

UnixタイムスタンプをDateTimeオブジェクトにする方法。 そういえばやったこと無かった。 DateTime->from_epoch() 今日初めて知った(ぇ $ date +%s | xargs perl -MDateTime -e 'print DateTime->from_epoch(epoch => $ARGV[0], time_zone => "Asia/Tokyo")…