2014年5月29日木曜日

✕って…

/usr/share/i18n/charmaps の UTF-8.gz に、UTF-8の文字の幅の情報が入っているのだが、欧州仕様なので極東用にUTF-8-CJKというのが作られたようだ。
これを落としてきて、文字幅取得プログラムを書いた。
動作確認のために、自分で使いそうな文字の幅を調べてみたら、おかしな文字があった。
'✕'が半角として認識される。
実は、GoogleのMozcで、「かける」と入力した時に出てくるやつは、E2 9C 95@UTF-8(U2715:Multiplication X)という文字だった。
昔ながらのJISの乗算記号は、C3 97@UTF-8(U00D7: Multiplication sign、817E@Shift_JIS)で、なんと別の文字だった。
「乗算のX」よりも、「乗算の記号」と呼ばれるものの方がメインだと思うが、どうだろう。
Googleは何故こんなことをしたんだ。世界共通という事だろうか?

Mozcの"Character Palette"で、IPAフォントのU2715の近辺をしらべると、倍角文字と思われるグリフがたくさん入っている。
しかし、UTF-8-CJKでもその辺の文字は幅2にはなっていない。
おそらく、元々Shift_JISに存在していたもの(U00D7)は倍角文字だが、U2715はShift_JISに該当するものがないので、欧米と共通の扱いという考えで、半角なのだろう。
(MSゴシックで見ても倍角だった)
計算式を半角英数で書くのなら、演算記号も半角英数に揃えたいだろう。そのように考えれば、乗算記号も半角となる。
(過去において、半角英数と倍角の乗算器号を混ぜて書いても、見た目の不自然さはほとんど無かったが…) ギリシャ文字は計算式によく登場するが、これはJISの頃から倍角文字だ。しかし、ギリシャ文字は欧米では半角である。
計算式に登場するものをすべて半角に揃えるとなると、ギリシャ文字も中途半端な扱いになってしまう。

簡単そうに見えて、奥が深い。
どのように扱うのが正しいことなのだろう。さらにわからなくなった。

P.S.
このU2715の扱われ方は、ソフトウエアごとに異なるようで、geditでは倍角、Gnome-Terminalでは半角になっている。
geditは可変幅フォントを可変幅として表示できるし、文字をボールドにしただけで文字幅が変わるので、倍角で扱っていると言うよりも、グリフの幅(フォントの幅)で扱っているのだろう。

2014年5月23日金曜日

①△□ の幅

1980年代に、パソコンで漢字が使えるようになった。
はじめのウチは漢字の入力、表示、印刷するだけでも苦労があったので、使わないことも多かったが、NECのPC-98が出た頃から、比較的確実に漢字が使えるようになってきた。

漢字というか、日本語文字セットは文字数が多いので表現力が高い。
①、△、□、♪、などなど、様々なグリフがある。
ソースコード内のコメント等をこの高い表現力で書けば、テキストだけでわかりやすい文書にすることもできる。
(文書を構成する能力が重要だけど)
という訳でしばしば、そういった特殊な文字を使ってソースコードのコメントを書いてきた。

自宅ではUbuntu12.04を使っている。
先日、新しいLTSの14.04が出たが、Upgradeは半年ぐらい様子をみてからにする予定だ。
面倒なことにUbuntu上でいくつかのアプリでは、これら特殊な文字の文字幅がメチャクチャになる。
具体的には、gnome-terminal上で一部の全角文字が、半角の大きさとして扱われてしまうのだ。
(geditでは問題ない)
なんでこんなことになるのかを調べた。
なんとUnicodeにするときに、一部のグリフがヨーロッパのものと混ざったようで、欧米では半角文字と同じサイズで、日本では全角文字になる文字があるのだ。
(そもそも欧米に全角/半角の概念はないので、全部同じ文字サイズになる)
たとえば、■(黒い四角)で図を書いたとしよう。このとき、日本での表示と海外での表示が違ってしまうのだ。

日本だけの閉じた世界なら、全角/半角を昔ながらの方法にあわせて扱ってしまえばいいが、Unicodeがそれでいいのか?
世界中で同じ文字体系が使えるはずだったのではないのか?

崩れないものを書きたければ、ワープロ等で書いて、PDFにすればいい。
それでもいいだろう。常にソースコードとPDFを一緒にするのなら。
しかし、ソースコード内に書いておきたいのだ。

日本語でコメントを書いた時点で、海外とやり取りはほぼ無理になる。
開き直って、日本語文字セットを使ったものは、やり取りは無いのだから、気にしないという選択もありかな。
自分にさえわかれば、とりあえずいいだろう。

ただし、新たに書くものについては、特殊文字は使わない(減らす)ようにする。

2014年5月21日水曜日

咳がでる

なんか今年はお腹を壊したり、風邪をひいたり、忙しい。

GWにセブに行っていたのだが、油断して鼻風邪をひいていた。
鼻が詰まれば、耳が抜けなくなる。
最終日は浅いので、けっこう辛かった。

帰ってきて、次の週も鼻風邪で耳がつまりっぱなし。
日本でも潜ろうと思っていたのだが、耳がこれでは無理だ。
ずっと耳が詰まっているので、先週病院に行った。

