もしこのブログがお役に立ちましたら、次回のAmazonでのお買い物時に こちらのリンクから 購入していただけますと嬉しく思います。

2010年11月17日

Velocityの変数名を動的に定義する

Apache Velocityで変数名は通常以下のように定義します。
(例の中の$listはjava.util.Listのインスタンスです)

#set($fruit0 = $list.get(0))
#set($fruit1 = $list.get(1))
#set($fruit2 = $list.get(2))


上の例のように、同じ種類の変数名がほぼ一緒の場合、何としてでもループ構文で書きたくなるのがプログラマの性です。
ただし、Velocityでは以下のようには記述できません。

#foreach($num in [0..2])
#set($fruit$num = $list.get($num))
#end


上の場合、「$fruit$num」という書き方が変数として認められないため、エラーが出ます。

ではどうしたら良いのかというと、以下のようにすれば解決できます。

#foreach($num in [0..2])
$request.setAttribute("fruit$num", $list.get($num))
#end


数ヶ月間ずっと悩んでいたのですが、意外と簡単に解決できてびっくりです。

2010年8月23日

作業時間の記録

人によっては自宅勤務やSOHOで、仕事をした時間を記録する必要があると思います。
私の場合、今までGoogleカレンダーとSunbird(Lightning)を併用していたのですが、これには幾つか欠点がありました。

1.作業時間の計算がしにくい。(開始時間と終了時間は分かるのですが、それが何分間あるいは何時間なのか表示するオプションがありません)
2.電車などでの移動時、ネットに接続できない状況では別途テキストファイル等に記録するしか方法がない。(SunbirdでもGearsでもオフラインで表示はできますが書き込みはできません)

そこで役立つのがこのソフト、「timeEdition」。
Windowsはもちろん、MacとLinuxにも対応しています。
基本的な機能は会社のタイムカードと考えていいと思います。
まず使い始めにCustomers、Projects、Tasksの情報を入力しておき、作業の開始時は開始ボタン、終了時には停止ボタンを押す、という流れです。
そしてこのソフトのすごいところがGoogleカレンダーに自動で記録をアップしてくれるところ。
予めPreferencesのCalendarタブでGoogleアカウントを設定しておくと、メインのカレンダーに情報がアップロードされます。

そして上で挙げた2つの欠点ですが、このソフトを使えばうまく解決することができます。
1については、Googleカレンダーに自動アップされた情報の「説明」欄に「Duration: 0 01:14:19」というようなテキストが入りますので、一目で作業時間が分かります。
2については、オフライン時にはもちろんGoogleカレンダーへの自動アップロードはできないのですが、記録自体はできるので、iCal形式のファイル出力機能を使ってアップします。
方法は、停止ボタン押下後、Export Recordsを開いてPeriodのチェックをOn。
右のFrom欄とTo欄にオフラインだった時間を入れてExportボタンを押下。
出力されたicsファイルをGoogleカレンダーからインポート。
ちょっと面倒ですが、この手順でバッチリ同期できます。

オフライン時の記録を、次回オンライン時に自動でアップする機能が付けば、このソフトは最強のタイムカードソフトだと思います。

2010年8月22日

辞書ウォーカー中国語@T-01A

以前こちらに「翻訳ウォーカー j・北京V2」をT-01Aにインストールしたと書きました。
ただやはり旧バージョンということで時々OSに影響を与えて、都度Windows
Mobileの再起動をせざるを得ない状況が続いていました。
いつかは新版を購入したいと思っていましたが値段が値段だけにしばらく様子見の状態でした。

ところが昨日あるブログを見ていたら、BBソフトダイレクトというオンラインショップで割引セールをしているとのこと。
値段は定価1万円強のところ、30%Offで7,186円とあったので即購入に踏み切りました!
早速ダウンロードして使ってみたのですが、OSがハングアップすることもなく快適です!

