4 : 18 グーグルに偽ラテン語版 pig latin

← 4 - 17 p↑ もくじ i 4 - 19 n →

アフガン日記: 1月20日

2002年 1月21日
記事ID d20121

国境を越えて大量の難民がパキスタンへ避難

Af-Pak国境、ペシャワル付近、概略図

20年ほど前に米ソの代理戦争を負わされ、「国連」や周辺諸国の複雑な利害のために内戦を延長させられてきたので、大量の難民が発生した。異常気象のための避難者もあった。2001年にふたたび大国が軍事介入したため、さらにたくさんの普通市民が国外へ避難した。三角印は難民キャンプ。一国から流出した難民数としては史上最大という。
資料: UNHCR: Afghanistan as of September 18, 2001

アフガン日記: 2002年1月20日

久保田 弘信

9:00イスラマからペシャワールへ。今回は初めてちゃんとした車。今まではローカルバス。ペシャワールが近く感じた。しかし、地元の人とのふれあいがないのは寂しい。僕は両方経験できて幸せだ。常にチャーターした車で移動している大手のメディアには決して見えてこないものがあるから。

年末から僕の友人のアジーズ(ナッサルバールに住んでいる)に連絡が取れていない。今日も何回も連絡を取ろうとしたが駄目で、とても心配で・・サダルに住んでいるアフガンジンの友人ハビーブにナッサルバールに行ってもらうことにした。本来なら一緒に行きたいのだが、空爆後外国人のナッサルバールへの立ち入りは禁止されていて、入ることができない。一人の友人に会いに行くこともできない、そんな政治の壁に腹が立つ。

ナッサルバールの写真

ナッサルバールの風景、2001年10月末撮影
64KBイメージのサムネイル

19:00ハビーブがアジーズを連れてホテルに来てくれた。アジーズの無事な顔を見て不覚にも僕は思いっきり泣いてしまった。アジーズは前からいつナサッルバールを追い出されるかわからないと言っていたので・・どこか違うキャンプに行ってしまったのかと・・心配した。彼にとってはナッサルバールが第二の故郷なのだ。20年住み慣れたところをいつ追い出されるかわからず、遠方からの友人(僕)を自宅に招待することもできない、彼は生活には困っていないが、・・難民として別の苦しみを背負っている。

この記事のURL

テキスト版省パケ版XML版


久保田 弘信: アフガン日記

2002年 1月20日
記事ID d20120

2002年1月18日、ふたたびアフガニスタンへ向けて出発。クエッタに行きサマリー難民キャンプに日本の援助をもっていき、その後カンダハル、カブール、マザリシャリフを目指す。1月19日、パキスタンのペシャワール。今回は現地でのローミングに成功して、日本のプロバイダのメールが使える。だだし現地でちゃんとした電話回線を使用できればという条件つきだが……。予定では、あと二日間ペシャワールでUNHCR(国連難民高等弁務官事務所)のお世話になり、ペシャワール周辺の難民キャンプの状況を調査。その後クエッタに向かいサマリー難民キャンプへ。今回は薬剤師のかたたちの協力によって、難民キャンプに薬と食料を持っていくことができる。

写真は faireal.net の著作物では、ありません。ご利用については、写真家の久保田さんに直接、問い合わせてください。日記も久保田さんのものです(キャプションを除く)

2002年1月18日

アフガニスタンに向け再び日本を発つ。

14:35take off30分遅れ。1月4日に帰国してから今日までの2週間は本当に あっという間だった。今回も荷物をパッキングしたのは昨日の夜中。日航成田で。大切なシュラフを忘れてくるし・・

同時多発テロ事件以降テレビと雑誌二足の草鞋をはくことになって、色々勉強にはなっ たが、やはり両方を完璧にこなすのは至難の業だと思う。今回は薬剤師の4人のメンバーと一緒に前半を過ごす。この4人がすごい!適材適所とはまさにこのこと。一緒に行動するうえで最高のメンバーだと思う。

町田さん。50歳を越えるこの親父、この人と僕の出会いは今後の日本を大きく動かすことになるだろう。現に UNHCRや外務省。そしてお膝元の薬剤師会をひっかき回している。というか誰もがやりたいと思っていることをこの人は実行するだけなのだが。風体はすごいのだが何処か子供の心を持ったお茶目な親父だと思う。その親父がそこそこに力を持っているから大変だ。

