tk-engineering.com Technical blog

To explore strange new systems.
To seek out new bugs and new coding horrors.
To boldly go where no man has not wanted to go before.
なぜ私が非公式の進捗報告をしないようにしたのか
管理する側の人間が非公式に(つまり、公式ルート以外で)進捗なり何なりについて聞いてくるというのは、大体においてロクな兆候ではありません。例えば…
・公式ルート経由での報告が信用できない
・そのまた上司や顧客に聞かれたから、トコロテン方式で質問がまわってきた
・他の人間にも同じ質問を投げて、反応を見比べている
…とかとか
そして、悪いことに、この手の「非公式の」報告というヤツは、非公式なだけに「噂」レベルの流通となり、いつの間にやらあちらこちらに流出して尾びれ背びれが付くものと、相場が決まってます。
さらに、この手の噂が広まったが最後、それをどうこうするのには、大変な労力を必要とします。そういうややこしい事態にしないためには、初手からそんな情報を流さないに限ります。

ただし、非公式報告の全てが悪いという気はありません。
例えば隣の席の同僚と「どう?」なんて会話をする場合とか。
これすらためらわれるような状況であれば、そんな心配をしなくても、そのプロジェクトは既に死んでます。
| tkinugaw | 下らんグチ話 | 11:13 | comments(0) | trackbacks(0) |
喰えねぇなら出すんじゃねぇ
レストランとかの話をしている時に、「あそこの主人、自分で食べて無いらしいよ」なんて話を聞くと、いっぺんに評価が下がります。
自分で喰わないものを、金とって人様に出すのかい?

コッチの業界でも同じで、自分たちでも使わない・使いたくないようなシロモノを、金とって人様に収めるのかい?
そりゃ、我々が倉庫の在庫管理システムや学習塾の受講管理システムを使うことは無いでしょう(その方面に転職しなきゃね)
でも、少なくとも「使いたい」「人に勧めたい」ぐらいのシロモノでないと、如何なものかと思うわけです。

確かに、実装段階からプロジェクトに入ったとか、そういう「変更不能点」を越えた状態でなら仕方ないでしょう。また、人間誰しも食っていかなきゃならないという現実もあるわけです。

ただ、システムを設計するとか、或いはパッケージを作ってる(受託の一品モノじゃなくって)とか、そういう時には、忘れてはいけない心掛けだと思うわけです。
| tkinugaw | 下らんグチ話 | 21:00 | comments(0) | trackbacks(0) |
msdn blog の翻訳版 - Sara Ford's WebLog
msdn blogは、いろいろな情報が出ていて非常に使えるのですが、英語−というか、翻訳されていないのが欠点でした。

