2009-05-31

自衛隊体操

自衛隊体操というものがある。あの左右の腕を直角にして、片膝を曲げる、中国拳法みたいなポーズが有名で、それなりに絵になるので、そこだけ紹介されることもあるが、どんなものか気になったのでググってみた。

もちろん、こういう指導動画には、体操のできる人をつかうのだろうが、それにしても、かなり体操のできそうな人だ。体が硬く、手を後ろ手に組んだり、結跏趺坐どころか半跏趺坐もできない私には、少々難しそうな体操だ。

吾不得而見之

子曰、聖人吾不得而見之矣、得見君子者、斯可矣、子曰、善人吾不得而見之矣、得見有恆者、斯可矣、忘而爲有、虚而爲盈、約而爲泰、難乎有恆矣

論語、述而

「不得而見之」という部分は、歴史的な訓読では、「得てこれを見ず」と読むらしい。それはおかしいだろう。不はどう考えても得にかかっているに決まっているだろう。古代支那人は、この文字の通りに発音して書いたはずで、否定する語がそんな離れた場所にある述語にかかるわけがない。つまり、あえて訓読するとすれば(訓読は邪悪だが)、「これ見ることを得ず」とでもなるはずだ、「得てこれを見ず」なんて、そもそも意味が通らない。第一、一体何を得るのだ。得てと読むからには、「(何かを)得て、而して、之を見ず」と解釈しなければならないが、この「何か」に当たる部分は何なのだ。

ちなみに、現代の中国人は、この意味を、「我不可能看到了」と考えているようだ。これをみても、やはり私の解釈の方が正しいように思われる。

思うにこれは、昔の漢学者は、而、という語にとらわれすぎていたのではあるまいか。その結果、「得てこれを見ず」などという、奇妙きわまりない訓読をしたのではあるまいか。

やはり、訓読は邪悪だ。そのまま読むに如かず。

と言いたい所だが、訓読を切り捨てるわけにも行かない。なぜなら、日本語に影響を与えたのは、疑いようが無く訓読であって、音読ではないからだ。

ところで、ふと思った。朝鮮や安南に訓読という文化がなく、日本にあるのは、畢竟、漢語ネイティブの有無ではないか。朝鮮や安南は、所詮は支那と地続きである。したがって、ネイティブは、それなりにいたはずだ。ところが日本というのは、海を隔てているだけに、必然的に日本に住む支那人は少なかったはずだ。むろん、国境なんてものがなかった有史以前の昔は、大勢渡ってきただろうし、それ以後も、支那から渡ってきた人間はいただろうが、やはり数が少なかったに違いない。日本に、今でいう華僑のような群を形成するほど多くはなかったのだろう。結局、皆日本に帰化してしまい、支那語そのものを日本に残すことはできなかったのだろう。

日本に支那人が少なく、また支那語が使われていなかったならば、支那音を学べるはずもない。その結果、訓読が発達したのでは無かろうか。

だいたい、漢字の音といってもこれがまたややこしい。一般に日本で使われているのは、其のもとをたどれば、大別して呉音、漢音、唐音(これはちょっと範囲が広すぎるのだが)、となる。また、慣用音と呼ばれるものがあって、これは当時の日本人の誤用が定着した音である。

ただし、その抑揚というか、発音方法というか、四声と呼ばれているものがあるが、これは日本語の漢字の音読みでは、ほとんど無視されている。唯一、入声の名残だけは残っている。例えば、入、筆、薬を、ニュウ、ヒツ、ヤクと読むが如きがそれである。

思いつくままに書いていたら、なんだか収拾が付かなくなったので、この辺で打ち切る。

中国語って、助詞が減ったのかな

我在大学教书 : 私は大学で教えている。
我教留学生汉语 : 私は留学生に漢語を教える。
我喜欢旅行 : 私は旅行が好きだ。

漢文であれば、於、とか而、などが、間に入りそうな気がする。試みに繁体字に直した上で、やってみた。

我在大学而教書 : 我、大学に()りて書を(をし)ふる。
我教留学生於漢語 : 我、留学生に漢語を(をし)ふる。
我喜歡旅行 : 我、旅行を喜歡す。

最後は、どうもうまい訓読が思いつかなかった。まあでも、現代中国語も訓読できるようだ。

タペストリー

Carole KingのTapestryが気に入って、ここ数日、よく聞いている。

ほかには、Simons and GarfunkleのThe Sound of Silenceもいい。

ああ、己は何故、五十年代に生まれてくることは出来なんだか。そうであれば、人生でもっとも多感な十代、二十代を、これらの名曲を聴きながら過ごすことができたであろうに。何故だ。何故なのだ。己は最近、コンビニに入るのを躊躇するようになった。なぜならば、どのコンビニでも、ラップを、およそラップに用いられる言語の中で最も醜悪な日本語のラップを、聞かなければならぬのだからな。嗚呼、已んぬる哉。世も末と覚えてうたてけれ。

追記:
一つ思ったのだが、六十年代、七十年代の歌は、どこか悲しく、物寂しい感じがする。Carole KingとSimons and Garfunkleといえば、以前にも、You've Got A Friendや、Mrs. Robinsonが気に入ったと書いた。この二曲も、どこか悲しい。第一、歌詞からして全部悲しい。そういう時代だったのであろうか。

簡体字は嫌いだ

毛沢東が成し遂げた悪事の最たるものは、簡体字では無かろうか。嫌いだ。とてつもなく嫌いだ。実際、簡体字でなければ、現代中国語も結構理解できるのだ。

Silverlight 3が六月十日にリリースされるという噂がある

Silverlight 3 to launch July 10 | All about Microsoft | ZDNet.com

Silverlight 3では、H.264がサポートされる。これまで、ブラウザでH.264を再生するのは、Flash Playerの独壇場だったが、競争相手がいるというのはいいことだ。問題は、そのH.264デコーダーの質如何だ。

とりあえず、噂通りにリリースされたならば、すぐにテストすることにする。いまからベータ版を使ってみるという手もあるが、まあ、リリース版まで待ってからでもいいだろう。

2009-05-30

中国語

ふと思い立って、論語を学ぼうとしたが、その前に、漢文を本格的に学ばなければならないと痛感した。そこで、漢文をいわゆる訓読で学んでいたが、やはり中国語を学ぶに如かずと思った。そこで、中国語の入門書を、図書館から借りてきた。

こう書いてある。予期せずに雨が降ってきたときは、「下雨了」と言う。雨が降って欲しくてたまらない時に雨が降ってきた場合は、「雨下了」と言う。降っている雨がやんだ時は、「雨停了」と言う。そして、そうなる理由が、中国語の文法は、主語+述語+目的語であり、また、主語とか目的語と単純にいうのは誤りで、その理由は云々と書いてある。なるほどなるほど。

しかし本当にそうなのかと、手元の説苑から引かれた漢文を読んでみると、「火幸息」と書いてある。なるほど、たしかにその通りだ。

しかし、中国語という奴は、恐ろしく Context Sensitive な Grammer だなぁ。

第二のジンバブエ候補?

ボリビア

2009-05-29

最高にカッコいいピアノの弾き方

これはカッコいい。

「大きさの問題なのよ。8.25じゃ小さすぎるわ」と彼女は言った

Sorting it all Out : "Size matters, and at 8.25, yours simply isn't big enough," she said....

誰か教えてください。日本語の文字がうまく表示できないんです。下の部分が欠けてしまうんです。フォントはSegoe UI 8.25ptです。

俺はしばらくボーゼンとしてしまった。なんと言ったらいいものやら。

8ptのフォントでは日本語が欠けるって?

仕様だ。

仕様に決まってんだろ! ボケがッ!

これはひどい。

キーワードが大量に連続しているwell-formedなC++のコード

一つ前の記事を書いていて、ふと思いついたので書いてみる。いやはや、まさかこのネタをブログで取り上げる日が来るとは思わなかった。何年か前に見て、これは面白いと思いつつも、あまりにばかばかしくて、どうもきっかけがつかめなかったネタだ。

以下のコードは、C++の規格上、問題ないコードである。

int main() { 
   return sizeof sizeof sizeof sizeof 
          sizeof sizeof sizeof sizeof true; 
}

もっとしりたい人のためのリンク:
http://www.vandevoorde.com/C++Solutions/
http://www.vandevoorde.com/C++Solutions/challenge.shtml

MSVCはtypenameがお好き

以下はMSVCにおいて何の問題もなくコンパイルが通るコードである。

// テンプレート引数
template < typename typename typename typename typename typename typename typename typename typename T >
// 戻り値の型
typename typename typename typename typename typename typename typename typename typename T
// 関数名とその引数
f( typename typename typename typename typename typename typename typename typename typename T )
{
        // return文
        return typename typename typename typename typename typename typename typename typename typename T() ;
}

int main()
{
        // 明示的なテンプレート引数の型指定と共に、関数の呼び出し
        f< typename typename typename typename typename typename typename typename typename typename int >(0) ;
}

おそらく通常見ることのないコードであり、C++ネイテイブであっても、何を意味するのか、直感で理解できない人が多いであろうことが予想されるので、できるだけコメントを付けてみた。

いやはや、typenameをどこに指定して、どこに指定してはならないのかというのが、初心者には分かりにくい。なぜなら、Dependant nameという概念を理解していなければならないからだ。それならば、いっそのこと、制限を緩くして、どこでも指定できるようにしようぜという意見がある。現行のC++0xドラフトでその辺がどうなつているのかは知らないが、その意見を取り入れて先行実装しても、とくに実害のない制限緩和である。しかし、ここまでユルユルにするのはどうかとおもう。そもそも、なんで複数指定できるんだろう。

参考:[C++] typename なんてただの飾りです。VCにはそれがわかっています。

世人、何ぞチャタレー夫人の愚を繰り返さんことを試みるや

聞説、合衆国亜米利加のさる有名な漫画収集家、猥雑なる漫画を一部所有したりとて、禁固十四年の刑に処されたり。世界各国の非難激しくして、我が日本国も電子的なる春画の販売、これの規制何如を議論したり。

嗚呼、世人何ぞチヤタレー夫人に於ける論争の愚を繰り返さんとするや。森林太郎のヰタ・セクスアリス、あるいはウラジーミル・ナボコフのロリータ、果たして発売禁止に当たるや。願はくは世人、これらの三書を読み、然る後に一考せよ。果たしてこの三書、発売禁止に當るや、と。

ゲーテの書に云う、「いやさう云うわけならあなたの奴隷を外から連れておい出なさい。天が詩人には最上の權を、人權を與えている。それをあなたの爲めに擲たなくてはならないのですか」と。人權とは何ぞ。表現の自由の権利これなり。座長及び道化方の、詩人をして、よりどりみどりのごつちや煮をこしらえよ、低俗な笑いを提供せよ、さすれば観客は満足するであらうとの言をはねつけし、この詩人の不退轉の意志を保証するの権利なり。吾人は奴隷となるを肯んぜず。

千秋万歳の後、かかる議論の、チヤタレー夫人の恋人、ヰタ・セクスアリス、ロリータの何如に異ならざるを、吾人確信せり。

以上は余が幸徳秋水に影響されて書いてみた拙い文なり。もっとも、あの潔癖症の幸徳秋水ならば、正反対のことをいふであらう。確か幸徳秋水の書いた新聞記事に、春本を批判しているものが有つた気がするが、残念ながら今は失念しいたり。

2009-05-28

Chrome 3.0.182.2が公開された

Google Chromeの3.0.182.2がDevチャンネルに公開されたが、これがかなりいい感じにブッ壊れている。まず、non-Englishな言語では、UIのフォントが小さすぎる。設定ダイアログなどのUIをまともに使うことが不可能になっている。

Google Chromeのブログでは、video tagをサポートしたとあるのだが、これはHTML5のvideo elementではないのだろうか。いくつかの種類の動画を試してみたが、動かないようだ。リリースノートでは、WMPの不具合を直したとあるが、ブログの記述は何なのだろう。

Middle clicking on a bookmark from the bookmark manager now opens that bookmark in a new foreground tab.

ついでに、これは地味に嬉しい変更だ。

Wolfram|Alphaの最高にすばらしい計算結果

the answer to life, the universe and everything

What is the capital of Assyria?

What is the air-speed velocity of an unladen European swallow?

What is the air-speed velocity of an unladen African swallow?

How many roads must a man walk down?

私は上記の計算結果について、拙い解説を加えようとは思わない。ネタが分かれば、geekであることの証明になる。ちなみに、私は、一番下以外が分かった。他にもMonty Pythonネタは多そうな気がするのだが。

追記:EuropeanをEuropianと間違えていたのだが、Wolfram|AlphaはEuropeanと推測してくれ、その場合の結果を返してきた。単純なことだが、なかなか賢い。むろん、人間は間違いを犯すものであり、どんな人間の入力にも答えるという気負いがあるならば、この程度のわずかな間違いは推測してくれなければ困る。人間ならば、EuropeanをEuropianと間違えても、問題なく理解してくれるであろう。とすると、コンピューターにだって、理解してほしい。

1964年製のモデムでインターネット

