5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

投稿者: muneando

  • CakePHPでデータベースの文字コードの話し

    今開発しているWebサイトは、別の開発会社が別の機能を開発している。時間の関係で私がすべて開発できないので、発注元が別の開発会社を割り当てている。

    その会社からの質問。

    本番サーバーのDBにアクセスしたら文字コードの関係でデータが抽出できない。

    そういえば、本番サーバーはTurboLinuxで文字コードがEUCだっけ。インストールされているPostgreSQLも7.x系で、テストサーバーとは違っていたような。テストサーバーは8.x。この辺りは自分がサーバーの面倒を見ている訳ではないから伝えていなかった。失敗。

    PostgreSQL上にUTF-8でデータベースをcreatedbで作成しておいて、UTF-8でダンプしたSQLでリストアしておいた。システムの想定する文字コードはUTF-8。この辺りが怪しそうなので連絡しておいた。

    私はCakePHPで開発していて、別の開発会社はperlのCGIで開発。CakePHPの経験がないので、perlのCGIになったようだ。

    こちらは全く文字コードの意識はしていない。なにかうまく動いている。結果オーライ。apps/config/database.phpでencodingの設定もしていない。データベースが絡んだ案件は、必ず最初に文字コードでトラブルが起こる。

    後から、私は非協力的だと開発会社から言われるのでしょうね。psqlコマンドで一発でわかりそうなものだが、そういえば発注元はその開発会社に、サーバーにシェルでアクセスさせる権限が与えていないかも・・・。

  • HTMLの特殊文字はまじめに書きましょう、という話し

    現在開発中のWebサイトはCakePHPで開発しています。今回は、PCと携帯電話の両方をサポートしています。どちらもコントローラーとアクションは共通でビューだけが異なります。携帯かどうかの判定をして、携帯電話であったらm_*.ctpという名前のビューを取り込むようにしています。

    携帯電話の場合の文字コードは、基本的にシフトJISになります。通常はPHP、HTML、DBはUTF-8にしていますので、表示するときに強制的にシフトJISに文字コードを変換して、英数字カタカナを1バイト文字に変換してしまいます。この辺りはレイアウトに処理を書いておけばCakePHPだと簡単です。

    ここから本題です。失敗したこと。

    携帯電話の画面で矢印の代わりに<と>を使っていました。<>は2バイトコードです。例えば

    <前へ 後ろへ>

    のようにリンクを設定します。

    しかし、お察しのとおり携帯電話のブラウザだとおかしなコードが表示されてしまいます。つまり<>がHTMLタグの始まりと終わりになって認識されてしまいます。

    解決方法は簡単です。面倒がらずにHTMLの特殊文字でまじめに指定することです。<は<>は>です。これで正しく表示できます。

    やはり基本は大事です。

    技術評論社
    ¥1,980 (2025/11/26 14:44時点 | Amazon調べ)
  • Grooveがサポート終了する話し

    米国マイクロソフトからGroove3.1のサポート終了の案内がメールで来た。Thunderbirdが迷惑メールに判定したいたので見逃すところだった。

    Grooveはおおざっぱに言うとP2Pでファイル共有したりできるグループウェアソフト。とても便利なソフトでした。でしたと言うからには、もう使っていない。今は、Windows Live Syncにしている。

    Grooveはマイクロソフトのオフィスに組み込まれる前に、Groove Networksから直接ライセンスを購入したもの。オフィスに入っても、国内ではあまり盛り上がっていないのが現状。

    メールによるとサポートが終了してもオンラインリソース(サーバー)は継続するとのこと。オンラインリソースがなくなるとP2Pでデータ交換できなくなるので、まだ安心か。Windows Live Syncに切り替えてしまいましたので、関係ないと言えば関係ない。

    マイクロソフト
    ¥15,900 (2025/11/23 10:24時点 | Amazon調べ)
    マイクロソフト
    ¥21,900 (2025/11/22 11:34時点 | Amazon調べ)

    自作PC用に一番左のWindows11のパッケージを実際に購入しましたが、問題なくインストールできました。Windowsは使うPCの分だけ正しくライセンスを購入しましょう。

  • Google リーダーで画像がどうしても表示できないとき

    Firefox + Google リーダー + Greasemonkey + Google Reader Full Feed + RefControl で快適にサイトを読めるということを書きましたが、中にはどうしても画像が読み込めないサイトがあります。

    例えば、blog.goo.ne.jpとかwebry.info(このサービスはどこ?)とか。

    試しにRefControl のオプション設定で、動作を「偽装」にすれば上記の2つのサイトは正常に画像が表示するようになった。

  • jQueryのrollovers.jsとprototype.jsの競合の話し

    現在、外部の会社から出てきたHTMLのコードにCakePHPのAjaxの処理を埋め込むと、メニューの画像がロールオーバーしなくなります。

    HTMLを見てみると、rollovers.jsというJavascriptでロールオーバーをしているようです。prototype.jsを読み込むところを削除すると、うまくロールオーバーしてくれます。しかし、Ajaxの処理はしてくれなくなります。

    CakePHPでAjaxを実装すると、prototype.jsが必要です。CakePHPの機能を使わずにAjaxの処理を書くのはとても面倒です。では、rollovers.jsを取るか、CakePHPのAjaxを取るかをどちらかにするかと言われればCakePHPのAjaxをとりました。

    もっとシンプルにJavascriptでロールオーバーできないかと探したところ、ありました。シンプルロールオーバー。

    メニューの画像ファイルの命名が

    *_o.gif //ロールオーバー前
    *_h.gif // ロールオーバー後

    になっていますので、少々修正をするだけでOK。無事にAjaxの処理とメニューのロールオーバーが実現できました。シンプルロールオーバーの作者に感謝です。

    技術評論社
    ¥1,980 (2025/11/26 14:44時点 | Amazon調べ)

    追記(2022年10月16日)

    記事中のシンプルロールオーバーのサイトはどこかになくなりました。

  • Canon IXY DIGITAL 500のバッテリーを買ってきた話し

    ちょっと古いCanon IXY DIGITAL 500のバッテリーを買ってきた。このデジタルカメラは、最近無償修理になった機種。まだまだ現役なのです。

    しかし、すぐにバッテリーが切れる。充電してもダメ。本当はリフレッシュできればいいのだか。

    バックアップのカメラとして、まだまだ使えるので。バッテリーを買ってきた。しかし、キヤノン純正のバッテリーは手に入らなかったので、KenkoバッテリーKenkoフィルターでお世話になるが、バッテリーも売っていたのか? 知らなかった。

  • 小学校でインフルエンザ警報

    こともたちの小学校でインフルエンザ警報。学級閉鎖が増えてきたとツレから連絡が入った。

    こどもたちのクラスは、まだ大丈夫だが時間の問題。娘のクラスの両側が学級閉鎖になったので危ない。

    どういう訳か年下の学年から年下へ広がっているようだ。もっというと近くの中学校から。これも行動範囲の広さか?

    これにはどうしようがないが、手洗いうがいを徹底させましょう。

  • Y150アワードを申請しました。

    忘れないうちに横濱開港記念Y150アワードを申請しました。これが初めてのアワード申請なのでした。

    これだけ8N1Yと交信しているから、申請も簡単だと思っていましたら違いました。13回しか8N1Yと交信していない。行政区・バンド・モードが同じものがありました。そこで、残り20局を横浜市内から抽出です。

    横浜開港150周年のY150アワードの規約をよく読んでおくべきでした。

    無事に申請書が完成。明日でも定額小為替500円を添えて提出しに行きます。

    以下は無駄話です。

    (さらに…)

  • 第30回全市全郡コンテストのログを提出した話し

    第30回全市全郡コンテストのログを提出しました。作業時間は5分足らず。これもコンテスト用ロギングソフトCTESTWINのおかげです。

    JARLのテストのメールアドレスにログを送付して間違えないことを確認し、提出先のメールアドレスに送付しました。無事に電子ログ受付リストに載っていることを確認しました。

    HAMLOGにCTESTWINのデータをインポートします。CTESTWINからHAMLOGようのCSVファイルを出力して、HAMLOGにインポートしますが、出力するファイルの拡張子がtxtですが、HAMLOGでTXTファイルを選択してインポートするとおかしくなります。必ずCSVファイルでインポートする必要があります。

    これでコンテストナンバーから運用地、周波数も取り込んでくれますのでとても便利です。備考欄に

    $A=第30回全市全郡コンテスト

    という文字を設定してあげると、あとでQSLカードカードを印刷するときに幸せになります。

    HAMLOGでは、クラブ局の名称を検索して、備考欄に自動的に貼り付けてくれる機能がありますので、クラブ局らしいコールサインに設定してみました。すると意外にも大学のアマチュア無線部が多かったです。私の出身大学のアマチュア無線部(正確には学部が違いますが)の交信記録があったりと、いろいろ楽しめました。

    著:加納勉, 編集:Webon編集部
    ¥480 (2025/11/22 21:48時点 | Amazon調べ)

    電波を出すには必ずアマチュア無線の国家資格が必要です。電波法令を守って楽しみましょう。

  • 運動会で落ち込んだ話し

    今日は地区の運動会。町内の対抗です。

    体の調子が悪かったので、遅れて参加。綱引き予選に出るはずだっただが、シードになったということで、午後から決勝戦。

    この間暇だったので徒競走にエントリー。しかし、若手のグループに入りビリ。全然走れません。怪我をしないかと思いのほうが先に立つ。コーナーも怖いし、どんどん離されるし、いいところなし。

    お昼のクイズ大会も一問目で外し、ますます落ち込む。

    しかし、綱引き決勝戦では、1回負けたものの3位決定線で勝って3位になったこと。これだけよかった。でも、賞品にガッカリ。

    楽しむはずが、こんな気分に・・・。途中で帰った。