東北地方太平洋沖地震から10日ほど経過してしまったので、こちらにも生存報告を

2011年3月21日 - 2:49 PM by Takayuki

3月11日の地震からすでに10日が経過した。私は自宅で地震に遭ったが、特に怪我などすることもなく、食料も十分に確保しており、健康にはさしたる問題もなく生活を続けている。ただし、自宅の本棚が見事に転倒してしまったため、ちょっと室内が乱雑になっている。この本棚はもともと不安定だったので、使用をやめて廊下に放り出している。

ライフラインについて。電気は、地震の揺れが続いている最中に停電したものの、13日の夜までに回復した。ガスはアパートに備え付けのLPガスを用いており、補給の不安があるものの、使用は可能である。水道は31日まで回復しないという見通しが示されており、飲み水や調理には近所の小学校で行われている給水を、トイレには溜めた雨水を使用している。入浴は別に頼る場所を探している。私の部屋の近辺は、学生や若い世代の世帯が多いせいか、実家や親類などに避難先を求めて出て行ってしまった人が多く、夜に出歩いてみると明かりがついていない家が多い。そのためか、給水量の制限が行われることもなく、少しだけ楽である。

私の研究室では、すでに一部の研究活動を再開している。研究室は書類が散らばった程度の被害で済み、コンピュータや測定器はほぼ健在である。ただし、壁面には地震があったことをはっきりと物語る大きなひび割れが走っている。4年生の卒業論文を形だけでも仕上げようということで、主として技術面からの指導を行っている。私がいる研究所の被害は比較的少なく、壁面のひび割れや照明器具の破損はあったものの、柱など建物の基本構造は無事なようで、立ち入りの制限などは行われていない。しかし、別のキャンパスは甚大な被害を受けており、大学としては4月末までの休校を決定している。この休校期間は現状での見通しであり、研究活動の再開については未だに不透明な感じだ。

以上、取り急ぎご報告まで。

追伸: 最近はこちらのブログにはあまり手をつけておらず、Twitterが主となっている。最近のつぶやきについては http://twitter.com/prof_takayuki を、過去のものについては http://twilog.org/prof_takayuki/ を参照されたい。

Pythonのクロージャはlambdaで書くらしい

2010年11月20日 - 1:17 AM by Takayuki

プログラム・コードの中の式を丸ごと取り替えられる構造にしたいとき(たとえば、ソート関数が比較の定義式を外から受け取れるようにしたい、など)、クロージャという概念が有効になる。実用的には、現在のスコープの変数を引き継いで関数を書ける、と考えればよい。

Pythonにおけるクロージャは、lambdaによる匿名関数の一種として使用するらしい。ちなみに、Pythonのlambdaは一般の匿名関数をかけるわけではなく、せいぜい1行で書ける程度の短いコードを匿名関数とするための構文である。Python 2.4.3で試してみた例は以下の通り。

>>> exp = lambda: x**2 + y**2
# exp() は、それを呼び出したスコープの変数xとyを参照する
>>> exp()
Traceback (most recent call last):
File "", line 1, in ?
File "", line 1, in
NameError: global name 'x' is not defined
# 現在のスコープに x が見つからないためエラーになる
>>> x = 1
>>> exp()
Traceback (most recent call last):
File "", line 1, in ?
File "", line 1, in
NameError: global name 'y' is not defined
# 現在のスコープに y が見つからないためエラーになる
>>> y = 1
>>> exp()
2
# 1**2 + 1**2 = 2
>>> x = math.sqrt(3) / 2
>>> y = 1.0 / 2
>>> exp()
0.99999999999999989 # ( sqrt(3)/2 )**2 + ( 1.0/2 )**2 ~ 1
>>> exp = lambda: x + y
# exp() を再定義
>>> exp()
1.3660254037844386 # sqrt(3)/2 + 1.0/2

人間の視野とディスプレイ

2010年2月24日 - 3:22 AM by Takayuki

人間の視野は横長にできているらしい。ある論文では、人間の視野について以下のように説明している。