昔、音響カプラなるものあり。吾、これを聞けり、未だそを知らざるなり。

この動画に出てくるオッサンは、元IBM社員だった人の奥さんと、今は亡き夫の遺品を整理していたところ、これを発見し、譲り受けたのだという。動画中で、実際にダイヤルしてインターネットにつなぎ、wikipediaのトップページをlynxで見ている。

300ボーぐらいあるらしいが、実際にはノイズなどもあって、もっと遅いだろうし、これならマトリックスの世界が再現できるはずだ(トラフィックをリアルタイムで目測すること)

インテリセンスのリビルド

Visual C++ Team Blog : Rebuilding Intellisense

全訳はしないが、ぜひとも原文を読むべきである。ちなみに、FEACPとは、Front End Auto Complete Parserの略である。

インテリセンスの精度を上げたい。しかし、そのためには、十年以上前に開発された、FEACPとNCBでは、役不足だ。

まず、NCBだが、これは今となっては、機能的にも貧弱だし、ファイルの構造自体が頻繁に壊れて、プログラマは手動で消すことを余儀なくされることもある。たとえば新しいテンプレートなどの構造が付け加えられたとき、その情報だけを追加することができず、結局最初からパースし直さなければならないことが多い。

そこで、情報を格納するためとしては、SQL Server Compact Editionを使うことにした。

パーサーも、再発明する必要がある。スケーラビリティを高めるためには、データーベースをインクリメンタルに更新する必要がある。これは一見明白なことのように思えるが、C++のコンパイルモデルに反する。というのも、ヘッダを一部変更するだけで、すべてのソースコードの意味が変わってしまうからだ。我々は新しいパーサーを書き上げた。

インテリセンスの精度を高めるために、IDEのエディタが開いているファイルの、全翻訳単位をパースすることに決めた。

フロントエンドの問題もある。FEACPを改良することも考えたが、やめた。完全なフロントエンドを一から作ることも考えたが、労力がかかりすぎると判断した。80年代、90年代では、コンパイラ技術というのは、最先端の技術で、各ベンダーは競って自社製品を開発したものだが、今では、みなコンパイラの上で何をするか、ということに注力している。よって、IDEのためのフロントエンドを、外部から買うことにした。これは一見、不思議なことに思えるかもしれないが、我々の目的に合っている。我々はIDEそのものにもっと労力を費やしたいのだ。 Edison Design Group(EDGとしてよくしられている)はすばらしいコンポーネントを作っており、実に良く動く。またうれしいことに、EDGは、常に最先端の規格を、まず初めにサポートするところなのだ。

Vista SP2はDCHPv6のバグを修正したらしい

Microsoft and DHCPv6 - Living with IPv6

真偽と詳細は良く分からないけれど、こんな話も。

バージョンの確認方法について

余、ひそかに思ひたりし、優れたプログラマといふのは、バージョンナンバーの確認コードを、正しく書けるプログラマではないかと。

いや、もちろん、優れたプログラマというのはたくさんいるし、どうやって実現しているのかさっぱり分からないような優れたプログラムを書いている。しかし、世の中には、バージョン確認のコードを正しく書けないプログラマが多すぎる。

Changes in Opera’s user agent string format - Opera Developer Community

Operaというブラウザは、とうとうバージョン10になるにあたり、当初、Opera/10.00というUser-Agentに変更しようと考えていた。ところが、これはいくつかのWebサイトで、動かなかった。理由は簡単で、そのWebサーバーは、バージョンを確認し、バージョンに合わせたコンテンツを返していたからだ。そこで色々考えたあげく、Operaとしては、結局10という文字列は使わず、その代わりに、バージョンを表す、別の文字列を付け加えることにしたらしい。気の毒なことだ。

これらの、バージョンナンバーのチェックが正しく行えていないために起こる問題というのは、類挙にいとまがない。たとえば、Windows 95のバージョンナンバーでも一騒動あったと聞くし、Flash Player 10がリリースされた時も、バージョンナンバーのために動かなくなったクソなFlashがたくさんあった。nVidiaですら、Windows向けのGPUのドライバのバージョンを100にあげたとき、ドライバのバージョンを確認して挙動を変えていたゲームが、いくつか動かなくなるという問題に見舞われた。ブラウザでいえば、MSIEは、未だに、Mozilla/4.0という文字列をUser-Agentに使用している。

もっとも、最初からバージョンの確認コードなんて書かないに越したことはない。したがって、最も優れたプログラマというのは、最初からこんなクソコードなど書かないプログラマのことだろう。とくに、バージョン確認コードをかくプログラムの大半が、互換性のないバージョンで実行できないようにするものである。互換性がなかったら、最初から動かないに決まっているのだから、わざわざ自分で確認するのは、愚と言わざるべからず。

2009-05-27

擬古文に対する考え方が変わった

ここしばらく、漢文を読んでいるが、擬古文に関する考え方が、だいぶ変わった。以前は、高山樗牛はどうしてあの若さであんな文章を書けたものかと不思議がっていたが、今では、どうして、夏目漱石は漢文を使わずに小説を書けたのだろうと、疑問に思っている。あるいは、二葉亭四迷が口語で浮雲を書き、森鴎外が口語でファウストを訳したというのも、いったいどうやったのだろうと思う。

というのも、漢文自体は、それほど難しいものではない。模範的な形は、だいたい決まっていて、それに当てはめれば、文章が書ける。そして、漢文を訓読すれば、それは日本語っぽく読める。そんな便利な言語を、どうやったら忘れ去って、使いにくい口語で書けたのだろう。

一般曹候補生の試験が終わって、数学の勉強より解放されてよりここ数日、これからも数学の勉強を続けようとは思っているものの、すこし脱線して、英訳のエッダを読んでいた。読むことしばらくにして、ふと思った。もしこれを日本語に訳そうとしたら、どうなるであろうか、と。少し頭の中で考えてみたが、思い浮かんだのは、訓読された漢文もどきの日本語であった。まだほんのわずかしか学んでいないのに、もうここまで思い浮かぶのだとしたら、史記や左傳を読めば、かなり漢文が書けるようになるのではないか。こうした大変便利なものがあるのに、あえて捨てて口語で書くのは、大変だったに違いない。

Vista SP2ではHalf-Openなコネクションの制限が撤廃された

ダウンロードの詳細 : Windows Server 2008 Service Pack 2 および Windows Vista Service Pack 2 (5 言語用スタンドアロン版) (KB948465)

Windows Search 4.0は、すでにスタンドアローンでインストールすることもできたが、Vista SP2に含まれている。

最も重要だと思われる変更は、以下のもの。

SP2 removes the limit of 10 half open outbound TCP connections. By default, SP2 has no limit on the number of half open outbound TCP connections.

いい加減に、MSもこの制限の愚に気がついたらしい。この制限は、Half-OpenなOut-boundのTCPコネクションを10本に制限するというものだ。イベントログでいつ発動したかが確認できるが、通常のソフトウェアを使っているだけで、案外簡単に出せる。たとえば、私はOpenJaneStyleを愛用しているが、2chの画像を貼る系のスレで、画像リンクをすべて抽出し、すべて選択して、右クリックメニューから、「選択範囲のURLをすべて開く」を選ぶと、簡単にこのエラーがイベントログに残る。しかも、制限に引っかかるので、本来落とせるべき画像が落とせない。再度読み込んでみると、問題なく落とせる。

2009-05-26

漢文の微妙な違い

如何:「いかん」と訓読し、どうする、どうしてという意味で、方法や理由を問ふ。
何如:「いかん」と訓読し、どうであるかという意味で、状態、定義、是非、真偽を問ふ。

是以:「ここをもって」と訓読し、是はすでに述べられた観念的な内容を指す。
以是:「これをもって」と訓読し、是は腕に述べられた具体的な内容を指す。

受動は、これが難しい。何の助辞も用いずに、文脈のみで判断するしかない場合もある。

数学の宿題をWolfram|Alphaで解こう その4

次の式の値を求めよ

cos(10) * sin(80) - cos(100) * sin(170)
sin(100) + sin(110) + cos(160) + cos(170)

面倒な三角比の計算もこの通り。

2009-05-25

何をか事とす

王子墊問曰、士何事、孟子曰、尚志

王子墊問ふて曰く、士、何をか事すと、孟子曰く、志を尚くすと。

漢文では、基本的に主語、述語、目的語の順で文字がくる。書を読むのであれば、読書だし、礼を学ぶのであれば、學禮だ。而るに、今上の文の「何事」は、その原則に従っていない。これはどういうわけか。

実は、目的語が、何とか誰などという、疑問代名詞である場合は、一般に、この語順が逆になるという法則がある。例えば論語でも、

吾之於人也、誰毀誰譽

吾の人に於けるや,誰をか毀り、誰をか譽めん

これも、目的語が先に来ている例である。

子曰、不患人之不己知、患不知人也

子の曰く、人の己を知らざるを患へず、人を知らざるを患ふるなり。

もし、目的語が代名詞で、しかも文が否定文である場合は、一般に、不、目的語、述語、の順番になる。だから、「人を知らず」は、「不知人」だが、「己を知らず」は、「不己知」になる。

身不善之患、毋患人莫己知

身の不善をこれ患へよ、人の己を知ることなきを患ふるなかれ。

漢文にも、倒置法がある。その場合、目的語、述語、という並びになるのだが、単純にその並びにしてしまっては、混乱するので、之を付ける。これを訓読する場合、之は、これと読むか、あるいは全く読まない。それ自体が特に重要ではないからだ。

Google ChromeのDOM Inspectorのフォント

Goiogle Chromeには、DOM Inspectorが付いている。これは、他のブラウザのDOM Inspectorに比しても、引けを取らない機能を有している。問題は、フォントサイズがあまりにも小さい。しかも、フォントも読みにくい。

変更する方法はないかと探していた所、インストールディレクトリの、Resources\Inspector下に、それらしきファイル群がある。inspector.cssを変更すればいいようだ。

みると、font-sizeはピクセル数で指定している上に、9ピクセル、10ピクセルなんて指定もざらにある。最低のフォントサイズを14ピクセルにした上で、font-familyもConsolasに変更した。かなり見やすくなった。

96DPIの普通のディスプレイを有する私にとっても読めないぐらいフォントサイズが小さいのだから、最近ようやく出回り始めた、高DPIのディスプレイを使っている環境では、更に悲惨なことになっているに違いない。なにしろ、フォントサイズがピクセル数で指定されているので、救いようがないからだ。

CSSでは、フォントサイズは、ピクセル数で指定すべきではないし、ポイント数であっても、やはり指定するのは避けた方がいいと思うのだが。

いい機会なので、Preferenceファイルで最小フォントサイズを16にしてみた。かなり見やすくなった。私は目が悪いわけではないが、フォントは大きい方が見やすい。少なくとも、数百DPIのディスプレイがない現在においては。

2009-05-24

ボール投げ

世間の新型インフルエンザの流行を尻目に、私は至って健康である。理由は単純で、運動しているからだ。ここ数年でまたとない健康を実感している。しかもメシがうまい。

とりあえず今は、マイペースで体を鍛えているが、問題がひとつある。ボール投げだ。聞説、陸自の体力検定には、ボール投げがあるらしい。しかも、数十メートルも飛ばす必要があるらしい。これは困った。

3kmを十数分で走るであるとか、腕立て腹筋を五十回とかは、今でもできる。懸垂は、今は五回しかできないが、瞬発的な筋力というのは、短期間でもかなり鍛えられるので、来年までには問題ないだろう。問題はボール投げだ。

自慢ではないが、私はいままで、学校の体力検査を、ボール投げの一項目ができなかったという理由で、悉く級外にされている。思うに、これは単に私の筋力が足りないというのみではなく、正しい投球フォームを知らないからではないかと思われる。しかし、一体今、どうやって練習すればいいというのだ。この京都市内に、ボールを思い切り投げても問題なさそうな広場はあるのだろうか。まさか学校のグラウンドに、部外者がのこのこ入っていくこともできまい。それに、問題が投球フォームにあるとすれば、投げ方を指導してくれる人があらまほしい。これも、私の身近にはいない。やれやれ。

自衛隊の意向調査の方法に無駄あり

予備自衛官補に合格すると、合格通知が郵送されてくる。とはいえ、第一報は、大抵、地本の担当者から電話で伝えられる。その後、採用に応ずるかどうかという、意向調査に回答をする。ただ、この意向調査の方法に大いなる無駄があると言わざるを得ない。

意向調査への回答方法は、合格通知に同封されている、返信ハガキを使って行う。宛先の募集課長行を様に書き直しながら、ふと考えた。なぜ、現代において、物理的なハガキで回答しなければならないのだ。すでに地本というネットワークがあるではないか。この地本は、よほどの暇人によって運営されている。なにしろ、わざわざ自宅まで受験票を届けに来たり、試験の前日に、確認の電話を入れてきたり、合格発表の当日に、朝早くから電話で合否を伝えたりしているのだ。