武政さん、一言で言うと切れる人。まじめな顔をしてくだらないギャグを出してくれるところなど僕好みだ。青森で出会った時は頭のよいいい人というイメージだけだったが、記者会見で驚いた。全く頭の回転が速いまた状況を的確に判断できる人だ。

鹿内さん、町田さんより一つ年上のおじさん。この人がまたいい感じ。メンバーの中で総務という役割を請け負っているが。これまた適材適所。年の割にと言ったら失礼だが、行動が早い。「今回現地で活動するにあたって、1~10までぐらいはを話せるといいですね」と僕が言ったとき一番にメモを取り始めた。同じ歳になったとき僕もかくありたいと思った。

坂本さん、唯一の若人。僕より少し年下の、良い青年。僕と歳が近いだけに話しやすい。全体の潤滑油になる貴重な存在だと思う。悔しいのは僕より若いくせに嫁さんをもっていることだ。まあ彼には僕にはないなんかどっしりした落ち着きがあるし・・しかたないかなー?

薬の箱をかかえた人物写真

薬剤師の人たちが用意してくれた薬。一錠の薬剤が宝石よりも貴重な場所へ。

このメンバーはまだ映像でしか現地をみていない。色々とうまくいかずに大変な思いもすることになると思う。しかし4人がそれぞれにいいところを持っているので、なんとか乗り切れるのではないかと思っている。(かれらは)PIAに乗ってすぐに4席を占領して睡眠をとった。優れたジャーナリストは移動時間に睡眠をとる。(これは優れたゲリラに対して言われた言葉)

1月19日

UNHCRの羽生さん(アフガニスタン代表部)と会う。殆ど初めてと言っていいだろう、国連機関のVIPと会うのは。正直なところ僕個人の力だけでは、こんな人に会うことはできなかっただろう。お決まりのつまらないことしか聞けないと思っていたけど、意外や意外、現地での活動における率直な意見を聞けてとてもよかった。今までジャーナリストとして現地の人々の声しか聞いていなかったが、今回現地の活動を支える側の人の声を聞けてまた新たな視点ができた。本当にありがたいと思う。

久保田さんと羽田さんが握手している写真

羽生さんと: UNHCRにて

links

この記事のURL

テキスト版省パケ版XML版


ml-ent for Win 95/2K: α公開

2002年 1月19日
記事ID d20119

ふつうのコピー&ペースト
コピーする→貼り付ける
変換つきコピー&ペーストの例
コピーする→[Ctrl][Ctrl][A]と叩く→貼り付ける

デモ

例えば、次のようにメールの一部を貼り付けたとします。

不等号のような特殊文字を含むテキスト

このままではHTMLとしてまずいです。そこで、HTMLとして有効にしたい部分を選択して――

――切り取ります:

これでクリップボードにこの部分が転送されました。

ここで ml-ent を起動します。手元では Orchis2 というランチャーに登録しているので、[Ctrl][Ctrl][A] ([CTRL]を二連打してから[A]を叩く)というキーボード操作で、ml-ent が機能します。ml-ent がクリップボードから読み込んだバイト数とクリップボードに書き戻したバイト数を報告するので [OK] を押してください。

入力と出力の文字数をそれぞれ表示

すると ml-ent は勝手に自分で終了し、コントロールが戻ります。クリップボードの中味はHTMLとして正当なものに変換されています。貼り付けたい場所にペーストしてください。

特殊文字は適当に変換されています

デフォルトでは、&, <, >, ", ' がそれぞれ &amp;, &lt;, &gt, &quot;, &#39; に、タブが空白4個に変わります。ただし、ml-ent.ini で、quot=0 とすると二重引用符は無変換, apos=0 とすると一重引用符は無変換、apos=1 とすると XML Entity の &apos; に。

さらに設定しだいで、改行文字→<br>変換も。nl2br=1 とすると改行文字を<br>に変換、nl2br=2 で<BR>に。ただしデフォルトでは nl2br=0 すなわち改行文字は無変換です。これは<pre>のなかに書くのをメインに考えているためです。tab=数字(1~16)にてtabを置換する空白の個数を設定できます。tab=0とするとタブ文字は無変換でスルーになります。

という、ただそれだけの小物です。

説明

JavaScript のソースやなんかをHTML内で紹介するのに、参照すべき文字の変換、タブ→空白変換など、いつもいつも決まり切ったテキスト変換をするのにうんざりして、めんどくさいから一発でできるように自分でトゥールを作ろうと思って作りました。