人間の視野角は水平約200度,垂直約125度(下75度,上50度)に達する.しかし,視細胞の分布や眼球の構造上,中心ほど分解能が高く注意も向けやすいという性質があるため,人間の視野は注視点を中心とする幾つかのいびつな同心円状に分類される.情報受容能力に優れる有効視野は水平30度,垂直20度程度に過ぎず,注視点が迅速に安定して見える安定注視野は水平に60~90度,垂直に45度~70度程度である.

これらの値から、人間の視野にあったディスプレイのアスペクト比について、考察していきたい。以降において、アスペクト比はm:1の形で表現され、mの値でアスペクト比を代表させる。参考までに、4:3のときm=1.333、16:10のときm=1.6、16:9のときm=1.778である。さらに、黄金比ではm=1.618、白銀比ではm=1.414である。

まず、さきほどの引用における「有効視野」に対応するアスペクト比を計算してみる。人間の目のある平面から距離Rにある平行な平面を考え、それから有効視野に相当する分を切り出すと考える。このとき、その長方形の幅 x = 2R tan(30°) 、高さ y = 2R tan(20°) となるため、m = tan(30°) / tan(20°) = 1.586 となる。

以上の計算から、大まかにであるが、人間が「意味のある」視覚情報を手に入れられる視野は、16:10に近いアスペクト比を持つということがいえる。となると、最近流行しているらしい16:9のディスプレイは、横に長すぎるかもしれない。さらに、16:10の比率は黄金比にも近いため、多くの人にとって均整が取れているように感じられることだろう。

しかし、以上の考察には問題がある。必ずしも、視野を覆うようなディスプレイが望ましいわけではないのだ。Webブラウジングなどで文字を表示することを考えてほしい。試してみるとお分かりいただけると思うのだが、文字を読める視野は想像以上に狭い。ゆえに、視野は画面のごく一部をなぞることになるから、文字を表示するディスプレイのアスペクト比について、視野から考察することはあまり意味を成さないはずである。

コンピュータ上でよく用いられる、横組みの文字列について、望ましい表示方式を考察してみよう。まず、横方向に長い組み方は望ましくないと考えられる。なぜならば、ある行の終わりから次の行の始まりまで、視線の移動が大きくなるためである。雑誌やカタログなどで段組をみることがあるが、これは横幅を抑えるために有用である。逆に、縦方向の長さは問題にならない。次の行に移るためには、行の高さ分だけ視線を移せばいいからである。

したがって、横組みの文字列は、行の文字数は押さえながら、行数を増やした縦長の組み方が望ましいことになる。そのことを示すように、横組みが歴史的に用いられてきた欧米の印刷物では、縦長の紙を用いるのが一般的である。

コンピュータ上での表示を考えれば、横方向の表示は画面幅もしくはウィンドウ幅で制限して、縦方向はスクロールで対応させることになるだろうが、この場合、縦方向の表示範囲が狭すぎると、頻繁にスクロール操作が生じてしまい、利便性を損なうことになってしまう。

ゆえに私は、ディスプレイの縦方向の画素数が多いほうが望ましいと考えている。Webページとかテキストとか、ひとまとまりの情報をできるだけ少ないスクロール数で見ようとすれば、縦画素数は多くあってほしい。とはいえ、縦長ディスプレイを望むほどではなく、横方向は複数のウィンドウを並べるのに有用だから、ワイドディスプレイが嫌いというわけでもない。

しかし、ワイドディスプレイ、とくに16:9ディスプレイが多くなることで、縦方向の画素数が犠牲にされているように思えて、気になっている。私個人の好みでは、縦方向に1000px程度はほしいところなのだけど、16:9ディスプレイでそれを満たすのはFull HD しかなく、横方向は1920pxにもなってしまう。

デスクトップで使う限りでは、横に広いディスプレイでも問題ないのだが、ノートパソコンではそうもいかない。ディスプレイの大きさが本体サイズを決めてしまうので、縦解像度を維持したままワイドにすると、横方向に伸びて結構大柄になってしまう。見た目の美しさも気になるところで、4:3なら(ちょっと差が大きいが)白銀比に、16:10なら黄金比に近いのだけど、16:9ではだいぶ横長に見えてしまう。