今回買ったのは「翻訳ウォーカー」ではなく「辞書ウォーカー」です。
共に小学館の日中・中日辞典が付属していますが、違いは
・「翻訳ウォーカー」にはその名のとおり翻訳機能が付いている
・「辞書ウォーカー」には単語学習のためのソフト「中国語で反義GO!」が付属
です。
「辞書ウォーカー」のほうが「翻訳ウォーカー」よりもお得で、しかも翻訳の機能は精度的にあまり使い物にならなかったので、今回前者を選択しました。
また、以前の「翻訳ウォーカー」の辞書は小学館の第一版だったわけですが、今回は第二版です。
付属の辞書も増えていて、ビジネス語、パソコン用語辞典がセットになっていました。
おかげで比較的新しい単語の《人气》(「人気」の意味)、IT用語の《域名服务器》(「DNS」の意味)なんかも検索できます。

いい買い物でした。

2010年8月10日

クラウド

「クラウド=Webアプリケーション」じゃないかと思う今日この頃。

2010年6月11日

面白い記事

日経ビジネスで面白い記事を見つけました。

花嫁の迎えはBMW740でないとダメ

近所でも時々結婚式の車列を見かけるのですが、ここまで面子を気にする花嫁がいるんだぁ、とびっくりです。
こんな女性とは絶対結婚したくないですね。

2010年5月21日

オフライン地図ソフト

T-01Aを、SIMカードを抜いて純粋なPDAとして使っている人も少なくないはずです。
ただ無線LANが使えない場所ではオンライン型のソフトが使えないもしくは使いづらいので、それに代わるソフトがあると便利です。

例えば「モバイルGoogleマップ」の場合、キャッシュ済みのデータがあってもオフライン時には時々「ネットワークに接続できません」というエラーが表示されてしまいます。
もしかすると範囲内のお店の情報などを定期的にダウンロードする仕様なのかもしれません。
こんな時にはオフラインでも使える地図ソフトが役立ちます。
幾つか試したところ「NaviComputer」が「モバイルGoogleマップ」と遜色なく使えるような気がしました。

オフラインで動かす手順ですが、まず付属の「NaviMapper」というWindows PC用ソフトで特定範囲の地図をダウンロードします。
この際、Googleやその他サイトの地図情報を利用します。
最新版ではもしかするとGoogleが外されているかもしれないので、MapSources.xmlのMapSourceList要素内に以下を追記します。
PCでのダウンロードには古いバージョンを使うと良いかもしれません。


<MapSource ID="GoogleMap">
<Copyright>Google.com</Copyright>
<MinZoom>1</MinZoom>
<MaxZoom>18</MaxZoom>
<TileUrl>http://mt0.google.com/vt/lyrs=m@116&hl=en&x=%x&y=%y&z=%z&s=GALILEO</TileUrl>
<TileUrl>http://mt1.google.com/vt/lyrs=m@116&hl=en&x=%x&y=%y&z=%z&s=GALILEO</TileUrl>
<TileUrl>http://mt2.google.com/vt/lyrs=m@116&hl=en&x=%x&y=%y&z=%z&s=GALILEO</TileUrl>
<TileUrl>http://mt3.google.com/vt/lyrs=m@116&hl=en&x=%x&y=%y&z=%z&s=GALILEO</TileUrl>
</MapSource>


地図情報のダウンロードが完了すると「指定した名前.nmap」というファイルができますので、それをWindows Mobile端末に転送します。
転送場所は通常「\Program Files\NaviComputer\Maps」です。
その後、端末の「NaviComputer」を起動し、画面右下の「GPX」をクリック。
上の「GPX Files」の部分を左右に何度かスクロールすると「Offline Maps」という項目に遷移しますので、転送したファイルに該当する地図を長押しして「Show Map」を選択します。
これでオフラインでもストレスなく地図が見られるようになります。

他にこのソフトの素晴らしいところはGPS情報の記録ができるところです。
画面下中央のボタンを押すと記録用画面が出てきます。

なお、T-01AでGPSを使うには、オンライン時に「設定」→「システム」→「Internal GPS」の順に開いて、「Download」ボタンでGPS情報を更新しておく必要があります。

