2009/04/07(火)BOD管理CGI Ver.1.0
BOD管理CGI がやっと人目に晒せるようになりました。
BOD Manager
どこかに置いてあったものからの変更点は
- [+][-]ボタンを押すごと、セル一つを編集するごとにページ遷移するのではなく、まとめて編集してから[input]ボタンを押した時にページ遷移するように変更
- 種類を絞り込んで表示できるようにした
- 全部一括で表示することはできなくなった
- 内部処理を共通化、汎用化した
- プレーンテキストに保存されていた認証パスワードを DB に格納するようにした
- 生で保存されていたパスワードをハッシュで保存するようにした
- ユーザー作成等の操作をウェブインタフェースからできるようにした
- 管理者の目にしか触れないのですっごい適当
JavaScript, CSS, Cookie が多分必須です。なくてもなんとかなるけど、
- JavaScript がない場合はテキストボックスに直接入力しないとダメ。[+][-] のボタンは使えません
- CSS がない場合は、レイアウトを大部分 CSS に頼っているのでどうなるかわかりません
- Cookie がないとログインできないはず
変更するかもしれなかったのに変更されなかった点
- DB のフォーマットは SDBM のままにした
静的データの定義は別ファイルにしよう。
UOA のベンダーエージェント情報をクリップボードからコピーしたデータによる更なる一括入力とか?だれか UOA 買ってくれ。
2009/04/05(日)見物とか
じょかさんという方が家改装中でゴザが欲しいという話から話が膨らみ、純白布で9個作るということに。
25枚*9個==たくさん。なのだが、無償提供?する方がいてさっそくじょかさんは設置しに去り、その間に居残り組みは「ごきげんびょう」とかアラレちゃんとか話しつつすごし、じょかさんが設置完了で戻ったころに閉店時間だったので見物にお邪魔した。
すっげぇ豪邸。水が配置されてて吹き抜けとかがあって、テラスに出れば王様気分、中にいても玉座の間のようなかっちょいい家。屋上にはエコのために緑が配置されている環境にもやさしい家。花見とかできそう。
あでこさんが中折れ階段に興味津々の様子。
中折れ階段いいな、俺もカスタマしたくなった。そんな日曜夜。
来週はLFでクイズ大会だそうです。
2009/04/02(木)俺よりエディタを信じる漢
いつまでも未完成な BOD管理CGI を久しぶりに弄った。
いじっているうちに、すっごい根本から書き直した。
一番てっぺんの呼び出し元の仕様から変えないといけない変更を入れた。
よく考えてコードを書くときはボトムアップで書くので一番下の関数を書いた。
関数を置き換えるだけにすればいいのに元あった関数もいじった。その他整形のためとかちょこちょこいじった。
なんかバグった。
コードの階層構造は自分では把握しないのでエディタがインデントを入れるに任せるんだが(えらそーに言う事じゃありませんね)、エディタのインデントが崩れている。しかし周辺に何もおかしな記述が見つからない。そもそも perl インタプリタ自体は文法上のエラーを吐かないし、premature end of script とか言わないので構造自体には問題なさそうだ。最終的に帳尻があっているだけかもしれないが、さすがに闇雲にエディタのインデントが合うように調整、みたいな書き方はしないのでこれもないだろう。
しかし、Not a CODE reference at bod_manage.pl というのは関数を定義しているうえでこんな事を言われる以上、どこかで階層構造がイカれているような気がする。自力で深く考えずに勘でいうなら、呼び出している箇所か呼び出される先のスコープがどこかおかしな所に入っている。
emacs の場合は cperl-mode を使っているが、他のインテリジェントなエディタは何か見つけるかもしれない、と思いいろいろ試す。# 自力で読む気はないらしい。
Komodo Edit を入れてみた。Komodo Edit は Perl の大御所といえるであろう、Active State がリリースしている統合開発環境からエディタだけを抜き出したもの。
意外とつかえねー。階層構造をフォールディングできる部分はすばらしい。euc-jp に対応したら使ってみようと思う。euc-kr 対応で euc-jp 非対応ってどうなのよ。
perltidy で整形してみた。
狂っていたインデントが揃った。揃っちゃったよ、ぉぃ。
emacs に戻って perl-lint-mode を使ってみる。
$_ 使うなとか配列に対する暗黙のスカラーコンテキストによる評価とか細かい警告は出るが、最終的には Syntax OK. と出る。
桜エディタを使ってみた。
自動整形機能はついてないらしい。
やべーくらい夜更かしした、早朝ミーティングの前日深夜。
直った。
気にしてた関数と全然違う所で確かに、Not a CODE reference at bod_manage.plって言われてた。
意識した関数に引数として関数を渡してるはずの箇所に関数渡ってなかった。下のほうの処理と上からの処理をすり合わせた時にミスったらしい。結局自力で気づいたか...。
ぶっちゃけ、インデントと関係ない。
これだから Perl のいないメンバオブジェクトにアクセするとオブジェクトが勝手に生えるとか関数の引数に関数を入れられる(※)とかイやなんだ!使うけど!
あと Perl の自動インデント泣かせないろんな記号をやたらと使う所。正規表現の特殊記号とか使うとどうしても崩れる。perl-mode から cperl-mode に乗り換えてかなりよくやってくれるので油断してた。
(※)正確には引数の中で関数が評価されること。C でも関数ポインタを引数として渡すとかは可能。
perl-lint-mode が呼び出しているモジュールも理解してくれるとすぐ見つかったんだろう。
つうか、Perl の Warning で行数じゃなくオブジェクト名をずばりいってくれ。細木和子張りにずばり言ってくれ。
ちなみに、CGI 自体はまだまだ、いつまでも未完成です。
バックエンドを大幅に変える、そもそも開発言語を変える、という俺しか楽しくない変更もありうる。
うちの BOD の山がこなれて来たら完成を急ぐかもしれない。
2009/04/01(水)4月のばか
他にも何かあったんだろうか。
2009/04/01(水)2099年宇宙の旅
多くの人の目に触れないへんぴな Blog なんで言ってしまうが、クローズドβに当選した。プラットフォームもまだ未定らしく、暫定的に使用している Transmeta 社の 256bit CPU が載った専用ハードウェアといっしょに貸してくれる。
「脳とコンピューターを直結するインターフェースが現実に」 操作にはこれの新しいやつを使うそうです。これも4年経った今ではギリ実用できるらしい。すげぇな。
まだ実装が進んでいないのでモノが届く時には話が変わっているかもしれないという話だけど、今の所こんな感じらしい。
見せられないけどコンセプトアートとかは貰いました。正直、見せられてもどうやって操作するもんなのか想像つかん。
↓
4月1日だしね。ニューロンインターフェースの記事も 4年前の4月1日の記事だぜ?