…なんだか酒を飲みながら書いていたら長くなってしまった。図をつければ読みやすい記事になろうが、この酔っ払いはそれをあきらめた。というわけで、とりあえず投稿します。

リコリス菓子の話

2010年1月13日 - 3:01 AM by Takayuki

ハリボー(Haribo)というドイツの会社がある。世界で初めてグミを売り出したところで、現在では世界一の生産量を誇っているようだ。同社のグミは、大学生協での取り扱いがあったせいか、私の友人たちの間ではよく知られた存在である。ドイツのものとはいえグミはグミなので、日本でよく見かける Goldbären とか Happy Cola なら、多くの日本人は違和感なく食べることだろう。しかし、Schnecken はそうはいかないようだ。

Schnecken (シュネッケン) とはドイツ語で「渦巻き」程度の意味だと思っていただければよい。その名のとおり、細長いグミを渦巻状にしたものなのだが、色が真っ黒い。このグミ、渦巻きを巻き戻しながら食べるものらしいのだが、私は1巻分をまとめて口に入れてしまったことがある。薬くさいというか、形容しがたい香りが口いっぱいに広がり、吐き出さざるを得なくなってしまった。

この独特の味は、リコリス(スペインカンゾウ)の根に由来する。ヨーロッパでは伝統的に、リコリスの根を菓子用の甘味料として用いており、そういう菓子をリコリス菓子と総称する。黒い外見もリコリス菓子に共通する特徴で、焦がした糖蜜で着色しているらしい。

Schnecken でも私には強烈だったが、北欧にはリコリスと塩化アンモニウムで作る、salmiakki (サルミアッキ) と呼ばれるキャンディがある。リコリスに塩化アンモニウムの塩味とアンモニア臭が加わった、非常に独特な風味を持つという。フィンランド語の名前の語源はそのまんま sal ammoniac (塩化アンモニウム[ラテン語])であり、英語では塩味に注目して salty liquorice と呼ぶ。北欧における伝統的菓子で、年齢を問わず食べるものらしいが、日本人の実食体験者には「世界一不味いキャンディ」として知られているとか、いないとか。

こんな記事を書いていたら、Schnecken をまた食べてみたくなってきた。どこで売ってるものやら。

そうそう、root beer (ルートビア) にもリコリスが含まれているらしい。この root beer、中国人の留学生さんに “ill tasted” な飲み物だと紹介して飲んでもらったら、納得した様子だった。似たような飲み物が台湾や東南アジアにあるようだ。

Stanford大学のアナログ回路系講義

2009年9月14日 - 8:03 PM by Takayuki

私は日本の大学にいながらも、担当教員の意向で、研究内容に関する基礎知識を Stanford 大学の講義資料から得てきた。さすが Stanford というべきか、よくできた講義資料であり、必要な事項は相当に網羅されていながら、内容はわかりやすい。多くの人々には、英語で書かれていることが大きな障害になるかもしれないが、その障壁を越えてでも読んでもらいたい。何より、寛大にも講義資料を無償公開している教員たちがいるのだから。

本稿では、私が学んだ Stanford の講義資料を紹介する。誰かの役に立つといいのだけど…。

  • EE214 Advanced Analog Integrated Circuit Design
    Prof. Boris Murmann と Prof. Bruce Wooley による、アナログ集積回路の設計に関する講義である。私が学んだのは昨年度(2008年度)のもので、その時はProf. Murmannが単独で担当しており、MOSFETを用いたオペアンプの設計について非常に分かりやすく解説してくれていた。Prof. Wooleyと共同で担当するようになった今期のものは、バイポーラトランジスタを用いた説明が多くなったものの、余すことなくおさめられた解析の流れは、見事なものである。
  • EE315A VLSI Signal Conditioning Circuits
    Prof. Boris Murmann による、集積回路によるアナログフィルタに関する講義である。実はまだ大まかにしか読んでいないのだけど、Prof. Murmann らしい丁寧で詳細な解説がなされていて、わかりやすい。
  • EE315B VLSI Data Conversion Circuits
    Prof. Boris Murmann による、集積回路によるA/D変換・D/A変換に関する講義である。私が学んだのは、昨年度開講されていた、これの前身に当たる講義であり、内容はほぼ一致している。近年用いられているA/D変換器の方式について、網羅的に記述されており、原理から設計までひととおり理解することができる。

