Flexのコーディング規約

This document lays out the coding standards for writing open-source Flex framework components in ActionScript 3. Adhering to these standards makes the source code look consistent, well-organized, and professional.

Coding Conventions - Flex SDK - Confluence

Adobeが推奨するActionScript3のコーディング規約とbest practicesが公開されている。日本語訳はtrick7.com blogの方が取り組まれるそうなので期待しております。

Amazon.co.jpのサインアウト方法

Amazon.co.jpからサインアウトするには、Amazon.co.jpホームの「もしあなたがXXXXXさんでない場合、サインインしてください」のリンクをクリックしてください。次のページではEメールアドレスやパスワードを入力せず、「ようこそ」タブをクリックしてホームに戻ってください。サインアウトが完了し、アカウントの名前はページ上部のメッセージには表示されなくなります。

Amazon.co.jp: ヘルプ>アカウントサービス>サインアウト

調べないと判らなかった。いや、普通判らないって、これは。Amazon的にはいつまでもログアウトされない方が何かと都合がいいから、敢えて「サインアウト」するボタンやリンクを設けなかったのだろうか。

ちなみに、「サインインしてください」のリンクを辿ってログイン画面に遷移した段階で、既に「サインアウト」されたことになる模様。

Flash CS3 体験版

ActionScript3.0時代の開発手順を確立すべく、無償で手に入るFlexSDKを落としてちょこっとだけ触ってきたのだけど、手持ちの古いバージョンのFlash(勿論ActionScript3.0には非対応)で作ったシンボルを読み込んで使う方法がなさそうでションボリ。いわゆるWebアプリを作るにはこれだけでいけそうなんだけど、デザイン的にちょっと凝ったことやアニメーション素材を組み合わせたりしたくなると、どうしてもFlashと連携できないと困る。

最新バージョンのFlash CS3があれば解決しそうなんだけど、何も考えずに買うにはちょっと、いやかなり高い。手持ちのバージョン(Flash MX)はアップグレード対象外なんで新規に購入するしかないんだけど、定価88,000円は個人が趣味で使うには高過ぎると思うんだ。

そんな感じで年始くらいから悩み続けてたんですが、とりあえず試してみるべきだと思い立って、先程Adobe Flash CS3 Professional体験版をダウンロードしてみた。確かβの頃は英語版しか提供されてなかったけど、今はちゃんと日本語版があるのね。利用制限は初回の起動から30日間らしい。しばらく試してみて、納得いくようなら製品版を買ってもいいかな。

failed to open log file

Apacheのエラーログに残された、一見具体的なようで抽象的な3行のエラーメッセージ。

[Mon Mer 3 20:04:54 2008] [error] [client xx.xx.xx.xx] failed to open log file
[Mon Mer 3 20:04:54 2008] [error] [client xx.xx.xx.xx] fopen: Permission denied
[Mon Mer 3 20:04:54 2008] [error] [client xx.xx.xx.xx] Premature end of script headers: xxx.cgi

ソースからログファイルを開いてそうな箇所を追い掛けてみるも存在せず、shellから実行すると問題なく動作して頭を抱える。そういえば以前にも同じエラーがあったことをこの辺で思い出し、ググってみるとすぐに見つかった。

CGIを実行して以下のエラーがapacheのログに出力されたら、改行コードが不正な可能性があります。

CGIの改行コード - うなの日記

これは、改行コードの誤りによりshebang lineが誤認されるのが原因。つまり、改行コードがCR+LFになっている場合に、

#!/usr/bin/perl[CR][LF]

どうやら上記は「perl[CR]」というコマンドを実行しようとしてエラーになるらしい。よって、改行コードをLFに修正することで直る。ありがちなミスではあるが、エラーメッセージから原因が推測しづらいのでよくハマる‥‥

Vistaが値下げらしい

Microsoftは過去1年間、さまざまな地域でマーケティングや値下げを組み合わせたVista小売りパッケージのプロモーションを行ってきた。その結果、早期導入者層以外にも需要が広まったという。このプロモーションの成功を受け、価格構成の変更を決定したとしている。

Microsoft、小売り版Windows Vista値下げへ - ITmedia News

上記が事実なら、「売れ行きが見込めるから」値下げを決定したということになるが、ホンマかいな。一方、ITProの記事では

同社は「Windows Vistaの販売は現状,新しいパソコンへの組み込みが中心であり,店頭でのパッケージ販売にビジネス機会があると考え,値下げを決断した」と説明している。

Windows Vistaのパッケージ版をSP1から値下げ:ITpro

となっていて、「組み込み以外で売れてないから」値下げしたと、真逆の印象を受ける説明になっている。感覚的にもこちらの方が納得できるのだが、実際はどうなんだろうか。

比較的最近にデスクトップとノートPCをそれぞれ新調したのだが、いずれも敢えてXPを選んだ。互換性や動作速度のネガティブなイメージをさておいても、「わざわざ乗り換える積極的な理由が今のところない」の一言に尽きる。

うるう年問題

今日は2月29日。4年に一度の日付関係のトラブルが発生可能性が高い日です。

スラッシュドット・ジャパン | うるう年問題ありましたか?

恥ずかしながら、とあるプログラムにて「翌年」を求める処理を単純に「年++」としていたがために、「2009-02-29は存在しません」というエラーに遭遇。すぐ近くにあった「翌月」を求める処理ではちゃんと末日に丸めていたのに、何故気付かなかったのか。やはりこういった低レベルな処理は、出来合いのライブラリに任せるのが一番だと改めて痛感。

ちなみに、うるう日(2/29)から「1年後」は2/28と末日に丸めるのが一般的らしい。例えば、うるう日にMySQLのプロンプトから

SELECT NOW() + INTERVAL 1 year;

と叩いてみると、2009-02-28(の同時刻)が返ってくる。「365日後」と考えると3/1(ないし「366日後」で3/2)になるが、「1年後」に月が変わってしまうのは想定しないのが当然か。

CAPTCHAに替わるモノ

CAPTCHAの抱える問題とは、ようするに「強度を上げれば(読みにくくすれば)人間にも読みにくい」という単純かつ原理的な矛盾です。

CAPTCHAは愚策:Kenn's Clairvoyance - CNET Japan

少なくとも個々の文字の「認識」に関しては、既にOCRの認識精度が人間のそれを上回っているらしい。画像中から文字を切り出す「分割」がまだネックになっているようではあるが、今後の技術の進歩に伴いこちらも人間の能力を上回ることは予想でき(あるいは既に上回っているかもしれない)、そもそもの目的である人間とautomatonの区別そのものができないとなると、結局ユーザの利便性を損ねるどころか根本的に無意味なものとなる。

画像から文字を認識して抽出するというOCR技術はかなり歴史が古く、CAPTCHAは誕生した当初から「いずれ破られる技術である」という認識があったものと思われる。対策コストに比べて解析コストが上回るため普及が進んできたが、早くもそのバランスが崩れる時代がやって来たということでもあろう。

「ユーザの利便性を損ねない」という観点からはkenn氏の提案のように「人の手を介さない」実装が望ましいのは確かだが、CAPTCHAに替わるコストパフォーマンスの高い逆チューリングテストを考えてみるというのも興味深いテーマではある。