2002年2月26日: PHP + MySQL 事始め その2

  •  前回案外あっさりとPHPのスクリプトが書けたのに気を良くして、今度はトップページに良くあるコーナーの更新表示Update!を、自動表示に切り替えようと画策してます。普通は更新から1週間ほどでマークを消すように心がけてますが、よく消し忘れたり、逆に更新したのにマークを付け忘れたり、なんていうことがあることと、さすがに更新ごとに手書きでHTMLのスクリプトを書いたり消したりするのは面倒だからです(^^;。

  •  例えば更新日時をチェックする対象が普通のHTMLファイルや、ログを残すタイプの掲示板だったりすれば、HTMLファイルやログファイルの更新日時を取得して、それとサーバのローカル時刻との差が一定日以内であればUpdate!マークを表示、それ以外だったらマークを消しとくなんていうスクリプトを書けばよいですが、問題はURLでアクセスする別サーバ上にあるコーナとPHPで動的にコンテンツを生成するようなコーナの更新時刻の取得。

     前者はfopen()でURLをオープンしといて、fstat()辺りで更新時刻をげっとできないかな〜と思ったりしてますが、どうも巧くいかない(^^;。スクリプトをリロードする毎に得られる更新時刻が変っているようで(謎)。後者はスクリプトファイルの更新時刻を調べても意味が無いので、スクリプト内部でコンテンツの更新時刻を記したMETAタグを動的に生成させるように仕組んでおいて、チェック時にはそのMETAタグに記された時刻をげっとするようにするしかないのかな〜なんて考えてはいますが、出来ればMETAチェックは避けたいのが本音(構文解析が面倒くさそうなので(^^;)。

     方法に関してはもうちょっと考えてみますか・・・。

    #【私信】
    # 今日から3日間出張で不在なので、各種返信は(恐らく)遅れると思います。

  • 2月23日: PHP + MySQL 事始め

  •  MIDIページに置いておく試聴用のデータフォーマットを増やすついでに、曲ジャンルと試聴用データフォーマットの選択に合わせて曲リストを自動生成するようなスクリプトを組んでみました。MIDIページを含め、このサイトにあるコンテンツは全て手書きのHTMLで作成してきましたが、更新するごとにHTMLを手書きするのも大変ので、コンテンツ生成を自動化できるところは自動化してしまおう、という手抜き夢の実現の第一歩です(^^;。

  •  スクリプトを記述するにあたって今回初めてPHPを、データベースエンジンとしてMySQLを使ってみました。この両者の利用効果は既にたかたにさんのページで実証済みでしたし、今現在使っているホスティングサービスに決めた理由も PHP と MySQL がデフォルトで使えるということがあったのですが、はじめて触る言語だからということで使うのにちょっと今まで躊躇してました。

  •  今回組んだスクリプトは、あらかじめDB上に曲情報(作成年月日、曲名、コメント等)を登録しておき、試聴を行う人からのリクエスト指定(曲ジャンル、フォーマット)にマッチするものをDBから検索し、マッチする登録情報を元にHTML形式でテーブルを作成、表示するというものですが、突貫工事ながら1日ほどでスクリプトが組みあがってしまいました(^^;。

  •  PHPは比較的とっつきやすい言語とは聞いていましたが、まさか1日ほどでデータベース連携型のページ(それほど大した物ではないですが)が組める程のものとは思ってませんでした。今回のMIDIページのように、リクエスト応じてDBから情報を引っ張り出し動的にページを作り上げるのがよさそうなコーナーがいくつかあるので、暇を見て PHP+MySQL 化を進めてみたいと思います。

    # その前に中身を何とかしろ!という声も聞こえてきそうですが(^^;

  • 2月18日: ストレス?

  •  巷ではインフルエンザが猛威を振るっているようですが、最近私も調子がどうも悪いです(そうは見えないでしょうけれども(^^;)。なんと言うか、風邪で会社を休むほど体調が悪いわけでもなく、かといって凄く調子がいいわけでもない。なんていう状態が先週ぐらいから続いてます。

  •  先週末に会社の同期で集まって飲みに行く機会があったのですが、その席で「お前、ストレス溜まってるんちゃうの?」なんて同席していた同期から言われてびっくり。正直私はストレスとは到底縁の無いお気楽極楽とんぼだと思ってたのですが(^^;。

  •  確かに、ここ1ヶ月ほど仕事内容が週単位でころころ変ったり、ろくに部署の設備品も分かってない癖にどういうわけか設備管理の仕事を任されて、棚卸調査でやたら広い会社内を東奔西走してたり(冗談抜きで走り回ってました(^^;), etc, etc...とストレスの原因になりそうなことは沢山ありましたが、ストレスのはけ口は沢山用意して色々とはけさせてきたつもりでした。

     それでもここ最近のすっきりしない体調、他人から見てもストレス溜まっているように見えるというのは、自覚症状があまり無いですけどやっぱりストレスが少しずつ蓄積されているのでしょうかねぇ(^^;。

  • 2月11日: 

     この日は、朝早くから秋葉原のじゃんぱらに使っていないPCパーツを売りに行ってきました。

     じゃんぱらに持ち込んだのは、この間の大掃除のときに出てきた使っていない物品、都合8品でしたが、結局8,000円程で買い取ってもらえました。1品当りに直すと約1,000円程での買取ということになりますが、実際のところはそのうちの2品が買い取り3,000円程と妙に高かったことを除けば、殆どの品は300円程、10Base-TのLANカードに至っては50円(^^;なんていう状況でした。

     そこで終わっておけば収支は黒字だったんですが、その後結局買い物をしてその分は殆ど消えてしまいました(ちなみに秋葉原までの往復交通費を考えると完全に赤(ぉ)。何を買ったかというと、メルコの無線LANカード WLI-PCM11L。何でこんなものを買ったかというと、手元にあるメルコの有線ルータBLR-TX4がこいつを挿すことで無線ルータAir Stationに化けるらしい、ということを聞いたので試してみようという魂胆です(笑)。

     やり方自体は非常にお手軽。まずはメルコのページにあるアップデータを使ってBLR-TX4のファームウェアのバージョンを上げ、あとは買ってきた無線LANカードを左の写真のようにおもむろに挿して電源を入れるだけです。あとはクライアントとなるノートPCに別途準備しておいた無線LANカードを挿すと・・・見事BLR-TX4側でクライアントを認識してくれました(^^)。

     ちょろちょろっと無線LANで接続されたノートPCからWebにアクセスしてみたり、宅内のファイルサーバからファイルをコピーさせてみたりと試してみましたが、とりあえず問題なく動いているようです。外部へのWebアクセスに関しては、もともと下りが2Mbps程度しか出ていないのに対し無線LANの最大速度が11Mbpsとオーバースペックなので、特にストレスは感じませんでした。一方で宅内のファイルサーバからのファイルコピーはさすがに100Base LANと比較すると見劣りします。そりゃ通信速度の理論値が約10倍も違うので当然なんでしょうが(^^;。

     それでもやはりLANケーブルが床をのた打ち回っていないというのは非常に快適です(^^)。この際ノートPCから伸びている電源ケーブルも何とかしたいところですが、バッテリのもちの短さを考えると(標準で1時間)電源ケーブルの呪縛から逃れるのはどうも無理のようです(苦笑)。

    2月8日: +512の幸せ

  •  最近メインマシンでお絵かきしてると、画像表示の拡大・縮小を行うたびにスワップが頻発して動作速度が極端に遅くなる、なんてことが妙に気になりだしたのでメインメモリを512MByte追加して計1GByteにしました。

  •  元々メインマシンに乗っているDDR 512Mbyteのメモリは、丁度メモリ価格が底をついた頃(去年の11月頭)に購入したもので、確か買値が6,500円ほどだったはずですが、今回購入したDDR 512MByteのメモリは買値が16,000円程。・・・3ヶ月前ならあと+2,000円程で1.5GByte(512MByte×3)のメモリが買えたという、当時を知ってる人にとってはなんとも信じられない価格です。

    #あの頃の価格が「異常」なだけ、というのが本当のところなんでしょうが(^^;

  •  で、増設した効果はやはりてきめんでした。画像表示の拡大・縮小をかけてもスワップは発生しなくなり非常に快適です。16,000円投じた価値は十分にあったかも(^^)。でも、正直メモリ1GBも無いとスワップが頻発する作業って、お絵かきのときに使うPhotoshop Elementぐらいです。しかも昔はそんなこと無かったはずなのに・・・(^^;。

  •  今現在、このサイトでは楽曲の公開用にMIDIファイルと、実際に演奏させたものを録音・エンコードしたWMAファイルの2つをセットで公開してますが、もうちょっとファイルの選択肢を増やしてみようということで、試しにReal Audio形式のストリーミングファイルを作ってみました。

     このReal Audio形式のファイルは、Real Networks社が配布・販売しているRealProducerというソフトでしか作成できないのがちょっと厄介ですが、低ビットレートでエンコードしたときには他の圧縮形式よりも音質が良い傾向にあるようです。実際、同じ曲(ビッグブリッヂの死闘)を以下の条件でエンコードしてみて聴き比べると、半分ほどのビットレートでエンコードされたReal Audioファイルでも案外音質に変りが無いように聴こえてきます。

    # ちなみに、64kbps以上で同じエンコードレートなら、WMAの方が若干音質が良いよう
    # なので、どちらが良いかは聴き手の環境次第です。

    Windows Media Audio Real Audio
    エンコードレート
    (ターゲット)
    64Kbps 56kモデム(実レート32kbps)
    ファイルサイズ 739KByte 375KByte
    試聴 F5Brg100.wma F5Brg100.rm

  •  さらにおまけで、Real Server G2を利用したストリーミング配信にも挑戦してみました。ストリーミング配信とはいっても、Real Server G2は現在借りているサーバ環境ではデフォルトで使用できる状態だったので、私の側で用意したのはエンコード済みの楽曲ファイルと、演奏する順番とファイルのロケーションを記述したramファイル、以上2つだけのお手軽配信ですが(^^;。

     このReal Server G2を利用すると、複数の曲をジュークボックスの如く連続してストリーミングできるようになります。WMAファイルのように曲を聴くごとにいちいちURLを指定しなくとも、ramファイルに記載された演奏順で連続して聞けるようになります。今回は試していませんが、接続元の回線環境に応じてビットレートを変えて配信する、なんていうことも出来るようです。

  •  今回実際に作ってみたのが以下のプレイリストです。Real Player 8 (or Basic) をインストール済みの環境であれば、下のリンクをクリックするとReal Playerが起動して演奏が始まるはずです。以下のリストの中にチャチャ関係楽曲が含まれていないのは、まぁ、大人の事情ということで勘弁してください(^^;。ちなみに、曲は全て56Kモデムをターゲットにエンコードしてあるので、ダイアルアップ環境の方でも何とか聴けると思います。

     さらに、ウインドウ上部にあるメニューで 「再生(P)」⇒「連続再生(C)」と選んでおけば、プレイリスト内の楽曲が延々繰り返し再生されるようになります。こうしておけば、このサイトに掲載されている楽曲を常にBGM代わりに流しておきたい方や、ただなんとなく聴き続けてみたい方には便利かと思います。果たしてそんな人がいるかどうかは分かりませんが(笑)。

  • 2月3日: BLR-TX4

  •  私が普段利用しているCATVプロバイダのJ-COMが2/1から下り8M上り2Mに増速&いまさらながらルータの使用を解禁するということで期待してこの週末を迎えたのですが・・・今のところ増速の気配なしです(--;。下りは元々2M近く出てたのでさほど不自由してなかったのですが、上りが良くて128k、下手をするとISDNの64kよりも遅いなんていう散々な状態だったので、毎度サイトの更新のときには苦労する羽目になってます。早く来い来い上り2M(^^;。

  •  ところで、回線の方が早くなってもPCとの間に繋がれている機器のスピードがそれに追従しなければ意味が無いということで、ルータとして使っている メルコBLR-TX4のスループットが知りたかったのですが、メーカーサイトにはそのような情報はありませんでした。今世の中に出回っているいわゆる「ブロードバンドルータ」だと「スループット○○M」なんていう宣伝文句が製品の箱にしっかりと書かれていて分かりやすいのですが、さすがに1年近く前の製品だとそんなことを売り文句にしているものは無いわけで(^^;。

  •  仕方が無いので、分解してみて使われている部品構成からスループットを考えてみました(ぉ。↓が中身のメイン基盤写真と搭載されている主な部品のスペックです。

    • 1. KS8995
         KENDIN Communications製の PHY内蔵 5port 10/100M MAC-SW。MAC層でのスイッチング、かなり乱暴に言えばスイッチングハブの機能を1チップで実現している。5portの内、4portはLAN側のスイッチングに使われていて、残りの1portは後述の AX88195 に繋がっています。
         このチップで通信速度が落ちるということは、恐らくあまり無いでしょう。

        # 4〜5port装備のこの類のチップとしてはKENDIN KS8995の他に
        # RealtekこれとかMarvellこんなのがメジャーなようで、いろんな
        # ブロードバンドルータで使われているようです。

    • 2. AX88195
         ASIX Electronics製の MACコントローラ。前出の KS8995 と後述の HD6417709A との間の橋渡しをしているようです。このチップでもあまり速度が落ちることは無い・・・はず・・・(あまり自信が無い(^^;)。

    • 3. HD6417709A
         日立製の32bit RISC CPU。通称"Super-H"と呼ばれるCPUで、これはSH-3と呼ばれるシリーズの一員です。このSHシリーズのCPUは組み込み制御やハンドヘルド機器、古のゲーム機SEGA Saturnなんかにも使われている由緒正しき日の丸CPUです(笑)。
         このルータでは、133MHz駆動で最大173MIPSの性能が出るチップを使用していますが、果たしてそのクロックで駆動されているかどうかまでは確認してません。

        ここの話を見る限り、どうも80MHzで駆動されているそうな(^^;

         ここで、NATやフィルタリングの処理、各種のマネジメントを行っています。このチップの処理能力が、スループットを大きく左右することは言うまでもありません。

    • 4. RTL8019AS
         カニさんマークで自作PCユーザにはおなじみ(笑)Realtek製のEthernetコントローラです。前出のCPU(HD6417709A)で処理されたデータを受け取ってWAN側に流したり、逆にWAN側から来たデータをCPUに渡したりする、WAN回線とのインタフェースになる要のチップですが・・・スペックを良く見るといまどき珍しい ISAバス接続の10Base-Tオンリー対応のコントローラです。・・・SH-3との間はISAバスで繋がっているんかい(^^;。このチップで既にスループットの上限は決まったようなものです(^^;。

     という訳で、まずはWAN側インタフェース(RTL8019AS)での制約で理論上の最大通信速度は10Mbps、RTL8019AS と SH-3との間がISAバスで繋がっているとすれば実効速度は恐らく最大でも6〜7Mbps、さらにはCPUでNATやフィルタリングの処理を行うとすれば、速度はさらに落ちるということで、ルータで何をさせるかにもよりますが恐らくスループットは4〜5M程になりそうです。

  •  とりあえずまだ増速していないようなので、今のところは問題ないスペックですが、増速してからはこいつがボトルネックになるなんていうことも十分ありそうです。

  •  ところで、分解してみて分かったのですが、CPUの右隣にはなにやらどこかで見たことのあるコネクタがあります(笑)。これはもしやと思っていろいろ調べてみると・・・見事予想通り(爆笑)。スループットは最新の製品に比べれば劣ってしまいますが、このフィーチャーはなかなか遊べそうです。来週末は秋葉原でカードを買ってきますか(^^)。

  • 雑記

    日々の出来事・想うところのメモ以上、日記以下の記録。萌えトークよりもお堅い話題が主体です。

     

    過去の雑記

    リマインダ

    りんく

    ご連絡は以下からどうぞ