2007/06 | 2007/07 | 2007/08
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2007年7月 1日

エアコンに逃避

あまりに湿度が高かって、耐え切れずに昨夜は除湿モードで夜を過ごす。

雨が降るんか、降らんのかはっきりせん天気やったもんで、録り溜めた番組を消化。

その間に扇風機を組み立て、夏対策完了。今年も、できるだけエアコンなしで参ります。

▲top

投稿者 ただ : 19:03 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月 3日

相互運用性フレームワーク

ベンダー独自技術への依存が引き起こす問題---経産省が「相互運用性フレームワーク」を正式公開(ref. ITPro)

出ましたね。前に公開されたときにも書きましたが。
「情報システムに係る相互運用性フレームワーク」の公表について(ref. 経産省)

前の記事にトラバが来たけど、これが問題の記事か。

NHK、どこをどう読み間違えてこんな報道したんやろう。インタビューしたにしても、公表された資料をちゃんと確認していれば誤報道なんかにはならんかったやろうに。いや、MSのソフトは出ていないにしても、別の有名ワープロソフトメーカーの話は出てるんですよ、これ。

『中立性確保のための記述例』として、

機能による記述
日本語文書処理が可能なワードプロセッサソフトウェアで、罫線機能を持つもの。

機能による記述と特記事項
以下のi.~ii.の何れかを提供すること
i. 一太郎9 で作成された文書ファイルの読み込み、編集及び書き出しの機能を持ち、罫線機能を持つ日本語ワードプロセッサソフトウェア。
ii. 一太郎9 で作成された文書ファイルを直接読み込む機能を持たない日本語ワードプロセッサソフトウェアと、一太郎9 で作成された文書を、当該ソフトウェアが読み込めるフォーマットに変換するユーティリ
ティーソフトウェア等、一太郎9 で作成された文書ファイルを当該ソフトウェアに読み込ませるための手段との組合せ。

オープンな標準の参照
OASIS 公開文書形式標準に準拠した文書の読み込み、編集、印刷及び書き出しが可能な日本語ワードプロセッサソフトウェア。

しっかし、WWWブラウザを、

W3C HTML 標準、ECMA スクリプト規格に規定された機能を用いて作成されたWeb コンテンツの表示及びフォームを通じての入力が可能なWeb ブラウザソフトウェア。JPEG規格及びGIF 標準フォーマットの画像データの表示機能を持つこと。通信プロトコルとして、HTTP 標準、HTTPover TLS 標準及びFTP 標準が利用できること。

こんな風に書かれても、具体的に何が使えるのか分からん。IEバージョンいくつ以降、Netscapeバージョンいくつ以降、Safariバージョンいくつ以降、CSS2.0に対応していること、とか書いてくれる方がよっぽど分かりやすいと思うが。要はIEでのみ動く、とかそんなブラウザ依存の技術を使わなければいいだけの話なんやから。

第3回 トラブルシューターは一匹狼 有害な“正論”を盲信するな(ref. ITPro)

  • 何もかも自分でやるのではなく,部下に仕事を任せて育てることが君の仕事だ
  • ホウレンソウ(報告・連絡・相談)を欠かすな

「トラブルシューター」という役回りの人の話ですけどね。上の2点は『有害』指定らしいです。システムの守護神となった人は、自分が最後の砦という意識でトラブルをリカバーしなければならなず、しかも他人に容易く自分の技術を提供することを避ける(ことで自らの地位を保全する)必要があるからと。

この境地に達せるのはいつのことか。

「2011年の市場規模は7520億円」---経産省が“Web 2.0”の調査報告書を公開 (ref. ITPro)

もう1つ、最後に気になる記事。

▲top

投稿者 ただ : 22:55 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係

付ける薬が見当たらない

あるのかもしれないけど、今んところどうしようもないってんで『見当たら』ないにしてみた。

ニセ科学批判者たちの誤り

盲目的に信じているがゆえに、自分の誤りを認めない、いや理解できない画。

どうしたもんやろう…試用期間が終わった新人。問題は一向に快方に向かわず。それどころか、せっかく良くなる方向に向かっていそうな気がしたのに逆戻りの傾向さえも見られる。

研修終わない。なんで塾みたいなことしてんだろ。
そんな疑問が沸々と。

返信するときに人の書いてる内容勝手に書き換えるわ、本筋の内容に触れない返信をしたらそれを『本筋から外そうとしてる』と勝手に解釈するわ、無論本筋に触れる以前の問題点を指摘してることに気が付いてないわ、メールの内容に疑問を感じても真意を問おうとしないで勝手に解釈した上で人の非難をするわ、挙句に、問い質したら自己を正当化する内容だけを話して歩み寄ろうとしない。聞くのに疲れて「そう、わかった」で締めたった。分からんけど。

上長にCC入れといてよかった。明日にでも相談しよう。

前に書いた仮説(Erbe07.06.15)のうち、

  • !自分が何をやっているか理解していない?
  • !応用力がない?
  • !枝葉の話にこだわり、本筋、本質を見抜けない?
  • 自分の意見が他人の意見に流され、保持できていない?
  • 一般論、定説、仮説、私見、客観、主観の区別が付けられない?
  • !簡単な確認、要約をできない/していない?
  • !指摘されている事柄については修正するが、表面的な対応のみ?
  • !PDCAの類をやったことがない?

"!"で始まる項が真であると実証できた。約半月経ったけど、それらについて改善の兆しも見えない。

▲top

投稿者 ただ : 23:45 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係

2007年7月 4日

販管費って税対策らしい

SaaSモデルはなぜ儲からないか?(ref. ITmedia オルタナティブ・ブログ)

結構前の記事やけど。最近いろいろなところが手を出し始めているSaaS(Software as a service)が儲からないビジネスモデルだ、という話があった。

いや、前期の数字ですが、売上高に占める開発費の比率は9%と新興企業にしては低いぐらいです。一方で、販管費の比率は76%にも達しており、粗利の75%を上回ってしまっています。

販管費が76%ってどんなけ広告に使ってるんやろ…知名度が命、という点は否定できないけども…。Googleとかも、ウェブアプリケーション(オフィスソフト)の無料公開してるし、有料サービスで戦える土台って、意外と狭くなってくるんちゃうかなぁなんて思ったりもするのですが、これからこの領域のサービスってのはアイデア勝負になってくるんやろうねぇ。

  • 自分の意見が他人の意見に流され、保持できていない?
  • 一般論、定説、仮説、私見、客観、主観の区別が付けられない?
  • 自分の意見は他人の受け売りで、自己の意見にフィードバックしてない/できない。"私見"をまとめられない。
  • PDCAの類をやったことがない
  • PDCAを意識するどころか、まるっきり無視している。仮説を立てず、Aをする気がない。
  • 結果論的な理由の説明をする。=いいわけばっか
  • 優先順位をつけてない。
  • 寓話を理解しない。=例え話が通用しない
  • 指摘されていることの真意を考えない。(応用力欠如、表面的対応、"A"をしない)

実証した仮説と共に上長にぶっちゃけた内容。話をする前から、理解はして貰えていた様子でよかった(CC入れてて)。

なんか、ここまで書くとなんですが、SEとしての素質が欠落している、としか思えん。特に昨日の文の、

メールの内容に疑問を感じても真意を問おうとしないで勝手に解釈した上で人の非難をするわ、挙句に、問い質したら自己を正当化する内容だけを話して歩み寄ろうとしない。

曖昧な要求を具現化して、文章と図絵にまとめて形にする(そして必要があれば提案する)のが仕事なのに、こんなこと客に向かってされたらと思うと…オソロシヤ。

『裸の王様にはならんようにし』…誰かの言葉を思い出す。

中越典子カワイイ、と思った(ぷっすま見て)。

▲top

投稿者 ただ : 22:43 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係

2007年7月 5日

深海の微生物?

