memo

HVIF (Haiku Vector Icon Format)

/.J の記事「Haikuがアイコンセットを公開、新アイコンフォーマットを適用 | スラド」より。アイコンフォーマットとして SVG をステて独自フォーマットを採用したおかげで The average Haiku vector icon uses about 500-700 bytes, with some icons slightl…

MySQL と PHP の文字エンコーディング

「skip-character-set-client-handshake」で検索すれば情報多数*1 ↑のオプションがうまく働くのは,下記のエンコーディングが一致する時 MySQL のエンコーディング MySQL データベースのエンコーディング*2 PHP で扱う文字列のエンコーディング 統一されてい…

最近気になるフレームワーク

見ろ!フレームワークが雨後の筍のようだ!ということで個人的に今気になってるフレームワークへのエントリポイントをメモっておきます。 Symfony 今更ですが Zend Framework が待てない i18n とかフォルダ切るところにシビレた PHP 5 Ethna http://labs.gre…

コメントアウトで=begin〜=end使ってて=cutを忘れる

長文コメント書いたり長きにわたってプログラムをコメントアウトするときに, package FooBar; ... =begin COMMENT ... =end COMMENT ... 1; とかやるんですけど,=end は POD モードを抜けるんじゃなくて =begin との対なので,このままだと POD モード抜け…

qw()

自分のコード読み返してみたら qw/.../ と qw(...) が統一されてNEEEEE!ベスプラ本だと qw() だった気がするので最近書いているのは qw() にしてるんですが,DBIC あたりを読んでいたときは影響されて qw// にしてました。もっかいベスプラ読み返してみよう…

Google Calendar on my domain

「Gmail for Your Domain」をもともと利用してたんですが,「Google Apps for Your Domain」なるものができてました。カレンダーとか使えるなんてずるいムッキーと思って URL を直接たたいたら http://www.google.com/calendar/hosted/ドメイン名/renderでい…

Comet

