Main | April 2005 »

March 27, 2005

キティblog発見

今日はキティの日記発見。そう、あの猫。はやってるとは聞いてたが、キティまでとは。まさに猫も杓子もblog状態ですな。

サンタさんに続いてトラックバックを目論んだけど、残念ながらトラックバックはできないっぽい。ま、何書かれるか分かったもんじゃないしな。

おんなじところでシナモン(あれはなんだ?犬か?)もblogを書いてるらしい。教えてあげるとお子さま方は喜ぶんではないかと。

| | Comments (0) | TrackBack (0)

March 26, 2005

だめだ

niftyでsocketプログラミング、どうやら本格的にだめらしい。

うがー!(心の叫び)

と、叫んですっきりしたところで方針転換。サービスプロバイダがだめっつーものはだめ、これは環境の問題なので、環境を変える(つまりniftyから別のプロバイダに乗り換える)か、環境に適応するしかない。いまさらまた各種検索エンジンにURLを登録するのもめんどくさいので、環境に適応することにする。いや、そもそも検索エンジンから人が来たことなんて数えるほどしかないことはちゃんとおぼえてるさ。でもね、環境移行なんてめんどくさいものはめんどくさいのよ。

環境に適応する、とはどういうことかと言うと設計を変更すると言う事さね。厳密に言うと要求仕様レベルで別のものにするので、単なる設計変更とは言いがたいけど、この際細かいことはいいっこなしで。

まずは、

CGIを作るのをやめる(笑)

いや"もうやーめぴ"というわけではない。ローカルのPCで動くツールにして、定期的に実行する形にしようという意味。 web siteの利用者からしてみたらCGIだろうがスタティックなHTMLだろうが関係ないはずなのだ、情報の新鮮度が変わることを除いては。スタティックな情報はどうしても鮮度が落ちるからね。ま、でもしょうがない。できないことを延々と続けるよりは、できることから順に片付けて行けばいい。

そのかわり

web site更新(管理)機能を追加する

たいしたことじゃないんだけど、前日とまったく同じ情報なのにファイルを上書きしてタイムスタンプだけ更新するというのは美しくない。いや、待てよ?見掛けの更新頻度が上がっていいと言う考えかたもあるか(違)。ともかく、作成したHTMLファイルをサーバにあげる機能があって、情報に更新がなければ少なくともサーバ上のファイルの上書き更新はしない。もっと言うとなにもせずに更新の必要性はないぐらいのメッセージだけだして終了するだけの方がかっこいい。ま、そのへんの細かいところはおいおい考えるとして、サマると、

何がしたいか

電脳卸のwebサービスと連携して例のweb site専用webショップページを自動的に生成、更新したい。電脳卸専用のスクリプトを一気に書き下ろすんじゃなくて、ある程度汎用性を持ったモジュールで構成して、各モジュールは再利用できるようにしておきたいというのはそのまま。コマンド一発で専用ショップページを生成、アップロードが可能なツールを作成する。実行時に更新の必要性を判断して、更新が必要なければ少なくともサーバにファイルをアップロードしない、程度の制御は必須。

どういう使いかたをするか

いろいろ考えられるが、日本酒ブース、焼酎ブースなど専門ブースを固定的に用意して、直接商品が購入できるようなページを自動的に生成にしたい。ローカルPCログイン/ログアウト時に一発ずつ実行するなんてのが魅力的。手でやってたら絶対忘れるから。

どういう部品で構成するか

ローカルなんだからできるだけ標準のモジュールやCPAN−モジュールを使う方向で考える。XMLファイルを遠隔サーバから持ってくるモジュール(ファイル取得モジュール)、持ってきたXMLファイルをパースするモジュール(簡易パーサモジュール)はCPANかなんかを使うことにして、メインモジュールと、パースした結果をHTML形式で吐き出すモジュール(フォーマッタモジュール)、吐き出されたHTMLをファイルとしてサーバにアップロードするモジュール(アップローダモジュール)、更新の必要性を判断するモジュール(ディサイダモジュール)という感じだろうか。

と、まぁこんな感じで。ちょっと頭の中のイメージを違うものにしなきゃいけない。明日はこの件に関しては進めないことにして、ぼんやりいろいろ考えよう。

| | Comments (1) | TrackBack (0)

うがー

だめだ。niftyでは

use Socket

できない。っつーことはsocket関数が使えない = 外部サーバとやりとりできない。

外部ホストと直接通信を行うプログラム(socketなど)に関しては動作保証いたしておりません。

っていうのはこういうことか。なぁ?こういうことなのか?

って取り乱しててもしょうがないから善後策を考えなきゃ。う〜ん。休日までこんなこと考えるのやだなぁ。