最近あんまりやってなかったけど。
ピロリ菌の祖先が深海の微生物、というのもまたおもしろい発見やね。海底火山の噴火とかで地表に出てきたのが、他の細菌と混ざったんやろうか。

アステラス製薬と京大、免疫分野の新薬を共同開発(ref. NIKKEI)

アステラスもなかなか思い切ったことを。

▲top

投稿者 ただ : 03:41 | トラックバック (0) カテゴリー ; 仕事関係 , News , News

要求仕様書ガイドライン

システムの要求仕様書を適切に作成するためのガイドライン,JUASが公開(ref. ITPro)

ほぉ、これはなかなか。いい試みですね。要求仕様書の構成要素を、

  • (狭義の)要求仕様書
  • 概念データモデル
  • 入出力の定義

の大きく3つに分けています。1つめの「狭義の要求仕様書」をさらに『上位の要求』『下位の要求』の2つに分け、それらが発生する理由をはっきり(明記)させ、そして、その要求を満たす仕様を書く。要求・理由・仕様の3つは、Excelのファイルで管理される形にするようです。キモはこの1つめの狭義の要求仕様書の策定にあるよう。

なかなか良さそう。

要求定義ガイドライン2007(ref. JUAS出版)

要求仕様書のガイドラインをJUASが公開(ref. あるSEのつぶやき)にも、書かれていますね。

▲top

投稿者 ただ : 23:23 | トラックバック (0) カテゴリー ; 仕事関係 , News , News

2007年7月 6日

やってみせ、とは言うものの

「やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ」

という言葉があるので、要約のサンプルを作ることに。ていうか、サンプルを作るには相手の選んだ記事に合わせる必要がある(でないと比較できない)んで、自分で好きな記事を選べない。これは結構キツイ。

パターンを覚えたところで、肝心な解釈と作文ができないんじゃ、あんまりなぁ…とも思うんですが。どんなシステム(制度)でも、ハードウェアをしっかり作ったところで、ソフトウェアがダメなら価値半減以下なんですよ。…てことをね。

不信解消へ与野党は最善の策を競え(7/6)(ref. NIKKEI)

…これを選ぶところがまたチャレンジャーというか、なんで意味段落が分かりやすいのを選ばないのか、そこが疑問。3時間ぐらい段落区切るのに悩んだで、これ(小見出しが意味段落無関係に段落ぶった切るし)。

▲top

投稿者 ただ : 23:10 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係

2007年7月 7日

七夕でしたね

先日行きそびれた浜松旅行の、お土産をもらいに、ボーリング。
指摘されるまで分からんかったが、デフォルトで梅田、現地集合となっていたため、『どこに集まればええん』という質問は有り得なかった。07.07.07なので、ラッキー7とか懐かしいイベントやってるかと思ったけど、そんなのはなかった。

うなぎパイはボロボロに崩れていた。悲しいかな。

同じ辞めるなら、有休が出たあとに有休を消化して辞められるように、計画しましょう。

▲top

投稿者 ただ : 21:37 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ

2007年7月 8日

いつくる逆回転

±0円
今週の信用取引結果。

±0円
今週のFX結果。

☆信用取引の詳細
なし

特になし。

★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/2 - 7/6 取引なし
【通常口座版】
[AUD/USD 258.04(249.00+9.04)USD](保有中)
[AUD/JPY 12,723(11,800+923)USD]
[NZD/USD -516.16(-494.00-22.16)USD]
[NZD/JPY 54,261(49,000+5,261)USD]
[ZAR/JPY 27,001(23,800+3,201)USD]

より円安になってゆく。もうそろそろか? 逆回転。

▲top

投稿者 ただ : 21:48 | トラックバック (0) カテゴリー ; 投資 , 投資

2007年7月 9日

寝た気がしない

最近、起きても全然すっきりしないんよね…疲れが取れない、っていうどころじゃなくて逆に体が痛いというか。

で、ついに今日は午前半休。

上長に、『大丈夫か?』と問われ、『朝が弱いってわけじゃないんですけどね…』と答えると、

『30前に来るって言うけど、結構来るらしいよ』

と。え、それですか!? いや…否定するにも根拠ないしな…

『心しときます』

と意気込みだけは表明しといた。

▲top

投稿者 ただ : 21:28 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月10日

コマの形に技あり

「見せる書類」のテクニック<第4回>(ref. NBOnline)

食事バランスガイド』、CMでよくやってたんで、厚生省にしてはなかなか面白い(なじみやすい)と思ってたけど…やっぱりこんなところにも立役者がいてましたね。やけに米飯を主張してたのが気になってたけど、農水省も絡んでた(というかこっちがメイン?)のか。

See also,
栄養バランスで朝の集中力(ref. YOMIURI Online)
食事バランスガイド(ref. 農水省)
各地の食事バランスガイド(和泉市版)

▲top

投稿者 ただ : 21:37 | トラックバック (0) カテゴリー ; mein Erbe

眠れる戦士

端末はほとんど寝ている?(ref. ITPro)

2時間のうち、ケータイは1秒しか起きていない、という話。

ずっと電波を受信しようとしている状態を保とう(起きていよう)とすると、電池がいくらあっても足りないから、数秒間のうち0.3ミリ秒しか電波を受信しないようにしているのね。ずーっと薄目を開けてイベントが起こるのを待っているより、いつでも飛び起きられるように仮眠状態で眠りを浅くして、一定間隔で起きる方が、エネルギーの効率からいうといいということか。

面白い工夫があってこその文明の利器なんやね。

中嶋 信生, 有田 武美著
日経BP社 (2007.7)
21cm / 269p
ISBN: 978-4-8222-8324-7

▲top

投稿者 ただ : 23:28 | トラックバック (0) カテゴリー ; News , News

新大阪阪急ビルは線路上?

阪急がJR新大阪駅北口に再開発ビル(ref. asahi.com)

Google Mapsによる表示を見ると、阪急新大阪駅の予定地(御堂筋線のホーム上にある土台)が垣間見れたりする。「新大阪阪急ビル」(仮称)は、この、阪急新大阪駅の線路(予定)上にできるような気がするんやけど…??

▲top

投稿者 ただ : 23:55 | トラックバック (0) カテゴリー ; News , News

2007年7月11日

医療情報システムの標準化へ

マイクロソフト、医療情報システムの標準化呼び掛け(ref. NIKKEI)

日経で発見した記事。もちろん、別のところでも。
「医療ITに本腰を入れる」、マイクロソフトが医療向けIT協議会を設立(ref. ITPro)

ついにマイクロソフトが動き出したか…という感じですな。富士通・日立に呼びかけをしてコンソーシアムを作るところまでいっているのがすごい。しかもこのコンソーシアムには済生会熊本病院、杏林大学医学部付属病院、国立成育医療センター、聖路加国際病院、等々結構大きなところが絡んでるところに、組織の大きさが窺える。NTTデータはどう出るんやろうか。
データの互換性がほとんどない現状を、打開できるのはやはり大きな組織でないと難しいと思う。フレームワークを策定して共通の基盤を確立することで、基本的なシステム部分に関しては手間をかけずに作り上げることが可能になる。その上で、サービス(付加価値)により注力したシステムの構築が行いやすくなるであろう、という予想ができるので僕は大賛成。データの匿名化提供までちゃんと仕様の取り決めをやって欲しいところ。もちろん、システム構築費が下がって、診療費の抑制につながるのであればもっといいわけやけど。新聞には、医療費の抑制まで書いてあるけど、MSのプレスにはそこまで触れられてない。

医療現場におけるIT利活用の推進を目指し、協議会を設立、およびIT体験プログラムを展開(ref. Microsoft)

医療情報システムをオープンソースソフトで構築することの研究会みたいなものも(学会主導で?)行われているみたいですが…(PostgreSQLユーザー会が協力しているのが特徴かも)。ちょうど今週末にセミナーが。

