このblogははてなダイアリーに移すことにしました。
Scrapcode@はてなダイアリーです。
ここよりはもう少し記事を書くようにしますので、よかったらあちらも見てあげてください(^_^;。
…Scrapcode@xxxという表記は激しく不適当な気がしなくもないけど、まあいいか。
2006年11月03日
2006年10月24日
見落としている間に…
CGI.pmのバージョンが3.25まで上がってるし…。
過去に2回CGI.pmの変更点を記事にしているので、仕事が落ち着いたらサボっていた間の分も順次記事にしていきたいと思います。
それから、いつやるかは未定ですが、このblogはtDiaryかはてなダイアリーに切り替えると思います。
このblogの記事をブックマークしてくれている方もいらっしゃるので、このblogを削除することはありません。
…というか、中途半端にblogに書いた記事をWikiに清書していかないと。
過去に2回CGI.pmの変更点を記事にしているので、仕事が落ち着いたらサボっていた間の分も順次記事にしていきたいと思います。
それから、いつやるかは未定ですが、このblogはtDiaryかはてなダイアリーに切り替えると思います。
このblogの記事をブックマークしてくれている方もいらっしゃるので、このblogを削除することはありません。
…というか、中途半端にblogに書いた記事をWikiに清書していかないと。
2006年10月20日
Kansai.pm第7回ミーティング - Plagger World Tour in 大阪に参加しました
参加と言うか一応運営なのだけども、今回は完全に宮川さんにおんぶ抱っこだったので(^_^;。
内容については他の方々が書いていらっしゃるので、ちょっと違う視点から書いて見ます。
会場はデジハリ大阪で、初めての人は地図をしっかり確認しておかないとちょっと道に迷うかも?はい、ボクは迷いました。
会場手配も宮川さんのツテでした。急なお願いにも関わらず会場を提供していただいたデジハリ大阪様に多謝です。
出席確認が取れた参加者は途中参加を含めて63名で、普段のミーティングの倍でした。しかもそのほとんどが初参加、半数(以上?)がMLに参加していない方たちでした。Kansai.pmって知名度低いのかなぁ。
残念ながら時間に間に合わず、その後の飲み会だけ参加された方も数名いらっしゃいました。でも、大阪で宮川さんと飲みながら話をできる機会はそうそう無いだろうから、これはこれで貴重な時間だったと思います。
アンケートの作成や途中参加者の誘導など、今回からlapis25さんが運営側として参加してくださいました。とても頼もしいです。
ボクは初めと終わりに少し前に出てしゃべりましたが、元々あがり症で人前に出るのがものすごく苦手なので、完全に目が泳いでました。もっとイベントを開催して慣れていかないと。
提出してもらったアンケートは週末を目標にまとめてイベント報告ページに書く予定です。来週末になったらごめんなさいorz。とりあえず写真だけアップしてみました。
今回のイベントをきっかけに「これからも参加したい」と言ってくれる人もいらっしゃいました。MLに「何かやりましょう」とメールを流してくれればとりあえずボクは動きます。Kansai.pmの活動を今までより活発にしていきたいですね。
最後に、宮川さん、本当にありがとうございました。いずれ必ずKansai.pmからゲストとして招待させてもらいます。
内容については他の方々が書いていらっしゃるので、ちょっと違う視点から書いて見ます。
会場はデジハリ大阪で、初めての人は地図をしっかり確認しておかないとちょっと道に迷うかも?はい、ボクは迷いました。
会場手配も宮川さんのツテでした。急なお願いにも関わらず会場を提供していただいたデジハリ大阪様に多謝です。
出席確認が取れた参加者は途中参加を含めて63名で、普段のミーティングの倍でした。しかもそのほとんどが初参加、半数(以上?)がMLに参加していない方たちでした。Kansai.pmって知名度低いのかなぁ。
残念ながら時間に間に合わず、その後の飲み会だけ参加された方も数名いらっしゃいました。でも、大阪で宮川さんと飲みながら話をできる機会はそうそう無いだろうから、これはこれで貴重な時間だったと思います。
アンケートの作成や途中参加者の誘導など、今回からlapis25さんが運営側として参加してくださいました。とても頼もしいです。
ボクは初めと終わりに少し前に出てしゃべりましたが、元々あがり症で人前に出るのがものすごく苦手なので、完全に目が泳いでました。もっとイベントを開催して慣れていかないと。
提出してもらったアンケートは週末を目標にまとめてイベント報告ページに書く予定です。来週末になったらごめんなさいorz。とりあえず写真だけアップしてみました。
今回のイベントをきっかけに「これからも参加したい」と言ってくれる人もいらっしゃいました。MLに「何かやりましょう」とメールを流してくれればとりあえずボクは動きます。Kansai.pmの活動を今までより活発にしていきたいですね。
最後に、宮川さん、本当にありがとうございました。いずれ必ずKansai.pmからゲストとして招待させてもらいます。
2006年10月11日
Kansai.pm第7回ミーティング - Plagger World Tour in 大阪
mixiやMLへの告知はしたけど、自分のblogで紹介していませんでした(^_^;。
2006年10月17日(火)にKansai.pm第7回ミーティング - Plagger World Tour in 大阪を開催します。
宮川さん直々の講演です。時間の都合のつく方はぜひご参加ください。
ちなみにボクはまだPlaggerを使ったことがありません。当日までに「まるごとPerl! Vol.1」で予習しておきます。
2006年10月17日(火)にKansai.pm第7回ミーティング - Plagger World Tour in 大阪を開催します。
宮川さん直々の講演です。時間の都合のつく方はぜひご参加ください。
ちなみにボクはまだPlaggerを使ったことがありません。当日までに「まるごとPerl! Vol.1」で予習しておきます。
2006年09月15日
最新のエントリーに新着マークを表示させる
Movable Typeで、最新のエントリーに新着マークを表示させるサンプルです。
ネットでいろいろ調べてみたところ、PHPを使うもの、JavaScriptを使うもの、外部CGIを使うものなどが見つかりました。そしてこれらは「最新の」ではなく、エントリーの日時を基準に「投稿から○時間の記事」に新着マークを表示させるものでした。
以下のサンプルは、Movable Type標準のMTEntryNext、MTSetVarBlock、MTGetVarを使って、一番最新のエントリー1件だけに新着マークを表示させるものです。探しきれなかっただけでどこかで公開されているやり方かも知れませんし、もっといいやり方もあるかも知れませんが、ボクにはこれが精一杯でした。
設定するテンプレート : エントリー・アーカイブ
新着マーク : <span style="color: #ff0000">New!!</span>
まず、MTSetVarBlockを使って新着マークをlatestという変数に割り当てます。
次に、MTEntryNextで「次のエントリー」がある場合にもう一度MTSetVarBlockを使って、さっき割り当てた新着マークを消しています。これで「次のエントリー」が無い、つまり最新のエントリーの場合にだけ新着マークが残ることになります。中身を消すだけなので、<$MTSetVar name="latest" value="" $>でもいいでしょう。
最後に、新着マークを表示させたい場所にMTGetVarを使ってlatestに割り当てられている内容を表示させます。MTSetVarを使った変数割り当ては、当然このMTGetVarより先に行わなければなりません。
いかがでしょうか?
最初に試した方法は、MTEntryNextの中でMTElseを使って表示させる方法でした。しかし、やり方が間違っていたのか、それともMTEntryNextの中はMTElseに対応していないのかわかりませんが、これでは表示できませんでした。
「PreviousNextInCategory」プラグインを使えば、カテゴリー別で最新1件に新着マークを表示させることができると思います。
上記はエントリー・アーカイブの場合ですが、カテゴリー・アーカイブでもMTSetVarBlockとMTGetVarを使って表示させることができます。やり方は…考えてみてください(^^;。要望があれば公開してみますが、要は「先に設定して、要らなくなったら消す」です。
ネットでいろいろ調べてみたところ、PHPを使うもの、JavaScriptを使うもの、外部CGIを使うものなどが見つかりました。そしてこれらは「最新の」ではなく、エントリーの日時を基準に「投稿から○時間の記事」に新着マークを表示させるものでした。
以下のサンプルは、Movable Type標準のMTEntryNext、MTSetVarBlock、MTGetVarを使って、一番最新のエントリー1件だけに新着マークを表示させるものです。探しきれなかっただけでどこかで公開されているやり方かも知れませんし、もっといいやり方もあるかも知れませんが、ボクにはこれが精一杯でした。
設定するテンプレート : エントリー・アーカイブ
新着マーク : <span style="color: #ff0000">New!!</span>
<MTSetVarBlock name="latest"> <span class="color: #ff0000;">New!!</span> </MTSetVarBlock> <MTEntryNext> <MTSetVarBlock name="latest"> </MTSetVarBlock> </MTEntryNext> <$MTGetVar name="latest"$>
まず、MTSetVarBlockを使って新着マークをlatestという変数に割り当てます。
次に、MTEntryNextで「次のエントリー」がある場合にもう一度MTSetVarBlockを使って、さっき割り当てた新着マークを消しています。これで「次のエントリー」が無い、つまり最新のエントリーの場合にだけ新着マークが残ることになります。中身を消すだけなので、<$MTSetVar name="latest" value="" $>でもいいでしょう。
最後に、新着マークを表示させたい場所にMTGetVarを使ってlatestに割り当てられている内容を表示させます。MTSetVarを使った変数割り当ては、当然このMTGetVarより先に行わなければなりません。
いかがでしょうか?
最初に試した方法は、MTEntryNextの中でMTElseを使って表示させる方法でした。しかし、やり方が間違っていたのか、それともMTEntryNextの中はMTElseに対応していないのかわかりませんが、これでは表示できませんでした。
「PreviousNextInCategory」プラグインを使えば、カテゴリー別で最新1件に新着マークを表示させることができると思います。
上記はエントリー・アーカイブの場合ですが、カテゴリー・アーカイブでもMTSetVarBlockとMTGetVarを使って表示させることができます。やり方は…考えてみてください(^^;。要望があれば公開してみますが、要は「先に設定して、要らなくなったら消す」です。
2006年08月29日
MAMPのPHP4でpearコマンドを使う
MacOS X用のWebサーバー環境パッケージ「MAMP」は便利ですが、少し困ったところがあります。
PHP4で動かす場合のためにMAMPのPHP4のpearコマンドを使ってパッケージをインストールしようとしても、必要なものが足りないのでインストールできません。
手っ取り早い方法は、PHP5のディレクトリからコピーしてしまいます。
パッケージをインストールする場合、PATHを通してしまうより、面倒でも
なお、--alldeps は依存パッケージもまとめてインストールするためのオプションです。
PHP4で動かす場合のためにMAMPのPHP4のpearコマンドを使ってパッケージをインストールしようとしても、必要なものが足りないのでインストールできません。
手っ取り早い方法は、PHP5のディレクトリからコピーしてしまいます。
cd /Application/MAMP/bin/php5/lib/php cp -rf Archive Console ../../../php4/lib/php cd ../../../php4/bin ./pear upgrade-allこれで、/Application/MAMP/bin/php4/bin/pear を使えるようになります。
パッケージをインストールする場合、PATHを通してしまうより、面倒でも
cd /Application/MAMP/bin/php4/binで移動してから
./pear install --alldeps パッケージ名とする方がいいでしょう。こうしておけばMAMPを削除してもPATHの設定を変更し忘れることもありませんし。
なお、--alldeps は依存パッケージもまとめてインストールするためのオプションです。
2006年08月15日
tDiaryのmyプラグイン用Bookmarklet
tDiaryでmyプラグインを使って自分の日記にリンクを張るときに、ちょっとだけ楽になるかもしれないBookmarkletです。
リンク対象の日記、またはセクションを表示させている状態で下記のBookmarkletを実行すると、ダイアログにリンク用のタグを表示します。
mod_rewriteとhtml_anchorプラグインを使って拡張子htmlで運用している場合にも使えます。
リンク対象の日記、またはセクションを表示させている状態で下記のBookmarkletを実行すると、ダイアログにリンク用のタグを表示します。
mod_rewriteとhtml_anchorプラグインを使って拡張子htmlで運用している場合にも使えます。
2006年08月14日
Maple使ってます
PHPのフレームワーク「Maple」を使い始めました。
PerlのCGI::Applicationモジュールみたいな簡易(?)フレームワークはずっと使っていましたが、RubyのRuby on Rails、PerlのCatalystやSledge、PHPのMojaviやMapleやEthnaなどの本格的(?)なフレームワークは、恥ずかしながら初めてです。
PHPのものはともかくRubyやPerlの上記のものは、うちの会社のお客様が使っているようなレンタルサーバーには設置できない(と思う)から、仕事として手が出せない…ってのは単なる言い訳ですね。自分のスキルアップのためには仕事とは別で勉強しておかないとね。
とにかくMapleを使い始めてみたわけです。
お作法に慣れなくて戸惑ってしまいます。Web上にも書籍にもまだまだサンプルが少ないですし。
それでも何とか形にはなってきた気がしなくはない…と思うので、備忘録代わりにこのblogで書いてみる…かも知れません。
うーん、なんとも曖昧な記述ばかりだ。なんせ、1ヵ月半放置してたblogなので、書く自信があまりなくて…(^^;。
まあ、書けそうなら書いてみる、ということでm(_ _)m。
PerlのCGI::Applicationモジュールみたいな簡易(?)フレームワークはずっと使っていましたが、RubyのRuby on Rails、PerlのCatalystやSledge、PHPのMojaviやMapleやEthnaなどの本格的(?)なフレームワークは、恥ずかしながら初めてです。
PHPのものはともかくRubyやPerlの上記のものは、うちの会社のお客様が使っているようなレンタルサーバーには設置できない(と思う)から、仕事として手が出せない…ってのは単なる言い訳ですね。自分のスキルアップのためには仕事とは別で勉強しておかないとね。
とにかくMapleを使い始めてみたわけです。
お作法に慣れなくて戸惑ってしまいます。Web上にも書籍にもまだまだサンプルが少ないですし。
それでも何とか形にはなってきた気がしなくはない…と思うので、備忘録代わりにこのblogで書いてみる…かも知れません。
うーん、なんとも曖昧な記述ばかりだ。なんせ、1ヵ月半放置してたblogなので、書く自信があまりなくて…(^^;。
まあ、書けそうなら書いてみる、ということでm(_ _)m。
2006年07月02日
TMPL_NOW filter
HTML::Templateモジュールのfilterサンプルを紹介します。TMPL_NOWというテンプレートタグを追加して、現在日時を表示するものです。
あくまでサンプルなので、あまり複雑にならないようにしています。正規表現はもう少し工夫した方がいいのかも?
cache系のオプションを使うと、多分最初に実行されたときの日時で固定になると思うので注意しましょう。
TMPL_VARで設定した日時データを表示する目的には使えません。
#!/usr/local/bin/perl
use strict;
use warnings;
use HTML::Template;
use POSIX qw/ strftime /;
MAIN:{
my $tmpl = HTML::Template->new(
filehandle => *DATA,
filter => \&tmpl_filter_now,
);
print $tmpl->output;
}
sub tmpl_filter_now {
my $text_ref = shift;
my @localtime = localtime;
print $$text_ref;
$$text_ref =~ s{
<(?:!--\s*)?TMPL_NOW\s+FORMAT=(["'])(.*?)\1\s*(?:--)?>
}{
strftime( $2, @localtime )
}xgise;
}
__END__
<TMPL_NOW FORMAT="%Y/%m/%d %H:%M:%S">
<!-- tmpl_now format='%Y年%m月%d日 %H時%M分%S秒' -->
表示フォーマットはFORMAT属性で指定します。POSIX::strftime()にそのまま渡されます。あくまでサンプルなので、あまり複雑にならないようにしています。正規表現はもう少し工夫した方がいいのかも?
cache系のオプションを使うと、多分最初に実行されたときの日時で固定になると思うので注意しましょう。
TMPL_VARで設定した日時データを表示する目的には使えません。
2006年06月29日
L.L.Ringのチケット購入
L.L.Ringのチケットを購入しました。3年振りに東京に行くことになります。
楽天チケットで申し込みをしてバイクでローソンに行き、Loppiで受け取り手続きをしたのですが、Loppiの操作手順をメモしていなかったので、最初にLoppiを操作したとき何が何かわからずにそのまま帰るという情けない結果に終わりました…。
帰宅して操作手順を携帯のカメラで撮影し、翌日、会社の行き帰りにどこかのローソンに寄って…と思ったけど、通勤路の近くにも会社の近くにもローソンが無い!
しょうがないので帰宅してからまたバイクでローソンまで走りました。
開催は8月26日(土)。前日、会社の帰りにそのまま東京入りして、日曜日の夜に帰宅する予定です。東京の友人に「泊めて」と連絡して宿を確保しなくては。
楽天チケットで申し込みをしてバイクでローソンに行き、Loppiで受け取り手続きをしたのですが、Loppiの操作手順をメモしていなかったので、最初にLoppiを操作したとき何が何かわからずにそのまま帰るという情けない結果に終わりました…。
帰宅して操作手順を携帯のカメラで撮影し、翌日、会社の行き帰りにどこかのローソンに寄って…と思ったけど、通勤路の近くにも会社の近くにもローソンが無い!
しょうがないので帰宅してからまたバイクでローソンまで走りました。
開催は8月26日(土)。前日、会社の帰りにそのまま東京入りして、日曜日の夜に帰宅する予定です。東京の友人に「泊めて」と連絡して宿を確保しなくては。