Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

2005-01-01から1年間の記事一覧

perl5.8のUnicodeは嫌い

TermExtractを入れて遊ぼうと思ったら、use encoding関係でハマり。 encodingプラグマはローカルスコープにできない chompはencodingプラグマの影響を受ける 1. に関しては、 use encoding 'euc-jp'; my $raw_str; { no encoding; $raw_str = "じゃぱにーず"…

mod_perl開発がキャッシュで行き詰ったら

.htaccessが有効なら、 SetHandler cgi-scriptこういうひどい解決法もありかもしれぬ。行き詰まってる原因がキャッシュに起因するバグのせいだったら後からひどい目にあいますけどね。

Class::DBIのhas_many

自分メモ。has_manyには第3引数があって、Music::Artist->has_many(cds => 'Music::CD', 'artist_code');って指定ができるみたい。第3引数の意味はこの場合だと、Music::CDクラスからは自分(Music::Artist)をartist_codeと言う名のメソッドで参照できると言…

overloadでセグフォ

Date::Calcで空オブジェクトを作ってprintするとセグフォで落ちるなーと思っていたら、package hoge; use overload '""' => sub {undef}; sub new{bless [], shift}; "" . hoge->new();これでも落ちた。perl5.6.1の問題? または環境依存? 自宅の5.8系のper…

mod_perlとMaxClientsの悩ましい関係

そうだったのかorz。それにしても、紹介されているapacheを二つ建てる手法は非常に合理的でいいですね〜。

apacheの各ディレクティブの評価順

よく忘れてしまうので、引用。 The order of merging is: 1. (except regular expressions) and .htaccess done simultaneously (with .htaccess overriding ) 2. , and with regular expressions 3. and done simultaneously 4. and done simultaneously

mod_perlからのレスポンスヘッダの書き出し

030526 : mod_perl クイック・リファレンス (1) より。 $r->send_cgi_header( $str ); $r->cgi_header_out() と $r->send_http_header を適切に呼び出す。 PerlSendHeader on ディレクティブを実装するのに使われている。 解析作業が伴なうので、パフォーマ…

useでimportしない法

import関数については今まであまり気にしてなかったんだけど、perlmodによると、 As a special caseuse Module ();is exactly equivalent toBEGIN { require Module; } だって。後ろに空っぽの()を付けると、importを呼ばないようにできるそうな。だからmod_…

WEBアプリはシングルトンで

CGI::ApplicationのようにWEBアプリをクラスとして扱う場合、1つのリクエストに対してアクティブになるクラスは一つだけなので、シングルトンクラスである方が幸せになれる。例えば、TTのプラグインを作るときなんかは、シングルトンであれば現在アクティブ…

mod_perlとCGI

例えばHTTPのリクエストを表すクラスを作る際、mod_perlではApache::Request、CGIではCGI.pmに処理を委譲したいと思ったとき、コンストラクタさえ変えれば他のメソッドはほぼ同じなので、わざわざファクトリメソッドを作ったりしたくない。そこでこんな方法…

TTと日本語

Appleが頑張っている今日この頃でも、サーバはUNIX系、クライアントはWindows系であることは未だに多い。そのためにTTで日本語を扱うときに、大抵はDB〜スクリプト内部ではEUC、TTから吐き出すのはsjisであることが多くなる。そんなときに頑張ってくれるのが…

頭が退化してる

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか作者: ジュニア,ヘンリー・S.ウォーレン,Jr.,Henry S. Warren,滝沢徹,玉井浩,鈴木貢,赤池英夫,葛毅,藤波順久出版社/メーカー: エスアイビーアクセス発売日: 2004/09メディア: 単行本購入: 35人 …

はてなに移しました

Hatena::Diaryが楽しそうなので、自宅サーバのMTからこっちに移しました。シンプルであり、かつ、かゆいところに手が届くような設定項目やヘルパがいいですね〜。はてな記法による記事の投稿には癖があるけど、なれたら逆に使いやすそう。

TTのレンダリング時間の測定

TTをClass::DBIと一緒に使うと、ついついレンダリング時間が長くなってしまいがちなので、レンダリング時間の測定方法を。 use Template; use Time::HiRes ();my $tpl = Template->new(); my $starttime;$tpl->process('hogehoge.html', { START_TIMER => su…

Class::DBIのヘルパが欲しい

テーブル定義からClass::DBIに対応したクラスをファイルとして生成するスクリプトってあるんだろうか? 探したけど見つからなかった。。。 Class::DBI::Loader で定義を読ませて、その後生成された各テーブルクラスのクラス属性(__hasa_relsやら__hasa_list…

タイムアウト

OS Xに対してftpやらsshやらで接続するとタイムアウトをして困っている人々へ。 /etc/xinetd.d/ftp で server_args = -l -t 7200 とか。 /etc/sshd_config で ClientAliveInterval 60 と ClientAliveCountMax 999999 とか もしかしたら幸せになれるかもしれ…

クラスの初期化(2)

mod_perl(Apache::Registry)環境下ではさらに複雑となる。まず、モジュールが他のスクリプトにおいて読み込み済みの場合、メインルーチンに書いてある処理は実行してくれない。この部分に初期化処理を書く場合は注意が必要だ。 さらに、Apache::StatINCを利…

クラスの初期化

perlのクラスの初期化が複雑だと思う今日この頃。例えば、以下のコードの出力はどうなる? # Class1.pm package Class1;print "main Class1\n"; print "#####################\n";sub import{ print "import Class1\n"; print join(',', @_) . "\n"; print j…

SUPER

package Class1; sub new{bless {}, shift} sub hello{print "Hello Class1.\n"}package Class2; @ISA = 'Class1'; sub hello{print "Hello Class2.\n"} sub say_hello{ my $self = shift; $self->hello(); $self->SUPER::hello(); }package Class3; @ISA = …

svnクライアントライブラリ

svnにはクライアントを簡単に作るためにライブラリがあるとのことで、ちょっとやってみたんだけど大苦戦。とりあえずチェックアウトだけ動いたので、メモ書き。完全にヤッツケだから参考にはならないだろうけどね(-_-)。 1. finkで必要なライブラリをぶっ込…

CPAN環境が復活

いつぞやのエントリでCPANがぶっ壊れてると書いたが、今日やっと対処。CPAN/Config.pm~をCPAN/Config.pmに上書きして設定を初期化し、CPANを再設定したら動いた。オレ予測では、makeコマンドのPATHが間違ってたんじゃないかと。

RoR

Software Design 2005年12月号にRoRの特集が載ってたので購入。割とまとまってます。 オンラインより書籍のほうが読みやすいなあと思う今日この頃です。

ELFとかMach-Oとかさっぱり

共有ライブラリってどうやって作るんだろうって調べてて見つけたProgram Library HOWTO。まとまってて読みやすい。 でも、OS Xでは事情が違うようだ。Fink関係のページの共有ライブラリの項を流し読みした感じでは、上述の解説ページの内容じゃ駄目みたい。 …

Xgrid

Tigerのリリース時に個人的に注目していたXgridが全然流行らないなあと思っていたら、OS X Serverにしかコントローラがついていない、つまり買わないとクラスタリングできないというオチがあったんだね。 一応、こちらのエントリで書かれているのを参考に動…

"おたく"

変化に強いXMLデータベース設計とチューニング XMLデータベースには興味はないんですが、 理想の主張、説得は、十分な問題解決能力を持たざる技術者がその現実を忘却する手段として機能するということである。 この主張には納得。美しさを保つために変化を受…

Catalystドキュメントの和訳

Catalyst翻訳 こりゃあとってもうれしいお知らせ! 訳者さんに感謝です。

Ajax関連

Ajax関連の記事いろいろ。 Ajax、それはWeb 2.0へと続く道 Webアプリのユーザビリティを改善しまくるAjax 古くて新しいAjaxの真実を見極める 書籍が出たりAraxが出てきたりと、まだまだ発展しそうな分野ですね。

perlからCocoaのAPIを呼んでみる(2)

さっきのエントリでは、Objective-CをXSから直接呼べないと思ってこんなことをしたんだけど、直接*.mファイルをXSから呼べるみたい。*.mから*.oが作れたのね。 注意点は二つで、まずは*.mファイルはExtUtils::MakeMakerが拾ってくれないので、perl Makefile.…

perlからCocoaのAPIを呼んでみる

perlからCocoaのAPIを呼ぶには、CamelBonesってものがあるのだけど、これを使わずに自分で試してみた。 参考資料は、ひげぽんさんのXSの利用法の記事と、MYCOMさんのクラス情報に直接アクセスするの二つ。XSからobjc/objc-class.hを呼ぶコードを書けば完了(…

Binary 2.0

バイナリを扱う界隈が非常に熱いですねー。勉強中のオレとしても、とても楽しみな流れです。 なぜかShibuya.pmが絡んでるのも微妙に気になったり(笑)。perl使いも流れてるんですかね?