| | Comments (0) | TrackBack (0)

March 25, 2005

サンタさんから

コメントをいただいてしまった。はじめてのトラックバックはサンタさんのブログにはったぞーとか自分の中ではしゃいでたんだけど、まさかコメントをいただけるとは。記念すべき初コメントがサンタさんからということで、かなりうれしい。お忙しいなか温かいお言葉ありがとうございます。がんばります。

あまりにうれしかったので記事にしてしまった。本当はコメントにリプライする形にするべきかな?googleさんに聞いても一般的にどうするべきというのは見つからなかった。サンタさんブログにお礼コメント、という雰囲気ではないような気がしたし、サンタさんは有名な方なので、みんながそれやったら大変なことになりそうなのでこっちに書いたけど、礼儀としておかしいようだったらどなたか指摘していただけるとうれしい。

| | Comments (0) | TrackBack (0)

March 24, 2005

サンタさんのblog発見

日本で唯一の本物のサンタ、パラダイス山元さんのblog発見。

ノルウェーで行われた公認サンタクロース ウインターオリンピックゲームに参加されたときの様子があげられている。木を切る競技とか、大変そうだ。本物のサンタには体力も必要ということか。今年のクリスマスからサンタの手伝いをはじめる予定なので、気が引き締まる感じ。

サンタクロースサイトとか見ても、真剣に"サンタクロースしてる"姿勢がひしひしと伝わってくる。若干季節外れだけど、本物のサンタクロースは年中サンタクロースなんだ、やっぱり。

| | Comments (1) | TrackBack (0)

今日はサボって

勤めている会社は水曜が定時退社日なので、今日は19:00位に家に帰ってきた。

で、socketプログラム進めればいいんだけど、今日はちょっとサボってTVを見てた。ヘキサゴンからトリビアという感じで見て、その後BS-iROCKの要をじっくり観賞。1970年代中心の音楽番組で、メインの根元要さん(スターダストレビューのボーカル)がすごく楽しそうで、見てる方もなんだかつられて楽しくなってくる、中学生ぐらいの頃、先輩の家に集まって音楽聞きながら話してた頃のことを思い出す、そんな番組。

今日はLightning in a bottleに触発されてブルース特集。いやー、堪能させてもらいました。そうか、BB Kingもうそんな年なんだ。

しかし、来週は微妙なおしらせがあるとのこと。この番組、以前にも

打ち切り -> 特番あつかいで放送 -> TOYOTA提供で復活

ってやってた経緯があるだけに、また?という感じ。いい番組なんだけどな...ってまだ打ち切りかどうか分からないけど。

しかし、BSフジのずっと好きな歌(ちょうど2年前に打ち切られたけどサイトは残ってるのね)といい、BSデジタルでいい感じの音楽番組は続かないな。通販番組やってるよりずっといいと思うんだけど(まだROCKの要は打ち切りかどうか分からないけどね)。

| | Comments (0) | TrackBack (0)

March 23, 2005

ありゃ

perl から Web ページを読み込むとか読むと、socket関数って

use Socket ;

宣言する必要があるようだ。niftyじゃ使えないかな?でもわざわざ

外部ホストと直接通信を行うプログラム(socketなど)に関しては動作保証いたしておりません。

なんて書いてあるんだよなぁ。謎だ。早いとこためしたいところ。

| | Comments (0) | TrackBack (0)

March 22, 2005

出勤

三連休明けはいつにもましてだるい。
天気も怪しいし。っつーか、午後から雨らしい。やれやれ。

| | Comments (0) | TrackBack (0)

March 21, 2005

軽く設計

さて、モジュール化の目途も立ったことだし、軽く設計でもしますか。

ま、仕事じゃないんで、要求仕様から機能仕様、詳細仕様まで落として...てなことをやる気はない。だってめんどくさいんだもん。お金が出るから我慢してるけど、ああいうドキュメントの類を書くのはほんと嫌い。

ただ、いきなりコーディングをはじめるのもまずいことは知ってる。最低限でも

  • 何がしたいか
  • どういう使いかたをするか
  • どういう部品で構成するか

ぐらいは掴んでおかないと、結局変な時間を消費することになってストレスが溜まる。だから、自分のために、これぐらいはあらかじめメモっておく。

何がしたいか

とりあえずweb siteから、電脳卸のwebサービスと連携して専用webショップを作りたい。電脳卸専用のスクリプトを一気に書き下ろすんじゃなくて、ある程度汎用性を持ったモジュールで構成して、各モジュールは再利用できるようにしておきたい。このココログにもwebアプリはあるようだし。

