« 2010年2月 | トップページ | 2010年7月 »

2010年3月の3件の記事

2010年3月12日

ITエンジニア必読『プログラマのための文字コード技術入門』

本書は、文字コードに関わるITエンジニア必読の書である。と言うことは、全てのITエンジニアが対象ということになる。「プログラマのための」と銘打っているが、サポートエンジニアでも運用エンジニアでもプリセールスSEでも、メールやブラウザなどで文字化けを見た経験があるはずだ。ブラウザのエンコーディングの設定を変えれば治ることがある。日本語ファイル名が文字化けする可能性があるからASCII文字でファイル名を付けて交換するという対処はよく行われる。本書を読めば、文字化けの根本原因が理解できるようになる。

Webの断片的な情報で文字コードを理解しようとすると、どこから手をつけていいのか、この情報とあの情報の関係はどうなっているのかなど、路頭に迷ってしまう。根本原因を知るには、文字コードの規格だけでなく、歴史や規格の背景まで知る必要がある。そして文字の背景には文化も存在し、それを避けて通ることがことができない。本書はこれらのテーマをとても分かりやすく体系立てて解説してくれる。Shift_JIS、EUC-JP、Unicodeなどの文字コードをていねいに解説したあと、文字コード変換やインターネットでの文字コードの実装、JavaやRubyでの文字コードの実装、そして代表的なトラブルの対処方法として「全角・半角問題」「円記号問題」「波ダッシュ問題」を取り上げている。これは、これまでの知識の応用例でもある。

著者の次の言葉が非常に印象に残った。

本書では上記の各種トラブルについて、文字コードの原理原則に立ち返ったうえで現象の意味を考察しました。こうしたやり方は一見迂遠で理屈っぽいように映るかもしれません。しかし、小手先の対症療法でない本質的な解決のためには、原理に立脚した議論が必要であるはずです。

本書で述べていない別のトラブルに遭遇したときにも、文字コードの原則に基づいた考察方法は確かな視野を与えてくれるはずです。

(「第8章 はまりやすい落とし穴とその対処」より)

これもまた、原理・原則アプローチのひとつである。表面上の現象やテクニックだけでなく、その背後に潜む原理・原則や、物事に対応するときの原理・原則を身につけておけば、さまざまな場面で応用が利く。

文字コードというテーマは、書籍でなければきちんと論じることができない部分がある。例えばひとつの文字コードに包摂されている複数の字体を例示するとき。あるいは、JIS規格の版によって字形が変わってしまったもの。そしてJIS X0213で追加された第3水準・第4水準漢字を扱うとき。これらの文字コードの字体は、OSやブラウザ、インストールされているフォントに依存する。書き手の意図と異なる字体が自体が表示されてしまう可能性がある(注)。読み手全てが同じ字体を見ることができるというのは、書籍の大きなメリットである。

(注)字形が変わってしまいそうな箇所を画像にするという手はあるが。

| | コメント (0)

2010年3月 2日

秀丸エディタのマクロをメニュー化する

秀丸エディタは、デフォルトでCtrl+1~Ctrl+9がマクロ1~9に割り当ててある。マクロ起動ごときに両手を使いたくないから、せいぜいCtrl+6くらいまでが実用範囲だろう。ここまでなら左手小指と人差し指で押せる。もちろんCaps LockキーをCtrlに変更しているという前提である。

5つで足りなくなったら、マクロメニューを使えばよい。例えば以下のようなマクロを作ってマクロ1に登録してCtrl+1で起動すれば、4つのマクロ(といってもそれぞれ1行だけだが)を実行jできる。左手でメニューを表示し、右手のカーソルとEnterキーで選択・実行という流れだ。

ひとつ前の記事で書いたログ解析用のフォント変更の他に、元のフォント(ここではメイリオ)に戻すマクロと、トラブルシューティングでよく使う文字コード調査コマンドshowcodeを入れてある。複雑なマクロを使う場合は、別ファイルにしてこのメニューから呼び出せばよい。

menu
    "ログ解析(日本語)",    // 1
    "ログ解析(欧文)  ",    // 2
    "メイリオ          ",    // 3
    "文字コード調査    ";    // 4
    if( result == 0 ) endmacro;
    if( result == 1 ) config "xFont:(HGゴシックM) xFontPoint:10 xLF:5 w2000";
    else if( result == 2 ) config "xFont:(Lucida Console) xFontPoint:10 xLF:5 w2000";
    else if( result == 3 ) config "xFont:(メイリオ) xFontPoint:11 xLF:0 w79";
    else if( result == 4 ) showcode;
