« 2007年06月 | メイン | 2007年08月 »

2007年07月02日

[北海道] 夕張応援Tシャツを買ってみた。

北海道 夕張

土曜日、天気がまぁまぁ良かったので四番街まつりに行ってきました。

今年の四番街まつりでは夕張支援のチャリティーイベントが行われており、
なんでもオリジナルTシャツの販売して、
その益金は夕張市の「幸福の黄色いハンカチ基金」に寄付するとのこと。

正直、Tシャツはあまり欲しくなかったのですが、
北海道人としては、応援してあげたいと思ったので1枚だけ購入しました。
今思えば、1000円/1枚という格安な値段だったので3枚くらい買ってあげた方がよかったのかも。

でも、このTシャツ、胸に「I LOVE ODORI」ってプリントされているんですが、
いや、「I LOVE UBARI」とかの方がよかったんでない?

関連記事⇒【北海道新聞】Tシャツで夕張応援を 藤倉市長ら大通で販売

ちなみに、
家に帰った後に見てみると、
袖口にあるはずの「頑張ろう夕張」の文字がプリントされていませんでした!
藤倉さん!どういうことですかー。

2007年07月03日

[北海道] 第4回 きたひろしまエルフィンロードハーフマラソンを走ってきました。

マラソン 北海道 北広島

北広島エルフィンロードマラソンを走ってきましたよ。

エルフィンロードマラソンといえば、
去年、途中から走れなくなってしまい、
屈辱の最終ランナーとなった苦い思い出があるので、
今年こそはちゃんと走りきってやる!と
リベンジを誓って走りました。

午前7時過ぎの電車に乗ってはるばる北広島へ。
前々日、前日と天気が悪かったのだが、
この日は抜けるような晴天。
気温も高くなりそうなので体力を消耗しないかちょっと不安。

そして、受付をすませて、ストレッチをしている時に異変に気づきました。
・・・足がバリバリ筋肉痛なんですけど・・・
一昨日、某ダイエットDVDでエキササイズをしていたのですが、
1日遅れて筋肉痛がやってきたようです。軽くヤバイです。

ものすごい不安を抱えたまま10:20にスタート。
今年は去年とコースが変わっていて、
エルフィンロードに入る前に一般道を5kmほどぐるぐる。
木陰がないので、とにかく暑い!!
暑さで徐々にスタミナが奪われていくのがわかります。。

エルフィンロードに入ると今度は微妙なアップダウンが延々と続く。
ほぼ一直線な道がつづくだけに、いやらしいアップダウンがボディブローのように体力を奪っていく。
こんな時、給水所にチョコレートや黒砂糖があるとちょこっと体力チャージできるのだが、
なんと、
今年の給水所は水のみ!スポーツドリンクすらない!
贅沢かもしれませんが、これはちょっとキツイですぞ。

そんなこんなで体力がどんどんなくなっていって、
しまいにはお腹が減って動けなくなりそうでした。
で、
結局、途中、歩いてしまいました。がっかり。。

まぁ、それでも最後はしっかり走ってゴールしました。
遅いながらも自己ベストは8分ほど短縮したので良しとしましょうか。
でも、
日ごろの練習をサボっていたことを痛感させられ、
だいぶ反省しました。
ので、
7月は月間100kmくらい走りこもうかな、と思います。

ゴール後。
・とりあえず以下のものをたいらげる。
  * ビール
  * 焼き鳥
  * エルフィン(北広島銘菓)
  * ソフトクリーム

・そして温泉で筋肉をほぐす。
  * 竹山高原温泉
  * その後ビール

・帰宅してからは
  * 洗濯しながら
  * ピザ食べて
  * ビール

うーん、食べすぎ&呑み過ぎな感じがしますなぁ。

2007年07月04日

[おぼえがき] .forwardの書き込み権限

.forward メール 転送

自分のメールアドレスがたくさんありすぎてよくわからなくなってきたので、
プライベートなメールはgmailに集約させようかな、と思い、
転送設定をほどこしてみたり。

友人の管理しているサーバにもメールアカウントがあるので
これも転送設定をしてあげようと、
viを立ち上げて自分のメールアドレスを記述して、$HOME/.forwardとして保存。

よし、これで、きちんと転送できているハズだぞ、と、送信テストしてみる。
そして、転送先のアドレスにメールが届くまで待ってみる。
でも、
どれだけ待ってもメールは届きませんでした。