第7回医療オープンソースソフトウェア協議会セミナー(ref. 医療オープンソースソフトウェア協議会)

ちなみに、その中

ベンダのSEに聞くと......
「SSL って、何ですか?」
「XSS って、何ですか?」
「SQL いんじぇくしょん って、何ですか?」

ウェブ・セキュリティの「イロハ」も「ホヘト」も知らなさ杉

それは、ケチって小さい企業に発注しようとしてるからでは…? ていうか、みんながそんなんだと思われたくない。

▲top

投稿者 ただ : 23:21 | トラックバック (0) カテゴリー ; 仕事関係 , News , News

2007年7月12日

マッシュアップからSaaSへと

マッシュアップがもたらすシステムの破壊と創造(ref. ITPro)

電子化が進むに連れてシステムは大きくなり、肥大化したシステムの開発に起因する開発の遅れ、テストの遅れ、納期の遅れ、そして不具合の頻発…それらを分散させるべく浸透してきたのが、システムの構造化とコンポーネント化になるわけですが。ようやく、その動きも『相互運用フレームワーク』という形であらかた定着を見たと思えます。1つのシステムをスクラップアンドビルドする世界から、機能分散をさせて、相互にコンポーネント化されたシステムを呼び出すことで、全体のシステムとして見せる、そんな世界がようやく主流になれる時期が来たと言えましょう。

コンポーネントを作ることは、これまで自社で1つのシステムを作る、という意識があったために弱かったと思いますが、今後、こういった機能を分散したシステムを中心に作っていくことが主流になっていくのであれば、上記記事にあるような、マッシュアップがどれだけ迅速にできるか、そしてそのネタを見つけるかというところが重要になってくるのではないでしょうか…。複数の企業が部分部分の機能を担当してシステムを作るとなれば、その接点は自ずとネットワークになるわけで、使われるプロトコルとしては、手軽に使えるTCP/IP、とりわけXMLになるだろうし、WebAPIで使われるSOAPにすれば、パラメーターの仕様さえ決めておけばいいだけ、複雑なプロトコルの策定から考えて余計な経費(予算)を使わなくても済む(これは開発側にとっても余計な開発費を抑えることができる点で便利)。
そして、その機能はSaaSとして提供可能なものであれば、もちろん、公開していくことで生活が便利になる&さらなるマッシュアップ開発者による機能アップも望める。と。

▲top

投稿者 ただ : 01:30 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係

パスピー

広島の運賃ICカード、「パスピー」に(ref. asahi.com)

広島にもフェアライドICカードシステムができるのか。どうせならPiTaPaと共通とか、そんなんにしてくれてるほうが嬉しいんやけど…。読み取り機だけを着脱式にして設置するんやろうかね、市電に付けるのなんてそうでもせんとできんやろうし。

▲top

投稿者 ただ : 23:14 | トラックバック (0) カテゴリー ; News , News

終点が変わってた

また某O大学に行ってきた。

ようやく仕事がひと段落。

そんでもって、いつものように研究室に寄って駄弁る。そして帰宅。実験から遠ざかってしまっているので、もうそんな話できなくなってるけど。
経費削減の煽りでキットや消耗品の購入中止と代替法の利用をするらしいけど、二酸化炭素排出削減と同じで、代替手法を利用した際の経費の計上と作業時間の増加分はちゃんと計算に含まれているのか疑問…。動物扱ったり顕微鏡扱うから、温度と湿度を一定に保つ必要があるんで空調費の削減は厳しいとしても…。

モノレールから帰るのに、駅に行ったら、駅が終点じゃなくなってた。知ってはいたけど。千中までの直通便があるのは良い。

▲top

投稿者 ただ : 23:23 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月13日

Office Open XML⇔OpenDocument

Open XMLとOpenDocumentの双方向変換ツール

MSが世界標準化を進めるOpen XML、OpenOfficeで読めるようになるんやね。こうなると、もうMS製品って結構立ち位置微妙になるんかなぁ…。それともAdobeのPDFのように、ツールとして正統路線を保っていられるのだろうか。

仕様書いらずの新ネットサービス構築法

tracで結構できるもんなんやね。

健康診断でした。

最後の診察で、『体調悪いみたいなんですよー』と訴えてみた。
『大丈夫でしょう』と取り合ってもらえなかった。
金を払わない人の相手はしないということなんでしょうか。
少なくとも、対応からして検査値に異常はないということでしょう。

▲top

投稿者 ただ : 18:47 | トラックバック (0) カテゴリー ; 仕事関係 , News , News

2007年7月14日

台風がもうすぐそこに

2週連続のボーリング。

台風がもうすぐそこに来そうやのに。言うても、大阪は普通に雨風はまだ弱かった…。傘を持っていったけど、結局地下通ったりして、傘をさすことは避けられ、また外を歩くときには風が弱まって痛んで風に煽られることもなく。

▲top

投稿者 ただ : 19:39 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ

2007年7月15日

ACにパフューム。

さっき、NHKのCMでパフュームが…と思って検索してみた。

エコ(NHK×AC)=パフューム(ref. 桃猫温泉三昧)

動画もあった。
公共広告機構「だからはじめよ、エコ。」(ref. CMまとめ)
http://www.youtube.com/watch?v=iXKmUdgcYMY

9月に新曲として出るのか…。いやしかし。Perfumeまだちゃんと活動していたのね。
ACがこの手のCMを増産しだしたのも、同系列のAKB48(ref. みっちぃ氏んとこ)が好評やったからかな。今回のも(?)、NHKらしくも、ACらしくもない。

▲top

投稿者 ただ : 00:57 | トラックバック (0) カテゴリー ; mein Erbe

逆回転のその後

±0円
今週の信用取引結果。

±0円
今週のFX結果。

☆信用取引の詳細
なし

日経平均頭重そうやな…。

★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/9 - 7/13 取引なし
【通常口座版】
[AUD/USD 387.22(377.00+10.22)USD](保有中)
[AUD/JPY 17,126(15,100+2,026)USD]
[NZD/USD -560.46(-534.00-26.46)USD]
[NZD/JPY 49,390(42,800+6,590)USD]
[ZAR/JPY 24,061(19,800+4,261)USD]

逆回転がきたものの、同じ週に戻した。いや、戻した勢いをそのままに、より円安にいきそう…。

▲top

投稿者 ただ : 14:38 | トラックバック (0) カテゴリー ; 投資 , 投資

台風一過に祇園祭

台風が南に逸れ、そのまま過ぎ去って朝から雨も降ってなくてよかった。というのも、祇園祭に行く予定があったもんで…。集合時間が正午から15時に変更になっていたものの、別に変更する必要は結果的にはなかったねぇ…。
まぁ、食器の始末ができたので良しとしまして。

長刀鉾。
祇園祭に行ったメンツがみんな初祇園祭やったんで、手探り的であんまり楽しむ、という雰囲気ではなかったな…。いやでもいい経験にはなった。人ごみもまだマシなようやったし。写真の四条通、奥の信号が全部青(!)。

▲top

投稿者 ただ : 21:36 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ

2007年7月16日

よく揺れた日

よく揺れた日だ。
この日だけで、中越沖、奈良、十勝(京都府沖)…。大雨が降った後だけに怖い上に、そのまま日本が割れていきそうな感覚にも陥りそう(んなわけないのは解っているが)。

若カマキリ、ナイスショット。

▲top

投稿者 ただ : 23:55 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月17日

I'd be Interested in

記録的短時間大雨情報』 がテロップで流れてるところなんて初めて見た。気がする。

I'd be Interested in~(ref. NBOnline)

「~したいのですが」、「~させていただきたいのですが」という意味合いの英語なんだってさ。で、そこにあったコラム、

リスクのある表現 『I want to~』

wantをwantedと過去形にするだけで、相手への気配りが感じられる柔らかい表現に変わる

