携帯メールで文字化け

携帯メールを送信する必要があるのですが、本文が文字化けしてしまいました。
正確には Bse64 エンコードした文字列がそのまま表示されてしまいました。

以下が、その状態のソース部分です。

...
// header
$send_header = "MIME-Version: 1.0rn" ;
//$mail_header .= "Return-Path: {$from}rn" ;
$send_header .= "From: {$send_from}rn" ;
$send_header .= "Reply-To: {$send_from}rn" ;
$send_header .= "X-Mailer: PHP/" . phpversion() , "rn" ;
$send_header .= "Content-Type: text/plain; charset={$encode}rn" ;
$send_header .= "Content-Transfer-Encoding: base64rn" ;
...
// subject
$send_subject = "=?{$encode}?B?" . mail_send_convert( $subject, $convert ) . "?=" ;
// message
$send_message = chunk_split( mail_send_convert( $message, $convert ) ) ;
//send
return mail( $send_to, $send_subject, $send_message, $send_header ) ;

Thunderbirdでは修正前で問題ありません。
色々調べてもおかしいと思われる点が見つかりません。
ヘッダーの改行もCRLFが正しいようです。

うーん…あ、ヘッダーの最後に余分なCRLFが…

削除してテストしてみると、ちゃんと携帯で本文が見れました。
単純に削除して終了…とすると、ヘッダーを追加・削除すると同じミスをする恐れがあるので、以下のように修正しました。

// header
$send_headers = array() ;
$send_headers[] = "MIME-Version: 1.0" ;
//$mail_headers[] = "Return-Path: {$from}" ;
$send_headers[] = "From: {$send_from}" ;
$send_headers[] = "Reply-To: {$send_from}" ;
$send_headers[] = "X-Mailer: PHP/" . phpversion() ;
$send_headers[] = "Content-Type: text/plain; charset={$encode}" ;
$send_headers[] = "Content-Transfer-Encoding: base64" ;
...
// subject
$send_subject = "=?{$encode}?B?" . mail_send_convert( $subject, $convert ) . "?=" ;
// message
$send_message = chunk_split( mail_send_convert( $message, $convert ) ) ;
//send
return mail( $send_to, $send_subject, $send_message, implode( "rn", $send_headers ) ) ;

配列と implode() を使って対策をしています。

この方法は、 HTML タグの出力、CSVの出力など、応用範囲が広いので、覚えておくとバグの少ないコードを書くことができます。

さらに VAIO Type G で Ubuntu

前回の SDHC + USBカードリーダライタ でのブートに味をしめて、さらに実験をしてしまった。

SDHC + USBカードリーダライタ だと USBメモリー より高速だったが、USBカードリーダライタが場所を取り、せっかくのノートパソコンなのにスマートじゃない。
今回は microSDHC 専用のスティックタイプの USBカードリーダライタにチャレンジした。

スティックタイプの USBカードリーダライタは、2Gバイトまで対応の商品が多いため、4Gバイト対応かきちんと確認する必要がある。
また、4Gバイトの microSDHC は、KINGMAX製のものは避けた。格安なのだが、USBメモリーはブート不可だったため、不安がある。
結局以下の商品を選択した。

microSDHC : SILICON POWER microSDHC 4G
USBカードRW : BUFFALO BSCRMSDU2WH

今回は IOエラーが頻発した。あーあ、失敗か…
しかし、別の USB端子で実行してみるとすんなり成功。

VAIO Type G には USB端子が左右に 2箇所ある。
左は AC電源端子のすぐ横だ。右はなんと縦になっている。
左で IOエラーが頻発。右ですんなり。
どうやら電源のノイズが影響しているようだ。試しに USB延長ケーブルを使うと問題は発生しない。

今回はちょっと勉強になった。

どーなってんの? MSDN

Web開発をしているため、仕様やトラブルシューティングのため MSDN のお世話にならざるを得ない。

しかし、アドレスが変更になったようで、いろいろなサイトからのリンクが切れている。
同じ Microsoft のサポート情報からのリンクも切れていて、ひどい状況だ。

