Archive for the ‘kagata’ Category

いわゆるGENOウイルスに備えて:Flash PlayerとAdobe Readerのバージョンを確認する

金曜日, 5月 22nd, 2009

みなさまこんにちは、加賀田です。表題に挙げた“GENOウイルス”。Web上でその脅威が騒がれ始めてもう2か月になろうとしています。

いまからここで話題として取り上げるのは少々遅きに失した感もありますね。ですがつい先日社内で話題に上がったり、今朝もITmediaで関連ニュースが報道されたりもしているので、改めて取り上げてみたいと思います。

とはいえ、ウイルスの挙動や被害状況については、すでにお詳しい方々がまとめサイト等を開設していらっしゃるようです。ありがたいことです。

なので当ブログでは、感染予防に欠かせないFlash PlayerとAdobe Readerのバージョン情報を確認する手順、そして旧バージョンを使用している場合は最新版に更新する方法についてまとめておきます。両プラグインを最新のバージョンに更新しておくことが、GENOウイルス感染に対する現状最も有力な予防策のようです。まだの方はこの機会にぜひご確認を。

まずはFlash Playerから。これについてはAdobeからバージョン確認ページが提供されています。Flash Playerを有効化した状態で確認ページを開くと、バージョン情報が表示されます。

p_200905221

本記事を執筆している2009年5月22日現在では、上記画像のとおり10,0,22,87が最新バージョンとなっています。旧バージョンをご利用の場合は、最新版のFlash Playerをダウンロード・インストールしておきましょう。

続いてAdobe Readerのバージョン確認について。これに関してはgtk042さんが詳細にまとめてくださっています。現在のところ最新バージョンは9.1.1ですので、9.1.0や9.0台をお使いの場合は最新版に更新する必要があります。Adobe Reader 9.1.0をダウンロード・インストールした上で、さらにReaderを起動し、メニュー「ヘルプ」→「アップデートの有無をチェック」で9.1.1にアップデートします。最新のバージョン9.1.1が直接ダウンロードできないのはちょっと面倒ですが、ここまでやっておきましょう。

ITホワイトボックス

火曜日, 5月 12th, 2009

みなさまこんにちは、加賀田です。本日は表題のテレビ番組をご紹介します。何かのまわし者というわけじゃないですが、参考になったので。

NHK総合で放映中の『ITホワイトボックス』。番組Webサイトでは、内容について次のようなふれこみで内容が紹介されています。

今や、電気やガス、水道とならぶライフラインとなったインターネットや携帯電話などのIT=情報技術。
使っちゃいるけどその仕組みはさっぱりわからない・・そんなITのブラックボックスに光をあてるのが、ITホワイトボックスです。

NHKらしい素朴な雰囲気でIT技術をわかりやすく紹介してくれる、いい番組です。

親しみやすい空気を装いつつも、取り上げる話題は公開鍵暗号の概念であったりDNSの再帰検索であったり、硬派なものも織り交ぜられていて興味深く見ています。RFC作成の現場など、ほかではなかなか見られないような映像がさりげなく出てきてどきどきすることも。

Web制作の現場ではHTMLだのCSSだの手元のテクノロジーにばかり目を向けがちですが、Web専門企業としてのサービスを総合的に考えると、こういったIT全般の素養は欠かせないなと感じます。これからも引き続きチェックしていこうと思います。次回放映はあさって14日(木)23:30から。

…余談ですが、この記事を書くために番組Webサイトを見ていて、MCの森下千里さんが自分と同い年だということに気づきました。へーえ。

IE8への自動アップデート開始

木曜日, 5月 7th, 2009

みなさまこんにちは、加賀田です。黄金週間はいかがお過ごしでしたか?

さて、スラッシュドット・ジャパンの伝えるところによると、待ちに待った(?)Windowsの自動更新機能によるIE8の提供が日本でも開始されたとのことです。

全世界的には去る日本時間4月29日よりIE8の自動更新が開始されていたとのことですが、日本だけは「ゴールデンウィークなどの日本特有の事情を考慮し」て先延ばしされていたのでしたね。黄金週間が明けたということで、満を持しての更新開始というところでしょう。

先に挙げたスラッシュドット・ジャパンのストーリーでは、まだまだ海のものとも山のものとも知れない新アプリということで、更新に対しては慎重な論調が目立ちます。

しかし、いまのところIE8へのアップグレードによる重大な不具合は聞かれませんし、レンダリング性能だって向上してるんです。IE6のレンダリングバグに泣かされる日々を送るWeb屋としては、この機会にぜひぜひ更新をお願いしたいところです。