ネット上で読んだ話だが、甚だしきに至っては、郵送されてくる合格通知の封筒に、意向調査のハガキが入っておらず、地本が後から届けに来る所もあるらしい。何故だ。何故こんな無駄なことをするのだ。すでに応募者全員に口頭で連絡できる、地本というネット―ワーク、人員があるのだ。なぜ意向調査ぐらい口頭で聞かないのか。

例えば、意向調査の回答ハガキの〆切りは、六月一日である。ということは、補欠の候補者に連絡するのも、六月以降ということになる。なんというタイムラグだろう。毎日、地球の裏側の人間と、わずか数百ミリ秒のラグでチャットをしている私からすれば、連中はRFC1217を真剣に実装しているとしか思えない。

たしかに、昔なら、手紙というのは早かったに違いない。しかし、このインターネット全盛の現代においては、遅すぎると言わざるを得ない。例えば、地本のネットワークとインターネットを活用すれば、試験成績の上位者から意向を調査して、中央で管理しているサーバーに報告する、断られた場合、即座に次に連絡すべき人間を、サーバが返してくる。これぐらいは、実に簡単に実現できるはずである。なにしろ、予備自衛官補の合格者は、関西で百何十人と聞くし、自衛官全員でも、一年の応募者は、全国でも、せいぜい数万人ぐらいであろう。自衛官の採用は、全国単位ではなく、関東で何千人、関西で何千人というように、地方単位で行われるので、実際にはもっと規模が小さい。この程度の規模ならば、小規模なWebサービスを一つ始める程度のコストで作れるはずである。なぜこの2009年において、いまだに一週間以上ものタイムラグのある通信手段を使うのか。不思議でならぬ。

仮に、本人自筆の回答が必要だとしても、受験票を全応募者の自宅までわざわざ届けに来る地本の人員を使えば、合格者の自宅まで、一筆もらいに行く程度のことは、容易にできるはずである。なんという無駄なことをしているのか。

追記:そもそも、自筆といっても、本人の署名と、チェックマークだけである。自宅を訪問するとか、地本に来させるとか、いくらでも手があると思うんだけどなぁ。

追記2:
地本の対応は、地方によってまちまちらしく、私の地方では、受験票を、説明もかねて自宅に届けに来たり、試験前日に確認の電話を入れてきたり、試験当日は駐屯地まで車で送迎してくれたり、合格も発表当日に電話で伝えてきたりと、過剰なまでの対応をしてくれたのだが、場所によっては、「受験票? 郵送するか、自分で地本まで取りに来てね」という所もあるらしい。うーむ、それでは単純に、上の方法は使えない。

尾生の信

尾生與女子期於梁下、女子不來、水至不去、抱梁柱而死

荘子、盜跖

この文章はおもしろい。

束脩

子曰、自行束脩以上、吾未嘗無誨焉

論語、述而

束脩とは、束ねた脩、つまり、乾肉のことである。しかし、この漢文、訓読してもわけが分からない。なにしろ、「し、のたまわく、そくしゅうをおこなふよりいじょうは、われいまだかつてをしふることなくんばあらず」なのだから。行った以上は、と言えば、私のような現代人でも分かるのだが。

2009-05-23

無駄なオンライン麻雀ゲーム

雀龍門というオンライン麻雀ゲームが、現在ベータテスト中である。オンライン麻雀自体は、別段珍しいことではない。問題は、その実装だ。

聞説、プロ雀士の腕の動きをモーションキャプチャして使っているらしい。また、牌は物理演算により、その動きが動的に計算されているらしい。

私には無駄としか思えない。あるいは、麻雀が好きならば、価値を見いだせるのだろうか。しかし、私はポーカーなら多少知っているが、オンラインポーカーに、ディーラがカードを切る場面の演出が欲しいとは思わない。ましてやそれがプロディーラーのモーションキャプチャだとしても、やはりいらない。また、カードが物理演算されて動いたとしても、別に感動したりはしない。そもそも、相手の顔を見ずにポーカーなどやっても、つまらないだけだ。無茶なレイズをするだけが、ハッタリをかます手段というのは、真のポーカーではない。

一般曹候補生の一時試験の次第

一般曹候補生の一次試験は、筆記のみである。私の場合、京都駅前のIT専門学校で試験を行った。京都駅前なので、実に往復の都合が良かった。

とくに試験内容について特筆すべき事はないのだが、一つだけ、通常と違うことがあった。受付でマスクを配っており、また、手をアルコールで消毒するように言われた。新型インフルエンザの影響だろう。

今回の一次試験の結果は、6月12日に発表される。これに合格すれば、その後、二次試験として、身体検査と面接を受ける。まあ、おそらくは大丈夫だろう。

なんで朝鮮はいつもああなのか

盧武鉉前大統領が自殺したらしい。古くは李舜臣もそうだが、なぜ朝鮮のリーダーは、安楽に生涯を全うすることができないのか。実に不思議だ。

2009-05-22

吸引機能付きバリカン

私は週に一度程、バリカンで頭を刈る。ところが、今週の初めに、いつものようにバリカンを使おうとした所、歯が壊れてしまった。まあ、バリカンの歯は消耗品だし、もうかれこれ二年ぐらい使っているので、歯を買い換えるよりも、新しいものを買おうかと思った。だいいち、このバリカンはかなりの安物だ。

ところで、去年から親父(四年前に私が頭をそり出したのをみて、親父も頭をそるようになった)が強烈にプッシュしているバリカンがある。ナショナル(いまだにナショナルというブランド名になっている)のバリカンで、髪の毛の吸引機能が付いているものだ。曰く、「これは実に便利だ。いやほんとだ。お前もどうだい。買ってやるぞ」と。しかし、七千円もするバリカンを新たに買うのはもったいないので遠慮しておいた。そして、このたび、バリカンが壊れたので、買ってみることにした。

さて、家に帰って箱を開けてみると、確かに吸引機能の付いているバリカンであった。試しに動かしてみたが、なにやら風力が心細い。こんな非力な吸引力で、本当に髪が吸えるのだろうか。吸引率98%と書いてあるのだが、誇大広告ではあるまいか。と思った。

実際に使ってみると、これがすばらしくよく動く。普通のバリカンを使うと、髪の毛がそこら中に飛び散るので、風呂場で全裸になって行うのが常であったのだが、吸引機能のおかげで、そんな必要はなくなった。すばらしい。もっと早く買っておけば良かった。これはもったいなくない製品だ。

予備自補の試験に受かった

予備自衛官補の試験に受かった。あとは、明日の一般曹候補生の試験だ。この一ヶ月、数学を勉強してきたので、たぶん大丈夫だろう。

ところで、案外数学を勉強するのも悪くない。また、数学の勉強間際に、気晴らしに漢文を書写していたのだが、こちらもなかなか面白い。

自衛隊に受かったら、英語を学べる職種に就きたいものだ。

スピーチのうまい人

この男は、凶人に見えるが、じつはまともである。この男は、自分が何を話しているかを、完璧に理解している。この男の仕事は、セールストークのセミナーらしい。つまり、要求される技量は、話のうまさだ。この二つの動画は、冷静に見れば、どうでもいいナンセンスなことしか話していない。現実にあんな名刺をもらっても嬉しくないし、金さえ有るのなら、必要なものは旅先で買えばいい。しかし、この男はスキルがある。話し方がうまい。人を飽きさせない。

ちなみに、私はこれまでの生涯に二度だけ、現実にこういう種類の人間を見たことがある。

おまけ Facebook画像

fail!

fail owned pwned pictures
see more Fail Blog

lol

Vistaの功罪?

【山田祥平のRe:config.sys】 遠くを見ていたVista

Vistaがメーカー製PCのハードウェアの底上げに役立ったのではないかという意見。たしかに言われてみればそんな気もする。私が始めてバイトして買ったPCは、6年前だったが、メモリを1GB積んでいた。値段は20万以下だった気がする。GPUはGeForce4 Ti4200だった。ところで、その頃のメーカー製のPCというのは、私の買ったPCの1.5倍ぐらいの値段で、メモリは256MBで、GPUは三十万円ぐらいするモデルは、GeForce3やGeForce2MXを積んでいたものもあった。そもそも、専用のGPUカードなど積んでいる方が珍しく、大抵はIntelのマザボ内蔵のGPUだった。私は当時、なぜメーカー製のPCはあんなに高価かつ低スペックなのだろうかといぶかしんだものだ。

Vistaの発売直後でさえ、メモリを512MB程度しか積んでいないメーカー製PCが非常に多かった。私は不思議に思ったものだ。なぜだ? 四年前に買った己のPCですら、メモリを1GB積んでるんだぞ。メモリなんて安いだろう。なぜたったの512MBなんだ、今日びフラッシュメモリすらもっと容量があるぞ、と。かといって、値段は、昔とあまり変わっていない。実に不思議だった。また、Aero程度すら、満足に動かせるスペックではなかった。あったとしても、値段が不当に高かった。Aeroも動かせないのような非力なGPUで一体何をするのだろう。

もちろん、初心者向けのユーザーサポートなどで費用がかさむというのもある。また、大々的に広告を打ち出すので、その文費用もかかるのだろう(あきらかにPCに関してはド素人くさい芸能人を使って、テレビに広告を垂れ流していた)。しかし、そんな何の役にも立たないコストのせいで、低スペック高価格のPCを得て、何が嬉しいのか、私にはよく分からない。

OSは低スペックでも動くべきだという声もあるかもしれない。私はそれが正しいとは思わない。その時代に合わせた最適化というものがある。たとえば、こんにち、32MBしかメモリのないデスクトップ機(メールやブラウジングに使う)でVistaを動かせたとして、何か嬉しいだろうか。よしやOS自体は一切オーバーヘッドにならなかったとしても、今日び、どのWebサイトでも、大量の画像やFlashを使っている。はたして32MBのメモリで何をするのだろうか。1996年当時の私が使っていたPC(OSはWindows 95)は、メモリが32MBしかなかった。当時は、仕方のなかったことだ。当時のWebサイトも、テキストに画像がちらほら混じる程度で、staticなコンテンツばかりだった。

してみれば、今日、数GBのメモリと、Aeroが動く程度のGPUを要求するのは、至極当然のことである。

modifyできるrvalue

C++03 の規格, 3.10 Lvalues and rvalues を読んで、その解釈を書いてみる。

2 An lvalue refers to an object or function. Some rvalue expressions—those of class or cv-qualified class type—also refer to objects.47)

47) Expressions such as invocations of constructors and of functions that return a class type refer to objects, and the implementation can invoke a member function upon such objects, but the expressions are not lvalues.

5 The result of calling a function that does not return a reference is an rvalue. User defined operators are functions, and whether such operators expect or yield lvalues is determined by their parameter and return types.

10 An lvalue for an object is necessary in order to modify the object except that an rvalue of class type can also be used to modify its referent under certain circumstances. [Example: a member function called for an object (9.3) can modify the object. ]

Based on above rules, i wrote following codes.

struct Foo
{
        //non-static non-mutable member variable.
        int x ;

        // non-static non-const member function.
        void func()
        {
                // modify a member variable.
                x = 0 ;
        }
} ;

// result of calling this function shall be a rvalue
// since it does not return Foo as reference.
Foo f( ) { return Foo() ; }

void g()
{
        // according to 47), 
        // it allows to call member function upon a rvalue
        // which is a result of "Expressions such as invocations of constructors and of functions"
        // it does not mentions about wheather "member function" is cv-qualifier or not.
        // and because of 3.10 p10, member function can modify it's member
        // even if it's called upon a rvalue "under certain circumstances"(see above)
        // so following two lines shall be well-formed.

        Foo().func() ; // #1 OK. 
        f().func() ; // #2 OK.

        // and following two line shall be ill-formed.
        // because 3.10 p10 prohibit modifying a object of rvalue.

        Foo().x = 0 ; // #3 Error
        f().x = 0 ; // #4 Error
}

VC9での結果は、私の理解通りにはならなかった。。#1, #2は、期待通りに、コンパイルが通る。#3は、期待通りにコンパイルエラーになる。ところが、#4は通ってしまう。3.10で言及しているのは、コンストラクタや関数の戻り値のrvalueのオブジェクトに大して、メンバ関数が呼べ、かつ、そのメンバ関数の中ではmodifyできるということだけで、それ以外については、modifyするにはlvalueでなければならないとしているのに、不思議だ。

しかし、rvalue referenceをサポートしているコンパイラでは、f()の戻り値を Foo && で受ければ、modifyできるんじゃなかろうか。私の理解する限りでは。

Foo && ref = f() ;
ref.x = 0 ; // OKだと思う。

f().x = 0 ; // でもこっちはエラー? なんか納得できない。

となると、f()の戻り値をそのまま変更することはできないけれど、rvalue referenceで束縛してしまえば変更できるという、へんな挙動になる。それはおかしいから、やはり#4はコンパイルエラーになるべきではないと思うのだが、#4を認める記述は、現在のドラフトには確認できない。うーん。教えてエロい人。

2009-05-21

ジョギング日記