2010年4月29日

方向補語

中国語をマスターする上で避けて通れないのが方向補語です。
最近HSK対策の授業で習ったので、少しずつ紹介できればと思います。

方向補語のことを中国語では《趋向补语》と言います。
全部で28種類あり、漢字一文字のものを基本に、《来》や《去》が連なります。
漢字一文字の場合《简单趋向补语》、その他は《复合趋向补语》と呼ぶそうです。

简单趋向补语复合趋向补语




上来上去
下来下去
进来进去
出来出去
回来回去
过来过去
起来
开来开去
到…来到…去

「…だと…だし、…だと…だ」

何か行動しようとするとき2つの選択肢があったとします。
でもどちらも受け入れがたいという時どう表現したらよいでしょうか?
たとえば、次のような場合です。

「彼から食事に誘われたけど、行く時間がないなぁ。かといって、行かないと失礼だし…」

中国語では次のように言うそうです。

《他邀请我一起吃饭,去吧,我没有时间;不去吧,不礼貌。》

《想当然》

思い込むことを中国語では《想当然》と表現します。
なので、例えばある男女が親しげにしていて、一緒にいる中国人の友達が彼らをカップルだと勘違いしたら次のように表現します。

《他们俩不是男女朋友。你不要想当然!》

一応訳すと
「あの二人はカップルじゃないよ。思い込んじゃだめ。」
となります。

2010年4月12日

XPとBluetooth音楽

先日、無線で音楽を聴きたいと思い、発信機になる(であろう)BluetoothのUSBアダプターを買いました。
お値段は、20元=300円弱と安かったのですが、コントロール用のソフト(stackと言うらしいです)などは何も付いていませんでした。
少し心配しながら家に帰りXPマシンに接続してみると、案の定、認識はしてくれるのですが音楽再生のオプションは表示されず。
調べたところ、音楽再生はVista以降対応したとのことです。
さらに、何時間もかけてフリーのstackを探したのですが見つけられず。。。
ToshibaやBlueSoleilのそれはお試し版はあるのですが機能制限があって、BlueSoleilでは音楽再生が数分で切れてしまう仕様でした。
残念。。。

ということで半ばあきらめて数日間放っておいたのですが、今日いいアイデアが浮かびました。
VMwareなどの仮想環境の上にLinuxを走らせて、そこから無線で音楽再生する、というものです。

結論から言うと、うまくいきました!!

環境は、仮想マシンがVMware Player3.0.1、ホストOSがXP、ゲストOSがUbuntu9.10です。
てこずったのはUbuntuからXP上の音楽フォルダにアクセスするところでした。
VMware Playerのオプションから共有フォルダの設定は簡単にできたのですが、何度再起動してもUbuntu側の/mnt/以下にhgfsディレクトリが表示されず。。。
VMware Toolsは初期起動時にインストールしたはずなのに。。。

と思っていたのですが、VMware ToolsはVMware Playerでダウンロード後、ゲスト側でインストールする必要があるとのこと。
僕の環境では、VMware Playerの仮想CDのオプションで以下を参照すると、「VMware Tools」という名前のCDがマウントされました。
C:\Program Files\VMware\VMware Player\linux.iso
その後、コンソールからインストール。

結果、XPの音楽フォルダにアクセスできるようになり、僕の好きな森山直太朗の曲をBluetoothで聴けるようになりました!

それにしても、音楽再生のためだけに数百MBのメモリーを食っているのは、やはり何か間違っているような気がしてなりません。(笑)

2010年4月5日

Toshiba T-01Aが届きました

先月ご報告してからほぼ1ヶ月間PDAが使えない状態が続いていたのですが、ついに昨日手元にやってきました。
ドコモが販売しているToshiba製端末のT-01Aです。
先日たまたまこちらに遊びに来る知人がいたので、ネットで買ってその方に持ってきてもらいました。
日本以外でも販売されているようで、海外ではTG01という型番のようです。

