Sunday, December 10, 2006
Saturday, October 28, 2006
Monday, June 12, 2006
今日の面接
いまさらになって、恥かしく思える。
今回の就職活動では、今までの実績を買ってくれる企業があったらなぁという、甘い考えがまったく無かったのかと言えば、うそになると思う。
ベンチャー企業といえば、少数の人間でなんとか回していかなければならないわけで、その中で、自分自身の責任の幅と重さは大企業の比ではないという、至極当然の認識が欠けていた。そこを社長は鋭く見抜いていたのではないか。
パッケージやサービス等の商品を提供する企業は、いい加減なものを市場に出す訳にはいかないのは当然の事で、個人の仕事の質は、そのまま会社の経営に直結する。それが、「当社はメーカーである」という社長の言葉の意味。
自分の興味だけで仕事はできない事は多いし、その理由だけで今の仕事はくだらないと考えるようでは、今後も同じ事を繰り返すだけだ、と、この一介の、たかが人材紹介会社から案内されて面談を受ける人間に、わざわざ教えてくれたのではないか。
パラダイムシフトが必要だ。
今までの技術一辺倒路線から脱却する必要がある。
技術への興味と実績を生かすべきは、開発などの業務ではなく、経営の手段としての、経営戦略への転換という帰結とならなければ、この先やっていけない。
もっといえば、いまの年齢で、お山の大将になるつもりなら、会社には不要だ、と、言う事かもしれない。
「今後、商品の企画も手がけてみたい」などという、耳障りの良い、一見、前向きと取れる言葉は、今、会社に入ってしなければならない事を置き去りにしているという事を表す台詞ともいえる。
今日の企業は駄目かもしれないけど、やっと自分が見えてきたような気がするこの転職活動で、ベストが尽くせさえすれば、成長できるかも知れない。
Tuesday, May 30, 2006
今日の予定
市営図書館が休館日ということで、ちょうど良かった。
関係ないけど、今日嫁を駅まで車に送った際にラジオで流れていた、やけに楽しげなピアノの曲、なんでもベント・ファブリックという人の曲とかで、家に戻るなり、どんな人なのかネットでしらべてみた。
ベント・ファブリック(Bent・Febric)、デンマーク王立劇場で音楽関連の仕事をしているそうで、なんと御歳81歳、その歳でバリバリアップテンポなロックさながら(Jazzだけど)の演奏をやってのけるに、世間にはすごい人がいるなと、感心した次第です。
かかっていた曲は、アルバムJukeboxからのタイトル曲でした。
Monday, May 29, 2006
アスペクト指向:メソッドパターンで使える特殊記号
の記述を参照するとして、
「アスペクト指向入門」によると、型名の右側に記述する"+"は、対象クラスだけでなく、そのサブクラスまでをメソッド指定の対象とし、"+"を省略した場合とほぼ等価。
だけど、サブクラスと親クラスがあった時、"+"を記述した場合、その親クラスが対象のメソッドを持たない場合でもポイントカットの対象メソッドとなるが、"+"を省略した場合、親クラスにそのメソッドがない場合は、対象外となる、との事。
プリミティブ・ポイントカット一覧
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指向
http://www.aspectc.org/
当然、そんなこと気がつくのは私ばかりでないわけで。
時間があれば、勉強してみたいものだ。
・・・このページの日本語化プロジェクトは未だ無いようです。
Thursday, May 18, 2006
また落ちてしまった
やはり、悔しい。
ただ、勉強期間の短さの割には、点数が思いのほか悪くなかったので、次の試験につながることを期待。
今回の試験でよかった所と、よくなかったところを列記してみる。
よくなかったところ
回答に時間がかかりすぎ
問題の浅薄な理解でとり逃した問題が多かった
もっと勉強時間がとれたはず
よかったところ
朝飯を現地ではなく家で食べたこと
睡眠時間のすくなかったが頭がよく働いていたこと
昼休みは睡眠をとったこと
就寝前は暗記に集中したこと
前日の入浴を控えて当日の朝にゆっくり風呂につかった
よくなかったところでは、『2.問題の浅薄な理解でとり逃した問題が多かった』が、前日の模試でも兆候がでていたが、結果的にそれを本番に引きずる形となった。
理解をよく理解せずに回答に着手してしまい、何度も問題分を読む結果となり、『1.回答に時間がかかりすぎ』でタイムオーバーという場面が目立った。
同じ轍を踏まず、次回は何とかしたいな。
Tuesday, March 28, 2006
Sunday, March 26, 2006
VCによるDAO接続サンプル
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
以下 COMMANDのHELPより
SUBST [ドライブ1: [ドライブ2:]パス]SUBST ドライブ1: /D
ドライブ1: パスを割り当てる仮想ドライブを指定します。 [ドライブ2:]パス 仮想ドライブに割り当てる物理ドライブとパスを指定します。 /D 置換した (仮想) ドライブを削除します。
現在の仮想ドライブ一覧を表示するときは、パラメータを指定せずに SUBST と入力してださい。
パスをドライブ名に関連付けます。
Wednesday, March 22, 2006
アクティビティ図
- 初期状態
スタート地点。たとえば、顧客からの注文が発生したなど、これからシステムに対して働きかけを行おうとする際の基点。
- 制御フロー(実線矢印)
流れ(そのまんま)。ガード条件を付与して、その流れに移行する条件を記述する。ガード条件はオブジェクト制約言語OCLや擬似コード、文章などで記述する。「ガード」条件といっておきながら、実は分岐する条件。
- 動作状態
アクション。働きかけ。これから伸びる制御フローは常に1本となる。
- 状態
現在の状態。イベント待ち。あるいは、何らかの動作を行っている状態。複数の制御フローが指定可能。
- 判断
条件判断。ガード条件を付与した「2つ以上」の制御フローが伸びる。
- 最終状態
制御の終わり。
Tuesday, March 21, 2006
ユースケース図の考察
ユースケースに含まれる要素ごとに、自分なりの考察をしてみる.(殴り書き)
- アクター
人とは限らない.何らかの動作を行おうとする人や物。
- ユースケース
振る舞い。動詞。だから、~データとか、~ファイルとかは、ありえない。それは、DFDなど他の図の仕事。トランザクションの流れでもない。別名イベント。
そもそも、ユースケースの定義とは、ユーザーが要望する『機能』を定義するもので、内部のデータ、処理の流れを規定するものではないし、これらについても記述してはならない。常に顧客に見せるイメージを維持する。だから、システム内部要素が出てきてはならない。
- 関連
アクターとどういう関係かを規定する。別名通信関係。ユースケースどうしで結ばれる事はありえない。
- システム境界
システムが行う事。ここからが、システムの領分。アクターが、システム領域内のユースケースにどう関与するかを、システム領域から飛び出した『関連』が示す形になる。
- Uses汎化
ユースケース同士で結ぶ。あるユースケースについて、共通に呼び出されるユースケースを示す関係。ユースケースの使いまわしをする時の関係。使用汎化関連(関係)。なぜ、汎化と呼ぶかは不明(歴史的背景があると見られる)。UML1.1の古い要素。新しいバージョンでは、<<include
- Extends汎化
バリエーション。例外な用法。とあるユースケースの例外的な用法を示すユースケースと、一般的なユースケースとを結ぶ。UML1.1の古い要素。新しいバージョンでは、<<Extend
http://www.ogis-ri.co.jp/otc/hiroba/technical/Jouhoushori-UML/UML10-2.html
祝64ビット化
Athlon64のデュアルコアにM/B、メモリ、HDはすべて新規ご購入し、ついでにVGAもそろえて、しめて約12万円なり。
少し使っただけで、いくつか問題が発見されたが、まぁ取りあえずは動いている様子。
でも、さすがに今のパソコンはすごいわ。なにが違うって、まず、起動の早いこと早いこと。
いままで3分はかかっていた起動が、POSTとあわせて、30秒以下になった。
それにグラフィック性能。あのGoogleEarthが、目を疑うほど滑らかに動作する様を見て、思わずのけぞってしまった。
おまけに、旧パソコンでは1フレームあたり約1分で動作していたNASAのWorldWindが、なんとサクサク動くではないか。
まさに、地獄から使者と見紛うほどの超速パソコンを作り上げてしまった。
でも殆どの用途は、VisualStudioかEclipse、その他もろもろ無償系開発環境と、メールとインターネットぐらい。
いいのか、こんなんで。
Thursday, March 16, 2006
マクロでページ設定
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
Tuesday, March 14, 2006
Monday, March 13, 2006
対処プラン
なぜか、ダイアログメッセージを表示していない場合だと、正常に終了する。
いろいろ調べているうちに、SendMessageとNotifiyMessageが、それぞれ、次の実行を待つという事と、待たないことという違いがある事をはじめて知った。
時にはハマリる事も無駄ではないということか。
さて、対処はどうしようかと考えて、SendMessage(WM_CLOSE)とする強引な終了方法ではなく、終了処理を2段階に分けて、それぞれをユーザー定義メッセージを新設して対処するという案で(明日)いこうと思う。
ユーザー定義を浮けとる箇所はフレームクラスのOnWndMsgとし、ここに、段階終了処理を書いてみよう。
あとは、親Applicationを2つメッセージを送るように変更する。
うまくいけば良いが・・・。
Sunday, March 12, 2006
SendMessageEx(WM_CLOSE)で無限ループ
なんと恐ろしいことを・・・
挙動を確認してみると、早速不都合が発覚した。
この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
本を書いてみたい
言われて気づいた。ただ漠然と本を書きたいと想像し、アイディアがない、時間がないなどと言い訳しているより、まず、なんでもいいから書いてみると言う姿勢が大事という事を。
書いてみたものすべてが本の材料に為る訳ではないけれど、少しずつアイディアを積み重ねることで、実際に書きたい題材がはっきりしてくるのかも知れない。
Sunday, February 26, 2006
VC++.NETではアウトライン表示はNot default
ツールー>オプションー>テキストエディター>C/C++ー>書式設定
で、常にアウトラインモードで起動できるようになります。
VC++(MFC)覚書
但し、<開始コントロールID>のリソース番号は<終了コントロールID>より小さい番号である事が必要。いまさらリソース番号を大幅に変更するわけにもいかないので、今回はつかえないな。
Regular Expression Tutorial - Learn How to Use Regular Expressions
diggにストーリーとして掲載されていた。
英語が読めればもっと便利だろうなぁ。
日本語のサイトで、同じような内容を探して見た。
文字コード最新リンク2005
こちらは正規表現のリンク集といったページですが、活用させてもらいます。
Tuesday, February 21, 2006
名前が避けられた #pragma
warningプラグマでオフにする事が出来るようだが、すでに納品済みのプログラムだしなぁ。
afxdao.hを見るたところ、確かにこのクラスのコンストラクタに#pragma deprecatedの記述がありました。
プリプロセッサに_AFX_DISABLE_DEPRECATEDを追加すればWarninigは消えました。
(備忘)#pragma deprecatedの記述がある関数は、今後のリリースでサポートされない可能性のあるものに対して適用されるもののようだ。
Sunday, February 12, 2006
Saturday, January 28, 2006
Sunday, January 01, 2006
今日はVCの勉強です。
まずは、ツールバーに文字を出すのが目標です。
いつものとおり、『猫でもわかる』の助けをお借りします。
http://www.kumei.ne.jp/c_lang/sdk/sdk_64.htm
SDK編 第64章が、まさに私のやりたいことでした。
ただ、私の場合、MFCを使用していたため、このまま適用しても、うまくいかないかもしれません。
まずは、ツールバー作成箇所を、ウィザードが作ったCMainFrameのOnCreateイベントの中から探しだし、
とりあえず、このまま記述してみる。