余、ジョギングを初めてより早一ヶ月半、持久力がだいぶ上がっている。驚くほど上がっている。これはすばらしい。余の日頃、「もうトシだなぁ」と嘆声せしは、誤りであった。と同時に、食欲も大幅に上がっている。ここ数年、肉を食べたいとは思わなかったが、運動を始めてから、頓に食べたくなった。それも大量に食べたいと思うようになった。人間の欲求というのは、あんがい、原始的な身体の状態に左右されるのかもしれぬ。

VC10のrvalue referenceはどうなってるのだろう。

VCの独自規格で、一部のrvalueがlvalueとして使えてしまうのは驚いた。こんな独自仕様では、プログラマの誤解を招くだろうし、ひどい互換性の問題を引き起こしていそうだ。

まあでも、C++0xのrvalue referenceを使うには、lvalueとrvalueの違いを理解しなくてはならないから、将来的には少しマシになるのかもしれない。でも、規格を読んで言語を学ぼうとする、骨のあるプログラマは少ないので、あまりマシにはならないかもしれない。

しかし、rvalue referenceと、このVCの独自仕様は共存できるのだろうか。少し頭の中で考えてみたが、共存できないというコードは思いつかなかった。むしろ、rvalue referenceが関数の戻り値の型であるコードと、あまり変わらないような気さえする

struct Foo
{ void func() {} } ;

Foo f() { return Foo() ; }

Foo && g() { return Foo() ; }

void h()
{
    f().func() ; // Error. ただし現行のVCでは通る

    g().func() ; // OK.
}

2009-05-20

any ass

any ass : any terrible (things)

なぜか、どこにも意味が載っていないので、ネイティブに訊ねた。

uskz氏のブログを効率よく閲覧する方法が見つかった

やはりGoogle Readerは偉大だ。たとえば、C++WGのメールも、恐ろしく大量に来るものの、フィルタで簡単にラベル付けしてさばけるので、全く問題になっていない。Google Rederは偉大だ。Googleがなければ、私のインターネット生活は驚嘆に貧相なものになっているであろう。実際、私のインターネット生活のほとんどの時間は、Google Readerの閲覧でしめられている。Googleで働けたら面白そうな気がする。まあ、実際は、人間の職場なので、そうでもないのだろうが。

rvalue referenceについて

VC10のrvalue referenceの実装が、*thisを含まないという但し書きがあるのをみて、ぱっと*thisへの参照がlvalueなのかrvalueなのかが問題なのだというのを思いつけなかったのは、情けない。これは自分のrvalue referenceへの理解が足りないためだ。rvalue referenceについても、よく知っているはずだったのに、実に情けない。そこで、rvalue referenceについて解説してみることにした。

まず、lvalueとrvalueの違いについて述べる。この違いを、言葉で説明するのは難しい。むしろ、コードで説明した方が分かりやすい。

int f()
{ return 0 ; }

void g()
{
        int a = 0 ;
        a ; // lvalue

        0 ; // rvalue
        int(0) ; // rvalue
        f() ; // rvalue
}

なんとなく違いが分かってくれたと思う。この違いが目に見える形で現れるのは、参照型に代入をしようとした時だ。

int f()
{ return 0 ; }

void g()
{
        int a = 0 ;
        int & r = a ; // OK

        int & r1 = 0 ; // Error
        int & r2 = int(0) ; // Error
        int & r3 = f() ; // Error

}

rvalueを、C++03の参照に代入しようとすると、エラーになる。なぜならば、C++03の参照は、lvalueへの参照(lvalue reference)だからだ。

ところで、rvalueは、const lvalue referenceでキャプチャすることができる。これは実に不思議な仕様だ。私はlvalueとrvalueを理解する前にも、常々、違和感を持っていた。

int f() { return 0 ; }
void call_by_reference( int & ) { }
void call_by_const_reference( int const & ) { }

void g()
{
        int a = 0 ;

        call_by_reference( a ) ; // OK
        call_by_const_reference( a ) ; // OK

        int & r = a ;

        call_by_reference( r ) ; // OK
        call_by_const_reference( r ) ; // OK

        call_by_reference( 0 ) ; // Error, rvalue referenceは非constな参照では受けられない
        call_by_const_reference( 0 ) ; // OK

        call_by_reference( int(0) ) ; // Error, rvalue referenceは非constな参照では受けられない
        call_by_const_reference( int(0) ) ; // OK

        call_by_reference( f() ) ; // Error, rvalue referenceは非constな参照では受けられない
        call_by_const_reference( f() ) ; // OK
}

私は、lvalueとrvalueを理解していない時でも、これが疑問だった。なぜだ。aという式と、0とかf()という式は、全然別物じゃないか(つまりrvalueになる) なぜconst referenceならば代入できるのだ。確かに、constであれば、問題はないに違いない。でも何か違う気がする。

ところで、std::auto_ptrというものがある。以下のように使える。

std::auto_ptr< int > f( std::auto_ptr< int > ptr )
{ return ptr ; }

void g()
{
        std::auto_ptr< int > ptr( new int(0) ) ;
        std::auto_ptr< int > ret = f( ptr ) ; // OK, ただし、その理由は謎である。
}

なぜこれが通るのか。f()の戻り値はrvalueとなっている。constでしか受けられないはずだ。どうやって安全にretに代入しているのだろうか。私は、このコードのコンパイルを通すための、実に驚嘆すべきauto_ptrの実装方法を知っているが、ここに記すには余白が足りない。どうしても知りたい方は、Nicolai JosuttisのThe C++ Standard Libraryを読めば、実装方法が乗っている。簡単に言うと、Template Argument DeductionとOverload Resolutionの微妙な差異を利用して、この場合にだけ動く型変換の状況を作り出し、別のクラスに変換してやってから、ポインタを取り出している。それはさておき――

この、rvalueをconstな参照で受けられるという不思議な仕組みは、じつに奇妙な挙動を引き起こす。それに、実際、制限も多い。というわけで、C++0xからは、rvalue referenceというものが入るようになった。これにともない、以前の、C++03の参照は、lvalue referenceと呼ばれるようになる。

int f()
{ return 0 ; }

void call_by_rvalue_reference( int && ) { }

void g()
{
        int && r1 = 0 ; // OK
        int && r2 = int(0) ; // OK
        int && r3 = f() ; // OK

        call_by_rvalue_reference( 0 ) ; //OK
        call_by_rvalue_reference( int(0) ) ; //OK
        call_by_rvalue_reference( f() ) ; //OK
}

これは、rvalueを捕捉するための参照だ。だから、rvalue referenceと呼ばれている。const_castでconstを外すのは、大抵の環境で動くだろうが、それは危険なコードである。

rvalue referenceは、関数のオーバーロードにも使える。

int f() { return 0 ; }

void call( int & ref ) ; // #1
void call( int && ref ) ; // #2

void g()
{
        int a = 0 ;
        call( a ) ; // #1 が呼ばれる。

        // これらは、#2が呼ばれる。
        call( 0 ) ;
        call( int(0) ) ;
        call( f() ) ;
}

rvalue referenceとは、基本的にこれだけの事である。しかし、ここで説明を終えてしまっては、rvalue referenceの必要性が分からないと思われるので、Move Semanticと呼ばれている概念を説明しようと思う。たとえば以下のコード――

class Foo
{
     int * ptr ;

public :
        Foo()
        {
                ptr = new int[10000] ;
        }
        ~Foo()
        { delete[] ptr ; }

        Foo( Foo const & r )
        {
                ptr = new int[10000] ;
                std::copy( r.ptr, r.ptr + 10000, ptr ) ;
        }

} ;


Foo f() { return Foo() ;}

void g()
{
        Foo a ;
        Foo b( a ) ; // #1
        Foo ret( f() ) ; // #2
}

#1では、メモリの確保、コピーが発生する。それは仕方がないことだ。なぜなら、コピーしたいのだから。しかし、#2の場合は違う。f()の戻り値であるrvalueは、どうせこの後すぐに、消される運命なのだ。なんでわざわざメモリの確保とコピーを行わなければならないのか。f()の戻り値のポインタをそのまま、retに代入しても、何の問題もない。

この場合、ポインタだけ渡すなどという操作を、Move Semanticsという。実際、メモリを確保してコピーするよりも、ポインタをすげ替えた方がいいからだ。このように、rvalueからlvalueへ、moveすることは、たいていの場合、全く問題がない。しかし、C++03では、これを実現する文法がない。なぜなら、rvalueを区別して変数に束縛(bind)することができないからだ。これまでは、const lvalue referenceとしてbindしてきた。C++0xでは、rvalue referenceがあるので、rvalueの場合を考慮してオーバーロードできる。

class Foo
{
     int * ptr ;

public :
        Foo()
        {
                ptr = new int[10000] ;
        }
        ~Foo()
        { delete[] ptr ; }

        Foo( Foo const & r )
        {
                std::cout << "コピーするよ~、遅いよ~、我慢してね~" << std::endl ;
                ptr = new int[10000] ;
                std::copy( r.ptr, r.ptr + 10000, ptr ) ;
        }

        Foo( Foo && r )
        {
                std::cout << "たんなるポインタのすげ替えだよ~、早いよ~" << std::endl ;
                ptr = r.ptr ;
                r.ptr = null_ptr ;
        }

} ;


Foo f() { return Foo() ;}

void g()
{
        Foo a ;
        Foo b( a ) ; // #1
        Foo ret( f() ) ; // #2
}

ごらんの通りだ。

そのほかにも、Forwardingという概念がある。これは、詳しくは解説しないが、関数オブジェクトのラッパを作る時に、ラッパに渡されたlvalueとrvalueは、区別してそのまま、実際の関数オブジェクトに渡したいという希望がある。C++03では、容易にできなかったことだが、C++0xでは、rvalue referenceのおかげでできるようになった。

以上がrvalue referenceの簡単な解説である。rvalue referenceの導入により、C++0xでは、lvalueとrvalueの区別が明確になるだろう。C++03では、違いを表現する文法が欠如しているために、プログラマは、lvalueとrvalueの違いを、実感することができなかった。そのため、理解もできず、いろいろとわけの分からないコンパイルエラーに遭遇したことも多いだろうと思う。C++0xでは明確に区別できるので、そういう混乱も起こらなくなり、より学びやすくなる。私がC++を学び始めた時にC++0xになっていれば、どんなにか学習が容易だったことだろうか。

ところで、実は*thisへのrvalue referenceというものがある。これはどういうものか。

non-staticなメンバ関数が、メンバ変数を参照できるのは、魔法でも何でもない。プログラマからは見えないものの、メンバ関数には、this参照への引数が、暗黙のうちに含まれているのだ。ちなみに、thisは、プログラマから見るとポインタだが、実際には参照であるべきものだ。thisがポインタであるのは、単にthisが参照よりも早く導入されたという、歴史的な理由でしかない。

ところで、そのクラスの実際のオブジェクトも、lvalueの時と、rvalueの時がある。そういう場合、区別できるようにしようというものだ。

struct Foo
{
    void func() & ; // #1 *thisはlvalue reference
    void func() && ; // #2 *thisはrvalue reference
} ;

Foo f() { return Foo() ; }

void g()
{
    Foo a ;
    a.func() ; // #1が呼ばれる。

    f().func() ; // #2が呼ばれる。
}

これはもちろん、メンバ関数限定である。尚、通常の何も指定しないメンバ関数は、lvalue referenceの*thisを引数に持つものとして解釈される。つまり、#1と同じだ。この新しい修飾は、ref-qualifierと呼ばれていて、cv-qualifierの後、exception-specificationの前に記述できる。つまり、void Foo::func() const volatile && throw() という順番になる。

また、ref-qualifierを明示的に指定しないメンバ関数と、ref-qualifierを指定するメンバ関数で、引数名前などが同じメンバ関数のオーバーロードを記述することはできない。これは、明示的に指定しないメンバ関数とlvalue referenceのメンバ関数にとどまらず、rvalue referenceであってもそうだ。

struct Foo
{
    void f() ; // Error
    void f() & ; // Error

    void g () ; // Error
    void g() && ; // Error

    void h() & ; // OK
    void h() && ; // OK
} ;

この仕様は不思議だが、プログラマをしてlvalueとrvalueの違いに気づかせるには、むしろ、いい仕様かもしれない。

ところで、VC9だと、以下のコードのコンパイルが通ってしまうのだが、いいのだろうか。

struct Foo
{
    void func() {  }
} ;

Foo f() { return Foo() ; }

void g()
{
        f().func() ;
}

ペーパーにあったこのコードもコンパイルが通ってしまう。(もちろん、ref-qualifierをなくした状態で、だが。)

struct S {
  S* operator &() &;            // Selected for lvalues only
  S& operator=(S const&) &;     // Selected for lvalues only
};

int main() {
  S* p = &S();                  // Error!
  S() = S();                    // Error!
}

追記:ペーパーにあるコードは、おそらく、ref-qualifierが導入された暁には、*thisがlvalueの場合だけ呼び出されるメンバ関数を書くことが出来るという意味だろう。

数学の宿題をWolfram|Alphaで解こう、その3

次の整式を因数分解せよ。

a^6 - b^6
(x^2 + 4x)^2 + 4(x^2 +4x) + 3
a(b^2 - c^2) + b(c^2 - a^2) + c(a^2 - b^2)
(x+1)(x+2)(x+3)(x+4) -24

