無線局免許が届きました

以前、アマチュア無線三級が合格したという話しをしましたが、無線局免許を変更しました。ようやく免許が届きました。

今回も電子申請です。申請から1ヶ月かかりましたが、何のことはない、私が返信用の封筒を出していなかったのです。封筒を送ったら、すぐに送られてきました。

電子申請に一つ注文。審査が終了したら、メールでもいいから連絡くれたらいいのに。お願いします。おそらく、申請したら同時に返信用の封筒を送らなければいけないのでしょうね。

WordPressをWordPress Automatic Upgrade Pluginで自動更新

PCやサーバーを使っていると、どうしてもソフトウェアのアップデートをしなければいけません。Windowsですと自動的にアップデートしてくれるのでいいのですが、オープンソースのサーバーアプリケーションですと、ダウンロード、ファイルのアップ、更新と一連の作業を行わなければなりません。

サーバーのアプリケーションの更新が重要なのは理解していますが、面倒であるということも確かです。納品したお客様の中には、作業費を出していただけない場合もありますので、無償で作業するか、最悪そのままで運用となります。

なるべく手間をかけないことができないかということで、現在このブログで利用しているWordPressの自動更新のプラグイン(WordPress Automatic Upgrade Plugin)を試してみました。

まずは、あまり影響のないサイトで試してみます。インストールはいつものWordPressのプラグインのインストールと同じ。プラグインのディレクトリにコピーするだけです。

管理画面でWordPress Automatic Upgrade Pluginを実行すると、あとは画面にしたがっていくだけです。テーブルのバックアップに始まり、最新のWordPressのダウンロード、そしてインストールまでやってくれます。

日本語の辺りで不具合が出るかと思いましたが、問題なしです。

もし、WordPressの更新があれば、管理画面で表示してくれます。最新のWordPressはプラグインの更新も教えてくれますので、こちらも併せて使えれば、常に最新の状態にしてくれます。

これは簡単です。トラブルが発生しても、バックアップファイルで戻せるので、良しとしましょう。

追記

以前にWordPressのソースを修正して対応した、RSSでの時間がUTCになってしまういうトラブルですが、WordPress Automatic Upgrade Pluginを実行したら元に戻ってしまいました。当たり前のことでしょうが、元のWordPressが対応してくれないとだめですね。

ランチがまずいと、気分が沈む

今日、税理士の先生のところに会社の決算の件で行きました。その帰り、ランチを食べようと横浜ヨドバシの地下のとんこつラーメン屋に。

そのラーメン屋はテレビのランキングで1位を取ったと、大々的にポスターを貼って宣伝。大丈夫だろうと入ってみる。カウンターには店主の創業当時の感動ストーリーといった小冊子も置いてある。

しかし! 出てきたラーメンはまずい。私はあまり味にはうるさくない方ですが、とにかく麺がまずい。

麺がアルデンテ。芯がある。粉っぽい。

これは何かの間違いと思って、替え玉を注文する。そのとき

「麺が煮えてなかったので、今度は柔らかめで。」

と注文。

またまた出てきた麺は、歯ごたえがよくてコリコリしている。この店はそういう麺みたいです。隣の人は堅めの麺を注文していましたが、どんなものが出てるのか・・・。

早々に退散し、違う店で食べ直そうかと思いました。

でも、とんこつラーメンって細麺と聞いていましたが、こんな生煮えの麺でしたか? それがこの店のとんこつラーメンだよと言われてしまえば、なにも言えませんが。でも、それは私には理解できない・・・。

あー。ランチのおかげで気分が悪い。あと何回食事ができるとのはいいませんが、まずいランチに当たったときは、とても損した感じ。

そういえば、うちの娘の行きたい学校の選び方は、おいしそうな学食がある学校だそうです。食べるってことは大事なのですよ。

全角文字は2バイトではないのでした。

タイトルの件、考えてみれば当たり前なのですが、お客さんからの仕様で引っかかりました。ここでいう全角文字は、マルチバイト文字のこと。

フォームに文字を入力する処理で、入力した文字の長さをチェックする処理が必要です。そこで文字長でチェックするか、バイトでチェックするか。

これをCakePHPのバリデーションで用意しているmaxLengthのルールでチェックしたところ、何も考えずに内部コードのバイト長でチェックしていまいます。これをお客様から指摘されました。希望としては、全角文字を2バイトでチェックして欲しいとのこと。

例えば、「あああ」は6バイトではなく9バイトとして判定されます。これは内部のコードがUTF-8だからです。CakePHPのバリデーションで正しく文字数で判定するには、maxLengthの処理をmb_strlen()で変更してあげます。詳細な対応方法は、こちらのサイトをご覧ください。

ここで簡単な実験です。こんなコードと結果です。

<?php

$str = "あああ";

echo(strlen($str)); // 9

echo(mb_strlen($str));  // 9

echo(mb_strlen($str, ‘UTF-8’));  // 3

echo(mb_strlen(mb_convert_encoding($str, ‘SJIS’, ‘UTF-8’), ‘SJIS’)); // 3

echo(strlen(mb_convert_encoding($str, ‘SJIS’, ‘UTF-8’)));  // 6

?>

UTF-8のままですと、全角文字は2バイトにはなりません。しかも、正しく文字コードをしてあげないと正しい文字数になりません。

一旦、シフトJISに変換してあげて、mb_stringではないstrlen()で全角文字を2バイトで計算してくれます。

昔の人間ですと、どうしても全角=2バイト、半角=1バイトと考えてしまうのですが、この考え方は古いかもしれませんね。




社内サーバーの更新検討