あぁ…。なる。

~でよろしかったですか?

というのはここから来てるのか?

新人が書いた出張報告、リビジョン7くらいまで行った。うち3回、リニューアル。メジャーバージョンアップ1回とSP2回…。Tさんが、僕が書いたのを見て僕が出張行ってきたみたいや、と…これって一体。

▲top

投稿者 ただ : 23:11 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月18日

人の腸から新種の菌

ネプ理科(関東より1時間遅れ)見てたんやけど、体重が270Kgの目黒君っていう人がいてて…大量に食べてるのに、腸年齢が実年齢より若いらしく、便を採って菌を増やしてみたら、世界で初めて人の腸での新種の菌がDNA検査で見つかったらしい。

この菌の解析とかめちゃ面白そう。無菌マウスに入れてみるらしいけど。ゲノム解析だけでもペーパーになると思うんやけどなぁ。機能解析までして結果が出ればNatureやろうね。(『やらせ』でないことが前提)

▲top

投稿者 ただ : 21:46 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係

PropertyGridを操る(0)

PropertyGridの値欄は、そのままSelectedObjectにオブジェクトを代入すると、デフォルトの設定が使われる。なもんで、コンボボックスを表示したり、ダイアログを表示したり動作を変更したいなぁ…と思ってたんやけど、ようやく思い切ってやってみることに。

最初に、PropertyGrid関連で操作したいと思って検索をすると出てくるところがここ。

説明としては、一番ここが集約されているところなわけやけど、大雑把過ぎてよく分からん。これが取っつき難い原因。次の記事から実際のコードを書いてみることにしたい。

その前に、@ITにある、PropertyGridコントロールTips一覧。DOBON.NETさんとこにも情報は集約されている。

プロパティ名(左側)のテキストが、普通はオブジェクトのプロパティ名そのまま(英語とか)なのを、PropertyDescriptorをいじって日本語にしたりする方法も書いてある。

▲top

投稿者 ただ : 23:21 | トラックバック (0) カテゴリー ; プログラミング単語帳 , リンク , プログラミング

2007年7月19日

PropertyGridを操る(1)

PropertyGrid.SelectedObjectにあるオブジェクトを入れると、そのオブジェクトのPublic Property...で宣言されたプロパティが表示される。

  • PropertyGridに表示させないようにする場合は <Browsable(False)>
  • デザイン時読み込みのみにする場合は <[ReadOnly](True)>
  • resxファイルに保存させないようにするには <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>

とまあ、簡単に分かる属性はさておき。

ここでは、あるクラスSampleClassを、PropertyGridでプロパティを編集するクラスとして、利用する。このSampleClassに、いろいろプロパティを宣言して遊ぶ。

Class SampleClass

End Class

この状態で、 PropertyGrid1.SelectedObject = New SampleClass としても、何も表示されないのは当然。この状態から、プロパティを追加する。

  • デフォルト値以外が表示されるときに太字になるのを何とかしたい。

<DefaultValue(...)> もしくは、ShouldSerialize...メソッドを使うことで既定値を設定すると、既定値のときは太字にならない。『常に太字にならない』ようにするには、DefaultValueAttributeをいちいち操作することよりも、ShouldSerialize...メソッドを使った方が遥かに簡単。

Private _dat As String

Public Property SampleData1() As String
  Get
    Return _dat
  End Get
  Set(ByVal value As String)
    _dat = value
  End Set
End Property

Private Function ShouldSerializeSampleData1() As Boolean
  Return False
End Function

もちろん、シリアライズされなくなるのでシリアライズが必要な場合には適当な条件分岐が必要。

  • カテゴリ名を多言語化したい。

<Category("categoryName")> でカテゴリを指定できるけれども、カテゴリ名を多言語化する必要がある場合、CategoryAttributeから派生させたLocCategoryAttributeといったクラスを宣言し、GetLocalizedString()をオーバーライドする。

Public Class LocCategoryAttribute
  Inherits System.ComponentModel.CategoryAttribute

  Public Sub New(ByVal category As String)
    MyBase.New(category)
  End Sub

  Protected Overrides Function GetLocalizedString(ByVal value As String) As String
    Dim resman As Resources.ResourceManager = New Resources.ResourceManager("MyRes", Me.GetType.Assembly)
    Dim res = resman.GetString(value)
    If IsNothing(res) Then res = MyBase.GetLocalizedString(value)
    Return res
  End Function

End Class

  • 説明を多言語化したい。

プロパティの説明は、<Description("...")> でできると簡単に分かるんやけど、これが多言語化となるとCategoryのようなオーバーライドする関数がないからどうすればいいのか困る。けど、やり方としては同じ。DescriptionAttributeを派生させて、Descriptionプロパティをオーバーライドする。

Public Class LocDescriptionAttribute
  Inherits System.ComponentModel.DescriptionAttribute

  Public Sub New(ByVal description As String)
    MyBase.New(description)
  End Sub

  Public Overrides ReadOnly Property Description() As String
    Get
      ' Localizing process will be written here

      Return MyBase.Description
    End Get
  End Property

End Class

同様の解説が、コンポーネント開発者のための Tips その2(ref. 失われたアークを求めて)にもある。

▲top

投稿者 ただ : 03:14 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング

PropertyGridを操る(2)

PropertyGridをカスタマイズしたい、そんな貴方に送るヒント集。

  • プロパティの値を複数の項目から選択させたい。
  • ファイル/フォルダを選択するダイアログを出したい。
  • コマンドペイン(command pane, @ITではホット・コマンド領域)に、リンク形式のコマンドを表示したい。

今回はこの3つについて。またネタができたら追加するということで。

  • プロパティの値を複数の項目から選択させたい。

一番よくある「やりたいこと」だと思うんですが。この、一番単純そうなカスタマイズでさえも、別に派生クラスを定義してやらなければならないというのが、ハードル高いと思わせる原因だと思われ。めんどくさそう。

<TypeConverter(GetType(MyPropertyValueListConverter))> _
Public Property TextValue() As String
  Get

  End Get
  Set(ByVal Value As String)

  End Set
End Property

