'."\n");?> 2007年7月 Archive - 勤務先と無関係なことを書く日記

Home > Archives > 2007年7月 Archive

2007年7月 Archive

DOMKE サドルバッグ化・現状

k070701_114445.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:01 11:44:45
ShutterSpeed1/160
Aperture2.8
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal3264x2176
FileSize36 kB

先週買い込んできたものを試した結果、現状はこれが一番安定。道具吊るして引っぱりあげるやつ(かな?)を利用。20km くらい走ったが、強度・安定性は特に問題ないように思える。見た目とか装着スピードとか、色々不満だが、先々週よりは随分マシ

ベルクロは、レール通す時にあちこちに張り付いてイラッとするのでやめた。ジャストの長さのヒモの両端にカラビナつけるのが一番スピーディだと思うんだが、よいヒモを思いつかんので、当分これで。適当な長さに切れば、これでも十分かも知れず

  • Comments (Close): 0
  • TrackBack (Close): 0

WebService::PhotoZou に photo_info を追加

フォト蔵API」を使うために WebService::PhotoZou を覗いてみたんだが、唯一使いたいメソッド「photo_info」に対応していないので、パッチ

--- PhotoZou.pm.org     2006-09-30 01:59:58.000000000 +0900
+++ PhotoZou.pm 2007-07-02 11:21:54.000000000 +0900
@@ -122,6 +122,13 @@
     $res->{info}->{user_group} || [];
 }

