« October 2005 | メイン | December 2005 »
November 30, 2005
職業病な趣味
ここ一年ずっと仕事でPerlを使用しているせいか、休みの日でもPerlの技術サイトをみていることが多い。まあ、主にCPAN Searchなんですが。
「なんかこういう処理ができるCPANモジュールってないかな?」ってふと思いつくとすぐに、CPAN Searchしています。
最近では、SiteMapを作ってくれるWWW::Sitemap(期待していた処理はしてくれませんでした)やWWW::Mixi(かなり使えたというか面白かった)なんかを試してみました。
今、試そうと思っているのはWWW::Google::SiteMap とWWW::Google::PageRank などのGoogle関連のCPANです。
PerlクックブックにもCPANに関してこんな表現が使われています。
CPANは、Perlに関して想像できる限りのものがほとんど漏れなく含まれている巨大な宝箱です。 Perlクックブック p561より
ん~CPANを的確に表現している。まさにその通りって感じです。このCPANSearchする趣味はしばらくハマりそうです。
November 27, 2005
MTのプラグイン作成
SixApartのプラグイン作成方法を解説しているページを参考に、簡単なプラグインを作ってみました。
ソースはココ。
ソースを見れば一目瞭然ですが、このプラグインはCPANのWWW:Mixiを使ってMixiで自分が参加しているコミュニティーの新規書き込み記事一覧(5件)を表示します。
設置方法は簡単で、まず「extlib」ディレクトリにWWW::Mixiを設置します。
次に、「plugins」ディレクトリにMixiBBS.txtをMixiBBS.plという名前で設置します。
これで準備完了。後は、テンプレートに以下のソースを貼り付ければ表示されます。
<ul> <MTMixiBBS id="your@mail.address" pass="yourpassword"> <li> <$MTTime$>・・・ <a href=" <$MTLink$>"> <$MTSubject$> </a>( <$MTName$>) <br /> </MTMixiBBS> </ul>
で再構築するとこんな感じになります。
あまり、使い道はなさそうですが前々からMTのプラグインを作ってみたかったのと、WWW::Mixiを使ってみたかったので作ってみました。
November 26, 2005
New Chair
ついにVitraの椅子が届きました。
座り心地にはまだ慣れませんが、よい買い物をしました。
#友人のおかげで仕入れ値で手に入れることができたので、かなり安かったし。
November 25, 2005
またもTrippen
代々木上原にて開催中のカンペールやTrippenの輸入元の会社GMTのファミリーセールにて、またもTrippenシューズを買いました。
しかも、みんな半額。
1時間半並んで待った甲斐がありました。
(午後に行った友人は2時間近く並んだらしい。。。)
November 23, 2005
Perl & XML
MTで使用していることもあって、ちょっと本格的にPerl+XMLを学習し始めました。教科書はもちろんOreillyです。
まだパラパラと読め始めたばかりですが、入門書としてはなかなかよさそうです。
November 21, 2005
FilterCategories
このBlogで使用しているわけではないのですが、とあるBlog案件で特定のカテゴリーをカテゴリーリストの一番上に表示させたいといわれたので、FilterCategoriesを導入してみました。最初は、よく見かける方法のカテゴリー名の先頭に数字を入れてソートさせる方法も検討したのですが、あまりスマートな方法ではない気がしたのと、特定のカテゴリーだけ一番上で後の順番はどうでもいいみたいだったので、FilterCategoriesの導入を決定。
プラグインはココから入手できます。ソースはこんな感じです。
<div id="categories"> <h2>カテゴリー</h2> <ul> <MTCategories> <MTFilterCategories include="info"> <li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> </li> </MTFilterCategories> </MTCategories> <MTSubCategories> <MTFilterCategories exclude="info"> <MTIfNonZero tag="MTCategoryCount"> <li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> <MTElse> <li><MTCategoryLabel> </MTElse> </MTIfNonZero> <MTSubCatsRecurse max_depth="3"> </li> <MTSubCatIsLast></ul></MTSubCatIsLast> </MTFilterCategories> </MTSubCategories> </div>
簡単に説明すると、リストのループをする前に特定の「info」というカテゴリーを表示させるための条件文をいれて表示させて、その後に「info」を除いたカテゴリーリストを表示させるようにしています。
いちょう並木
東京に来て4年目。初めて外苑前のいちょう並木を見てきました。
まだ、ちょっと早かったせいか完全に色づいてはいなかったのですが、いい感じでした。
November 19, 2005
トラックバックスパム対策
ついにやってきました。トラックバックスパム野郎が!
むかつきます。このBlogのようなアクセス数のあまりないところにまで、くるなんて。
退去して送り込まれる前に、対策を講じてみました。
基本は、コメントスパム対策でもやっている「ひらがな対策」で対応してみました。
やりかたは、ココにあるトラックバックの仕様を参考にして設定してみました。
効果がどれくらいありそうかは、しばらく様子を見る必要がありそうです。
November 17, 2005
コメントスパム対策
Blogをはじめて1ヶ月目あたりからスパムコメントが増えてきました。特にGoogleにひっかかるようになってからが増えたきがする。
うざいこやつらを排除するため、Blacklistプラグインを導入してみました。
インストールの仕方などはググってみればすぐに見つかると思うので、書きませんが、僕のようにAdminCGIPathを使っている場合、lib/MT.pmとlib/MT/App/CMS.pmを修正する必要があります。
#コメント管理画面に表示されるBlacklistプラグインのパスをAdminCGIPathに向ける設定
use vars '%PluginActions';
sub add_plugin_action {
my $class = shift;
my ($object_type, $action_link, $link_text) = @_;
$action_link .= '?' unless $action_link =~ m.\?.;
push @{$PluginActions{$object_type}},
#デフォルトではCGIPathに向くようになっているので、AdminCGIPathに変更
# { page => MT::ConfigMgr->instance()->CGIPath .
{ page => MT::ConfigMgr->instance()->AdminCGIPath .
'/' . $plugin_envelope .
'/' . $action_link,
link_text => $link_text };
}
lib/MT/App/CMS.pm変更メニュー画面に表示されるPluginリストのURLをAdminCGIPathに向ける設定
340行目あたり
$plugin->{description} = remove_html($plugin->{description});
#ここをAdminCGIPathに変更
# (my $cgi_path = $app->{cfg}->CGIPath) =~ s|/$||;
(my $cgi_path = $app->{cfg}->AdminCGIPath) =~ s|/$||;
これで完了。
November 16, 2005
Google Analytics
Google Analyticsを導入してみました。
今契約をしているホスティングサービスでもアクセス解析をしてくれるのですが、画面がなにせこんなんですから・・・