どういう使いかたをするか

いろいろ考えられるが、日本酒ブース、焼酎ブースなど専門ブースを固定的に用意して、直接商品が購入できるようにしたい。ユーザからのフリーワード検索は当面サポートしない。そんなに商品数も多くなさそうだし、第一初心者がいきなりこういうのを作ってセキュリティホールになるのも申し訳ない。

どういう部品で構成するか

メインモジュールと、XMLファイルを遠隔サーバから持ってくるモジュール(ファイル取得モジュール)、持ってきたXMLファイルをパースするモジュール(簡易パーサモジュール)、パースした結果をHTML形式で吐き出すモジュール(フォーマッタモジュール)かな。メインモジュールから引数の解析部分を切り離してパラメータモジュールとした方がいいかも知れない。

と、まぁこんな感じかな。

どうもniftyさんはsocketなんかが保証外のようなので、ファイル取得モジュールから作って早めに動きを確かめよう。

| | Comments (0) | TrackBack (0)

モジュール化成功

あー苦労した。

何がってNiftyで複数モジュール構成のPerlプログラムを動かす方法。

結論から言うと、モジュールファイルの先頭に

package <モジュール名> ;

と書いて、モジュールファイルの最後尾に

1 ;

と書けば、Exporterをrequireすることなくモジュールファイルを作ることができる。この最後尾の

1 ;

だが、Perlプログラミング講座第10章 オブジェクト指向プログラミングによれば、

モジュールが正常に読み込まれた事を表わす為に真となる値を、モジュールの最後に評価させます。

どんな仕様やねーん!

モジュールを使う側は

use <モジュール名> ;

して、

<モジュール名>::<シンボル>

という形で使う。

ためしてみたところ、niftyでも問題無く動くようだ。とりあえず大きく一歩前進かな。

| | Comments (0) | TrackBack (0)

March 20, 2005

サブルーチン

Perlのサブルーチンの話。

基本的にPerlではサブルーチンをsubを使って宣言する。

sub <サブルーチン名> (<プロトタイプ>) {
<実際の処理>
}

こんな感じ。プロトタイプって言うのは、このサブルーチンが取る引数の型の宣言。Perl5から導入されたらしい。C言語を知ってる人はかえって混乱するけど、Cで言うプロトタイプ宣言とは違って、純粋にとりうる引数の型を示すものらしい。なくてもいいんだけど、定義しとけばあとあと再利用はしやすい感じ。ドキュメントとか書かないわけだし。

で、呼ぶ方は普通に

<サブルーチン名> 引数1, 引数2, ...

って感じで呼ぶ。正式には

&<サブルーチン名> 引数1, 引数2, ...

という風にサブルーチン名の前に&をつけるんだけど、引数列を括弧で括った場合、またはあらかじめ宣言/インポートされているサブルーチンを呼ぶ場合には&は省略できる。

引数はCやPASCALみたいに名前を持った仮引数として宣言して使うという形ではなく、サブルーチン呼出時に付加された引数列を配列@_で参照できる。

んで、サブルーチン呼出時に

<サブルーチン名>

だけで呼び出すと、呼出側の引数列@_をサブルーチンに渡すことができる。

そういう観点で考えると、引数を取らないサブルーチンを呼び出すときには、明示的に

<サブルーチン名> ()

として空リストを引数として渡すのが美しそうだ。

| | Comments (0) | TrackBack (0)

モジュール

とりあえず、niftyがperl標準モジュールをサポートしてないのはわかっているんだが、自分が作るCGIはできればモジュール化して各モジュールの再利用なんてものもはかってみたい。いちおうプログラマの端くれとしてこのへんにはこだわりたい感じ。

そこで、以前に嫁さんがCGIをはじめるときいて買ってあげたつもりのラクダ本(第二版)を引っ張り出して調査。ちなみにこの本は嫁さんには難解過ぎたらしく、全然読まれてなかったかわいそうな本。一冊4900円もするのに。

どうやら、モジュールは.pmという拡張子で作り、頭に

package <モジュール名> ;
require Exporter ;
@ISA = qw ( Exporter ) ;
@EXPORT = qw ( シンボル1 シンボル2 ... ) ;
@EXPORT_OK = qw ( シンボル1' シンボル2' ... ) ;

と書いてやるだけでいいらしい。で、モジュールを使う方は

use <モジュール名> ;

または、インポートシンボルをリストして

use <モジュール名> qw ( シンボル1 シンボル2 ... ) ;

として、インポートしたシンボルをそのまま使えばいいらしい。ちなみに、@EXPORTと@EXPORT_OKの違いは、@EXPORTがデフォルトでエクスポートするシンボルのリストで、@EXPORT_OKがインポート側でリストされたときにエクスポートしてもよいシンボルだそうだ。