早速いじってみると、以前使っていたSharpのWS007SHより格段に処理速度が速いです。
なんせ、CPUのスピードが1GHzですからね!!
OSは元々Windows Mobile6.1なのですが、ToshibaのHPから更新ファイルをダウンロードして6.5にアップデートしました。

ところで懸念だった高電社の中国語辞典「翻訳ウォーカー j・北京V2」ですが、やはり問題がありました。
インストールはすんなりできたのですが、ソフトを起動させようとしてもOS自体が固まってしまいます。

その後一日かけて色々な方法を試したところ、どうもSDカードの読み込みに問題がありそうだということが分かりました。
それで「ポケットの手」を起動し、「デバイス設定」→「ストレージ」→「SDカード全般」から「ブロック転送サイズ」を256にして本体を再起動し試したところ、うまく起動させることができました。
ただ、起動時に「日本語手書き入力がありません。」というメッセージが必ず表示されてしまいます。。。
また、1回目のインストールでは中国語入力のIMEがインストールされないようなので、一度アンインストールして、その後またインストールする必要があるようです。
ただ、今でも時々起動時に固まってしまうことがありますので、
一番良いのは「翻訳ウォーカー j・北京V3」を購入することだと思います。

追記:
新しいバージョンをインストールしました

2010年3月23日

Googleの動向

Googleがついに、中国大陸での検索事業から撤退したようです。
3月23日現在、ブラウザーからwww.google.cnにアクセスするとwww.google.com.hkへリダイレクトされます。


画面上には
《欢迎您来到谷歌搜索在中国的新家》
とあって、《新家》の意味がはっきりしないのですが、
「中国での新たなグーグル検索へようこそ」
というふうに訳せると思います。

.cnのドメイン自体は生きているようで、画面上のメニューのうち《视频》(ビデオ)、《购物》(買い物)、《地图》(地図)、《音乐》(音楽)、《翻译》(翻訳)をクリックすると、.cnドメインのサイトに飛びます。
やはり、.cnでの検索サービスは停止した、ということのようです。

2010年3月22日

PHPからIMAP操作

Gmailに送信用のアカウントを作ってPHPからGmail経由でメールを送信したとします。
もしかするとその後、送信済みのメールを削除したいと思うかもしれません。
その場合次のようなコードで対応できます。

注意1.Gmailの設定画面から言語を「English (US)」に設定しておく必要があります。
注意2.このコードを実行すると「Sent Mail(送信済み)」および「Trash(ゴミ箱)」フォルダの中身がすべて削除され、復元することはできません。

// pearのNet_IMAPを利用する
require_once('Net/IMAP.php');
require_once('Net/IMAPProtocol.php');

$imap = new Net_IMAP("ssl://imap.googlemail.com", 993);

// デバッグモードをOnにする
$imap->setDebug(true);

// ログインする
$imap->login("アカウント名@gmail.com", "パスワード");

// 「Sent Mail」フォルダを選択する
$imap->selectMailbox("[Gmail]/Sent Mail");

// 「Sent Mail」フォルダのメールを「Trash」フォルダに移動する
$imap->copyMessages("[Gmail]/Trash");

// 「Trash」フォルダを選択する
$imap->selectMailbox("[Gmail]/Trash");

// 「Trash」フォルダ内のすべてのメールに削除フラグを付ける
$imap->setFlags("all", "\Deleted", "add");

// ゴミ箱を空にする
$imap->expunge();

// IMAPサーバから切断する
$imap->disconnect();


はまったのは、「Sent Mail」フォルダ内で削除フラグをつけてもメールがゴミ箱に移動しないことでした。
Gmailサーバーは削除フラグをセットするコマンドを、当該メールをアーカイブするコマンドとみなすようです。
なので、まずメールを「Trash」フォルダに移動させ、そこで削除フラグを付け、最後にEXPUNGEコマンドを発行する必要があります。
こうすることでやっと、論理削除ではなく物理削除したことになるようです。

最後にNet_IMAPのAPIドキュメントのリンクを貼っておきます。

2010年3月19日

IT関連記事の備忘録

