Sunday, December 10, 2006

明日から品川出勤

待っていろよ、インターシティ。
気合いとは、裏腹に、就業開始時間が更に早くなってしまったのは、結構痛い。
これで、退社時間も早くなれば我慢もできるが、そうはならないかもね。

日本語IMEが

ATOKになりました。プライベートマシンに導入するのは、今回が初めて。
まだ、違いが感じられるほど使い込んでいないが、これで少しは文章入力の時間が短縮できればよいが。

Saturday, October 28, 2006

でた、200万円スウィート

[一休.com]
東京プリンス 1泊200万円のクリスマスプランだって。

Monday, June 12, 2006

今日の面接

考えの甘さを暗に指摘された。
いまさらになって、恥かしく思える。
今回の就職活動では、今までの実績を買ってくれる企業があったらなぁという、甘い考えがまったく無かったのかと言えば、うそになると思う。
ベンチャー企業といえば、少数の人間でなんとか回していかなければならないわけで、その中で、自分自身の責任の幅と重さは大企業の比ではないという、至極当然の認識が欠けていた。そこを社長は鋭く見抜いていたのではないか。
パッケージやサービス等の商品を提供する企業は、いい加減なものを市場に出す訳にはいかないのは当然の事で、個人の仕事の質は、そのまま会社の経営に直結する。それが、「当社はメーカーである」という社長の言葉の意味。
自分の興味だけで仕事はできない事は多いし、その理由だけで今の仕事はくだらないと考えるようでは、今後も同じ事を繰り返すだけだ、と、この一介の、たかが人材紹介会社から案内されて面談を受ける人間に、わざわざ教えてくれたのではないか。

パラダイムシフトが必要だ。
今までの技術一辺倒路線から脱却する必要がある。
技術への興味と実績を生かすべきは、開発などの業務ではなく、経営の手段としての、経営戦略への転換という帰結とならなければ、この先やっていけない。
もっといえば、いまの年齢で、お山の大将になるつもりなら、会社には不要だ、と、言う事かもしれない。

「今後、商品の企画も手がけてみたい」などという、耳障りの良い、一見、前向きと取れる言葉は、今、会社に入ってしなければならない事を置き去りにしているという事を表す台詞ともいえる。

今日の企業は駄目かもしれないけど、やっと自分が見えてきたような気がするこの転職活動で、ベストが尽くせさえすれば、成長できるかも知れない。

Tuesday, May 30, 2006

今日の予定

今日は、船橋の職安センターに行って職業訓練校探し。
市営図書館が休館日ということで、ちょうど良かった。

関係ないけど、今日嫁を駅まで車に送った際にラジオで流れていた、やけに楽しげなピアノの曲、なんでもベント・ファブリックという人の曲とかで、家に戻るなり、どんな人なのかネットでしらべてみた。

ベント・ファブリック(Bent・Febric)、デンマーク王立劇場で音楽関連の仕事をしているそうで、なんと御歳81歳、その歳でバリバリアップテンポなロックさながら(Jazzだけど)の演奏をやってのけるに、世間にはすごい人がいるなと、感心した次第です。

かかっていた曲は、アルバムJukeboxからのタイトル曲でした。

Monday, May 29, 2006

アスペクト指向:メソッドパターンで使える特殊記号

大筋は、http://netail.net/aosdwiki/index.php
の記述を参照するとして、
「アスペクト指向入門」によると、型名の右側に記述する"+"は、対象クラスだけでなく、そのサブクラスまでをメソッド指定の対象とし、"+"を省略した場合とほぼ等価。
だけど、サブクラスと親クラスがあった時、"+"を記述した場合、その親クラスが対象のメソッドを持たない場合でもポイントカットの対象メソッドとなるが、"+"を省略した場合、親クラスにそのメソッドがない場合は、対象外となる、との事。

プリミティブ・ポイントカット一覧

やはりここを参照。
http://netail.net/aosdwiki/index.php

以下引用

ポイントカットのメソッド記述方法について
例としてexecutionポイントカットのメソッド記述方法

execution(MethodPat)

MethodPat:
[ModifiersPat] TypePat [TypePat . ] IdPat ( TypePat | .., … ) [ throws ThrowsPat ]