このような公開情報のアドレスを変更する場合、前のアドレスから飛ばすようにしたりするべきだと思う。

情報の出し惜しみをしていると思われても仕方ないんじゃないだろうか。
これ以上ユーザー離れをされないためにも、対策をしてもらいたいものだ。

しないだろうけど…

再び VAIO Type G で Ubuntu

以前、VAIO Type G (VGN-G2AAPS) で USBメモリーに Ubuntu をインストールしました。
速度に関しては、USBメモリーなのでこんなものだと思っていました。

今回、パソコン工房 松江店 の開店に行ってきました。そこで中古の Maxell の SDHC 4G を、 1,500円程で購入しました。
SDHC の方が USBメモリーより高速なはずなので、Ubuntu の快適な動作が期待できるのでは…

と、思ったのですが、現在の Linux のドライバーでは VAIO Type G の SDカードスロットを認識しないことが判明しました。
どうにかできないかとネットを調べてみると、SDHC + USBカードリーダー で OS を起動した例があることがわかりました。

参考 : SD カードからブート(1)

さっそく YAMADA電気 米子店 でUSBカードリーダーを購入してテストしました。
ブート出来ないUSBカードリーダーもあるようですが、あまり情報がありません。
ですので、USBカードリーダーの選択は賭けでした。

SDHC : maxell M-C6SDHC4G
USBカードリーダー : BUFFALO BSCRSDU2BK

USBメモリー : BUFFALO RUF-C8GS-BK/U2

賭けの結果は…ビンゴでした!
USBメモリと同様の方法でインストール・起動できました。

速度は大幅に改善しました。

USBメモリー : 起動 約 77秒、ログイン 約53秒
USBカードリーダー : 起動 約 50秒、ログイン 約24秒
(参考)内蔵 HD Windows XP Professional : 自動ログイン 約66秒

まあ、実用レベルです。Firefoxの表示で画面が暗くなって待たされるのも解消しました。

小さくて安いし、今後は SDカードを活用しようと思っています。

SOTEC WH3312B で CPRM 再生

正月に中古で購入したノートパソコンで、地デジを録画した DVD が再生できなかった。

ノートパソコンは SOTEC WH3312B。結構しょぼいスペック。
一応スーパーマルチドライブで、CPRM 対応らしい。
地デジを録画した DVD が再生できないのは、付属ソフトの WinDVD for SOTEC が CPRM に対応していないからだ。

ためしに借り物の Nero 8 をインストールしたら、ちゃんと再生された。
ただ、Nero 8 はちょっと高い。DVD再生のみの安いソフトが欲しい。

VAIO Type G では、WinDVD で CPRM に対応出来たので、WinDVD 9 を購入してみた。
DVD再生ソフトでは最安だったのだが、大失敗だった。

とにかく CPRM の DVD を再生しようとすると異常終了する。
ネットで検索すると、同様に動かないという報告が大量にあった。
アップデートを行っても同様だった。
OSを再インストールしてから再度挑戦しても同様だった。

昨日チェックすると新しいアップデートがあったので、適用しようとしたら、前のアップデートをしているとダメだとのこと。

なんじゃそれは!

仕方ないのでアンインストールして再インストール、アップデートを行う。

しかし、異常終了こそしなくなったものの、画像が表示されない。
もう一度再インストールをしようとしたら、なにやらエラーでアンインストールが失敗。
これが原因で不具合が出そうで、気持ち悪いので OS を再インストールした。

WinDVD が悪いとは言わないが、このパソコンでは動かないようだ。

この時点で WinDVD に見切りをつけたが、CPRM を再生するのに意地になってしまっていた。

再度ソフトを検索すると、ソースネクストが PowerDVD EXPERT 2 を販売していた。
これもかなり安い。
嫁さんに許可をもらって購入してみた。

結局、他のDVD再生ソフトと同じぐらいの出費になってしまった。

ダウンロード版を購入して解凍。出来たフォルダを探すとインストールの説明があった。
ダウンロード版なので、まず DirectX のランタイムを自分でインストールする。
それからインストール。
初回起動時に CD-Key を入力して登録。
CPRM を初めて再生する場合は管理者権限で PowerDVD を実行する。

