5丁目通信(仮称)

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

タグ: プログラミング

  • ASP.NET でZIPファイルを作成した話し

    APS.net

    ASP.NETでZIPで圧縮して、ダウンロードさせるプログラムを作成。その覚え書き。

    ASP.NETでZIPファイルを作成することは、いくつか方法があるが、今回は、ZIP32j.DLLを呼び出して実現することにする。J#のランタイムライブラリをインストールさせたくないし、ライセンスが難しいライブラリをつかいたくないということで。

    参考にしたサイトは、ここ。ラッパークラスを頂戴する。感謝。

    しかし、ZIPファイルを作成しようとすると、ZipGetRunning()で必ずZIP32j.DLLが動いていると判定してしまう。原因不明。

    こちらを回避して、ZIPファイルに圧縮することを確認できた。

  • VZ Editorのビレッジセンターが解散する話し

    ソフト販売会社のビレッジセンターが解散になるそうです。この記事を読んでいる人で、ビレッジセンターを知っている人は少ないと思いますが・・・。ちなみに社長が中村さんだから、ビレッジセンターだそうな。

    大昔、MS-DOSというOSが合った頃、NECがPC9801というパソコン(パーソナルコンピュータ)が出していた頃、プログラムの開発をしていた私が使っていたテキストエディタが、ビレッジセンターから出ていたVZ Editorでした。

    VZ Editorはとても使いやすく速いテキストエディタでした。手になじんでいたので、ほとんどの作業をVZ Editorでこなしてきました。

    MS-DOSの時代が去り、Windowsの時代に入ったときには、最初はDOS窓(今のコマンドプロンプト)でVZ Editorを使っていました。しかし、Windowsに完全対応した秀丸エディタに移ってしまいました。今も秀丸エディタを毎日使っています。私は秀丸エディタの正規のユーザーです。秀丸エディタはシェアウェアですが、お金を払っていなくて使っている人が多いので、みなさんちゃんとお金を払って使いましょう。

    MS-DOSの頃、よく使っていた(購入していた)国内のソフト会社は、ビレッジセンター以外に、エー・アイ・ソフトジャストシステムなどがありました。エー・アイ・ソフトは、エプソンに吸収されてありませんが、ジャストシステムは健在です。この記事を書いている漢字変換はATOKだったりして。

    でも、ビレッジセンターもまだかんがばっていたのですね

  • ASP.NETに遊ばれて

    この何週間か、ASP.NETでプログラムを作っています。しかも、C#で。

    退社したメンバーの引き継ぎで、今ASP.NETで動作しているシステムの拡張の案件です。

    なかなか手強い。

    最近はPHPで開発する案件が多く、ASP.NETやC#のような厳しい環境だと辛いところがあります。だって、変数を宣言しなければいけないのですよ(当たり前か・・・)。

    これまでもCとかC++とかで開発したことがありますが、PHPのようなスクリプト言語にどっぷり使ってしまうと、コンパイルエラーが出るたびにため息が出てしまいます。

    しかも、サーバーに公開するときは、ビルドしたDLLをアップしなければいけない。

    IISからLAN上にある別サーバーのファイルをアタッチするのも、どうしていいかわからなかったし(いまは、ようやく解決済み)、LAMPに慣れた人間はいっぱいいっぱい・・・。

    とりあえず形にはなったけど、これから実機でテストです。

  • Photoshop CS3をインストールするとInvalid Driveのエラーになったときの対処方法の話し

    うちのデザイナーがAdobe Photoshop CS3を購入しました。現在持っているバージョンは古いので、お客さまから送られてくるPhotoshopのファイルを読み込むことができないとのこと。

    早速、インストールしていましたが、セットアップの最初でとInvalid Driveというエラーになって前に進めません。しかも、見に行くドライブがU:ドライブという、サーバー上のネットワークドライブを見に行ってしまう。

    解決方法法をPhotoshopのreadmeを見ても、検索エンジンで探しても見つからない。仕方ないので、Adobeのサポートに連絡。この障害がよくあるらしく、すぐに回答がありました。説明によると、原因はWindowsのSetupプログラムにあるとのこと。

    解決方法として、DVDにあるPhotoshopのセットアッププログラムをローカルのディスクにコピーしてから、ローカルディスクからインストールを行えばよい。これで、無事にインストール完了。

    以上、Photoshopインストールの覚え書きでした。でも、これってPhotoshopインストーラのバグですわ。

  • やっとプログラム完成です。

    2週間位かけて、1本プログラムを作成しました。

    内容は、値をフォームから受け取って、確認ページで表示して、OKならPOSTで別のサイトに送り込むという、言ってしまえば簡単なものです。

    しかし、作成に時間がかかりました。

    正常の処理は簡単です。CakePHPを使って1日ほどで動きます。しかし、エラーのチェックがとても面倒。

    エラーチェックはCakePHPのvalidates()で行えばいいのですが、なにせ項目数が多いので、とても大変でした。それでも、validates()のおかげで数は多いのですが、まとまって見やすいです。先日の全角の文字数の判定の件もありましたが、正規表現でのチェックもたくさん使っています。

    後は、データベースが止まったときの異常系のエラーはどうするかとか、不正な値が入った来たときとか、細々としたエラーのチェックを行っています。

    今回はエラーの処理で7割くらいコードを書いています。

  • QdmailでCakePHPのViewで送ると文字化けする話し

    現在、CakePHPのサイトを作成していますが、メールを送信する処理があります。今まですとmb_send_mail()を使ったクラスを用意していましたが、せっかくCakePHPを使っているということで、Qdmailというコンポーネントを使ってみました。

    PCに送るには問題なし。しかし、携帯電話宛のメールは文字化けします。

    調べてみると、cakeText()メソッドでViewを使うとUTF8で送信しているようです。Viewを使わず直接text()メソッドを使ってテキストで送ると、正常にiso-2022-jpで送ってくれます。

    Qdmailのサイトで調べて、charsetBody()メソッドでiso-2022-jpを指定してもだめ。テンプレートファイルをJISにしたら携帯電話で読めるようになるが、パラメータをアサインすると文字化け。1時間ほど悩む。

    Googleで「Qdmail cakephp 文字化け」で検索してみるとありました。ここのサイトでヒントが見つかりました。

    cakeText()メソッドの第5パラメータで iso-2022-jp を指定すればOK。Qdmailのマニュアルには見つかりませんでした。

    Qdmailのサイトには、非常に詳しくマニュアルが載っています。今回はこれを信じたのがいけなかった。ソースコードが読めるのなら、ソースコードを読まなければいけません。しかしQdmailのソースコードは、コメントが少ないので読みづらい。コメントの中にコードが埋まっている私とは大違い。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • WordPressを2.6.1にアップデート

    WordPressが2.6.1にアップデートされていましたので、このサイトもアップデートしました。

    まずは、バックアップをします。何かあったら、すぐに戻るように、プログラムのファイルをまるごと違うディレクトリにコピーします。今使っているサーバーは、シェルが使えるのでcpで簡単。

    次に、記事とかコメントもバックアップします。これはWordPressのエクスポート機能を使えば簡単。

    そして、プラグインをすべて無効にします。

    次に2.6.1のファイルを上書きします。設定ファイルは上書きされないので安心です。

    最後にプラグインの有効に戻して完了です。

    オープンソースで構築したサーバーの管理は、アップデートという毎回面倒なメンテナンス作業があります。せっかくサーバーを構築しても、メンテナンス作業にお金を出さないユーザーがいますので、ずっとシステムが古いままなのが気になるところです。

  • WordPressを2.6にアップデートした話し

    このブログで利用しているWordPressが新しく2.6がリリースされましたので、アップデートしてみました。

    まずは、念のためのバックアップです。MySQLのDBをphpMyAdminでバックしてしまいます。今回は、丸ごとWordPressのDBをバックアップします。

    次にプログラムのバックアップします。こちらは、フォルダをまるごとテンポラリのディレクトリにコピーしてしまいます。

    これで、何かあったら元に戻せます。

    WordPressのサイトから2.6をダウンロードしてして、サイトにFTPでアップします。ZIPファイルでしたので、unzipコマンドで解凍し、所定のディレクトリにコピーします。

    あとは、/wp-admin/upgrade.php を動かして、DBをアップデートします。

    正常に動作していることを確認して完了。簡単でしょ??

    しかし、どこが変わったかは、あまり実感はわかりましません。バグFIXしているのでしょうかね。 

    著:久保田涼子, 著:西原礼奈, 著:阿諏訪聡美
    ¥2,399 (2025/03/28 17:08時点 | Amazon調べ)

    なんやかんやでWordPressのサイト構築で躓くのは、PHPのプログラミングなのでした。

    追記

    WordPressで記事を編集していて、間違えて違うページに行っても、書いた内容は自動保存しているのですね。あわてものにはいいかもしれない。

  • PHPのfgetcsv()は使えない?という話し

    PHPの関数で用意されているfgetcsv()は、CSVファイルを一行読み込んで、各項目を配列で返してくれます。こんな感じ。

    $handle = @fopen("testtest.csv", "r");
    $buffer = fgetcsv($handle, 4096);

    ただし、CSVファイルに2バイトのデータが含まれていたら、うまく切り分けてくれない。PHPの内部コードはUTF-8で、CSVファイルがシフトJISなら、変なところで切ってくれる。

    仕方ないので、手っ取り早く

    $handle = @fopen("testtest.csv", "r");
    $buffer = split(",", fgets($handle, 4096));

    のように変更してあげる。CSVファイルはこちらでプログラムで生成されているので、途中にコンマが紛れてこないだろうということで、とりあえずOKとしておきます。なんだが美しくないなあー。これだと完全なCSVファイルの処理をしていないので、また後で考えなければいけないか・・・。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • モニタが1つ余っていたので、マルチディスプレイにした話し

    モニタが1つ余っていたので、マルチディスプレイで設定していました。グラフィックボードもなぜか余っていた玄人志向のGF8600GT-E256HW/HPというボードがあったので組み込んでみました。このボードがどうして買ったかは不明です。DVIのケーブルだけが一本足りなかったので、これは購入しました。

    ボードをPCに付けてディスプレイドライバをインストールするだけなので簡単な作業です。nVIDIAのサイトから最新のドライバをダウンロードしました。

    マルチディスプレイの使い方としては、左側を普段使うアプリケーション(Webブラウザ、メールなど)を立ち上げ、右はプログラミングするための作業として(Eclipseなど)、とりあえずしておきます。

    どうすれば、効率的な作業ができるかはこれからの課題です。

    このページは xfy Blog Editor を利用して作成されました。