プログラミングの初心者にも熟練者にも、次の連載は役立つと思います。
プログラミングの謎を解明する

また、安全なWebサイトを構築するための情報が、IPA(独立行政法人情報処理推進機構)のサイトで公開されています。
安全なウェブサイトの作り方

2010年3月18日

《堵》,《逐渐》

今日習った2つの単語を紹介します。

まず、《堵》。
「ふさぐ、つかえる」というような意味合いがあります。
以前習ったことがあるのは、交通渋滞を表現する《堵车》という言葉です。
今日は感情を表現するときにどう使えるか教わりました。
例文を一つ挙げます。

《我心里堵得很。》

直訳すると「心がとてもふさがっている。」でしょうか。
不満だけど言葉には出せない場合に《堵》を使うとのことです。
なので、怒ったとき一般には《生气》を使いますが、口に出さずに我慢している場合《堵气》を使うとのことです。

次に《逐渐》。
「だんだん」という意味があるので、《越来越》と置き換えできます。
ただ意味に若干違いがあるようです。
例文を挙げます。
《我越来越喜欢中国。》
《我逐渐喜欢中国。》

上の文とと下の文の違いは何でしょうか?
上は、最初からある程度中国が好きだったがその後もっと好きになった、という意味合いがあります。
下の文は、最初は中国のことが好きではなかったけれどもだんだんと好きになった、という意味です。
なので《越来越》を使うと変化の度合いを強調できるのに対し、《逐渐》は最初とその後で全く別の変化をしたことを表せるようです。
次の例が分かりやすいかもしれません。

《四月份来了。天气越来越暖和了。》
《春天来了。天气逐渐暖和了。》

上の文は、3月も暖かかったけれども4月になってもっと暖かくなった、という意味です。
下は、冬は寒かったけれども春が来たので暖かくなった、という意味合いがあります。

今日習った2つの単語、どちらも日常生活で頻繁に使えそうです。

2010年3月16日

朝マック

中国でもマクドナルドのコーヒーはなかなかいけます。
朝マックだとマフィンとのセットで6元です。
日本円で大体90円弱でしょうか。(残念ながらハッシュポテトは付いてません。。。)
しかもコーヒーは飲み放題。
なので最近はコーヒーが飲みたくなったら朝マックすることにしています。

2010年3月15日

JavaのGenericsへの要望

ずっと開発に関わっているあるJavaベースのWebアプリがあるのですが、数ヶ月前にJREが1.4から5.0にアップデートされました。
今まで1.4準拠の構文ばかり使ってきたのですが、そろそろ5.0以降の構文にも慣れていかないといけないなぁと思い、今日試してみました。
Genericsを意識して使ってみたのですが、「型引数」を指定できるのは確かにバグを減らす効果があると思います。
ただ、「型引数」の影響範囲がsetterやgetterの類だけなのはいただけません。
例えば、ちょっと長いですが以下のようなコードを書いた場合です。

/**
* 標準入力を一行ずつ読み込み、足し算を行う
*/
public static void main(String[] args) {
// Listに型引数としてIntegerを指定する
List<Integer> inputNumbers = new ArrayList<Integer>();

Scanner scanner = new Scanner(System.in);
// 標準入力を一行ずつ読み込む
while (scanner.hasNext()) {
String inputText = scanner.next();
// "exit"と入力されたら標準入力の読み込みを終了する
if ("exit".equals(inputText)) {
break;
}
try {
// 数字の入力の場合のみListに追加する
inputNumbers.add(Integer.parseInt(inputText));
} catch (NumberFormatException e) {
System.out.println("数字を入力してください");
}
}

// ListにString変数の追加を試みる
inputNumbers.add("1"); // ←コンパイルエラー

// ListにStringの"1"が含まれるかチェックする
if (inputNumbers.contains("1")) { // ←コンパイルが通る
System.out.println("文字列の1が入力されました"); // ←このコードが実行されることはあり得ない
}

// ListにIntegerの"1"が含まれるかチェックする
if (inputNumbers.contains(1)) {
System.out.println("数値の1が入力されました"); // ←このコードが実行されることはあり得る
}

int sum = 0;
for (int number : inputNumbers) {
sum += number;
}
System.out.println("合計値 : " + sum);
}


