2005年1月アーカイブ

緊急の仕事が入りました。今度はPHP+PostgreSQLのお仕事。2週間程度の予定です。

頼りのされるのはいいのですが、せっかく作ったスケジュールを見直さなければいけないですし、プライベートな時間も影響を受けます。

少しの間、辛抱しなければいけないようです。どうにも断りきれないことってありますよね・・・。

cover

今日のお買い物。何故か「オネスティ」をどうしても聞きたくなって・・・


cover

今日のお買い物。帯の「雇われない!雇わない!フリーという働き方」に惹かれました。

フィットネス歴の長いF君と電話で話したときのこと。

ダイエットの話をすると、やり方が違うような気がする、とのこと。

目的は体重を減らすことですが、体重のうち、体脂肪を減らさなければいけない。
そのためには、食事を減らすだけでなく筋力トレーニングもやる必要がある。
食事も、たんぱく質は取って、炭水化物は減らすこと。

ご尤もです。

今使っている体重計は体脂肪率も表示されるので、体重×体脂肪率を毎回計算して、体重の変動ではなくて、体脂肪の変動を測るべきでしょうか?

ダイエット開始時からの9日前のデータと比較すると(どちらも朝、計ったもの)、体重で900g減、体脂肪で1500g減。
ということは、筋肉が600g増えているということでしょうか?

週2回のジム通いと寝る前のちょっとした運動とダンベル体操が効いたのでしょうか?

願わくば、リバウンドして、ダイエット前より体脂肪が増えたなんてことになりませんように!

最近、文章を良くしたくて、2冊の本を読んでいます。(まだ読み終わっていませんが)
ミントの「考える技術・書く技術」、山田ズーニーの「伝わる・揺さぶる!文章を書く」です。
前者は、書くことによって、読者の問題を解決してあげる立場、後者は自分の問題を解決するために他人を動かすための文章を書く立場。
どとらも一理あるのですが、ブログとはちょっと違うようです。

でも両方に共通するのは、書くことは考えること、ということ。

400回、ブログを書いてきて、感ずるのも、書くこと=考えること、ということ。

極端なことを言うと、私が持っている意見は、ブログに書いた文章の寄せ集めである。
だからブログを読んでくれている人との会話は少々やりにくい。

ブログに書いたことを再度、意見として述べてしまうから。
聞いているほうは「またか」と思うでしょう。

しかし自分の考えをまとめる上でも、ブログを続けてきてよかったと思っています。

願わくば500回、600回と続きますように。

1K落ちた

| | コメント(0)

ダイエット開始1週間目。1日のうちで多少変動はありますが1Kは落ちた模様。

食事を減らしているのはもちろんですが、寝る前に飲むアミノ酸のサプリメントを使っています。
寝ている間に400〜500g減っていますが、これがサプリメントのせいなのかは不明です。

サプリメントのせいで、朝早く目が覚めるようになりました。いまひとつすっきりしません。

とりあえず、もう1K落ちたら、そこで維持する予定。

(実は通販で買ったジーンズがかなりきついのです。今はいているものと同じサイズなのですが・・・)

近くのスポーツジムの会員になっていて、健康第一ということで、なるべく週2回は通おうと思っています。
最近は忙しくて、週1のペースだったのですが、先週あたりからまた週2に復帰。

ほとんどはエアロビクスを45分やって帰ってきます。曜日が決まっているのですが、火曜の初心者のクラス、金曜の中級者のクラスです。
火曜のクラスでも、結構汗をかいてカロリーの消費にはなっていると思うのですが、楽しいのは断然金曜日。

本気になって集中しないと、動きについていけないのです。
毎回、頭と体の限界に挑戦している感じ。
楽しめるのはやはり失敗のリスクがないから。

仕事もリスクなしに限界に挑戦できたら、さぞ楽しいだろうと思うのですが・・・。

週末は、RAID1サーバーのバックアップをDVD-R4枚に取りました。

その結果、定期的な外付けHDDへのバックアップ量は半分になりました。

メディアも昔はDVD-Rが500円以上したのが、今は140円ほど。バックアップにはお勧めです。

後で使うと思って残しておくデータは、案外使わないものです。保険のようなものだと思いますが。

バックアップは大事ですが、それにも増して、保管と廃棄も考えなければいけません。
廃棄時は、CD、DVDを読めなくするマシンで処理できます。このようなマシンは小型のものが割りと安価に手に入ります。

保管に関してはオフィスをきちんと整理しておいて、戸締りをしっかりする以外にいいアイディアがないのが現状ですが・・・。