ここで言うMethodPatとは、ポイントカットの対象とするメソッドの記述方法を指し、[]で囲まれた箇所は書略可能である事を示す。というのは当たり前か。

[ModifiersPat]: 修飾子を示す。public/privateなどのスコープ子をさす。
TypePat: 対象のメソッドが返す戻り値の型を示す。
[TypePat . ]: 対象メソッドのクラス名、と、言うことかな。"."で修飾して対象メソッドを指定する場合。
IdPat: メソッドの名称
( TypePat | .., … ): 引数の型とリスト。".."とすると、任意の数の引数を指す。多態な複数のメソッドもひとつのポイントカットでまとめて対象とする際にも使える。
[ throws ThrowsPat ]: 例外のリスト。省略時は任意の例外を投げるメソッドが対象。Javaは例外の型の違いでも多態なメソッドになるんだったっけ?(後で調べねば)

public Object ArrayList.set(int, Object) throws IndexOutOfBoundsException
| | | | | |
| | | | | `-[ throws ThrowsPat ]
| | | | `-( TypePat | .., … )
| | | `-IdPat
| | `-[TypePat . ]
| `-TypePat
`-[ModifiersPat]

Saturday, May 27, 2006

FreeMindいまだ正常動作せず

下手の横好きに伴う、弊害①

freeMind Ver0.8が正常に動作しない。

JDK1.5だからかどうか判らないが、画面を黒くしてしまって、キーボードの動作もマウス動作も受け付けなくなる。
JDK1.4では、起動時に警告が出るし、32bit用JDK1.5をx64環境で動かしているせいかも。
でも、AMD64用では、Eclipseは動かないし、しばらくfreeMindはあきらめるか。

Aspect指向

AspectJを勉強していた時、ふと、Aspect指向をC++にも適用できないかと考え、そのようなコンパイラは存在するのかと検索してみたら、やはりありました。

http://www.aspectc.org/

当然、そんなこと気がつくのは私ばかりでないわけで。
時間があれば、勉強してみたいものだ。

・・・このページの日本語化プロジェクトは未だ無いようです。

Thursday, May 18, 2006

また落ちてしまった

やはり、悔しい。
ただ、勉強期間の短さの割には、点数が思いのほか悪くなかったので、次の試験につながることを期待。
今回の試験でよかった所と、よくなかったところを列記してみる。

よくなかったところ

回答に時間がかかりすぎ
問題の浅薄な理解でとり逃した問題が多かった
もっと勉強時間がとれたはず
よかったところ

朝飯を現地ではなく家で食べたこと
睡眠時間のすくなかったが頭がよく働いていたこと
昼休みは睡眠をとったこと
就寝前は暗記に集中したこと
前日の入浴を控えて当日の朝にゆっくり風呂につかった
よくなかったところでは、『2.問題の浅薄な理解でとり逃した問題が多かった』が、前日の模試でも兆候がでていたが、結果的にそれを本番に引きずる形となった。
理解をよく理解せずに回答に着手してしまい、何度も問題分を読む結果となり、『1.回答に時間がかかりすぎ』でタイムオーバーという場面が目立った。

同じ轍を踏まず、次回は何とかしたいな。

AspectJ

を、いまさら勉強し始める。
まだ、Eclipseにインストールできないままで、今日が終わりそう。

Tuesday, March 28, 2006

認証方式

LDAP認証
OpenLdapが使えるか?
Windows認証
当然、Windowsしか使えない。

覚書です。

Sunday, March 26, 2006

VCによるDAO接続サンプル

DBAccessにアクセス
1)アプリケーションの開始時にCOMを初期化します
CoInitialize();

2)cppファイルでタイプライブラリをインポート
// EOFが名前衝突してしまうのでrenameします
#import "~\dao360.dll" rename("EOF", "DAOEOF")

3)DBアクセスするソース
using namespace DAO;

void function() {
_DBEnginePtr dbEngine;
HRESULT hr = dbEngine.CreateInstance("DAO.DBEngine.36");

DatabasePtr database =
dbEngine->OpenDatabase(_bstr_t("test.mdb"));

// レコード処理
RecordsetPtr recordset = ...;

database->Close();
}

4)アプリケーションの終了時にCOMを片付けます
CoUninitialize();