とりあえず、これらを読むだけでも、アナログ回路設計の基礎から、実用的なフィルタ回路、A/D変換器、D/A変換器(実質的には、A/D変換・D/A変換はフィルタの一種であるが)の設計についてまで学ぶことができるだろう。後はRF回路について学べば、現在アナログ技術者に求められる知識のほとんどを得たといってよいだろう。これらは、研究レベルの基礎教育にはふさわしい資料といえるが、これに匹敵するレベルの日本語資料がないことが悔やまれる。

まめちしき~ (in English)

2009年9月13日 - 8:30 PM by Takayuki

『あずまんが大王』のアニメに、大阪こと春日歩が「豆知識」を披露するシーンがある。実はダジャレなのだが、それに気づかれずに文句をいう、という話になっている。

大阪: 豆知識。なあ、ともちゃん…
とも: はぁ
大阪: 枝豆は大豆やねんで。
とも: へー。
大阪: あかんわ、ともちゃん。
とも: え?

大阪: 豆知識。なあなあ…
よみ: え?
大阪: 枝豆は大豆やねんで。
よみ: へぇー。
大阪: ちゃうねん。
よみ: は?
大阪: 「それは豆知識やのうて、豆の知識や」、言うて欲しかった。
よみ: ああ…ごめん。

日本語の言い回しにもとづいた表現なので、翻訳は簡単にはできないと思われる。

そこで、『あずまんが大王』の英語版を見てみると、以下のような話になっていた。

Osaka: I’ll bring you grains of truth. Hey, Tomo, listen it up.
Tomo: Huh?
Osaka: Did you know rice is the most popular grain in the world.
Tomo: Wow.
Osaka: You’re not good, Tomo.
Tomo: Uh?

Osaka: I’ll bring you grains of truth. Get this, Yomi.
Yomi: Huh?
Osaka: Rice is the most popular grain in the world.
Yomi: Really.
Osaka: You’ve got it all wrong.
Yomi: Uh?
Osaka: No, no, see, what you were supposed to say was, “that is not grains of truth, that’s truth about grain.”
Yomi: Oh. Sorry.

見事に訳されている。「豆知識」は日本語の言い回しだが、”grains of truth” としてやれば、「ちょっとした事実」としてふさわしい訳語になるわけだ。穀物(grain)の知識など簡単に見つかるから、ネタ全体の流れもほぼ原文に一致している。

ところで、大阪の「大阪さん弁」は、テキサス訛りとして表現されていた。日本語版で大阪を演じる松岡由貴さんは大阪市の出身で、英語版のKira-Vincent Davisさんはヒューストン出身である。ついでに、Kira-Vincent Davisさんは『うたわれるもの』のエルルゥ役、『機動戦艦ナデシコ』のホシノ・ルリ役を演じており、「しっかりした女の子」のイメージがあったので、大阪を演じるのはちょっと意外だった。しかし、『エルフェンリート』のルーシー/にゅう役も彼女だから、「にゅう」の方を演じたことを考えれば、さして無理はないのかもしれない。

アラル海 – 死にゆく大湖

2009年9月10日 - 9:30 AM by Takayuki

カザフスタンとウズベキスタンにまたがる、アラル海(Аральское море)と呼ばれる湖がある。中央アジアの乾燥地帯を流れる大河であるアムダリヤ川(آمودریا‎ / Āmū Daryā)とシルダリヤ川(سیردریا / Sīr-Daryā)が流れ込んでいる。両河川はイラン地域や中央アジアの歴史に時折登場するから、名前を知っている人も多いことだろう。