cover
sweet,bitter sweet 〜YUMING BALLAD BEST
松任谷由実

FMで流れていた、「守ってあげたい」をどうしても聞きたくなって・・・

最近、フーちゃんの元気がありません。

外に出してもすぐに返ってくるし(これはよいことでは有るのですが)、高いところへのジャンプが、つらくなっているように見えます。
毛並みも悪くなっているようです。

食事は、そう減ってはいないと思います。

まだ6歳になっていないと思いますが、年齢のせいでしょうか?
気のせいかべたべた甘えるようになっているような感じがします。

お医者に連れて行くか、思案のしどころです。
フーちゃん、ずっと一緒にいてね!

先日ディスクの片方が壊れた、RAID1のファイルサーバーから、今日またメッセージが・・・。

localhost.localdomain
01/20/2005 01:02:02GMT [IOM0132] Verify completed on array "CodeAnimato " with 1 fixed miscompares

これだけ。どうやら、サーバーの電源を入れるつもりで、入っていた電源を切ってしまい、Verifyが走ったらしいのですが、
使い続けて大丈夫でしょうか?電源を入れて1時間ほどあとででました。

ちょっと心配です。

お仕事中、気が散る出来事が2つ。

1つはスケジュールを作っている時。Excelで作っていたのですが、Project2000を持っていたことを思い出して、インストールしようとしました。
ところがアップグレード版なので前のバージョンがない、といってきます。大騒ぎして探し回ったのですがProject98が見つからずに断念。

2つめは注文してあったマルチDVDドライブが届いたこと。
バックアップ用です。大事なデータはRAID1のHDにセーブし、時々外付けHDにバックアップしているのですが、その容量は増え続けるばかり。

そこでDVDでバックアップして、HDのバックアップ量を減らそうとしたのです。CD-Rではとても間に合いません。

ところがWritingソフトのNero5.5がドライブを認識してくれません。またドライブ添付のB'S RECORDERをインストールするためには、Neroをアンインストールせよ、とあります。
NeroはCDのリッピングや音声ファイルの編集など捨てがたかったのですが、最新のNero6 SecondEditionにアップグレードしても、今回購入したドライブは互換機種リストに載っていず、Neroは断念せざるを得ないようです。

というようなことを調べたりして、余計な時間を使ってしまいました。

でも今日は、ASP.NETのユーザーコントロールを始めて作ったり、System.Data.SqlClientを始めて使ったり、MSDEのフロントエンドにAccessのプロジェクトを使ったりと、盛りだくさんでした。

当初ASPで開発予定だった案件を、ASP.NETに変更してもらいました。

現在は仕様段階ですが、いつものことながら苦しんでいます。

仕様段階は、きちんと詳細なスケジュールを立てないと、進捗状況が把握できません。

プロジェクトの最初の1日の重みは、納品前の1日と同じくらい重要であるというのは本当であると思います。

2ヶ月先の納品は、まだ時間が有るように見えますが、詳細なスケジュールを立ててみると、案外、時間は少ないものです。

前倒しに、かつ難しいところから手をつける。プロトタイプを作りながら、発展的な拡張を行う、というのが、私の開発スタイルです。

ともあれ、第1日目は終わりました。明日はある程度詳細なスケジュールを立てたいと思います。

1月11日にCATVのスパムメールの抗議や情報提供を各方面に行ったのですが、1月17日現在、回答が2通来ています。

どちらもメールの送信元IPアドレスから割り出した、プロバイダへ転送した、抗議メールです。

ODNは13日に回答があり、「本件につきましては、送信そのものを問題行為と捉え、ご報告いた

だきました内容より調査を行い、該当者の特定が完了次第、弊社規

約に基づき対応させていただきます。」

ということです。

NTTは17日に回答があり、同様の苦情を多数受け取っていること、調査の結果、NTTがサービスを提供している別プロバイダのユーザであり、プロバイダではすでに対処を行っており、また同様のメールが着たら知らせて欲しいとのこと。

スパムメールに有ったURLをホストしているUSENからは、何の回答もありません。

ODN、NTTは思ったよりよい対応をしていると思います。

これで少しでも目障りなスパムが減ってくれれば・・・。

でも困ったことに最近はフィルタに引っかからない、英文のスパムが増えているのです。

レガシーのASPでの開発です。

FileSystemObjectを使う必要がでてきました。
最初、Nutshellの「ASPクイックリファレンス」のサンプルコードを参考にしてコードを書いたのですが、どうにもエラーがでます。

fileObject.OpenAsTextStream(ForAppending,TristateFalse)
fileObject.WriteLine strEnding

