Path::Class-0.17

Path::Classが約2年半ぶりくらいにバージョンアップされました。Path-Class-0.17 - Cross-platform path specification manipulation - metacpan.orgいくつかのバグ修正や最適化が行われたようです。そして!!!先日僕が指摘したPath::Class::Dir-0.16のchi…

Perlにおける定数宣言(constant or Readonly or Attribute::Constant)

正直言いますと、個人的には定数って殆ど使わないんですよね。昔はちょこちょこ使ってたんですが、最近は定数となりうる物は基本的にYAML等外部ファイルに持たせて変更可能にすることが多いのでまったく使ってません。ですがそれでもPerlで定数を使いたい時…

複雑なデータ構造はData::Visitor::Callbackで簡単一発変換

ハッシュと配列の参照が入り交じったような複雑なデータ構造の、全value を均等に加工したかったので次の様にしてみました。(中略)すでに似たモジュールがある気が激しくしています!ご存知でしたらぜひ教えてくださいませ。 [perl] 複雑なデータ構造のvalue…

携帯動画の再生時間をMP4::Infoで取得しませう

…というか3gpファイルのヘッダを解析して再生時間の取得を試みるわけなので延いてはmp4の解析ということになりますが故、結局のところMP4::Infoを使うことで万事OKだろっていう話ですね。 use MP4::Info; # v1.12 use Path::Class; my $file = file '/foo/ba…

首が・・・

寝違えたようでもっさ痛い。うぐぐ。下向くと激痛が・・・。左右はまだマシだけども。 そういやPath::Class::Dir-0.16のchildrenが「0」で止まる件 - Unknown::Programming書いてからそろそろ一ヶ月経ちそうですがRT見てもらえてない?っぽいですね。まぁ必…

Path::Class::Dir-0.16のchildrenが「0」で止まる件

ブログにお絵かきなんてものが増えてたので喜び勇んで描いてみた。って前からあったっけ?タイトルまんまなんだけども、children呼ぶときの対象のディレクトリ以下に「0」って言う名前のファイル(もしくはディレクトリ)が存在してるとディレクトリ一覧が取…

