エンジニアが発信する【2006年10月】の記事です

エンジニアが作る最新ITブログ トップ>【2006年10月】

2006年10月31日

参照設定 その後

先日、AccessからExcelを呼び出す際に「Create Object」と「参照設定」とがあると書いた。

Create Objectの方がいいかなとは思っているのはExcelのバージョンが違うと参照設定がうまくいかないことがあるなどがあるのが主な理由だが、どうやらこれも回避できる可能性があるようである。


なら、わざわざCreate Objectにする意味はないかもしれないかな?と思っていた矢先、昔に経験したことを思い出した。それは先日書いたブログにも関連するのだが・・。

たとえばシートに罫線を引く場合、xlThin だのという規定値を使うことがあるだろう。これはExcel内での固有値である。よって、Create Objectで行った場合はこの値を数値に置き換えるか、修飾子をつけて認識させるかしないといけない(ただし、この修飾子による方法はまだ成功していない)。つまりは、Create Object方式を採用しても参照設定を定義しExcel固有の規定値を使えるようにした方が使い勝手がよい、ということになる。


過去記事も近く訂正する所存である。





2006年10月31日

Links for 20061030 [はてなブックマーク]

2006年10月28日

何故オブジェクト指向が必要なのか? その1

何故オブジェクト指向が必要なんですか?


と言う問いに対して


「オブジェクト指向を使うとコードの再利用が行えるから」


と回答した場合の反論を想定してみました。


「C言語などでも関数を使用することによってコードの再利用は行えると思いますが、オブジェクト指向での再利用と関数での再利用はどう違うのですか?」

「オブジェクト指向での再利用と関数での再利用はそこまで変わらないと思いますが、オブジェクト指向での再利用は再利用の行いやすさにあると思います。」

「例えば?」

「例えば、クラスという設計ができクラスはそれぞれ役割があります。その役割を再利用するのです。」
「各オブジェクトの仕組みを使うと言うことですね。」

「はい。そうです」


このような感じでどうでしょうか?


ちなみに、オブジェクト指向って言語に依存するけど・・・しないとも言える。

例えば、C言語でオブジェクト指向設計は出来ないのか?と言われると・・・

結論としてはオブジェクト指向設計は出来る。


C言語には構造体ポインタという強力な武器があるため、擬似クラス設計や擬似ポリモーフィズムが出来る。(*1)

しかし、これを実現するためには同じ思想をもっていて、高いスキルが必要不可欠だろう・・・。


------------------------------------------------

*1・・・実際に「日経ソフトウェア」の連載で行っている。

2006年10月28日

とりあえず、Microsoft Windows Vista RC1 導入 - 松のページブログ - 楽天ブログ(Blog)

 メインで使ってる、PCはメモリ周りの互換性が怪しかったのでいつもはLinuxで使ってる、セカンドPCにVista(RC1)入れてみました。

AOpenの出してるハーフキューブ型のベアボーンです。

本体:AOpen MZ855-II (チップセット Intel 855GME)
CPU:Intel Pentium-M 725 (1.6GHz Dothan)
メモリ: DDR-SDRAM 1GB (PC2100 規格)
ディスプレイアダプタ:Leadtek WinFast A6200TDH (AGP x4 nVisia GeForce6200A搭載)
HDD:HITACHI Deskstar HDS721616PLA380 (160GB)

その他 HDD が、Serial-ATAなので、Ratoc REX-PCI15S という、Serial-ATAインターフェイスボードで接続しました。

 インストール時に、REX-PCI15Sが認識できなかったので付属のXP用ドライバ(Silicon Image SiI 3512 SATALink Controller)を読み込ませてみたらあっさりインストールできました。

 Windows エクスペリエンス インデックスは 2.3 でした。 Aero Grass も動作する。グラフィックスが足を引っ張ってる模様。そんなによくないけど、まあまあ使える印象かな。

 問題点としては、初期状態ではスリープと休止モードが正常に働かず、リセットがかかってしまい、「前回不正終了した」旨のメッセージが表示されてしまう。どうも、メモリをHDDに退避する処理の前にHDDとの接続が切れてるんでは?といった感じ。Serial-ATAインターフェイスボードとか使って無理やりインストールするから…。

 コントロールパネルから、「ハードウエアとサウンド」-「電源オプション」を選択し、「プラン設定の変更」を開いて、「詳細な電源設定の変更(C)」を開く。出てくる設定項目の中から、「スリープ」-「ハイブリッドスリープを許可する」を「オフ」に設定する。これでOK!。

2006年10月27日

SLCP-JCF98

SLCP-JFC98の解説本にざっと目を通した。


感想としては、「現場では使える」「これをマネジメント層が顧客にコミットしていれば有効」と感じた。

ITコーディネータのガイドラインやPMBOK(プロジェクトマネジメントの知識体系)と比べても全く見劣りしない。また、それぞれオーバーラップする部分も多い。