あっさり成功…今までの苦労は何だったのか…

いろんな面で WinDVD より完成度が高いと思います。
インストール後の安定性・操作性も満足しています。
スナップショットも簡単にできます。
DVDの再生のみであれば、かなりお勧めです。

ぐだぐだな日

今日はぐだぐだです。

ひさびさにFCKeditorの資料を整備しようとしました。

FCKeditor 2.6.3 がリリースされていました。
最新版で資料を作成したいので、再度環境を作成しようとしました。

仮想マシンを起動しようとした処、半分ぐらいの速度になっていました。
VMwareの修復インストールをして対応しました。
仮想NICを無効にしたり、設定が必要です。Windowsの再起動も必要です。

VMware上で CentOS 5 を起動した処、カーネルのアップデートが来ていました。
VMware Tools の再設定が必要でした。

ドキュメントを開いた処、OpenOffice のアップデートが来ていました。
なかなかダウンロードが完了しません。

なにも同じ日に集中してくれなくても…

まあ、こんな日もあります。

VAIO Type G と Linux の相性

数ヶ月前にパソコン工房FC松江店で、中古のノートパソコンを買いました(もちろんローンで)。
(パソコン工房FC松江店は、現在は「DIGITAL COMPUTER STORE ☆ SHIMANE パソコン館 松江店PC-Studio(通称 : パソコン館 松江店)」に変わったそうです。)

ノートパソコンは SONY VAIO Type G (VGN-G1AAPS) です。

リカバリーDVDを作成可能でしたので、早速作成して出荷状態にしました。
リカバリーDVDがあるので Linux をインストールしてもよかったのですが、以下の理由で Windows XP のままにしました。

・自分以外の人が使えるように
・WebシステムのXPでの検証用に
・バッテリー管理のユーティリティーが使えるように

指紋認証もいいのですが、Administrator と 通常アカウントで別の指紋にしろと言われたので、そんなバカな仕様には従えないのでアンインストールしました。

とはいえ、このパソコンは Centrino アーキテクチャーなので、Linux も普通に動くことが期待できます。
また、GPU も Intel 製なので、Compiz Fusion (3Dデスクトップなど)が使えるはずです。

Ubuntu 8.04 を試してみたところ、無線LAN も Compiz Fusion も問題なく動きます。

さらに、このパソコンは USB ブート可能なんです。

ムズムズしてきたので、嫁さんにおねだりして 8GB の USB メモリースティック(BUFFALO RUF-C8GS-BK/U2)を購入しました。
この USB メモリで BOOT 可能かどうかは賭けでした。

早速 USB メモリースティックにインストールしました。

注意点としては、ブートローダーのインストール先。
「インストール準備完了」(7/7)のところで「Advanced…」をクリックして USB メモリースティック にインストールするようにしましょう。
最悪、Windows が起動できなくなってしまいます。

そして、再起動。

そのままでは起動しませんでした。
原因はブートローダー(GRUB)の設定です。

1. 再起動して ESC キーを押します。
2. 起動する OS の選択が表示されるので、一番上を矢印キーで選択します。
3. e キーを押します。編集モードになります。
4. root (hd1,0) の行を矢印キーで選択します。
5. e キーを押します。
6. エディタと同様の操作で root (hd0,0) に修正します。
7. Enter を押します。
8. b キーを押して ブートします。

無事にログイン画面が表示されました。
HD のようにキャッシュメモリが無いので、結構遅いですが、無傷で Linux が使えるので OK です。

さて、ログインと思ったら、デスクトップが表示されません。
以下を参考に設定をしましょう。

Ubuntu 8.04をeee pcのSDHCやUSBスティックにインストール後ログイン出来ない問題の暫定対処

さらに、起動時に毎回 GRUB を操作するのは大変なので、以下のファイルを修正します。

/boot/grub/menu.lst

(hd1,0) の部分を (hd0,0) に修正します。

ログイン画面で Ctrl + Alt + F2 などでコンソールを表示して操作するのが良いでしょう。

