Archive for the '仕事' Category

組込系こそC++で

手続き指向のもっとも良いサンプルはお役所の窓口だ。

何でもかんでも手順化してあり、その意味を知る必要がないようにしてある。

これには頭を使わなくて良いという素晴らしいメリットがある。

しかし、実体としては1つしか存在していない一人一人の人間を、あるときは住民基本台帳で、あるときは年金受給者の一覧表で、あるときは納税者の一人としてそれぞれ別個のものとしてみるため、それぞれの用途・物差しに合わない使い方が現れた時に対応が難しい。新しい手続きを作る事になる。

オブジェクト指向というのは日本語としてはダメで、私も「目的」というとらえていた時期もある位(それでもある程度理解は可能)、訳分からない言葉なのだが、要は対象物(オブジェ)をそのまま対象物としてとらえるための仕組みだ。行方不明の100歳以上のある一人のおじいさんは、そのおじいさん自身であって、住民基本台帳には存在していたり、履歴には存在していなかったりする名前の事だけではなく、そのおじいさん自身としてとらえ、見方によってどのように変わるかを表現するための仕組みなのだ。

だから、どのような切り口で見たら振る舞いがどのように変わるかという点では手続き指向な見方と大差ないのだが、実体が存在しないとなれば、直ちにどの切り口からも見えなくなるという点で、実に現実に近い「存在」というものの表現方法だと思う。

手続き指向が縦割り行政なら、オブジェクト指向は何だろう。国民総背番号制、は単なる実装方法だな。

さて、組込系といえばアセンブラ、RISCプロセッサだと面倒だから高級言語で、アセンブラと同様手続指向な言語で、という流れでCが採用されるんじゃないかと思うが、やっぱりここでもオブジェクト指向の方が向いていると思う。

ハードウェアは大抵限られた実体しか持たないが、プログラム上ではそれを別の概念で取り扱う事は多い。ここで実体は一つの仮想的なクラスの一例として予め持っておき、必要に応じて実体の参照をもらうように実装すれば、割とよくある表現で記述できる。手続き指向だとおまじないがたっぷり続くが、オブジェクト指向なら、継承したクラスで実体化する手順として隠蔽できるから、本来のロジックだけが浮き上がるように記述でき、プログラムがすっきりするのである。

ハードウェアの操作ではなく、例えばその結果として生成されたメモリオブジェクトなんかは、普通のクラスの実体として生成・消滅させれば良い。オブジェクトがなくなっても、消滅時にデストラクタが評価されて話は済む。

手続き指向からオブジェクト指向への壁は割と高くて厚いが、乗り越えると色々と楽になる。組込系のしちめんどくさい約束事羅列的な記述もかなり隠せるようになるので組込系こそCやインチキC++(C++で拡張された文法を使って記述したC)ではなくC++で実装して欲しいと思う。

PHPだからといって必ず手続き指向なわけではない

今日WordBench埼玉WordPress3.0勉強会に参加させていただいた。

他の参加者が前からディープ’に使っている方々ばかりなので、どうしても以前と現在の違いという切り口になってしまう。私は3.0より前の事は知らないのではっきりと見えない話が沢山あった。その上、昔の仕事で懲りて、べたっと書かれたPHPに対する好ましくない感情もある。出来合いのテーマを使って、またはテーマは外部にお願いしてサイトを構築する方が良いと思っていた。なのでプログラムの話はどうもなぁと、最初は思っていた。
しかし、WordPress3.0の既定のテーマである2010の構造の説明を聞いて気が変わった。

コードはチラ見しかしていないし、ドキュメントらしいドキュメントはちっとも読んでいないので、PHPだからべたっと書かれているのだろうと誤解していたが、かなり今時な構造を持っているらしい、特に2010は。時間ができたらこのサイトも2010に戻してみよう。いや、その前にドキュメントを読む方が先か。

DVD-Rにてこずる

R10-D2DVD-Rを取り付けた。都合により後から取り付けたのが良くなかったのか、書き込み不良である。
Corel MovieWriter6でISOイメージをDVD-Rに書き込もうとしたら、書き込み開始までずいぶんと待たされる。最初は数分だったので、試しにどのくらいの時間か計ろうとしたら、その時に限って一晩待っても書き込みが始まらなかった。
最初はIEEE1394接続のDVD-Rを繋いでおいて、後からSATA接続のDVD-Rを増設したのだが、その時何か状態が変わったのだろう。確か「DVD-RWへの書き込み機能を有効にしました」と出た後、「DVD-RAMの書き込みを無効にします」的なメッセージが出たので慌ててキャンセルした(はず)。その後こんな現象になっている。
今までにない現象だったもので、どう対策したものか分からない。とりあえずDVD-Rのファームウェアを更新してみたが、特に変化なし。
と、ここで思い出したのだが、以前DVD-RドライブなのにCD-Rドライブとしてしか認識されていなかった時に、一度デバイスマネージャーから該当ドライブを削除して再認識させたら直った事があった。
で、今回もそうしたら直った感じだ。
今時の賢いOSは、賢すぎて使うのが逆に難しい気がするな。

