2005年5月アーカイブ
仕事用のノートのHDが足りなくなってきて、(30Gのうち27G以上が使用中)、80GのHDを買ったのですが、ソフトを入れなおすのに時間がかかりそうで、先延ばしにしていました。
多分、1日、つぶれるでしょう。
それで探したのが1,980円のTrue Image Personal。
ディスクイメージを作ったり、それを復元するソフトです。
かかった時間は、
まず、ディスクイメージの作成(30分)
起動CDの作成(1分)
HDの交換(30分)
ディスクイメージの回復(20分)
合計、1時間半もかからずに完了。
時間をお金で買ったいい例です。
本日のお買い物。Mさん推薦。
斎藤茂太による名言集。
心に残ったものは、
「何も打つ手がないとき一つだけ打つ手がある。
勇気を持つことである。」---ユダヤのことわざ
「ものごとの実は、
それをじっと見つめる人の心の中にある。」---イギリスの哲学者 ヒューム
アフィリエイト・サイト用のホスティング会社GでPostgreSQLの日本語が扱えない件は、前にも書きましたが、前から使っているA社に乗り換えた後も、ごたごたが続いています。
まずはG社の解約手続きが完了しません。
解約用のフォームから手続きをしたのが先週の金曜日。
自動返信のメールが届いたきりで、ドメインの管理をG社で自分で管理するためのパスワードは、まだ送られてきません。
2回ほど催促メールを出したのですが、なしのつぶて。
何の反応もないのが不安にさせます。
A社のほうも、よくよくFAQを読んでみると、追加ドメインではJSP/Servletは使えない、Postgresなどのデータベースのセットアップには別途2,000円の料金がかかります。
魅力半減です。
もっともアフィリエイト・サイトはPHPなのですが・・・。
またネームサーバーの設定が完了していないので、IPアドレスで必要なファイルをアップしています。
ローカルには、ある程度、作りこみは済んでいるのですが、データベースをセットアップして、ドメインの問題を解決し、ある程度のデザインを改善して、提携申請をクリアするには、まだ時間がかかりそうです。
最近、3冊の本(いづれも400-500ページ)を斜めに読みました。1冊を2-3時間程度かけてです。
全て、初版を読んでいて、第2版のレビューを書くためでした。
プログラミングの心理学とコードコンプリート(上下)です。
役に立ちそうなところだけ拾い読みしたのですが、これが結構、役に立ちます。
時間を得した気分です。
もちろん、重要なところを読んでいない場合もありますが、それは使う時間とのトレードオフです。
かけた時間に対する対価は必ず回収するとの意気込みで、斜めに読みます。
斜め読みのこつが分かってきました。これからも役に立ちそうです。
下巻では、品質、インスペクション、テスト、デバッグ、リファクタリング、コード・チューニング、統合、ツール、ソフトウェア職人気質について、豊富な実例とデータで解説されます。
百科事典的な内容ですが、より深く理解したい人向けに300以上の参考文献が参考になります。
中級以上のプログラマの方は下巻のみでも十分だと思います。
初版にあった、この言葉に止めを刺すと思っていた次の言葉は変っていました。
「一生懸命は余分な、不要な努力である。それは、何とかしようとしているが仕事が終わっていないことを示している。効率的なプログラミングにおけるもっとも重要な仕事は考えることであり、人間は考えているときは忙しそうに見えない。もし筆者が、いつも忙しそうにしているプログラマと仕事をすることになれば、筆者は彼がよいプログラマではないと思うだろう。なぜならば、彼は彼の最も価値あるツール、脳を使用していないからである。」
新版では、以下のようになっていました。
「ひときわ優れたパフォーマンスを達成するには、一生懸命働くことに加えて、賢く働く必要がある。プロジェクトのデバッグ作業が多いことは、人々が賢く働いていないことを示す危険信号である。大量のコードを1日で書き上げ、そのデバッグに2週間かけるとしたら、賢く働いているとはいえない。」
「ラピッド・デベロップメント」でも「賢く」働くことが強調されていましたが、そうするためのヒントをたくさん、本書から見つけることが出来るでしょう。
1993年に出版されたMcConnellの最初の著作の第2版。
上巻はプログラミングの初級から中級者を対象に、主にコーディング規約について述べています。
旧版ではコーディング・サンプルは、Basic、C、Pascalでしたが、新版では、C++、VB、Javaになっています。
読みやすさに工夫が凝らしてあって、「キーポイント」「ハード・データ」「コーディング・ホラー」のマークがあります。
ベテランの方は、章末の「まとめ」、「キーポイント」「ハード・データ」を拾い読みすることでも十分価値はあると思います。
「コーディング・ホラー」は悪いコーディングの見本です。
正直言ってコーディングのサンプルは、単純な例で、量も少なく、あまり参考にはならないと思います。
その中で、特に、論文でしか読めない「ハード・データ」が貴重であると思います。
例えば、
エラーを修正するコストは、大規模なプロジェクトでは一般に、アーキテクチャーの作成時に検出された要求のエラーを修正するコストが、要求の策定時に検出されたエラーの3倍に及ぶことが示されている。コーディング時に検出された場合のコストは5〜10倍、システムテストの段階では10倍、そしてリリース後は10〜100倍に跳ね上がる。(Boehm and Turner 2004)
という具体的な数字が示されます。
しかし、中級者以上にとっては、下巻に本書の価値があります。下巻は是非目を通していただきたいです。
ソフト開発に携わる全ての方に強く本書を薦める。いろいろなところで言及される古典です。出てくる技術は古いが、本質的な議論は現在でも的を得ている。豊富な実例とユーモアで飽きさせない。今回出版されたのは、「25周年記念版」。今までの原稿はそのままに、各章でワインバーグがコメントを書いている。ただ私には余計なことのように思われる。その記述の是非は読者が判断すればよいのである。それにもかかわらず、十分面白いので、エピソードのひとつと、エピローグを紹介します。
第6章 プログラミングプロジェクト
「閉会の前に、もう一度確認したい。」と彼はいった。「分担したところが今週中に終わらない可能性のある人はいますか。」
返事はなかったが、管理者はたっぷり六十秒間待ちつづけた。ついにチームリーダーの一人がかすかに、まるで気づかれたくないかのように手を動かした。だが管理者は見逃さなかった。「ジョージ、何か問題があるのかい。」
ジョージはもじもじしながらこういった。「ほんのちょっとですが・・・。」
「どのくらいほんのちょっとなの?」
「ちょっと遅れてるんです。」
「どのくらい?」
「ううむ、多分六週間。」
部屋中が大騒ぎになった。「六週間だって?」と全員が一斉に叫んだ。「みんなでシステムテストの準備をしているときに、六週間も遅れていながら、よくもそこでそうやって、会議の間中黙っていられたもんだ!」
管理者は他のチームリーダーたちを静まらせ、システムテスト部隊をホテルに待機させるための出費が実際に発生してしまう以前に、問題があることを認めたジョージの勇気をたたえた。しばらく話し合った後彼は、担当部分を四週間で完成させるようにジョージを説得し、システムテストのスケジュールを改訂した。そして、今度こそ閉会にしようというとき、もう一度何か問題はないか、と問いかけた。
「いやあ、あのう、」と別のチームリーダーが、言いにくそうに切り出した。「ジョージが四週間もらえるんだったら、ウチも欲しいんですがねえ。」
「ということは、君のところもできていないということ?」と管理者はたずねた。
「厳密に言えばですが・・・。」
「厳密に言えばどのくらい?」
「多分六週間だけど、でも四週間で何とかやってみますよ。」
こうして堰が切れてみれば、結局のところ六つのサブシステムは、全部スケジュール遅れを起こしている、ということがわかった。にもかかわらずもしジョージが、全員わかっていることを自認する口火を切らなかったとしたら、問題があろうなどとは露知らない、という形で会合が終わり、実りのないシステムテストが莫大な費用を費やして開始されるところだったのである。
第5部 エピローグ
人の頭脳は、いつもは容量のわずか10パーセントしか働いていない。残りはオペレーティングシステムのオーバーヘッドだ。
この本に動かされるところのあった人々は、コンピュータのオペレーティングシステムにばかり気を使うのをやめて、彼が自分の中央処理装置、つまり彼自身の頭脳と一緒に持ち歩いているオペレーティングシステムに注意を向け始めるのだ。
本日は、リモートで保守作業を行いました。
MさんがCD-ROMを持って客先に行き、私が電話で作業の指示を与える・・・。
本来は、私も同行するはずでしたが、忙しいということで、無理を言って、こういう形にしてもらいました。
ほんの15分で完了するはずでした。
ところが、・・・CD-ROMが読めない・・・。
PCを変えても同じです。
いつもは予備のCD-ROMを作っていくのですが、いままで読めなかったことはないので、最近は1枚にしていました。
問題は、焼いた後、確認を怠ったこと。
来週、もう一度私も同行していくことになりました。
今度は予備のCD-ROMと確認作業を忘れないように・・・。
今回一緒に仕事をしている方でTさんという方がいます。
独立してもう10年ということで、先輩に当たりますが、年齢は私より一回り下です。
日本中を駆け回ってチームで大きなシステムを構築してきた実績は尊敬しますが、Tさんが一番大切にされているのは、ご自分とご家族だと折に触れ感じます。
苦しいプロジェクトで、知り合いから、手伝いを頼まれても、決して手を出しません。
ご自分とご家族が大変なことになるのを避けるためです。
こういうクールな対応が、長い間やってこれた理由かもしれません。
頼まれるといやといえない私としては、見習わなければいけない点だと思います。
また休暇をしっかりとられているのも、見習うべきことです。
Tさんのレベルに達するまでには、まだ長い時間が必要のようです。
アフィリエイトで使おうとしているホスティング・サービスGは個人事業主がやっているところです。
先日から、Postgresが日本語に対応していないと、問い合わせているのですが、全く音沙汰なしです。
痺れを切らせて、先日、前から使っているホスティング・サービスにドメイン追加のためのアップグレードの手続きをしてしまいました。
以前から使っているところは有限会社なのですが、料金もサービスもまあまあです。
Gを選んだのは価格面でのことからだったのですが、やはり個人事業ではダメなのかな、と個人事業主でもある私は非常に残念です。
こういうことがあると、個人事業が信用を得るためには何をすればよいかがはっきり分かります。
私のGに対する不安は、そのままお客様の私に対する不安になっているのかな、と反面教師としてGを見てしまいます。
誠意を持って対応する、これしかないと思います。
それから価格で競争はしないこと、も教訓です。
3月から続いているお仕事の、おそらく最後の多忙モード。
毎度の貧乏暇なし状態。
今週末が山場です。
毎日、夜遅く帰っては、コンビニのお弁当では、せっかくのダイエットの効果が、元に戻ってしまいます。
運動もしてないしなあ。
ともかく終結させることに全力。
またスパムメールに悩まされています。
今度は日本の、出会い系のサイトに誘導するメールです。
メールの差出アドレスを調べると中国です。
苦情受付アドレスがないわけではないのですが、やはり躊躇してしまいます。
一方のHPのほうは、最初、中小のプロバイダだったのですが、苦情のメールを出したら、1日で、ドメインが変りました。
こちらも行き詰ってしまいました。
1年半くらい前に、このPCをセットアップしてから、もうすぐスパムメールが1000通になります。
tkprofでOracleのチューニング。
Tuningに関する厚い本が出版されているだけあって、奥が深いです。
今日はINDEX周りのTuningが主だったのですが、当然使われるだろうと思っていたINDEXが使われない。
1つのテーブルにINDEXがいくつかあっても使われるのは1つですし。
データが頻繁に更新されるテーブルの場合、時間と共にINDEXの効果が薄れてくる。
いろいろ悩みはあるのですが、収穫は、INDEXとは別のところで、SQL文の改善を行ってレスポンスが数分の1になったこと。
巨大なテーブルの余計なORDER BYがありました。
単に今まで馬鹿やっていただけなのですが・・・。
アフィリエイトサイトのホスティングをしている、G社では、シェル・アカウントがなく、phpPGAdmin等全てGUIで設定を行います。
ここで問題が・・・。
PostgreSQLのEncodingが日本語になっていないらしいのです。
データベースにINSERTで日本語は入るのですが、phpPGAdminで表示するとASCIIの羅列。
これはブラウザのEncodingを変えても変りません。
またSQL文で、SUBSTRINGを使っても、文字の途中で切れてしまうし、100文字取り出すのに、800文字と指定しなければいけません。
データベースの作成もGUIで、オプションで、-E EUC_JP としたくてもできません。
さらにphpPGAdminのSQLで、CREATEDATABASE test Encoding='EUC_JP'とやっても権限がないと怒られます。
行き詰ってしまって、サポートにメールを出したのですが、まだ返事はありません。
たぶん、Postgresのコンパイル時にEncodingを指定していないものと思われますが、最低限データベース作成時に、Encodeのオプションを付けられるようにして欲しいです。
場合によってはホスティングの変更も考えています。
今日はOracle10gをインストールして、性能評価ができるようになりました。
ただ、tkprofの9iとの違いにだいぶ時間をとられました。
9iではtkprofのパラメータに、explain=scott/tigerがあり、実行計画を表示してくれます。planの表がないときには自動的に作って、使った後で削除してくれます。
10gではexplainを指定するときには、明示的に、table=scott.plan_tableオプションが必要で、実行前にutlxplan.sqlを実行して、plan_tableを作っておく必要があります。
最初その違いが分からずに、explainオプションでテーブルが作れないというエラー(ORA-00922)が表示されて、だいぶ悩みました。
あと、一度とレースファイルを作ると、もう一度別のトレースを作るためには、一旦SQL*PLUSを終了しなければいけません。
答えはやはりネットから。先人たちに感謝です。
今日もOra-03113と格闘。
何回も再インストールを繰り返しました。
Oracleが嫌いになりそうです。
9iのパッチも適用の仕方が非常に難しく、しかもインストール中にエラーが出て、Oracleが立ち上がらなくなりました。
ネットでも調べたのですが、どうも3113の原因は1つではないようです。
明日は最後の手段で、10gをインストールして試したいと思います。
今日はOracleの性能評価をやっていたのですが、10万件のレコードで試験をしているときに、わざと効率の悪いSQLで問い合わせをしました。
そしたら30分経っても応答が返らない。
仕方ないのでSQL*Plusを終了させました。これが悪かったのかどうか、次に同じSQLを実行すると、ORA-03113のエラーに。
ネットで検索しても明確な答えを得られずに、(何かの値がオーバーして、どうやらログらしいというところまでは分かったのですが)、ついにというか、時間の節約のためにOracleを再インストールする羽目に。
勉強にはなったのですが、時間を使ってしまいました。

数年前から、Second Natureというスクリーンセイバーを使っています。
割と単純な、スライドショーなのですが、目を愉しませるイメージのコレクションと、利益を自然保護に使っているということから愛用しています。
20枚くらいのイメージの入ったコレクションを30ほど持っています。
もう見たことのないイメージはないだろうと思っていたのですが、今日、始めてみるイメージがあり、少し癒された気分です。
空のような、海のような、宇宙のような、昼のような夜のような不思議な絵画です。
しばし海中に思いをはせました。
なお、Second Natureは数枚のイメージのついたフリーのスクリーンセイバーを配布しています。イメージは年に何回か変ります。