<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class MyPropertyValueListConverter
  Inherits StringConverter

  Public Overloads Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
    Dim arr As New ArrayList

    ' you can use "context.Instance" to get the owner object including this property.

    Return New StandardValuesCollection(arr)
  End Function

  Public Overloads Overrides Function GetStandardValuesSupported(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
    Return True
  End Function
End Class

1つのTypeConverterにまとめておけるように、TypeConverterAttributeから派生クラスを作って、その中に必要なConverterを全部入れてしまう、というのもなくはないと思うけど…やっぱりめんどいことには変わりない。
なお、よくサンプルに出ているのはクラスに対してTypeConverterAttributeを指定して、GetStandardValues()メソッド中でcontext.PropertyDescriptorを使って分岐して各プロパティに対応した値の配列を返す方法。そっちの方がTypeConverterをたくさん作らなくていいけど、その分TypeConverterの中身が大きくなる。

  • ファイル/フォルダを選択するダイアログを出したい。

Windows.Forms.Design.FileNameEditorを使うと、ファイルを選択するコモンダイアログを表示し、選択されたファイルを自動的に設定することができるようになる。ただし、Windows.Forms.Design名前空間を呼び出すために、System.Design.dllを参照する必要がある。

Private _filename As String

<EditorAttribute(GetType(System.Windows.Forms.Design.FileNameEditor), GetType(System.Drawing.Design.UITypeEditor))> _
Public Property testFilename() As String
  Get
    Return _filename
  End Get
  Set(ByVal Value As String)
    _filename = Value
  End Set
End Property

FileNameEditorクラスを派生させて、InitializeDialog()メソッドをオーバーライドすることで、ダイアログの設定を変更することも可能。また、ファイル選択ダイアログのほかにも、フォルダを選択するダイアログを表示するFolderNameEditorクラスもある。ちなみに、FolderNameEditorクラスと同等のクラスを作るとすれば、下のようになる(IWindowsFormsEditorServiceのサンプルを改変)。

<Editor(GetType(MyFolderNameEditor), GetType(UITypeEditor))> _
Public Property FolderName() As String
  Get
    Return _folderName
  End Get
  Set(ByVal Value As String)
    _folderName = Value
  End Set
End Property

<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class MyFolderNameEditor
  Inherits UITypeEditor

  Public Overloads Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
    Return UITypeEditorEditStyle.Modal
  End Function

  Public Overloads Overrides Function EditValue(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal provider As System.IServiceProvider, ByVal value As Object) As Object
    Dim edSvc As IWindowsFormsEditorService = CType(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService)
    If edSvc Is Nothing Then
      Return Nothing
    End If

    Dim folderbrowser As New FolderBrowserDialog
    If folderbrowser.ShowDialog() = DialogResult.OK Then
      Return folderbrowser.SelectedPath
    End If

    ' If OK was not pressed, return the original value
    Return value

  End Function
End Class

ちなみに、自分で作ったコードの方が、

Dim folderbrowser As New FolderBrowserDialog
With folderbrowser
  .ShowNewFolderButton = False
  .SelectedPath = CStr(value)
  .Description = "Choose the folder."
End With

ということができる分、自由度が高い。

  • コマンドペイン(command pane, @ITではホット・コマンド領域)に、リンク形式のコマンドを表示したい。

Showing verbs in a PropertyGrid at Run-Time(ref. MBR IT/.NET 247)

System.ComponentModel.Design.DesignerVerbを利用することでできるらしい。

あと、

.NET Framework Visual Designers におけるコード生成のカスタマイズ (ref. MSDN)

というのもあった。Formとかを保存するときにデザイナが作るコードについての解説やけど、意外とPropertyGridとのつながりが深くて、それでいてPropertyGridの普通の解説よりも分かりやすい。

▲top

投稿者 ただ : 23:50 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング

2007年7月20日

雨上がり待ち

夕方くらいから雨が降り始めた。…今日雨降る予報やっけ??

仕方なく、小康状態になるのを待とう、と雨雲レーダー(の予想)を見たら…雨雲が通り過ぎるのは日付が変わるころらしい。

待ったさ、23時半くらいまで。会社で。まぁ、お陰でちょっとだけ仕事が余計に進んだからいいんやけど。にしても雨降り過ぎ。

自分がやるって決めたことを、突如として「やらない」と主張するのはそれなりの理由があってのことだろうと思う。納得ができなくなったから、とかそんなんであっても。納得ができないのなら、その納得ができない理由を聞かれるまで言わないのではなく、自分から言うことが「相談」なのにそれが解っていないと思われる。
というか、「伝わらなかったらなかったことにする」病という病気が判明している時点で、納得がいっていないのかどうかも分からない。

▲top

投稿者 ただ : 23:57 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月21日

2000株の自社株買い

+33,307円
今週の信用取引結果。

±0円
今週のFX結果。

☆信用取引の詳細
CTS(4345) 購入: 164,000円x2 決済: 184,000円 → +40,000円

とりあえず確保ということで。自社株買いがあるからしばらくは18万円以下をウロウロするんやろうなぁ…。

★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/16 - 7/20 取引なし
【通常口座版】
[AUD/USD 480.43(469.00+11.43)USD](保有中)
[AUD/JPY 23,834(20,700+3,134)円]
[NZD/USD -671.87(-641.00-30.87)USD]
[NZD/JPY 58,837(50,900+7,937)円]
[ZAR/JPY 28,325(23,000+5,325)円]

なんか知らん間に円安がすごいことに…。

▲top

投稿者 ただ : 12:00 | トラックバック (0) カテゴリー ; 投資 , 投資

PropertyGridを操る(3)

続報です。

  • (コマンドペイン カスタマイズのための)デザイナ関連の情報
  • 何も入力しないとデフォルト、という処理をさせたい
  • (コマンドペイン カスタマイズのための)デザイナ関連の情報

.NET コンポーネントのためのカスタム デザイナの作成にある、一般的なタスクの単純化(ref. MSDN)が、コマンドペインにコマンド(動詞)を追加する方法を簡単に示している。

Windows フォームのプログラミング カスタム デザイナ(ref. MSDN2)

より詳細な情報はこちらに。ただし、旧MSDNではなく、2.0以降に対応したバージョンになってるけど。1.1でも使えそうな情報あるし。

  • 何も入力しないとデフォルト、という処理をさせたい

文字列として「空("")」を入力したときは数値の0として入力させる、というStringConverterの派生クラスを作って対応可能。

<TypeConverter(GetType(DefaultParamValueConverter))> _
Public Property SomeProperty() As Single
  Get
    Return _value
  End Get
  Set(ByVal Value As Single)
    _value = Value
  End Set
End Property

<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class DefaultParamValueConverter
  Inherits StringConverter

  Public Overloads Overrides Function CanConvertTo( _
    ByVal context As System.ComponentModel.ITypeDescriptorContext, _
    ByVal destinationType As System.Type) As Boolean
    If destinationType Is GetType(String) Then Return True
    Return MyBase.CanConvertTo(context, destinationType)
  End Function

  Public Overloads Overrides Function ConvertTo( _
    ByVal context As System.ComponentModel.ITypeDescriptorContext, _
    ByVal culture As System.Globalization.CultureInfo, _
    ByVal value As Object, _
    ByVal destinationType As System.Type) As Object
    If (destinationType Is GetType(String)) AndAlso (CDbl(value) = 0.0#) Then Return ""
    Return MyBase.ConvertTo(context, culture, value, destinationType)
  End Function

  Public Overloads Overrides Function CanConvertFrom( _
    ByVal context As System.ComponentModel.ITypeDescriptorContext, _
    ByVal sourceType As System.Type) As Boolean
    Return MyBase.CanConvertFrom(context, sourceType)
  End Function

  Public Overloads Overrides Function ConvertFrom( _
    ByVal context As System.ComponentModel.ITypeDescriptorContext, _
    ByVal culture As System.Globalization.CultureInfo, _
    ByVal value As Object) As Object
    Dim tc As TypeConverter = TypeDescriptor.GetConverter(context.PropertyDescriptor.PropertyType)
    If CStr(value) = String.Empty Then Return tc.ConvertTo(0.0#, context.PropertyDescriptor.PropertyType)
    If tc.CanConvertFrom(context, value.GetType) Then
      Return tc.ConvertFrom(context, culture, value)
    End If
    Return MyBase.ConvertFrom(context, culture, value)
  End Function
End Class

オーバーライドしたConvertFrom、ConvertToメソッドで、空文字列に対応したコードを記述する。太字の部分が今回「デフォルト」とした数値0なので、その部分をDefaultValueAttribute属性をcontext.PropertyDescriptorから取得するとかをすれば、デフォルト値なら空文字列を表示し、空文字列が入力されればデフォルト値を設定、とできる。

▲top

投稿者 ただ : 22:58 | トラックバック (1) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング

時をかけてみたい

タイムリープって、使い時が難しい。

ちゃんと、録っておきました。

▲top

投稿者 ただ : 23:59 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月22日

なめさせて、のまなざし

親戚一同(自分はメインの系統ではなく結構外れの方)が集まって、法要の後食事。
食事会(宴会)の場所としては御用達の場所なんやけど、今まで僕は数回しか行ったことがない。

その食事は会席料理やったんやけども、最初に先付から焼物、替り鉢くらいまで(例えば、11品のコースなら先付・前菜・造り・椀物・煮物・焼物・酢物・替り鉢・御飯・赤出し・デザートとかいう流れ)は出してあって、その後、食事(ご飯、汁物、漬物)、水物(デザート)となるんやろうな…と思ってたんやけど、なかなか「次」が出てこない。

何やってるんやろう…とか思ってる間にも時間は過ぎ、目の前の食べ物は消え、皿は回収されていく。皿は回収されるも、次が出てこない。そして、最終的に目の前には紙の敷物だけになった。することない。

で、しばらく何もない状態が続いて、出てきたと思ったらそうめんの「つゆ」。それだけ。本体が出てこない。出てこないまで、またしばらくそのまま。
そうめん本体が出てきたときには、そうめん硬くなってるんですけど。水とかフツー底にちょっとくらい入れとくでしょ。

そんで、食事は食事でまた全然出てこない。ちょっと待っていたら、先にご飯だけ持ってきて「お吸い物はもうすぐ来ますので」と。待てども出てこないんですが。

その間、お茶すら出されなかったので、自分で酌みに行くことに。ポットにお湯が入っていて、急須にお茶パックが入っているので、急須にお湯を入れて、湯呑みにお茶を入れなければならん。急須にお湯を入れてたら、お湯がなくなった。隣でご飯をよそっていた係の人が「お湯なくなりました?もう1つのポットはどうですか?」と、もう1つあったポットを渡すと、そのポットのお湯を急須に入れてくれた。そしたら、ポットを2つ持って、消えてしまった。

…お茶は入れてくれんの!?

もうショックどころか唖然とするしか。
鱧のお吸い物も、なんかおいしいとも思えず。

ただ、メロンは甘かった。

6ヵ月くらいの赤ちゃんがいて、その子に腕時計を近づけると口に入れようとするから間に手を挟んで妨害すると「なめさせて」と言わんばかりの視線を送ってくるのが面白かった。
最後、メロンの汁をなめさせるべく(離乳食段階なのでまだメロンは無理)竹フォークを使ってがんばってみたが、竹フォークを口の奥まで吸い込むのを見てびっくりした。けど、そのメロン汁の甘さが甚く気に入ったのか、完全に虜になってしまいメロンを見るやよだれが出る出る。結局、「硬い方なら食べられんだろ」ということで皮に近い方を口に近づけてやる。そしたら、「パクッ」とかぶりついて吸う吸う。面白い。

後で調べたら、そうめんが替り鉢なのか、と判明。

▲top

投稿者 ただ : 21:50 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ

2007年7月23日

PropertyGridを操る(4)

PropertyGridコントロールをカスタマイズするコーナーも既に4回目。

  • 「入れ子構造」の形で配列の中身を表示・編集できるようにしたい
  • 「入れ子構造」の形で配列の中身を表示・編集できるようにしたい

コレクションや配列のプロパティの場合、PropertyGridではダイアログが現れて、「追加」「変更」「削除」が各配列の要素に行うことができるようになる(ただし、文字列配列の場合はテキスト編集用ダイアログ:文字列リストの編集ダイアログが出る)。
しかし、このダイアログを出さずに"オブジェクト"のプロパティのように「入れ子」の形式(ExpandableObjectConverter)で表示したい。というときのコード。

<TypeConverter(GetType(ObjectsConverter)), _
Editor(GetType(ObjectsEditor), GetType(UITypeEditor))> _
Public Overridable Property Objects() As Object()
  Get
    Dim _obj() As Object = Me.GetSomeObjects()
    If Not IsNothing(_obj) Then _obj = New Object() {}
    Return _obj
  End Get
  Set(ByVal Value As Object())

  End Set
End Property

<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class ObjectsConverter
  Inherits ExpandableObjectConverter

  Public Overloads Overrides Function GetProperties( _
    ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal value As Object, ByVal attributes() As System.Attribute) As System.ComponentModel.PropertyDescriptorCollection
    Select Case context.PropertyDescriptor.Name.ToLower
    Case "objects"
      Dim s() As Object = value
      If IsNothing(s) Then s = New Object() {}
      Dim c As Integer = s.Length
      Dim props(c - 1) As ObjPropertyDescriptor
      For i As Integer = 0 To c - 1
        props(i) = New ObjPropertyDescriptor(s(i).Text, attributes, s(i))
      Next
      Return New PropertyDescriptorCollection(props)
    End Select

    Return MyBase.GetProperties(context, value, attributes)

  End Function

  Public Overloads Overrides Function GetPropertiesSupported(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
    Return True
  End Function

  Public Overloads Overrides Function CanConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal destinationType As System.Type) As Boolean
    If destinationType Is GetType(String) Then Return True
    Return MyBase.CanConvertTo(context, destinationType)
  End Function

  Public Overloads Overrides Function ConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object, ByVal destinationType As System.Type) As Object
    If destinationType Is GetType(String) Then Return ""
    Return MyBase.ConvertTo(context, culture, value, destinationType)
  End Function

  Private Class ObjPropertyDescriptor
    Inherits PropertyDescriptor

    Public Sub New(ByVal name As String, ByVal attrs() As Attribute, Optional ByVal val As Object = Nothing)
      MyBase.New(name, attrs)

      _valProp = val
    End Sub

    Private _valProp As Object

    Public Overrides Function CanResetValue(ByVal component As Object) As Boolean
      Return True
    End Function

    Public Overrides ReadOnly Property ComponentType() As System.Type
      Get
        Return Me.GetType()
      End Get
    End Property

    Public Overrides Function GetValue(ByVal component As Object) As Object
      Return _valProp.SomeProp
    End Function

    Public Overrides ReadOnly Property IsReadOnly() As Boolean
      Get
        Return False
      End Get
    End Property

    Public Overrides ReadOnly Property PropertyType() As System.Type
      Get
        Return GetType(String)
      End Get
    End Property

    Public Overrides Sub ResetValue(ByVal component As Object)
      _valProp.SomeProp = _valProp.DefText
    End Sub

    Public Overrides Sub SetValue(ByVal component As Object, ByVal value As Object)
      _valProp.SomeProp = CStr(value)
      End Sub

    Public Overrides Function ShouldSerializeValue(ByVal component As Object) As Boolean
      Return False
    End Function

  End Class
End Class

<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class ObjectsEditor
  Inherits UITypeEditor

  Public Overloads Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
    Return UITypeEditorEditStyle.None
  End Function
End Class

PropertyDescriptorの派生クラスObjPropertyDescriptorをプロパティ情報の表示窓として利用し、ExpandableObjectConverterから派生させたObjectsConverterで、オーバーライドしたGetProperties()メソッドの戻り値に表示窓であるObjPropertyDescriptorの配列を返している。実際のプロパティ値変更は、ObjPropertyDescriptorが行っている(引数componentが、対象プロパティの配列を示しているからそれを利用してプロパティ値の変更をすればいいんやけども、今回は1つのPropertyDescriptorに1つのオブジェクトを最初に割り当てているので、別に使う必要がない)。
太字の部分(Editor)を書き加えると、入れ子にしている親分の値に{Object}とか出なくなる(親分のところは編集もできない)。

▲top

投稿者 ただ : 21:51 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , プログラミング

2007年7月24日

カードきた

ようやく、個人情報保護士の黄金カードと賞状を渡された。賞状デカっ!!

資格保持者の特権として、このロゴがダウンロード可能らしい。別にどこからでもコピペできるやん、とか思ったりもするけど。名刺とかに印刷するんだとさ。2009年までの期間限定ですが。

▲top

投稿者 ただ : 23:32 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月25日

VB2003Stdでクラスライブラリ 決行

VB.NET2003まだ使ってます。

VB2005で作れるのが.NET Framework 2.0以降用のアセンブリだけなので、1.1を生かすためにはやはり2003を使うしかないのでして…。Erbe2006.02.02で、VB.NET2003 Standardでクラスライブラリを(強引に)作る方法を見つけたということを書きましたが、それをようやくやってみた。

変更前のプロジェクトのプロパティを見ると、出力の種類が「Windows アプリケーション」、出力名が~.exeとなっている。

vbprojファイルを開き、OutputType = "WinExe"(ハイライト部分)→"Library"に変更する。

変更後のプロジェクトのプロパティを見ると、出力の種類が「」、出力名が~.dllとなっている。
ちなみに、VS上でプロジェクトが開いていても、この変更は可能。それから上のvbprojファイルで、StartupObject = ""とすると、スタートアップの設定が「(なし)」になる。

これで外部から参照可能なdllファイルを作れる…!!

▲top

投稿者 ただ : 20:54 | トラックバック (0) カテゴリー ; さんぷるライブラリー , mein Erbe

2007年7月26日

仕事上の思想を持たせる

仕事メモ。

(1)部下を便利な作業者と思ってはいけない。あくまで自分で考えて,自分の責任で部下に任せなくてはならない。
(2)短い期間でも放っておいてはいけない。報告,相談,連絡を密にしなくてはならない。
(3)部下とのルールを決めなくてはならない。
(4)指導の際には何が悪いのか,良いのかを納得させる説明をしなくてはならない。
(5)仕事上の思想を持たせるようにしなくてはならない。

(5)仕事上の思想を持たせるようにしなくてはならない。
僕はこれが一番大事だと思う。つまり,大きな思想をもって仕事を考えてほしいということだよ。自立した仕事をするということ。ミッションを正しく捉える力を身に付けるように指導しなくてはならない。

一番大事なのは下線部なのは分かるが、実際どうすんねん、って話なんよね。問題は。

よくある指摘項目が分類されてて使いやすいかも(指摘する側として)。

出張に行った。

タクシーの運ちゃんに逆切れされた。ていうか、伝えた行き先が「わからない」って言うのはまだしも「行かれたことないんですか!?」って、そんなこと聞くなよ。「『○○化学』なら分かるんですがね…ちょっとそこで聞いてみますわ」と聞きに行って帰ってきたら「やっぱり○○化学ですわ」、と出発して「どこだったんですか?」と質問すると「は?」とか言われるし。

到着すると、確かに敷地は○○化学やった。プレートがたくさんあって、そのうちの1枚に目的地の文字が。いやだからって、逆切れはしたらあかんわ。

▲top

投稿者 ただ : 22:26 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月27日

黒龍波は疲れる

出張のときも、上長と新人の問題点についてどうするか…と。一貫して、「自分で考えさせたい」とは言っているものの、これまで、それが一向に快方へ向かわない。

認知的不協和を引き起こさせればよい、ということは十分分かっている。ただ、本人は"そこから考えない"んよ。不協和を解消する矛先を自分に向けようとはしない。

  • 他人の意見を自己の意見にフィードバックしてない/できない。"私見"をまとめられない。
  • PDCAを意識するどころか、まるっきり無視している。仮説を立てず、Aをする気がない。
  • 結果論的な理由の説明をする。
  • 優先順位をつけてない。

これらから、「3次元の世界で生きている」と考えた。4次元世界(時間軸)がないので、何かを聞いても「今」の説明しかされない。そして、自分のこと(認識・意思)をどう思っているのかを言わない。それが、根本的なところを指摘したくてもできなかった要因にもなって、なかなか快方に向かわない原因になっていたと思った。

とりあえず、「行動の一貫性」には非常に敏感なようで、この手の指摘をすると表情が固まるのでここしか突破口はなさそうだと思った。
(これがなかったら、行動の一貫性を植え付けるところからしないとあかんかったんやけど。…ただ行動の一貫性はあまり強要しすぎると危険。
金儲けするつもりがどんどんお金を使ってしまう仕組み(ref. 副業の金儲けノウハウ教えます))

まだ現実問題としてスタートラインから進んでいない(その原因が「結果」にあるのではなく「プロセス(根本)」にある)ということを、ミーティングにて分かってもらおうとして…。本人が「目的に向かって進んでいる」と主張しているところを「進んでいると(進もうと)思っているだけ」ということを認識させた。ようやく。

どつけば済む問題を、そうしないでやるっていうのは非常に頭が痛い。
この手の話は過去数回あったけど…学生のときと違って自分の権限という縛りもあるからより難しい。頭疲れる。いつもやけど。でも、例によって問題が解決したわけじゃない。問題を改善するためのスタートラインに立ったところ、これから変化を見ないといけないうえに課題も再考せねばならん。

▲top

投稿者 ただ : 22:41 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月28日

また巻き込まれた

±0円
今週の信用取引結果。

-22,864円
-176.45USD
今週のFX結果。

☆信用取引の詳細
なし

★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/23 - 7/27 取引なし
【通常口座版】
AUD/USD 293.41USD(281.00+12.41)
NZD/USD -469.86USD(-435.00-34.86)
AUD/JPY -22,111円(-26,200+4,089)
NZD/JPY 10,810円(1,700+9,110)
ZAR/JPY -11,563円(-17,800+6,237)
[ZAR/JPY -1,624(-1,700+76)円](保有中)

なんと、ここにきてサブプライムが響いてくるとは…。ここ2日で、十数万も評価額が下がって、この様ですよ。日経平均も恐ろしいことになるし…。これで3月時点に逆戻り。

▲top

投稿者 ただ : 19:47 | トラックバック (0) カテゴリー ; 投資 , 投資

2007年7月29日

日曜、参院選。

日曜、参院選。
票を入れる先がない。

ていうわけで、部屋から出なかった…。ひっきーと言うよりかは、暑くて出る気にならん。テレビも夜は面白いのないし。

自民が勝とうと、民主が勝とうと、自民優勢なのは変わらんしな…とY氏と話をしていたのは今月前半。今は圧倒的に自民不利ですな。ていうか、自民が勝とうと、民主が勝とうと、株式市場にはいい要素にならん気が。

こんな日は、そこまで言って委員会を観てるのがいい。今日は田嶋さんがえらくフィーチャーされてた。

▲top

投稿者 ただ : 20:31 | トラックバック (0) カテゴリー ; mein Erbe

2007年7月30日

青森のりんごジュース

お昼も過ぎて、夕方になろう頃。ドアから入ってきたのは与四郎さん(仮名)46歳。

青森から来たんです。

思わず笑ってしまった。

いやぁ、この建物回ったけど、笑ってくれたのはあなたが初めてだよ。

そう言って、おもむろにりんごジュースのビラを渡し、説明を始めた。

もうすぐねぶた祭も始まるし、1ケースでも、100ケースでも。

いやぁ~。申し訳ないです、結構です。

与四郎さん(仮名)はビラを持って去っていった。

実際応対したのはTさんで、僕は顔も姿も見えなかったのでどんな人かは知らないですよ。

▲top

投稿者 ただ : 20:16 | トラックバック (0) カテゴリー ; mein Erbe

PropertyGridを操る(5)

先日、コマンドペインに動詞(リンク)を表示する方法についていくつかリンクを張りましたが、より詳細な情報が出てきましたので、書いておきます。

  • 実行時、コマンドペインに動詞を表示したい。
  • 実行時、コマンドペインに動詞を表示したい。

前に紹介していた方法は、<Designer()>属性を使うデザイン時の拡張についてでした。Designer属性を使うと、確かにデザイン時にはプロパティウィンドウのコマンドペインにコマンドが表示されますが、実行時にPropertyGrid.SelectedObjectに代入した場合、表示されません。それは、TabControlオブジェクト等でも同じです。これを、実行時に表示するには、原理的には同じですが、別の方法を利用しなければなりません。

ようやくたどり着いたのは、このページ。英語ですが。このページで紹介している内容とサンプルファイルに、やりたそうなことは一通り書いてあります。

しかし、

『うそをつかせる』とはまたすごい表現やと思うけど…ICustomTypeDescriptorを実装すると、自分でPropertyGridに表示するプロパティを創作できるってことです。
ここに書いてあるとおり、この方が行った実装方法はICustomTypeDescriptorで完全にプロパティまでも自分で実装しています。ので、動詞を表示することだけをするには分離が必要になります。

調べた結果必要なのは、

  • IComponent
  • ISite
  • IMenuCommandService
  • IExtenderListService

の4つのインターフェースを実装した4つのクラスです。IComponentを実装するクラスが、PropertyGridに動詞を表示するクラスになります。

Public MustInherit Class VerbsComponent
  Implements IVerbsComponent

  <System.ComponentModel.Browsable(False)> _
  Public MustOverride ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection Implements IVerbsComponent.Verbs

  Private _siteObj As System.ComponentModel.ISite = New VerbsSite(Me, Nothing, New VerbsMenuCommandService(Me))

  Public Event Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Implements System.ComponentModel.IComponent.Disposed

  <System.ComponentModel.Browsable(False)> _
  Public Property Site() As System.ComponentModel.ISite Implements System.ComponentModel.IComponent.Site
    Get
      Return _siteObj
    End Get
    Set(ByVal value As System.ComponentModel.ISite)
      _siteObj = value
    End Set
  End Property

  Public Sub Dispose() Implements IDisposable.Dispose
    RaiseEvent Me.Disposed(Me, EventArgs.Empty)
  End Sub
End Class

このクラスはMustInheritとし、IVerbsComponentを実装しています。派生クラスでVerbsプロパティを実装する方式(MustOverride)にしています。派生先のクラスでDesignerVerbを生成して、クリックされたときの処理も派生先で書くようにします。以下がその実装例です。PropertyGrid1.SelectedObject = New SampleClassとすると、動詞がPropertyGridに表示されると思います。

Public Class SampleClass
  Inherits VerbsComponent

  Private _dat As String

  Public Property SampleData() As String
    Get
      Return _dat
    End Get
    Set(ByVal value As String)
      _dat = value
    End Set
  End Property

  Private Sub SampleEvent(ByVal sender As Object, ByVal e As EventArgs)
    MessageBox.Show("Click!!")

  End Sub

  Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
    Get
      Dim arr As New System.ComponentModel.Design.DesignerVerbCollection
      arr.Add(New System.ComponentModel.Design.DesignerVerb("sample1", AddressOf SampleEvent))
      arr.Add(New System.ComponentModel.Design.DesignerVerb("sample2", AddressOf SampleEvent))
      Return arr

    End Get
  End Property
End Class

残りのコードは最後に。以下の記事も参考になります。
Third (and last) EntLib hack, gathering requirements(ref. ^(?:[^$]*)$ -- Matches everything, captures nothing)

Public Interface IVerbsComponent
  Inherits System.ComponentModel.IComponent

  ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection

End Interface

Public Class VerbsExtenderService
  Implements System.ComponentModel.Design.IExtenderProviderService, System.ComponentModel.Design.IExtenderListService

  Private _extenderProviders As New ArrayList

  Public Function GetExtenderProviders() As System.ComponentModel.IExtenderProvider() Implements System.ComponentModel.Design.IExtenderListService.GetExtenderProviders
    Return _extenderProviders.ToArray(GetType(System.ComponentModel.IExtenderProvider))
  End Function

  Public Sub AddExtenderProvider(ByVal provider As System.ComponentModel.IExtenderProvider) Implements System.ComponentModel.Design.IExtenderProviderService.AddExtenderProvider
    _extenderProviders.Add(provider)
  End Sub

  Public Sub RemoveExtenderProvider(ByVal provider As System.ComponentModel.IExtenderProvider) Implements System.ComponentModel.Design.IExtenderProviderService.RemoveExtenderProvider
    _extenderProviders.Remove(provider)
  End Sub
End Class

Public Class VerbsSite
  Implements System.ComponentModel.ISite

  Private _component As IVerbsComponent
  Private _container As System.ComponentModel.IContainer
  Private _menuCommandService As VerbsMenuCommandService
  Private _ve As New VerbsExtenderService

  Public Sub New(ByVal component As IVerbsComponent, ByVal container As System.ComponentModel.IContainer, ByVal menuCommandService As VerbsMenuCommandService)
    _component = component
    _container = container
    _menuCommandService = menuCommandService

  End Sub

  Public ReadOnly Property Component() As System.ComponentModel.IComponent Implements System.ComponentModel.ISite.Component
    Get
      Return _component
    End Get
  End Property

  Public ReadOnly Property Container() As System.ComponentModel.IContainer Implements System.ComponentModel.ISite.Container
    Get
      Return _container
    End Get
  End Property

  Public ReadOnly Property DesignMode() As Boolean Implements System.ComponentModel.ISite.DesignMode
    Get
      Return False
    End Get
  End Property

  Public Property Name() As String Implements System.ComponentModel.ISite.Name
    Get
      Return Me.GetType().Name
    End Get
    Set(ByVal value As String)

    End Set
  End Property

  Public Function GetService(ByVal serviceType As System.Type) As Object Implements System.IServiceProvider.GetService
    If Not IsNothing(serviceType) Then
      If serviceType Is GetType(System.ComponentModel.Design.IMenuCommandService) Then
        Return _menuCommandService
      ElseIf serviceType Is GetType(System.ComponentModel.Design.IExtenderListService) Then
        Return _ve
      End If
    End If
    Return Nothing
  End Function
End Class

Public Class VerbsMenuCommandService
  Implements System.ComponentModel.Design.IMenuCommandService

  Private _component As IVerbsComponent

  Public Sub New(ByVal component As IVerbsComponent)
    _component = component
  End Sub

  Public Sub AddCommand(ByVal command As System.ComponentModel.Design.MenuCommand) Implements System.ComponentModel.Design.IMenuCommandService.AddCommand

  End Sub

  Public Sub AddVerb(ByVal verb As System.ComponentModel.Design.DesignerVerb) Implements System.ComponentModel.Design.IMenuCommandService.AddVerb

  End Sub

  Public Function FindCommand(ByVal commandID As System.ComponentModel.Design.CommandID) As System.ComponentModel.Design.MenuCommand Implements System.ComponentModel.Design.IMenuCommandService.FindCommand

  End Function

  Public Function GlobalInvoke(ByVal commandID As System.ComponentModel.Design.CommandID) As Boolean Implements System.ComponentModel.Design.IMenuCommandService.GlobalInvoke
    Return True
  End Function

  Public Sub RemoveCommand(ByVal command As System.ComponentModel.Design.MenuCommand) Implements System.ComponentModel.Design.IMenuCommandService.RemoveCommand

  End Sub

  Public Sub RemoveVerb(ByVal verb As System.ComponentModel.Design.DesignerVerb) Implements System.ComponentModel.Design.IMenuCommandService.RemoveVerb

  End Sub

  Public Sub ShowContextMenu(ByVal menuID As System.ComponentModel.Design.CommandID, ByVal x As Integer, ByVal y As Integer) Implements System.ComponentModel.Design.IMenuCommandService.ShowContextMenu

  End Sub

  Public ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection Implements System.ComponentModel.Design.IMenuCommandService.Verbs
    Get
      Return _component.Verbs
    End Get
  End Property
End Class

▲top

投稿者 ただ : 20:25 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング

2007年7月31日

せっかく早く帰ったのに

珍しく、9時前に出社。なんか、早く起きれたので。

フツーに9時間会社に居たら18時に帰れる! とか思いながら仕事できた。新人の世話なんか知らん。そしたら…「レッドカーペット予約するの忘れた!」とか昼休みに言い出すし。

牛と引き換えに、レドカの録画をすることに。18時に会社出て、家に帰って録画、かい。

結局レドカはみる気になれんくて、会社でどうしてもできんかったことを家で再現してた。…なんてこった。

▲top

投稿者 ただ : 21:58 | トラックバック (0) カテゴリー ; mein Erbe

2007/06 | 2007/07 | 2007/08