答え、
a^6 - b^6
(x^2 + 4x)^2 + 4(x^2 +4x) + 3
a(b^2 - c^2) + b(c^2 - a^2) + c(a^2 - b^2)
(x+1)(x+2)(x+3)(x+4) -24

三番目が自力で解けなかったので、Wolfram|Alphaを試してみた。しかし、Wolfram|Alphaにも解けないようだ。

ちなみに、三番目は、展開した後に、なんとか(a - b)、(b - c)、あるいは(c - a)など、とにかく何でもいいが、複数の共通な係数を作りだすことに注力すれば解ける。ただ、そういう処理を頭の中で行うことは、なかなかに難しい。似たような形の式を、以前にも因数分解したことがあれば、目的とする形に式をもっていくことは、それほど難しくないが、始めて見る形の式だと、どうしていいのか分からずに頭を抱えたまま時間を浪費することになる。残念ながら王道は存在しない。ただ練習有るのみ。

キヤノンの職場環境は刑務所以下

本当に「いす」がなかった,キヤノン電子のオフィス:ITpro

まずはリンク先を読んでもらうとして、問題がかなりある。刑務所ですら、作業は椅子に座って行う。キヤノンの作業環境は刑務所以下である。

また、この記事で言及していない、最悪の欠点がある。キヤノンオフィス内の画像、どれもこれも非常に暗い。照明が全然足りていないように見える。記事では、働いている最中に取材したとあるので、この照明は、実際に照明が付いている状態での撮影だろう。それにしては暗すぎる。健康的な労働環境には、適切な照明が必要不可欠である。また、どの写真も、カメラ視点より距離が離れるに従って暗くなっていくという特徴がある。明るいのは手前だけで、奥はかなり暗い。これは照明の明かりというよりも、撮影時のフラッシュの明かりなのでは無かろうか。資料の棚がうつっているが、こんな暗い照明環境で、資料の背表紙を読んで探さなければならない労働環境は、果たして健康的と言えるであろうか。この点からも、刑務所よりもひどいと言わねばなるまい。

参考: メイドインジャパンは、すでに高品質を意味しない
キヤノンの一眼レフで不良事故が多発する理由、製造請負依存の死角(上)(1) | 企業戦略 | 投資・経済・ビジネスの東洋経済オンライン

数学の宿題をWolfram|Alphaで解こう、その2

x + y = 4, xy = 1 のとき、次の式の値を求めよ。
x^2 + y^2, x^3 + y^3, x^4 + y^4, x^5 + y^5

答え
x^2 + y^2
x^3 + y^3
x^4 + y^4
x^5 + y^5

x^4 + y^4の計算方法が分からなくて、ふと、Wolfram|Alphaに解けるかどうか気になったので試してみた所、あっさり解いてくれた。すごい。己より頭がいい。

ちなみに、指数をもっと大きくしても解いてくれる。たとえば、x^32+y^32、や、x^32 + y^31などだ。私は手で計算して確かめたいとは思わない。

2009-05-19

VC10について興味深いことをいくつか

C++0x Support in Visual Studio 2010(pdf)

なかなか面白い。

VC10には、Lambda, auto, decltype, static_assert, Rvalue Referenceが入る。

autoやdecltypeについては、今さら解説するまでもないが、Including multi-declarator autoとあるのは、以下のようなコードのことを言うのだろう。

auto a = 0, b = 0.1, c = func() ;

lambdaに関しては、mutableなlambdaも入るという。これはだいぶ最近になってドラフトに加えられた仕様で、どういうものかというと、lambdaのoperator ()とはconstになっているので、通常、キャプチャした変数を書き換えることができない。mutableを使うと、これができるようになる。やるべきではないと思うけれど。

template < std::ForwardIterator Iter >
void f( Iter first, Iter last )
{
    iter::value_type sum = 0;

    //mutableがなければ、ここでエラーになる。
    std::for_each(first, last, [=] (Iter value) mutable
        { sum += value ; std::cout << sum << std::endl ; } ) ;

//この時点で、sumは0である。なぜなら、lambda関数のキャプチャしたsumは、コピーだから。
}

lambda関数内のsumはコピーだから、このコードは無意味じゃないかというツッコミは、上記のコードの本題ではない。重要なことは、sumはラムダ関数のオブジェクトが消滅するまで生きていて、値を保持でき、しかも書き換えられるということだ。追記:せっかくだから、lambda関数内のsumを使うようにしてみた。

static_assertとは、BOOSTにあるBOOST_STATIC_ASSERTマクロと同じものである。これは本来、コンパイラ側でサポートしたほうが、何かと都合がいい。

はて、Rvalue Referenceの"NOT including *this"、とはどういう意味だろう。メンバ関数から*thisをrvalue referenceで返すのが不可ということなのだろうか。

また、Dinkumwareのconversionライブラリや、カスタムアロケータライブラリも入るらしい。Dinkumwareのconversionライブラリが入るということは、utf8-utf16間の相互変換ができるということだ。カスタムアロケータは色々あるが、まあ、まず使うことはないだろう。

ところで、ボーナススライドに、nullary Lambdaというものがある。これは、ひょっとすると、ドラフトの私の解釈が正しかったということではないか。つまり、lambda関数の引数がないときは、()自体を省略できるというものだ。

追記:正直な感想を言おう。このPDF、どう考えても背景画像が邪魔である。文字が読みにくい事この上ない。

2009-05-18

バナナは凶器である。

North Carolina Banana Robbery: Teen Eats The Evidence After Trying To Ron Store in Winston-Salem | Strange News | Sky News
Sheriff's office: Man tries to rob store using a banana

モンティパイソンに影響されたに違いない。

しんにょうは二点が正しいのではないか

前から、しんにょうを書くのが苦手だった。ところで、二点のしんにょうを書いてみると、これが自然とうまく書けるような気がする。一点しかないと、スペースを埋めようとする意識が働くのか、点以外の部分を無意識に大きくしてしまうらしい。

追記:なんだか喧喧諤諤の論争が繰り広げられていてよく分からない。基本的に、書く場合は一点で、活字の場合は一点か二点だったようだ。まあ、歴史的に、漢字の細部については、昔からかなりおおざっぱだったので、何が正しいというわけでもないのだろうが。正しい漢字だとか、正しい字体なんて不思議なことを言っているのは、学校教育が始まってから、それも第二次世界大戦後の学校教育が始まってからのことである。

Wolfram|Alphaが面白すぎる

これは一日遊べるすばらしいサイトだ。

Wolfram|Alphaについて

http://www85.wolframalpha.com/

Wolfram|Alphaは、検索エンジンではない。答えを計算してくれるサービスである。計算できないものには、弱いのだが、計算できるものにはめっぽう強い。

例えば、以下は私の持っている数学の問題集に載っている、ある問題である。

関数 y = x^2 - 2x - 1 ( 0<= x <=a ) の最大値および大小値を、次の(1)~(4)の場合について求めよ。

(1) a < 0  (2) 1 <= a <= 2  (3) a = 2  (4) 2 < a

答えは以下の通り。
(1)
(2)
(3)
(4)

すばらしい。ただ、一部、片方しか求めていないものもある。ここは、もう少しスマートにして欲しい所だ。

他にも、例えばこんな問題はどうだろうか。

次の等式が成り立つことを証明せよ。
(a + 2b)^2 + (2a - b)^2 = 5(a^2 + b^2)

そもそも本当に成り立つのだろうか。確かめてみよう

なるほど、確かに成り立つようだ。

一ツ橋書店の参考書の設問がひどすぎる

私はかつて、まともな国語能力を有する者の手によって作られた、国語の問題を見たことがないのだが、それにしても、今使っている一ツ橋書店の一般曹候補生の試験の参考書はひどすぎる。

文学史に関する次の記述のうち、誤っているものはどれか。
①新古今和歌集は8番目の勅撰和歌集で、編者は藤原定家などである。
②松尾芭蕉、与謝蕪村、小林一茶のことを江戸時代の三大俳人という。
③島崎藤村は初め浪漫主義の詩人として出発したが、『千曲川のスケッチ』を機に、詩から散文に転じた。
④北村透谷は、北原白秋らと「文学界」を興し、自然主義文学の先頭に立った。
⑤芥川竜之介は、人間の心の奥にひそむものを鋭くとらえた短編小説を数多く書いた。

①は事実である。①を否定する資料は、私の知る限りない。
②も、多くの人が賛同するであろう記述である。江戸時代のもっとも有名な俳人を三人挙げよと言われたら、松尾芭蕉、与謝蕪村、小林一茶になるであろう。
③についても、事実であろう。島崎藤村は自らを以てロマン主義であると宣言したかどうかはしらないが、日本のロマン主義といえば、島崎藤村を列挙する資料が多い。また、島崎藤村は、初め詩を能くし、しかる後に「千曲川のスケッチ」なる小説を書いたのは、事実である。
④は誤りである。一般に、文学界とは、北村透谷、島崎藤村が作った同人誌であると言われている。北原北宗は関わっていない。

⑤は主観的な感想である。真偽は各人の主観的な評価に由る。例えば、「はぁ? あくたがわりゅーのすけ? あー、あれだろ、昔の作家だろ。よくしらんけど」、などと発言する無教養の徒は、⑤を真とは認めないであろう。この無教養の徒は、小説を読まない人種である。小説を読まない人種に対して、芥川竜之介の短編小説をもって、彼の心の奥にひそむものを鋭くとらえること、は不可能である。誤っているものを選べという選択問題に対して、主観的な文章を使うというのは、はたしてどうであろうか。他ならぬ芥川竜之介自身が、「自分は人間の心の奥にひそむものを鋭くとらえた短編小説を数多く書いた」と言ったであるとか、あるいは芥川竜之介イコール「人間の心の奥にひそむものを鋭くとらえた短編小説を数多く書いた」であるという定評があるなら、正しいのかもしれないが、私はそんな話を聞いたことがない。Googleの検索結果を見ても、そんな定評があるとは思えない。(2009年5月18日現在、37件しかヒットしていない)

もっとも、

「これらの大部分の問題は口語訳ができれば容易に解けるものとなっている。つまり、古文は口語訳ができれば楽勝!ということである。

などと、恥ずかしげもなく書いてある参考書のことである。期待するだけ無駄というものなのかもしれない。ところで、上記の文は実際に書いてあるのだが、同じ事をもって結論としている。この論法は、「AなのでAである」、という、不思議なものになっている。こんな不思議な文章を書く人間が、どうやって国語の問題を作ったのだろう。

不勉強

高校レベルの数学の勉強を初めてより、早一月、すでにノートを四冊消費した。なるほど、自分は高校生の頃、よほど勉強をしていなかったものと見える。当時、こんなに早くノートを消費した記憶はない。

当時、不勉強だったというのは、いまさら悔やんでも時間の無駄でしかないのだが、ひとつだけ、後悔していることがある。以前も言ったが、何故当時、シャーペンを使っていたのだろう。しかも、計算を間違えた場合、律儀に消しゴムで消していた記憶まである。何故こんな無駄なことをしていたのだろう。ノートは一冊数十円に過ぎない。計算を間違えたならば、わざわざ消すよりも、次のページに、改めて書けばいいのである。それを考えると、シャーペンと消しゴムは、使うべきではなかった。

これまた以前にも書いたが、ペンもそうだ。ボールペンよりは、万年筆の方がいい。なぜなら、筆圧がいらないからだ。

ところで、勉強に関して、ひとつ問題がある。というのも、満腹では、勉強する気が起きないということだ。しかし、空腹状態で勉強して、果たして効果があるのだろうか。もっとも、勉強できないよりは、できた方がいいに越したことはない。それに、空腹感というのも、単に脳が空腹を感じているだけであり、問題はないのかもしれない。

2009-05-17

女得人焉耳乎

子游爲武城宰、子曰、女得人焉耳乎、曰、有澹臺滅明者、行不由径、非公事、未嘗至於偃之室也

「女得人焉耳乎」という部分がよく分からない。焉はともかくとして、耳は一体何なのだろう。別のテキストでは、耳の代わりに爾を用いているものもある。もっとも、この耳と爾の二つの漢字は、漢音、呉音ともに、同じ音である。だから、焉と同じく、単に音の調子を整えるための字だろうか。

書きたくない漢字

繼、齊、爾、學、餘

これらは、よく論語に出てくるが、個人的には、あまり書きたいとは思わない。なぜ昔の支那人は、こんな複雑な字を使っていたのだろう。

でも、これらはまだ、書こうという気にはなるが、以下の漢字は、書くことを拒絶した。

惡、乘

これらは、画数こそ少ないものの、悪や乗と比べて、やたらと書きづらい。

2009-05-15

乾飯作成、一日目

茶碗一杯分の、炊いた米を、水で軽く洗い、天日に干してみた。今日は日差しが強いので、すぐに乾くだろうと思っていたが、これが、案外乾かない。一日では無理のようだ。