25行目はコンパイルエラーが出るにも関わらず、28行目のコードは問題ありません。
例えば稀な例かも知れませんが、DBから読み出した数値をString型のまま扱ってしまった場合に、ListやMapの存在チェックのメソッドにその変数を渡してもtrueが返らない、なんてことが考えられます。
もし上の例の28行目のような場面でコンパイルエラーが出ればそのようなバグは防げます。
調べたところJava6.0でも同じ仕様のようですので、今後のバージョンでどうなるか見守りたいです。

2010年3月12日

今日の単語

今日、中国人の友人との会話で出てきた単語です。

《兼顾》
「双方(各方面)に気を配る」という意味で、動詞として使えるようです。
次のように使います。
《我们要兼顾身心两方面。》
「私達は体と心の両方に気を配らなければならない。」
《坚固》と声調も発音も同じなので注意する必要があります。

《纯粹》
「純粋な。全く」という意味があります。
性格を表現する時に使えるか聞いたところ、その場合は《纯洁》を使うそうです。
《纯粹》は以下のように使えるとのことでした。
《他的房间纯粹是个垃圾箱。》
「彼の部屋はまるでゴミ箱のようだ。」
友人曰く、意味合いは《好像》と《肯定》の中間だそうです。
なので日本語の「まるで~のようだ」よりももう少し強い語調かもしれません。

微妙なニュアンスを中国語の説明だけを聞いて理解するのは難しいものです。。。

2010年3月10日

ホットコーラ

春節明けというのにこちらは寒い日が続いています。
昨日は風も強くて、体感温度は昼間でも氷点下だったと思います!?(そういえば体感温度ってどうやって測るんでしょう??)
今日は日差しがあるので昨日よりマシですが、それでも寒いことに変わりありません。
鉄観音などのあったかいお茶で何とか寒さをしのいできたのですが、お茶ばっかりというのも寂しいものです。
なので今日は嗜好を凝らして、コーラをレンジであっためて飲んでみました!
感想は。。。

思ったほど不味くない、です。

うちにはないですが、ミントの葉っぱを入れると爽やか飲料になるんじゃないかな、と思ったりしました。
お試しください!

ウィルコム端末「WS007SH」が。。。

数年前にウィルコムから発売されたWindowsMobile搭載の端末「WS007SH」。
解約してから高電社の中国語辞書をインストールして使っていたのですが、最近タッチスクリーンが反応しなくなってしまいました。
CASIOなどの電子辞書に比べて手書き入力の認識速度が速く重宝していたのですが、今は中日辞書を引く場合、キーボードからピンイン入力するしかありません。
まだまだ読めない漢字が沢山あるので、この状態でピンインなしの文章を読むのは大変です。。。

中国で売っているWindowsMobile端末を買うのもいいのですが、日本語の入力・表示に難がありそうなので躊躇しています。
なので、今、同じような機種を持っている複数の日本の友人・知人に譲ってもらえないか問い合わせ中です。

--追記--
どうなることやら、と心配していましたが、数日後とうとうディスプレーに何も表示されなくなりました。。。
これでピンイン引きの辞書としても使えなくなりました。。。(涙)
ちょっとの間、紙の辞書に頼ることになりそうです。
今回の件で電子機器の弱点を改めて思い知らされました。

2010年3月8日

今日の単語

今日初めて聞いた単語を一つ。

《能干》
「能力がある」とか「やり手」みたいな意味のようです。

《他很能干。》
《一个能干的老板。》
のように形容詞的に使えるようです。

以上。。。

2010年3月6日

ネットの時間制限

特にすることがないと、ついだらだらネットをしてしまいます。
そんな時役立ちそうなのがFirefoxのこのアドオン。

LeechBlock