自分が使うので作っただけなので製品品質はおろかβ品質もありません。手元でとりあえず動けばいいや、ということで、メモリの最適化とか細かいことは考えてません。バッファサイズぎりぎりのテキストの変換とか、変換途中でべつのソフトがクリップボードをいじるとか、極端な状況、例外的な状況下にまであまり配慮してません。バッファは10KBまで読み込めます。大きすぎれば大きすぎるというエラーがでて何もしないはず。出力用は、その16倍、確保してます。たぶんあふれないでしょう。

Windows 2000 と Windows 95 で動作確認しています。ほかのバージョンの Windows でもたぶん動くでしょう。

インストール

必要ありません。ml-ent-alpha.zip(41KB)を解凍して出てくる ml-ent.exe は(たぶん)ただちに動きます。Orchis2 と連携させることで、あらゆるアプリケーションからコピーしたテキストを HtmlEntities 変換して、任意のアプリケーションにペーストできます。

ml-ent.exe は通常の Windows ソフトと違って、まったくウィンドウを生成しませんが、GUIベースでダイアログを出します。

アンインストール

単に削除するだけ。レジストリはおろか、iniファイルにすら書き込みしません。

設定

同梱の ml-ent.ini で行います。ひらけば分かります。

ml-ent.ini がなくても動きます。その場合、デフォルトの動作になります。

めんどくさいので書式を柔軟にしてません。例えば apos=1 というときの等号の前後にスペースを入れたり、大文字小文字を違えたり、右辺値を引用符で囲ったりといったことをすると、設定が認識されず、既定値のままになります。設定の行の順序はどうでもかまいません。# から始まる行は無視されます。ml-ent にとって意味のない行や設定値も無視されます。必要に応じて、同梱の ml-ent.cpp も参考にしてください。

バージョン情報

半角小文字の v 一文字(末尾に改行文字もなし)をクリップボードにコピーした状態で起動すると、バージョン情報を表示し、表示した内容をクリップボードに書き戻します。今回のファースト・リリース(α版)は、次の通り:

ml-ent
http://www.faireal.net/
Build: Jan 19 2002 02:56:26

links

この記事のURL

テキスト版省パケ版XML版


JavaScript Tip: 16進数ねた3形態

2002年 1月18日
記事ID d20118

16進数がからむあれこれの準備として、hex[0], ..., hex[15] を文字列 "0", "1", ... "F" で初期化するさまざまな方法(古い JavaScript でも使えるもの)。

強引

いちばん強引なのは、hex[0] = "0", ... と全部ベタで書く。少しだけマシなのは:

for(i=0; i<=9; i++) {
    hex[i] = i + "";
}
hex[10]="A", hex[11]="B", hex[12]="C", hex[13]="D", hex[14]="E", hex[15]="F";

――どうみても汚い。タイプしていてイヤになる、いかにも面倒だ。こんなのでも一部の JavaScript 専門ページで「十進数を十六進数に変換するサンプルスクリプト」の一部として採用されてるようです。とりあえず動けばええやんという発想は嫌いじゃない。が、同じようなことを何度もタイプさせられると、もっとラクしたいよーと思うのがプログラマのさが。

直感型ハック

たぶん、次の書き方がいちばん気が利いていてハッカーらしいだろうが、これが本当に最善かは別問題。

for(i=0; i<16; i++) {
    hex[i] = "0123456789ABCDEF".charAt(i);
}

知識型ハック

十進数 n を十六進数に変換するには、単に n.toString(16) で良い。サンプルスクリプトもへったくれもない組み込み関数そのものだ。これを使えば:

for(i=0; i<16; i++) {
    hex[i] = i.toString(16);
}

ただしabcdefが大文字になるか小文字になるか保証がないので(どうも小文字になるっぽい)、どちらにするか明示するために、
(i.toString(16)).toUpperCase() または (i.toString(16)).toLowerCase()
としたほうが良いだろう。

この方法の欠点は、toString 関数がこういうふうに引数をとれるというあまり知られていない知識がないと使えないことだ。第二の方法は、だれでも知ってるようなことを組み合わせてちょっと意外なことをやってるので、第二のほうが(知識よりもひらめきに頼るという意味で)ハッカーらしい。けれど toString() の仕様を知っているなら、第三の方法のほうがエレガントだろう。