※一度コンパイルすると、dao360.tlhというヘッダーファイルができます。

Thursday, March 23, 2006

Windows�R�}���h�W�F�isubst�j

そういえば、SUBSTなんてコマンドも有ったね。

以下
COMMANDのHELPより
SUBST [ドライブ1: [ドライブ2:]パス]SUBST ドライブ1: /D
ドライブ1: パスを割り当てる仮想ドライブを指定します。 [ドライブ2:]パス 仮想ドライブに割り当てる物理ドライブとパスを指定します。 /D 置換した (仮想) ドライブを削除します。
現在の仮想ドライブ一覧を表示するときは、パラメータを指定せずに SUBST と入力してださい。
パスをドライブ名に関連付けます。

Wednesday, March 22, 2006

アクティビティ図

要求定義に関して、アクティビティ図でデータフローを書こうと思ったが、自分なりに、要素の定義をしてみた. (やはり殴り書き)


  • 初期状態

スタート地点。たとえば、顧客からの注文が発生したなど、これからシステムに対して働きかけを行おうとする際の基点。

  • 制御フロー(実線矢印)

流れ(そのまんま)。ガード条件を付与して、その流れに移行する条件を記述する。ガード条件はオブジェクト制約言語OCLや擬似コード、文章などで記述する。「ガード」条件といっておきながら、実は分岐する条件。

  • 動作状態

アクション。働きかけ。これから伸びる制御フローは常に1本となる。

  • 状態

現在の状態。イベント待ち。あるいは、何らかの動作を行っている状態。複数の制御フローが指定可能。

  • 判断

条件判断。ガード条件を付与した「2つ以上」の制御フローが伸びる。

  • 最終状態

制御の終わり。

Tuesday, March 21, 2006

�I���W�� Dual-Core PC �� WindowsXP 64bit �����L�I | Firefox for Windows x64

�I���W�� Dual-Core PC �� WindowsXP 64bit �����L�I Firefox for Windows x64

ユースケース図の考察

今仕事で、既存システムの分析と理解を深める為に、ユースケース図なんぞを書いている.
ユースケースに含まれる要素ごとに、自分なりの考察をしてみる.(殴り書き)


  • アクター

人とは限らない.何らかの動作を行おうとする人や物。

  • ユースケース

振る舞い。動詞。だから、~データとか、~ファイルとかは、ありえない。それは、DFDなど他の図の仕事。トランザクションの流れでもない。別名イベント。

そもそも、ユースケースの定義とは、ユーザーが要望する『機能』を定義するもので、内部のデータ、処理の流れを規定するものではないし、これらについても記述してはならない。常に顧客に見せるイメージを維持する。だから、システム内部要素が出てきてはならない。

  • 関連

アクターとどういう関係かを規定する。別名通信関係。ユースケースどうしで結ばれる事はありえない。

  • システム境界

システムが行う事。ここからが、システムの領分。アクターが、システム領域内のユースケースにどう関与するかを、システム領域から飛び出した『関連』が示す形になる。

  • Uses汎化

ユースケース同士で結ぶ。あるユースケースについて、共通に呼び出されるユースケースを示す関係。ユースケースの使いまわしをする時の関係。使用汎化関連(関係)。なぜ、汎化と呼ぶかは不明(歴史的背景があると見られる)。UML1.1の古い要素。新しいバージョンでは、<<include>>に置き換えられる。

  • Extends汎化

バリエーション。例外な用法。とあるユースケースの例外的な用法を示すユースケースと、一般的なユースケースとを結ぶ。UML1.1の古い要素。新しいバージョンでは、<<Extend>>に置き換えられる。

http://www.ogis-ri.co.jp/otc/hiroba/technical/Jouhoushori-UML/UML10-2.html

ロイ・ブキャナン

Amazon.co.jp�FWhen a Guitar Plays the Blues: ���y
昨日たまたまInterFMで耳にした。なんか知らんエラいギターを弾く。
覚えておこう。

祝64ビット化

