ひさびさの自転車通勤。ひさびさ過ぎて、ちょっとヘタレ気味。
昨日の「505i には Flash Player 搭載」のニュース以後、505i で検索してこちらに来る人がいるようだ。ずいぶん前に 505i は標準で QVGA という噂、とか書いただけなんだけど。それじゃなんなので、ニュースページをリストアップしておこう。
スラッシュドットにも当然タレコミがあるかと思ったらないみたいだな〜
うぉー、すげー。特に、
スターウォーズのレイア姫の映像がR2-D2から投影されるやつを作りたいと思って始めました
ってところにひかれますた。開発者の方とお友達になりたいです(笑)
ちょっと調べたいことがあって、ひさびさに Nagios の Documentation を見ようと思ったら、いつの間にか日本語マニュアルが!
どうやら Nagios Infomation Ja で翻訳したものが本家に取り込まれたようだ。やっぱ日本語で読めると楽だなぁ。
イーマーキュリーによるソーシャルネットワークサイトがβオープン。このサイトで日記も書けるし、他所で書いている日記の RSS を取り込めるのが特徴の模様。
ネタ元は RYOBLOG。別のことを検索していて、たまたま発見。
最近、雑誌を買っても読み切れてないからなー。んーんー、どうしよ?
電話の Caller ID (日本で言うナンバーディスプレイ)に似たモノをメール送受信時に使ってみようと言う提案をマイクロソフトが行ったという話。
技術的な資料は「Caller ID for E-Mail Technical Specification」にまとまっているようだ。資料の配布形式が Microsoft Word の .doc 形式なところで、既にパブリックな提案じゃねーんじゃないの?という疑念が湧くのだけれど、とりあえずダウンロード。さて、見てみようかと思って、ファイルを開いたところ、、、
バカにされてるのかね?(笑)。自社のアプリで読めない資料を配付してどうするんだと思いつつ、Windows マシンで印刷。暇ができたら読む。
僕はそうやってる人がいることに気付いているけど、あえて付けてない。メールアドレスは敬称を付けるものだとは思ってないし、自分宛に付けられてると、なんだかちょっと気持ち悪い。さすがに本文に相手の名前を書く時には「様」なりなんなり付けるけど。
みんなどうなんだろ? 普通、様付けするものなの?ビジネスマナーとしてはどうなの!?
こっちは Yahoo! と Sendmail が DomainKeys というシステムで spam 対策を行うという発表。公開鍵のシステムっぽいのかな。
西新宿5丁目にある不動産屋へ行き、何枚も何枚も書いてはハンコを押し、書いてはハンコを押し。。。結構細かい字で書いてある契約内容は「後で読めば良いか」と思っていたのだけれど、ホントはコレ危ないよなぁ。とんでもないことが書いてあっても分かんないもんな。
で、手続きがひと通り終わったところで、カギを受け取った。契約は3月10日からにしていたので、てっきりまだ貰えないと思っていたのでラッキー。
不動産屋を出てから山手通りを歩いてみたのだが、西新宿5丁目駅から中野坂上駅近辺だと、だいたい10分くらいってとこだね。余裕で歩ける距離だけど、途中にお店が少ないので結構寂しい通りだな。
その後、スーパーでトイレットペーパーとかティッシュとかを買ってから新居に行き、大阪は堀江で買ったメジャーを使って内部の測量を。各部のスケールと共に、コンセントやスイッチ類の位置も記述。家具の配置シミュレートするためには、こいつらをチェックしておかないと、後で困るので。
オレ的には「Kindergarten Teacher」が一番だな。
tDiary 2.2.2 およびそれ以前のバージョンにクロスサイトスクリプティング(XSS)脆弱性が発見されたため、tDiary 2.2.3 がリリースされました。
これに伴ない、第三tDiary.Netで稼働している tDiary も 2.2.3 へバージョンアップしました。特に動作に影響はないと思いますが、何かあればこの日記にツッコミをお願いします。
なお、脆弱性についての詳細は、tDiary開発プロジェクトによる下記の記事を参照してください。
ひさびさに CakePHP を触っているんだけど、自作 Component の中から CookieComponent を呼んだときに、ちょっとハマってたので記してみる。
Cookie Component の基本的な使い方はこんな感じ。
<?php class SamplesController extends AppController { var $name = 'Samples'; var $uses = array(); var $components = array('Cookie'); function beforeFilter() { $this->Cookie->name = 'samplecookie'; $this->Cookie->time = 3600; } function test() { $this->Cookie->write('hoge', 'fuga', FALSE); } } ?>
これで /samples/test へアクセスしたときに発行される Cookie はこのようになる。
Set-Cookie: samplecookie[hoge]=fuga; expires=Thu, 25-Feb-2010 15:25:58 GMT; path=/
$this->Cookie->name で設定した samplecookie が Cookie 名に入っており、$this->Cookie->time で設定した値を元に expires の日時が入っているのが分かる。
次に自作の Component の中から Cookie コンポーネントを呼び出して、使ってみる。Controller では、自作 Component だけを呼び出すようにしている。
<?php class SamplesController extends AppController { var $name = 'Samples'; var $uses = array(); var $components = array('Original'); function test() { $this->Original->func1(); } } ?>
Component の中からは、別の Component を呼び出す場合、Controller と同じように $components へ指定してやれば良いことになっているので、自作の Component からは、このように Cookie Component を呼び出した。
また、Component には beforeFilter() が無いので、initialize() に Cookie Component の設定を書いてみた。
<?php class OriginalComponent extends Object { var $components = array('Cookie'); function initialize(&$controller) { $this->Cookie->name = 'samplecookie'; $this->Cookie->time = 3600; } function func1() { $this->Cookie->write('hoge','fuga',FALSE); } } ?>
このコードで発行された Cookie は、最初のコードと同じように Cookie 名と expires がセットされることを期待していたのだが、実際に吐き出された Cookie には expires が付いていなかった。
Set-Cookie: samplecookie[hoge]=fuga; path=/
なんで?なんで?なんで?としばらく悩んでいたのだが、Cookie Component の中身を見て、ようやく分かった。
$this->Cookie->time で設定した値は、Cookie Component 内の startup() でのみ利用されており、また、startup() は Controller から呼ばれた場合に実行される処理らしい*1ので、上記のように initialize() などで time をセットしても、この値は利用されないのであった。
じゃあ、どうすれば良いのか?であるが、$this->Cookie->write() の第4引数に expires 設定を書いてやれば、やりたいことはできる。
<?php class OriginalComponent extends Object { var $components = array('Cookie'); function initialize(&$controller) { $this->Cookie->name = 'samplecookie'; } function func1() { $this->Cookie->write('hoge','fuga',FALSE, 3600); } } ?>
このコードを実行すると expires 付きの Cookie を発行してくれる。
Set-Cookie: samplecookie[hoge]=fuga; expires=Thu, 25-Feb-2010 15:54:42 GMT; path=/
$this->Cookie->name も利用されないなら、割と早く気がついたかも知れないんだけど、$this->Cookie->time だけが利用されない状態だったので、意外とハマって、悩んでしまったよ。
*1 コードは未確認。実行状況で確認した。
先週の金曜日に「初めてのChefの教室」をUstしてきたので、その録画データを Vimeo へアップした。
Engine Yard さんの blog 『「初めてのChefの教室」を開催しました。(動画&資料)』で紹介されたところ、かなりの勢いでアクセスがあった。
新作(?)をアップすると、もちろんアクセス数は増える。でも、ここまでどかーんと増えるのは、Ruby会議やPHPカンファレンスなどの大きめのイベントのことが多く、平日夜に実施した勉強会ではかなり珍しい。
Chef への注目度の高さ、なのかな?
「Ruby 2.1.1 リリース」がアナウンスされていたので、第三tDiary.Net(つまりこの日記も)の動作環境を Ruby 2.1.1 に上げました。
しばたさんほか関係者のみなさんが tDiary 方面でも Ruby 方面でもテストをしっかり実行してくださっているのを知っているので、なにも躊躇せずにサクっとアップデートしちゃいました。いつもありがとうございます。
Before...
▽ 吉井 [情報提供はチムタンでした。]
▽ ウラウラ [太郎の椅子も一緒に買って〜→http://miuraura.hp.infoseek.co.jp/TE-black.g..]
▽ すずき [こ、これ椅子なん? なんか座るのイヤ〜]
▽ yoosee [ないと思ったらたれこんでくだされ〜]
▽ すずき [/.にアカウント持ってないもん。]