乾燥地帯を流れる河川や湖沼にありがちなように、アラル海に流入する河川は頻繁に流れを変えたことから、この湖は過去数千年の間にも拡大・縮小や移動を繰り返していた。この変動の激しさにより、アラル海は流出河川を持たず、流入した水は濃縮されるしかないにもかかわらず、湖水の塩分濃度は低いレベルに抑えられていた。

アラル海の転機は1940年代に訪れる。スターリン政権下のソヴィエト連邦は、アムダリヤ川とシルダリヤ川を利用して灌漑を行い、さらにアムダリヤ川の上流には運河を建設した。灌漑は乾燥地帯を稲作と綿花栽培が行える農地に変えるが、両河川の流量を大きく減らした。

乾燥地帯での灌漑は、土壌の塩分集積を進行させ、農地は早くも塩害で放棄を余儀なくされてしまう。また、流入河川の流量の減少は、アラル海の推移を下げるのみならず、塩分濃度を上昇させ漁業を壊滅させた。

1853年に出版された、中世からの安定状態にあったアラル海の地図を示そう。

この150年後のアラル海の衛星写真は、痛ましいほどに縮小した湖の姿を示している。写真に描かれた黒い線は、1960年当時のアラル海の湖岸線を表している。かつての広大な湖は、北の小アラル海と南の大アラル海に分断され、大アラル海も東西に分裂する危機にある。南から流れ込んでいたアムダリヤ川は途中で消失しており、シルダリヤ川は小アラル海に流れ込んでいる。

2003年8月のアラル海の衛星写真

その後、周辺諸国は、シルダリヤ川が流入していることから回復の見込みがある、小アラル海のみを救済することを決め、小アラル海を分断する堤防が2005年に建設された。同時期に大アラル海は東西に分裂している。2008年8月におけるアラル海の衛星写真を示す。干上がった部分は白くなっているが、おそらく塩分などのミネラルが析出しているのだろう。

2008年8月のアラル海の衛星写真

今年の8月に、最新の衛星画像が撮影されている。東アラル海はほぼ消滅し、西アラル海もさらに細長い形状になっている。

2009年8月のアラル海の衛星写真

参考資料(画像引用元)

不完全なZIPファイルの救出法

2009年9月7日 - 3:20 AM by Takayuki

時々、壊れたZIP書庫ファイルを見つけることがある。中身を救出する手段を探していたら、DiskInternals ZIP Repair というソフトが有用らしいことがわかった。

教えて君.net の紹介記事によれば、破損ZIPファイルに強いLhaplusでさえ解凍できない書庫からでも、ファイルを回収できたという。

(Webページの)URLに含まれる大文字について

2009年7月16日 - 5:39 AM by Takayuki

先日、講義のレポートを提出したのだが、提出はメールではなく担当教員のWebサイトにアップロードする方式だった。しかし、提出先ページを見に行こうとしても、404エラーが出てしまう。原因は、URLに含まれる大文字の部分を小文字で打ってしまっていることだった。世界で多数派を占めるであろう、UNIX系OSで動作している、ApacheやLighttpdと言ったWebサーバでは、URLの大文字と小文字を区別するのが普通である。

WebページのURLを部分に分解しながら、理解を深めていこう。以下のURLを考える。

http://norstrilia.com/hitton/kittons.html

このURLは、以下のように分解できる。

スキーム(scheme) http
ホスト名(host name) norstrilia.com
パス名(path) /hitton/kittons.html

スキームは、これがWebページを表すURLであることを示している。ほかにもftpやらmailtoというスキームがあるので、興味がある向きは調べてみると良いだろう。