というコードでした。

確認のためオンラインのMSDNで調べると、

Set ts = fileObject.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write "Hello World"

と変っています。

「クイックリファレンス」は2000年5月の発行ですが、もうサンプルコードは使えないということで、物置に直行。
生存競争の激しい私の本棚に3cmのスペースが出来ました。

これからはオンラインのMSDNを使おう、と心に決めたのでした・・・。本当は印刷物のほうが、性に合っているのですが。
本のいいところは、短時間で全体を見渡せること、使い慣れると、何がどこに書いてあるか覚えてしまうこと、マーカーでマークを入れたり出来るところでしょうか。

最近、レガシーのASPのお仕事が続けて3件。

小さいものならエディターで済ますのですが、そうも行かなくなりました。

Script DebuggerかVisual InterDevをインストールしなければいけないかと覚悟したのですが、VS.NETでもデバッグできることが分かりました。

やり方はASP.NETのプロジェクトを作って、ASPファイルを追加し、プロジェクトのプロパティで「構成プロパティ」「デバッグ」の「ASPデバッグを有効にする」をTrueにするだけ。

自動生成されたファイルを削除することを薦める人もいるのですが、うまくいきませんでした。自動生成されたファイル・参照はいじらないほうがよいようです。

ともあれ準備完了。あとはコードを山ほど書くだけ・・・。

学生時代、ヘッセをよく読みました。「荒野の狼」や「内面への道」を読んで、ヘッセこそ最高の作家だと思い、全集を買い全てを読みました。

最近、iPodを買い、移動中に聞いているのですが、少々物足りないです。

私は、美しい日本語、詩や朗読が聴きたいのです。

先日、20年近く前に出た新潮カセットブック、「ヘッセ詩集」をiTuneに取り込んだのですが、これにはまってしまっています。

一語一語に心を揺さぶられています。

なぜ時代が違う、国が違う詩人の言葉がこうも心に響くのか、私にも分かりません。若いころはこうも感動はしませんでした。

このようなコンテンツの需要は大きいと思うのですが、いかがなものでしょう?

正月から目障りなスパムメールが2通来ました。CATVのスクランブルを解除する機器の販売です。

何が目ざわりかというと、まず日本語であることで、OutLookのフィルターにはかからない。それから仕事用のメールアドレスに送られてくることです。

登録解除に指定されているメールアドレスは架空だし、Fromのアドレスも架空です。

なにか出来ることがあるでしょうか?

あります。

ネットを探していて、ここを参考にさせていただいたのですが、

(1)日本産業協会あるいは日本データ通信協会の迷惑メール相談センターにフォワードする。
(2)メール中のURL、送信アドレスからプロバイダの管理者を探し出し、抗議する。
(3)宣伝内容が違法なら、警察に情報提供する。

(2)は難しそうに見えますが、簡単に管理者を探し出せるツールがあります。

今日はこの3つの対処全てを行いました。ささやかな反撃です。

諦めないで、一人でも多くの人が、声を上げることが必要だと思います。

RAID1のRedHat7.3サーバーが回復しました。

回復手順の記録です。RAIDボードはAdaptecの1210SAです。

(1)障害の起こったディスクの交換。ポート番号や型番をメモっておきます。
(2)このままではRedHat7.3はkernel panicで立ち上がらないので、起動時にCtl-Aを押下して、ARC(Adaptec RAID Contorol Utility)を起動。
(3)Disk Utilityのメニューから、交換したディスクをフォーマット(時間がかかります)
(4)Array Configuration UtilityのManage Arrayメニューから、一旦arrayを削除し、InitializeDeviceで新規ディスクをInitializeします。
(5)Create ArrayのメニューからINSキーで2つのディスクを選択して、RAID1を選択し、CreateRAIDオプションで、Buildを選択します。
(6)Sourceのディスクを、データの残っているディスクを指定します。(注意!ポート番号と型番で判断)時間がかかります。
(7)RedHatを立ち上げて、Adaptec Storage Maneger-Browser Editionでrootで入って、正常動作を確認します。

1210SAのマニュアルはこちら

以上で終了です。

昨日は、クライアントのところで徹夜。

久しぶりでした。午前0時までは、あんまり気分がよくなかったのですが、深夜になったらなぜか頭がさえてきました。

と思ったのもつかの間、6時ころには、頭が働かなくなってきました。

食事も、昼にコンビニのサンドイッチを食べただけ。

6時ころ、とりあえず作業を完了して、家に着いたのが8時。

土曜の早朝の山手線はすいてるかと思いきや、最初は座れなかったですよ。