設定画面にはサイトごとに別々の条件を設定できるようにタブがいくつか用意されていますが、すべてのサイトを一様にブロックしたい場合、一番上のテキストボックスに「*」と入力して、その他の条件を設定すればよさそうです。
最低設定すべきその他の条件は、
・「Enter the time periods...」 or 「Enter a time limit after...」
・「Select the days on...」
の2種類の項目です。

仕事でネットを使う場合ブロックされると困りますが、その場合は一時的にOffにすればOKでしょうか?
ただ、そのままOnにせずプライベートで閲覧を続けてしまう場合もありそうですので、根本的な解決にはならないかも知れません。。。

--追記--

ホワイトリスト形式にしたい場合、以下のように設定すればよさそうです。

1.設定画面一番上のテキストボックス1行目に「*」を入力する
2.2行目以降に常時アクセス許可するURLを「+*yahoo.co.jp」という形式で入力する

2行目以降の先頭に「+」の記号を付けるのがポイントのようです。

2010年3月5日

リモートファイルのエディター「ecoder」

サーバー上のソースコード等をブラウザーで編集できるエディターを見つけました。

ecoder

日本語だと「イーコーダー」って読むんでしょうね、きっと。

今までPHPなどのスクリプトは
1.ローカルで編集
2.FTPでサーバーにアップロード
3.ブラウザーで動作確認
という流れを踏む必要がありましたが、このエディターを使うと1と2の作業をまとめられます。
実際に使ってみましたが、とても便利で、デバッグの時間をかなり短縮できます!

注意点は、
・Basic認証などを施してアクセス制限する
・ファイルが編集できない場合、パーミッションを確認する
・ローカルに最新の更新を反映する方法を考える(都度、FTPでダウンロード?)
でしょうか。

いずれにしても、とても便利なWebアプリなので、今後のバージョンアップに期待です。

2010年3月4日

リッチWebアプリをJavaで。「Vaadin」

CodeZineで面白い記事を見つけました。

Javaで軽快に使える「軽量フレームワーク」特集 ~リッチなGUIを構築する「Vaadin」(1)

サンプルはこちらから。

Javaの知識があればこのフレームワークを使って、HTMLやDOM、Ajaxの知識なしにWebアプリケーションが作れるようです。
サンプルを見る限り、GoogleDocsのようなリッチアプリも作れてしまう感じです。

記事の最後にある一文が興味深いです。

プログラマは、ただごく普通のスタンドアロンなGUIアプリケーションを作るのとまったく同じ感覚でプログラムを作ればいいのです。


今までのWebアプリ開発の常識を覆してしまいそうですね。

メモリー増設

一年半ほど前に新古品で買ったLet's Note CF-Y7。
OSはダウングレードでWindows XP、メモリは標準の1Gバイトなんですが、仕事で色々なソフトを同時起動させるとさすがにスワップが頻繁に発生してしまい、不便を感じていました。
メモリを増設しようと地元の電気店を回ってみたんですが、このノートPCが採用しているMicroDimという規格は大都市にしかないとのこと。
あきらめようと思いましたが日本人の友人が一時帰国していることを思い出し、持ってきてもらうことに。
友人の家を宅配先に指定する形で日本のAmazonで購入しました。
そして先週友人がこちらに戻ってきたので、無事、受け取ることができました。
(ありがとうございました、oさん!)

今回買ったのは1Gバイトのメモリなので、増設後は合計2G。
効果は抜群です!
XPの仮想メモリの設定を無効にしても、なに不自由なく動作しています。
これで仕事も捗ります。(きっと。。。)

ユーザー満足度が非常に高いLet's Note。
ぜひ末永く大切に使っていきたいと思います。

2010年2月8日

入試対策本

中国人の友達から大学入試の勉強で使ったという本を譲り受けました。
その名も
《高中生 高考热点 作文预测》
「高校生 大学入試ポイント 小論文対策」
です。
本の紹介と勉強を兼ねて、面白いと思った部分を翻訳していきたいと思います。

