5丁目通信(仮称)

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

タグ: プログラミング

  • XOOPSサイトのサーバーを移行した話し

    お客様の希望で、サーバーを私の会社が面倒見ているサーバーに移行しました。ディスク容量は2倍になって料金はそのまま。しかし、そんなにディスクを使っていないのでサーバー会社のメリットはないかも。しかし、私の会社で面倒見てあげられるというのがメリットかも。

    お客様のサイトはXOOPSで作成したサイトです。最初は、素直にXOOPSをインストールしてコンテンツを移行していこうと思いましたが、時間と手間を惜しんで一挙にデータベースとプログラムファイルをコピーしてしまいました。大抵はここではまります・・・。

    データベースをエクスポート/インポートしたら、文字コードがEUCからUTF-8になってしまいました。移行先のMySQLで新規にデータベースを作るとUTF8にしてしまうらしい。無理矢理EUCでインポートしてもいいのだけど、あとあとトラブルになるのがいやなのでそのままUTF-8することにします。

    しかし、サイトは見事に文字化けです。モジュールに読み込むLanguageファイルをすべてUTF-8に変換してしまいます。シェルで変換スクリプトを作っておけばいいのですが、そんなに手間ではないだろうと秀丸エディタをつかって地道にUTF-8に保存していきます。xoops_trust_pathのディレクトリも忘れずに。

    /language/japanese/global.php の

    define('_CHARSET', 'EUC-JP');

    define('_CHARSET', 'UTF-8’);

    にします。これは、METAタグのcharsetの指定しているところです。

    最後にメールのタイトルの文字化けを修正します。文字化けの修正方法は、ここに載っています。

    以上で、無事に移行完了です。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • ESET Smart Securityのアップグレードに失敗した話し

    ESET Smart Securityの期間延長をしたところ、うまく期間延長ができませんでした。有効期限はそのまま。しかし、バージョンも3から4にあがって、プログラムのアップデートはうまくいっている。

    最初、インストールしたときにavast!のアンチウイルスソフトを競合するとエラーが出て、avast!をアンインストールしに行きました。しかし、コントロールパネルのアンインストールリストにはない。調べてみると、レジストリとか残してアンインストールしてしまうようです。ここから、強制的にavast!アンインストールユーティリティをダウンロードして実行。これできれいさっぱりavast!がアンインストールできました。やっとESET Smart Securityがインストールできます。

    ユーザー登録の手続きをして、ユーザー設定をして、アップデート完了。しかし、有効期限は延長されていませんでした。しかたなく、サポートに連絡。現在。回答待ちです。

    アンチウイルスソフトは1年間の縛りがあるので、更新とか手続きが大変。大変だと、別のソフトに乗り換えを考えたくなる。以前は、マカフィーを使っていましたが、複数のPCにインストールしたくても、登録メールアドレスが1つしか使えないというおかしな制限(今は直っているかもしれませんが)。そのためマカフィーを買ってPCにインストールたびに登録用のメールアカウントを作成していました。こればかりは面倒なので乗り換えてしまいました。

    PCを得意ではない人にとって、アンチウイルスソフトの期間延長は一大イベントになりそうです。私も、なかなかすんなりといきません。

    ESETはマイナーなアンチウイルスソフトだけど、軽くてPCの邪魔をしないのでお勧めしています。自分が使っているPCにはMicrosoft DefenderではなくESETを入れています。

  • UQ WiMAXの第一印象

    UQ WiMAXのデータ通信カードが来たので第一印象を。

    送られたカード(カードよりはモジュール)は、USBで接続する首を自由に曲げられるUD01NA。USBメモリをだいぶ大きくした形です。

    インストールは簡単です。インストールCDが必要ありません。ドライバ、アプリケーションはカードの中に入っています。これはよいです。いちいち、CDドライブをつなぐ必要もないし、CDが無くなったとか、ダウンロードしなければいけないとか無くて済みます。

    カードをUSBに挿すと、セットアッププログラムは起動します。USB機器によっては、ドライバをインストールする前にUSBに最初から挿してしまうとセットアップに失敗するとか注意書きがありますが、今回はそれも気にすることもありません。だって、USB機器のインストールは最初に挿してしまいたいじゃない・・・・。

    あとは、画面にしたがってOKボタンを押すだけ。これでセットアップ完了。ID/PWなんての入力もいらない。

    実際につないでみましたが、ここ横浜郊外の住宅地でも弱いながらも接続できました。ウィルコムのPHSよりもやはり快適。

    青山オフィスに行くまでの東急東横線の電車の中では、つながりませんでした。青山オフィスでは、中くらいです。

    あと、難点といえば、Let’sNoteのUSBポートに挿すとランプが向こう側になって見えません。USBの接続が裏返しになってしまいますので、UQ WiMAXのロゴは外側になります。360度回らないので接続ランプが見えないとなります。左側のCardBusにUSBカードを挿しているので、こちらに挿せば問題はないのですが。

  • ブランクCD-Rって放っておくと腐るの?って話し

    今サポートしているゲームのユーザーから、プログラムソフトを送って欲しいという連絡がありました。50枚パックなったCD-Rが手元にあって、このCD-Rにプログラムを焼こうとすると、メディアエラーになります。そのパッケージからランダムに選んで何枚か焼こうとしてましたが、すべてエラー。ドライブがおかしいと思い、違うパッケージのCD-Rで焼くと、こちらはOK。

    50枚パッケージのCD-Rすべてがダメのようです。あー。もったいない。これって、このCD-Rのはずれ? そういえば、ずいぶん昔に買ったし、安かったからなあ・・・。

    最近は、CD-Rに焼くということは少なくなりました。以前は、ファイルの受け渡しでCD-Rに焼いて送っていましたが、今はネットワーク経由です。そのほうが早いしコストがかからない。バックアップもネットワーク経由で他のサーバーにバックアップ。世代管理したければ、CD-Rでは容量が少ないのでDVDになります。

    もっと昔は、FDかMDでしたね。FDは絶対的に容量が少ないし、MDはメディアが高かった。

    CD-Rはいざとなって無いと困るので、買っておきました。50枚ではなく、半分の25枚パックにしました。

  • メールアドレスにハイフンが含まれているとWAKWAKのCGIではメールを送信できないなのね、という話し

    デザイナーからヘルプがありまして、プロバイダのWAKWAKが用意しているCGIで、sendmailの送信できないとものでした。

    WAKWAKのサーバー上では、PHPは動かなくて、perlを使ったCGIでメールの送信をしなければいけません。お客様から提供されたのはperlで作成されたメールフォールのプログラムを設定します。

    最近ご無沙汰のperlですが、プログラムの説明通り、パーミッションを設定したり、文字コードをシフトJIS(!)に変換してみたり、アスキーでアップロードしたりと設定してきました。入力項目のチェックも通っていますし、メールを送信のサンキューページも表示されます。しかし、メールが送信されてきません。

    Googleで調べてみると、何とWAKWAKて提供するメールサーバーは、宛先のメールアドレスのドメインに-(ハイフン)が含まれているとメールが送信されないという報告が見つかりました。

    試しに、ハイフンがドメインが含まれていないgmailのメールアドレスにしてみると、正常にメールが送信されました。

    そんなのあり? お客様には現象を説明して、どうするかを考えてもらいましょう。

    一番は、WAKWAKのサーバーでCGIを動かさないこと。別のサーバーを借りてもらうことです。

  • DreamweaverでSubversionする話し

    すべてのプロジェクトは、Subversionでバージョン管理しています。プログラムのソースコードはもちろんのこと、ドキュメント、メモ書きなど、プロジェクトで作成されたファイルはすべてSubversionのリポジトリに入れています。

    これで安心して修正できますし、どこを修正したかの履歴もわかりますので、たとえ一人でプロジェクトを回していてもバージョン管理をすべきです。複数のPCに分散してもアップデート一発で最新の開発環境を手に入れることができますし、万が一PCがつぶれても、他のPCにファイルがありますのでバックアップとしても使えます。

    しかし、バージョン管理は面倒なようで、公開する前にコミットするという癖は、なかなかメンバー(特にデザイナー)に浸透しません。

    私なんかは、プログラム開発はEclipseの上で行っていますので、Subvesionを使いながら開発を進めて行くことは苦ににはなりませんが、デザイナーにとっては、エクスプローラからTortoiseSVNでコミットは面倒なのでしょう。

    デザイナーが普段使っているDreamweaverからSubversionが使えればいいのでないかと思い探してみまして、やはりありました。「SubWeaver」というDreamweaverのextentionです。ダウンロードやインストール方法は、ここのサイトを参照すれば丁寧に書かれています。何と、日本語化もされています。感謝!

    後は、これでもデザイナーが使ってくれるかどうかですね・・・。

    追記

    現在は、すべてGitに移行してSubversionは全く使っていません。

    著:湊川あい, 著:DQNEO
    ¥2,208 (2025/04/01 17:15時点 | Amazon調べ)
    著:リック・ウマリ, 翻訳:吉川邦夫
    ¥3,247 (2025/04/01 17:15時点 | Amazon調べ)
  • HAMLOGでRemark項目から印刷するように設定した話し

    HAMLOGの印刷機能で、Remark項目の文字列を備考としてカードに印刷するように*.QSLファイルを変更してみました。

    備考欄に印刷する項目の優先順位は以下の通りとします。

    1. 印刷ダイアログのコメント
    2. Remark1の$A=文字列 $で指定された文字列
    3. Remark2の$A=文字列 $で指定された文字列

    本当は、順番に備考欄に印刷できればいいのですが、印刷位置が絶対座標らしいので、今回はいづれか1つにします。

    例えば、Remark2に

    $A=2009年QSOパーティー $

    と指定しておけば、QSLカードの備考欄に

    2009年QSOパーティー

    と印刷します。

    CQ出版
    ¥2,530 (2025/04/01 13:33時点 | Amazon調べ)

    印刷定義ファイルは以下の通りです。

    ? Space "!Co"    ; 印刷ダイアログにコメントが無かったらジャンプ 
    #Goto *201 
    #Print  20, 564, "Rmks: !Co"            ;備考 
    #Goto *200 
    *201 
    ? Space "!R1$A"    ; Remark1に$Aがなかったらジャンプ 
    #Goto *202 
    #Print  20, 564, "Rmks: !R1$A"            ;備考 
    #Goto *200 
    *202 
    ? Space "!R2$A"    ; Remark2に$Aがなかったらジャンプ 
    #Goto *200 
    #Print  20, 564, "Rmks: !R2$A"            ;備考 
    *200    ; ジャンプ先

    印刷位置の座標は、デザインに合わせます。ジャンプ先の番号は使っていない番号を指定します。

    何だか久しぶりにプログラムでGoto文を使いました。学生時代のFORTRANかPascal以来ですね。懐かしい・・・。

    著:加納勉, 編集:Webon編集部
    ¥480 (2025/03/29 01:48時点 | Amazon調べ)
    CQ出版
    ¥1,650 (2025/03/29 01:48時点 | Amazon調べ)

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

  • CakePHP URLの指定 - 例えば、htmlヘルパーのlinkのパラメータの話し

    CakePHPを使っていると、ヘルパーなどのリファレンスを解説本では簡単に説明を済ませているところに当たります。CakePHPのマニュアルをよく見れば書いているのですが(ただし、日本語サイトは遅れている場合があり)。

    例えばhtmlヘルパーのlinkの説明ところ。Webとか解説本には、

    HtmlHelper::link($title, $url = null, $htmlAttributes = array(), $confirmMessage = false, $escapeTitle = true)
    
    $title : タイトル
    $url : リンク先URL
    $htmlAttributes : 属性
    $confirmMessage : 確認メッセージの有無
    $escapeTitle : エスケープの有無

    などど書いていています。$urlは、”http://testtest.jp/”のようなURLをテキストで設定するようにサンプルに書かれています。

    しかし、CakePHPではURLの指定は、

    array('controller' => コントローラ名, 'action'=>アクション名)

    のように連想配列で指定可能なのです。もし、管理者サイトでは、

    array(Configure::read('Routing.admin') => true,'controller' => コントローラ名, 'action'=>アクション名)

    のようにすればいいのです。アクション名には’admin_’とかは付ける必要はありません。

    CakePHPを使いこなしている人なら当たり前かもしれませんが。一応、自分の覚え書きです。

    あとlinkのURLに関連して、ここのサイトに書かれていますが(感謝!)、IDなどの検索条件のパラメータをpaginatorヘルパーに含めるには、 Veiwで$paginator->optionsにurlをキーにした連想配列を設定すればいいようです。Veiwで$paginator->optionsのurlに設定してしまうと、View内のpaginatorヘルパーでsort()などのリンク先には、’val1/val2’が勝手に付けてくれます。

    もし、このようにパラメータが付けてアクセスしたときに、

    http://testtest.jp/コントローラー/アクション/val1/val2/

    ビューの最初で

    <?php
    $paginator->options = array(
      'url' => $this->passedArgs
      );
    ?>

    とすると、passedArgs変数は、パラメータを持っていますので、ビュー内の

    <?php echo $paginator->sort('title');?>

    は、

    http://testtest.jp/コントローラー/アクション/val1/val2/page:1/sort:title/direction:asc

    というようなパラメータを付けたリンクを作ってくれます。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • Windows Live Syncをインストールした話し

    以前、ここでも書いたWindows Live Syncをインストールしました。今までGrooveでファイル共有していましたが、ファイルをWindows Live Syncに移行しました。

    Windows LiveのアカウントがあればPC間のファイルの同期が簡単にできます。ファイルサーバーを使った集中型の共有ではなくて、各PCでファイルをローカルに置いて、誰かがファイルが更新したらP2Pで各PCを直接コピーしてしまいます。中央のファイルサーバーがダメになってもおしまいではなく、ファイルが分散されて同期を取っていますので、どこかのPCのファイルが残っていれば助かるということになります。

    ファイルが分散されている分、ファイルの漏洩に気をつけなければいけませんが(マイクロソフトがこちらのPCの中を覗いているとは思えませんが)、それ以上に便利なツールとなるかと思います。

    インストールは簡単です。Windows Live Syncのソフトをダウンロードしてセットアッププログラムを実行します。途中でWindows Liveのアカウントを設定すれば完了です。後は、同期をしたいフォルダーを設定するだけです。どのフォルダーを同期するかは、Webブラウザで設定できます。

    フォルダーは、自分だけで参照可能な個人フォルダーと、他の人と共有できる共有フォルダの2つがあります。

    前者は、自宅のオフィスとサテライトのオフィス、あとはモバイルのPCに同じファイルを同期できるように設定しました。便利なのはモバイルPCへの共有で、インターネットに接続したいなくても出かける前に同期を取っていれば(インターネットに接続していれば自動的に同期を取ってくれます)、最新のファイルを取り出すことができます。

    後者は、会社で利用する文書を各メンバーで共有できるように設定しました。見積書、請求書のような大事なファイルを共有できるようにしています。もし、ファイルサーバーにファイルを置いた場合、ファイルサーバーに障害が起こってしまうとデータが復旧するまで業務が停止します。Windows Live Syncで共有しておけば、自分のPCが壊れても他のPCにファイルが残っているので、安心です。

    しかし、Grooveと違って、どのファイルが更新されたかがわかりませんし、グループウェアやコミュニケーションの手段はWindows Live Syncでは用意されていませんので、Hotmailはメッセンシャーなどを利用しなければいけません。本格的にグループウェアの機能をつかって業務を進めて行くのであれば、オフィスの一員となったGrooveを使ったほうがいいでしょう。しかし、Grooveの導入にはコストが非常にかかります。

    Windows Live Syncで気になるのは、同期を取る相手のフォルダーの中身が丸見えになることです。自分の管理下のPCはリモートアクセスの機能を使って、ドライブ直下からすべて見えてしまいます。これは便利と言えば便利なのですが。

    気をつけなければいけないのは、他の人を共有するフォルダーのメンバーに追加するときに電子メールアドレスで指示するのでが、くれぐれもメールアドレスを間違えてはいけません。間違えて知らない人のメールアドレスを設定してしまうと、ファイルが漏れてしまいます。これは注意です。

    ただ、Windows Live Syncは使い方を間違わなければ、とても便利なソフトですので、みなさんも使ってみたらいかがでしょうか? 2つ以上の場所で作業する人には特にお勧めです。無料で使えます。

  • LISMO Port のインストールは大変

    ツレの携帯電話がボロボロですので、新しい携帯電話に買い換えました。名義は私なので、私がauショップに行かなければいけません。

    機種変更した機種は、W63CAです。ちょいと前に自分が買い換えたのはW62CAですので、同じカシオ端末です。auショップのお兄さんには、カシオ好きかと聞かれてしまいました。

    別にカシオ好きではなく、たまたま欲しい端末がカシオだったのでしょう。二つの端末で、1番違いでも全然性格が違う端末です。一方のW62CAはG-Shock譲りの無骨なアウトドア系の端末、もう一方のW63CAはデジタルカメラのEXILIM譲りのカメラ携帯です。

    (さらに…)