これがこの度翻訳版が出まして。
"Sara Ford's WebLog"の翻訳版「Visual Studio 2008 ワンポイント (Sara Ford's Weblog)」が出ました。

ちょいと頭に引っかかるものがあったので調べてみたら、昔、さるべーじさんが訳してた「S.Fordの"ご存知でしたか?"」の続きなんですね。

しかし、何がすごいって、そのまま連綿と#196まで続いているのがすごい!

いずれにしても、こうやって公式(?)訳を出してくれるというのは、実にありがたい話です。
| tkinugaw | ニュースとか | 10:46 | comments(2) | trackbacks(0) |
【小ネタ】ソースコード中のXMLの文字の色
VS2008 の VB.NET では、こんな書き方ができます。

Dim hoge = <hoge>
      <fuga></fuga>
     </hoge>

引用符が無いところに注目してください。

でもって、VS2008 のフォントと色をカスタマイズしていると、やたらと見難くなる事があります。

「フォントと色」で変更しようとして、XMLとかXAMLとかを変更してみても、効果はありません。
これらは、「VB の XML…」で設定されています。
VBのXML...
| tkinugaw | .NET | 01:30 | comments(0) | trackbacks(0) |
プロジェクトはパートナーシップ…
発注側がいて受注側がいて。あるいは営業部門がいて技術部門がいて。
こういう関係者の間で、「いっしょにがんばりましょう!」ってのが、得てしてプロジェクトの始まりの頃です。
で、だんだんきつくなっていくと、「いっしょに泥にまみれましょう!」と、なんとか前向きに持っていこうとするわけです。
さらにきつくなっても、「仲間じゃないか!」と、ややもすると80年代頃の青春ドラマ風味でなんとか乗り切ろうとします。

で、それで乗り切れれば、それはデスマでは無いわけで。
本当ならば強調しなければいけないヒトビトがいがみ合い、縄張り争いをはじめ…さらには、「それ、あいつらの仕事だろ。なんでそのために残業しなきゃいけないわけ?」という、ある意味ごもっともな文句が出てくるわけです。
そういう文句が上層部に到達するのは非常に高速なので、「以後、このプロジェクトで当部門の人員を残業させることは禁止する。残業させる場合は、その分の残業代を貴部門(あるいは貴社)に請求する。」「ウチのxx、このプロジェクトに専従状態なんだから、人件費全額、そっちで持てよな」などのオフィシャルレターが飛んだりします。
要するに「好きなだけ泥にまみれて赤字垂れ流せよ。オレはいやだけどな。」って言うことですな。

こうなると、もはやパートナーシップではなく奴隷船ですな。
ま、デスマの嵐の中では、こんなもんでしょ。
パートナーシップ:順風の時には二人乗りだが、嵐になると一人乗り。これもそんな程度の船。
(参考:A.ビアス『悪魔の辞典』)
| tkinugaw | 下らんグチ話 | 21:32 | comments(0) | trackbacks(0) |
VB6 ランタイム一覧表
コチラにあるVB6ランタイム一覧表ですが、時々地味に更新されるので実に油断がなりません。

先にWindows Server 2008 対応が追記されましたが、密かにサポート対象の一覧も更新されています。

対象ファイル一覧のグルーピングが(判りやすく)変更され、
・Supported Runtime Files – Shipping in the OS
(サポート対象 - OSの一部として出荷)
・Supported Runtime Files – Extended Files to Distribute with your application
(サポート対象 - アプリケーションとともに配布される拡張ファイル)
・Unsupported Runtime Files
(サポート外)

となっています。
二つ目のヤツは、要するに「コレがないとフツーに動かんだろ」というような、"comdlg32.ocx"とかが入っています。
さらに、
・Unsupported, But Supported and Compatible Updates or Upgrades are Available
(サポート外だけど、ビミョーにサポートされる。)
ってのがあり、"dao350.dll"とか"mdac_typ.exe "が入っています。

で、ローカライズされたバイナリは、相変わらず"Supported not Shipped"という扱いです。


#ってか、和訳してよ…事情はわかるけど…
| tkinugaw | VB6 | 13:40 | comments(0) | trackbacks(0) |
VBの And Or 演算子はショートサーキットしない
何をイマサラな話題ですが。

VBの And, Or演算子は、ショートサーキットをしません。
ショートサーキットとは、簡単に言ってしまうと「条件が判定されたら、以降の判断は行わない」ってことです。
たとえば C系列や Java とかは、デフォルトでこれです。

なので、Cに詳しい人が書いてしまいがちなこんなコード、
[VB.NET]
Dim objHoge as List(Of String) '---Newもなにもしない
IF (objHoge is Nothing = false) And objHoge.Count < 10 THEN
'...(以下略)

ちゃんと聞いているからOKと思うと、悲しく NullReferenceException で終わってしまいます。
二項目の"objHoge.Count"を評価しようとするわけです。

で、VB6までは、これしかなかったので、VB6までで痛い目にあったヒトビトは、よくこういう(冗長に見える)ソースを書いてました。
[VB.NET]
Dim objHoge as List(Of String) '---Newもなにもしない
IF (objHoge is Nothing = false) THEN
 IF objHoge.Count < 10 THEN
  '...(以下略)

と、二段構えで聞いていたわけです。

で、VB.NET から出てきたのが、ショートサーキット対応の And, Or 演算子 - AndAlso と OrElse です。
この長い名前がなんともVBらしいわけなんですが、これを使うと、先ほどのコードは
[VB.NET]
Dim objHoge as List(Of String) '---Newもなにもしない
IF (objHoge is Nothing = false) AndAlso objHoge.Count < 10 THEN
'...(以下略)

となり、エラーにもならず、思ったとおりの動作をしてくれるわけです。

詳しくは、
MSDN:Visual Basic の論理演算子とビット処理演算子
Microsoft サポートオンライン:Visual Basic での "ショートサーキット" 評価の説明
をご覧ください。

Note:非ショートサーキットを利用して条件判断の中で関数を呼び出して処理をさせる(状態変化させる)というワザもありますが、個人的にはあまりオススメできません。可読性とか保守性とかの点で問題ありかと思います。

#なんでイマサラこんなことを書いているかというと、プロジェクト内で派手目に嵌りかけていた人がいたもんで…
| tkinugaw | .NET | 22:28 | comments(0) | trackbacks(0) |
InteropForms ToolKit for VS2008
3/5 付けで、InteropForms TookKit for VS2008 の記事が VBTeam の blog に上がっていました(記事はコチラ)。

要点を斜め読みしてみると…
・VS2005 & 2008 対応よ、side by side よ。
・Channel9 にインタビューがあがってるから、ソレも見てね(コチラ
・わかんないこととか、フィードバックとかあったら、forumに書いてね。
・キーボードを使ってのホスト(.NET)とゲスト(VB6)の行き来に、ちょっとうまくいかない所があるよ。
・コントロール名にダブルバイトを使うとうまくいかないよ(直してるけど、まだFixしてないよ)。

まだイロイロと書いてあるわけなんですが、残念ながら根性を入れて訳すだけの時間がないので、とりあえずご紹介まで。

#最後の章の表題が「VB6 – Live long and prosper…」ってなってるのがニクイですね。
| tkinugaw | .NET | 18:52 | comments(0) | trackbacks(0) |
【コネタ】良いソース、悪いソース
良いソース
5年近く経っても容易に理解でき、修正が出来る。

悪いソース
5日前のソースなのに、もうわからない…

その両極端を見た今日のオシゴトでした。
| tkinugaw | 下らんグチ話 | 21:58 | comments(0) | trackbacks(0) |
サーバー名にアンダースコア"_" がある場合…
IEがクッキーを拒絶するため、セッション情報が保持できないと。
Microsoft サポートオンライン:[PRB] Internet Explorer セキュリティ修正プログラム MS01-055 のインストール後、セッション変数が要求間で保持されない (316112)

かなりイマサラな話なんですが、派手目に嵌ったのでメモ。


#IE5.5, IE6 ってかいてありますが、当然のようにIE7でも発生しました。
| tkinugaw | サーバ設定とか | 19:24 | comments(0) | trackbacks(0) |
1234567
891011121314
15161718192021
22232425262728
2930     
<< June 2008 >>
# RECOMMEND
# RECOMMEND
ピープルウエア 第2版 − ヤル気こそプロジェクト成功の鍵
ピープルウエア 第2版 − ヤル気こそプロジェクト成功の鍵
トム・デマルコ, ティモシー・リスター, 松原 友夫, 山浦 恒央
# RECOMMEND
コンサルタントの秘密―技術アドバイスの人間学
コンサルタントの秘密―技術アドバイスの人間学
G.M.ワインバーグ, 木村 泉, ジェラルド・M・ワインバーグ
# RECOMMEND
プログラミングの心理学―または、ハイテクノロジーの人間学
プログラミングの心理学―または、ハイテクノロジーの人間学
ジェラルド・M.ワインバーグ, 木村 泉, 角田 博保, 久野 靖, 白浜 律雄
# RECOMMEND
ソフトウェア開発のダイナミズム
ソフトウェア開発のダイナミズム
ジム マッカーシー, Jim McCarthy, 三浦 明美, 福崎 俊博
# RECOMMEND
熊とワルツを - リスクを愉しむプロジェクト管理
熊とワルツを - リスクを愉しむプロジェクト管理
トム・デマルコ, ティモシー・リスター, 伊豆原 弓
# RECOMMEND
人月の神話―狼人間を撃つ銀の弾はない
人月の神話―狼人間を撃つ銀の弾はない
Jr.,フレデリック・P. ブルックス, Frederick Phillips,Jr. Brooks, 滝沢 徹, 富沢 昇, 牧野 祐子
# RECOMMEND
Code Complete第2版〈上〉―完全なプログラミングを目指して
Code Complete第2版〈上〉―完全なプログラミングを目指して
スティーブ マコネル, Steve McConnell, クイープ
# RECOMMEND
Code Complete第2版〈下〉―完全なプログラミングを目指して
Code Complete第2版〈下〉―完全なプログラミングを目指して
スティーブ マコネル, Steve McConnell, クイープ
# RECOMMEND
デッドライン―ソフト開発を成功に導く101の法則
デッドライン―ソフト開発を成功に導く101の法則
トム デマルコ, Tom DeMarco, 伊豆原 弓
# RECOMMEND
新訳 ソフトウェアプロジェクトサバイバルガイド
新訳 ソフトウェアプロジェクトサバイバルガイド
スティーブ マコネル, Steve McConnell, アルテアジャパン, 久手堅 憲之
# RECOMMEND
ソフトウエア開発 55の真実と10のウソ
ソフトウエア開発 55の真実と10のウソ
ロバート・L・グラス, 山浦 恒央
# RECOMMEND
ソフトウェア開発201の鉄則
ソフトウェア開発201の鉄則
アラン・M. デービス, Alan M. Davis, 松原 友夫
# RECOMMEND
リファクタリング―プログラムの体質改善テクニック
リファクタリング―プログラムの体質改善テクニック
マーチン ファウラー, Martin Fowler, 児玉 公信, 平澤 章, 友野 晶夫, 梅沢 真史
# RECOMMEND
Joel on Software
Joel on Software
Joel Spolsky, 青木 靖
# RECOMMEND
デスマーチ 第2版 ソフトウエア開発プロジェクトはなぜ混乱するのか
デスマーチ 第2版 ソフトウエア開発プロジェクトはなぜ混乱するのか
エドワード・ヨードン, 松原 友夫, 山浦 恒央
# RECOMMEND
# RECOMMEND
# RECOMMEND
# RECOMMEND
プログラミングMicrosoft ADO.NET
プログラミングMicrosoft ADO.NET
David Sceppa, 日本ユニテック
# RECOMMEND
# RECOMMEND
デスマーチ 第2版 ソフトウエア開発プロジェクトはなぜ混乱するのか
デスマーチ 第2版 ソフトウエア開発プロジェクトはなぜ混乱するのか
エドワード・ヨードン, 松原 友夫, 山浦 恒央
# RECOMMEND
ライト、ついてますか―問題発見の人間学
ライト、ついてますか―問題発見の人間学
ドナルド・C・ゴース, G.M.ワインバーグ, 木村 泉
# RECOMMEND
コンサルタントの道具箱
コンサルタントの道具箱
ジェラルド・M・ワインバーグ, 伊豆原 弓
# SELECTED ENTRIES
' RECENT COMMENTS
# RECENT TRACKBACK
# CATEGORIES
# ARCHIVES
-> LINKS
# COUNTERS
カウンタ設置以来…
今日…
昨日は…


Stats [since 09/09/06]
- PROFILE