後日、友人に問い合わせてみると、メールサーバのログに
『.forwardの書き込み権限がおかしいよ』というエラーメッセージが
でていたとのこと。
早速、ファイルの権限を変更して再テストしてみる。

chmod 644 $HOME/.forward

すると、
お、おおー、きちんとメールが転送されました。

今日のおさらい
.forwardは自分以外のユーザに書き込み権限を与えてはいけません。
っつーか、フツーに考えて、当たり前ですな、こんなこと。
なんで最初に確認しなかったんだろう。。ちょっと反省。


2007年07月05日

[読書] Googleブック検索を試してみた

google web webサービス 読書

ITmediaに下記のような記事がでていたので、Googleブック検索なるものを試してみる

Googleでも“立ち読み”可能に――書籍検索が国内で開始

 この言葉、どの本に載っていたっけ? と悩むことはないだろうか。通常のWeb検索では書籍の中身まではなかなか検索できない。7月5日、Googleが発表した「Googleブック検索」では、一部ではあるが日本語の書籍の全文検索が可能になる。

何に使うのかよくわからないけど、無理やり使ってみた。
例えば。
何冊も出版されているシリーズもののエッセイなどで、
「この話はどの号に収録されているんだっけ?」というシチュエーション、
を想定してみる。
早速、「東海林さだお、丸かじり、カツ丼」などと入力して検索。
結果、
何も検索されませんでした。。。

日本国内の書籍のインデックス数は明らかにしなかったが、「現在のところ、(100万冊のうち)数%にとどまる」という。

とのことなので、まだまだ内容までインデックスが作成されている書籍は少ないということなのでしょうか。
ちなみに、「東海林さだお、丸かじり」などと入力して「すべての書籍を検索」すると
いくつか候補が表示されるようなので、内容のインデックスが作られていない書籍も
タイトルや著者名では検索できるみたいですな。
→ っつーか、これは普通の検索と同じですな。

他にも、最近の芥川賞や直木賞の受賞作品の文章や
名作小説の有名フレーズなどを入力してみましたが、殆ど検索されませんでした。
文学作品系はまだまだGoogleブック検索の威力は発揮できなさそうです。
今後に期待。

で、ちょっと便利だと思ったこと。

「Linux セキュリティ」とか「Java オブジェクト指向」などと入力すると、
書籍の一覧がずらずら表示されて、
Viewerで内容まで「立ち読み」することができた!
これは、技術書や参考書なんかをWebで購入する際に
内容の記述レベルなどを確認することができてちょっと便利そう。

ただ、残念なのが、コンピュータ用語のみで検索すると
必然的に検索語句が英数字のみになりがちなんですが、
その場合、日本語の書籍のみに絞った検索ができないんですね。
検索オプションに「○○語の書籍のみ」みたいな絞込みが追加されると
うれしいなぁ、なんて思ったりしました。

取り急ぎ。

2007年07月20日

[読書] 終末のフール

読書

伊坂幸太郎の『終末のフール』を読みました。

伊坂幸太郎といえば、巧妙に仕組まれた全ての伏線が最後のどんでん返しにきれいにつながる、パズル的なストーリーが特徴。いつもいつも、読んでは騙されつつ、またその騙され感が気持ちよかったりしますな。
本作は「8年後に小惑星の衝突により地球が滅びる」というテーマでの8つ短編とのことですが、果たして面白いんだろうか。

で、読んでみた。
結論を申し上げる。
大変面白かった。

伊坂マジック的なパズル的構成はなりを潜め、わりとシンプルなストーリーなのですが、全体的にすがすがしい小説ですね。
特に、今までの伊坂作品と大きく違うとのは、「死ぬこと」を前向きに受け止めようとする真摯な姿勢が強く感じられる点です。
僕が今まで伊坂作品にやや不満だったのは、どちらかというとわりとあっさり人が死んでしまうし、ヘタに読むと殺人を肯定しているようにも受け取れるストーリーが多かったりする点だったのですが、本作は地球滅亡がテーマとなっているだけに、「死」や「生」について真面目に考えている印象を受けます。

死に対する悲しみや憎しみ、悔恨などを抱えつつ、必死に生きている登場人物を見ていると「人生捨てたもんじゃないな」と素直に感動します。決してきれいごとばかりじゃないけれども、生きることって本来そんなにきれいなもんじゃないのかもしれないですね。

と、そういう重いテーマが底辺に感じられますが、読んでいてそんなに重苦しくなく、むしろ軽妙洒脱な爽やかささえ感じます。

へこんだりつまづいたりした時に読むといいかも。


