PS2でグリグリ回しまくった塊魂ですが、海の向こうでも大人気なんですね。
手作りでKatamari Hatを作ってる人がいました。

微妙にかわいいじゃねぇか・・・
こんな子にPSPの僕の私の塊魂の予約特典の王子オリジナルポーチをあげたら喜びそう・・・とか思いました。

PS2でグリグリ回しまくった塊魂ですが、海の向こうでも大人気なんですね。
手作りでKatamari Hatを作ってる人がいました。

微妙にかわいいじゃねぇか・・・
こんな子にPSPの僕の私の塊魂の予約特典の王子オリジナルポーチをあげたら喜びそう・・・とか思いました。

僕にとってトイレ(大)は癒しの時間だったりします。
入る前には必ずといっていいほど本を持ち込み、必要以上に引きこもります。
mixiでも「トイレで本を読む」というコミュニティにも参加してたりします。
ちなみにこのコミュニティ、参加者が1730人ということなので同じような価値観の人が結構いるってことです。
そんな癒しの時間のお供かどうかは知りませんが、最近はトイレで音楽をってのがトレンドみたいです。
TOTO、MP3再生対応の交換用便座 - AV Watch東陶機器株式会社(TOTO)は、ウォシュレット一体型便座「アプリコット」シリーズに、MP3音楽再生機能を備えた2モデルを11月1日に発売する。価格は、オート便器洗浄やリモコン便器洗浄なども備えた最上位モデルの「N5A」が180,600円、オート便器洗浄機能を絞った「N5」が166,950円。

以前ポストしたエントリーでMP3再生に対応した便器ってのを紹介しましたが、それの交換式便座用だそうです。
TOTOの力の入れようがうかがい知れます。
そんな中、トイレにまでiPodをつれて歩きたい変態な人に
人気の商品ともなれば、サードパーティからの関連製品も続々登場する。そういった面からいま絶好調と見ることができるのが、言わずとしれた米Apple Computerの「iPod」だ。すでにデザインに統一感を持たせた様々なアクセサリが発売されているが、ついにトイレで音楽を聴くためのアイテムまで登場した

iPod便乗もここまで来るとあっぱれです。

スピーカーがトイレットペーパーホルダーになっているのがとってもお洒落です。
リクエストに含まれるHTMLのサニタイズをするプラグインCatalyst::Plugin:HTML::ScrubberをCPANに公開しました。
HTML::Scrubberでサニタイズします。同じようなモジュールでHTML::Sanitizerってのがあったのですが、HTML::TreeBuilderを要求するのでHTML::Scrubberの方にしました。
使い方はHTML::Scrubberそのまんまでアプリケーションクラスのconfigで設定すれば全てのリクエストがサニタイズされます。
MyApp.pmで
use Catalyst qw[HTML::Scrubber];
MyApp->config(
scrubber => [
default => 0,
comment => 0,
script => 0,
process => 0,
allow => [qw [ br hr b a h1]],
],
);
とすると、allowに列挙されているタグ以外は全て削除されます。
例えば<script>hoge</script>というリクエストはprepare_parametersの時点でhogeにサニタイズされます。
ちなみに0.1ってバージョンがありますがPAUSEにアップロードしてからミスったことに気が付いて0.01を上げなおしました。そのうち消えると思います。中身は一緒です。
というわけで、夜な夜な密かにネット配信しているWMVストリーミングライブですが、SHOUTcastで音だけ一般公開することにしました。
iTunesかWinAMPがある環境で右のサイドバーにあるアイコンがアニメーションしてる時にクリックすると聞くことができます。
選曲は主にHouseです。
たまに気が狂ったジャンルがかかることもあります。
配信は例によって不定期です。
ど素人DJが生つなぎしてるので聞き苦しいこともあるかもしれませんが、よかったら聞いてやってください。

というわけで、行ってまいりました。千葉マリンスタジアム。

相変わらずどこの球場に行っても、まっ黄色な阪神側応援席。

千葉のファンは噂にたがわず熱かったです。ジャンプしまくってました。

遠くて全くわかんなかったけど試合はマシュー南の始球式でスタート。
で、試合内容の方は非常に悲しい結果に終わったので省略。

7回のジェット風船の時はすでに5-1で清水を全く打てなさそうな雰囲気に半分やけくそ気味でした。

で、その裏に濃霧の中、コテンパンに打たれてコールド負けでした。
2003年に続き、開幕戦に行ったわけですが悲しい結果に終わりました。
やっぱり、オイラが見ないほうが阪神は勝つのか?(涙)
何かゴタゴタがあったみたいな感じのClass::DBIの開発チームですが、久々にCookbokを見ようとWikiに訪れたらえらいことになってました。
ここに引っ越したみたいです。
こんなものを買ってみました。

ただのビニールに見えますが違います。

こうやって使います。