+sub photo_info {
+    my ($self, %param) = @_;
+    my $content = $self->_request('photo_info', %param);
+    my $res = $self->_to_result($content) or return;
+    $res->{info}->{photo};
+}
+
 sub errormsg {
     my $self = shift;
     my $msg;

いちおう作者さんにお知らせしておこうと思ったら、フォト蔵関連エントリ 1 個。ご本人は photo_info いらないのかも

パッチどうもありがとうございます。photo_info含め、だいぶメソッドが増えているようですね。近いうちに対応します。 - spiritloose (2007年07月02日 21時22分07秒)
わーい、楽しみに待ってます - 髭。 (2007年07月02日 21時36分53秒)
  • Comments (Close): 0
  • TrackBack (Close): 0

WebService::PhotoZou::Exif をでっちあげる

で、さっそくもろもろ情報取得しようとしてみたが、あんまし欲しい情報がはいってない

Exif情報が表示されるようになりました」というのは、表示されてるだけで、API からは取得できないのね

しかたないので、正式に API で対応するまででっちあげることにした

  • 方法 1 : photo_info で取得した original_image_url からオリジナル画像を取得して解析する
    • メリット : 画像に残っている情報は根こそぎゲット
    • デメリット : オリジナル画像がでかいと、当然その分取得に時間かかる
  • 方法 2 : フォト蔵の HTML を解析して、表示されている情報を取得
    • メリット : HTML を取得する程度なら、時間はそんなにかからない
    • デメリット : 表示されているものしか取得できない。HTML の構造が変わる可能性あり

そのうち API 経由で取得できるようになるだろうから、方法 2 で。

(2007/07/03 追記) WebService::PhotoZou::photo_info が undef 返してる時のこと考慮してなかったので、一行追加

package WebService::PhotoZou::Exif;
use strict;
use warnings;
use base 'WebService::PhotoZou';

use LWP::Simple;
use HTML::TreeBuilder::Select;
use Encode;

sub exif_info {
    my ($self, %param) = @_;
    my $content = $self->photo_info(%param);
    return unless $content;  # 2007/07/03

    my $text = $content->{url} ? LWP::Simple::get($content->{url}) : '';
    $text = decode('utf8', $text);

    my $tree = HTML::TreeBuilder::Select->new;
    $tree->parse_content($text);
    my @selections = $tree->select('div#media_info_extend div.list div.title_extend,div.photodata_extend');
    my %hash = map { $_->as_text; } @selections;

    $content->{exif} = \%hash;
    return $content;
}

1;
  • Comments (Close): 0
  • TrackBack (Close): 0

トラックバックをどうすべきか

今に始まったことじゃないが、FreeStyleWiki からトラックバックしようとすると NG のことが多いので、そろそろ何とかすべきかどうか考え中

  • Comments (Close): 0
  • TrackBack (Close): 0

企画系送別会

企画系の人を中心に、送別会をしてくれた。浪花屋鳥造?だったかな。あたりまえだが鳥の店である。他愛もない話が楽しかった

  • Comments (Close): 0
  • TrackBack (Close): 0

しまなみ海道・その1 ×29=688KB

有休を好き放題使えるこの期間を逃したら、子供が成長するまできっと行けないだろうと思い、夢にまで見た(大げさ)しまなみ海道へ

新大阪〜(新幹線)〜福山〜(在来線)〜尾道
福山では学生がドカッと乗ってきて、どないしよかと思ったが、一駅でみんな降りていってガラガラになった

半分はこの日のために購入した「CleenSpeed Blend」

尾道駅前の会館みたいなところは 09:00 開館らしく、そこではサイクリングチケット買えず。裏口の事務所を襲撃し「あそこで売ってるかも」と教えてもらって、駐車場+レンタサイクルの受付になってるところで購入。あちこちのサイトで「07:00 から開いてるのでなんたら会館でチケット購入のこと」みたいに書いてるが、今は事情が違うようなので、要注意

その後、駅前からフェリーで向島へ

向島はサクッと通過する予定だったが「『あした』のロケ地『津部田の坂道』」というのを発見してしまったので、大林監督のファンでもないが、登ってみる。見た目以上に急坂で、いきなりウィリー。スタート早々ケガするとこだった

さぁ、因島大橋だ。自転車で渡れると思うと、マニアでなくとも、ちょっとワクワク

橋まで登る道は想像していたより急で、(ママチャリで登るなら、通学高校生くらいの脚力ないとしんどいよなぁ)とか思いながら、車もいないしのんびりと

因島大橋は、因島側に料金箱があった。自転車は 50 円也

モアイ!?

因島は、向島に比べるとアップダウン多め&サイクリングロード用ナビがわかりづらい。途中で「尾道サイクリングロード」と「今治サイクリングロード」の二つのナビがあることに気づいて、今治を目印に進む。まぁ、島なんで、迷ってもそんなに困らないとは思うけど

おやつのドラ焼きを食べたり「除虫菊」の看板を見たり「ほぉ、せとうち七福神なんてあるのか」とか思ったりしながら、生口橋到着

でも、すぐには渡らず、今回の旅の唯一目的らしい目的をはたすべく、耳明神社を目指す

お守りを頂いた後、生口島へ

非常に気になりつつも「嫁いらず観音」は今回はスルーで

そろそろ昼食。通り沿いにあった「祇園飯店」(だったかな)という普通の飯屋へ。ラーメンは舌に合わず。焼き飯は普通にうまかった

山間の柑橘系畑を自転車専用道が走っているので、あちこちで絶景。三脚持ってないので、その場でクルクル回って撮影。なんちゃってパノラマ

町中は寺社仏閣・美術館・大きめの海水浴場・キャンプ場などあり、わりと観光地然としていた。休憩所で、おへんろのおっちゃんと地元のおばあちゃんと会い、しばし雑談。元気なおばあちゃんの「おかげの気持ち」みたいな話が印象的だった

さぁ、本日最後の橋「多々羅大橋」だ

「多々羅の鳴き龍」。橋の上 2 箇所に柏木添え付け。おもしろかったので「ヤッホー」とか「オレンジアップルトマトー」とか「ちょっと」とか叫んでみようかと思ったが、点検中のおっちゃんとかいたのでやめておく

橋を渡り終えたら大三島。ちょっと大きめの公園&おみやげ売り場が見えてきた。海上自衛隊のヘリのオブジェあり升。いや、出動可能なのかもしれんが

幸せの鐘。「多々羅大橋とノルマンディ橋の姉妹提携を記念して設置されたものです」だそうで。今も幸せだが、いくらでも幸せになりたいので、ついておく。すげぇ響いた。平日の昼間、ええおっさんが、幸せの鐘を、ひとりで=けっこう痛い絵かもしれず

デコタンゴールジュースとオレンジジャムと八朔マーマレードを宅配便で自宅に送り、宿を目指す。予定通り、16:00 頃に宿到着。安価な民宿っぽいとこにとまりたかったんだが、休みだったりして予約できなかったので、10,000円出すことにして「旅館富士見園」へ。窓から絶景がというわけでもないし、外装工事中。部屋は普通にきれいだし、まぁいいか、とか思ってたら、実はこれが大正解だった

ひとまずは風呂へ。客一組づつ順番に、なルールだが、到着時点で宿泊客二組&一組は近くの温泉へ、ということで、海水風呂貸し切り。外装工事のお兄ちゃんにセクシーポーズを披露

梅チューハイのみながら、ウトウトしながら、晩飯を待つ

晩メシー

これ以外に、天ぷら盛り合わせとか煮魚とか出てきて、普段の夕食の三倍くらいの量になったが、無事完食。上品な味付けで、大変満足。食にあまりこだわりのないワシだが、この食事のために、もう一度来ようと思った

食べ過ぎたせいか、なかなか眠れず。結局 23:00 頃就寝

寄り道しなければ 40km くらいの距離だけど、寄り道したりのんびり休憩したりで、本日は 60km 弱を 7 時間かけて走行。のんびり派の方への参考までに

ちなみに、デコタンゴールジュースは非常に美味だったので、お取り寄せ決定

  • Comments (Close): 0
  • TrackBack (Close): 0

しまなみ海道・その2 ×20=496KB

午後から降りそうな予報ではあったが、目を覚ましてみると、朝から雨。んー、残念

ともあれ、まずは朝食。安い旅館の朝食は家庭の朝食よりしょぼしょぼなことが多いんだが、そんなことはなく、朝から三杯メシ食らう

雨降ってなければ、なんたら言う映画のロケ地となったらしいなんたら小学校でも見にいくかと思っていたが、降ってるので、まっすぐに大三島橋へ。さらば大三島

こんにちわ、伯方。雨が降るし、まだ朝九時だし、伯方の塩アイスは売ってないし、右から左へ通り過ぎるだけ。さようなら、伯方

伯方・大島大橋。今日もカメラを持ってくるくる回る

さぁ、大島だ

しんどかった。自分の脚力ではいっぱいいっぱいの登り。この島は一周するべきだと聞いてたんだが、そういう意味だったのね。ワシ、坂バカではないので、平らな道が好き

最後の橋だ! 多々羅大橋だ!

休憩中のおじさんと会って、しばし世間話。三原からフェリーで大三島まで来て、今治からは電車で帰るらしい。高い合羽を買ったのにグショグショだと言いながら、トランジットスポーツで颯爽と走って行った

結局 2 箇所でしか見かけなかったスタンプ台。紙は捨てる気がするが、押したという記念写真は撮っておく

お昼前にサンライズ糸山到着。結局、雨に負けて、ほぼ一直線に今治に来てしまった。まぁいいや、今治観光でもしよう(後で後悔)

昼飯。さんざんき? という名の鳥の唐揚げ

うどん、ぼっちゃん団子、ぽえむ等を自宅に送り、出発

観光ガイドに「見るべし」と書かれている JR 波止浜駅。ナビまで出てるので行ってみたが、普通の無人駅。子供の頃から両隣まで含めて無人駅だったワシは、少しもおもしろくなかった。都会育ちで無人駅に縁がなかった人はどうぞ

今治城。工事中。雨も降ってるし、中には入らず

港が近いことだし、先にフェリーの乗船券 (22:40 くらい出港) 買っとくか、と売り場に行ったら、どうやら夜にならないと売ってくれないらしい。仕方ないので、どっか行こう。。。とするも、どこも思いつかず。雨をしのぎたいと思い、まずは今治駅を目指すことに。

が、しかし、どっちに行けば今治駅なんだよ! 仕方ないので、線路沿いに走っていたら見つかった。。。どうやら港から一本道だったらしい。

で、自転車を駐輪場に預けて時間つぶし。。。したいのに、駅周辺何もないじゃん! (14:00くらい)
駅周辺巡回。本屋を見つけて、雑誌と文庫本購入。雑誌読み捨て (16:00 くらい)
まだたっぷり時間あるので、巡回範囲を広げる。ダイマル発見。そっち方面に向かって歩いたら商店街とか発見。本屋とダイソーで時間つぶし (17:00 くらい)

まだたっぷり時間あるが、もうヒマでヒマで仕方がないので、晩飯食ってフェリー乗り場で読書することにした

最初に港に来てから 8 時間、再度港に来てから 4 時間。やっと来たよ!

一日雨に濡れてたので、まずは風呂。その後、コーヒー飲んで軽く読書して就寝。明日の神戸は。。。雨降ってないといいなぁ

結局まともに観光もせずに57km走行。こんなことなら、雨に負けず島を探検するか、とっとと松山あたりまで足を伸ばせば良かったかもしれず。無計画万歳

  • Comments (Close): 0
  • TrackBack (Close): 0

しまなみ海道・エピローグ ×6=148KB

04:00 起床。朝飯の準備はしてなかったので、250円のブルジョアシーフードヌードル

神戸到着。さぁ、もうひと漕ぎ

六甲ライナーの駅は、駅前までスロープをあがっていくことができた。担がなあかんと思ってたので、ちょっとラッキー

JR、北急乗り継いで、緑地公園駅まで

「家に帰るまでが遠足」と心に刻み、08:00 頃帰宅。楽しかった。。。が、ずっとキーンのサンダルで過ごしたので、足、まだら焼け orz

  • Comments (Close): 0
  • TrackBack (Close): 0

南港の野鳥園

ATC では虫類展をやってるということで、子供を連れて見に行く。は虫類よりは、鳥と虫が目的なんだけどね。買いたい人以外にとっては特に楽しいこともない即売会だったので、鳥刺繍の野球帽購入して退散

ロゴスのアウトレットショップがあったので、日よけ用に安いサンシェード一個購入。これは、車でハイキングの時とかに使う予定

その後、サンドイッチを調達し、野鳥園を散策。ミーティングルームで食事させてもらった後、一周回る。チドリの類いはさっぱり区別がつかないなぁ

k070708_134311.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:08 13:43:11
ShutterSpeed1/60
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize200x300
ImageSizeOriginal3264x2176
FileSize83 kB

  • Comments (Close): 0
  • TrackBack (Close): 0

嫁とデート

http://d.haro.jp/images/k070711_130301.jpg

昆陽池公園の駐車場そばに「ヘブンズキッチン」という旨い生パスタの店があるということで、おもむく。ちょうどお昼時ということもあってか、満席。電話もらうことにして、公園散歩

嫁と二人で歩くのは何年ぶりだろう

k070711_121141.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:11 12:11:41
ShutterSpeed1/30
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO125
ImageSize200x300
ImageSizeOriginal3264x2176
FileSize75 kB

40分くらい経って、やっと入店。レッドグレープフルーツジュースサービス。ラッキー☆

ランチ1000円(サラダ+バケット+パスタ+ドリンク)を注文

k070711_130301.jpg
MakeKDDI-CA
ModelA5513CA
DateTimeOriginal2007:07:11 13:03:01
ShutterSpeed1/25
ImageSize225x300
ImageSizeOriginal640x480
FileSize54 kB

美味! パスタ好きにはたまらん。バケットも美味。素敵

かわいらしい店舗をご近所の奥様が占拠しておしゃべり、という状況だったが、機会を見つけて、また行く

  • Comments (Close): 0
  • TrackBack (Close): 0

姐×2+髭=呑

姐二人といっしょに呑みにいく。梅田付近で、立ち呑み屋の雰囲気に近いが座り呑みな店へ。おっちゃんのリアクションを楽しみつつ、のんびりと。気づいてみると全員違う勤務先だが、集まろうと思えばわりと気軽に集まれるもんだ。楽しかった

  • Comments (Close): 0
  • TrackBack (Close): 0

くちぶえ番長

小学校高学年向け作品なんだろうが、大人だからこそ読むといいのではないかな

自分が子供の頃のことを思い出して甘酸っぱい気持ちになったり、自分の子供の成長に思いを馳せたり。一時間くらいで読めてしまうので、子供がいる人にはぜひ読んでもらいたい

  • Comments (Close): 0
  • TrackBack (Close): 0

アキハバラ@DEEP

前から読もうかなと思いつつ、DVD を先に見ようかなと思い、でも 2 時間でおさまるボリュームにはみえないよなと思い、なんか売れてしまったから後でいいやとひねくれ、、、と変遷の後、先日のしまなみ海道フェリー待ち時間のために購入

おもしろい。各キャラがたちすぎるくらい特徴あるし、厚さのわりに一気に読めた

ただ。。。オチだけは気にいらない。なんか、盛り上がった気持ちが一気にしぼんだというか。。。マンガ的な活劇が、最後にコギレイにまとまった印象。それでも高評価なんだけど

  • Comments (Close): 0
  • TrackBack (Close): 0

のんのんばあとオレ

前職(正確にはまだ現職だが)の後輩からのプレゼント。ぜひ読んでくださいとのことだったので、楽しみにしていたのだが、「あー、ワシの好みをよくわかってるなぁ」と思った

子供が子供なりに考え行動している姿、子供から見た大人の姿、日本人であるということ、自分の祖父や祖母のこと、自分の子供からみた父母・祖父・祖母の姿。。。色々なことを考えた

  • Comments (Close): 0
  • TrackBack (Close): 0

カブトムシ

実家からコールデンウィークに持ち帰ったカブトムシの幼虫、今年は無事全部成虫に。オス 10 匹、メス 8 匹の計 18 匹。子供たちは、去年までは箱から出して戦わせたりして遊んでいたが、今年は普通にお世話だけしている。飼っているだけで満足という感じ。他の遊びの方が楽しくなったか?

  • Comments (Close): 0
  • TrackBack (Close): 0

グラスホッパー

これは、いいハードボイルド。著者得意の人間関係描写がすばらしい。最初から最後まで不満なし。。。だったと思う。読んでから時間たったのでちとあやしいけど

伊坂幸太郎作品は、結構クセがあるような気がするが、本作はいいハードボイルドなので、ふつーにおすすめ

  • Comments (Close): 0
  • TrackBack (Close): 0

折り紙動物園

070715_162857.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:15 16:28:57
ShutterSpeed1/30
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal3264x2176
FileSize60 kB

子供たちは親に似て折り紙好き。ダンボール箱と厚紙をあたえたら、二人で動物園を作っていた。でも、完成した動物園では遊ばない。飽きるのが早いのも親譲り

  • Comments (Close): 0
  • TrackBack (Close): 0

虫とり花つみ

台風のためどこにも出かけなかった三連休も今日で終わり。まだ雨が降りそうな気がしたので、タモとカゴもって近所を散歩

ワシ … シオカラトンボ、キアゲハ、アオスジアゲハ
元喜 … もんしろちょう、くまぜみ
夏歌 … ヒメジョオン、シロツメクサ

豊作であった。虫はキャッチ&観察&リリース。花は持ち帰って空き瓶に

案の定、夕方から雨。布団が大変なことになっている家多数。遠出しなくてよかった

  • Comments (Close): 0
  • TrackBack (Close): 0

めばえ教室

休みなので、元喜を連れてめばえ教室へ。夏歌は幼稚園で夕涼み会? なので、嫁はそっちへ

2ヶ月ぶりくらいに車の運転したら、自転車で移動している時よりも遠く感じた。たまには車にも乗ることにしよう

めばえ教室では図形を組み合わせたりして遊んでいると思ってたんだが、かけ算してるのには驚いた。子供は遊びの中でいろんなことを覚えていくが、まさかかけ算まで。。。

  • Comments (Close): 0
  • TrackBack (Close): 0

船木誠勝復帰!

自分にとって船木は、あともうちょっと背が高ければ最強のプロレスラーという位置づけなわけで、「闘将! 船木誠勝」なんていう自己編集ビデオを作ったりしてデビュー当時の試合から追いかけていたわけで、年も同じだし、がんばって欲しいと思う YO !

  • Comments (Close): 0
  • TrackBack (Close): 0

楽天ダイナミックアド

http://affiliate.rakuten.co.jp/dynamicad/
Google サンがやってるような、自動で良さげな広告表示するやつ。楽天はどっかから優秀な解析エンジン仕入れたんかな? と思い、本当に「サイトにあった商品を自動表示!」なのか実験中。。。なのだが、いきなりハルヒとかでてますよ

  • Comments (Close): 0
  • TrackBack (Close): 0

mixi の履歴が更新されない

mixi の自分の日記の更新情報がずっととまってるのに気づいた、このサーバが重くて取得できないとか、そういう理由なんだろうな、きっと

  • Comments (Close): 0
  • TrackBack (Close): 0

梅田までの経路・三たび

昨年、梅田までどうやって自転車で行くか、いろんなルートを試していたんだが、八月からチャリ通するかもしれないので、遊び要素を排除し、安全で、自分にとって楽なルートを再度探索。行きと帰りで微妙に変えて。現状、帰りのルートが最適解

朝八時台でも、1 時間見ておけば大丈夫なことはわかった。徒歩+電車でも同じくらいの時間なので、自転車の方が快適だな。パンクリスクを考えても 1 時間半あれば超余裕

行き

{{routemap_d2 WG20070717232109.log}}

帰り

{{routemap_d2 WG20070718001939.log}}
チャリ通ですか! やるなあ.そういや年金サイトのIDきました. - karma (2007年07月23日 19時44分59秒)
うちはまだきませんねぇ、年金 ID。年金自体もらえない気もしますが :-P - 髭。 (2007年07月23日 21時33分13秒)
  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク

お昼過ぎ、ふと思い立ってフレームワークを作り始めたので、記録残し

CGI::Simple か CGI::Minimal を使って、機能を減らして、もうちっとシンプルな俺仕様 CGI::Application が欲しい。CGI::Application 使ってると、いろんなことを覚えることができないワシはコピペが増えて困る

イチから必要な機能だけ実装した方が楽かも。自分で実装したら覚えること減りそうだし

CGI::Simple よさげだけど、どうせなら CGI::Minimal 使った方が極端で楽しいかも。これで CGI::Application より重くなったら、自分の実装が悪いということで

CGI::Application のマネをするため、コード斜め読み

とりあえずここまで

  • Comments (Close): 0
  • TrackBack (Close): 0

amachang のプロフ画像

一度も会ったことはないが、自分の中では、なんとなくお洒落さんな若者という印象があったamachang、今日日記を見たら、

hageama.jpg

こんなんなっちゃった。カミングアウト?(笑

フサフサでもハゲでも、技術者としての彼が変わるわけではないが、朝からコーヒー吹いた

  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク (2)

HikiDoc を使った WEB アプリケーション」の時にはしりきれとんぼだったので、今回はちょっと続けてみようかと思う。今のところは

  • 名称は CGI::Minimal::App (仮)
  • ロジックは CGI::Application をほぼそのまま頂く
    • 使い方が変わると、自分自身が使いづらくなるので
    • 細かいあたりは、コーディングを楽しめるように自分流で
  • CGI::Minimal の perldocに「warnings と vars は重て!」とか書いてあるが、どうするかは作ってから考える
  • CGI::Application::Plugin で、いつも使っているものは最初からいれてしまう
  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク (3) - $obj->query() と $obj->param()

package CGI::Minimal::App;

use strict;
use warnings;

use UNIVERSAL::require;

sub query {
    my $self = shift;
    my $query = shift;

    # If query object is not exist, set a new query object.
    unless ( exists $self->{__QUERY_OBJ} ) {
        if ( defined $query ) {
            $self->{__QUERY_OBJ} = $query;
        }
        else {
            my $module = 'CGI::Minimal';
            unless ( exists $INC{$module} ) {
                $module->require or die $!;
            }
            $self->{__QUERY_OBJ} = $module->new();
        }
    }
    return $self->{__QUERY_OBJ};
}

sub param : lvalue {
    my $self = shift;
    my @data = @_;

    # First use? Create new __PARAMS!
    $self->{__PARAMS} = {} unless exists $self->{__PARAMS};

    if ( ref($data[0]) eq 'HASH' ) {
        # param($hash_ref)
        %{$self->{__PARAMS}} = (%{$self->{__PARAMS}}, %{$data[0]});
    }
    elsif ( scalar(@data) % 2 == 0 ) {
        # param(@array)
        %{$self->{__PARAMS}} = (%{$self->{__PARAMS}}, @data);
    }
    scalar(@data) == 1 ? $self->{__PARAMS}->{$data[0]} : $self->{__PARAMS};
}

C::A::P::Stash 的に param を使いたかった & lvalue 使ってみたかった

$obj->param->{'hoge'} = 'fuga'; # OK
$obj->param('hoge','fuga');     # OK
$obj->param('hoge') = 'fuga'    # OK
$obj->param({hoge => 'fuga'});  # OK
$obj->param(hoge => 'fuga');    # OK
$obj->param = {hoge => 'fuga'}  # OK

print $obj->param->{'hoge'};    # fuga
print $obj->param('hoge');      # fuga
  • Comments (Close): 0
  • TrackBack (Close): 0

夏休み突入

子供たち、夏休みに突入。といっても、土曜日なので普段の週末と変わらないと言えば変わらない

朝食後、セミ採り。今年は昨年、一昨年のような異常発生はしてないので、概ね高い位置で鳴いている。それでもなんとか一匹ゲット。セミはそれっきりだが、カラスアゲハゲット。。。と思いきや、図鑑によると、カラスアゲハってほとんどいないのな。今日のはクロアゲハのメスでした

その後、昼食まで元喜の自転車練習。暑いしなかなかやりたがらないので「七月中にコマはずすで!」とハッパをかける。最初に背中を押して勢いをつけてやると、後は自分で乗れるようになった

夜は祭り

070721_192551.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:21 19:25:51
ShutterSpeed0.6
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO154
ImageSize300x200
ImageSizeOriginal3264x2176
FileSize58 kB

070721_192837.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:21 19:28:37
ShutterSpeed0.3
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO154
ImageSize200x300
ImageSizeOriginal3264x2176
FileSize63 kB

GX100 持ってるじいちゃんに、お仲間やな、と声をかけられた。考えてみると、GR-D や GX100 って、店頭以外であんまし見ることないな

  • Comments (Close): 0
  • TrackBack (Close): 0

自転車コマはずし

070722_100341.jpg
MakeKDDI-CA
ModelA5513CA
DateTimeOriginal2007:07:22 10:03:41
ShutterSpeed1/500
ImageSize225x300
ImageSizeOriginal640x480
FileSize15 kB

鉄は熱いうちにうたねばならぬ。今日も練習。。。が、すぐに乗れるようになった。カーブもぎこちなくも曲がれてるし、目標達成

午後、さっそく近所の自転車屋に行って、ニュー自転車注文。ブリヂストン「クロスファイヤージュニア」の赤黒で。親父的には「スピーダー」の方がシンプルでかっこいいと思ったが、子供心をとらえたのはクロスファイヤーだった。自分が子供の頃もデコチャリ好きだったし、そんなもんか

サイズは 22inch かな? と思ってたが、一年生最大の体格を活かし、24inch でも大丈夫だった。買い換えが少なくてすむ。親思いの良い子だ

夜は再び祭り。周りの大人のマネをして踊りまくる元喜・夏歌。それを見守るおばちゃん達。地域社会も重要やなと思った

  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク (4) - 枠組み完成

大枠できた。簡単なコマンドラインアプリは作れるレベル

  • PATH_INFO or QUERY_STRING で実行するメソッド振り分ける部分できた
  • REQUEST_METHOD で実行するメソッド振り分ける部分できた
  • TT 使う部分は未実装だが、構想はまとまった
  • HTTP header をあつかう部分を構想中
  • CGI::Minimal の全機能使いたいかなぁ。。。と思案中
  • mod_perl とか fcgi とかについて思案中
  • Comments (Close): 0
  • TrackBack (Close): 0

飯ごう炊さんモドキ

嫁と夏歌がバレエの練習にいってしまい、元喜と二人になったので、服部緑地で飯ごう炊さん。。。といっても、飯ごう使わずナベだし、焚き火じゃなくてアルコールストーブだし、レトルトのカレーだけど

070723_122709.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:23 12:27:09
ShutterSpeed1/250
Aperture4.0
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal3264x2176
FileSize40 kB

ご飯たけて、カレー温め中。元喜が「ご飯炊けたかどうかはフタ開けてみたらわかる」という親父のいい加減な教えに疑問をもつのは何年後だろう

070723_124047.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:23 12:40:47
ShutterSpeed1/160
Aperture3.5
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal3264x2176
FileSize39 kB

大変おいしくできました(レトルトなので当たり前)

子供バッタやトンボ追いかけて帰宅。大変楽しかった

。。。が、どこの誰か知らんが、こういうのはやめれ

k070723_123340.jpg
MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:23 12:33:40
ShutterSpeed1/400
Aperture5.0
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal3264x2176
FileSize71 kB

  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク (5) - 最低限の実装完了。。。したけど

最低限の実装は完了した。。。が、このまま作り続けていくと「CGI::Application じゃあかんの? 自分用のラッパ書いたらええやん」ということになりそうな香りがプンプンと。。。そんだけ CGI::Application がよくできてるってことだなぁ

シンプルなものが欲しいはずなのに、なぜ欲張ってしまうかというと「公開」と「汎用性」が気になるから。そして、書き始めるといろんなこと試したくなるから。趣味でやってると欲にキリがなくなるので、ひとまず「融通きかなくて俺しか使えないぜベイベー」仕様を意識

  • Comments (Close): 0
  • TrackBack (Close): 0

今日はたくさん書く

呑みにいったけど、なんか酒が進まず、いつもの半分くらいいしか呑めなかったので、残りの半分文章を書いてみる

  • Comments (Close): 0
  • TrackBack (Close): 0

安産の仕方

s/安産/暗算/

元喜「28+9 は 37 だねぇ」
ワシ「ん?」
元喜の手元には「廃品回収 28 日 9 時より」の紙が。ほぉ、一年生でもこのくらいなら暗算できるんか

で、脳内処理が気になった。まず予測
ワシ予測「28+10=38。38-1=37」
嫁予測「8+9=17。17+20=37」

正解「28+2=30。30+9=39。39-2=37」

おもしろい

  • Comments (Close): 0
  • TrackBack (Close): 0

椿

子供と風呂に入る
元喜「あ、シャンプーが椿や」
ワシ(椿って。。。漢字とローマ字しか書いてへんぞ)
  「なんで椿ってわかった?」
元喜「椿の絵、描いてあるやん」

字に気をとられて気づかなかった

  • Comments (Close): 0
  • TrackBack (Close): 0

楽天の広告は、気のせいか進化している

最近はハルヒも見かけないし、ちょっとづつ適正になってきている気がするが、

  • 残念ながら、ワシはサプリメントはとらない。実際がどうであれ、気持ち的にサプリメントが主となり、補助でなくなっている人を見るたびに、人類にがっかりする
  • サイト名的に仕方ないのかもしれんが、これにもまったく興味がない

higekujira.jpg

  • Comments (Close): 0
  • TrackBack (Close): 0

ヒロシと呑み

阪急駅ビル上のビアガーデンで。祭りのため街も人出が多かったが、ビアガーデンも人多杉。と思ってたら花火が。それでか

二人で呑むのも飽きたので、彼とワシの共通の知人達に、仕事中だろうと思いつつ「今呑んでるぜ、うひひひひ」と嫌メール。返信率 7 割。素晴らし

ともあれ、彼には「今度この娘と結婚する也」くらいのサプライズを求む

  • Comments (Close): 0
  • TrackBack (Close): 0

初キャンプ・初日

飯ごう炊さん(最近はデイキャンプとか、洒落た言い方をしますな)には何度となく連れていってるが、泊まりキャンプは子供たちにとって初めて。いきたいところはたくさんあるが、保険をかける意味で、近場の「自然の森ファミリーオートキャンプ場」へ。

大阪府豊能郡能勢町山辺411

よーく見ると、道端に看板があるので、それに従って進む

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 14:22:14
ShutterSpeed1/125
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize30 kB

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 15:58:53
ShutterSpeed1/80
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize31 kB

水遊びをしたり、トンボを追いかけたり、野生鹿を見たりしてひとしきり遊んだ後は、夕食の準備。マキを運んだり、米を研いだり、子供たちも活躍

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 16:37:11
ShutterSpeed1/320
Aperture4.5
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize32 kB

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 16:43:46
ShutterSpeed1/30
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO100
ImageSize300x200
ImageSizeOriginal300x200
FileSize30 kB

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 17:05:43
ShutterSpeed1/40
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize200x300
ImageSizeOriginal200x300
FileSize29 kB

親父は火の番。この後、鍋がひっくりかえる。材料は無事だったが、水から煮直し。鍋の安定には注意しましょう

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 17:32:54
ShutterSpeed1/40
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO125
ImageSize300x200
ImageSizeOriginal300x200
FileSize29 kB

カレー完成

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 18:11:13
ShutterSpeed1/30
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO88
ImageSize300x200
ImageSizeOriginal300x200
FileSize28 kB

みんなで片付け

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 18:48:39
ShutterSpeed1/10
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO154
ImageSize200x300
ImageSizeOriginal200x300
FileSize29 kB

暗くなったら花火

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 19:58:44
ShutterSpeed1/30
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO125
ImageSize300x199
ImageSizeOriginal300x199
FileSize23 kB

初テント寝。おやすみー

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:27 20:49:06
ShutterSpeed1/30
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO125
ImageSize300x200
ImageSizeOriginal300x200
FileSize24 kB

  • Comments (Close): 0
  • TrackBack (Close): 0

初キャンプ・二日目

慣れないテントで寝つかれなかったわりに、いつも通り早起きの元喜。寝ぼけながら「あっさだー、おっきるー」と歌うように起き上がり、テントの入り口をあけようとして後ろ側にスッ転ぶ

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 05:46:33
ShutterSpeed1/50
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize30 kB

寝つかれなかったので、ぐっすり寝ている夏歌

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 05:53:21
ShutterSpeed1/30
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO135
ImageSize300x200
ImageSizeOriginal300x200
FileSize25 kB

子供たちが寝なかったので親も寝不足だが、山の空気が気持ちよいので、寝不足でも不快感なし

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 05:56:59
ShutterSpeed1/125
Aperture2.8
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize27 kB

朝食はホットケーキミックスこねて焼くだけ。エスビットでじんわり焼いたやつは上手に焼けたが、

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 06:35:19
ShutterSpeed1/160
Aperture3.2
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize29 kB

アルコールストーブの方は火力強過ぎてコゲ

MakeFUJIFILM
ModelFinePix F11
DateTimeOriginal2007:07:28 06:37:09
ShutterSpeed1/220
Aperture2.8
FocalLength8.0 mm
ISO200
ImageSize300x200
ImageSizeOriginal300x200
FileSize31 kB

朝食後は、まだ冷たいのに水遊び

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 07:46:21
ShutterSpeed1/80
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize31 kB

子は親を見て育ってるんだろうなぁ。。。

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 08:24:19
ShutterSpeed1/125
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize200x300
ImageSizeOriginal200x300
FileSize30 kB

テントも乾いたので撤収。日陰リクエストをしていたこともあるが、涼しく、予想外に蚊もいなくて、過ごしやすいキャンプ場だった。また来よう

撤収後は、汗を流しに「るり渓温泉」へ。水着着用ゾーンはパスして、入浴のみ

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 10:56:19
ShutterSpeed1/15
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO154
ImageSize300x200
ImageSizeOriginal300x200
FileSize25 kB

昼食は「氣遊」へ

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 11:30:53
ShutterSpeed1/320
Aperture4.5
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize30 kB

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 11:37:03
ShutterSpeed1/160
Aperture3.2
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize31 kB

昨夜カレー食べたのに、ここでもカレー

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 11:59:33
ShutterSpeed1/100
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO64
ImageSize300x200
ImageSizeOriginal300x200
FileSize29 kB

帰宅後、すぐに絵日記を書く子供たち。楽しかったらしい。よかったよかった

MakeRICOH
ModelGR Digital
DateTimeOriginal2007:07:28 14:37:22
ShutterSpeed1/25
Aperture2.4
FocalLength5.9 mm
FocalLength13528.0mm
ISO154
ImageSize200x300
ImageSizeOriginal200x300
FileSize27 kB

子供達も嫁も楽しかったようなので、これからもキャンプを続けていくことに問題なし。キャンプスキーとしては、関門を突破してよかったよかった

お,うちも今年初キャンプチャレンジですが,下の子はまだちょっと心配なので,バンガローみたいな所を手配しました.香港疲れたー - karma (2007年07月31日 01時09分09秒)
おー、どこの家も同じような感じですねぇ。ウチは、次回はバンガロー借りてみようと思ってます - 髭。 (2007年07月31日 14時53分56秒)
香港おつかれさまでした。詳細は。。。聞かない方がいいか (^^; - 髭。 (2007年07月31日 14時54分48秒)
複数のブログに簡単にレポートを.> 香港 写真ははてなfotolifeに.:-) - karma (2007年07月31日 19時39分13秒)
  • Comments (Close): 0
  • TrackBack (Close): 0

元喜七歳

昨日はキャンプ疲れでグテーッとしてたので、一日遅れでお祝い
夕食=オムライス+鳥の唐揚げ。ケーキは好きなショートケーキを二つ。丸いケーキを選ばないあたり、現実的である

  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク (6) - lvalue で validation もしたい

header_type というメソッドを実装していた時のこと。

package CGI::Minimal::App;
sub header_type :lvalue {
  my $self = shift;
  $self->{__HEADER_TYPE};
}

これで

  • $self->header_type('redirect');
  • $self->header_type = 'redirect';

どちらの書き方でも setter として動作し、$self->header_type は getter にもなる。が、header_type に set できる値は制限したいので、

package CGI::Minimal::App;
sub header_type :lvalue {
  my $self = shift;
  my $type = shift;

  die 'Invalid header type: '.$type
    unless ( $type eq 'header' or $type eq 'redirect' );

  $self->{__HEADER_TYPE} = $type;

  $self->{__HEADER_TYPE};
}

というようなコードを書くと、

$self->header_type('dummy');

はエラーになるが

$self->header_type = 'dummy';

はエラーにならない

lvalue の時も validation のロジックを通したいので、しばし思案。結果、tie を使うことにした。動いてるけど。。。もっとスマートな実装方法はないものか

package CGI::Minimal::App;
sub header_type :lvalue {
  my $self = shift;
  my $header_type = shift;

  # First use? Create new __HEADER_TYPE!
  $self->{__HEADER_TYPE} = 'header' unless exists $self->{__HEADER_TYPE};

  # tie getter and setter to CGI::Minima::App::Magic (to validate)
  tie $self->{__HEADER_TYPE}, 'CGI::Minimal::App::Magic', $self,
    sub {
      my $self = shift;
      $self->{__HEADER_TYPE};
    },
    sub {
      my $self = shift;
      my $value = shift;

      # check allowed header
      die 'Invalid header type: '.$value
        unless ( grep {$_ eq lc($value)} ('header', 'redirect', 'not_found', 'not_modified', 'none') );
      $self->{__HEADER_TYPE} = lc($value);
    };

  $self->{__HEADER_TYPE} = $header_type if defined $header_type;
  $self->{__HEADER_TYPE};
}
1;

package CGI::Minimal::App::Magic;
sub TIESCALAR {
  my $class = shift;
  my $self = shift;
  my $getter = shift;
  my $setter = shift;

  $class = ref $class || $class || __PACKAGE__;
  bless({obj => $self, getter => $getter, setter => $setter}, $class);
}

sub FETCH {
  my $self = shift;
  $self->{getter}->($self->{obj});
}

sub STORE {
  my $self = shift;
  my $value = shift;

  $self->{setter}->($self->{obj}, $value);
}
1;
  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク (7) - lvalue で validation もしたい - その2 -

もっとスマートな実装方法はないものか

って、絶対あるはず。Class::Accessor::Lvalue とかあるんじゃね? と思ったら、やっぱりあった。速度比較とかしているこんなサイトも見つけた

楽々アクセサ生成だけならどれでもできそうだが、今回の要件を満たすかどうかはわからないので、後日勉強するということで。つうか、lvalue やめればシンプルになりますな

  • Comments (Close): 0
  • TrackBack (Close): 0

カール・ゴッチ氏死去

機材を使ったウェイト・トレを行わず、自然に身につく筋肉を愛す、ってあたりが直球ど真ん中でワシ好みなカール・ゴッチ氏が亡くなった。彼がいなければ新日本は別の道を歩んだかもしれないし、UWF はなかった気がするし、リングス、パンクラスもなく、昨今の格闘技ブームもなかったのではないか

ゴッチを招いて新日本プロレスを興した猪木は、新しい団体を作ろうとしている。そこにストロングスタイルがあるのかどうかはわからないが、ゴッチ魂は無我だけにまかせたりしないでほしいな

。。。と、最近の格闘技ブームはイマイチ萌えない、「プロレス」好きな髭野郎が申しております。見たいのは極限の「技」や「肉体」であって、スポーツでもケンカでもないのだよ

  • Comments (Close): 0
  • TrackBack (Close): 0

フレームワーク (8) - サブクラスでのメソッドのオーバーライドを禁止する

C::M::App は、CGI::Application と同様、自分のクラスから継承されることを想定している

package MyClass;
use basee 'CGI::Minimal::App';

1;

んだが、一部メソッドは子クラスでのオーバーライド前提だし、一部メソッドはオーバーライドされたくないし、ということで、思案。他の言語みたいに attribute :final とか用意されてると

sub cannot_override :final {
}

とかするだけだし、そういうことを行うモジュール Attribute::Final もあるんだが、外部モジュール使うほどでもないし、attribute で実装しなくてもよかろう

# 子クラスの時だけ実行
unless ( ref $self eq __PACKAGE__ ) {
  for my $method (@all_methods) {
    next if .... ; # 親クラスのメソッドだったら何もしない

    die 'You can NOT OVERRIDE method'
      if ( grep {$_ eq $method} @not_override_methods );
  }
}

まずは基本ということで、Class::Inspector 使ってみる

# Check methods that cannot override in Sub-Class
unless ( ref $self eq __PACKAGE__ ) {
  my @not_override_methods = qw(
                                new run
                                _tt_obj _setup_http_headers _lvalue_method
                               );
  for my $method ( @{Class::Inspector->methods(ref $self, 'expanded') || [[]]} ) {
    next if $method->[1] eq __PACKAGE__;
    die 'You can NOT OVERRIDE method ',__PACKAGE__,'::',$method->[2],' in ',$method->[1]
      if ( grep {$_ eq $method->[2]} @not_override_methods );
  }
}

続いて、Class::Inspector はコアモジュールではないので、使わない版

# Check methods that cannot override in Sub-Class
unless ( ref $self eq __PACKAGE__ ) {
  my @not_override_methods = qw(
                                new run
                                _tt_obj _setup_http_headers _lvalue_method
                               );
  {
     no strict 'refs';
     for my $method ( keys %{ref($self).'::'} ) {
       next unless defined &{ref($self).'::'.$method};
       die 'You can NOT OVERRIDE method ',__PACKAGE__,'::',$method,' in ',ref($self)
         if ( grep {$_ eq $method} @not_override_methods );
     }
  }
}

タイムリーなことに、「どう書く?org」で「メソッド名一覧の表示」がお題になっているので、良さげな回答がでてきたらマネさせてもらおう

で、この実装だとコンストラクタ生成後にチェックするので、use した時点でチェクする方法考えた方がいいのかなぁ、とちょっと思った。new のしょっぱなにやっとけば同じかな

  • Comments (Close): 0
  • TrackBack (Close): 0

自転車到着

先日注文しておいた元喜の自転車が届いたので、受け取りにいく。色々サービスしてくれた。すばらしい

で、早速乗って帰ろうとするが、自転車がかなり大きくなったので、乗れない。涙ぐむ。仕方ないので今日は押して帰った。また練習やな

  • Comments (Close): 0
  • TrackBack (Close): 0

Home > Archives > 2007年7月 Archive

Feeds

Return to page top