とはいえ、わたし自身も自宅マシンのIEはさっそくアップグレードしましたが、作業用マシンでの更新には二の足を踏んでしまいます。IE8のシェアが十分上がるまでは、IE7(や6!)の検証環境が手元にあったほうがいいですからね。

まあそういう意味では、当ブログをご覧のみなさまがIE8への更新作業を完了してはじめてわれわれもIE8に手を出せるともいえます。そういうわけで、みなさまのPC環境に責任を負えない都合上声高に訴えられないのは残念なところですが、みなさまの勇気あるIE8更新をひっそりこっそりお待ちしております(?)。

CAPTCHAの近況

火曜日, 4月 28th, 2009

みなさまこんにちは、加賀田です。本日はCAPTCHA関連のニュースを続けて見つけたので、そのことについてメモ。

まず、ITmediaからCHAPTCHAを破ってGmailアカウントを取りに行くワームのお話。Hotmailなんかでも以前から同様のニュースが出ていましたね。

ちなみに、こちらがGmailの新規アカウント取得画面。この画面、場合によっては人間であるはずのわたし自身にも自信を持って読めないテキスト画像をよこしてくるんですが…。ワームの正答率がどれほどかは伝わってきていませんが、Google側が対策を講じるくらいですから、それなりのものなんでしょう。

で、その対策として試作されたというのが、画像を回転させるCHAPTCHAというものだそうで。丸い写真の上にあるスライダーで画像を回転させるんでしょうか。で、写真の天地を正しく調整できたら人間扱いする…ということなんでしょうね。

写真のような複雑な画像を使えば、確かにテキスト画像よりはボットに破られにくくはなるんでしょう。でも、スパマー側の技術革新も無視できません。結局いたちごっこになりそうな感はあります。

しかも、人手を使ってCHAPTCHAを破る有料サービスなんていうものまで出てきているそうで。もはや、人間と機械を区別するだけでは間に合わない状況にすらなりつつあるようです。というか、世の中にはいろんな仕事があるものです…。

そしてこれらのニュースと時を同じくして、スラッシュドット・ジャパンにもCHAPTCHAに関する議論が上がっています。CHAPTCHAの入ったフォームを初めて見たときには「うまいことを考える人もいるもんやなあ」とのんきに感心していたものでしたが、その実なかなか難しい問題をはらんでいますね。

Firefox3.0.8が不安定

木曜日, 4月 16th, 2009

みなさまこんにちは、加賀田です。突然ですが表題のとおり、Firefoxの現行版3.0.8がなんだか不安定みたいです。皆様の環境ではいかがでしょう?

わたしの業務用マシン(WindowsXP)では、Firefoxを3.0.8にインストールしてからクラッシュの頻度が目に見えて増えました。もっとも、増えたといっても日に一度あるかないかくらいですが(Firefox2のころはもっとひどいこともあったもんなあ)、それでもブラウザのクラッシュにはいらっとするもので。加藤のマシンでも、似たような状況らしいです。

当初はアドオンが増えすぎたかなあなんて内部要因を疑っていたのですが、うち以外でも3.0.8がクラッシュしているらしいという話も聞こえてきました。Mozilla Fluxさんの記事によれば、マルウェアとWindows版Bonjourに嫌疑がかかっているようです。

そういうわけで、とりあえず業務用マシンのBonjourを停止してみました。実は弊社内ではiTunesによる音楽ファイルの共有を行っていて、これを止めちゃうと若干さびしくなるのですが背に腹は代えられません。しばらくはこれで様子を見るとしましょう。

第4回CSS Naked Day

木曜日, 4月 9th, 2009

みなさまこんにちは、加賀田です。本日は表題のとおり、年に一度のCSS Naked Dayでしたね。

CSS Naked Dayとは、GoogleのユーザインタフェースエンジニアであるというDustin Diaz氏が提唱する、「WebサイトのCSSを外してみる日」のこと。普段はCSSやJavaScriptやFlashなどの技術に隠れてしまいがちな、HTMLコーディングの地道な努力をみんなで称え合おうということなんでしょう。

HTMLのコーディングで糊口をしのぐ身としてはこんなに素晴らしい提案はないと思うところで、ぜひ乗っかってみようと思うのですが今年もうっかり当日まで失念しておりました…また来年には実施したいところです。というか、その前にテンプレートのコードも見直さなくちゃなあ。

ちなみに、当ブログのようにWordPressベースのブログで参加する場合には、当日に自動でCSSを外してくれるプラグインなんかも出ています。これなららくちんですね。

Webサイトをお持ちのみなさま、来年には”Don’t think, just strip”すなわち「考えるな、ただ脱げ」の精神でこのイベントに参加なさっても面白いんじゃないでしょうか。そしてHTMLコーディングに光を!

