サーバー遊びは続くのであった
右往左往しながら、ちまちま自宅サーバーいじりは続く。データベースとmod_perl2がほとんど未知の世界なのでそこんとこでひっかかりまくり。でも、ファイルをいじるのにrootからの絶対パス指定って怖くないのかなぁ。外部ファイルのopenに失敗するのでもしかしたら、と
opendir(DIR,.)
とやってびっくり。/etc だの /bin だの /home だのがぞろぞろ見える。ディレクトリ構造の見当がつくなら、自作CGIで覗かれてしまうぞ。どうやって処理?対処?してるのか調べてみる必要はあるな。
これの納得がいって、問題なければセッション管理もどきをディレクトリでやればいいかな。トップページを通過したら後はページの頭に通過チケットチェックをつけるだけで、意外に簡単にもどき構造のできあがり、かも。
その前に、サーバー機自体は普通に稼働してるっぽいので、忘れないうちに設定をメモっておこう。今回特にハマったところもないし。
ルーター→Libretto50→DELLの図式だ。
…表からSSH2でログインしてるんだけど、こいつがかなりのメモリ食いだった。ちなみにこっちのportはLibretto向き。ちょっとでも軽くしておこうとhttpdもpostgreqlもqmailも止めたというのに、swap起こしてるから変だな、と思ってps aux。ううむ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
喉がイガイガするゼ
咳が抜けない…。嫁に言われるほどこっちは「しんどくない」んだけどなぁ。年末ぎりぎりには高齢者施設にヘルプにいかなきゃならんし、こんな風邪をうつしちゃ大変だろう。マスク必須だ。
でもって、HTMLをまたがちゃがちゃいじりながら、昨日の続きをぼーっと。
メモ
セッション、てのは一度IDとパスワードを通過したらあとはチケットを持って行き来する、というイメージでよさそうだ。
CGI::Session とかモジュールがあるのでそれを使えば簡単に実現できる…んだけど。Librettoのプアーな環境だし、できるだけ簡単にしておいた方がいい=自分の理解範囲内で納めておいた方がいいのではないかと。
ということで。
ID、パスワードはpostgresqlにて管理(パスワードはもちろんcryptしたもの)
まずアクセスするとIDとパスワードの入力を求める。
それが合ってれば有効期限なしのその場限りのCookieにチケットを渡して、同じチケットをフォルダに書き込む。
次の入場からはそのチケット同士が合ってればIDパスワード通過済みということで中にはいる。
入場ごとにutimeでフォルダ側チケットの時刻を更新。
フォルダ側チケットの時刻が決まった時間以上経っていたらそのチケットは無効とみなして削除。
また、一度ブラウザを落としてCookie側のチケットがなくなったらフォルダ側のチケットは無効となるので削除。
チケットはダブリのないことが保証されているpostgresqlのserialを使っているIDと、timeをmd5で暗号化したものを合わせて作るのでなにがあってもダブることはない。はず。
もちろん、Cookieをつまみ食いされたら意味がない。けど、そこからたどり着けるのはIDまで。Cookieの中にはID以外の個人情報はなにもない。また、その場のセッションを乗っ取られるわけだから読み書きにも影響されるけど、やはりその場まで。
というのを作ってみた。
セッションを保存して次回アクセスにまで生かそうと思うと大変だし、厳重にやるならhttpsでやるしかないけど、そこまでやる意味があるのか、という判断も必要。その場限りのものならこの程度で十分かも知れない。
IDとパスワードで保護されたところを意識せずにうろつく、といえばオンラインショッピングや会員制ホームページに、最近大流行のSNSじゃありませんか。もしかすると、ちょっとやってみよう、程度で始めてみたら、膨れ上がってびっくり、てのが真相かもね。
新しい皮袋に古い酒を注ぐ、という諺。
そういや、今年面接したところから電話。どうやら来年早々の仕事らしい。知り合いのライターにちょっと声をかけてみる。こういうところからもなにか展開が見えればいいけどなぁ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
mod_perlに驚く
劇的に早い。
いや、世間はすっかりクリスマスだというのに、わたしは、今日も今日とてバナー作りに励んでたわけだが。息抜きにpostgresqlとdbiを調べて、mod_perlで動かすために行儀の良いスクリプトを書いてみた。
345行のデータベースからランダムに一行引っ張り出して表示する。
たったそんだけ。データ量も少ないので、純粋にperlを呼び出すところの負荷も見えようというもの。普通にcgiとして呼び出したのと、mod_perlのRegistryと比較してみて腰が抜けたのだ。早いとは聞いてたけどこんなに早いとは思わなかった。最初の一度はどちらも同じなのに、その次からがすげーのひとこと。ブラウザがキャッシュを表示してるだけかと思うほどだ。
自宅サーバーのLibretto50のMemory32Mだと、ほとんどなにもしない状態でSWAPしてる状態。cgiでperlが呼ばれるとそのたびに、確実に、新たにswapすることになる。mod_perlはいわばperlインタプリタ内蔵。一度はスクリプトをコンパイルするけどそれ以降はメモリに蓄える。そりゃ早くなるはず…といった理屈以上に早く感じたのはLibretto50の貧相なサーバーだからか。
うううむ。こりゃmod_perl用にcgiを書き換えてみないことには始まらないかも。当然データを丸読みしてメモリを食いそうなのは、またそこでSwapの心配・対策を考えなきゃいけないんだろうけど。
月間30億ページビューとやらの、mixiとかはてながmod_perlというのもわかるような気がする…ってLibretto50サーバーと比べるのは無茶、か。
mod_perlでこんなに早くなるのがわかったのは、ちょっと収穫だったなぁ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
大人の科学2台目購入
えーっと。約5吉野家を消費。「 大人の科学 マガジンVol3」を八重洲ブックセンターで買ってしまった。2冊目、というか2台目。「科学のタマゴ」もあったのでどっちのカメラにするかうだうだ悩むおっさん、て嫌な図だな。ズーム機構なんか面白そうだったんだけど、見た目で2台目大人の科学にした。いや、実際は、シャッターも気に入ってるので、同じものにした方が改造とか予備とかに使えるメリットがあるのだ。
これで、一台を広角専用にしたいけど、プラスチック加工の道具をどうしたもんか、部品をどうしたもんか、てところで中断したまま。
中断といえば、掲示板スクリプトも中断。ImageMagickのインストールがうまくいかん。エラーでコンパイルが途中で止まるのだ。あれこれ古いバージョンが絡んでるので、ライブラリなんかも依存関係を追いかけながら新しいものに置き換えた方がよさそうだ…ってそれぐらいしかやりようが思いつかん。となるとまとまった時間が必要なのでどうしたもんか、てところで中断したまま。
中断といえば、サーバー機。どうやら明日にも届くらしい。けど、なりゆきでわたしがインストールするハメになりそうだ。プログラマ氏が木で鼻をくくる状態でおはちが回ってきた。それならば。Linuxではなく、多少なりとも勘の働くFreeBSDにしてやろう。Linuxって、ディストリビューションがいろいろあってどれを選べばいいのか分からないんだよなぁ。
てことでFreeBSD5.4のCDを作って待機だ。って、わたしみたいな素人がインストールというか運用にかかわってええんかい。開発テスト用だからかまわない、というのは考え方がまったく逆で、開発テスト用だからこそプログラマ氏など実際に関わる人間が実機を想定して組み上げなきゃいけないんじゃないのかねえ。困ったもんだ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
30度超はいけません
暴飲暴食の翌日が30度超ってのはかんべんしてほしーぞ。ひたすら部屋でごろごろするだけやね。
てことで、ピクミン2をやってみたり雑記帖のスタイルシートを書いてみたり。ピクミンは傑作っす!無理やりジャンルわけするとアクションパズルゲームなんだろうけど、キャラの動きやアイテムにいちいち小技小細工がきいててニヤリとさせられるしパズルも解けた時の「なるほどーっ!感」が大きいものが多くて飽きない。
さすがにこれでいちんち潰すと失業者として、ひととしていかがなものかと思うのでスタイルシートもいじってみた、というのが今日の真相。なんのこっちゃ。
この雑記帖は一見perl5で書かれてるけどキモの部分はperl4の書式、とスクリプトをひとさまに突っ込まれるとすみませんとしか言いようのないシロモノ。とはいえ、最近の流行りを少しだけ取り入れて見た目のカスタマイズを自由にできるようにしてある。その分、設定・スタイルをいじりだすとキリがないんだけど。これもパズルと同じで面白い。
ついでにこないだからいじってるメモをリンクで繋ぐCGIをパスワード入力を殺してzaurusにいれて使ってみた。思ったより面白いものになりそうだなぁ、と自画自賛芸。ふた昔前に、ちょっとだけ流行ったゲームブック(分岐のある小説本)とか、ZORKのようなテキストアドベンチャーを作るのに面白いかも。またネット上で複数人でのリレーなんちゃら、連想ゲームするのにも使えそうだったり。zaurusで持ち歩いてるので、使い道に関して、もう少し練って遊んでみよう。
そういや、今日あたりから自治会費の集金にも回らないといけないな。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
居眠りには理由がある
蒸し暑い今日も部屋でひたすらぼーっと&ごろごろと。サンデープロジェクトの田原はますますボケが進行してきたな、と呆れながらも見てしまうのは、すっかりテレビ局にハメられてるということになるのか。政治をワイドショーにしたテレビ朝日、田原総一郎の功績は大きいと思う。いや、おっさん連中の討論というか罵り合いというか、面白いもんだ。当然それなりに声のデカさが売り物の連中だし。テレビでの失言が増えたのも出演機会が増えたからだろうな。
んで、サンデープロジェクト前のNHK。山崎拓が郵政民営化進行の現状を鉄道に例えて、投身自殺ならまだ男らしいが、などと思わず腰を抜かす発言。一瞬シラっとした空気が流れたけど、これ、民主党からうるさいのが出てたらひと騒動起こしてたかも。
スリリングであります。
その後部屋でパソコンをいじってごろごろしてるうちに不覚にもうたたねぶっこく。
PostgresQLの解説本を読んでたんだけど、簡単なデータベース、りんご・値段、てなものの解説ページから、いきなりPostgresQLのデータ型・SQL文・管理といった項目に入って、WEBアプリの作成ページとなる。こら。こんな構成で素人についてこいというのは無茶だろ。
このソフトはこれこれこういう仕組みで内部構造はこんなになってますよ、という前に、こんなことができますよ、という実例・サンプルから入ってくれ。まずは夢を語ってくれ。
WEBアプリというのも perl なら perl だけにしてほしいのが、CPANからいろいろモジュールを持ってくる必要がある。PHP の項目もご同様。オプションのモジュールがインストールされているプロバイダばかりではないぞ。
しかたなく、データ型などに関して流し読みでもいいから読んで、データベースのお作法をちょろっと感じておくか、と思ったのがうたたねの原因だった。
競馬のデータをいじくりたおすぞっという目的があって、パソ通内に仲間内がいて一緒にやっていたから perl はそれなりに使えるようになったようなもの。awk から流れて perl に移った時もけっこう手ごわくて四苦八苦してた記憶がある。当時のモチベーションがないから、眠気に負けるのだ。しょぼいぞ。
いくつかのモジュールをインストールするにはすでにインストール済みのものをいくつかバージョンUPしてインストールしなおさないとダメだというのがわかって、解説本を諦めた。
起きてからネットで検索。
ここ と ここ のおかげで、とりあえずCSVファイルをインポートしたデータベースからSELECTでずら〜っと一覧することはできるようになった。
ここからはPHP5の解説本も一冊欲しいところか。うまく構築できそうだったらzaurusに持ちこんでみよう。
しかし、蒸し暑い一日だなぁ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」