で、ここでこうやってTVが見れます。
これをやりたいがためにLF-PK1を買ったという噂もあります。
ちなみにCyber GadgetのPSPウォータープルーフケースという製品で、ヨドバシカメラで970円くらいで買ってきました。
今のところPSPは大丈夫みたいです。
でも、そのうちやばくなりそうな予感はヒシヒシとしています。
とりあえず公開していたCatalyst::Plugin::RequestTokenですが、致命的なバグがあったので修正しました。そのうちダウンロードできるようになると思います。(リンク先は0.02のものです。)
FormValidator::SimpleのLyo Katoさんからバグのご指摘と機能追加のご提案をいただきました。
わざわざpatchまでいただいて有難いことです。
bug fix:
$c->create_tokenで$c->request->param( token => 'token-value' )とするとすでにparam('token')が存在する場合、配列として追加される形となり$c->valid_tokenが失敗するバグの修正。
add:
$c->prepare_tokenをすることにより、res->bodyに<input type="hidden" name="token" value="token_value">のタグを自動追加。
ちょうどCatalyst::Plugin::FormValidator::Simpleの文字コードと格闘していたのでメールしようかどうか悩んでいたところ、タイミングよすぎなメールを頂いて、ここぞとばかりに質問を浴びせかけてしまいました。
三秒後にはバグ修正版が上がっていると知らせていただき、今日は無事寝ることができそうです。
重ね重ね謝謝です。> Lyo Kato様
思い起こせば2002年のワールドカップの時に、会社でどうにかテレビを見たいと思い、リビングにキャプチャボードを挿したキューブPCを置いてスカパーをつないでストリミーングさせてたのが懐かしい今日この頃です。
そういえば当事、会社で仕事をしながら試合を見てたら試合を見ながら仕事をしてたら突然見れなくなり、慌てて自宅に帰ったらお父様が涼しげな顔で
「電気代もったいないから消したよ。」
とのたまっていたのを思い出します。
その傍らで静かに強制終了されたPCが寂しげでした。
で、本題。
とうとう手に入れました。LF-PK1。

極度の品切れで店頭でもネットでも中々手に入らなかったのですが、何とか入手して今日手元に届きました。
いいっすよ。これ。
折角PSPを買ったのにウイイレマシンかギレン専用機かってくらいにしか使っていなかったのですが、とうとうAV機器として使える時が来ました。
これでPSPを会社に持っていきさえすれば、会社でTV見放題です。
設定もダイナミックDNSの設定から何から無茶苦茶簡単です。外側のルーターのポートに穴を開けてやって、外から接続テストしてみましたが問題なく見れました。
画質もPCからの場合、無茶な解像度にせずにモニターの片隅に表示する程度だったら全く問題なし。
PSPやワイヤレスからの場合はごくたまにもたつくことがありますが、あまり気になりません。ただ、PSPのちっこい画面でサッカーを見てもあまり萌えませんでした。
細かいレビューはここやここを見ていただくとして、これから買う人に気をつける点を書くと
1. ケーブルを大量に買い足す必要がある
アンテナケーブルは付いていますが、AVケーブルとLANケーブルは付いていません。うちの場合、リビングの壁から出ている唯一のアンテナの口からTVとLF-PK1と両方にアンテナをつなぐ必要があったので分配器が必要でした。後、RD-XS57と接続するためにS端子とオーディオが一緒になったケーブルを買ってくる必要がありました。
2. ロケーションフリープレーヤー(LFA-PC2)はPC一台に付き一個必要
まぁ、当たり前といえば当たり前なのですが、ロケーションフリープレーヤーで接続するPCをLF-PK1に登録する必要があり、その際にシリアルが登録されてしまうのでデスクトップとノートから見たい場合は2個買って、それぞれにインストールする必要があります。
3. PSPからの接続は常にLF-PK1にワイヤレス接続になる
これ、どうにかして欲しかったです。つまり折角二階にもアクセスポイントがあっても、わざわざ遠いリビングのLF-PK1に繋ぎにいくため、電波の状態を確保するのがきついかもです。
4. たまに高いファンらしき音がする
静かにしてるとちょっと気になります。かなり高い音なので、最初耳鳴りかと思いました。
と、まぁ色々書きましたが個人的にはリビングにサーバー置くくらいだったら全然問題ナッシングです。
というわけで、以前から何とか二階の寝室でもスカパーとWOWOWのサッカーの試合が見れないかと思ってたのですが、チューナーをもう一つ買って契約するのもアホらしいし、いちいちDVDに落としてみるのも面倒くさいしで、結局リビングのソファで寝ながら見てしまうことが多かったのですが、これを買ったおかげでベッドサイドにノートを置いてLF-PK1に接続すればみんな解決してしまいました。
3代目マルディーニが入団-ACミランの少年部門に - SANSPO.COM
サッカーのイタリア1部リーグ(セリエA)ACミランに所属する元同国代表で、セリエA最多出場記録を更新中のDFパオロ・マルディーニの息子クリスチャン君(9)が18日、ミランの少年部門に入団した。マルディーニといえば、先日セリエAでの通算出場記録の571試合出場を果たし、イタリア代表キャップも126試合という、鉄人ダブルタイトルホルダーで、生涯ロッソネロとアズーリのユニフォームしか着たことがないという偉大な選手なわけですが、息子さんはどうなることでしょうか?
おじいちゃんのチェザーレ・マルディーニもミランでキャプテンをしてた超エリートな家庭環境の中、周囲からのプレッシャーもきついと思いますが、がんばって欲しいと思います。
ちなみに我が家は祖父から続く三代目の縦縞トラキチです。
特にプレッシャーはありませんでした。
というわけで、秘密裏に先週発注していたDELLの24インチモニターUltraSharp 2405FPW HASが届きました。
今までNANAOの16インチのSXGAモニターを使っていたのですが、ちょっと前から狭いと感じていたのですよ。
家で仕事するときは
ターミナルをいくつか開いて・・・
エディターをいくつか開いて・・・
ブラウザをいくつか開いて・・・
メーラーを開いて・・・
画面の片隅でテレビを開いて・・・
ん?あのウィンドウはどこだ?
き~~~
って感じだったわけです。
で、何気にDELLのサイトを見ていたら24インチワイドでWUXGAのモニターが10万円以下で買えるってことで飛びつきました。クーポンと合わせたら8万ちょいで買えました。
で、使用感。