2007年07月23日

[北海道] <南北海道決勝>駒苫vs函工を観てきました。

野球 北海道

22日の日曜日は天気予報がうまく外れて天気が良かったので、高校野球の南北海道大会の決勝戦、駒大苫小牧vs函館工業戦を観てきました。

青空の下に映える芝生。グラウンドに際立つ白線。やっぱり野球は外で観た方が気持ちがいいですね。

注目は1回の攻防。
函館工業は四球を絡めてで走者一二塁となるも、送りバントの失敗でせっかくの好機をつぶしてしまいます。
対して駒大苫小牧はエラーと四球でランナーを出すと、準決勝で札幌南を0点に抑えた函館工業のエース本庄君から走者一掃のタイムリー。
お互いに相手のミスからチャンスを演出しましたが、このチャンスを生かせたかどうかが勝敗のポイントとなったようです。

函館工業はその後もバント失敗や走塁ミスが重なりましたが、駒大苫小牧は連打にバントを絡めて確実に得点を重ねていきます。
本庄君は丁寧にコーナーを投げ分けていて、決してピッチングは悪くないように見えましたが、その球がきれいに打ち返される様を見ていると、全道レベルと全国レベルの違いを感じさせられたように思います。

結果としては、15対0という大差で試合が決まりましたが、両校とも力を出し切った、いい試合だったと思います。
試合を観戦していて、駒大苫小牧は「甲子園に行ける」チームではなく、「甲子園で勝ち進めるチーム」だと感じました。今年も勝利を重ねていって、北海道を沸かせてもらいたいものですな。


ちなみに、観戦しているお客さんから函館工業ナインに向けて「バントなんかするんじゃないぞ!」と応援なのかヤジなのかよくわからない声が飛んでいました。まぁ、準決勝からの度重なるバント失敗を見ていると気持ちはわからないでもないが、ちょっと心ないな、と思いましたね。応援する気持ちがあるのであれば、もっと気持ちの良い声援を送るべきなんじゃないですかね。

2007年07月24日

[エコ] 焼け石にありったけの打ち水

エコ 温暖化 打ち水

今日、チャリンコで通勤途中、道路に水を撒いているおばさんを発見しました。
水の撒かれた道路の上を通ると空気がひんやりして気持ちよかったです。
水、やっぱり気持ちいいですよね。僕も週末に自宅前に水を撒いたりしてますが、一瞬だけどひんやりして気持ちいいです。

そういえば、どこかで「100万人が一斉に打ち水をすると東京の気温が2℃下がる」と聞いたことがあったなぁ、と思い出して、Webでちょっと調べてみると、『打ち水大作戦』という取り組みが行われていることを発見しました。
banner07_a.gif

上記のサイトを見てみると、7/23と8/23の全国一斉打ち水デーに挟まれた期間が「打ち水しましょう月間」のようですな。期間内にはみんなで率先して打ち水しましょうね、という感じなんですかね。
打ち水大作戦とは?という文章を引用すると、

日時を決めて残り湯などの二次利用水をつかって、
みんなでいっせいに打ち水をする。
たったそれだけののこと。
たったそれだけのことで、真夏の気温を下げられる。
たったそれだけのことで、ヒートアイランド対策に効果をあげる。
たったそれだけのことで、真夏の電力エネルギーの節約になる。
たったそれだけのことで、地球にやさしい人になれる。
たったそれだけのことで、体も気持ちも爽やかになれる。
たったそれだけのことで、コミュニティがひとつになれる。
たったそれだけのことで、みんながハッピーになれる。

という、ホントかよ?きれいごとじゃねーの?とつっこみたくなる理念が掲げられてますが、それでも最近エコに目覚めた僕にとっては、山火事を消そうとするハチドリのようにすばらしい考えに感じられるので、もろ手をあげて賛同しますぞ。
早速参加してみようと思い、打ち水のやり方を見てちょっと勉強。基本はたらいや洗面器からぱしゃぱしゃするだけ。実に簡単ですな。
ん?でも、ちょっと待って。よーく読んでみると、 水道水を使わないこと。水を二次利用すること。これが唯一のルール。と書いてあります。
あう〜、僕が毎週、水道の蛇口につないだホースから勢い良く水を撒いていたのはルール違反だったんですね。ちょっと反省。
んむ〜、でも、独り暮らしだとどうにも打ち水に使えるような生活排水ってないですねぇ。
普段風呂じゃなくてシャワーだし。
強いて探すと、除湿機にたまった水と、食器洗いたらいの水ですかね。洗剤まみれでもいいのかな。