いずれにせよ「難しいもの」ではなく「読めば納得できる部分も多いもの」だと思う。


では、お客さんと話す場合、どれを使えばいいのか、という心配もあるだろう。いずれも知っていて適宜使えるのがどの立場であろうが理想であるが、「体系がどういう立場に向くか」という観点であれば、私見ながら次のようになるかなと思う。

コンサルタントならITコーディネータのガイドライン、マネージャーならPMBOK(ただしSLCP-JCF98もWBS作成時には考慮のこと)、リーダーならSLCP-JCF98、かな?PMOならマネージャー以上にSLCP-JCF98を意識した方がよさそうである。


ではVBAユーザーの場合は?となると、開発に近いSLCP-JCF98が立場上適用しやすいかと思う。もちろん、他のフレームワークで補強しておけばもっと良いだろう。


いずれ書籍は紹介することにする。

2006年10月27日

キモチワルイ?雪の結晶 - 松のページブログ - 楽天ブログ(Blog)

http://gigazine.net/index.php?/news/comments/20061023_snowflake/

 えー、雪の結晶の載ってるサイトです。

 低温ナンチャラ電子顕微鏡による撮影だそうで、結晶の細かいディティールまで如実に暴露されてしまいます。

 興味深いですが、もう夢も希望もないですな。

 ちなみに、自分は目ジカラが強いので、立体視得意です。;-)

2006年10月27日

これはXMLの仕様なのか!?

XMLのコメントに--があると、エラーとなる。なんで!?

コメント終わりは --> じゃないのか?

http://hiuchida.jp/attachment/g061026/error.xml

・・・

やりたかったことは、Cのコメントみたいに、
<!-- ------------------------------------------------- -->
って、XMLのコメントを入れたかっただけ。

試しにハイフン(-)をイコール(=)にしたら問題なかった。

じゃないのか? http://hiuchida.jp/attachment/g061026/error.xml ・・・ やりたかったことは、Cのコメントみたいに、<!-- ------------------------------------------------- -->って、XMLのコメントを" dc:identifier="http://blog.goo.ne.jp/hiuchida/e/4e67ac93458033693e2249035f9a1ae8" /> -->

2006年10月26日

Windows Desktop Search 3.0 is available

どうぞ

http://support.microsoft.com/kb/917013/en-us

2006年10月26日

実際の業務データでの結果

実際のユーザの業務データ(1業務あたりUTF-8エンコードで208,992バイト)を使って、axis soapとrest httpでのダウンロードの比較を行った。なおDBは使わず、外部ファイルを読み込んで、XMLデータを返す構成で検証した。
基本的にデフォルトは10件の取得なので、普段から10件分の負荷がかかっていると考えられる。

ネットワークを流れると想定されるデータサイズ(バイト)。

件数 axis soap rest http
1 295,852 209,032
2 591,704 418,064
3 887,556 627,096
4 1,183,408 836,128
5 1,479,260 1,045,160
10 2,958,520 2,090,320

※文字コードの度数分布で計算した。

処理時間(ms)。

件数 axis soap rest http
1 454 110
2 705 126
3 987 141
4 1175 157
5 1535 203
10 2835 345

クライアントのメモリピーク(KB)。

件数 axis soap rest http
1 8817 1783
2 16205 2694
3 26563 4408
4 29537 5217
5 42008 5945
10 82583 11718

サーバーのメモリピーク(KB)。

件数 axis soap rest http
1 35311 28771
2 36316 29309
3 34380 31695
4 37901 32627
5 39887 35045
10 49669 42598

エンコード後のデータサイズは1.4倍の違いだが、処理時間は8倍となる。
メモリは当初の予想に反してデータを返すサーバー側ではなく、データを受け取るクライアント側に負担がかかる。従って、クライアントが単発のアプリならば問題ないが、アプリサーバー上の別Webアプリなので、多重度が増してくるとこの負荷の違いは大きい。

・・・

タスクマネージャーの様子。(サーバーとクライアントは同じ筐体)

axis実行 ⇒ rest実行 ⇒ axis実行 ⇒ rest実行 ⇒ rest実行 ⇒ rest実行 ⇒ System.gc実行 ⇒ System.gc実行 ⇒ System.gc実行 ⇒ ・・・

2度目のrest実行後にプロセスのメモリが残っていたので、メモリリークかと思い、再度restを2回実行したがそれ以上は変わらず。
試しにSystem.gcページを作り実行したら、1回目はFullGCがかかるがプロセスのメモリはOSから解放されない。
2回目・3回目でブロック単位でOSから解放され、4回目以降は変わらずだった。



エンジニアが作る最新ITブログ トップ>【2006年10月】

メンバー紹介

タグパネル

ランキング

エンジニアが作る最新ITブログ DODA