scar remover

2009年7月18日

通販のテレビ番組を見たときに、傷跡を治す「scar remover」なるものが紹介されていた。

セブ島に住んでる人たちの顔に傷がある人を沢山見てきたので、顔に傷が付いてしまうのではないかと心配してたが、今のところ傷は付けられていない。

やはり、傷口は気になるようでこのような商品を通販で紹介しているのだと思った。

日本では見たことがないので欲しいと思った。

傷口が治る前と後の、BeforeとAfterの映像で信じられないくらい傷跡が治っているが、

映像内では体の一部分しか写っておらず、別の人がBeforeとAfterで演出しているのか、

またはBeforeとAfterの前後をさかさまにしたダイエットのインチキ広告のように、

傷口を付ける前をAfterの画像として撮影して、傷口を付けたあとをBeforeの画像にしてるのじゃないかと疑ったが、

それはありえないですよね・・。

意外と禁煙

2009年7月17日

セブでは日本と比べタバコは普及している。

新宿などは条例(違法ではない)で歩きタバコが禁止になったり、東京の駅のホームも禁煙になり、

私にとっては嬉しい限りだが、セブでは歩きタバコも多く見かける。

マクドナルドでふと気づいたが、禁煙席、喫煙席と分かれておらず恐らく全席禁煙で意外だった。

翻訳の難しさ

2009年7月15日

サイトの翻訳を行っているが、単に訳すだけでないので難しい。

ショッピングモールのおもちゃ屋に置いてあるおもちゃのパッケージに

いかにも日本人以外の人が翻訳しましたという怪しげな日本語を見てニヤニヤしてたのだが、直訳をすると同じような翻訳をしそうなので恥ずかしい。

『ダ・ヴィンチ・コード』の翻訳者のトーキングイベントがあったが(自分は言ってない)、

翻訳者にとって大事な点は、「日本語が好き」「調べ物が好き」「本が好き」らしい。

Moalboal

2009年7月13日

月曜日に休暇を頂き、日・月とモアールボアールというビーチに行ってきた。

看護婦をしている教会の友達と、その病院の同僚とその兄、のメンバー。

もう一人同じ病院で看護師をしている教会の友達が来られなくなったので、

予想はしてたが男女比は男:女=2:5と女性が多かった。

この日まで知らなかったが、来週の日曜日が誕生日らしく、誕生日祝いでビーチに行くようだ。

フィリピンではビーチに行って誕生日を祝うということが多いそうだ。

日本では誕生日の人に周りがおごると伝えると、誕生日だけ日本に行きたいといって知多。

車は友人に借りている大きな車だったが、おそらく最大人数は超えているはず。

看護婦をしている人の兄はバイクで来ていたが、ノーヘルが合法のエリアもあり、

ノーヘルだった。

ちなみに車の免許はATとMTで分かれていないそうだ。

それにしても車も免許も家もあり、最近MacBookも買ってたし、おまけに携帯電話は

iPhoneを使ってるし結構リッチだ。

途中で山道があったが、携帯電話のアンテナが0になった。

すぐ壊れそうな家が沢山あったので、台風は来ないか聞いたが台風は来るそうだ。

2,3時間くらいかかりビーチに到着した。具体的な場所を知らないようで少し迷った。

意外とビーチでは携帯電話は圏外ではなかった。

それにしても、ゲップをする回数が多い(しかも女性)ので、フィリピンの女性は

簡単にゲップをするのかと尋ねると、仕方ないときはそのままするし、

したあとに「Excuse me」と言うと言ってたが、まるでラップをしているかのように

やりすぎ・・・。

砂浜でビーチバレーをしたが、ネットがあると難しいのでネットなしでやった。

風も吹いていることもあり、続けるのは難しい。しかも指や手首が腫れてしまった。

サーフボードをしたが、ボードに乗るのも難しいが、波に乗せることやタイミングも難しく、まともに出来なかった。

夜暗くなりもう寝るのかと思ったら、また海へ行き夜の海を楽しんだ。みんな意外と体力ある。

そのあと、外にあるカラオケに行った。曲の番号を入れて5ペソを入れて開始する。

洋曲かタガログのしかなくて、歌えるレベルではないが唯一知ってるのが、

ブリトニーのtoxicと映画で知ってたNever ending Story  を歌うことにした。

その後で睡眠をとることにしたが、女性達はベットで寝てたが、私は床で寝ることにした。

12時過ぎてたが、これでもまだ音楽を聞いたり歌ってる人も居て、なかなか寝付けなかった。

本当にフィリピン人は歌が好きだな。

次の日も海水浴をして食事などをして帰ったが、前回ビーチに行ったときと同じく。