なぜ乾飯の作成を試みているかというと、伊勢物語のある有名な場面の実感が、いまいちわかないためだ。私は、自分で体験しないことは、さっぱり推測できない、空想力の非力な人間である。あの有名な、かきつばたで詩を詠む場面だ。果たして、涙程度の少量の水で、乾飯はふやけるのだろうか。

もっとも、昔の文章には、「袖を絞る」なんて表現も頻出するので、文字通りの事実であるとするならば、水の量は問題にならないのかもしれない。それにしても、古文では、何かあるごとに、人々は袖を絞るほど涙を流している。たんなる比喩表現なのだろうか。それとも、当時の人は、大げさに泣くことを美徳としていたのだろうか。

爾の及ぶ所に非ざる也

子貢曰、我不欲人之加諸我也、吾亦欲無加諸人、子曰、賜也、非爾所及也

これはどう解釈していいものやら。だいたい、最近は以下のように解釈する。

子貢曰く、我、人のこれ我に加ふることを欲せざるは、吾、またこれ人に加ふること無からんと欲す。子曰く、賜や、爾の及ぶ所に非ざる也。

しかしこれだと、「先生、僕は自分がされてもいやなことは、人にしないようにしたいでーす」という子貢のけなげな言葉に対して、「そりゃお前にゃ無理だ。あきらめな坊や」と大人げなく答えていることになる。それはちょっとどうかと思う。また、古くは、加をしのぐと読んだ。つまり、

子貢曰く、我、人のこれ我にしのぐことを欲せざるは、吾、またこれ人にしのぐこと無からんと欲す。子曰く、賜や、爾の及ぶ所に非ざる也。

となる。これは、実際には、もちろん無理な話だから、孔子の言葉も分からないでもない。人と人との間に優劣がないというのは、封建社会においてはもちろん無理だし、資本主義社会においても無理だし、共産主義社会において、かつてそういう理想を立てた所はあったが、悉く失敗している。

ところで、孔子は、仲弓に対しては、「己所不欲、勿施於人」と答えている。実に矛盾している。もっとも、子貢が弁舌に優れていたとされるのとは対照的に、仲弓は仁にして佞ならず、則ち仁だが弁舌が下手だったとか、南面せしむべし、則ち君子にさせても可なり、だとか言っているので、性格の違いからなのかもしれない。

2009-05-14

乾飯

伊勢物語に、以下の文がある。

むかし、おとこありけり。そのおとこ、身をえうなき物に思なして、京にはあらじ、あづまの方に住むべき国求めにとて行きけり。もとより友とする人ひとりふたりしていきけり。道知れる人もなくて、まどひいきけり。三河の国、八橋といふ所にいたりぬ。そこを八橋といひけるは、水ゆく河の蜘蛛手なれば、橋を八つわたせるによりてなむ、八橋といひける。その沢のほとりの木のかげに下りゐて、乾飯食ひけり。その沢にかきつばたいとおもしろく咲きたり。それを見て、ある人のいはく、「かきつばたといふ五文字を句の上にすへて、旅の心をよめ」といひければ、よめる。

唐衣きつゝなれにしつましあればはるばるきぬる旅をしぞ思

とよめりければ、皆人、乾飯のうへに涙落してほとびにけり。

この部分を、当時、中学生か高校生の時に読んで、はて、乾飯はどうやって食べたのかという疑問がわいた。

乾飯とは、現代風の言い方をすれば、アルファ米である。常々アルファ米のことは不思議に思っていたのだが、はて、ご家庭で作れるのだろうか。ちょうど、米が茶碗一杯分余っている。少々堅くなっており、もはやお茶漬けやおかゆにデモしない限り、食べにくい状態となっている。明日、天日に干してアルファ米を作ってみるつもりである。はたして水で戻して食べられるのだろうか。

ところで、乾飯と言えば、もう一つ思い出す話がある。それは「ちいちゃんのかげおくり」と題するお話で、今はどうか知らないが、当時の私の小学校の国語教科書に出てきた話である。そこで、ちいちゃんが「ほしいい」をかじったという記述があったように思われる。しかし、あの話は、なんだか小学校低学年の教科書としては、問題があるように思われる。当時の私の小学校では、「最後の場面で、ちいちゃんが見たのは何であったかについて作文しなさい」という課題がでたので、私は以下のように書いた。

ぼくは、ちいちゃんがみたのは、りんしたいけん、とよばれているものだとおもいます。りんしたいけんとは、しぬちょくぜんにのうがみるもうそうのことです。だから、ちいちゃんは、しにかけでかってにつごうのいいまぼろしをみて、かってにまんぞくしてしんだのだとおもいます。

当時の小学校の教師は、私のこの作文を読んで、問題があるとした。そのくせ、では正しい解釈は何なのだと訊ねても、教えてはくれなかった。今考えても、この解釈に問題があるとは思えない。いやしくも常識人ならば、いわゆる「天国」などと称するアホくさい宗教上の概念を持ち出してこの話を説明するを肯んぜず。一方、九死に一生を得た人は、ある程度共通した幻をみるというのは、よく知られたことである。実際に、多数の人に調査した例がある。従って、この物語の最後は、脳が死ぬ間際に見せた妄想であると答えるのは、理にかなっていると言える。

中江兆民について

中江兆民は、変人である。これは万人の賛同してくれる所であろう。もっとも、明治維新前後の著名な人物というのは、変人奇人がやたらと多い。高杉晋作といい、坂本竜馬といい、新島襄といい。そういえば、徳川慶喜もそうだった。時代がそうさせたのだろうか。

中江兆民の生涯は、その門弟である幸徳秋水が、じつに興味深く書き残している。無頼遊蕩であったこと。民間人なのにもかかわらず、当時、無理矢理に国費留学していること。帰国すると、衆議院議員になったこと。民主主義が行われていないとあきらめると、すぐに辞職してしまったこと。その後、職を転々とし、一時は遊郭の経営まで試みたこと(もちろん、幸徳秋水は、ご存じの通り高潔な性格をしているから、さんざん諫めたらしいが)、等々、実に破天荒な性格をしていたらしい。

はて、中江兆民の著わした本について書こうとしたら、なぜか中江兆民の人物像の解説になってしまった。とにかく、中江兆民と幸徳秋水の残した文章の、その文学的価値はかなりのものなので、暇を見て書いていこうと思う。

自己の性格

二十餘年間、生きてきて、自己の性格というものが、おぼろげながら分かったような気がする。自分は、漠然とした向上のために動くことはできるが、明確な目標のために動くことはできないらしい。

漠然とした向上とは何か、絶対に手が届きそうにない理想、則ちこれなり。明確な目標とは何か、計画により順順と行えば、確実に達成できるであろう事柄、則ちこれなり。

昔から本が好きだったので、暇さえあれば本を読んでいた。今から思えば、書を読まないよりは、読んでいた方がいいと言える。英語を積極的に学んだ。理由は特になかった。ただ、将来役立つだろうという漠然とした思いはあった。プログラミングも学んだ。しかし、常に学ぶこと半ばにして、放り出してしまう。どうしても、これを極めようという気が起こらない。第一、極めてしまったら、面白くないではないか。知らないことがまだある方が、面白いのだ。

明確な目標のために動けないというのはどういうことか。たとえば、「かくかくしかじかのプログラムを作りたい。そのためには、とらとらうまうまの作業が必要である。そこから考えると、今日のコーディング作業によって、全体の何分の一ができあがる。退転なくこれを行えば、三ヶ月後には完成するであろう」というがごとき話である。自分は、こういう明確な目標を、きっちりとした計画の元に進めていくことは嫌いである。だから、私が旅をするとなると、たいがいこんな調子だ。その点から言えば、プログラマには向いていないと言える。いや、そもそも事務的な仕事には一切向いていないと言える。画家や詩人ならこれでもいいのかもしれないが、残念ながら、私には絵心も詩心もないときている。已んぬる哉。

2009-05-13

因果なものだ

一般曹候補生の試験のために、四月の初めから高校生の数学を勉強していたのだが、これがなかなか面白い。やれやれ、大学でも受験しようか。まあ、いまさら大学に行ってもしょうがないし、飽きやすい性格をしているので、四年間続くとも思えない。しかし、大学に行って英語を学ぶというのも、案外悪くなさそうな気がする。

そもそも、大学を受験するには、いろいろと面倒なことも多い。例えば、センター試験の申し込みもそうだし、高校の卒業証明書も取り寄せないといけないだろう。何より、向こう四年間の金もかかる。それに、どう考えても、あと半年やそこらの付け焼き刃的な勉強では無理だ。もうすこし時間も必要だ。

やはり自衛隊にでも入るかという結論になってしまう。とすると、一般曹候補生ではなく、二等陸海空士の方が、何かと都合がいい。例えば陸自の場合、一任期あたり約六十万ほどの金がもらえる。これは、すでに働いているならば、たいしたこともない金額だが、学生には結構な額だ。

何にせよ、大学を卒業する頃には、三十前後になるということには変わりはない。やれやれ。

Chromeで、Google AnalyticsのFlash表示のおかしい問題が修正された

2.0.180.0
Revision 15285

2.0.180において、Google AnalyticsのFlash表示がおかしい問題が修正された。

2009-05-12

誰かのためのテキスト化

中世ヨーロッパの暗黒時代と異なり、日本には、恐ろしく多くの文章が残っている。それ自体は良いことなのだが、問題がある。誰もまともに研究していないと言うことだ。網野善彦が指摘したように、有名な文章に書かれている歴史と、実際の歴史は異なる。だから、日本の歴史家は、もっと反故を読むべきだろう。

インターネットにより、我々は大量の情報を、瞬時に検索できるようになった。しかし、それは、情報がインターネット上にあればの話だ。インターネット上にない情報、すなわち、テキスト化されていない情報は、探すに由なし。何ぞ我が手を動かしてテキスト化せざる乎。

頭山満翁が、かつて人に語つたといふ話――
『福岡の醫者で、よほど豪い男があつた。名は忘れたが、その男が常に人にいふには、おれはどうしても高杉晋作にはかなはぬ。それも、どこがどうといふわけでもないが、いつもヤツには抑へつけられるような氣がして、自然負けるやうになる。これは不思議でならぬ。どう考へてみても、その意味が分からぬなどゝ、よく話してゐたものだが、その醫者が病氣にかゝつて、いよ〳〵助からぬといふ間際に、自身もすでに觀念した。そしてその時、あゝ、今の気分なら高杉には負けなかつたのだ。残念なことをした。高杉は常に死といふあきらめが、チャンとついてゐたものと見える、と、しきりに感嘆したさうだ』

清泉芳厳著、禅問答

この文章、そしてこの頭山満の談話は、ネツト上にひとつしか発見できなかった。面白い話なので、ここに引用しておく次第。

追記:上記の文章は、くの字点を使っているので、横書きではまともに表示されない。Unicode上では、くの字点には四種類あり、そのコードポイントは、五種類ある。これはどういうことか、まず、〱(U+3031)と、〲(U+3032)、がある。これは、一文字でくの字点を表現する文字である。それから、〳〵(U+3033, U+3035)と、〴〵(U+3034, U+3035)、がある。これは、二文字で組み合わせて、くの字点を表現するものだ。一文字の方を使おうかと迷ったが、そもそも、くの字点は二文字分のスペースを取るのが慣習になっているし、原文でも、当然そうであるので、二文字で表現する方を使うことにした。

追記2:なお、上記の追記は、くの字点を分かりやすく表示するために、<span style="font-family : '@メイリオ' ;" >を使っている。引用文にもこの修飾を使おうかと迷ったが、原文に忠実であることを考えて、使用は控えた(引用文をコピペして使用する際に、縦書きで表示すれば、意図通りに見えるわけなのだし)

問題は、この手元にある本も、おそらくこの文章については、どこからか引用しているはずなのだ。いったい元々の文章は、どの本なのだろう。頭山満の語録にあたれば見つかるだろうか。

宗教をナンセンスだと批判した高校教師、法廷で破れる

Breitbart.tv » Student Wins Suit After Teacher Says Creationism ‘Superstitious Nonsense’

カリフォルニアで、宗教は馬鹿げていて、創造論は間違っていると批判した高校教師が、生徒により訴えられ、しかも負けたという、ナンセンスにも程があるニュース。

The judge must have been smoking crack or something.

よかい

司令官「ただちに発進せよ!」
パイロット「よかい(了解)」

「了解」という言葉は、よくアニメや特撮映画に出てくる。ところで、日本語を母国語としない人は、この了解という言葉を、「よかい」、と聞き取ってしまうのだという。日本語ネイティブである私には、どう聞いてもヨとは聞こえないが、不思議なものだ。りゃ、りゅ、りょ、の発音は難しいとよく聞く。

昔、静岡県の西部に、竜洋町(りゅうようちょう)という町があった。今では、磐田市と合併してしまったそうだが(竜洋という地名は残っているはずだ)、この竜洋も、発音しにくいと外人がこぼしていたと、親父はかつて言った。

追記:似たようなことは、日本人にとってもある。例えば私は、sとthの発音の違いが分からない。もちろん、舌の配置であるとか唇の形であるとかの、音声学上のことは知っている。そういう理論はどうあれ、私の耳は、どちらも同じ音であると認識してしまう。これは、私にとっては、LとRの発音より難しい。Rに関しては、実際の単語を聞けば、「ああ、なんとなくだけど、舌を引っ込めているんだろうな」という感じはする。しかし、sとthに至っては、その違いがさっぱり分からない。

