2008年 3月 27日 木曜日 |
MacのDictionary.appにSun Glossとか、ResourceBundleから作った独自辞書を追加する English Translation: (Yahoo!) / (Google) GlassFishとか、NetBeansなんかは仕事柄、日本語版が出る前から評価しています。そうすると、マニアックな機能なんかは英語版での経験のほうが長くて、日本語版でなんだっけ?この機能名称。なんてことがしばしばあります。自分で使うだけなら別に気にしなくていいんですが、ブログに書いたりプレゼンテーションに機能名称の説明を書いたりする場合にはなるべく、本当に画面に表示される名前を使いたいわけです。
今までは手作業でやっていましたが、少し前に英辞郎をMacについてくる辞書アプリDictionary.appで使えるようにしたときにDictionary.app向けの独自辞書の作り方を覚えたので、まずSunの用語集 Sun Glossの辞書を作ってみました。こんな感じ。
Sun GlossのDictionary.app用辞書はこちらに公開しておきます。 ダウンロードして、解凍した物をホームディレクトリ以下にある「ライブラリ」ディレクトリ以下に、「Dictionaries」というディレクトリがなければ作り、そこに置いてDictionary.appを再起動すれば終わりです。 これだけでもずいぶん個人的には便利になったんですが、GlassFishの管理画面など実際の画面に出るキーワードの対応表も欲しくなってきたので、GlassFish v2ur1からResourceBundleのファイルを取り出して、同じkeyを持つ日本語と英語のメッセージ対応を見れるようになればずいぶん便利だろうということで、こちらもスクリプトを作って作成。
Sun Java System Application Server 9.1ur1マルチリンガル版のResourceBundleから作った物ですが、これも同じく公開しておきます。 これらの作り方も簡単にメモ程度ですがご紹介しておきます。なお、本当にメモ程度なので動かない!などご連絡いただいても対応できない可能性大ですのでご了承ください。
タブ区切りのフラットファイルからMyDictionary.xmlを作るこれは割と簡単。以前、ちょっとしたスクリプトを書くときにもなるべくRubyを使うようにしていますなんて書いていたのに最近、プログラムどころかスクリプトさえも書かなくなってしまい、Ruby文法とかかなり忘れてしまっており、今回はずるをしてPerlのスクリプト。っていうかPerlすら怪しくなっています。忘れるスピードのはやいこと早いこと・・・(涙)
#/usr/bin/perl
print <<"__XML__";
<?xml version="1.0" encoding="UTF-8"?>
<d:dictionary xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng">
__XML__
undef %idtable;
while (<>) {
chmop;
$_ =~ s/&/&/g;
$_ =~ s/</≷/g;
$_ =~ s/>/</g;
$_ =~ s/"/"/g;
($word, $jpn, $description) = split(/\t/, $_);
$id = $word;
$id =~ s/ /_/g;
if ($idtable{$id}) {
$idtable{$id}++;
$id .= "_$idtable{$id}";
}
$idtable{$id}++;
print <<"__XML__";
<d:entry id="$id" d:title="$word">
<d:index d:value="$word"/>
<h1>$word</h1>
<p>
$jpn
</p>
<p>
$description
</p>
</d:entry>
__XML__
}
print <<__XML__;
</d:dictionary>
__XML__
ちなみにタブ区切りのテキストは「英語 \t 日本語 \t 解説」の順番に並んでいると想定したスクリプトです。他の並びの場合とか、区切りがタブじゃないばあいには適当にいじってください (^^;;
これを perl convert.pl < 元ファイル.txt > MyDictionary.xml みたいにすればオッケーです。 ResourceBundleからMyDictionary.xmlを作るつぎはResourceBundleから作る例です。今回はGlassFish用ですが、意外とこれ、他のプロジェクト用に作っても便利かもしれませんね。多国語対応されているようなプログラムのドキュメント担当の方にはお勧めです。GlassFishのように大きなソフトウエアの場合は、いろんなjarファイルにResourceBundleファイルが分散しているのと、パッケージ名(つまりファイルのあるディレクトリ)も気にする必要があります。とりあえずそれらをまとめてMyDictionary.xmlに作り上げるスクリプトを二つ作りました。まずは、日本語のResourceBundleファイル(*_ja.propertiesを想定。_ja_JPとか他のバリエーションのときはスクリプトを直接いじっちゃってください)の相対パスを渡してやると相対パスをパッケージ名と見立てて、メッセージのキーに付け加えて英語/日本語の辞書を作るようなPerlスクリプトです。なお、ResourceBundleの中身次第では結構辞書を作るmakeのときにエラーが出たりするのですが、それらは一つずつつぶすしかないです orz。あ、あとXMLなResourceBundleには対応していません。
#!/usr/bin/perl
print <<__XML__;
<?xml version="1.0" encoding="UTF-8"?>
<d:dictionary xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng">
__XML__
foreach $fileja (@ARGV) {
$fileen = $fileja;
$fileen =~ s/_ja//;
%bundlesja = read_bundle($fileja);
%bundlesen = read_bundle($fileen);
foreach $id (keys %bundlesja) {
$en = escape_xml($bundlesen{$id});
$ja = escape_xml($bundlesja{$id});
next if ($ja eq '' || $en eq '');
next if (length($ja) > 128 || length($en) > 128);
next if ($en =~ /Usage:/);
if ($idhistory{$id}) {
$idhistory{$id}++;
$id .= "_$idhistory{$id}";
}
$idhistory{$id}++;
print <<"__XML__";
<d:entry id="$id.en" d:title="$ja">
<d:index d:value="$en"/>
<h1>$ja</h1>
<p>
$id
</p>
</d:entry>
<d:entry id="$id.ja" d:title="$en">
<d:index d:value="$ja"/>
<h1>$en</h1>
<p>
$id
</p>
</d:entry>
__XML__
}
}
print <<__XML__;
</d:dictionary>
__XML__
sub escape_xml {
my ($txt) = @_;
$txt =~ s/&/&/g;
$txt =~ s/"/"/g;
$txt =~ s/</</g;
$txt =~ s/>/>/g;
return $txt;
}
sub read_bundle {
my ($file) = @_;
my $line;
my %bundles;
my $package_name;
$package_name = `dirname $file`;
$package_name =~ s/\n//;
$package_name =~ s/^\.\///;
$package_name =~ s/\//\./g;
open FILE, $file;
undef $line;
undef %bundles;
while (<FILE>) {
chomp;
next if ($_ =~ /^#/);
$_ =~ s/^\s*//;
if ($_ =~ /\\$/) {
$_ =~ s/\\$//;
$line .= $_;
next;
}
$line .= $_;
my ($key, $value) = split(/=/, $line);
$key =~ s/^\s*//;
$key =~ s/\s*$//;
$key =~ s/\"//g;
$key =~ s/,//g;
$value =~ s/\n/ /g;
$value =~ s/^\s*//;
$value =~ s/\s*$//;
$bundles{"$package_name.$key"} = $value;
undef $line;
}
close FILE;
return %bundles;
}
あとは、いっぱいあるファイルからResourceBundleを取り出して、上記のPerlスクリプト(makebundledic.pl)を流し込むシェルスクリプトです。GlassFishを想定しているのでAS_HOMEにGlassFishのインストールディレクトリを指定します。あ、ちなみにこれは本当にメモで、動作確認していません・・。
#!/bin/sh AS_HOME=~/Applications/glassfish-v2ur1-ml TOOL_HOME=`pwd` WORKINGDIR=./bundles rm -fr $WORKINGDIR mkdir $WORKINGDIR cd $WORKINGDIR for i in `find $AS_HOME/lib -name \*.jar`; do unzip -n $i \*.properties done perl $TOOLHOME/makebundledic.pl `find . -name \*_ja.properties` | native2ascii -reverse -encoding utf-8 > $TOOLHOME/MyDictionary.xml cd $TOOLHOME makeということで参考になりましたでしょうか?スクリプト自体はけっこういい加減なものばっかりなので自己責任でお願いします・・。 Mac OS X版のOpenOffice.org 3.0ベータを試す English Translation: (Yahoo!) / (Google) OpenOffice.orgの次期メジャーバージョン 3.0.0のベータが試せるようになっています。Mac OS X版もIntel/PowerPC両方のビルドが公開されています。日本語版もあります。
現在のOpenOffice.org/StarSuiteは起動するといきなり新規ドキュメントの画面で始まりますが、OpenOffice.org 3.0からはこの画面のように新規ドキュメントの種類を選んだり、既存ドキュメントを選ぶことができるようになっています。あと、注目はメニューがちゃんとMacに対応し、スクリーンメニューバーを採用しているところ。あとはニーモニック表示がなくなったら完璧かなあ。
コンフィグをみてみると、スペルチェックにMac OS X Spell Checkerという表示があります。OS標準のスペルチェックが使えるようになっているんですね。Aqua対応という以外にも実はいろいろMac OS X対応しているようです。
OpenOffice.org 3.0で便利&カッコイイのは左右ページを同時に表示/編集できるようになったこと。あとは、Notes 2と呼ばれている注釈機能。注釈を入れたいところを選んでメニューから「挿入」→「注釈」でコメントを入れられるんですが、かっこいい。これなら注釈入れがいがあります。
左右ページを表示しても、表紙はきちんと独立していますね。あと、右下にある拡大/縮小バーも便利。100%と2ページ表示に便利な41%のところでスライドがピチっと止まるようになっています。便利。
現時点で日本語もきちんと入力可能です。その他の新機能はOpenOffice.org 3.0's new features, an early lookからご確認いただけます。 OpenOffice.orgとNeoOfficeの色あい English Translation: (Yahoo!) / (Google)
前から気になっていたんですが、NeoOfficeを使ってプレゼンを作っていると写真の色合いがなんだかおかしいんです。カラープロファイルがごそっと削れているような感じ。まあ、印刷するときはプリンターがモノクロレーザーだしあんまり実害はなかったんですが、この間OpenOffice.org 2.4m5のMac/Aqua版を入れたのでこちらで試してみるとうまく色が出る事に気づきました。上図はそれぞれ比較したもので、左からPhotoshop CS3、OpenOffice.org 2.4m5、NeoOffice 2.2.2p11です。よく見るとPhotoshopとOOo 2.4m5も若干色の深みが違うような気がするんですが、まあ誤差の範囲として、NeoOfficeの色の落ち方はこう比べるとちょっと悲しいですね。OOo 2.4m5のMac/Aqua版も日本語が通るようになったのでそろそろこっちに乗り換えようかなあ。 うちの本棚, その2 English Translation: (Yahoo!) / (Google) すこし片付きましたので本棚紹介その2。
うちにある洋書は10〜20冊程度をのぞきブックオフにて100円ぐらいで投げ売りされていたものです。その手の本に限って読みません。買わなきゃいいのに・・・。それ以外の洋書は出張に行ったときに買ってきたり、アマゾンで買ったものです。ちなみにこの中で一番お気に入りの本は左端の赤い「安全の手引き」という本です。大学の時にもらった本ですが、実験中の災害に対する対処法が細かく載っています。情報系の学科だったので実際にこの中で関連しそうな内容はVDT作業に対する注意書きくらいでした。 ようやくMac OS X Leopardにアップグレード、と思ったら English Translation: (Yahoo!) / (Google) 発売されてからちょっと経ちましたがようやくADC(Apple Developer Connection)にもJava SE 6のDeveloper Previewが出た(1.6.0_02相当、Mac OS X 10.5 Leopard, 64bit専用)とのことなので重い腰を上げてMac OS Xのアップグレードすることにしました。
データをバックアップできそうなディスクが手元に無いのでおそるおそるアップグレードインストールにしようと思っていましたが、もっと手前の段階でこけてしまいました。インストールDVDを使ってインストールを開始すると、最初にDVD自身の検証をするのですがこれが40%ぐらいまで進んだところで検証エラーとなりインストールが進まないのです。 アプリケーションのインストール程度であればいつもはこの手の検証をスキップするのですが、さすがにOSのインストール(しかも、バックアップをとっていない)となるとエラーと言われてしまっては簡単にスキップする訳にも行きません。 取り出して傷が無いかどうか確かめてもそれらしきものは無いし、とりあえず古いMac OS X 10.4で起動してディスクユーティリティを使って検証してみてもエラーはみられませんでした。自宅のMacBook Proはこんな症状も発生せず、すんなりインストールできたので安心しきっていたんですが・・・。 また時間をみて再チャレンジしてみます。 CEC 2007 Day 2, ラスベガス English Translation: (Yahoo!) / (Google) 続いてCEC 2007二日目の昨日を振り返ってみましょう。
この日のGeneral Sessionの前座はJavaOne 2007に続いてこちらでも和太鼓です。
和太鼓のバックにはエコを意識しようと訴えかけるメッセージ。
SMSやInstant Messagingで質問した内容は随時ディスプレイされていきます。デザインも凝っていますが、後方の席では見えないですね。実際にプレゼンターが答える質問は中央のスクリーンに大写しになるので問題ないのですが、なんとなくこのスクリーンの存在価値がないような・・・。(まあいいか) 最近は日本で行われているイベントでも会場からチャットなどを使って随時質問をしていくというやりかたは珍しくなくなってきたように思いますが、日本ではわりと「ツッコミ」中心であるのに対し、こちらは質問中心です。日本で「ツッコミ」ドリブンなプレゼンになれた後だとおとなしく感じます
この日はJonathanが登場しました。
この日は会場の7〜8割の参加者がI love Solaris Tシャツを着てJonathanを迎えました。
さてこの日のビックニュースはUltraSPARC T2を搭載したサーバSPARC Enterprise T5220、SPARC Enterprise T5120が発表されたことでしょう。CECの会場からWebcastで生中継されていました。
General Sessionが終わってから、工藤さんといっしょにステージにおいてある発表されたばかりの製品を見に行きました。
こちらは2UのサーバT5220。もう少し機種名は主張してもいいと思うのですが、右はじにちょこっとT5220と書かれているだけです。それでも中身はSAP SDベンチマークでもT2000@1.4GHzの5330 SAPSから、T5220@1.4GHzの10950 SAPSへほぼ二倍に性能をあげてきていることはすごいことです。
お昼は今回ベジタリアン向けのお弁当にしてみました。相変わらず巨大かつ、ポテチ&クッキー入りです。
お昼の後はセッションに。またもや詳しいテクニカルな内容はあまり書けないので、ひとまずここでは触れませんがまた機会を見つけて公開できる範囲で照会していきたいと思います。ちなみにこの日はSun Java CAPS関連のセッションを中心に聞いてきました。
CECはJavaOneと違ってBOFが無いのでおおむね19時にはテクニカルな内容が終了するので、ハードなJavaOneと違って比較的楽です。セッションの後この日はパーティがありました。でもこの日のパーティーはなぜかCEC会場から少しはなれたホテル。なにせおおよそ4,000人をバスで輸送する訳ですからあっという間に長蛇の列。係員も「あなたたちのことはわすれてないから心配しないで」なんていっていました(笑)
1時間ほどかけて(バスに乗った時間は5分ぐらい)会場に到着すると大方の予想通り黒山の人だかり。 これではご飯や飲み物もゲットできない感じです。なかなか列も進まないので催し物をちょっとずつみながら進みました。
こちらはバンドの演奏。
こちらはカメラマンが群がっていたところ。なんとなく秋葉原を少し連想しましたがなぜでしょう。
同じ水辺ではラジコンボートの競争をしていたようです。
やっとテーブルにたどり着いたもののすでに群がる群衆に食べ尽くされている感が・・・。会場は屋外だけかと思いきやじつは屋内もありました。どうやらここは中華料理レストランのようです。奥では琴と胡弓の演奏が行われていました。
この部屋に気づいていない人も結構いたのでこの会場の中では比較的"穴場"で座って食事ができました。こちらは工藤さん。
かえろうと思って出口を探していると別の部屋で別の出し物をやっているところに入りました。
こちらは上から見た会場の様子。 CEC 2007 Day 1 ラスベガス English Translation: (Yahoo!) / (Google) もうCECも最終日ですが月曜日(10/8)の様子を振り返ってみましょう。
朝ご飯です。朝ご飯コーナーにはアメリカらしいあま〜〜いパン、あま〜〜いヨーグルトが盛りだくさんなのですが、甘すぎて気持ち悪くなってしまうのでフルーツを中心にセレクト。
General Sessionの前座です。今回は(工藤さん曰く) 80年代風な感じです。
ステージ全体はこんな感じ。
CECでは会場から、あるいはSecond Lifeなどから参加している参加者からリアルタイムで質問を投げかける仕組みとしてSMS/Instant Messaging/メールが利用できます。ここで質問した内容はQ&Aの時間に大写しになってプレゼンターがその質問に答える仕組みです。CECで話されるテクニカルな内容はなかなかブログ等で詳しく書くことができなかったりするので、もう少し会場の雰囲気を振り返ってみます。
お昼はお弁当箱にサンドイッチ、サラダ、クッキー、ポテチ、リンゴが入っています。
半分以上はご飯というよりはおやつのような・・・。
全部のセッションが終わるのは19時。終わってから岩片さん、工藤さんとアジア料理(というか中華料理)に行きました。
ここまでの食事はアメリカ的な量に圧倒されていましたが、ここはわりと親しみのある量でした。 CEC 2007 Day 0 ラスベガス English Translation: (Yahoo!) / (Google) CEC2007は2日目となり、いままさにUltraSPARC T2を搭載したサーバ SPARC Enterprise T5120、SPARC Enterprise T5220とブレードSun Blade T6320の製品発表が行われています。その様子はリアルタイムでWebcastにながれています。
さて、話は少しもどってラスベガス到着二日目の日曜日(10/7)です。この日はCEC 2007への登録と、夜にはレセプションパーティがありました。登録開始は2時からだったので、それまでLas Vegasのメインストリートをうろうろしてみました。
こちらはNew York, New Yorkです。ちょっと縮小された自由の女神ですね。
続いてこちらはピラミッドが印象的なLuxorです。
その後CEC会場に戻り登録会場へ。既にものすごい列ができていました。しかも今回は事前のレジストレーションがうまくいかなかったので実際にバッジがもらえるまで少し心配していましたがなんとか登録も完了しました。
こちらはレセプションパーティーの様子。4000名近いSunのエンジニア、300名近いSunパートナー企業の皆様が続々と集まってきます。
甘そう。
アップで。 最近のNetBeans 6.0開発ビルド English Translation: (Yahoo!) / (Google) 片貝さんが詳しく説明されているので最近どちらかというと読むだけで実際使っていなかったんですが、昨日少し試したいことがあり最新の開発ビルドをダウンロード&インストールしてみました。多くの方によって既に解説されていますがアイコンやスプラッシュクスリーンなどのデザインがかわっています。
最近はこういう柔らかい感じのデザインになったアイコンが多いので、アプリケーション一覧をみてもアイコンの温度差がだいぶ減ってきたと思います。ただ、あまりにものっぺりした感じでもうワンポイント欲しいような気もしますが・・・。まあ、アイコンよりもぐっときたのがデバッガのメニューです。
まずこちらはNetBeans 6.0マイルストーン10の画面ですが、ご覧の通りデバッギングのメニューは高度に階層化され選ぶのが一苦労です。個人的にはそもそもメニューアイテムがサブメニュー化されていることにはいらだちを覚えるのですが(カーソルが外れてやり直しになったりするので)、それがさらにサブメニュー化されているなど言語道断!
セパレータによってグループ化されメニュー階層が一つ減っています。これでだいぶ見栄えもすっきりしました。 Supported Web Services specifications and versions: Web Server & App Server English Translation: (Yahoo!) / (Google) I assembled web services specification support matrix for our current web containers, research based upon release notes, manuals, Java specifications and related web sites. If you find any errors, please let me know.
Almost all of specs in next matrix are supported through WSIT (aka Project Tango).
Last matrix is for web services registry specifications.
App Server 9.1エンタープライズ版 English Translation: (Yahoo!) / (Google)
GlassFIsh v2のリリースもあと3週間ほどに迫りましたが、GlassFish v2をベースとしたSunの製品Sun Java System Application Server 9.1 エンタープライズ版の記事を寺田さんが公開され始めてますね。現在GlassFish v2はRC4まで出ていますがStopperのバグが出たとのことでおそらく今夜あたりにはRC5がリリースされると思います。 ちなみに写真はGlassFishのお魚に見えなくもないガラスハゼです。 今日のJJUGクロスコミュニティーセミナー(IDE) English Translation: (Yahoo!) / (Google) 今日のJJUG 第一回クロスコミュニティセミナー 「IDE」 Mash up Award 3rdキャラバン 札幌 English Translation: (Yahoo!) / (Google) 本日から来週月曜日にかけてMash up Caravan ~ Mash up Award 3rd 開発者向けセミナー ~というナイトセミナーが日本各地4カ所を巡って行われます。
参加は無料ですが事前登録制になっておりますのでお申し込みの上ご参加ください。 メモ: Mac OS Xでファイルの関連づけをリセットしたい English Translation: (Yahoo!) / (Google) いろいろなソフトを評価したりしていて、インストールやアンインストールを繰り返しているとファイルの関連づけがおかしくなってしまって、かなり前から困っていました。実用上は困らない場合がほとんどですが、表示されるアイコンがおかしくなってしまったり、見栄え上も気持ちよくありません。
そういう設定はどこでやるんかな〜、なんて思って $HOME/Library以下を探してみたり、/Libraryや/System/Library以下を探してもそれらしきものは見つからず・・・。 そんなときはとりあえず、Googleさんに聞いてみようということで聞いてみたところ出てきました。How to rebuild the LaunchServices databaseこれです。 $ /System/Library/Frameworks/ApplicationServices.framework/\ Frameworks/LaunchServices.framework/Support/lsregister \ -kill -r -domain local -domain system -domain userLaunchServicesはMac OS Xでファイルの実行に関する関連づけを管理しているサービスで、この(隠しコマンドみたいな)コマンドで、-kill -r なんてやると関連づけデータベースが再構築されるようです。-domainで、どのデータベースに対して操作をするかを指定するようです。 かれこれ半年ぐらい時間があるときに探していましたが、もっと早くググってれば良かったなあと思いました(でも、すっきり)。 Mac向けOpenOffice.org Aquaを試してバグレポートしよう English Translation: (Yahoo!) / (Google) (一部の)世の中はWWDCの発表でお祭り騒ぎのようですね。次期Mac OS XであるLeopardの詳細が徐々に明らかになってきたようです。
さて、先週の話題なのでもうご存じの方も多いと思いますがOpenOffice.org 2.3ベースのMac OS X Aqua向けのアルファ版がリリースされています。
現在のところ次のような制約があるそうです。
NeoOfficeがあるのにいまさら?と思われるかもしれませんが、NeoOfficeは画面描画などの処理をJavaで行っているために、本来C++で書かれているOpenOffice.orgとの間でいろいろ通信や変換などの処理が行われています。このため、Keynote等のアプリケーションと比べればややもっさりした感じの動作になってしまいます。 一方今回のOpenOffice.org AquaはX11も不要で、Javaもいらないほぼ完全にC++なアプリケーションとなるため、より軽量な動作を望むことができます。実際に、体感的にはこのOOo AquaはすでにNeoOfficeやX11版OpenOffice.orgよりも軽快に動作します。 このような期待の持てるプロジェクトがうまく進むためにも今、特に日本からのバグレポートがどんどん出てくることが期待されています。
|
Today's Page Hits: 3461 |