1日中寝ました。

御腹も痛かった。。

Balance

2009年7月11日

自宅のアパート(Condominium)の仕様料金の控えを読むと、レンタル料などに

Balanceの料金を足して合計金額を出している。

Balance - レンタル料など = 合計金額 ではなく、

Balance + レンタル料など = 合計金額 ということになっている。

Balanceは残高なので、最初に契約した際に支払った前金じゃないのだろうか・。

おかしいので、聞いてみると実際は違い未払いの分(Blance)が持ち越されていたようだ。

家賃を滞納していたようだ・・。

しかし、手数料はないそうなのでよかったが、冗談で言ったのかわからないが、

「次回払わなかったら手数料頂くわよ」と笑顔で言われた。

契約時に支払った前金は、家を出るときに返ってくるが、現時点で家賃に適用できないそうだ

日本に帰るときはペソは円にしたいので、最後の日にそんな大金が返ってきても困るんですけどね・・。

ディレクトリ内検索の再帰処理

2009年7月10日

ディレクトリ内検索に再帰処理を使った。

■引数

$dir・・・中身を調べたいディレクトリ名,

$dirnameには探すディレクトリ名を指定する。

■返り値

検索するファイルのフルパス

の具合で作ってみた。

function searchDirectory ($dir, $dirname) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$fullpath = $dir.DIRECTORY_SEPARATOR.$file;

if (is_dir($fullpath) && $file != ‘.’ && $file != ‘..’ && file_exists($fullpath)) {
if ($file == $dirname) {

echo $fullpath;
return $fullpath;
break;
} else {
self::searchDirectory($fullpath, $dirname); // 再帰させている
}
}
}
}
}

ファイルはあるにも関わらずNULLが返って来る。

で記載しているreturnできちんと返しているのに・・。さらにbreakまでおまけでつけた。

デバッグ用に、で書いてる、echoで出力されているので、returnの部分を通っているのは確かだ。

再帰で分岐していった処理でNULLで上書きしているのかもしれない。

クラス変数を用意。

var $flg = 0;

function searchDirectory ($dir, $dirname) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($this->flg == 1) {break;}
$fullpath = $dir.DIRECTORY_SEPARATOR.$file;
if (is_dir($fullpath) && $file != ‘.’ &&
$file != ‘..’ && file_exists($fullpath)) {
if ($file == $dirname) {
$this->flg = 1;
return $fullpath;
} else {
self::searchDirectory($fullpath, $dirname);
}
}
}
}
}

一度見つけたらクラス変数のフラグを変えて、他の処理を強制的に止めてしまおうと思った。

しかし、NULLが返る。

もしかすると、再帰される前のメソッドにreturnしているだけで、大元のところまでreturnされてないのかも??

仕方ないので

クラス変数を追加し、

var $fullpath;

function searchDirectory ($dir, $dirname) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($this->flg == 1) {break;}
$fullpath = $dir.DIRECTORY_SEPARATOR.$file;
if (is_dir($fullpath) && $file != ‘.’ &&
$file != ‘..’ && file_exists($fullpath)) {
if ($file == $dirname) {
$this->flg = 1;

$this->fullpath = $fullpath;

} else {
self::searchDirectory($fullpath, $dirname);
}
}
}
}
}

クラス変数にフルパスを格納させて、それを取得することにする。

File_Archiveについて

2009年7月10日

PEARのFile_Archiveクラスを使うことにした。

「pear install File_Archive-1.5.4」でインストールできる。

カレントディレクトリに「File_Archive-1.5.4」をダウンロードして置かなくても、勝手に取ってくれた。

今回、File_Archiveを使ったzip解凍を試みた。

PHPファイルと同じディレクトリに、/hogeディレクトリがあり、bar.zipがその中に入っている。

解凍先は/hogeディレクトリであるとき例。

$file_nm = ‘./hoge/bar.zip’; // 解凍するファイル

$decompression_dir = ‘./hoge’; // 解凍先

File_Archive::extract(
File_Archive::read($file_nm.’/’),
File_Archive::appender($decompression_dir)
);

この方法で上手くやれたのだが、

で示しているように、zipファイル名の後に「/」がないと上手く出来ない上に、

このzipファイルが0バイトのファイルになってしまうという副作用付き

これに気が付かずに、「/」を追加することを知った後で「/」を追加してもなかなか

解凍が出来なかった。

ZipArchiveやArchive_Tarと違ってややこしい仕様だった。

ディレクトリパスのセパレータは「DIRECTORY_SEPARATOR」を使って、クロスプラットフォーム向けにしようと思い、