つい思いつきで、64ビットパソコンを自作してしまった。
Athlon64のデュアルコアにM/B、メモリ、HDはすべて新規ご購入し、ついでにVGAもそろえて、しめて約12万円なり。
少し使っただけで、いくつか問題が発見されたが、まぁ取りあえずは動いている様子。
でも、さすがに今のパソコンはすごいわ。なにが違うって、まず、起動の早いこと早いこと。
いままで3分はかかっていた起動が、POSTとあわせて、30秒以下になった。
それにグラフィック性能。あのGoogleEarthが、目を疑うほど滑らかに動作する様を見て、思わずのけぞってしまった。
おまけに、旧パソコンでは1フレームあたり約1分で動作していたNASAのWorldWindが、なんとサクサク動くではないか。
まさに、地獄から使者と見紛うほどの超速パソコンを作り上げてしまった。
でも殆どの用途は、VisualStudioかEclipse、その他もろもろ無償系開発環境と、メールとインターネットぐらい。
いいのか、こんなんで。

Thursday, March 16, 2006

本日もミス

やるべき事の一つが、作業見積もりのなかにふくまれていなかった。
見積もりも当然、確認が必要。
なんでこんなにヌケているのか・・・。

マクロでページ設定

Sub ページ設定()
Dim sheet As Worksheet

For Each sheet In ActiveWorkbook.sheets
With sheet.PageSetup
.HeaderMargin = Application.CentimetersToPoints(1)
.TopMargin = Application.CentimetersToPoints(1.8)
.BottomMargin = Application.CentimetersToPoints(0.9)
.FooterMargin = Application.CentimetersToPoints(0.4)
.LeftMargin = Application.CentimetersToPoints(1)
.RightMargin = Application.CentimetersToPoints(1)
.CenterHeader = vbNullString
.RightHeader = vbNullString
.LeftHeader = vbNullString
.Zoom = 95
.RightFooter = "&9<%会社名とか%>"
.CenterFooter = "&9P.&P/&N"
.LeftFooter = "&9&A"
End With
Next

End Sub

Wednesday, March 15, 2006

Monday, March 13, 2006

対処プラン

どうやら、SendMessageで強引に落とそうとしていることと、クローズのメッセージを受け取るApplicationが、ダイアログメッセージを表示している事が原因のようだ。
なぜか、ダイアログメッセージを表示していない場合だと、正常に終了する。
いろいろ調べているうちに、SendMessageとNotifiyMessageが、それぞれ、次の実行を待つという事と、待たないことという違いがある事をはじめて知った。
時にはハマリる事も無駄ではないということか。

さて、対処はどうしようかと考えて、SendMessage(WM_CLOSE)とする強引な終了方法ではなく、終了処理を2段階に分けて、それぞれをユーザー定義メッセージを新設して対処するという案で(明日)いこうと思う。
ユーザー定義を浮けとる箇所はフレームクラスのOnWndMsgとし、ここに、段階終了処理を書いてみよう。
あとは、親Applicationを2つメッセージを送るように変更する。
うまくいけば良いが・・・。

Sunday, March 12, 2006

SendMessageEx(WM_CLOSE)で無限ループ

結局、MFC:CHtmlView内に表示されるWEBページで、サブ画面を表示する事になってしまったようだ。
なんと恐ろしいことを・・・

挙動を確認してみると、早速不都合が発覚した。
このMFC:CHtmlViewを組みこんだApplicationは、親画面よりShellExecuteで呼び出される代物だが、この親画面は、自身のApplicationが落ちる時、そこから起動したアプリケーションも、SendMessageEX(WM_CLOSE)でもろとも落とす仕様になっている。
又、親画面から呼び出されるCHtmlViewを使ったApplicationは、CLOSEメッセージを受けてHTTPサーバーへのデータ受信要求を発行し、データをダウンロードして処理を終了する仕組みであり、その際にプログレスバー付きのダウンロードダイアログを表示する。
そして、今回の不都合は、WEBページがサブ画面を出したあと、SendMessageEX(WM_CLOSE)を実行すると、CHtmlViewを使ったApplicationが無限ループに陥ってしまうという、なんとも致命的なもの。

CHtmlViewで表示されるページが、JavaScriptでAssertダイアログを出そうが、動的にHTMLを生成しOpenDocument(そんな技があったとは知らなかった)しようが、Application上では関知しない。
ただ、後者のOpenDocumetを行った時だけが、今回の不都合を引き起こす原因となっているようだ。
HTMLの生成とOpenDocumetを行っている共通JaveScriptをみる限り、不信なところは見当たらない。
担当者からは調査の必要は無いといわれているけど、やはり少し気になるな。