今日の波乗り start⇒ASCII.jp:Ajaxの“彗星”とともに現われたチャットサービス“Lingr”を使ってみた 脱線多い(笑 Ajax の裏の意味(国内初出は奥村先生のWikiのコメ欄?) いわゆる Comet 日本語でわかりやすく http://d.hatena.ne.jp/ajiyoshi/20060310/p4 …

フリーソフトウェアのマイナーバージョン間互換性

PHP について「マイナーバージョン間ですら言語互換性が失われたことがある」みたいなことをあちこちで聞いたことがあるのですが,具体的にどういうことがあるんでしょう。うまく検索できませんでした。Perl は言語コアな部分ではマイナーバージョン間(どこ…

で ps -efm で httpd をみてみると

PerlInterpMax を増減させてもスレッド数変わらないのでした。単独スクリプトで threads 使うときちんとスレッドが表示される(つまり OS のスレッドを利用している)のでなんでだーと思ったんですが,ひょっとするとプールというのはスレッドプールというわ…

DateTime::Duration

(._.) φ メモメモ DateTime オブジェクト同士で subtract(マイナス演算子の overload も)すると,DateTime::Duration がかえる DateTime::Duration はわりと人間的に情報を持ってる たとえば DateTime(2006/08/18 12:34:56) - DateTime(2004/03/02 09…

ファイルロックスレ

flock まわりでなにかいい CPAN モジュールないかなぁとうろついていたら ttp://pc8.2ch.net/test/read.cgi/php/1024795138/ こんなスレがありました。玉石混交なのがいかにもですが4年以上続いてるのがなにげに良スレなのかなぁ。結局そこではモジュールは…

PostgreSQL での副問い合わせ等々

少なくとも ver. 7 の世代では IN を使った副問い合わせは遅いので EXISTS を使うべし http://www.stackasterisk.jp/tech/dataBase/postgresTuning02_02.jsp http://itbtech.itboost.co.jp/inst/inst_33.php EXISTS 等集約関数について http://www.postgresq…

DBIC における今日のつれづれ

read only な connection がほしい。もちろん本筋としては読み取り専用ロールなユーザを定義するべきなんでしょうが。Plugin として書くべきか,DBIx::Class::Storage::DBI を継承した Storage を書くべきか。 PKEY 定義されてないとリレーションをうまく参…

NEXT.pm は EVERY が魅力的

今更ながら NEXT で遊んでます。イニシャライザやデストラクタでいちいち $self->NEXT::method() と書くのも苦痛ですしミスも発生しそうだなぁと思って POD を読んでいたら,EVERY や EVERY::LAST という修飾子もあると。これらは Perl 5 で標準の「depth-fi…

Cache-Control とブラウザ Back, Forward

ブラウザのキャッシュを抑制するヘッダとして, Pragma: no-cache Cache-Control: no-cache, no-store Expires: 古い日付 が知られています。これらのヘッダを使った場合, Page_A ←→ Page_B (no-cache) ←→ Page_Cという遷移において,各ページをブラウザの …

ウェブアプリで情報保持

そもそもはオンメモリキャッシュがほしかったので調べ始めたのです。 イントロとしてNaney 氏の記事(←なぜか文字コード(ry) memcached とそれを扱う Cache::Memcached ストレージを複数マシンに分散できる Naney 氏も使ってる id:tokuhirom 氏も使ってる …

Location によるリダイレクトとブラウザ Back

Web 1.0 時代のバッドノウハウです。 a.html に b.cgi へのリンクを提示 b.cgi で a.html へ 301 (Found) でリダイレクト 再び a.html が表示されるが,ブラウザの Back ボタンは無効のまま GET じゃなくて POST でも可 IE 6 sp2 と Firefox 1.5 で確認 確認…

Apache の設定ディレクティブに とか とかほしい

今開発中のウェブアプリは mod_perl なアプリは http://〜/site/app/foo 静的コンテンツは http://〜/site/bar な URI 設計をしているので,httpd.conf は単純に <Location "/site/app"> SetHandler perl-script PerlResponseHandler Foo::Bar </Location>みたく書いていました。が, mod_perl…

PostgreSQL の SERIAL型

参考 URL http://www.linux.or.jp/JF/JFdocs/PostgreSQL-FAQ.html#item4.11.1 http://www.postgresql.jp/document/pg814doc/html/datatype.html#DATATYPE-SERIAL http://www.postgresql.jp/document/pg814doc/html/sql-createsequence.html 1. はイントロダ…

今日のハマリ

DBIC 使っていたんですがなかなか使いこなせないですね。 PK::Auto で失敗 my $rec = $schema->resultset('t_test')->search(...)->first; # うーむ,やっぱり新規で INSERT しよう $rec->store_column('id', undef); # PrimaryKey を undef に $rec->insert…

qr のメリットがわからない

Perl にはクォーテーションと同義の表記 my $s; $s = q{abc}; # 'abc' $s = qq{abc}; # "abc" $s = qx{abc}; # `abc` my @a = qw{a b c}; # ('a', 'b', 'c')などがあります。ウェブアプリで HTML に文字列を埋め込むときなど,ダブルクォーテーションを使っ…

半角全角ちょっとつけたし

センセーショナルな見出しにしたためか,なんかアクセス数がこれまでにくらべてすごいことになってました。びっくり。何人かトラバなさってましたがトラックバックオフにしてるんで表示されないですね。ごめんなさい。ということで,手動トラバ。 アルファベ…

Deep-copy な Clone

Perl でハッシュ等を Deep-copy したいときは Clone というモジュールがあります。これが best-practice かどうかは知りません。 そもそもそのような状況に陥っていること自体あんまりよくない兆候かもしれません。が,とりあえずメモメモ。

型グロブにおける自戒

{ no strict 'refs'; *foo = sub { ... }; }みたいにしてよくつかう型グロブですが,当然ながらそのネームスペースの空間を汚しているんですね。ですから,AUTOLOAD で新しい無名サブルーチンを追加すると,他のインスタンスからもアクセスできてしまいます…

Catalyst::Model::CDBI と Catalyst::Model::DBIC::Schema 雑感

Bundle::Catalyst の後継 Task::Catalyst では,CDBI 系ではなく,DBIC 系(DBIx::Class::Schema)がついてきます。それで,最近の DBIC ってどうなのよと思い,つらつらと調べてみました。CDBI 歴 0 日,DBIC 歴 1 日なので間違いが多いかもしれません。 C:…

Perl の循環参照と GC

時間がないので走り書き… package Object::B; sub new { my $class = shift; bless { a => shift }, $class; } sub DESTROY { } package Object::A; my @B; sub createB { my $self = shift; push(@B, Object::B->new($self)); $self->{b_index} = $#B; } su…

Perl 5.8 と UNICODE

http://www.pure.ne.jp/~learner/program/Perl_unicode.html やnaoya 氏の記事でいいつくされているのですが,最近はまっていることがあるので現在の進捗をメモっておきます。

Catalyst について雑感

mod_perl での Catalyst の設計・挙動を調べたときのメモです。 Catalyst::Manual::Internals におおまかな処理の流れが書いてある。「still developing rapidly」と書かれているとおり,必ずしもこの通りでもない。 駆動部の具象は Catalyst::Engine::* に…

セッションのシリアライザにチェックサムをもたせたい

昨日の CGI:Session と YAML::Syck の不具合ですが,セッションシリアライザとして YAML::Syck を使わないことにして(もともと使う気もなかったんですが)強制的にインストールすることにしました。それとは関係のない話ですが,ディスククラッシュ等の原因…

pdumpfs-rsync のハック

pdumpfs-rsync は便利ですが,使うにはいくつか注意点が。 まず,pdumpfs 1.x に対応していないです。これは CVS 版では直っているのでそちらをとってきましょう。なぜリリースされていないかは不明ですが。 そしてその CVS 版ですが,初めての実行のときに…