修正できたらリブートします。

大変そうですが、最初だけです。今は便利に使っています。

Centrino のパソコンだと安心ですね。

ヴィヴァルディ最高!!

仕事が一段落しそうです。
気持に少し余裕が出来たので、外出のついでにCDを買いました。

買ったのはヴィヴァルディの四季がメインのCDです。

最近、資生堂のマキアージュのCMで流れている曲には、ヴィヴァルディが使われているようです。
ヴィヴァルディの曲は耳に残るフレーズが多いので、しっかり聞きたいと思っていました。

ヴィヴァルディの四季と言えば「春」の第1楽章が有名ですが、あきらは高校生の時に友達に聞かせてもらった「冬」の第1楽章が聞きたかったのです。

やっぱり、かっこいい。

ロックギターをやったことのある人はわかると思います。
とにかく、かっこいい。

「夏」の第3楽章もかっこいい。バイオリンを始めたくなりました。

今は Ubuntu の Rhythmbox でヴィヴァルディを聞きながら、仕事をしている合間です。とても良い気分です。

UPSを買いました!

以前は中古のUPSをもらって使用していました。

今住んでいる所は、大雨のときなど結構停電するので、年に2,3回はUPSのお世話になっていました。

しかし、バッテリーの寿命で半年ほど前から使っていませんでした。
しばらくは幸運にもブレーカーが落ちたり停電したりしなかったのですが、実家から炊飯器をもらって交換したり、冬場で加湿器を使用したりしたため、ときどきブレーカーが落ちるようになりました。

Windows 2000 に対して Vista はレジストリが壊れやすいらしく、ブレーカーが落ちるたびにレジストリの復旧が必要でした。
復旧できていたので、まあいいかと思っていたのですが、とうとう起動できなくなってしまいました。
その後は「KNOPPIX でデータをレスキュー!」に書いたように復旧しました。

さらに仮想マシンを外付けUSBディスクに移動し、ノートパソコンにつなげました。
メールや仮想マシンはノートパソコンで実行するようにして一応の対策を行いました。

しかし、せっかくの無線LAN内蔵ノートパソコンが活用できません。
また、デスクトップに比べて性能が低いため、作業効率に影響があります。

そこで根本対策としてUPSを検討しました。

UPSは「高い」という思い込みがあったのですが、調べてみると、停電時に2?3分もつもので1万2千円程度のものがあることがわかりました。
寿命は2?3年ですので、電気代を含めても月千円程度の保険をかけるようなものです。

手動でシャットダウンするにも十分な時間と判断したので、米子市内で取り扱っている所を探しました。
だいたいは取り寄せとの回答でしたが、デオデオは在庫があるとの事なので、さっそく購入しました。
機種は「omron BZ35T」。一番手軽な機種です。
管理ソフトは1万円程度で別売です。今回は不要と判断しました。

いまは安心して、デスクトップのメインマシンでメールを受信し、仮想マシンを実行しています。

SOHOで開発を行っている方や、自宅のデスクトップで仕事を行っている方には、ぜひUPSと外付けディスクを準備されるようお勧めします。
一回の復旧作業時間で、十分もとが取れると思います。

遅すぎる!Microsoft Update

Windows XP の Microsoft Update は遅すぎる!

Linuxのディストリビューションをインストールした直後のアップデートに、子1時間かかるのは我慢できる。
その後が楽だからだ。

しかし Microsoft Update では、毎回数十分を必要とする。
更新のスキャンにどんだけ時間をかけるのか。
しかも、アップデートのアップデートのアップデート…などと冗談のようなアップデートが必要だ。
最初から最新版を配布してくれれば良いのに。

また、自動更新を有効にしている場合、手動でアップデートしても再度アップデートされる。

また、バックグラウンドでの更新のチェック時にかなりパフォーマンスが落ちる。
ディスクをアクセスしているので性能の良いマシンでも同様だ。

さらに、自動更新を停止するとアラートが表示されて「うざい」。

しっかりしてよ。

お客さんの時間を大切に考えて欲しいもんだ。