2002-02-27
_ 慌ただしい
昨日からムスコが熱を出している。寝起きに一番熱が上がり、そのときでだいたい38度+。でも起きてすぐに熱が下がって37.5度程度になる。もうちょっとすると37度くらいまで下がる。といった状態で保育園に預けてみたら、案の定呼び出しがかかってオクサンが早退して迎えに行った。でも迎えに行った頃には熱が下がっている。どうせ熱を出すならすかっと出せや、ゴルァ(←暴言)。
なんてばたばたしているときにさいたま市から封書手紙がやってきて、申し込んでいた来年度からの公立保育園への入園が内定したとか。全然連絡がないからもう半分あきらめていたよ。でも「内定が決まった」以上の詳しい情報は通知されず。なんかさいたま市の児童福祉関連係の処理は中途半端だな。ToDoの優先順位の確認をちゃんとやったほうがいいぞ。きっと担当の人間には直接関わりのない業務だから、ユーザーの立場になって考えることがうまくできていないんだろうけど、まともな能力を持った人間ならば自分と直接関わりがなくても最低限ユーザーの立場になって考えることは可能なはずだ。もうちょっとがんばれや。
_ 行数でお金をもらっているんですか?
今主にやっている仕事は、とあるお買い物システムパッケージをほぼフルカスタムするってものなんだけど、そのベースとなるパッケージの中身がひどくて、ときどき鼻水を吹いてしまう。
ソースのとある関数のコメントとして、「こういう関数を試しに作ってみる。何事も勉強」なんて書いてあるあたりから、かなりやばそうな予感はしていたんだけど、カスタムするに当たって、あまりに可読性の低いソースをなんとか解読してみようと、できる部分だけでもきれいに書き直していったところ、ソースコードが軽く数割は削減できることがわかった。
web系システムだから、
<select name=...> <option value=...>... <option value=...>... <option value=... selected>... <option value=...>... </select>
みたいなFORM部品がやまほど出てくるんだけど、そこに既存の値を代入する処理として、
dim selected_index1
dim selected_index2
dim selected_index3
dim selected_index4
if selected_value=0 then selected_index1=" selected"
if selected_value=1 then selected_index2=" selected"
if selected_value=2 then selected_index3=" selected"
if selected_value=3 then selected_index4=" selected"
Response.Write("<option value=..." & selected_index1 & ">...")
Response.Write("<option value=..." & selected_index2 & ">...")
Response.Write("<option value=..." & selected_index3 & ">...")
Response.Write("<option value=..." & selected_index4 & ">...")
とか
if selected_value=0 then
Response.Write("<option value=... selected>...")
Response.Write("<option value=...>...")
Response.Write("<option value=...>...")
Response.Write("<option value=...>...")
elseif selected_value=1 then
Response.Write("<option value=...>...")
Response.Write("<option value=... selected>...")
Response.Write("<option value=...>...")
Response.Write("<option value=...>...")
elseif selected_value=2 then
Response.Write("<option value=...>...")
Response.Write("<option value=...>...")
Response.Write("<option value=... selected>...")
Response.Write("<option value=...>...")
elseif selected_value=3 then
Response.Write("<option value=...>...")
Response.Write("<option value=...>...")
Response.Write("<option value=...>...")
Response.Write("<option value=... selected>...")
end if
とか平気で書いているし。しかも、同じ処理を行うのに、似たような冗長さで違った表現のコードを、一つのソースに(同じ人が)複数書いている。無駄にコードが長くてとても読みにくい。
プログラミング初心者が書いたからコードが冗長になったというのならばまあしょうがないかなとも思えるけど、こういう処理を複数パターン混ぜて使うってのは、単なる素人技とは思えない。わざとコード行数を多くしつつ可読性を低めて、水増ししていることがばれないように工作しているんじゃないかという疑いがぬぐえない。
っつーか、こんなコードをベースにフルカスタムしつつ機能拡張するくらいだったら、はじめっから新規で書き直した方が楽だよなー。
ちなみにひどいコードのお約束である、
i=0 'iを初期化する
という無意味なコメントもちゃんと入っていたさ。有用なコメントはほとんど入っていないのにね。
2003-02-27
_ RSS.cgiはhnsのGRP機能を無視して配信してしまう
rss.cgi/RSS.pmで、GRP指定したデータ(秘密日記部分)も配信されてしまうという不具合があったので修正しました。RSS.pm内のParse関数最後の方で
push(@rssitems, $rssitem);
としている部分を
if ($grp eq '') {push(@rssitems, $rssitem);}
に修正してください。GRP指定した項目は配信されなくなります。
2004-02-27
_ ClearType対応IEフォント設定とWinSCPのドラッグ&ドロップ (13:51)
そういやマシンパワーも上がったことだし、Windows XPのClearType設定をONにして、IEのデフォルト日本語フォントをClearType有効なやつにして、「きれいなフォントでWebブラウズ三昧」を実行しようと思ったんだけど、ところでどのフォントを設定するのが無難なの? ひとまず俺のマシンに入っている中で比較的よさげだった「HGPゴシックM」(本当は「ゴシック」は半角カナ)にしてみたんだけど、世の中的にはどれを使っている人が多いんだろう?
あと、新しいマシンに乗り換えてから、WinSCP3でファイルをドラッグ&ドロップすると、1つしかファイルを選んでいないのに、二つのファイルをコピーしようとして、しかも片方は文字化けしてわけがわからない状態で「ファイル・フォルダ(以下文字化け)はありません」って表示されるんだけど、これって回避できないの? ひとまずダイアログで「中止」とかすれば通るんだけど、気色悪い。エクスプローラとかフォルダとかの設定で回避できそうな気がするんだけど。
おしえてはてなダイアリー(嘘)。
参考
- IEの日本語表示でもClearTypeの恩恵に浴する - http://www.atmarkit.co.jp/fwin2k/win2ktips/227enblctype/enblctype.html
2005-02-27
_ タグベースのブラウザ (00:58)
mixiのshinoさんの日記を元にしたネタ。ソーシャルブックマークサービスのタグをたどって閲覧していく行為に特化したブラウザを、Ajaxを使って作るといいのでは。
まず元になる(MMの場合は)メモを開く。すると、そのメモの周辺にはそのメモにつけられたタグが描かれている。タグをクリックすると、そのタグで検索された最新n件のメモが表示され、さらにそれぞれのメモの周辺にはそれにつけられたタグが描かれている……。
って感じのもので、タグによる検索をAjaxを使って先読みしておいて、クリックされた段階で実際に表示する。もしもMindMap的な表現をするとしたら、以下のような感じ(JavaApplet。動作環境がよくわからないんで、見れない人ごめんなさい)。wemaあたりをベースに非同期で読み込んだ付箋を追加していくインターフェースを持たせたら何とかなるかもしれない。
あるいは単純にツリー表示にしてもいい。
- 『[ネット]『「パソコン通信」とは何だったのか』反応』
- [SNS]
- 『Socialtunes』
- 『はてな SNSもどき』
- 『[TypeKey][SNS] TypeKey SNS (18:22)』
- [blog]
- 『コメントとツッコミとレスとトラックバックのあるブログはどうか』
- 『ラブラブドキュンパックリコ - Blogのコメント欄が賛同か批判の両極端になりやすい理由とは?』
- 『ウェブログの心理学』
- 『アマゾンアソシエイトにNOと言え。』
- [パソコン通信]
- 『ITmedia ライフスタイル:「パソコン通信」とは何だったのか (1/3)』
- 『ニフティ: 「ワープロ・パソコン通信」サービスの終了について』
- [SNS]
ツリー表示と言えば、trackbackの追跡なんかもAjaxを使って非同期読み込みにしてもいいな。というか、現在blogmapに組み込んでいるtrackback追跡機能はそのうちAjaxを使って、解析状況に応じてツリーの枝を表示していくように改造しよう。
現在はリミットに達するまでサーバーサイドでたどってから表示しているんで、とっても重い機能になっちゃってる。Ajaxを使えば、1階層だけたどって結果を返すサーバーサイドスクリプトとそれを非同期で読んで結果を表示(追記)するJavaScriptの連携になるんで、とてもシンプルかつ高速に表現できる。しかもユーザーのアクションに応じて展開していけば、不要な枝をいちいちたどらなくてすむ。
_ DBをHDD×2+別サーバー×1に分散 (23:48)
今まで一台のサーバー上のHDD2台に分散させていたDBデータを、さらにもう1台のサーバー上にもレプリケーションするように変更。ついでに、検索系の処理でリアルタイム性が必要そう&そんなに重くないQUERYが多いものに関しては、新しいレプリケーションサーバーに回すようにしてみた。ただ、新しくDBを動かしたサーバーのスペックがしょぼいんで、もしかしたら逆効果になるかもしれない。ダメそうだったら設定を元に戻しつつ、新しいいまどきのスペックのサーバーにリプレースすることを真剣に考えてみよう。
2006-02-27
_ 早くも開幕戦
土曜日には早くも草野球の今シーズン開幕戦だった。最近いろいろ忙しくてスポクラにもろくにいけていない状態だったんで、体力的にはかなりぐだぐだ。でもまあピッチングは4回2失点ですんだんで、そんなに悪くなかった。バッティングは全然だめ。4打席で3三振1内野フライだったかな? なんかバットが全然思ったところに振れない。当てにいっても芯に当たらないし、振りにいったらかすりもしない。ボールは見えているつもりなのになー。で、翌日からは予想通りの筋肉痛となり、現在老人のような動きしかできません。
_ ひどい状態キープ
金曜日に病院に行こうと思っていたんだけど、打ち合わせが長引いていけなかった。しょうがないんで土、日は市販の鼻炎カプセルでごまかしていたんだけど、あれを飲むと眠くなりすぎて何もできない。でも、飲まないでいると鼻水と目のかゆみで何もできないしなー。今日はとっとと病院に行ってこよう。
_ 病院に行ってきた
いつもと同じタリオン錠10mgを3週間分と、緊急用にポララミン錠2mgを5日分。タリオン錠が聞き始まるまでは5日くらいかかるんで、それまでは抗ヒスタミン薬のポララミンで症状を抑えるがよろし、とのこと。ポララミンの方は眠気が出るらしいんで、仕事の時は使わない方が良さそうだな。
_ 今更C++でcgiなんて
書くはめになるとは思ってなかったよ。でもsqliteのおかげでデータ管理はだいぶ楽できそう。



_ shino [うわー。すごい。もうサンプルができている! ちなみにわたしの元ネタはこうでした。(貼り付けさせてもらいます)。 『b..]