「$file_nm.’/’」の代わりに「$file_nm.DIRECTORY_SEPARATOR」なんてやっても失敗する。

Windowsではセパレータがバックスラッシュだから「$file_nm.’\\’」(※エスケープのため\は2つ)なんてやってみてもダメであった。

ちなみに、このextractメソッドは、成功したらTRUEを返すとかではなく、成功したらFALSEが返り、失敗するとエラーメッセージが返るようだ。

$res  = File_Archive::extract(
File_Archive::read($file_nm.’/'),
File_Archive::appender($decompression_dir)

);

のように、$resに入った値を

if ($res == FALSE) { echo ‘ok’;}

または

if ($res == ”) { echo ‘ok’;}

とやれば「ok」が出力される。

「PEAR とは、PHP ユーザのためのオープンソースコードの構造化されたライブラリです。」

PEARの仕組みが未だに良くわからないが、ユーザが自分でライブラリを提供したものの詰め合わせみたいなものだろうか?

同じような機能のものがいくつかあるし、仕様としてもあまりうれしい仕様じゃないのもあったりしてますし。

そうであれば、今回自分の作った副産物とかも提供したいですね。

present

2009年7月10日

presentの単語は、「動詞」、「名詞」、「形容詞」の3種類がある。

しかも品詞によって意味が微妙に違い、日本語では「プレゼント」の意味でしか使わないこともあってややこしい。

発音の違いは、

詞のときはアクセントがになる。」という「名前の法則」なんて物があり、

アクセントを前にするだけで名詞になったりしていたが、

この単語は名詞はpre‘znt 、動詞はprize’ntと異なっていた。

他にも知らずに同じと思い切ってる単語がありそうなので注意しないといけない。

シンガポールの英語

2009年7月9日

オフィスに向かうときタクシーに乗ったとき、タクシーのドライバーにシンガポール出身かを聞かれた。

日本人だと答えると、シンガポール人の英語の発音に聞こえるとの事。

シンガポールは一度行ったことはあるが、小学2年くらいの事なので英語の発音

などは意識してなかったのでどんな発音かはわからない。

英語が上手いと言われたが、オフィスの行き先と、シンガポール出身かと聞かれて

「No. Japan.」しかしゃべってないんですけどね・・。

オフィスの行き先を言ったときに、タクシードライバーに「はぁ?」と言われるのが多くて、

癪なので(何様だよ。こっちは客なんですけど?せめて「Perdon?」とか「Excuse me.」と言えと心の中でいつも思っている)、

今日はいつもよりもゆっくりでかい声で言ったのは確かなんですけどね。

まぁお世辞とは思うが、シンガポール人の発音することが上手いという意味だったのかもしれない。

tar.bz2の解凍 in PHP

2009年7月8日

tar.bz2の解凍を「Archive_Tar」クラスでやろうとしたが、

http://pear.plus-server.net/package.filesystem.archive-tar.archive-tar.html

によると、コンストラクタの2番目の引数に’bz2′と書くだけで出来そうなのだが・・。

下記の簡単なサンプルで実行したが・・。

<?php

require_once ‘Archive/Tar.php’;
$file_nm = ‘./test/firefox-3.5.tar.bz2′;

$tar = new Archive_Tar($file_nm, ‘bz2′);
$res = $tar->extract(‘./test’);
var_dump($res);

?>

結果は「bool(false) 」。

「tar.gz」は解凍できることを確認したし、2番目のメソッドに‘bz’TRUEと書くだけでOK。

http://pear.plus-server.net/package.filesystem.archive-tar.extract.html

ここにエラーメッセージの一覧があるが、どうやってエラーメッセージを取得するかが不明。

try {
$tar = new Archive_Tar($file_nm, ‘bz2′);
$res = $tar->extract(‘./test’);
}
catch (Exception $e){

echo $e;

}

このように例外をキャッチしてやって$eに入ってるのかと思いきや、

エラーになってもキャッチされない・・。


エラーメッセージ一覧の上に「Possible PEAR_Error values」なんて書いてあるがそれと関係してそう。

PEAR_Errorのメソッド一覧は下記のサイトにあるので、

http://pear.plus-server.net/core.pear.pear-error.html

「echo PEAR_Error::getMessage();」をソースに加えても下記のエラー。

Fatal error: Using $this when not in object context in C:\xampp\php\PEAR\PEAR.php on line 959

「 もし ‘gz’ もしくは ‘bz2′ であれば、アーカイブが gzip もしくは bz2 を用いて圧縮されることを示します。」と書いてあるのに・

圧縮するときにしか使えないのか?そもそもこの日本語を信頼していいのだろうか・・・。