5丁目通信(仮称)

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

タグ: プログラミング

  • Adobe Shockwave Player をインストールすると、勝手にNorton Security Scanがインストールしようとする話し

    PCを久しぶりに再起動すると(PCは基本的に起動しっぱなしです。エコではない)、Adobe Shockwave Playerのアップデートのダイアログが出てくる。指示にしたがってアップデートすると、最後の方にNorton Security Scanをインストールする確認が出てくる。しかも、インストールするがデフォルトなので、何も考えずにOKを押すと、勝手にNorton Security Scanをインストールされてしまうことになる。

    こちらのPCは、既にウイルススキャンとしてKasperskyをインストールしている。何でAdobeは勝手なこことをするのでろう。しかも、Norton Security Scanをインストールしないを選択したら、最後に

    「このプログラムは正しくインストールされなかった可能性があります」

    だって。何なのこのAdobe Shockwave Playerのアップデートは・・・。余計なお世話だって。

  • Flexigridが動かないときは、jQueryのバージョンを確認してみろ、という話し

    jQueryできれいなテーブルをつくってくれるFlexigridですが、突然動かなくになりました。簡単なテストプログラムを書いたりしてみましたが動かない。最後には、ダウンロードしたFlexigridのZIPファイルを再インストールしたりしてみましたが、これでも動かない。

    結果は、jQueryのバージョンのでした。一番安全なのは、FlexigridのZIPファイルに含まれているjQueryを使うこと。最新版の1.4.1では動かないのでした。しかし、FlexigridのZIPファイルのjQueryのバージョンは1.2.3なのです。Flexigridが動いてjQueryの新しいバージョンは手元にあるもので1.3.2でした。

    そういえばFlexigridの本家のサイトはつながらない。帯域オーバーとでてしまう・・・。

    以上、半日つぶれたたぶんこれから忘れるだろう覚え書きでした。

  • KNOPPIXをUSBメモリにインストールしてみた話し

    日経Linuxの記事に感化されて、KNOPPIXをUSBメモリにインストールしてみた。取りあえず、ソニーの8MBのUSBメモリを買ってきてインストール。最近のKNOPPIXは、メニューにフラッシュメモリへのインストールができて簡単になったのですね。CD-ROMからの機動と違って、設定やファイルを保存できるのが便利。当たり前か・・・。

    ハマったのは、無線LANを使えるようにすること。調べてみると、使っているLe’snoteのR7は、インテルの無線LANの4965というチップを使っている。こちらのサイトに書いているように、インテルのサイトからドライバをダウンロードして解凍してできるiwlwifi-4965-2.ucode を /lib/firmwareにコピーする。後はリブートすると、無線LANが認識するので、右下にある無線LANのアイコンから、いろいろ接続情報を設定すればアクセスポイントに接続できるはず。しかし、このLet’s noteを使う場合は、Windowsを使った方が便利なので、KNOPPIXを真剣にインストールすることはないのを、今気がついた。

    ちなみにこの記事は、KNOPPIXから書いている。FirefoxではなくてIceweaselという名前のブラウザなのね。特にFirefoxとはかわらない。アドオンも使える。

    数年、マイクロソフトオフィスを使っていないので(すべてOpenOfficeです)、今のところはLinuxでも作業は大丈夫。プログラムもEclipseで書いている。しかし、漢字変換のATOKを使いたい。これは大事。あとはWindows Live SyncみたいなPtoPのファイルの同期ソフトも。結局はダメか・・・。

    しかし、これでUSBメモリの一つで、自分の環境を持ち運べるのはよい。突発的に客先で作業しなければいけないときにはいいかも。USBメモリで機動できるようにBIOSを変更しなければいけませんが。

    著:大竹 龍史, 著:山本 道子
    ¥2,950 (2025/04/01 13:05時点 | Amazon調べ)
    著:Piro, 編集:日経Linux
    ¥2,178 (2025/03/28 21:08時点 | Amazon調べ)
    著:三宅 英明, 著:大角 祐介
    ¥2,970 (2025/04/01 13:05時点 | Amazon調べ)
  • PHPでのnull,false,0,array(),””の違いのメモ

    PHPでプログラムを作っていると、null,false,0,array(),””の違いを忘れてしまうこと。どんな関数で判定すれば区別するかです。今までは、empty()で判定していましたが、細かく判定できる比較表をPHPのサイトて見つけました。知らないのは自分だけだったかも・・・・。

    PHP 型の比較表」を見れば一目瞭然です。その他、==と===との比較の一覧も載っています。参考までに・・・・。

    ちゃんとマニュアルを見るべきでした。

  • PHPでExcelファイルで時間を読み込むと値がおかしくなる、という話し

    Excelファイルに時間がセルにあると、PHPのプログラムから正しい値が読み込むことができません。

    使ったPHPのExcelファイルを読み込むライブラリは、Spreadsheet_Excel_ReaderとPHPExcel。どちらもダメ。ソースを追ってみたがわからない。03:00と時間を読み込むと、0.125になる。Excelで書式を変えてみると、0:febfeb:になってしまう。何か、ライブラリ側で書式の設定があるかも。

    仕方ないので、Excelファイル側で書式を文字列にしてもらうことにする。後で解決策があれば、変更しましょう。

    Spreadsheet_Excel_Readerは、セルに何も値を格納していなければ、PHPで取り出した配列には何も出てこないのね。nullか空白文字を期待してアクセスすると変数の未定義エラーになる。Spreadsheet_Excel_Readerクラスのvalメソッドを使わなければいけない。配列を追っていくときには注意。

    後、Excelのブック内のシート数はどこにも格納されていないのね。いろいろと使いにくいところがある。

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

  • XAMPPのバーチャルホストを設定してCakePHPのテストサイトを構築した話し

    CakePHPで開発していて、ローカルのサーバーにテストサイトで動かしたいとき、まともにlocalhost直下に置ければいいのですが、いろいろとプロジェクトを抱えていると、たくさんのテストサイトを同時に動かしたいときがあります。サブディレクトリごとに設定してあげてもいいのですが、これだと.htaccessの設定が面倒であったり、絶対アドレスでリンクを指定できないとか制限があります。

    ドメイン直下にドキュメントルートを配置できればいいのですが、一つ考えられるのはサブドメインを指定するというのがあります。しかし、これではlocalhostでは指定できないととか、わざわざローカルのPCにサブドメインを指定するのもやっかいであるとなります。

    次に考えられるのはポート番号で分けてしまう方法があります。例えば

    • Aプロジェクトは、http://localhost:8080/
    • Bプロジェクトは、http://localhost:8082/

    などでアクセスすることになります。これですと、ポート番号を適当に追加していけばプロジェクトを分けてアクセスすることが可能にになります。

    簡単にローカルのPCにCakePHPのテスト環境を構築するにはXAMPPをインストールしてしまうのが一番簡単です、XAMPPを一つインストールしてしまえば、CakePHPのテスト環境で必要なApacheや、PHP、MySQLも動かすことがことができます。

    ポート番号で分けてCakePHPの環境で動かすには、Apacheのhttpd.confにバーチャルホストの設定を追加してしまいます(ここからが本題)。上記のAプロジェクトの場合はApacheのhttpd.confに以下のバーチャルホストの設定を追加します。

    Listen 8080
    
    DocumentRoot C:/workspace/TestProject/app/webroot
    DirectoryIndex index.html index.php
    ServerName localhost
    
    <Directory C:/workspace/TestProject/app/webroot>
    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
    </Directory>

    この場合、ダウンロードしたCakePHPは、c:\workspace\TestProjectにコピーしてしますと(EclipseのPDTで開発しているためこんなディレクトリにプロジェクトを入れています)、ドキュメントルートはその下の\app\webrootになります。プロジェクトを増やす場合は、赤字の部分を変更すればいいでしょう。

    Optionsは、適当に動作させる環境に合わせて設定してください。これは、テスト環境を自分のローカルPC以外からアクセスできないようにしたり、ましてインターネットからアクセスできないようにしたり(もちろん当たり前ですが)してしまえば、あまり気にしなくてもよいかもしれません。

    以上、いつもhttpd.confの設定でつまずく覚え書きです。

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

    追記

    せっかくこの記事にたどり着いて読んでくれたところ申し訳ありませんが、現在(2014/04/28)のところ、この方法は使っていません。今はVirtual Box+Vagrant+Chefでローカルのテストサイトを構築しています。

    追記2

    またまた、上記の追記のVirtual Box+Vagrant+Chefはもう使っていません。現在は、Dockerでテストサイトを実現しています。その方が簡単です。

  • CakePHPでpaginate()での検索結果の引き継ぎの話し

    引き続きCakePHPの話し。覚え書きです。

    検索結果をリストにして、このリストをページ替えしたり、ある項目でソートしたりしたいということはよくあります。CakePHPではページング処理は、コントローラーでpaginate()に検索条件を与えてあげるだけで実現できます。

    しかし、ソートしたり次へリンクを押してページ替えすると、検索条件を忘れてしまうのです。検索条件の引き継ぎはここでも書きましたが、getパラメータの処理を書いてあげなくてはなりません。セレクトメニューや、ラジオボタンは、検索項目に1つにつき1つの値しかありませんのでいいのですが、チェックボックスは複数の値がありますので、すべての項目をパラメータにするのはURLが長くなってしまいます。

    最初は、チェックボックスの項目を配列に格納し、シリアライズ化してGETパラメーターに置いてみましたが、GETパラメーターを解析するpassedArgs()がうまく解析してくれませんでした。

    そこで、チェックボックスをグループにして、この値をコンマ区切りに変換してからパラメーターに渡してしまいます。しかし、最初に検索条件を入力するページはPUTで各項目が配列で渡してきますので、検索条件を生成する処理を共通にするために、GETで来たパラメータはPUTで来たパラメータに合わせるように、コンマ区切りからPUTパラメーターの配列に変換してあげます。

    こんなことをしてあげないと、複数の値を持ったチェックボックスでの検索結果がpaginate()で処理できないのは、CakePHPでの面倒なところです。

    PS. 以上の内容を読んでみると、理解できなさそうですね。自分が理解できるだけのメモ書きですね。該当するソースを公開して説明できればいいのですが・・・。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • FirefoxのWeaveアドオンは便利だよ、という話し

    いままでWebブラウザは、GoogleのChromeを使っていましたが、Firefoxに乗り換えてしまいました。Chromeの前は、Sleipnir(何と読むかわからならかったので乗り換えた?)を使っていて、その前にFirefoxを使っていました。

    乗り換えたといっても、Webページを作るときには必ずFirefoxをテストする訳で、いつもインストールしてはいます。そういえば、必ずFirefoxは最新版をインストールしています。IEと違ってアップデートをしやすいというのが理由でしょうか? Firefoxであまり前のバージョンを試すというのはありません。ユーザーから前のバージョンでトラブルが出たという報告もありません。しかし、IEはいまだに6,7,8と取りそろえています。さすがに5はありませんが。皆さんIEは昔のバージョンを使っているようですね。本当はIE6だと、トラブルの元になるのが多いので、新しいバージョンにしてもらいたいのですが。IEの場合はOSであるWindowsと深く結びついていると思われているので、気軽にアップデートできないようですね。

    追記
    IE6を撲滅するキャンペーンをやっているようですね。どこでもIE6の対応は、頭が痛いようです。

    前置きが長くなりましたところで、話しは本題に入ります。Firefoxに乗り換えた理由というのは、Weaveアドオンです。Weaveアドオンは、複数のPCにあるFirefoxのブックマーク、履歴、パスワード、Cookieをを同期できるというアドインです。たくさんPCを使っているとブックマークがそれぞれ別々に登録してしまって不便なときがあります。Weaveアドオンをインストールしておけば、一カ所のPCでブックマークを登録すると、他のPCに自動的に登録してくれますので便利です。どこでも同じ設定というのはいいものです。ブックマークのバックアップ代わりにもなります。詳しいWeaveアドオンのインストールの方法は、このページを見ていただければいいと思います。

    Chromeにも、もうすぐWeaveアドオンと同じような機能を搭載するようですが、すぐに恩恵にあずかりたいということで、Firefoxに乗り換えです。

    乗り換えたときの問題は、WebブラウザのデフォルトがChromeのままでした。何かブラウザを起動するとFirefoxではなくChromeが起動してしまいます。Windows XPはエクスプローラでデフォルトのWebブラウザを指定できたのですが、Vistaでは違うようです。調べたらコントロールパネルの「プログラム」-「既定のプログラムの設定」で設定するのですね。知らなかった・・・。

  • PICのお勉強

    PICというマイコンのお勉強を始めています。これを仕事にするのではなく、あくまでも趣味の電子工作です。

    今はパソコンと言われていますが、大昔はマイコンと呼ばれていました。基盤剥き出しで入力は16進キー、出力は8セグのLED。有名なところではNECのTK-80でしょうか・・。

    TK-80が出たのは中学生のころでしたでしょうか? TK-80は高くて買ってもらえず、その後高校生になってPC-8001を買ってもらったのを覚えています。それでプログラミングはBASICから入りました。TK-80を買ってもらっていたら機械語になっていたのでしょうか。

    ずっとコンピュータの世界にいますが、ずっとソフトウェアで仕事しています。ソフトウェア屋からすると、ハードウェアにあこがれ(嫉妬?)があります。ある会社にいたときは、工場の制御の部隊にいましたが、あくまでも私はソフトウェア開発の仕事をしてました。隣ではプロコンでハードウェアを制御していましたが、私はインテルマイコンで工場の業務支援をするといったシステムを開発するといった一見レベルが高そうな仕事をしていそうですが、結局は上司からはハードウェアを理解できていない人間に、工場の制御を任せられないということのようでした。

    それから、部署が変わっても会社が変わっても、ハードウエアの開発なんて縁のないものになりました。

    ふと思って簡単なマイコンの開発ができると聞いて、PICマイコンを触り出しました。まだまだLEDを点灯する程度ですが、部品をハンダしたりでちょっとはハードウェアを作っている雰囲気を楽しんでいます。PIC Kit 3も買ってしまったし、やらなければいけないように自分に仕向けていますが。

    やはり、ソフトウェア屋の性で、プログラミングのほうを凝っていくのでしょうか・・。

  • 何でLISPの本が予約ランキングの上位か?

    最近よく使っているbk1というオンライン書店サイトを見ると、なぜかLISPの本が予約ランキングの2位に入っている。先日亡くなったマイケルの写真集の次。

    LISPといえば括弧だらけのプログラム言語。普通のプログラム言語とはちょっと毛色が違う。プログラムのデータも関係ない。

    じつは、私の大学時代の卒業研究はLispを使った知識表現言語の開発でした。1年間はLispにどっぷりつかりました。そのころはSymbolicsのLISPマシンとかMacにつながるXeroxのLISPマシンとがあってLISPがちょっと流行ったころでした。お金がない大学でしたので、そんなLISPマシンを買うことができず、助手の先生が東大から配布してもらったLISP(Common Lispではなかった気がする。MacLispだったかな?)をメインフレーム(!)にインストールしてTSSで使っていた。

    しかし、何で今ごろLISPの本に予約が入っているのでしょうか? 今時のLISPはEmacsのLISPしか思い当たりません。興味あるので、私も予約してみようか・・・。