最初に出てくるのは、幼稚園児と先生の会話に基づいて小論文を書きなさい、というものです。
会話の部分を下に書き出します。

《幼儿园的小朋友明明问老师说:“为什么蜗牛生下来,就要背个又重又硬的壳呢?它们真是累死了!”》
幼稚園児のミンミンが先生に尋ねました。「どうしてカタツムリは重くて硬い殻を背負って生まれてくるの?疲れちゃうじゃん!」

《“因为它们的身体没有骨骼的支撑,只能爬,爬又爬不快。” 老师说。》
「カタツムリの体には骨の支えがなくて、這うことしかできないからだよ。這っても這ってもあんまり進まないし。」と先生は言いました。

《“小毛虫也没有骨头,也爬不快,为什么它却不用背那个又重又硬的壳呢?”》
「小さい毛虫だって骨がないし這うのが遅いよ。どうしてあの重くて硬い殻を背負わなくていいの?」

《“因为小毛虫能变成蝴蝶,天空会保护它。”》
「毛虫は蝶に変身できて、空が守ってくれるからだよ。」

《“可是蚯蚓没有骨头,也爬不快,更不会变,它为什么不用背那个又重又硬的壳呢?”》
「でもミミズだって骨が無いし這うのが遅いし、しかも変身できないよ。どうしてあの重くて硬い殻を背負わなくていいの?」

《“因为蚯蚓会钻土,大地会保护它。”》
「ミミズは土に潜ることができて、地面が守ってくれるからだよ。」

《明明伤心极了,说:“蜗牛好可怜,天空不会保护它,大地也不会保护它。”》
ミンミンはとても傷ついて言いました。「カタツムリはなんてかわいそうなの!空も守ってくれないし、地面も守ってくれない。」

《“所以它们有壳啊!” 老师安慰明明说,“它们不靠天,不靠地,它们靠自己。”》
「だからカタツムリには殻があるんじゃないか!」先生はミンミンを慰めて言いました。「カタツムリは空にも頼らず、地面にも頼らず、自分に頼ってるんだよ。」

会話の部分はここで終わっています。
実際にあった会話なのでしょうか、子供らしい発想にホッとさせられます。

続く部分に課題が書かれています。
「動物は生きていくために食べ物を捕ることを学ぶ必要がある。一個人が社会に立脚するには社会に適応することを学ばなければならない。日に日に発展している社会の中で能力はますます重要になっている。上の文章をよく読んで、「能力」という論題で文章を書きなさい。文体は問わず、題名は自分で決めなさい。」

中国にも学生の自由な発想に任せて小論文試験をする学校があるってことですよね。

2010年2月7日

「栄養」、「生臭い」

今日中国人の友達と食事をしたときに学んだ単語です。

「栄養」→《营养》
「生臭い」→《腥味儿》

2010年2月5日

台湾旅行

先日、台湾に旅行に行ってきました。
今は大陸からの直行便があって、とても便利です。

今回は大陸で約一年間過ごした後ということで、発音の違いにも気付くことができました。
まず、台湾には軽声がありません。
例えば《没关系》(「関係ないよ」)と言う時、大陸の場合、最後の《系》が軽声なのですが、台湾の場合しっかり伸ばします。
しかも本来4声のはずなのですが、1声っぽく聞こえました。
あと、engの発音がenっぽいです。
また、有名な話ですが、shiをsiのように発音します。
さらに、大陸の普通話はこもったような発音が特徴なのに対し、多くの台湾人は口の空間の前のほうで発声しているようでした。
この特徴は、日本人が話す中国語のそれに似てますね。
なので自分の場合も、大陸の人と話すより台湾人とのコミュニケーションのほうが簡単でした。(汗)
この経験から、きっと自分の発音も大陸の人にはこう聞こえているんだな、と気付かされ、発音を矯正していかないといけないなぁ、と思った次第です。

以上、今回の旅行で言語面で感じたことです。
環境について言えば、台湾の生活水準は日本と大差ないので、とても過ごしやすいです。
なので、また機会があれば行ってみたいと思っています。