先生は、かなり忙しかった様子で、2時間待って、5分診察。
耳、喉、鼻を見て「薬を出しておきます」で終わり。
なんだそれ。と、思いながらも、病院嫌い。早く帰りたいので、薬局で薬を買って帰ってきた。

帰ってすぐに薬を飲むと、よく効いた。
次の日の朝には、ほとんど治っていた。
「この様子なら、月曜には完治だな」と、油断していたら、日曜の夜にピンポイントで喉の奥が痛い。
そして月曜。まだ喉の奥が強く痛む。そして、咳が出るようになった。
耳は完全に抜けているので、先週までの風邪とは訳が違う。
そして、あんなに効いていた薬が全く聞かない。抗菌剤も入っているのに効かないという事は、ウイルス性の疾患か?

ビートルズのポール・マッカートニーさんの公演が、中止になったそうだ。
ポールさんもウイルス性の炎症だそうだ。
もしかしたら、同じ病気ではないか?

日曜の夜から72時間が経過。さすがに、回復してきた。
明日には、ほぼ完治だろう。
花粉症が終わったと思ったら、2つの風邪を連続して引いて、もううんざりだ。

関係ないが、MERS=中東呼吸器症候群 が中東だけでなく、欧米でも流行り始めているらしい。
致死率 40〜50%とも言われる極めて危険な病気だ。
現在、感染方法も、感染経路も、予防方法も、治療方法もわからない。
そんなものがパンデミックにでもなればやばい。

2014年5月19日月曜日

トルコ料理を食べてきた

先週、トルコの炭鉱で事故があり300人ぐらい死んだそうだ。

イラン・イラク戦争の時、日本はイラクに取り残された日本人を救うことができなかった。
民間飛行機+民間パイロットで、戦場での救出作戦を行おうとしたが、安全が確保されないとの理由により、組合が拒否。
民主主義国家が、民間人へ命令するというのも無理がある。
じゃ、自衛隊は?
その頃、戦後から一貫して、アジア諸国への挑発や刺激とならないように、自衛隊の海外での活動を一切許していなかった。
アジア侵略の歴史を深く反省し、海外への侵略行為と思われるような行動を断固として拒絶してきた。それについて考えるだけでもタブーと言った感じだ。
たとえ日本人を守るためでも、平和ボケと言われようが、自衛隊の海外派遣は日本では許されざる事のように扱われていた。
自衛隊派遣について、国会で審議されることとなるが、タブーとも言える議題が、すんなりまとまるはずもない。
ウダウダしている間に、時だけは過ぎていく。
イラクに取り残された日本人たちが、ますます危険になる。

そんなとき、トルコ共和国が、飛行機でイラクに残された日本人を救出してくれたのだ。 なんて、いい国なんだろう。
気は優しくて力持ち。理想のヒーロー像じゃないか。

トルコになんかあった時は、募金とかあれば、多少なりともお金をだそうと思っていた。
地震があった時にも、募金があったので、お金を出した。
今回の事故でもお金をだそうと思った。どうせならトルコ人に直接渡そうと考えた。
ここは、日本の首都圏。首都東京は、世界最大の都市でもある。
世界中の人々がいるはずだ。
近所でトルコ料理店を探すと、やや遠いが自宅から7.5kmの距離に発見した。

トルコ料理 Ancyra

ここへ行って、トルコ料理を食べて、お店の人にお金を渡してこようと考えた。

お店に入ると、真面目そうなトルコ人が迎えてくれた。
「どうぞ奥へ」と流暢な日本語で話しかけて来た。言葉が通じなかったらどうしようと思っていたが、問題なさそう。

オスマントルコ時代、世界中の美味しい物が集められ、トルコ料理が形作られた。
メニューを見ただけで、美味しそう。見た目にも美しい。
サラダ、ケバブの盛り合わせ、ビールを注文した。
サラダは写真を取る前にうっかり食べてしまった。途中で気がついて写真をとった。


ラム肉が入っていると聞いていたが、癖がなくとても美味しかった。

食事をしながら「先週300人が炭鉱で死んだみたいだけど」って聞いたら、「みんな保険に入っているから大丈夫です。」「女性は仕事ができないので、男は必ず保険に入ってます。」という返事。
厳しい土地だからこそ、備えあれば憂いなしといったところか。

「イラン・イラクの時、日本人を助けてくれてありがとう。」と話したら、 トルコも日本も平和を大切にする国です。平和が一番いい。戦争はよくない。
戦争をしたがる人たちは、殺すことも死ぬことも無く、武器を売って儲けてる。
殺す人も、殺される人も、なぜ殺すのか?なぜ殺されるのか?わからずにそうなる。失うばかりで、何も残らない。
そう言いながら、しかめ面をしていた。

帰りる時に「このお金をトルコに送って。」っと言いながら、代金とは別にお金を渡そうとした。
すると「保険があるから、大丈夫です!ありがとうございます。」と断ってきた。
卑怯者なら、着服するだろうに。
トルコ人は、遠慮深く、真面目な人なんだなと感じだ。
食事も美味しかったし、いい気分にもなれた。