むちゃくちゃ広いです。
むちゃくちゃでかいです。
もう目の前が全てモニターって感じです。
ちょっと輝度が明るすぎる感はありますが、概ね満足してます。
ちなみにサブマシンのモニター(15インチ)と比べると、その巨大さがわかります。

ちなみにモニターとは関係ないのですが、よこっちょにUSBポートとカードリーダーが付いてるのが意外と重宝したりします。

StrutsでいうところのAction#generateToken, Action#resetToken, Action#isValidTokenメソッドと同様の機能をCatalystに提供するプラグインを書いてみました。
調子に乗ってCPAN登録してみました。
要はアプリケーションにSubmitの二重送信による二重登録防止とCSRF防止をさせるためにTokenを埋め込む仕組みです。
WEBアプリケーションでありがちな
入力→確認→結果
というような画面遷移において、「確認」画面でTokenを生成してクライアントにはhiddenタグなどで、Tokenを埋め込み、サーバーではSessionに保持しておいて、「結果」画面において、validateとTokenの無効化を行うことによって、「結果」画面から「確認」画面にブラウザのバックボタンで戻って再度submitした場合などのtransactionの不整合を検知することができます。
初めてのCPAN登録なのでコード、英語ともにお粗末さんですので突っ込み歓迎です。
Catalystで入力の妥当性をチェック(validation)するプラグインとしてはCatalyst::Plugin::FormValidatorが一般的ですが、Catalyst::Plugin::FormValidator::Simpleというプラグインも公開されています。
それぞれData::FormValidatorとFormValidator::SimpleのCatalyst用プラグインなのですが、大きな違いはvalidationのプロファイルの構成アプローチで
Data::FormValidatorは
optional => [qw(company fax country )],
required => [qw( fullname phone email address )],
constraint_methods => {email => email(),},
と、妥当性=>値という表現をとるに対して
FormValidator::Simpleは
param1 => [qw/NOT_BLANK ASCII/, [qw/LENGTH 4 10/]],
param2 => [qw/NOT_BLANK/, [qw/JLENGTH 4 10/]],
mail1 => [qw/NOT_BLANK EMAIL_LOOSE/],
mail2 => [qw/NOT_BLANK EMAIL_LOOSE/],
{ mail => [qw/mail1 mail2/] } => ['DUPLICATION'],
と、値=>妥当性という表現をとります。
個人的には後者の方がわかりやすいと思うので使ってみました。
もともとSledge用として作られていることもあり、FormValidator::Simple::Plugin::Japaneseといった日本人には必要不可欠なものもあって非常に使いやすかったです。
というわけで、会社で深夜の買出しに行ったらスターバックス・ディスカバリーズが売っていたので買ってみました。

諸々の事情でラテ好きな僕としては有無を言わさずシアトルラテを買いました。
で、違いのわからない男の感想としては
おいしい。
猛烈に甘いですが結構好みな味です。
tracが使いたいがためにWEB+DB PRESS Vol.28を参考にしながらCVSからSubversionに乗り換えました。
ただ、svn+sshでのリポジトリアクセスにはちょっと注意が必要なのでメモ。
svn+ssh経由ではパーミッションの問題があるのでprojectユーザー/グループを追加して開発者のアカウントをprojectグループに参加させます。
リポジトリを作るにはprojectユーザーにsuしてホームディレクトリで[project@localhost project]# svnadmin create --fs-type=fsfs /home/project/svnrepo/myprojectSSH経由で作業ディレクトリで任意のユーザーで
[hide@localhost dev]mkdir myproject [hide@localhost dev]cd myproject [hide@localhost myproject]mkdir trunk tags branches [hide@localhost myproject]$ svn import -m'Create: my project ' svn+ssh://hostname/home/project/svnrepo/myproject hide@hostname's password:************ミソはsvn経由だと
svn://hostname/myprojectですが SSH経由ではリポジトリまでのフルパスになって
svn+ssh://hostname/home/project/svnrepo/myprojectって感じです。