R10-D2の中身

DVD-Rドライブが届いたのでR10-D2に装着。ついでに中身を撮影。

R10-D2の中身1

DVD-Rの接続ケーブルがCPU(?)ファンの上にかかる感じになるのがまた不安。

R10-D2の中身2

電源のファンもこのようにふさがれていて、PCIボードなしの場合の1/3位になっているのではないか。

でもまあとりあえず動作音は静か。2.5′のHDDを付けたから3.5′のを付けたのに比べればマシだろう。

ATOM330が付いていた方はHDDを3.5′のものにしたのでファンよりモーター音の方がうるさい。ゴーっという感じ。ごろごろの超高速というべきか。

東京のサーバが壊れた

東京の寝床でもインターネット遊びをするのでプロバイダと契約している。せっかくIPv4の生アドレスが一つ払い出されているのと、負荷分散(ウィルスチェックとwebキャッシュをローカルでやるのは無駄)のためにサーバを立てて WEBサーバとWEBキャッシュをやらせていた。これが壊れてしまった。元々調子の悪いノートパソコンを宛てていたので壊れても仕方あるまい。

最初HDDが壊れたのだと思ってストックのHDDに交換したのだが、またまた不調になった。原因不明。HDDがまるで物理的に傷でも入ったかのような動作なのだ。「ブートアップ可能なドライブがない」的なメッセージが出る。ところがしばらく放って置くと何となく動作する。交換した方のHDDもWindowsでフォーマットしなおすと、どこもおかしくない。もちろんクイックフォーマットではないのに。

もしかして、これはFreeBSDだからなんだろうか。今まで4回位HDDクラッシュに見舞われたが、大抵午前3時のログ送信時の激しいディスクアクセスの最中だ。または調子が悪い機械とFreeBSDの相乗効果か。

もっとも、とあるところのExpress5800に入っていた(標準装備なのか後付けなのかは不明)MaxtorのHDDも似たような死に方だったが、OSはCentOSだったから、壊れるときはこういうものなのか。

とりあえずクライアントPC側のproxyを外してウィルスチェッカを入れ、しばらく凌ぐことにした。クライアントPC(これ→FOXCONN R11S4MI-BA)のCPU,Atom330はみなし4スレッドあるから、ウィルスチェッカがそれほど負荷にならないかもしれない。IPアドレスはもったいないが、電気代は節約できるかもしれない。このATOM330のマシンをサーバにしてR10-D2を入れるとすっきりするかもしれない… 考え込んでは時間が無駄になるのである。

R10-D2

昨年、余っているH300Aに丁度よさそうなマザーボードATOM-GM1-NC330を付け、低廉かつ電気代節約のためのPCを組んで1年ほど休み休み使っていたのだが、今年は調子が悪い。
実は冬に一度増設していたネットワークボードが壊れてしまっていて、その時何らかのダメージが本体にあったのかもしれない。

今年も夏が来て、メインで使っているPentium4 2.4GHzのパソコンが轟音と熱を放出するため、静かで電気を食わないPCが必要になり、以前と比べて電源ファンのノイズが大きくなった気がするH300AATOM-GM1-NC330に見切りをつけて FOXCONN の R10-D2を入手した(リンク先はamazonだが、実際には別の所で購入。アフィリエイトを断られたのだ)。

FOXCONN Atom D510搭載 MiniI-ITXベアボン R10-D2

別のところで同じケースと思われる FOXCONN R11S4MI-BA を使っていて、今まで妙な動作をしたことがないので、割と軽い気持ちでR10-D2も導入。今のところ静かに動作している。

ちなみにR11S4MI-BAはJust MyShopで購入したのだが、R10-D2も購入できるようだ(私が探していた時はまだ無かったのになぁ)。

私はUSBが嫌いなので開発に使う外付けHDDはIEEE1394で接続しているが、最近ひときわIEEE1394付きのPCが減っているのでPCIスロットは必須。そういうわけでR10-D2は当然PCIスロット付きだが、IEEE1394ボードを取り付けたら電源ファンを半分程ふさぐような感じになった。これはちょっと怖い。安いNICはもっと小さいから、そういうものを想定しているのだろうか。まだ蓋を開ける機会はあるので写真は後日。

dumprep.exe、止めてすっきり

ようやくThuderbird3がおとなしくなった。dumprep.exeを止めてから4日位か。

