体調を崩して、少し下痢気味だ。
昨日、午後から晴れてきたので、これならジョギングができるだろうと出かけた。思えば昨日は、あまり本調子ではなかった。いつもより疲労が早かったのだ。それを無理に、今日も8km走ろうと、出町柳まで走ったが、どうにも疲れて、帰りは歩いて帰ることにした。途中でかなり激しい雨が降ってきた。
ようよう家に帰ったが、どうも体がだるく感じた。そして今日になって、下痢とは。
いつもより疲労を感じたら、無理はしないことだ。
体調を崩して、少し下痢気味だ。
昨日、午後から晴れてきたので、これならジョギングができるだろうと出かけた。思えば昨日は、あまり本調子ではなかった。いつもより疲労が早かったのだ。それを無理に、今日も8km走ろうと、出町柳まで走ったが、どうにも疲れて、帰りは歩いて帰ることにした。途中でかなり激しい雨が降ってきた。
ようよう家に帰ったが、どうも体がだるく感じた。そして今日になって、下痢とは。
いつもより疲労を感じたら、無理はしないことだ。
Keeping News of David Rohde’s Kidnapping Off Wikipedia - NYTimes.com
人命がかかっているわけで、単純にWikipedia悪とも言えないのが難しい所だ。
まあ、今の時代、言論封殺は難しいのだろうな。
HTML と XHTML で同じ XPath を使う: Days on the Moon
結局、これが便利だという結論に達した。
それにしても、こういう例を見るたびに、正規表現を詳しく学びたいという思いがするものの、未だに、ちょっと高機能なワイルドカード以上に使いこなせないでいる。
高木浩光@自宅の日記 - EV SSLを緑色だというだけで信用してはいけない実例
あ、もしもし、オレオレ、そう、株式会社フューチャースピリッツだけどさぁ。ナイスなメールフォーム作ったんで使ってくれ。もちろんSSLだからセキュリティもバッチリ。一昔前に流行った、オレを自称するどこぞのアホの作ったニセモノSSLとは違うぜ。こっとらちゃぁんとEV SSL持ってんだから。何がすごいってブラウザのアドレスバーが緑色になる。SSLが信頼できるかどうか確かめられる新機能。安心だろ? ん? オレと全く関係ない奴が、おれのSSL使ってるって? こまけぇこたぁいいんだよ。EV SSLには変わりねぇんだから。その証拠にほれ、ブラウザ緑、オレ最強。
しかもフォームに入力された内容は、平文でメールにてサービス利用者に送られるという本末転倒なサービス。
学校の参考書などは、自らを名付けて虎の巻などとしている。しかし、参考書の名前を虎の巻にする筆者が信頼できるかは、はなはだ疑問である。
虎の巻とは、中国の有名な兵法の書、六韜の虎韜に由来するものである。実は、六韜はとても短い。だから、一時間もあれば虎韜は読める。そこで、ちょっと読んでみた。
結果は、あまり価値のあることは書いていない。武王が何を聞いても、太公望は適当に答えるばかりである。太公望の言葉は、一にして足る。曰く、「臨機応変」。具体的には、右にして左にして前後してと、もっともらしいことを云っているが、根本的には、「その時々に応じて最適な方法をとれ」と云っているに過ぎない。何の価値もない書物である。
故に私は言う。虎の巻と称する参考書の筆者は、六韜を読んでいない。もし読んでいたならば、こんな無意味な書物から、名前を引かないはずだ。
ただ、六韜はやたらと読みやすい。だから、読みやすい文章に対して、虎の巻というのは、可だと思う。
自衛隊の二次試験にて、面接官が開口一番、曰く、「君は僧侶かね。自衛隊という特性上、何か特定の宗教を強く信奉している人は困るのだけれどね」と。
まあ、確かに京都だ。坊主は多い。しかし、自衛隊の試験だ。気合いを入れるために坊主頭にしてくる人ぐらい、結構いるのではないだろうか。もっとも、当日、坊主頭にしていたのは、私一人だったのだが。
だいたい、私は自衛隊に入るから坊主頭にしているわけではないのだ。いわば趣味だ。髪を伸ばしたり染めたりするのが趣味と認識されるのなら、剃髪するのだって、趣味として認識されてしかるべきだ。私は剃髪するほどまめではないので、いつもバリカン刈りなのだが。
まあ現実に、自衛隊に志願するからといって、頭を丸めてくる人は、極少数なのだろう。私からすれば全く理解できないが、皆、髪に未練でもあるらしい。不思議なことだ。
一日50万人のアクセスか。海王拳並だな。
Ananova - Luxury yachts offer pirate hunting cruises
ロシア発、豪華海賊撃退ツアー。一日当たりのお値段は3500ポンド、危険な海域をわざと航海します。海賊に襲われたら、グレネードランチャー、マシンガン、ロケットランチャーで撃退、爽快間違いなし。今なら一日5ポンドでAK-47がレンタルできてお得です。ちなみに、弾は100発で7ポンドとなっております。
どうも海賊狩りツアーは嘘ニュースらしい模様。まあ、実際明らかに怪しい文面だったしなぁ。しかも、五月あたりから広まっていたニュースらしい。
昨晩はXPathにかまけていて、肝心の試験の様子について書くのを忘れていた。
私は六時半に、地本から車で宇治の駐屯地へ向かった。今回は、特筆すべき事はあまりない。予備自衛官補の試験と、それほど変わりないからだ。行うべき事は二つ。身体検査と面接のみ。
身体検査は予備自衛官補のものと、全く変わりがなかった。ただし、やたらと丁寧な検査になっていたと思う。とくに、色覚と聴力に関してだ。予備自衛官補では、色覚のテストを、飛ばし飛ばしにやっていた。ただし今回は、全ページに対して行った。また、聴力も、以前は数種類の周波数でしか行わなかったが、今回はやたらと増えた。予備と現職の違いだろうか。
さて、落ち着いて周りを見回してみると、皆、申し合わせたように同じ格好をしていた。つまり、私も含めて皆、いかにもな若者らしく安物感が漂う、こぎれいなスーツを着用していた。いわゆるリクルートスーツと呼ばれている所のものだ。不思議である。一次試験では、ほとんどの人間がスーツを着ていなかったのだ。もちろん、一次試験は面接などないので、服装にこだわらないというのもあるが、それにしても、この100%のスーツ着用率は不思議である。
そして人数だ。やたらと少ない。中部の二次試験は、27日と28日に、宇治駐屯地で行われる外、24日に舞鶴で行われたらしいが、それにしても人数が少ない。
これは地本の人の話なので、真偽は分からないのだが、何でも、例年の一般曹候補生は、秋にしか試験をしないらしい。それが今年、年二回やるようになったのだとか。更に噂によれば、前期の試験では、三割しか取らないといわれている。残りの七割は秋の試験に取るのだとか。そこで、今回の一次試験突破は、だいぶ厳しかったのではないかと言うことだった。
この私でも通ったぐらいだから、それほど厳しい一次試験だったとは思えないが、現にこうして、全員申し合わせたようにスーツ着用の光景を見ると、まあ、そんな気もしてくる。一次試験の時は、茶髪にピアスで眉そり落とし、アクセサリーをジャラジャラと付けて、やたらと派手なシャツに、両膝の破けたジーンズで、しかも遅れてきた奴がいた。そういう手合は受からなかったのだろう。
試験は、非常にあっさりとしたものだった。特技は英語とプログラミングだと答えたら、何でも、面接官もプログラミングをするらしい。具体的には何もいわなかったものの、「おいおい、何でIF使ってるんだよ。遅いだろうが、SELECT使えよ」という言葉があったところから察すると、SQLだろうか。SQLがプログラミング言語かというと、また別の話だ。SELECTに言及する前に、危うく、「そうですな、ブランチはヘビーなパイプラインを持つモダンなプロセッサにとってはタブーですな」などと言いそうになった。危ない所だった。また、言語だが、ハングルは読めるかと聞かれた。残念ながら、ウリにはハングルは読めないニダ。なるほど、確かに今の情勢から考えるに、使えて重宝される言語というと、ハングルになるのだろう。
いつも通り、私はあらかじめ何も答えを用意せずに望み、その場で正直に答えた。別に己を夏目漱石の坊ちゃんに比したいわけではない。自身の性格からして、あらかじめ心にもない「模範解答」を用意していったところで、その模範解答を答えようとすれば、眉つり上がり、目細まり、口元ゆがみといった、いわゆる苦虫を噛みつぶしたような顔をするに決まっているからである。つまり、私はポーカーが苦手だと言うことだ。
他人の感想を求めても、皆、「やたらとあっさりと終わった」と言うだけであった。誰一人として、「いやぁ、つっこまれまくってダメでした。終わったなオレ」などと答えたものはいなかった。無論、圧迫面接の有効性については疑問だが、皆が皆、あっさりと終わったと感じるような面接でも、やはり評価のしどころに困るのではあるまいか。その辺は、疑問である。
そういえば、ひとつ気がついたことがある。それは、陸と海で、一次試験合格通知の判子が、変わっていることである。陸は楷書の判子だったが、海は隷書だった。海は昔気質なのだろうか。
とにかく、これで試験はすべて終わった。合格通知は七月末、秋の試験の受付は八月からだ。
予備自衛官補の辞令式が、もうすぐある。
DOM XPathの実装に、どこか違和感がある。その理由はこうだ。
典型的なXHTMLの場合、HTML要素に、無名の名前空間とでもいうべきものを指定する。(規格を逆さにしてみても、どうもこの名前のない名前空間の正式名称は分からない)
<html xmlns="http://www.w3.org/1999/xhtml" >
これは確かに名前空間だが、とくに具体的な名前を使ってはいない。したがって、そもそも典型的なXHTMLには、名前空間のプレフィクスなど指定しようがないのである。指定しようがないのだから、XPathEvaluator.createNSResolver(document.documentElement)を使って、現在のドキュメントのResolverを作ったとしても、動くわけがない。だから、XPathにおいては、ダミーの名前空間を指定し、そのダミーの名前空間に対して、XHTMLの名前空間を返すResolverを実装するという、不思議なコードを書かなければならないのだ。
具体的に言うと、XPath表現がこんなものだとしても、
/お前は俺を怒らせた:html/だが断るッ!:body/貧弱ゥ貧弱ゥ:p/*
以下のようなResolverを渡せば動いてしまうのである。
var NSResolver =
{
lookupNamespaceURI : function (prefix)
{
return document.documentElement.namespaceURI ;
}
} ;
なぜなら、このXPath表現はXHTMLに適用することを前提にしているので、名前空間などどうでもいいのである。ただし、名前空間の指定を省略することはできない。どんな文字列でもいいが、何かしら指定しなければならない。なんと無意味なことか。
そもそも、何でこんな不思議な実装になっているのだろう。名前空間が無名なのだから、何も指定する必要はないと思うのだが、よく分からない。
DOM XPathは、多くのブラウザでサポートされている。しかし、その実装が、現実的に理解できない。
本物のXHTMLに対してXPathを用いるには、名前空間を明示的に指定しなければならない。省略不可能である。何故だ。何故なのだ。普通、XHTMLの要素に対しては、具体的な名前空間を使うことは、まずない。たとえば、
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html > <html xmlns:ジョジョ="http://www.w3.org/1999/xhtml" > <ジョジョ:head> <ジョジョ:title> 岸部露伴語録集 </ジョジョ:title> </ジョジョ:head> <ジョジョ:body> <ジョジョ:p> 今…家がない……<ジョジョ:br /> 康一くんのとこ泊めてもらってるし<ジョジョ:br /> 漫画描く机もない<ジョジョ:br /> 「セーラームーン」のフィギアも<ジョジョ:br /> 「レッド・ツェッペリン」の紙ジャケも<ジョジョ:br /> 「るろうに剣心」も全部売っ払っちまった </ジョジョ:p> </ジョジョ:body> </html>
こんなXHTMLを書く奴はいない。皆、XHTMLの名前空間を、わざわざ指定したりしないのだ。そもそも、xmlnsすら、だれも考えて使ってはいない。その意味を理解して使っている人間はすくない。ただ、おまじないに成り下がっている。そこで、XHTML5では、xmlnsもいらないんじゃね、ということになっている。
そして、実際のドキュメントでは名前空間を使っていないにもかかわらず、DOM XPathでは、なぜか名前空間を指定しなければならない。それが面倒なので、ある人は、こういう場当たり的なコードを書いている。このリンク先でやっていることといえば、XPathでは、記述を楽にするため、使っていないはずの一文字名前空間を使い、さらに、愚直にあらゆる名前空間に対してXHTMLのURIを返すXPathNSResolverを実装しているのだ。もはや、XHTMLを使う理由が分からない。厳格に使えないのであれば、そもそもXHTMLを使う必要などない。
そもそも、jQueryを初めとした一連のJavascriptライブラリは、別にCSSのセレクタを、要素検索の言語として選ぶ必要はなかったのである。XPathでも良かったのである。Javascript上でXPathを実装するのは、不可能ではない。ところが、そんな酔狂なライブラリは出なかった。CSSのセレクタに、親要素を選ぶだとか、何番目の要素を選ぶだとかの、軽い独自拡張を施した程度の検索用言語で、皆満足している。思うに、誰も、XPathのような複雑怪奇で、正規表現とも比すべき読みにくさを誇る言語を使いたくなかったのだろう。
これを考えるに、W3Cの規格を書いている人間は、何か特別にすばらしいものを吸っているとしか思えない。その吸っているものがあまりにすばらしすぎるので、まともに現実をみることができていないのだ。
XHTML上でXPathを使おうと試みているが、なかなかうまくいかない。
HTML上なら、何の問題もない。ただ、XHTML(Content-typeが、application/xhtml+xmlである本物のXHTML)で、XPathを使うのが、やたらと難しい。
例えば以下のコード
document.evaluate("count(/html/*)", document, null, XPathResult.NUMBER_TYPE, null).numberValue ;
このコードを、html下にheadとbodyのある、いわゆる一般的なXHTMLに対して適用すると、2が帰ってくるはずである。実際、HTMLでは、2が帰ってくる。ところが、本物のXHTMLでは動かない。
どうやら、名前空間とやらが問題らしい。そこで、以下のコードを試してみた。
var result = document.evaluate("count(/html/*)", document, document.createNSResolver(document), XPathResult.NUMBER_TYPE, null).numberValue ;
var result = document.evaluate("count(/html/*)", document, document.createNSResolver(document.documentElement), XPathResult.NUMBER_TYPE, null).numberValue ;
動かなかった。そこで、XPathNSResolverインターフェースを自前で実装することにした。
// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathNSResolver
// に準拠した実装
var NSResolver1 =
{
lookupNamespaceURI : function (prefix)
{
if ( prefix === "html" )
return "http://www.w3.org/1999/xhtml" ;
else
return null ;
}
} ;
// たんなる関数
function NSResolver2 (prefix)
{
if ( prefix === "html" )
return "http://www.w3.org/1999/xhtml" ;
else
return null ;
} ;
どちらを使っても、Chrome、Safari、Firefox、Operaでは動かなかった。
どうしたら動くのだろう。もうお手上げだ。
というかこの場合、名前空間をvalidateすることを望んでいるプログラマはいるのだろうか。普通、速度を気にするはずである。XPathが遅いの早いのと議論されているようだが、どう考えてもこれは、机上の空論による規格としか思えない。実際、誰も使っていないじゃないか。みんな何を使っているかというと、jQueryのようなJavascriptのライブラリを使い、CSSのセレクタで要素を取得しているのだ。実際、要素を検索するといっても、それほど複雑な検索機能を欲してはいないのだろう。所詮はCSSのセレクタ程度で十分だということだ。
そして、実際XPathは遅いと思う。なにしろ、CSSのセレクタのように、単純に1パスというわけにはいかない。場合によっては、ノードツリーをさかのぼって探さなければならないし、その規格はやたらと複雑だ。一体誰が使うのか謎な機能が多すぎる。
XPathは、どう考えても失敗規格だなぁ。第一、XPathの表現は読みにくい。
Reducing the file size of HTML documents
CSS: Using every declaration just once
本当に、HTMLやCSSから十数文字程度を削減したぐらいで早くなるのだろうか。積もり積もってファイルサイズが増えることもあるだろうが、仮にわずかなタグ記述の節約によって、ファイルサイズとCPU時間を削減しえたとしても、実際のコンテンツとしての文字だけで軽く上回ってしまうし、画像はいかに最適化しようとキロバイトのレベルだし、広告一発で帳消しどころかマイナスになってしまうじゃないか。Googleとして広告を否定するわけにもいかないだろうに。
現にこうやって書いているだけで、一文字3バイトも消費してしまう(Bloggerの文字コードはutf-8なので、多くの日本語の文字は3バイトである)
東京新聞:中国検閲ソフト 低い性能? 毛沢東の顔写真わいせつと誤認:国際(TOKYO Web)
唐の時代は、世界的に実力のある国だったのに、それがどうしてこんな事になっているのやら。
プーチン
「ロシア最強の男」プーチン首相、スーパー電撃視察で値引き指示 写真4枚 国際ニュース : AFPBB News
いつまでたっても、ロシアには自由とか資本主義などという言葉は根付かないようだ。
// ==UserScript==
// @name Dislabe ugly style.
// @namespace http://cpplover.blogspot.com/
// @description disable ugly font-weight and font-style for all web sites
// @match http://*/*
// ==/UserScript==
(function()
{
var style = document.createElement("style") ;
style.setAttribute("id", "hito-disable-ugly-style") ;
style.appendChild(
document.createTextNode( "* { font-weight : normal !important ; font-style : normal !important ;}" )
) ;
document.getElementsByTagName("head").item(0).appendChild(style) ;
})() ;
Chrome用。GreaseMonkey用にするためには、@matchを@includeに変える必要がある。
世界が変わった。boldもitalicもないWebサイトのなんと読みやすいことか。なぜ外人は、こうもboldやitalicが好きなのだろう。この疑問に対して、或る外人は次のように答えた。
我々には、日本語のように、異なる字形だが同じ文字というものがない。例えば、「俺は馬鹿」という言葉に対しては、「俺はバカ」だとか、「オレはバカ」だとか、違った言い方ができるし、読んだときのニュアンスが微妙に違うが、我々の文字では、こういう事はできない。したがって、何かを強調したい時は、boldやitalicを使うのだ。
うーむ。言語の優劣というものを語るのは、言語学においては野暮だと聞く。文字が多いと面倒な事もあるが、boldやitalicを必要としないので、すばらしい。
そういえば、一昔前の、つまり70年代や80年代の純文学小説では、印刷する文字自体を、表現に含めていることがよくあった。村上春樹や村上龍の小説が有名だと思う。字体や大きさ、太さなどを指定して印刷してあるのだ。あれは、正しい日本語ではないと、私は思う。日本語には、boldやitalicを必要とはしないのだ。
李密の書いた陳情表が名文過ぎて困る。対句はカッコいいし、言いたいことを直接書いていないのに、何故かその意が明確に伝わってくる。一体どうすればこんな文章が書けるのだろう。
臣密言。 臣以険釁、夙遇愍凶。 生孩六月、慈父見背、行年四歳、舅奪母志。 租母劉閔臣孤弱、躬親撫養。 臣少多疾病、九歳不行。 零丁孤苦、至於成立。 既無叔伯、終鮮兄弟。 門衰祚薄、晩有児息。 外無期功彊近之親、内無応門五尺之童。 煢煢獨立、形影相弔。 而劉夙嬰疾病、常在牀蓐。 臣侍湯薬、未嘗廃離。 逮奉聖朝、沐浴清化。 前太守臣逵、察臣孝廉、後刺史臣栄、挙臣秀才。 臣以供養無主、辞不赴。 会詔書特下、拝臣郎中。 尋蒙国恩、除臣洗馬。 猥以微賎、当侍東宮。 非臣隕首所能上報。 臣具以表聞、辞不就職。 詔書切峻、責臣逋慢、郡県逼迫、催臣上道。 州司臨門、急於星火。 臣欲奉詔奔馳、則以劉病日篤。 欲苟順私情、則告訴不許。 臣之進退、実為狼狽。 伏惟、聖朝以孝治天下。 凡在故老、猶蒙矜育。 況臣孤苦、特為尤甚。 且臣少事偽朝、歴職郎署。 本図宦達、不矜名節。 今臣亡国賎俘、至微至陋。 過蒙抜擢、豈敢盤桓有所希冀。 但以劉日薄西山、気息奄奄。 人命危浅、朝不慮夕。 臣無祖母、無以至今日。 祖母無臣、無以終余年。 母孫二人、更相為命。 是以区区不能廃遠。 臣密今年四十有四、祖母劉今年九十有六。 是臣尽節於陛下之日長、報劉之日短也。 烏鳥私情、願乞終養。 臣之辛苦、非独蜀之人士、及二州牧伯、所見明知、皇天后土、実所共鑑。 願陛下衿憫愚誠、聴臣微志、庶劉僥倖保卒余年。 臣生当隕首、死当結艸。 臣不勝怖懼之情。 謹拝表以聞。
Chromium Blog: Developer Tools for Google Chrome
今まで、ChromeはWebkitのInspectorをそのまま使っていた。ElementとResourceタブは問題ないのだが、ChromeはV8という別のJavascriptライブラリを使っているので、このままではJavascriptデバッガとプロファイラが動かない。今回のDevリリース(3.0.190)で、このInspectorに手が加えられた。Javascriptデバッガとプロファイラが動くようになった。
早速試してみたが、使い勝手が良くてすばらしい。
Simplifying the use of concepts
これはすばらしい。名文だ。あの378通あるMLでの議論を、よくまとめあげたものだ。と思ったら、外ならぬBjarneさん本人の筆だった。これは全C++プログラマが読むべきだと思う
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/#mailing2009-06
とりあえず、現時点で興味深いものとしては、
Defining default copy and move
Copyコンストラクタのみを持っている型と、Moveコンストラクタのみを持っている型の両方をメンバにもつクラスは、copyもmoveもできないというお話。
Unified Function Syntax
local functionとnamed lambdaが復活してる。うれしいな。
The long pole gets longer
いつconceptに対応したコンパイラが出るのよ、というお話。まず、規格のスケジュールとしては、去年あたりから言われていたのだが、基本的に、今年の10月にFCDがでて、2010年にはFDISを出す予定。FDISがでれば、もう変更は無いので、コンパイラベンダーも安心して実装できる。ただ、ISOの規格として発行するには、その後も少々時間が必要で、まあ、2011年になるかなといったところ。conceptの実装も時間がかかる。まあ、実装が出揃うのは、よくて2011年。私見では、2011年にconceptをサポートするコンパイラが出たとしても、Betaという名を関しているだけだと思う。まともに使えるようになるのは、2013年あたりになるんじゃないかと思う。
New wording for C++0x Lambdas
lambdaの文面に関する疑問が各国から噴出したので、文面を書き直すよというお話。あと、sizeof、alignof、decltypeの中では、lambda expressionを使えないようにするらしい。そんなこと考えても見なかった。もし出来たとしたら、sizeof([] -> int8_t{return 0})なら1が帰ってくるのだろうか。decltypeはもっとひどい。なぜなら、すべてのlambda expressionは別の型を返すのだから、lambda expressionが完璧に同じでも、別の型になるはずだ。つまり、is_same< decltype([]{}), decltype([]{})> (decltype内は、引数なし、戻り値なしのlambda expression)は、falseのはずだ。
Simplifying the use of concepts
conceptのデフォルトをimplicitにしようというお話。いままで、implicitにするには、明示的にautoをつけなければならなかった。この提案は、明示的なconceptにしたい場合は、explicitをつけるようにする変更。このほうが分かりやすいと思う。
Exported Concept Maps
concept_mapの実装を、unconstrainedなコード(つまり、conceptを使っていないコード)でも使えるようにしましょうというお話。conceptの存在意義が疑われそうな提案だが、いかにもC++らしいといえばC++らしい。それに、実際このままでは、constrainedなコードと、unconstrainedなコードで、実装が重複してしまう。プログラマは単純なコピペを使うだろうと思われる。コピペされるだったら、使えるようにしたっていいんじゃないという意見は、わからないでもない。
Working Draft, Standard for Programming Language C++
会議前だし、大幅な変更は無い。
ほかにはasyncなどもあるけれど、正直スレッドプールが今すぐ欲しい。TR2に予定されているのだけれど。正直、スレッドの利用目的の大部分は、スレッドプールの方が適していると思う。
あまりにも動的過ぎる。いやもちろん、動的な言語というのも悪くはない。プロパティを後から自由に追加できること自体は、別に悪くない。ただし、delete演算子は、正気の沙汰ではないか。一体当時、Javascriptを実装していたプログラマが何を吸っていたのか、非常に気になる。
withの問題、withに至っては、もう吸っていた所じゃない。明らかに静脈注射していたレベルだ。withの問題は、あまりにも有名なので、いまさら言うまでもないだろう。まともなJavascriptプログラマなら、皆知っている。
あまりに型を軽視している。また、数値がすべてfloating pointだ。実際のほとんどの実装では、integerで差し支えない部分は、integerで計算しているわけだし、integerとfloating pointぐらいの区別は、あってもいいはずだ。
コピーと参照を明示できない。時には、オブジェクトをコピーしたいときもあるはずだ。コピーの機能ぐらい、言語として提供しているべきではないのか。また、変数のブロックレベルスコープがない。なぜこんな仕様にしたのだろう。この二つの問題を解決するため、Firefoxで実装されているJavascript 1.7のletを猛烈に欲しているのは、私だけではないだろう。
あまりにもライブラリが貧弱すぎる。Timerぐらいは、DOMに頼らず、言語側に入れてもいいはずだ。しかも、Timerが、明確に規格として規定されたのは、HTML5からだ。
しかしそれでも、Javascriptの手軽さは捨てがたい。C++とは、また違った楽しさがある。
CSSOM View Moduleを見ていたら、WindowView interfaceに、面白いプロパティがたくさん見つかった。
たとえば、 pageXOffset/pageYOffsetは、ウインドウのスクロールを、ピクセル数で返す。
また、screenX/screenYというプロパティもあり、これはブラウザの、ディスプレイ上の位置を返す。
他にもscreenインターフェースが規定されている。この歴史的なインターフェースの存在は知っていたが、W3Cにおいても規定されているとは知らなかった。
あと、良く見たら、マウスイベントのoffsetX/offsetYも、ここで定義されていた。ただし、前述の通り、まともに実装しているのはIE8しかないという事実がある。padding boxからの相対位置を返すべきなのに、ボーダーも含めていたり、そもそもpaddingすら無視していたりという実装がある。しかも、規格に従うならば、padding分を差し引かなければならない。面倒だ。さらに、pageX, pageYも規定されていた。なんだ、ここで規定されていたのか。やれやれ。getBoundingClientRect()を使うまでも無かったわけだ。W3Cで規定されているならば、使うのに遠慮はいらない。
それにしても、このあとから付け加えるような形で、一部の規格が点でばらばらの文書で規定されているのは、何とかならないのだろうか。しかも、いまだにドラフト段階だ。
無駄な努力と言わざるをえない。Theoraの画質が、H.264に比べて劣っているのは、まだ開発段階だからだと主張する人がいるが、一体何年開発していると思っているのだろう。H.264の最初の規格制定は2003年のことである。TheoraはOn2 TechnologyのVP3に端を発しており、H.264に比しても同じぐらいの開発期間はある。方やすばらしい画質を誇るH.264と、全くふるわないTheora。どちらが良いかは、誰の目にも明かである。
ライセンス問題など、実際はさほど影響がないのだ。問題は、使えるかどうかである。GIFがうち捨てられたのも、結局256色しかサポートしていなかったというのも大きいだろう。
World's funniest airport names revealed - News & Advice, Travel - The Independent
もっとも卑猥な空港名は、福井空港(Fukui Airport)らしい。
私は、この手の多言語間におけるジョークが好きな人間である。
昨日、自衛隊の一般曹候補生の二次試験の、面接予行というものがあった。何でも、親切にも面接のリハーサルなるものをしてくれるらしいということだ。別に面接など、何度受けたって変わらないと思うが、どうせ暇なので、参加することにした。損にはなるまい。
行くと、私を含めてたったの五人しか来ていなかった。えらく少ない気がする。面接の練習というのは、どこの学校やセミナーでもやっているだろう。しかし、それは所詮、外部の人間が行う練習に過ぎない。これは、外ならぬ応募先自身、つまり自衛隊自身が、わざわざ面接の練習をしてくれるというのだ。参加して損だとは思わない。何故こんなに少ないのだろうと、その時は漠然と思った。
さて、面接の予行を受ける前に、どのような態度で臨めばいいのかという、あくびの出るほど暇な説明が、配られたプリントに書いてあることそのままに、棒読みで述べられた。曰く、
応答要領
まあ、代わり映えのしない文句ばかり並んでいる。これ自体は、別に悪くはない。ただ最後に、
※ 決め手になるのは入隊意志を如何に表現できるかである!
と書かれていたのが気になった。私は、上で、理由なく"border-style : double"を使ったわけではない。実際に配られたプリントにも、そのように印刷されていたからだ。この一文は、今回、とても重要な意味を持つわけだが、このときの私はまだ、その本当の意味に気がつかなかった。
さて、面接予行前の説明が終わり、実際に一人ずつ、面接練習を行う段になった。私は、地本から家が一番近いので、順番は最後になった。配られたプリントには、「曹候補生2次試験口述模擬質問事項」と題して、本日の面接練習で訊ねる質問事項が、すべて載っていた。自分の順番になるまで、なんと答えるか考えていてくださいとのことであった。そこまでするか。
参加者は、私を除くと四人いるわけだが、そのうちの三人は男で、女は一人だった。ちょうどみんな、職種に関するパンフレットを眺めていたので、私は会話を始めようと、こう言った。
「やあ、皆さん、職種とか、どの辺を希望してるんですか」
返事はない。かろうじて一人だけ、「整備かな……」と答えたきりである。仕方がないので、また聞いた。
「陸海空、どこを受けるんですか」
「空」、「陸」、「同じです」
あとは沈黙のみ。これでは会話というものが成立しない。見れば、みんなメモ帳を片手に、何かを書き殴っている。一体何をメモる必要があるというのだ。あらかじめ、どう答えるか考えた所で、実際にその通りに事が弾むわけがない。その答えに応じて、面接官がさらに質問を発展させるというのが、普通の面接ではないか。とすれば、何をメモる必要があるというのだ。
会話が成立しそうにないことを悟った私は、自宅まで本を取りに戻った。何しろ、私の面接は、一時間後なのである。
さて、本を取って地本に戻ってみると、紅一点の女子が、なにやら地本の担当者と話していた。
女子「わたし、自衛隊の訓練についていけるか心配で」
担当「いやいや、訓練なんて全然心配することないですよ。うんぬんかんぬん」
女子「水泳をやっていたんですけど」
担当「ほう、一日どのくらい泳いでいたんですか」
女子「一日五キロぐらい」
担当「自衛隊の訓練よりそっちの方が厳しい」
地本が、「自衛隊の訓練は心配するに足らず」と言うのは常の事だが、一日五キロも泳げる人間が、何を心配するというのか。
また、他方では、ある男子と担当官との間に、こんなやりとりがあった。
担当「適当に言ったらええねん。例えば、自分は車いじりが好きで学校行ってた頃からやってました。だから自衛隊でもそういう仕事に就きたいんです、とか」
男子「いや、自分、車はいじったことないスよ」
担当「まあウソでもいいやんか。矛盾さえなければ。大事なのはやる気を見せることや」
「やる気」という言葉が私の頭に響いたが、このときも、私はさほど気にはとめなかった。
この二つを除いて、あとは会話らしい会話がなかった。皆、何かメモることに必死であった。不思議なことだ。会話が成立しないので、私は李密の陳情表を読んでいた。すばらしい文章だ。これを書いたのは天才ではあるまいか。
陳情表を読むうちに一時間過ぎ、私の前の番の人が、面接を終えて、出てきた。ひどく疲れ切った顔をしていた。たったの15分、それもリハーサルに過ぎない面接で、何故そんなに狼狽できるのか、私には不思議だった。
ところで、狼狽という言葉は、ちょうど陳情表にも出てくるが、およそ漢文の世界では、狼狽という言葉は、「疲労困憊」と同じ意味で用いられる。中国語にも、「うろたえる」という意味がないわけではないが、文章の上で、狼狽を「うろたえる」という意味に用いることはないそうだ。
この男は、頭髪上指とでも言うべき髪型をしていた。頭髪という頭髪が、皆逆立っているのだ。一体どうすればそんな髪型を維持できるのか、入道頭の私には、分からなかった。その逆立った頭髪は、狼狽した顔には全然ふさわしくなかった。
私は思わず声をかけた。「お疲れ様です」と。狼狽の男は、何も答えず、頷かず、私に一瞥をくれただけで、速やかに帰って行った。
どうして、集まっている皆という皆が、こういう性格をしているのだろうと、私はいぶかしんだ。もちろん、皆の態度がよそよそしいのは、私の言動の至らぬせいもあろう。それにしても皆、冷徹無関心にも程がある気がする。さらに、これは面接予行、練習、リハーサルだというのに、皆ガチガチに緊張していた。不思議だ。
さて、いよいよ私の番になった。面接予行の内容は、詳しく書くに及ばない。ただ、一つ気になる点があった。というのも、面接らしい面接ではない、ということだった。人の言葉尻を捕らえて、ねちねちと掘り下げた質問をするのを、圧迫面接というならば、この面接予行は、圧迫面接から対極の面接であった。圧迫面接とまでは行かなくても、面接官が質問をして、それに答える。答えた内容について、さらに質問される。これは、面接の基本である。この面接予行には、それがない。質問される、答える、曰く、「ああ、そうですか」。これで終わりである。もう次の質問にうつってしまう。私は未だかつて、いかなる些細なバイトの面接であろうと、こんな歯ごたえのない面接を受けたことはない。今、私が箸にも棒にもかからぬ阿呆で、面接をする価値すらないとせよ。それにしても、これは面接予行である。本物の面接ではない。もう少し普通の面接らしい面接でもいいだろうに、一体これは何なのだろう。圧迫面接に対する対義語を、私は浅学にして知らない。たぶんそんな言葉に需要はないのだろう。
実に異質な面接だった。のれんに袖押しといおうか、豆腐にかすがいと言おうか、とにかく手応えという物が感じられない。そこで私は一計を案じた。
面接官、「団体生活で重要なことは何だと思いますか?」
私は答えた。「はい、周りに流されず、自分の意見を持つことだと思います」
面接官曰く、「ああ、そうですか」と。
待て、この答えすら、聞き流すというのか。普通、「団体生活において重要なことは、自分の意見を持つことだ」などと答えたならば、「でも、自分の意見を押し通せば、みんなから阻害されることにはなりませんか」などと、反論されるはずだ。この面接予行においては、それすらない。一体どういう事だ。
こうして、薄い粥のような面接が終わった。面接について振り返ってみましょうと言われ、見ると、そばの机に、メモ用紙と鉛筆が置かれている。なるほど、メモを取れと言うことらしい。私にはメモを取るという習慣はないが、とりあえずメモ用紙を手に取った。
面接官が言う。あなたは正直すぎますね。中学の頃はサッカーをやっていたけれど、高校はやっていない。そんなことは言わなくても好いじゃないですか。高校のことは、聞かれたら答えればいいんです。高校は将棋部の部長をやっていたが、特に何もしていなかった。まあ、それはそうかもしれませんが、せっかく部活の部長をやっていたんだから、それを生かさないと。大事なのはやる気をアピールすることです。たとえやる気があったとしても、面接でやる気が感じられなければ、採用されるものもされませんよ。それからあなた、英語ですが、TOEICで815点を取っているとか。まあ、それは結構いい点数なのかもしれません。でも、その点数を取るに当たって、どんな苦労をしたのですか。え、何も苦労してない。ええ、そうですか。困りましたね。やる気が感じられないと、云々
聞いていて、私は怒りがこみ上げてきた。何が「やる気」だ。それは、やる気は重要に違いない。しかし、やる気だけあっても何にもならない。およそ言語というものは、苦労して学ぶものではないのだ。必要なのは時間だけだ。あらゆる質問に対して、"Semper fi! Do or Die! Gung ho, Gung ho, Gung ho!"、と答えるだけが能か。そんなチューリングテストにパスしない自動機械を欲しているなら、最初から面接などやる必要がない。もはやこれは、私一個の問題ではない。
私は論じた。
さっきからやる気ばかりを重要視しているようですが、そもそも、やる気とは何ですか。それは、やる気は重要です。しかし、やる気だけではどうにもなりません。自衛隊では毎年、入隊したものの、教育の段階で脱落していく人が何人もいると聞きます。もちろん、たった15分間の面接で人の性格を判断するのは不可能です。ただ、実際の面接の前に、このような予行練習を開いて、教えることと言えば、やる気やる気の一言のみ。このメモに書けるのは、「やる気だけあればオッケー」でしかありません。この助言に従うとしたら、いざ本番の面接という時にも、「やる気があります、とにかく入りたいです、やりたいです」などという人しかいないでしょう。そんな面接では、正しく判断できるものもできなくなってしまいます。一体何でこんな馬鹿げたことをしているんですか。
面接官は言った。「君は、何で、ここにいるのかな」
面接予行を受けるために決まっている。私は言葉遊びをするつもりなど毫毛もないので、何も言わなかった。
「君以外の、ここに来た四人は、みな希望して来ているんですよ。つまり、面接が不安だから練習したいと。そういうわけで、このような練習を開いているんです。担当官になんと言われました。あるいは手違いがあったのかも」
私は自分から面接予行を受けたいと言った覚えはない。無論、面接は不安である。しかしそれは、自衛隊に入る意志があって、而も面接次第では落ちるかもしれないから、不安であるに過ぎない。
「というわけでして、心配しすぎている人に対する予行なんですよ。全員にこんな面接予行をしているわけじゃないんです。安心してください。」
なるほど、それでようやく理解した。この面接予行は、あまりにもやる気がありすぎるあまり、面接が心配で心配で、神経質になっている人のために行っているらしい。それで、自信を持てだの落ち着けだのということが応答要領にあり、さらには、やたらとやる気を強調する内容になっているわけだ。面接が、極力圧迫感を与えないようになっていたのは、そういう人たちへの配慮なのだろう。とにかく普通に、なるべく緊張させずに面接を終わらせることが、自信に繋がるからだ。参加している四人も、つまりはそういう種類の人間なわけだ。皆、やたらと緊張していたり、せわしなくメモを取っていたのも、性格のなせる業なのだろう。やれやれ、つまり、私は場違いらしい。
私はこんな問答をすることからみて明らかなように、議論においては、人を完膚無きまでに言い負かさずにはおれない性格をしている。何とでもいえ。これは私の天性の本能的気質と言ってもよく、矯めることは不可能である。私に必要なのは、むしろ、反論するなという助言だろう。
私が受かるかどうかは分からないし、私以外の、あの四人についても分からない。私が落ちて、あのやる気のある四人が受かるかもしれない。しかし、あの強迫観念に似た不安は、どこから来るのであろうか。なにも、自衛隊に受からなくたって死ぬわけじゃあるまいに。あるいは、私の自衛隊へのやる気が、彼ら四人に比して、あまりに薄いと言うことだろうか。そうとも思わないのだが。
案外、歴史は単純なのかもしれない。そういう意味で、私は秀忠と慶喜を尊敬する。彼らは歴史に名を残さず、而も世に多大な影響を及ぼすことに成功した人物なのだから。
一般人には、ブラウザと検索サイトの区別が付かないというお話。ブラウザと検索サイトが区別できないような人間が、ブラウザのアップデートを手動で行うわけがない。
私は正直に告白する。私には、上記のnoob達は、こんな風に見えている。
canvasとJavascriptで赤目補正をするサンプル。赤目の部分だけをぐりぐりと塗りつぶせば、補正完了。なんと修正した画像の保存機能まで付いているというスグレモノ。こんなことがHTMLとJavascriptだけでできるなんて、いい時代になった物だ。
クロスドメイン問題から、このブログで動かすことはできないので、こういう形を取った。落として、解凍して、実行できる。もはやこれは本物のプログラムだから、実行という言葉は正しいと思う。
動作確認は、Chrome 3 、Opera 10、Safari 4で行った。Firefoxでは、前述の通り、ローカル上のoriginを違うと判定する他のブラウザとは違った挙動があるので使えない。一応、修正後のプレビュー表示をやめれば、修正自体はできるのだが、何にせよ画像保存ができないので、意味はない。
参考:http://disruptive-innovations.com/zoo/demos/eyes.html
追記:Firefoxで動かすには、二つ方法がある。まずひとつは、どこかのサーバー上からアクセスすることだ。(試していないが、ローカルサーバーでもいいと思う)。今ひとつは、security.fileuri.strict_origin_policyをfalseにすることである。Firefoxの思想では、ローカル上のファイルとはいえ、originは同じではないらしい。実際、それは間違いではない。
ローカル上のドキュメントから見て、ローカル上のおなじディレクトリ内のファイルに対して、originが違うと判断する。
再現方法:ローカルディスクの同じディレクトリに、HTMLファイルと画像ファイルを置く。HTMLファイルで、canvas上に画像ファイルを描画する。而る後に、そのcanvasに対して、toDataURL()を呼び出す。あるいは、canvasのcontextに対して、getImageData()を呼び出す。
Firefoxの場合、SECURITY_ERR例外が投げられる。
ローカル上の、それも同じディレクトリ内にあるファイルなのだから、originは同じはずだ。なぜかFirefoxだけ例外が投げられる。なお、ローカルではない場合は、Firefoxは正しく動作する。
問題は、ローカル上のファイルをどう扱うかというのは、定義されていないということだ。
If scheme is "file", then the user agent may return a UA-specific value.
しかし、ローカル上のドキュメントの場合、同じディレクトリの中にあるファイルは、same originと判断しても差し支えないのではあるまいか。
ちなみに、Chrome、Safari、Operaでは、ローカル上のドキュメントから見て、ローカル上のファイルは、同じディレクトリにあろうがなかろうが、すべて、同じoriginだと判断される。