疲労感と充実感と、空腹感。

でもフーちゃんには本当に悪いことをしました。こんなに遅くなると思わなかったので、ご飯をあまり用意していかなかったのです。
24時間近く家を空ける事になりましたが、フーちゃんはおなかがすいたらしく、流しの三角コーナーの中の前の日に捨てた古いえさをあさった形跡がありました。

フーちゃん、ごめんね!

ASPのお仕事ですが、エラー処理でツボにはまること2回。

1つめはADOのUpdateのSQL文の実行でErr.Numberにエラー番号が入ってこないのではないかという疑い。
MDACのバージョンまで疑いました。

いろいろと試行錯誤した末に、

IF Err.Number <> 0 THEN

の節の中でさらにエラーが起こっていて、エラー処理を素通りし、正常処理が走っていたというお粗末。
教訓は、エラー処理では、

On Error Goto 0

で元に戻すことを忘れないこと。

もうひとつは、javascriptが動いていないように見えたのですが、これもスクリプトの先頭の文で、存在しないテキストフィールドに値をセットしていたからでした。
この教訓は、

try catch

で、エラーを捕らえること。

エラー処理ゆえにアルゴリズムがシンプルにならないという厄介者ですが、実装は必須です。

年末に賞品に目がくらんで楽天の懸賞に応募したのですが、後始末が大変。

毎日、いろいろなネットショップからメールマガジンが・・・

1週間以上たった今でも、毎日いくつかのメールマガジンを解除しています。

中には、パスワードなど登録した覚えもないのに、パスワードがないと解除できないマガジンも。
(しかもパスワードの通知機能が動作しない)

ショップの中には人の迷惑を顧みずに1日3通も送ってくるところもあります。

でも中には1つ2つ、読んでもいいな、と思うメールマガジンもありました。

ともあれもうネットの懸賞はこりごり。


cover

今日のお買い物。AllAboutのSOHOガイド弘中メイさんのお勧めです。解説はこちら

ファイルサーバーに使っている、sambaを載せたRAID1のRedHat Linux7.3でついに、ディスクの片方が壊れました。

今日、サーバーを立ち上げる時は気がつかなかったのですが、デスクトップを立ち上げてメールの確認をすると、ADAPTECのボードからのメール。

localhost.localdomain
01/03/2005 23:42:33GMT [IOM0037] Device [bus=2, ch=0, id=0, lun=0] had a medium error at LBA 0.

だけですが、サーバーのコンソールから見ると、ディスクの片方に赤旗が立っています。

現在は片肺状態。

サーバーを入れたのが一昨年の12月なので、1年以上は持ったことになります。
1年という期間が短いか長いかは、微妙なところ・・・。

メールをはじめ仕事関係の情報が全て入っているのでRAIDにしておいてよかった、と改めて思いました。
バックアップも外付けHDDでとっているのですが、最後にとったのは年末です。

とりあえず、SATAの同じサイズのディスクを注文しました。送料込みで9,950円の出費。

ASP+SQLserverのお仕事ですが、データベースのテーブルのあるフィールドのupdateをトリガーにして、他のサーバーのテーブルのupdateをする必要がでてきました。

トリガーも分散トランザクションも初体験ですが、XPマシンが2台あればHome Officeでもデバッグできるのは素晴らしいことです。

まずリモートのSQLserverをリンクサーバーとして設定する必要があります。

EXEC sp_addlinkedserver 'remoteserver',N'SQL Server'
EXEC sp_addlinkedsrvlogin 'remoteserver','false',NULL,'user','password'

これでリモートのサーバーのテーブルが、

remoteserver.dbname.owner.tablename

でアクセスできます。次はトリガー。

create trigger triggername on tablename for update as

SET NOCOUNT ON
SET xact_abort ON

IF UPDATE(fieldname)
BEGIN
BEGIN DISTRIBUTED TRANSACTION
UPDATE remoteserver.dbname.owner.remotetable
SET remoteserver.dbname.owner.remotetable.fieldname = inserted.fieldname
FROM remoteserver.dbname.owner.remotetable r, deleted, inserted
WHERE deleted.pkey = r.pkey
COMMIT TRAN
GO
END

としました。リモートのテーブルにエイリアスを使っていますが、これが結構本質的です。
where句ではプレフィックスの最大値が3だからです。

deletedとinsertedはtriggerで使われる特殊なテーブルです。(変更履歴が入ります)

以上で完了です。後は2台のマシンのMSDTC(分散トランザクションコーディネータ)をサービスで起動するだけです。