2009-05-11

論語読みの論語知らず

それにしても、論語の書写を始めてよりこのかた、漢文に強くなった気がする。ところで、

子曰、我未見好仁者惡不仁者、好仁者無以尚之、惡不仁者其為仁矣、不使不仁者加乎其身、有能一日用其力於仁矣乎、我未見力不足者、蓋有之矣、我未之見也、

赤字部分は、手持ちの岩波書店の論語には、「蓋有之乎」とある。いや、それちょっとおかしいだろ。文脈から考えて、乎はないだろ。ただし、注釈に、異本では也になっていると書いてある。しかし、これはどう考えても底本の誤りにしか読めない。なぜそのまま載せたのか。注釈に異本を載せるぐらいなら、何故最初から訂正しないのか。

Diam's の Cause à effet

この歌が気になっていたので調べてみたが、どうやらDiam'sという歌手が、フランス語で歌っている歌で、歌の名前は、Cause à effet、というらしい。歌詞は、その雰囲気からあまりいいものではないと予想していたが、だいぶ壮絶なものになっている。

ところで、この歌手、本名を、Mélanie Georgiades、というのだが、女性歌手らしい。この声と内容で女性とは。

2009-05-09

あまり良い出来ではない参考書

一般曹候補生の試験のため、参考書をひとつ買ってきた。一ツ橋書店の、迷彩柄の参考書だ。この参考書、あまり良い出来ではない。

まず、公式や解放の解説があって、しかる後に、練習問題が載っているのだが、この練習問題の答えの解説が、まったく説明していない公式を用いているものがよくある。例えば、三辺の辺の長さが与えられている三角形の面積を求めよという問題があったので、「お、これは余弦定理を使うのだろう。懐かしい、高校生のときにやったものだ」と、せっせと解いて、答えをみると、曰く、「ヘロンの公式より~」。たしかに、この本に書かれている公式だけでヘロンの公式を導くことも可能だろうが、そんな数学のセンスを持っている奴は、こんな本を必要としてはいないだろうと思われる。

また、x*x - 4 = -3|x - 2|、という方程式を解け、という問題で、答えをx=2のみとしている。しかも解せないのは、ご丁寧に長い答えの解説を載せているのだが、x - 2 < 0、のとき、x = 1, 2、とまで出しておきながら、x < 2よりx = 1は不適ときたものだ。1 < 2が不適ですか、そうですか。むしろ、x < 2のときは、x = 2、が不適だと思うのだが、それに関しては何も言っていない。まさか、1と2を間違えたのではあるまいな。

ちなみに、古文はもっとひどい。のたまはく、「古文は口語訳が出来れば楽勝!」。笑止。

2009-05-08

ひれ酒

久しぶりに独酌していると、ふと、ひれ酒が飲みたくなった。わざわざ居酒屋へ行くのも面倒だし、かといって、フグのひれというのはどこにでも売っているものではない。仕方がないので、ひれ酒をググってみることにした。その結果、以下のページを発見した。

@nifty:デイリーポータルZ:いろいろな魚でひれ酒を試してみた

Daily Portalは、時々面白い記事を載せているようだ。例えば、@nifty:デイリーポータルZ:-80℃で花やバナナを凍らせて、などだ。Google Readerで購読しておくことにしよう。

それはさておき、ひれ酒のひれというのは、別にフグのひれに限定しなくてもいいようだ。どの魚のひれでも、それなりにうまいらしい。しかし、ひれだけ、安く、都合よく、売っているわけではない。魚ごと買ってくるべきなのか。

さて、数学の勉強に戻らなければならぬ。この一ツ橋書店の参考書は、あまり出来がよくないのだが。

「ニシン」と「昆布」ッ! この世にこれほど相性のいいものが あるだろうかッ!?

ニシンの昆布巻きはうまい。

2009-05-07

C++の新しいtypedef方法、alias declaration

Template Aliasは、テンプレートに対するtypedefだけかと思っていたら、どうも、alias declarationといって、typedefと同等の機能も提供しているようだ。知らなかった。

using type1 = int ;
using type2 = int [10] ;
using type3 = type1 (*) ( type2 ) ;

その意味を説明するまでもないほど、とても分かりやすい。やはり、別名を最初に記述できるのが、分かりやすい理由だろう。この宣言を読めば、何の型かはともかくとして、とにかく、別名の名前は、簡単に分かる。しかる後に、右側を読めば、型が分かる。ちなみに、C++03では、以下のように書かなければならない。

typedef int type1 ;
typedef int type2[10] ;
typedef type1 ( * type3 ) ( type2 ) ;

typedefの文法の問題点は、別名が容易に分からないことだ。しかも、配列や関数になると、別名がどれかを探さなければならない。

まず、最も簡単なtype1の宣言でも、別名を後に記述しなければならないので、読みにくい。
type2は、配列型なのだが、とても読みにくい。
type3は、あの忌まわしき関数ポインタである。関数ポインタのtypedefは、初心者殺しと、私は勝手に呼んでいる。関数ポインタをtypedefする文法は、とても分かりにくい。慣れることはできない。

ところで、変数の宣言に、こんな構文が欲しいと、ふと思った。つまり、変数名が先に来る構文だ。もっとも、変数名が容易に分からないような複雑な型の場合は、typedefを使うだろうから、それほど問題ではないのだが。

関数ポインタの型に名前を付ける - Faith and Brave - C++で遊ぼう

2009-05-06

面白い動画

酔っぱらいらしき人を捕まえてみたものの、めちゃくちゃ芸達者な人だったというお話。しかし悲しいかな、やはり酔っていることに変わりはなかった。

ベートーベンの交響曲第5番をBGMに繰り広げられる夫婦喧嘩。ちゃんとオチまであるというお話。

今日は面白い動画がよく見つかる日だ

歴史観

あるアメリカ人曰く、「ヒロヒトには戦争責任がある。というのも、大日本帝国憲法は、「天皇ハ陸海軍ヲ統帥ス」と述べているではないか。天皇さえノーといえば戦争なんて起きなかったんだよ」

ああ、事そんなに簡単だったら、どんなにいいだろうか。天皇は自分の意志を持てないのだ。現在の天皇の立ち位置は、花山天皇の御宇に、すでに確立してしまっている。あのとき騙されて出家して以来、天皇にはまともな力はない。もっとも、それ以前も、天皇の実権は怪しいものだが。しかし、花山院は、それなりに各地御幸して、良い人生を送ったのではないか、とも思う。もっとも、一条天皇にいじめられたりしてたのだが。

追記:そのアメリカ人曰く、日本がフィリピンのようにならなかったのは、マッカーサー元帥、ひいてはアメリカ様のおかげらしい。げにげにありがたいお言葉と覚えて、うたてけれ。

XPモードを実行できるIntelのCPU

Windows 7のXPモードを使うには、プロセッサのサポートが必要である。仮想化を容易にするための、プロセッサ側でのサポートというのは、近年Intel, AMDの両ベンダーの間で、盛んに行われてきた。その成果が、一般ユーザーにも目に見える形で明らかになるのは、XPモードだろう。なにしろ、エミュレーターを使って、ホストOSからゲストOSを動かすという仮想化を行うのは、どのエミュレーターでも結構な知識が必要になる(分かってるよ。オタクのお前には簡単だとしてもだ、少なくとも、お前のおばあちゃんは使えないだろう)。XPモードは、一般人にも使いやすく作っているだろうと思われる。現在得られる情報で判断する限り、ユーザー側には、エミュレーターを起動しているという実感は、沸かないはずだ。

プロセッサは、Intel VTか、AMD-Vをサポートしている必要がある。ところで、AMDのCPUに関しては、AMD-Vをサポートしているかどうかは、型番から明らかなのだが、Intelの場合は、ちょっと面倒なのだ。なにしろ、名前が同じで周波数だけ違うと思われがちなCPUが、実はIntel VTのサポートの有無が違ったりする。そして、Intel自身、わかりやすいリストを公表していない。

How many Intel CPUs will fail the XP Mode test in Windows 7? | Ed Bott’s Microsoft Report | ZDNet.com

そこで、リスト化してくれた親切な人がいる。これを見ると、私のQ6600は、Intel VTをサポートしているようだ。Qore2Quadだけを取っても、Q6600/Q6700、Q9300/9400/9400S、Q9450/9550/9550S/9650 はサポートしているが、Q8200/8200S/8300/8400/8400Sはサポートしていないという、実に間違いやすい表になっている。今から、Windows 7のXPモードを見越して、IntelのCPUを買う人は、この表を参考にするといいだろう。

eitherとneither

A: I can't understand it.(分かんねぇな)
B: Me neither.(オレもだ)

この文章が直感で理解できない。というのも、Bも"can't understand"であるのならば、なぜ肯定で答えないのかということだ。

ところで、救いはある。というのは、英語ネイティブによれば、この場合、me neitherだろうがme eitherだろうが、どちらも "me too" 程度の意味にしかとらないという。ただし、neitherの方が、より自然に聞こえる、ということは、確からしい。

ブログは武器である

Slashdot | Bill Would Declare Your Blog a Weapon

ブログまで武器と定義されるような、危険な法律が合衆国で提案されているというお話。まあ、ヘンな法律が提案されることはままあるのだが、slashdotの最初のコメントが面白かったので紹介する次第。

Bill Would Declare Your Blog a Weapon
Sweet, the right to a blog would be protected by both the first and second amendments!

この新法では、ブログは武器と定義されてしまう。
そりゃいいことだ。それならば、ブログの権利は、一条に加えて、二条によっても守られることになるな。

補足:
米国の権利章典(Bill of Rights)の一条は、表現の自由の権利を保証するものである。二条は、武器を所有する権利を保証するものである。

この二条が、アメリカ合衆国では比較的自由に銃を買えることのそもそもの理由になっている。まあ、この武器と持つ権利というのには、歴史的な理由もあるので、なかなか変更しづらいところだ。

カモ

勉強に疲れたので一息いれるための動画。

漢字筆順ハンドブックに載っていない漢字

曰、而、の筆順が載っていない。これらは単純な漢字とはいいながら、やはりお手本が欲しいところだ。2810字載せておきながら、この二字を載せていないとはどういう見解だろう。

2009-05-05

夢日記

聞説、明惠は夢日記を能くしたという。夢日記を継続して付けていた変人というのは、あまり世の中にいない。京都博物館で、明惠の肖像画をみたが、実に不思議な絵になっていた。なにやらニョキニョキと生えた不思議な植物の上に座す明惠という構図になっている。明惠といえば、ああいうイメージなのだろう。

三角比の勉強に疲れて、つい、うとうとと居眠りをしてしまったのだが、夢に学生だった頃のことを見た。中学の友人が、馬鹿なことをしていた。高校の友人が、これまた馬鹿なことをしていた。ああ、願わくは、あの頃に戻りたいものだ。しかし、今さら学生に戻るというのは、現実的ではない。

実際、私はそれほど恵まれた学生時代を送っていたわけではない。小学校時代、毎日2kmの道を、歩いて学校に通わなければならなかったし、高校時代は、毎日10km以上の道のりを、自転車で登校しなければならなかった。それから考えると、いまは幸せだと言わざるを得ない。

人は、過去のことに関しては、「色々あったが、結局、昔は幸せだった」と考える傾向があると聞く。どんな境遇にあろうと、自分の人生を振り返って、最悪の人生だったと評する人間は、精神を病んでいる人を別にすれば、あまりいないらしい。つまり、意のままにならぬ住みにくい人の世では、こういう幸せ補正とでも名付くべき機能を有せずんば、まともに暮らしていけないのであろうか。

夏目漱石はこういう時、芸術が生まれると、草枕に書いている。しかし、私の詩心はないし、絵も能くしない。歌うとか、演奏するなどといった行為にも秀でていない。小説を書きたいという夢はあって、過去に試みたことがあったが、自分の筆の拙さを実感するだけであったし、今もまた、自分の一生を振り返って、私小説でも書こうという気にはならない。もっとも、純文学というジャンルの小説は、もはやとっくに廃れてしまっているのだが。

世の中はままならぬものだ。

Google Earthと古地図に関する騒動

Old Japanese maps on Google Earth unveil secrets

こんな騒動と検閲修正が、裏で起こっていたらしい。しかし、いまどき部落差別とかどこでやっているというのか。生まれてから一度も引っ越ししていない人というのは、今どのくらいいるというのか。

"If we suspect that an applicant is a burakumin, we always do a background check to find out," she said. She agreed to discuss the practice only on condition that neither she nor her company be identified.

この人物が存在すること自体、怪しいものだ。

現在の学校の歴史教科書では、そういう被差別民と言うことに関して教育することになっている。しかし、私も含めて全生徒は、そもそも実感がないのだから、「ハァ?」という感じでしかなかった。百年前は知らず、一体今どこで差別が起こっているというのか。