PHPでWebプログラムすることのある僕がstrcmp関数を使う100の理由(ぉ

PHP

==の代わりにstrcmp関数で比較すると、float型とarray型を扱う場合に==を使うのとは別の問題が発生することを示しました。そんな型が来るならstrcmp使わないよ、という意見もあるとは思いますが、来る型がわかっているなら===を使えばいいと思うんですよね。…

複数同時にlocal化したいばやい

あけましておめでとうございます、ってもう2月かよ!今日は物凄くどうでも良くて、凄まじく応用範囲の狭い小ネタでも提供します。 %SIGに同じ関数登録しようとして、 local $SIG{$_} = sub {...} for qw/INT TERM ALRM .../; みたいなことをしたんだが。うま…

最近はてなのスーパーpre記法おかしくない?

なんか途中でコードが切れるんだ。しかも古いエントリーの奴とかがおかしくなってる。エントリ編集してみてみたらテキストは残ってるのでたぶんスーパーpre記法(シンタックスハイライト版だけかな?)に何かしら問題が出てる気がする・・・。 俺だけ?・・・…

とかなんとか言ってるうちに

なんかはてラボ乱立キタ━━━━(゚∀゚)━━━━!! Hatena::Counting はてなニュース Hatena::Countingおもしろいかも!これ、秒まで出ると更に(・∀・)イイ!!んだけどどうだろ!?はてなニュースは増田をニュースっぽくカテゴリ分けした感じかな?画像も上げれるっぽいし差…

はてなボトルとな。

はてラボに新サービスが。 はてなボトル サービス終了のお知らせ おもしろいすね。最初リグレトっぽい感じかなと思ったけどちょっと違うね。匿名じゃないし相談ひとつにつき答えひとつみたいだし。とりあえずパーマリンクとはてなスターに対応して欲しいとこ…

さっきの記事のShikaのベンチのコード

モジュールがMoose依存してた。別れたい… - Unknown::Programmingid:tokuhiromさんにベンチうp頼まれたんだけども超個人的なBenchmarkコードなのでそのままCodeReposにあげれるような代物でもないということもあり取り急ぎエントリとしてあげておきますので…

モジュールがMoose依存してた。別れたい…

さて毎年年末が近づくとブログ更新頻度が下がるid:fbisですが、Mooseも馴染んできたところなのでそろそろMooseに対して一言いっておくかということでね、はい。Mooseは素晴らしい。とてもベリー素晴らしい。何より人に優しい。人間に優しい。がっ!しかし、M…

PHP5.3のnamespaceの区切り文字に関して

PHP

今の気持ちをはてなハイクであらわしてみました。先に言うとなんかもう色々ごめんなさい。 PHP5.3 - はてなハイク 勘弁して下さい(つд⊂)エーン

Catalyst::Plugin::Session::State::URIと携帯端末とfragment付きリンク

C::P::Session::State::URIは便利なんだけどfragmentが付いてるリンクまでセッションIDを埋め込んでしまうので微妙。なんでかっていうとDoCoMo等、クエリとfragmentが存在する場合、ページ内リンクにならずにページ遷移してしまうんだよね。ちなみにfragment…

DBD::mysqlのmysql_auto_reconnectが真だとDB再接続時にDBICのon_connect_doが実行されない件

ハマったメモ。さてまた今回も若干適当な記事だけども、メモということでお許し願いたい。ってか誰も言及してないっぽいんだけどもしかしてこの現象うちだけ?とにかくタイトルの通りで、検証時の各モジュールのVERSIONは以下の通り。 DBD::mysql-v4.005 DBI…

Perl Quizで遊んでみる

Perl Quiz - package名について - Islands in the byte stream #!perl -w use strict; use Test::More 'no_plan'; sub f{ package main::Foo; } f(); is ref(bless({}, 'Foo')), 'Foo'; とか #!perl -w use strict; use Test::More 'no_plan'; sub f{ packag…

今週末の予定

希望 use fbis; use Beer::PremiumMalts; my $fbis = fbis->new; $fbis->drink(Beer::PremiumMalts->new( type => 'big' )) while $fbis->stomach; $fbis->say->say->say->say; $fbis->sleep(60 * 60 * 12); 現実 use fbis; use Work::Mobile::WebApp; my $f…

Twitterって全然知られてない、ね

今更感があるけどもTwitterってWeb関係の業界以外の人には殆ど知られてないんだなぁと実感した。先日、専門学校時代の友達と8人ぐらいで飲みに行ったのだが、ブログの話になったのでTwitterとかも一応アカウントもってるよって話をしたら「Twitter?」みたい…

Perlのinstanceof演算子のベストプラクティスは何か

instanceof演算子 - Islands in the byte stream確かに遅いですよねぇ。ただ、一応ベンチとってみたところ、blessed使うのが一番早かったです。以下、$xがオブジェクトの場合のベンチ。 use Benchmark qw(cmpthese timethese :hireswallclock); my $x = bles…

AQUANAUT'S HOLIDAY潜ってきましたよー!

PS3

たまにはプログラムのことをぜーーーーーーっんぶ忘れて癒されてしまいましょうよ。ね?ということでとうとう発売。AQUANAUT'S HOLIDAY。とりあえずざーっと軽く泳いできましたー。アクアフォトっていう画像を撮る機能があったので色々撮ってきました。1280x…

Catalyst+mod_perl2+DBIC(DBD::mysql-v4.008)でSegmentation fault

なんか良く分からんけどSegmentation faultが出て泣きそうだったんだけどやっと原因がわかったっぽい感じなのでメモしとく。とりあえず環境は下記 CentOS 5.2 Apache 2.2.9 Perl v5.8.8 mod_perl 2.0.4 MySQL 5.0.51b 現象としてはサイトを数時間放置してア…

Catalyst::Model::なんとかAdaptor系の話

Catalyst::Model::MultiAdaptorでlifecyle support - dann's blog - # やりたいことがいつの間にかできていた - 僕ト云フ事@はてな出張版この辺の記事を見てて思ったこと。Catalyst::Model::Adaptorは便利だけど、モジュールの数だけモデル化用のファイルが…

hasの定義を取得する

hasで定義したメソッドのオーバーライドについて - Unknown::Programmingの続きというか。さて、先日の記事でhasで宣言する時にアクセサの先頭に+をつければ特定のものだけを上書きできることを知ったのですが、そんな便利なものがあるとは知らずに(MooseのP…

hasで定義したメソッドのオーバーライドについて

defaultだけ上書きとかできないのかな? package Foo; use Moose; has foo => ( is => 'rw', lazy => 1, default => sub { 100 } ); package Bar; use Moose; extends qw(Foo); # isとlazyを引き継いで欲しい! has foo => ( default => sub { 200 } ); 派生…

lazyなdefault再呼び出し

metaクラスからたどって直接呼び出した方がわかりやすいんではないかと思ったりしました。 package Foo; use Moose; has hoge => ( is => 'rw', lazy => 1, default => sub { 100 }, ); __PACKAGE__->meta->make_immutable; 1; package main; use strict; us…

Moose使ってると初期処理って殆どいらんねって思えてきた

Moose使い始めの頃はBUILD用意してそこで初期処理してたんだけど、慣れてくるとhasのlazyとdefaultでその殆どを賄える事に気付いた。よくよく考えたら初期処理って引数のハッシュを解析してそのキー毎に特殊な処理をさせるだけが多いのでhasで定義しとけばそ…

Mooseでdefaultをもう一度呼ばせる方法

package Foo; use Moose; has aaa => ( is => 'rw', lazy => 1, default => sub { 100 }, ); no Moose; __PACKAGE__->meta->make_immutable; 1; package main; use Perl6::Say; use Foo; my $foo = Foo->new; say $foo->aaa; # 100 delete $foo->{aaa}; # de…

MooseにDBIx::Class型を用意したいとか。

DBIx::Class型というかsearch等で取ってきたDBIx::Class::Rowと言えばいいのかな。雰囲気としてはこんな感じの package Foo; use Moose; use Moose::Util::TypeConstraints; use MySchema; my $schema = MySchema->connection($info); class_type 'MySchema:…

PHPでランダム文字列を生成するString_Randomクラス

PHP

以前PerlのString::RandomモジュールをPHPに移植した(PHP版String::Random - Unknown::Programming)のですが、そもそもPerlを使わない人にとっては何をするモジュールか分かりにくい(名前で大体わかるかもですが)ということもあり、ちょっと簡単に使い方とか…