URL末尾のスラッシュ

火曜日, 4月 7th, 2009

みなさまこんにちは、加賀田です。数日前の記事ですがスラッシュドット・ジャパンに『長いURLは回線容量を無駄に消費? 』というお話が出ていました。内容自体もさることながら、コメントのほうにも興味深いものを見つけました。

>http://www.exapmle.com
>http://www.exapmle.com/

上と下で

>両者に発生するトラフィックに違いはないよ。

のは、サーバー名の直下の”/”だからです(RFCは失念)

http://www.example.com/hoge [example.com]
http://www.example.com/hoge/ [example.com]

なら、
1. www.example.com の /hoge をくれ。
-> /hoge はないが、/hoge/ はあるよ。
2. www.example.com の /hoge/ をくれ。
-> つ /hoge/
という感じで、ブラウザとサーバがやり取りするので、トラフィックに差が出ます。

なんとなく「URL末尾のスラッシュは省略しちゃいけない」とは認識していました…が、ホスト名直下とディレクトリ名末尾とでは厳密には扱いが違ったのですね。

ということで、まずはFirefox+Live HTTP headersでどんな実装がなされているか検証してみました。社内で使用しているWebサーバに対して、次のようなアクセスを試みます。

1) http://www.example.co.jp (ホスト名直下のスラッシュを省略)
⇒FirefoxがURL末尾にスラッシュを追加してリクエストを送出。
2) http://www.example.co.jp/hoge (ディレクトリ名末尾のスラッシュを省略)
⇒そのままリクエスト送出し、レスポンスコード301が返ってくる。http://www.example.co.jp/hoge/へリダイレクト。

なるほど、確かに動きが違いました。1)の場合はクライアントサイドでスラッシュが補完されるのでトラフィックが増えない、対して2)ではサーバサイドでのフォローになるのでトラフィックが増えるというわけですね。

さらに、元記事の投稿者さんが根拠となる「RFCを失念」されたとのことだったので、こちらで調べてみました。

URLの仕様を示すRFCはRFC3986。ABNFなどを見る限りでは、パスが全く含まれないURL(つまり上記1)のような状態)もいちおうURLとして許容できそうです。

そして、そのようなURLの解釈については”6.2.3. Scheme-Based Normalization”あたりが該当の記述になりそうです。

In general, a URI that uses the generic syntax for authority with an empty path should be normalized to a path of “/”.

ただ、スラッシュがない場合の処理をクライアントサイドで実行するかサーバサイドで実行するかについてはRFC3986に記述がないようです。ほかの文書に出てるのかな…。

list-style:noneとlist-style:none noneとかIE8とか

金曜日, 4月 3rd, 2009

みなさまお久しぶりです、加賀田です。このところ更新頻度がとみに下がっておりまして、社内外のみなさますみません。

さて、先日投稿した『IEとlist-style:none』に、非常に興味深いコメントをいただきました。naokitaさんありがとうございます。

いわく、

普通に考えた場合
ul.none{list-style:none}ではなく、
ul.none{list-style:none none}なら出来ると考える。

とのこと。

普通に…か、仕様書の記述に従って普通に考えたつもりなんだけどなあなんて愚痴をたれつつも試してみたところ、確かにlist-style:none noneで解決。

なるほど、IEに対してはこうしてlist-style-typeとlist-style-imageの両方がnoneですよーと明示してやらなきゃならないんですね。仕様書の「普通」も、IEの「普通」の前ではいかにも無力です…。

そしてさらに。

が、しかし
ul.none{list-style: none disc;}
ul.none{list-style: disc none;}
の表示が違う。。。

!?そんなことが。

ということで、こちらも検証してみました。まずはnone discから。

p_200904031

次にdisc noneの順で。

p_200904032

後者だけul.noneのマーカがdiscになりました。確かに違いますね。

後者の解釈はともかく、前者のCSSに対してマーカ画像を表示するという解釈は非常に気持ち悪いですね…。もっとも、こういうコードを書く機会自体少なそうではあります。ここまで来ると、ショートハンドを使わないほうが見通しがいいでしょうからね。

ちなみに、先日リリースされたIE8ではlist-style:noneの解釈が仕様書通りになり、他のブラウザと同じ挙動を示すようになっています。よしよしいい子だ。

WWW20周年

木曜日, 3月 12th, 2009

みなさまこんにちは、加賀田です。本日のスラッシュドット・ジャパンに興味深い話題が出ていましたね。『World Wide Web 20周年』