ただ、ひとつだけ思うのは、部落解放同盟のRaison d'êtreが怪しいということだ。すでに差別が見あたらない今、なぜ未だにあの手の団体が存在しているのか。既得権益を守るためだろうか。

テーブルが回るというのはこんぷれんで

No comprende : 分からん。語源はスペイン語のcomprender

The table have turned : 調子が変わった、流れが変わった、運が向いてくる/運に見放される等々、状況が変わるという慣用句で、大抵は良い方向に変わることを意味する。

吾不能書不

漢字のへんやつくりを練習しているが、不、という字をきれいに書くことが出来ない。どうしてもバランスが悪くなってしまう。今のところ、バランスがとれない難しい字は以下の通り。

不、飛、豕、母、毋、女、雨

なお、はつがしら、癶、は、以前は苦手だったが、筆順を見たら、上手になった。もっとも、この漢字の良いとされている筆順は、数通りあるのだが。

2009-05-04

美しい書き字とは何か

さて、美しい字を書くべく努力しているが、現在の日本では、どうも美しい字を書くのは難しいのではあるまいか。というのも、活字やフォントの弊害が大きすぎるように思える。印刷して美しい文字、低DPIのディスプレイで写して美しい文字、書いて美しい文字は、それぞれ異なる。これは少々問題だ。さっそくにも、書いていて美しい文字を学ばなければ。

良い字を書くにはよい紙を使うべき事

そんなわけで、一冊241円もする縦書きのノートを買ってきたのだが、これが実にすばらしい。何がすばらしいかと言って、万年筆で書いた時の、ペン先の滑りがいいし、インクのノリもいい。字が見違えるほど良くなった気がする。

なるほど、一冊数十円でたたき売られている安物ノートとの違いは、こんなところにあったのか。紙の質が違いすぎる。

この一冊241円もするノートは、実にすばらしい。ノートというものがこういうものだったとは知らなかった。もはや安物ノートは使えなくなりそうだ。

追記:一冊あたり78.7円のノートを買ってきた。これも、まあまあだ。やはり、無印良品のノートが粗悪すぎると言うべきか。

ぬこの動画

たまにはぬこの動画でも。

最近の文房具事情

ノートを買いに行って驚いた。縦線のノートがほとんど売っていない。これはどうしたことか。罫線のノートなら、腐るほど売っている。しかし、縦に線の入ったノートは、どこにあるか教えてもらわないと分からないほど、陳列棚の片隅に押しやられていた。これは一体どうしたことか。

見ると、「東大生が考えたノート」などというカマくさいPOPと共に、等間隔で点を打っている罫線ノートがあった。曰く、「グラフも縦書きもしやすい」。おいおい、最初から縦線のノートなら縦書きはもっと簡単だし、グラフなら、方眼紙を使った方がいいだろう。見れば、方眼紙も、探さなければ発見できないほど少ない。どういうことだ。

何件か文房具屋を回ってみて、悉く同じだったので、どうもこれは、最近の風潮なのだろうか。

何故、にわかに縦線ノートが欲しくなったかというと、字の練習をするためだ。万年筆を買ってより、字を書くということを、久しく忘れていたことに気がついた。そこで、字を学ぶことにしたのだ。

まず、本屋に行って、字の練習に役立ちそうな本を探してみた。一冊だけ見つかった。「漢字筆順ハンドブック」という、かなりコンパクトな本で、漢字の筆順を収録している。よく使われる漢字2533字に加えて、旧字なども277字、計2810字収録している本だ。しかも安い。560円+税である。迷わず購入した。

その上で、縦書きのノートを探したのが、上の顛末だ。ようやく一冊見つけて購入した。

これは一体どういう事だろう。横書きを前提としたコンピュータが発達したためだろうか。

ともかく、きれいな字を書く練習も始めよう。聞説、我が祖父は、まるで活字のような、きれいな字を書いたそうだ。読む人をして、印刷された字であると思い込ませたほど、字がうまかったらしい。

漢字の使い方というのはいい加減である

万年筆の書き心地がいいので、数学を勉強するかたわら、論語を書写している。ところが、手持ちの論語の本は、実に1963年に初版発行の、第三十三版である。実際に印刷されたのは、1983年だ。私よりも長生きしている本だと言える。この本、ひとつ難がある。多くの異本や解釈を、それぞれ載せようと試みているのだ。異本に差がある場合は、一番長いものを書いて、そのdiffを点で表している。また、朱子学の解釈をも載せている。これには問題がある。

朱子学、これほど、日本の義務教育の歴史教科書が正しく伝えていない学問はない。歴史教科書曰く、「当時、武士たちは、朱子学を能くした」と。これだけである。朱子学のなんたるかは、さっぱり伝えていない。

はっきり言おう。朱子学とは、学びて思わざりし暗愚が、文章をごった煮にして作り出したツギハギだらけのイデオロギーの塊である。歴史教科書は、このことを全然伝えていない。否、伝えていないどころか、当時、こんな主観的でオカルトめいた宗教を学んでいたことが、学問であるかのように伝えている。不思議なことだ。

追記:本題を書き忘れた。手持ちの論語の本では、吾十有五而志于學、となっているべきところが、吾十有五而志乎學、となっていた。手持ちの新字源には、たしかに、乎が、于や於の変わりに使われるようなことが、小さく書いてある。しかし、どう考えても、いい加減だ。

Chuck Norris doesn't paint with brush, he shoot


Paintball Chuck Norris Mural - Watch more Funny Videos

2009-05-03

食べ物の話

京都に住んでいて嬉しいことには、和菓子屋や漬物屋が多いということがある。全国的に有名になって、観光客が長蛇の列をなしている所もあるが、そういう所には行かない。その手の大衆向けの店は、だいたい高い上に大してうまくないと相場が決まっている。所詮、人間が作って人間が食べるものである。外れは少ない。普通の漬物屋で買う。

ところで、この流通が発達した現代においても、地方ごとの食べ物というのは、未だに残っている。というより、よそで食べる機会がないために、需要がないだけなのだろうが。

京都では、どこのスーパーでも、水菜が売っている。これは、言ってみれば、草である。何の味気もない草だ。アクもなければ、旨味があるわけでもない。ただ、たくさん売られている。

ハモもそうだ。そもそも、ハモなんて魚は、大してうまくもないのである。昔は知らず、今日では、もっとうまい魚はいくらでも手に入るのに、みな、ハモをありがたがって食べている。骨が細かい上に多すぎて取り除くこともできないので、骨切りといって、ものすごく薄くスライスし、骨ごと食べる。ところで、ハモ皮というものが、よく売られている。これは酒の肴に最適だ。

ところで、静岡では、黒はんぺんというものが、どこのスーパーでも売られている。というよりも、静岡で、はんぺん、と言った場合、この黒はんぺんをさす。主にイワシのすり身である。生で食べてよし、あぶってよし、しょうが醤油を付けるとなおよし。日々のおかずにも、酒の肴に最適である。結構おいしいのに、なぜか静岡以外では見ることがない。不思議だ。

馬鹿な人たちですね

エジプト人が、豚を片っ端から処分しているらしい。今回の新型インフルエンザは、未だに豚から見つかってはいないというのに、だ。なぜ最初に豚インフルエンザと呼ばれたかというと、ウイルスの遺伝子を調べた所、豚インフルエンザに一番近かったというだけの話だ。そんな状況で、早々と豚を処分する。馬鹿な奴らだ。

と思っていたが、これに否といわれた。その人曰く、「これはエジプト人が馬鹿なのではない。宗教が絡んでいるんだ」と。

つまり、豚は不浄なものであり、宗教を信奉する一部のエジプト人にとっては、豚を処分する大義名分ができたというのだ。

もしそうだとしても、依然、馬鹿な奴らであることには変わりはない。宗教? 笑止笑止。

「馬鹿な人たちですね」
須田画伯は笑いもせずにこういった。

司馬遼太郎著、街道をゆく

2009-05-02

幾何が幾何と呼ばれる所以

まずはじめに、ギリシャ語では、γημετρεωと呼ばれていた。これは、γηとμετρεωという単語の複合語である。英語では、それを訳して、geometoryと呼んだ。geoとmetoryの複合語である。中国語では、このgeoを音訳して、幾何と呼んだ。そんなわけで、日本人は幾何という言葉を使っているらしい。

最大のセキュリティ上のリスクは間抜けな人間の頭脳

http://img520.imageshack.us/img520/3691/40736589.jpg

セキュリティ上のリスクを最小限に抑えるため、われわれはITlabのWindowsコンピュータで、Internet Explorerの使用を禁止するものである。

ITLabのアカウントでは、今後当分の間、Internet Explorerの実行を禁止するものである。
ITlabのアカウントでは、FireFox 3.10をAd Block plusと共に使用しなければならない。

かかる変更に関する理由は、IEが脆弱性を持っているからではない。理由は、IEのいくつかのスレッドは、Firefoxより高い権限で動いているからである。
そのため、もしIEを通じてプラグインが狙われたならば、firefoxを通じての時より問題が多い。

最も高いセキュリティ上のリスクは、このITlabの奴らのアタマである。Windows XPでは、IEもXPも、そのユーザの権限で動作する。大抵のユーザはadmin権限を持ったアカウントでログインするので、IEもXPもadmin権限で走ることになる。一方、Windows Vistaの場合、通常は、IEはProtect Modeにより、low privilegeで走るが、Firefoxは一般ユーザ権限で走る。そこで、スレッドの権限だけでみれば、IEとFirefoxは変わらないか、むしろIEの方がリスクが低いことになる。

こんな奴らがセキュリティを考えているとは、おめでたいところだ。第一、ひとつのあるブラウザだけ使用させるのは馬鹿げている。

2009-05-01

きれいな字を書くためには

今まで、余の字を美しく書く能はざるは、己の腕及び指先の動き、拙きゆゑなりと看過せしが、これつくづく思案せるに、余、そも美しい字たるものを心得ざるがためならずんばあらず。ひとたび正しい字の配置を心得なば、字はこれ己の意のままなるべし。

vLiteを使うとVista SP2がインストールできなくなるというお話

世の中には、vLiteというヘンテコなツールが存在する。これは、Vistaのカスタムインストールディスクを作るという触れ込みのソフトウェアで、パッチ適用済みのディスクや、一部のコンポーネントを取り除いたディスクなどを作ることが出来る。まあ、何が便利というわけでもない。自称メモリ最適化ツール(笑)や、水子供養の壷と、なんら変わるところが無いのである。害がなければまだマシなほうで、メモリ最適化を謳うソフトウェアは、現在のメモリをスワップアウトさせた挙句、仮想メモリから物理メモリへの変換テーブルのキャッシュまで追いやってしまうアホくさい結果しか生まないし、何百万もする壷は、存在しない霊魂を慰むるに由なしと来ている。

http://support.microsoft.com/default.aspx/kb/968279

vliteを使うと、必要なコンポーネントがないというエラーメッセージが出て、Vista SP2のインストールに失敗するらしい。むべなるかな。必要なコンポーネントがないのだから。

追記:vLiteを使って何を削ったかは、関係ない。vLiteを使ってディスクを作成すると、そのコンポーネントが入っていないのだから。

漢字の書き順

万年筆を買ってより、字を多く書いているが、
與 傳
の書き順が分からなかった。

http://kakijun.main.jp/
このサイトが参考になった。

追記:そのほかにも、多くの漢字の書き順を正しく覚えていないことが明らかになった。鳥や良、浦といった漢字も、書き順を間違えていた。何たることだ。

追記2:かなりの漢字の書き順を間違って覚えている。これはまずい。

追記3:文字通り、右と左の書き順すら分からなかった。やれやれ。

Windows 7のXPモードについて

Within Windows
Secret No More: Revealing Windows XP Mode for Windows 7 - Within Windows
Windows XP Mode Internals - Part 1 (Overview) - Within Windows
Windows XP Mode Internals – Part 2 (Application Publishing Magic) - Within Windows

Windows 7には、Windows XP modeというものが提供される。この機能は、Windows自体とは別にインストールする必要がある。なんでも、もうすぐベータ版がでて、Windows 7 RTMリリース時までには、XP modeもまた、リリースできる予定らしい。ライセンス上の関係で、インストールできるのは、Professional, Enterprise, Ultimateのパッケージだけである。

仕組みとしては、ホストOSであるWindows 7に、エミュレータ上で完全なWindows XPを動かしサーバとして機能させ、RDPを使ってホストOS側に表示するものらしい。だから、ユーザ側からみると、エミュレーターを動かしているという実感は、あまり沸かないはずだ。XP mode上で動くプログラムのウインドウは、はたから見ると、ホストOSでそのまま動かしているように見えるはずだ。ただし、コモンコントロールなどの外観は、XPのものになる。

まあ、私は、こんな機能を必要とするクソなプログラムなど使いたくもない理想主義者なので、おそらくXPモードをインストールすることはないだろうが。

なぜ、MSがこんなセキュリティ上、管理上、ややこしい仕組みをわざわざ作り出したかというと、おそらくは、クソなプログラムに対して下位互換性を提供するのに疲れたのだろう。分からんでもないが。