この記事のURL

テキスト版省パケ版XML版


Googleに偽ラテン語版が/ほか

2002年 1月16日
記事ID d20116

グーグルの画像 16KB

Google に言語属性 xx-piglatin の「偽ラテン語版」が!
http://www.google.com/intl/xx-piglatin/

ホンモノのラテン語とは関係ない、子どもの遊びことばで、語頭の子音を語尾に移動して「~エイ」をつけるもの。Category (カテゴリ)なら Ategorycay (アテゴリケイ)という「学者が使う難しいラテン語ふう」になるわけです(実際には、ただのさかさ言葉のたぐい)。

2002.01.16 HPのバリアフリー度を無料診断: こういう記事が出るのは良いこと。「ウェブバリアファインダー(バリアフリー無料診断)」を始めたという報道それ自体が、バリアフリーへの関心の立ち後れを暗示しつつ……。決して最近始まった新サービスじゃなく、もうずっと前からIBMは、この種の無料サービスを提供し、オンラインでも使えるように「パーソナルI-Checker」を無料で配布、音声ブラウザも無料で試用を認めているばかりか、一般向けの分かりやすいヒント(おすすめ)を提供してます。

けれど上記の記事の「2002/1/17」の表記は分かりにくいというのは単純だけれど重要な指摘で、自分自身、音声ブラウザを使ってみてまず気づいたことのひとつでした。以来、スクリーンリーダー利用者向けに日付の表記についての注意をつけるようにしましたが、このような表記は、あまりに一般的であるため、音声ブラウザ側で日付の表記のロケールも考慮して「意味的」に解釈して読み上げられるように改善されたら理想的。

ついでながら、IBMのホームページリーダーは、「表組みがデザインに用いられるのは、きわめて一般的だ」という現実をふまえ、table を無視して直線化テキストとして解釈するのがデフォルトの動作になってます。信者のかたは「デザインにテーブルを使うと音声ブラウザを混乱させる」と教条的に(机上の知識として)暗記しているかもしれませんが、現実のツールは現実にそくして、もっとしたたかにできていることが多いようです。2ちゃん語のように現代仮名遣いとして正しくない表記までは対応しきれないでしょうが、他方では「基地外」のように音声ブラウザで聴いたほうが分かりやすい2ちゃ語もあって、音声ならでは=会話に近い世界がかえって浮き彫りになったり。(これは余談)

Unicode表JS版

ユニコード表の画像 表の出だし部分 42KB

すでにスタティック版を公開した65536コードポイント一覧を JavaScript で書いてみました。JavaScript版(ZIP 1KB): 850KBの表を1KBに圧縮(?)

ソースは次の通りですが、巨大な表を動的に生成するためスクリプトエンジンのパワーを必要とします。16分の1サイズの unicode4096.htm が正常に開けることを確認してから、unicode65536.htm を試してください。手元のIE6では「このスクリプトは大変です。中止しましょうよ」という警告のダイアログが2回ほど出ましたが、続ける選択をしたら、ちゃんと表を描画できました。環境によってはフリーズするかもしれません(無保証)

スタティック版なら、ふつうのブラウザのパワーだけで開けます: オンライン(850KB)|zip(174KB)|関連記事

var i, j, k, l, unicode_number;

hex = new Array() ; 
for(i=0; i<16; i++) {
    hex[i] = (i.toString(16)).toUpperCase();
}

document.write("<table border=1>\n<tr><th>&nbsp;");
for( i=0; i<16; i++ ) {
    document.write("<th>" + hex[i]);
}
document.write("\n");
for( i=0; i<16; i++) {
    for( j=0; j<16; j++ ) {
        for( k=0; k<16; k++ ) {
            document.write("<tr>");
            unicode_number = "U+" + hex[i] + hex[j] + hex[k] + "0";
            document.write("<th>" + unicode_number);
            for( l=0; l<16; l++ ) {
                document.write("<td>&#" + (i*4096+j*256+k*16+l) + ";");
            }
            document.write("\n");
        }
    }
}
document.write("<\/table>");

いつものとおり全部、版権フリーです(↑こんなもんに版権なんかあってたまるか)

hex[i] の初期化は "0123456789ABCDEF".charAt(i); とも書けます。

この記事のURL

テキスト版省パケ版XML版



webmaster@faireal.net