ホスト名は、目的のデータが保存されているコンピュータの名前を表す名前で、ドメイン名(~.comとか)かIPアドレス(130.34.~というやつ)を用いる。ドメイン名は、大文字と小文字を区別しない(RFC 4343)。適当なWebサイトを開いて、URLの何文字かを大文字に書き換えても、問題なくアクセスできてしまう(たとえば、http://www.7andy.jp/http://www.7andY.jp/)。

パス名は、ホスト名が指すコンピュータの内部における、データの位置を示す。スラッシュ(/)はディレクトリ(フォルダ)の区切りを表し、一番最後のスラッシュから末尾までがファイル名である。たとえば、”/old/north/australia.txt”は「oldディレクトリの中のnorthディレクトリの中にあるaustralia.txtと言うファイル」を表している。Windowsユーザにはなじみが無いかも知れないが、”/”は最上位のディレクトリを表し、「ルート(root)」と呼ぶ。

先に述べた「多数派」のWebサーバ、たとえばLinux上で動くApacheでは、パス名の大文字と小文字は区別される一方で、Windowsで動作するWebサーバは区別しない。これは、Webサーバが動作しているOSの「作法」に従っている。

Webサーバは基本的に、コンピュータの中にある特定のディレクトリに、外からのアクセスを提供する。たとえば、www.thinkblue.jpというWebサーバで/var/www/を公開ディレクトリに設定すると、http://www.thinkblue.jp/count/two.jpgを見ようすれば、/var/www/count/two.jpgの中身が見える。あるいは、alpharalpha.netがC:\public_html\を公開ディレクトリに設定すれば、http://alpharalpha.net/cats/cmell.htmlはC:\public_html\cats\cmell.htmlを指し示す。ここで、もしファイル名/ディレクトリ名の大文字/小文字が区別されないと、当然URLのパス名でも区別しないことになる。具体例をあげれば、UNIX系では/drunkboat.logと/DrunkBoat.logは完全に区別されるが、WindowsはC:\nothingatall.txtとC:\NothingAtAll.txtを区別しない。Windowsについて厳密に言えば、ファイル名/ディレクトリ名では区別されているものの(thaladywhosailedthesoul.docというファイル名をTheLadyWhoSailedTheSoul.docに変更することが出来る)、アクセスするときには区別しないことになっている。

原理的な説明はここまでとしよう。「URLには大文字/小文字の区別があるか?」という質問に対する、正確な答えは「状況による」であるが、現実的な答えは「ある」、ちょっと細かく言えば「.comとか.netとか.jpよりも後ろにはある」ということになる(ドメイン名にわざと大文字を混ぜて書くことは、特にラテン文字を使う言語圏では多くあるから、ドメイン名に大文字/小文字の区別がないことを示すのは重要である)。

今回の講義レポートの提出では、提出先のURLはプロジェクタで映示され、聴講者はこれを手書きでメモしていた。こういう状況では、大文字/小文字の混乱が起こるのは避けられないだろう。さらに、UNIX系OSの通例で大文字ファイル名はあまり使わないから、URLに大文字が混ざっていることも少なく、「URLはたいてい小文字である」という意識を持っている人も多いだろうから、なおのこと間違いが増えそうだ。「大文字に注意せよ!」との注記が欲しいところである。

おまけ: 今回、文中で使用した「実在しない」ドメイン名やファイル名について、ネタ元を探してみると楽しいかもしれない。

理髪店のおばさんと伊坂幸太郎

2009年6月2日 - 2:10 AM by Takayuki

一昨日のことだが、かなり伸びすぎて鬱陶しくなっていたので、いつも行っている理髪店で髪を切ってもらった。そこのおばさんの話が面白いので、私の部屋からはちょっと遠いのだが、ついつい足が向いてしまう。

おばさんには、今回なかなか興味深い話を聞かせてもらえた。なんと、もはや有名になった仙台在住の作家、伊坂幸太郎氏がおばさんの常連客であったらしい。それどころか、おばさんの娘のお友達が、今では伊坂氏の奥様となっているらしい。意外なつながりを見つけてしまった。

他にも、伊坂氏の人柄についてとか ― おばさん曰く、「彼は《喜怒哀楽》の《怒》が抜けた人」らしい ―、もろもろの話をしてもらったのだけど、あまり書くと何より伊坂「先輩」に迷惑なのでやめておくことにしよう(ああ、《伊坂》だと「先輩」とつけるわけにはいかないかな?)。まあ、それほどたいした話ではないと思うが…。

留意点: 筆者は酩酊状態です。