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

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。
ぜひ末永く大切に使っていきたいと思います。