などといろいろと思案していたのだが、打ち水大作戦サイトを色々と辿っていくと、札幌市が下水道を打ち水用に提供してくれるとの情報を発見!!
札幌市−さっぽろの下水道−打ち水用に下水再生水を提供いたします
おお!これは朗報。
札幌市による下水再生水の提供は8/1〜8/10とのことなので、全国一斉打ち水デーには間に合わないようですが、期間中の打ち水にはこの水を使えますな。
よーし、来週から下水再生水をもらって打ち水に励みますぞ。
でも、
配布場所までクルマで水を取りに行ったら多分本末転倒なんでしょうね。
頑張ってチャリで取りにいきますかね。。。


サイトを確認すると、北海道の打ち水人は登録されていませんでしたね。ちょっと残念。
来年は洞爺湖サミットなんだから、これを機にみなさんで盛り上がりませんか〜。

ちなみに、打ち水大作戦サイト、ポップアップする画面にスクロールバーがなくて、下の方の文章を読むのにえらい苦労しました。
このサイトを作った人はそのヘンに気を配らなかったのかなぁと思いながら、MacのSafariで見てみると、ちゃんとスクロールバーが表示されてた。
んー、ブラウザチェックはやっぱり必要ですな。
軽く職業病。

2007年07月27日

[おぼえがき] <Spring Framework>マルチスレッド環境でgetBeanすると稀にClassCastException

Java Spring

以前、Spring FrameworkのDIコンテナでオブジェクトを生成するプログラムを開発していたときにClassCastExceptionが稀に発生するという現象があったので忘れないように覚え書き。

現象が発生していたプログラムの主な特徴は下記の通り。
・Spring Framework 2.0.1
・Javaで作成されたバッチプログラム
・マルチスレッドで処理を行い、各スレッドの処理内でApplicationContext#getBean()で実処理オブジェクトを生成
・生成されるクラスは非シングルトンだった。(Bean定義XMLにて、singleton=falseとしていた)

発生した時のメッセージは以下のようなものでした。

Exception in thread "Thread-1" java.lang.ClassCastException: java.lang.Class
at org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClassName(AbstractBeanDefinition.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:317)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1008)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:347)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:264)
・・・

発生箇所(AbstractBeanDefinition#getBeanClass()メソッド)のソースを見ると、下記のように、this.beanClassがClassオブジェクトなのかStringオブジェクトなのかで処理をきりかえているようです。
public String getBeanClassName() {
if (this.beanClass instanceof Class) {
return ((Class) this.beanClass).getName();
}
else {
return (String) this.beanClass;
}
}

発生している現象としては、if文で判定した時にはStringオブジェクトだったのにStringにキャストして返却する(return (String) this.beanClass;)時にはClassオブジェクトになってしまっていた。ということですな。
あるスレッドがこのelse文の処理をしているまさにその瞬間に別スレッドがthis.beanClassをClassオブジェクトにしてしまったということなのでしょうか。

AbstractBeanDefinition#resolveBeanClassメソッド内で、クラス名からClassオブジェクトを生成してthis.beanClassに設定しているようなので上記のような現象が発生する可能性はありそうですね。
public Class resolveBeanClass(ClassLoader classLoader) throws ClassNotFoundException {
if (this.beanClass == null) {
return null;
}
Class resolvedClass = ClassUtils.forName(getBeanClassName(), classLoader);
this.beanClass = resolvedClass;
return resolvedClass;
}

で、どうしたか。

ApplicationContext#getBean()するだけのオブジェクト生成クラスをシングルトンで作成して、そのクラスのメソッドをsynchronizedにして解決しました。

2007年07月31日

[おぼえがき] 迷惑メール防止のための暗号化mailtoタグ生成ツール

JavaScript PHP スパム対策 迷惑メール

以前、「迷惑メールはイヤだけど、mailto:は使いたい。」というエントリでPEARのHTML_Cryptモジュールを利用してメールアドレスが暗号化されたmailtoタグを生成する方法を紹介しました。

紹介だけするのも出し惜しみな感じがしてきたので、メールアドレスを暗号化してくれるツールをこっそり公開してみました。

mailto暗号化ツール

メールアドレスを入力してボタンを押すと、JavaScriptコードが出力されるのでそのコードをHTMLに貼り付けるとmailtoなタグが生成されます。
生のメールアドレスがHTMLソースに含まれなくなるので、ちょっとだけ安心。