VMware-server上で動かしているのでシャットダウンなどしていない。24時間動作させて4日である。dumprep.exeを止めていなければまだまだやっていたに決まっている。しかし、実際どれほどかかるのかまでは試す気なし。

VMware上でなくても、Thunderbird3を入れたらdumprep.exeは止めた方が良いかもしれない。インデックス更新は重たそうだからdumprep.exeが調査を開始する機会も増えるに違いない。

そういえばFirefoxやJaneXenoといったブラウザ系のツールがわりとよくフリーズしていたような気がするが、これも解消した気がする。こちらは「気がする」だけで何とも言えない。そのような状態になったときはそれぞれのプログラムを止めてからもう一度起動すれば大抵なんとかなっていたし、Thunderbird3みたいに年がら年中という感じでもなかったので慣れの範疇に収まっていたのである(なんたってそのThunderbird3のCPU食いつぶしすら何ヶ月も放置していたのだから)。

dumprep.exeを止めてしまったので、変な動作をしたときにMicrosoftに情報が渡らなくなったから、「これどうみてもOSの方が悪いっぽい」というようなことの自動報告が為されないのは問題かもしれない。もっとも、今回の話は2代も前のWindows である Windows xpでの話なので関係ないか。

Windows 7で試すのはいつの日になるかのか。現在は予定なしで、心のWishlist入りしているだけである。

Express5800/110Gc-C

www.nsysdesign.comは、しぶとくNEC特選街のアウトレットに出るこのマシンの片隅で動作している。最大メモリ量が8GBで(ただし動作保証なし)、サーバ系プログラムを実働状態に近い構成で動作確認するにはちょうど良い感じ。

メモリを8GB積んで既に保証の対象ではないので、CPUも最初についてきたPentium4 651ではなくcore2quad Q6600に付け替えてある。ほとんど再起動しないので問題はない。交換のおかげかFreeBSDのportsの更新がめっさ早くなった。

測定したわけではないが、CPUとメモリの負担が大きいはずなので、電気を喰いすぎない様にDVDは外した。気休め程度でも電気は使わないようにしたい。

同じくアウトレットに出ている110Geも別の用途で使っているが、こちらはディスクI/Oが遅いのじゃないか。VMware-serverでいくつかVMを上げているが、ひっかかる感じがする。見ると盛大にディスクアクセスしている。なので、VMware-serverやESXiで使うには110Gc-Cが良い気がする。

予備に一台入手しておきたいが、余裕がないのが残念。

NEC「得選街」 NEC特選街へはこちらからどうぞ (たまに Express5800/110Gc-C が買えます)。

私家版コンピュータの基本

私から見えているコンピュータというのは次の3つ機能からできているモノである。

1. 計算をする

簡単なものから難しいものまで、とにかく計算をする。だって計算機だもん。

2. 何かの知らせをやりとりする

まずは計算の基になるデータを受け取り、結果をどこかに返す

データはキーボードから受け取り、結果をディスプレイに送って表示させる。

あるいは、キーボードから受け取ったデータを、ネットワークでサーバに送る

サーバのデータを取り出し、結果をディスプレイに送って表示させる。

3. データを記録する

メモリでも何でも良いが、データは一定期間保持する必要がある。そうでないと計算結果は誰も受け取れない。

計算はCPUの花形たる仕事、通信はなんとかバス・なんとかケーブル、データ記録はデータベース(生ディスクにしたところで、リニアアドレスによるデータベースだ)、と、これだけ理解していれば基本的にはOK。

コンピュータの基本はこれだけじゃないか。MS-WORDとMS-EXCEL使い方より、上のような事の方が応用が効く。と私は思っている。

Thunderbird3の地球温暖化

電子メールのツールはWinbiffを使っていて、人にも勧めていた。ところが今年の春にまさかのサポート終了。

去年からThunderbirdを試している。2.0はまあまあ調子が良かったので3.0には躊躇なく移行したのだが、これが地球温暖化に貢献しまくりである。

POP3でサーバからメールを持ってきている人は、パソコンが変わる度に、また、メールツールが変わる度にデータをそれなりに捨てているのだと思うが、ここ10年以上IMAP4を愛用してきた私の場合はサーバに何GBもメールが残っている。このデータに対してインデックスを張るとか、無駄なことこの上ない。Thunderbirdのバージョンアップの度、使うPCが変わる度にCPU時間の浪費が行われるのだろう。

googleはGmailからデータを消去せずアーカイブすることを勧めているから、メールサーバに何GBも持つ人は今後増えるに違いない。GmailはIMAP4をサポートしている。IMAP4だとメールツールの移行やメールクライアントの複数所持に楽々対応できるから、だんだん使われる様になって行くだろう。結果としてThunderbird3による地球温暖化に拍車がかかる気がしてならない。