endmacro;

| | コメント (0)

2010年3月 1日

ログ解析のための秀丸エディタ設定

仕事でよく使うアプリケーションの三大巨頭というとFirefox、Outlook、そして秀丸エディタで間違いない。なかでも秀丸エディタは、 WordやOutlookで文書やメールを作る前の下書きとしてだけでなく、ログ解析になくてはならないツールである。文字やログメッセージを見やすいようにいくつか工夫してある。

デフォルトのフォントはメイリオの11ポイントにしてある。あいにくメイリオは欧文文字がプロポーショナルフォントなので、ログメッセージの日付欄や出力アプリケーションなどが行ごとに左右にずれてしまう。WindowsおよびOfficeに付属する等幅フォントをいろいろ試した末、HGゴシックM に落ち着いた。10ポイントでもアウトラインフォントなので文字がギザギザにならない。ログ解析時だけこのフォントに切り替えていた。注意点は、 Officeの追加フォントであるから、明示的にインストールを指示する必要があること。

ところで、普段見ているログファイルはほとんどが欧文文字しか含まれないのであった。欧文フォントに範囲を広げると、HGゴシックM以外の選択肢が出てくる。エディタでどのフォントを使うかは海外のプログラマの間でも議論になっているらしく、このような記事が見つかった。

10 of the Best Programming Fonts
http://www.sitepoint.com/blogs/2009/05/01/top-10-programming-fonts/

ログやソースコードは等幅フォント派の私は、この10個の中にプロポーショナルフォントが入っているのにちょっと驚く。ともあれ、Lucida Consoleを試してみたら、これがHGゴシックMより見やすい。その要因は、文字幅がHGゴシックMより広いことがひとつ。そして小文字のエル(l)やアイ(i)の縦棒の上に飾りが付いていたり、数字の1の縦棒の下に横棒が付いていたりして、似たような文字の区別が付けやすいことのようだ。ただし Lucida Consoleには日本語文字が含まれないので、日本語を含むファイルが文字化けしてしまう。そこでワンタッチでフォントを切り替えられるようにした。ついでに1行の行数や行間もログ解析にあわせて調整する。

秀丸エディタの起動時は1行79文字表示にしている。その一方、ログメッセージは1行が100文字以上になることもざらである。79文字で折り返して表示していると、メッセージ全体を一画面でみることができる反面、日付欄の下にメッセージ本文の一部が来るなど見づらくなってしまう。ログ表示の時は、秀丸エディタの最大値の1行2000文字にする。

以下のマクロを好きなキーに割り当てておけば、フォント・そのサイズ・行間・1行の文字数をワンタッチで切り替えられる。上が日本語を含むログファイル閲覧用、下が欧文文字のみのファイル用だ。

config "xFont:(HGゴシックM) xFontPoint:10 xLF:5 w2000";
config "xFont:(Lucida Console) xFontPoint:10 xLF:5 w2000";

「LF:5」は、秀丸エディタの行間1/3に相当する指定である。これが0だとメッセージがびっしり密集した感じがして眼がチカチカする。メイリオ使用時は、メイリオ自体がフォントの上下に余白を取っているせいか、行間0で特に問題ない。

1行の文字数変更はログファイルに限らずよく使う。次のマクロを別のキーに割り当て、1行79文字と2000文字を交互に切り替えられるようにしてある。

if ( getconfig( "Orikaeshi" ) == 79 ) {
    config "w2000";
} else {
    config "w79";
}

(参考記事)
株式会社リコー フォントグループのメールマガジン創刊号(2004年9月16日号)
MS明朝、MSゴシックが画面で読みやすいのはなぜ?
http://www.ricoh.co.jp/font/related_info/mail/20040906.html

MS、HGフォントって何?(日経トレンディネット)
http://trendy.nikkeibp.co.jp/article/qa/os/20030902/105778/

和文・欧文をディスプレイ上で美しく調和 実はメイリオまだ進化中! 誕生秘話を河野氏に聞いた(アットマーク・アイティ)
http://www.atmarkit.co.jp/news/201001/07/meiryo.html

| | コメント (0)

« 2010年2月 | トップページ | 2010年7月 »