何をもって20周年なのかというと、Webの生みの親ティム・バーナーズ=リー氏がWebの考え方についてまとめた“Information Management: A Proposal”なる文書がちょうど20年前の3月に出たんだそうです。これを元に生まれたWorld Wide Webの最初の実装がその年の冬のこと。

そしてその20周年を記念して、欧州原子核研究機構(CERN)ではあす式典が催されるそうです。W3Cの式典情報を見ると、バーナーズ=リー氏ほかWebの研究者たちによる講演などが目白押し。そしてさらに興味を引かれるのがこちら。

15:00
possible Demo of the NeXT computer on which Tim Berners-Lee developed the Web and which was also the first Web server

世界初のWeb開発環境兼WebサーバとなったワークステーションNeXTcubeによるデモンストレーション!うわっ、これは見てみたい。

そしてそして、式典会場となるCERNの Globe of Science and Innovation Buildingも、非常にかっこいいですね。夕景がたまりません。

これはもう、万障繰り合わせてジュネーブに旅立ちたくなるところです…が、残念なお知らせも掲載されています。

Please note this is an invitation-only event as the space at the Globe building is unfortunately very limited. Please do not share your invitation, this Web page or the registration link with others.

残念ながら私はご招待いただけませんでした。明日も南平台で仕事をしようと思います。

ただし、続けてこんな予告も。

The proceedings of the day, will however, be made available as a webcast and we are exploring mechanisms by which people might be able send messages or participate virtually.

CERNのWebcastなどで式典の様子を見ることができるようになるもよう。というかparticipate virtuallyって具体的にはどういうことなんでしょう?こちらもチェックしたいですね。

jQueryのshow()とPrototype.jsのshow()

月曜日, 3月 2nd, 2009

みなさまこんにちは、加賀田です。本日は表題そのまま、Prototype.jsとjQueryそれぞれにおけるshow()の挙動の違いについてご紹介いたします。

例えば、HTMLソースコード中に次のような要素が存在したとします。

<p id="example">example</p>

この要素をJavaScriptで非表示の状態に切り換える場合、例えば次のような記述をすることになります。

document.getElementById('example').style.display = 'none';

また、jQueryのもとでは次のようにすることもできます。

$('#example').hide();

スマートですね。ここで、$(‘#hoge’)がdocument.getElementById(‘example’)に、またhide()がstyle.display = ‘none’にそれぞれ相当します。

そして後者のhide()は、Prototype.jsにも同様の機能が同名で用意されています。Prototype.jsのもとでの記述は次のとおり。

$('example').hide();

$()の仕様が若干違って、ID名に#がつきません。

これを踏まえて。hide()とは逆に非表示の要素を表示させるshow()というメソッドもそれぞれ存在しています。

例えば、先述のHTMLに次のようなCSSをあてます。

#example{
display:none;
}

これにより、デフォルトで先のp要素は非表示となります。

これを表示状態に切り換えるには、jQueryのもとでは次のように記述します。

$('#example').show();

ではPrototype.jsなら、次のコードを実行すれば良さそうですが…

$('example').show();

実際には、これによって先の要素を表示させることはできません。

最初にこれで詰まった際、原因が分からなくていろいろ情報を求めたところ夜の Discovery さんにリファレンスへのリンクつきで解説がありました。そうか最初にリファレンスを見るべきでした…。

Prototype.jsのリファレンスには次のような記述がみられます。

Element.show cannot display elements hidden via CSS stylesheets. Note that this is not a Prototype limitation but a consequence of how the CSS display property works.

CSSで非表示にした要素をshow()で表示状態に切り換えることはできないとのことです。つまり、Prototype.jsにおけるshow()は専らhide()で隠した要素を表示させる場合に使用するものということになります。

ちなみに、jQueryのリファレンスではshow()について次のように述べられています。

It doesn’t matter if the element is hidden via a hide() call, or via a display:none in a stylesheet.

Prototype.jsのshow()にあるような制限は設けていないということですね。

Prototype.jsが上記のような制限を設けている理由として、ひとつにはアクセシビリティの問題があろうと思われます。CSSで非表示とした要素をJavaScriptで表示するようにしてしまうと、JavaScriptが無効な環境においてこの要素を見ることができなくなってしまいます。そこで、要素を非表示にする処理もJavaScriptで行うよう制限してやれば、JavaScript無効環境では表示されっぱなしになり、そうした事態には陥らずに済みます。

なお、CSSで非表示の要素をPrototype.jsのもとでむりやり表示させるには、次のような記述をします。

$('example').setStyle('display:block');

より明示的にCSSを変更してしまうコードですね。先述のようなアクセシビリティ上の問題からこうした実装は避けたいところですが、場面によっては有効なこともあるかもしれません。