簡単なテストプログラムを作ってローカルで確認。全然問題無し。楽勝。で、調子に乗ってniftyにCGIとしていれて試すとこれがエラーを出して全然動かない。

よく見てみりゃモジュール側で

require Exporter ;

て、Exporterモジュール使ってるからな。perl標準モジュールをサポートしてないniftyでは使えなくて当り前か。モジュールのファンダメンタルな仕様を調べて自力で書く必要があるっぽい。マジかよ。

| | Comments (0) | TrackBack (0)

なんだか

午後三時ぐらいから午後九時半ぐらいまで爆睡。疲れ溜まってるんかなー、やっぱり。

| | Comments (0) | TrackBack (0)

March 19, 2005

うわぁ

長ぇな。読んでくれる人いるのか?

| | Comments (0) | TrackBack (0)

野望

プロフィールの方にも書いたが、わたしは生来の筆不精だ。そのわたしがblogなんてものをはじめたのには、実は理由がある。

これもプロフィールに書いてあるが、わたしはweb site"Bragging Boozer"の館主で、そのさびれっぷりに焦りを感じていた。どれぐらいさびれているかっていうと、今週の訪問者が2名とかそんなレベル。しかもほとんどの人がトップページをちらっと見て去っていってしまうようだ。

いや、わたしの駄文がつまらないとか、構成が悪いとか、コンテンツが少ないとか、そういう根本的な原因があることはなんとなく分かっている。でも、急に素晴しい文章をバリバリ書けるようになったりするほど世の中が甘くないことも知っているつもりだ。

そんな感じで出口のない悶々とした日々を送っている(といっても仕事中や食事中、もちろん睡眠中にはこんなことなど忘れているんだが;笑)わたしの元に電脳卸がwebサービスをはじめるというメールが届いた。webサービスっていうのはあれだ。amazonなんかでは既に開始されている、あるweb siteの情報を別のsiteから利用するためのAPIみたいなものだ。これを使えば電脳卸の全ての商品を(ある程度)自由に利用したwebショップがつくれてしまう。

そこで、本業(いわゆるソフト屋)で培った経験を元にちょちょいと作ってみようと思ったのだが、siteを置いているniftyさんはCGIに利用可能なのはperl、shスクリプトのみで、さらに

perlのバージョンは5です。 (ただし、perl5での標準的なモジュールは使用できません)

ときたもんだ。

ソフト屋だけど制御系なので、perlの経験がそんなにないわたしにはけっこうきついが、勉強がてら一から書いてみるのも悪くはない。最近は会社でコーディングをさせてもらう機会が滅法減っていて、ストレスを感じていたところだ。でも飽きっぽいところもあるので、本業や諸々の雑用の合間のとびとびの作業でシステム完成までもっていくモチベーションを維持する自信もない。

そこで最近はやりのblogで開発日誌かなんか書いとけば、前後の作業のつながりも明確になって、モチベーションの維持にも役立つのではないか、と思ってココログのアカウントを取った次第だ。

ちなみに言っておくが、わたしは日報だとか週報だとかを書くのが嫌いで、金をもらっている仕事でもしばしば週報を飛ばして怒られたりしている。そんなわけだから、このblogが続くかどうかも微妙といえば微妙。もしかしたら、モチベーションの維持を名目にしながら、もっと大変なことをはじめてしまったのかも知れないとも思ったりする。

| | Comments (0) | TrackBack (0)

March 18, 2005

飲み会終了

傘は忘れないように会社においてきた。

| | Comments (0) | TrackBack (0)

変な天気だ

空は暗いし、小雨が強風にあおられて舞っている。かと思えば突然日が差したり。
今日は飲み会だし、持ってきた傘忘れなきゃいいんだが。

| | Comments (0) | TrackBack (0)

とりあえず

blogをはじめてみることにする。

商売柄HotWiredなんかはマメに読んでいる方なので、日本じゃ日記サイトと呼ばれているスタイルに近いものが、海外じゃweb log、略してblogなんて呼ばれて最近はやっているらしい、ということがもれ聞こえてきた頃(もう数年前になるか?)から blogというものについては知っていた。

が、まさか自分がはじめるとは思ってなかったし、こうして最初の一文を書いている今でもまだ迷いがある。

小学生の頃から作文は嫌いなんだ。

でも、まぁ手をつけてしまったからにはそれなりに続けられるといいかなと、なんかちょっと控えめに思ったりもしている。

| | Comments (0) | TrackBack (0)

Main | April 2005 »