ショボッ!
なんだこれ?大雑把すぎだろ!リファラーとか解析してくんないし。ダメだよ。
こんな愉快なアクセス解析ツールなので、Google Analyticsを導入してみました。
まだ1日分しか解析できてないけど、いい感じです。リファラー解析とかちゃんとしてくれるし。今後が楽しみです。
November 15, 2005
表参道で転倒2
あの転倒から早3日。負傷した腕はまだまだ痛みます。
今日お風呂上りにふと鏡に映った負傷中の腕を見ると・・・
なんじゃこりゃ!!!
変色してます!キモい!
どおりで痛いわけだよ。こんなにあざになっているんだもん。
チキショー!あのじじい!ムカツク!
でも、バスケットボールに情熱を注いでいた学生時代は、こんなアザがよくできてたっけ。
あの頃はすぐにアザなんて治ったけど、もうおっさんだからなかなかアザが消えないんだろうな。。。
November 14, 2005
TypePad
とある案件でTypePadを使うかもしれなくなったので、ためしに契約してみました。
結論から言うと、
全然MovableTypeと違うじゃん!
なんだよこの管理画面!
そして何だよこのデザインテンプレート!
これじゃあ、またTypePadの使い方覚えなきゃいけないじゃんか!
しかも、それ調べるのってどうせ僕なんでしょ!そして、それをデザイナーにレクチャーしなきゃいけないんでしょ!
だめです。面倒くさすぎです。やる気なし。
TypePadのことは忘れて、Movabletypeのライセンスを買ってもらう方向で話を進めてもらいます。
November 11, 2005
表参道で転倒
またやってしまいました。自転車事故です。以前は明治通りでしたが、今日は表参道で宙返りです。まわりの人々が引いてしまうくらいの転倒です。今回も。
前回の原因は、急に方向転換して飛び出してきたサラリーマンですが、今回はタクシーのドアです。
じじいのドライバーだったのでサイドミラーで僕の接近を察知できなかったのでしょう。急に客を降ろすためにドアを開けました。僕はもう3mくらいの距離にいます。
うお!
このとき僕は表参道駅から明治神宮方面へ下って走行していたので、メッセンジャー並みのスピードが出ていました。そして残念なことにマイ自転車はものすごくブレーキの効き目がよいのです。猛スピードでもピタっと止まってくれます。
もうお分かりですね。高スピードで急ブレーキをかけるとどうなるか。
ジャ~ンプ!
おそらく3mは飛んだでしょう。ア~レ~。
そして見事に路駐してあった白い車にぶつかり、バウンドして硬いアスファルトに叩きつけられ、腰と腕を強打!
激痛です。マジ痛いです。しばらく立ち上がれませんでした。
タクシーに乗っていた乗客も降りてきて心配してくれています。じじいドライバーも降りてきて心配そうにしています。 痛いですよ。皆さん、でも僕には自分の体以上に心配なことがあるんですよ。それは・・・
ぶつかった白塗りのベンツですよ!
やばいじゃん。あっち系の人かもしれないし。もしかするともっと痛めつけられるかもしれないじゃん。体も冬のボーナスも!ちょっぴりパニックです。
周りの歩行者やじじいが僕を気遣う中、白塗りのベンツから人が!
あっち系?
でも降りてきたのは、やさしそうなマダムでした。そして僕を気遣ってくれています。
マダム:「大丈夫?」 僕:「大丈夫です。すみませんドアにぶつかっちゃいました。」 マダム:「大丈夫よ。傷ついてないし、あなたのほうが大丈夫?」
大丈夫ですよ。マダム!ぜんぜんへっちゃらですよ。サイドドアにタックルしたことは怒っていないのですね。ほっとしたよ。
もうじじいへの怒りは吹っ飛んだよ。よかったなじじい。あっち系の人なら君に責任転嫁をするところだったぞ。
ただ、この事故から数時間。
強打した腰と腕の痛みが増すにつれて、あのじじいへの怒りが。名刺とかもらっておけばよかった。
ちゃんとサイドミラーで周りを確認してからドアを開けろよ。教習所でも教えてくれるでしょ?ここは表参道なんだからね。
追記: 会社の女子曰く、今日のいて座の運勢は悪かったそうです。
November 10, 2005
久しぶりにDJ
半年ぶりくらいにDJすることになりました。場所は代官山のUNITです。
どんなクラブなんだろうとWebSiteを見に行くと、割とこぎれいなデザイン。
http://www.unit-tokyo.com/
ここで職業病のソースチェック!キチンとXHTMLとCSSを使ってるかなと眺めていると。。。
metaタグのgeneratorのところに「http://www.movabletype.org/」と記述されているではありませんか!
やるじゃんUNIT。すばらしいよ。BLOGっぽさを消しているし、使い方もお上手です。(きっと年月はScheduleのサブカテゴリになっておるのかな?)
MTをCMSとして使用するお手本のような感じでいいデザインです。
施設内部はまだよくわからないけど、きっと素敵なクラブだと思います。
当日が楽しみだ!
グチ
他人が作ったプログラムってなんで、わかりづらいんでしょう?
特に、初級のCGIの入門書なんかで勉強したなんちゃってプログラマーの作ったプログラムは本当にメンテしづらいです。
デザインとプログラムが分かれていないし、use strict してないから「my $変数名」で変数宣言してないし、グローバル変数を使いまくりでちょっと関数を変更すると動かなくなるし、クラスを使わないから、突如として聞いたこともない関数名が出てくるし・・・
あげればきりがありませんよ。
なんでたかがフォームの入力項目一つ追加するのに、こんなにPGを修正する必要があるんですか?
クラス使ってよ。CPAN使えよ。テンプレートエンジン使ってHTMLとPGを切り離してくれよ。
世の中には僕なんかよりずっとずっと優秀なプログラマーはたくさんいますが、それよりもたくさんなんちゃってな人もたくさんいるのです。
運良く僕は日本でも最高レベルのプログラマーの方々と少し仕事をしたことがあるので、ソースの質の良し悪し足多少がわかるから本当に腹が立ちます。
本当になんちゃってプログラマーの皆さん、Oreilly本を読んで基礎からキチンと勉強してください。
僕は前職のプログラマーさんから言われましたよ、「日本人が書いたPerlの本は買うな。Oreilly本を買いなさい」と。
November 07, 2005
PerlでSWF生成(SWF::Builder)
SWFを生成する面白いCPANモジュールを発見しました。サンプルソースはこんな感じ。
use SWF::Builder;
my $movie = SWF::Builder->new
( FrameRate => 15,
FrameSize => [0, 0, 400, 400],
BackgroundColor => 'ffffff'
);
my $shape = $movie->new_shape # red triangle.
->fillstyle('ff0000')
->linestyle(1, '000000')
->moveto(0,-11)
->lineto(10,6)
->lineto(-10,6)
->lineto(0,-11);
my $font = $movie->new_font('msgothic.ttc');
my $text = $movie->new_static_text($font)
->size(20)
->color('000000')
->text("hello world!")
->place;
my $instance = $shape->place;
for (my $x = 0; $x < 400; $x++) {
$instance->rotate(15)->moveto($x,200);
}
$movie->save('test.swf');
出力されるSWFはコレ微妙です。このモジュールを使いこなせるようになるより、Flashを使いこなせるようになるほうが確実に手っ取り早いです。
でも、ちょっと何かで使いたい。November 05, 2005
Trippenのブーツ
買いました。ついに。ずっと欲しかったのでちょっと感激です。しかも高かったし。
ただ、いい革靴なのでお手入れが大変なのです。
- 毎日履くな
- 雨の日は履くな
- 履き終わったら、クリーニング->革クリーム->防水クリームを塗る
- 最初は革が硬いから気をつけて履け(かかとの革が裂けるらしい)
以上のような鉄則があるようです。
う~む。スニーカーや安い革靴とは大違いです。丁寧に履かないとすぐにダメになるそうです。
高級品は手がかかるのですね。でも丁寧に履いていい色にしたい!
November 04, 2005
Google AdSense
個別エントリーアーカイブにGoogleAdSenseを導入してみました。
これでぼくの大好きな3大Webサービス(Google、Amazon、Flickr)との連携が完成。あとはずっと先送りにしてきたデザインのカズタマイズをしていきます。
November 03, 2005
FreeBSDのロゴ
新しくなりましたね。
http://logo-contest.FreeBSD.org/result/
前の方がかわいかった気がする。なんかちょっとPop過ぎやしないか?
でも時間が経つとこっちのほうがしっくりくるのかも。
November 01, 2005
模様替え
ページカラーの模様替えをしてみました。
秋色です。
でも、ちょっと微妙・・・
前のほうがよかったかな・・・