社内で使っているデルのサーバーは、ファイルサーバー、IMAPサーバー、AsteriskのソフトPDXのサーバーとして利用しています。メモリ1GBでディスク100GB4台をRAID5です。

導入して4年目、多少トラブルがあったものの、とりあえず無事に動いています。

しかし、いつ壊れるかもしれません。ファイルサーバーのバックアップは毎日取っていますが、安心してはいられません。しかも、そろそろディスクの残量がなくなってきています。

そこで、サーバーの更新を検討してみます。条件としては、

  • ディスクは1Tバイト以上。
  • RAID構成で安全に。
  • メモリは仮想化されたサーバーを動かすので2MB以上。
  • 日頃メンテナンスで面倒がないこと。

となります。現在のサーバー構成でメモリとディスクを増やして、デルで見積もりをしたら、30万近くになります。。

代案として

  • Linuxのサーバーで構築するのをやめて、NASのTera Stationとを入れてしまう。しかし、これですと、IAMPとかAsteriskなどのアプリケーションが動かない。
  • NASのTera StationとLinuxサーバーを入れてしまう。そのときのLinuxサーバーはディスクは最小構成。ディスクはTera Stationにマウントする。Linuxサーバーが故障したら、OSだけ再インストール。でも、LinuxサーバーからTeraStationへのマウントはSMBでマウントするの? 遅そうですね。
  • 上のNASのTera Stationの代わりにiSCSIのTeraStarion ISを入れる。もし、ディスクが足りなくなったら、iSCSIの機器を追加していく。NASよりもパフォーマンスは上か? でも、iSCSI自体、新しい技術のためハードルが高いか? それにLinuxとの接続はBUFFALOも推奨していなさそうだし。
  • サーバー自体をパーツを買ってきて自作してしまう。でも、自作してしまうと故障したときに自分で面倒みなければいけないし大変かもしれません。

お客様には、何台もTeraStationを薦めてきましたが、そろそろ自社でも導入しておいたほうがいいかもしれません。3番目がおもしろいかもしれません。

さて、どうするか・・・。

PHP5にサーバー移行

契約しているレンタルサーバー会社から、PHP4からPHP5に移行するという連絡がありました。PHP4がサポート停止になる措置です。

おそらく何もしなくても、今動いているサイトやブログ(ここのブログ)は動くと思いますが、当日は注意しておかなくてはいけません。

しかし、ようやくですね。PHP4に対応しているということで、CakePHPを推奨してきましたが、それも関係なくなります。だけど、いまさらCakePHPにいどっぷり浸かっていますので、他のフレームワークに行くのも辛いところです。

またまた本栖湖キャンプ

三連休にまたまた本栖湖に二泊三日でキャンプをしてきました。今年で3回目。

今回のイベントはカヌーを体験すること。西湖でカヌーを体験しましたが、キャンプは本栖湖。

カヌーは上手く漕げません。くるくる回ります。3時間ほどで何とか形になります。

しかし、娘は先生の講習もろくに聞かないでも、すいすい漕いでいきます。先生によるとこれが子供の能力だそうです。

もう一つのイベントは、ケーキを焼くこと。今回は、いつも一緒に行くご夫婦の奥様からの提案で、キャンプでケーキとなりました。

一回目はダッチオーブンが水平になっていないため、生地が流れてしまい失敗。

二回目は、ちょっと真ん中が生焼けでしたが、合格点。とってもおいしかったです。

送信者 北青山通信
送信者 北青山通信

今回、残念だったのはテント泊した学生たちのマナーの悪さ。夜中をキャンプ場内をバイクを乗り回すは、奇声をあげて大騒ぎするはで、非常に迷惑。キャンプ場の管理のおじさんに言ったら、「いつでも連絡すれば注意に行くよ。」と言われてしまいました。このキャンプ場は、地元で運営しているせいか、とてもアットホームなキャンプ場です。

WordPressを2.6.2にアップデート

またまたWordPressが更新されていましたので、2.6.1から2.6.2にアップデートしました。

今回は、2.6.2のファイルの上書きだけで完了。

アップデートの内容は、リリースページまで。セキュリティの強化が主で、WordPressを使っているサイトは、念のためにアップデートをしたほうがよさそうです。

今回、WordPress Automatic Upgradプラグインを試してみようとしましたが、日本語版の対応が???でしたので、ひとまず中止。このプラグインが動けば、アップデートがとても楽になるはず。

渋谷駅に日比谷線乗り入れ

本日、東横線の人身事故の影響で普段乗り入れない日比谷線が、渋谷駅に乗り入れました。

送信者 北青山通信

私が知っているのは、これで二回目。その前は、2000年の中目黒の脱線衝突事故のときだと思います。そのときは、私は何本か後の電車に乗っていたので、難を逃れました。都立大学で電車が止まってしまい、歩いて自由が丘に戻って、何とか動き出した東横線で中目黒まで行って、恵比寿まで歩いた記憶があります。

それ以来、いまだに電車の前のほうには乗らないようにしています。

metaタグでcharsetを指定しようね。

参考のためにアマチュア無線家のWebサイトをよく見ていると、意外と文字化けしているサイトが多い。シフトJIS決め打ちのページなんですね。

最近は自分のWebブラウザのデフォルトの文字コードの設定を、UTF-8にしてしまっているせいかもしれない。

いづれにしても、文字コードはHTMLの最初に宣言しておくことが大事。シフトJISならこんな宣言を記述。

<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">

しかもtitleタグよりも前に。これで文字化けをしなくなるはず。これはWebサイトを制作する側からすれば当たり前ですが。

無線家のサイトの見てみると、前世紀のようなサイトが多くて懐かしいです。今世紀になっても更新をしていないとか・・・。