水面下で継続調査ということで。

Friday, March 10, 2006

本日のミス①

勤務表の曜日を空白のまま提出してしまった。
あれだけ確認したのに・・・。

Tuesday, February 28, 2006

苦手なドキュメント

さぁ、書き始めようか。

Monday, February 27, 2006

SourceforgeでSubversionが使用可能に

Sourceforge does Subversion

digg のストーリーより。

本を書いてみたい

書くんだったら、技術関係の解説書がいいな、などと嫁にもらしたら、毎日少しずつでもいいから書いてみたら、と、言われた。
言われて気づいた。ただ漠然と本を書きたいと想像し、アイディアがない、時間がないなどと言い訳しているより、まず、なんでもいいから書いてみると言う姿勢が大事という事を。
書いてみたものすべてが本の材料に為る訳ではないけれど、少しずつアイディアを積み重ねることで、実際に書きたい題材がはっきりしてくるのかも知れない。

Sunday, February 26, 2006

VC++.NETではアウトライン表示はNot default

VBならディフォルトなのに・・・
ツールー>オプションー>テキストエディター>C/C++ー>書式設定
で、常にアウトラインモードで起動できるようになります。

VC++(MFC)覚書

ダイアログ上のコントロールで、ON_CONTROL_RANGE(EN_CHANGE, <開始コントロールID>, <終了コントロールID>, <イベントプロシージャ名(任意)>)で、たとえばコントロールの値変更が起こった場合に、共通の関数を呼び出すようにする事が可能。(BEGIN_MESSAGE_MAPブロック内に記述)
但し、<開始コントロールID>のリソース番号は<終了コントロールID>より小さい番号である事が必要。いまさらリソース番号を大幅に変更するわけにもいかないので、今回はつかえないな。

John's Adventures: John's Background Switcher

John's Adventures: John's Background Switcher
digg Storyより
ディスクトップ背景画像を定期的に変更するツールのようです。

passclicks

passclicks
digg Storyより
画像の特定の座標をクリックするパスワードだそうです。

Amazon.co.jp:エリック・ホッファー自伝―構想された真実: 本

Amazon.co.jp:エリック・ホッファー自伝―構想された真実: 本

購入しました。
なんでも、日雇い労働者でありながら、思索にふける哲学者という事で、そんな彼の人生を、ぜひ見習いたい。

Regular Expression Tutorial - Learn How to Use Regular Expressions

Regular Expression Tutorial - Learn How to Use Regular Expressions
diggにストーリーとして掲載されていた。
英語が読めればもっと便利だろうなぁ。

日本語のサイトで、同じような内容を探して見た。

文字コード最新リンク2005

こちらは正規表現のリンク集といったページですが、活用させてもらいます。

Tuesday, February 21, 2006

VC++超初心者会議室

VC++超初心者会議室

名前が避けられた #pragma

VS2002 sp1を当てたら、warning C4995がCDaoDatabaseの宣言で出るようになってしまった。
warningプラグマでオフにする事が出来るようだが、すでに納品済みのプログラムだしなぁ。
afxdao.hを見るたところ、確かにこのクラスのコンストラクタに#pragma deprecatedの記述がありました。

プリプロセッサに_AFX_DISABLE_DEPRECATEDを追加すればWarninigは消えました。
(備忘)#pragma deprecatedの記述がある関数は、今後のリリースでサポートされない可能性のあるものに対して適用されるもののようだ。

Sunday, January 01, 2006

今日はVCの勉強です。

今日はVCのお勉強です。

まずは、ツールバーに文字を出すのが目標です。
いつものとおり、『猫でもわかる』の助けをお借りします。
http://www.kumei.ne.jp/c_lang/sdk/sdk_64.htm
SDK編 第64章が、まさに私のやりたいことでした。
ただ、私の場合、MFCを使用していたため、このまま適用しても、うまくいかないかもしれません。
まずは、ツールバー作成箇所を、ウィザードが作ったCMainFrameのOnCreateイベントの中から探しだし、
とりあえず、このまま記述してみる。