カテゴリー「-プログラミング ( 2009.01-03 )」の40件の記事

2009年3月26日 (木)

[.NET] Visual Studio International Pack ~ 「等幅割り付け」 機能が欲しい

# フィードバックのことを書いていて思い出した。

MSDN フォーラムに 『Japanese Text Alignment Library に 「等幅割り付け」 機能が欲しい』 という要望を、 一ヶ月以上も前に書いていたのだった。

ようするに、 「全角は、 きっかり半角 2文字分のサイズで表示・印刷したいよ~」 ってお願いです。 でも、 誰からも ( MSKK のチームからも、 他のユーザーからも ) 反応が無い… orz

もう、 みんな困らなくなったのかなぁ? f(^^;

| | コメント (0) | トラックバック (0)

[.NET] (続) フィードバック - 日付を "H21/1/9" のような和暦で出力できるようにしてほしい

DateTime.ToString() などのフォーマットとして、 "H21/1/9" みたいに元号の頭文字もサポートしてよ、 と MS Connect でお願いしていました

その回答が今日ありました。

this is a good idea. However, this feature request requires changing the surface area which is late for this stage of the upcoming release.

(意訳) 「それは良いアイデアだけど、 こんどのリリース ( たぶん .NET Framework 4.0 のこと ) には間に合わないよ」
…まぁ、 予想通り。
と思ったら、 それに続いてもう一文。

However, the team decided to move it to consider this feature for the next releases.

(意訳) 「でも、 次のリリース ( .NET Framework 5 のこと ? ) に向けてまじめに検討することにしたから。」
…あ、 意外とまじめに取り上げてくれたみたい。 期待してもいいのかな。 f(^^;

| | コメント (0) | トラックバック (0)

2009年3月19日 (木)

[.NET] リフレクションを使用してジェネリック型をインスタンス化する

Generic は便利なので、 さんざん使って来たわけで。 そのツケがとーとー回って来て、 名前から動的に Generic のインスタンスを生成するはめに。
# できなかったら、 case 文の嵐w

MSDN ライブラリで見つかりました。
方法 : リフレクションを使用してジェネリック型をチェックおよびインスタンス化する

ようするに、 MakeGenericType() を使え、 と φ(..;

Type genType = typeof(Hoge<>);
Type[] typeArgs = { typeof(Moge) };
Type typeHogeMoge = genType.MakeGenericType(typeArgs);
object o = Activator.CreateInstance(typeHogeMoge);

// これで Hoge<Moge> なインスタンスが出来上がり !


# ところで上のリンク先の url、 (VS.95) だそーですよ。 ってゆーか銀光のページだった f(^^;

 

…って、 あり !?
出来た o のメソッドを、 Invoke() してみたら。
IEnumerable<Moge> を返すメソッドのはずなのに、 なにやらヘンな型で返ってきてるよーな…

Moge の共通インターフェース IMoge を型引数にした IEnumerable<IMoge> にキャストしたいのに、 できんではないですか~ orz

あ。
(o as IEnumerable).Cast<IMoge>() で出来た風味 f(^^;

| | コメント (0) | トラックバック (0)

2009年3月17日 (火)

[.NET] KB: Visual Studio 2008 で単体テストを行った場合、予期せぬタイミングで Dispose メソッドや Finalize メソッドが呼ばれる

ちょ、マテ。
なんだそれは!? とりあえずメモ。

KB968894:
単体テスト対象のクラスに Dispose メソッドや Finalize メソッドの実装を行い、単体テストを行った場合、該当テスト対象のクラスの使用中などに予期せぬタイミングでこれらのメソッドが呼ばれる可能性があります。

| | コメント (0) | トラックバック (0)

Re: オブジェクト指向が形容詞だとかどうとか

[わんくま同盟 名古屋勉強会] 第5回 (2008/12/06) の資料 に、 トラックバックを頂きました。 ありがとうございます。

予定は未定Blog版 より

2009-03-14
■[etc]オブジェクト指向が形容詞だとかどうとか

なんかオブジェクト指向は形容詞だから単体で使うのは間違い、って意見を見かけたのだけど、どうでもいいよそんなこと。

そうなんですよ、 名詞か形容詞かなんて、 じつはどうでもいい。

肝心なことは、 主体は何かということ。 「モノを志向しているのは何か」 ということ。 「何にオブジェクトを志向させるのか」 ということ。
まず、 主体が何であるのか、 そこを明らかにしてから議論しましょうよ、 と。

主体が何であるかを明確にしないまま 「オブジェクト指向とは?」 を議論してみても、 収斂するわけがないでしょう。
へたをすると、 「全宇宙を統べるオブジェクト指向理論」 なんてものがあるかのように話し出す人までいたりしますw
# いや、 「全宇宙を統べるオブジェクト指向理論」 がホントはあるのかもしれません。 しかし、 それは今はまだ認められていないのですから、 ゼロからその理論を説明してくれなきゃ分かりません f(^^;

で、 私は、 その主体とはプログラム、 ソフトウェアであると解釈してるわけです。 ここから先は、 いやそうじゃないだろ、 という話は大いにあると思ってます。

続きを読む "Re: オブジェクト指向が形容詞だとかどうとか"

| | コメント (0) | トラックバック (1)

2009年3月10日 (火)

[わんくま同盟 名古屋勉強会] 第7回 (4/11) ~ 見積りの話をしてみよう

わんくま同盟4月の 11日 (土) に、 「わんくま同盟 名古屋勉強会 第7回」 が開催されます。 詳しい情報は、 こちら。 → http://www.wankuma.com/seminar/20090411nagoya07/

今回は、 久しぶりに 50分しゃべらせてもらうことになりました。
お題は、「計測と見積り」 ってことで。 ソフトウェア開発の見積りについて、 解説する予定です ( …上手く解説できるといいなぁ f(^^; )

じつは私、 いまだに見積りは苦手なんです。 なんといっても、 めんどくさいし。 ちゃんと数字を出してみても、 「政治」 でバッサリ変えられちゃうし…
まぁ、 それでも、 なんとか見積りの考え方みたいなことは、 話せるかな、 と。

| | コメント (0) | トラックバック (1)

2009年3月 4日 (水)

[WPF] そーいや縦書きって、 どーなった?

2007年のことだったっけか、 WPF で縦書きがサポートされるような話があったよーな…

MSDN ライブラリ
Windows Presentation Foundation の文字体裁
更新 : 2007 年 11 月
フォントのサポートの強化

> フォント名とは関係なく処理される書き込み方向 (横書きまたは縦書き)。

当時、 縦書きを頑張ってた人のブログを見ると、 現状でなんとかするのは、 ほんと大変そうです。
⇒ たとえば、 さすらいの .NET プログラマー

というわけで、 MS Connect に上がってるフィードバックをご紹介。
⇒ Feedback ID: 420434 「WPF/XPS で縦書きをサポートしてほしい

| | コメント (1) | トラックバック (0)

2009年2月26日 (木)

[Small BASIC] BASIC っていうからには、 イミディエイト・ウィンドウが欲しいよね

つまり、 "? 10 + 20" って打って Enter すると、 次の行に "30" って表示してくれたり。
マルチステートメントを使って 1行で For 文を書いて Enter したら、 そのループを実行してくれたり。
グラフィック系の命令も、 そのウィンドウに書いてくれたり。

…ってことで、 でっちあげた想像図。 f(^^;
20090226_smallbasic_idea01

…と、 Small Basic の MSDN フォーラムにも、 英語モドキで書いてみた

| | コメント (0) | トラックバック (0)

2009年2月25日 (水)

Re: どうやってプログラムを学ぶ?

ネタ元:
がるの健忘録: [親方][初心者]…どうやって学んだんだろう?
中の技術日誌ブログ: どうやってプログラムを学ぶ?

ん~… どうだったっけ?  f(^^;
大学の授業でやった FORTRAN と、 大学生協に展示してあったマイコン ( 当時はあまりパソコンとは呼んでなかった ) と、 どっちを先に触ったんだったか、 もはや分かりません。
マイコンのほうだと、
? 1 + 2
だったように思います。

ネタ元にある
10 FOR I=0 TO 100 STEP 10
20 LINE (0,I)-(I,100)
30 NEXT

みたいなことは、 4年生のとき研究室に FM-8 が入ってからだったかなぁ。

で、 いまだと、 そういうお手軽なプログラミング環境って、 ほとんど見当たらないような…
日本語化されれば、 Small Basic がいい感じになると思うんだけどなぁ。

てなわけで、 Small Basic で LINE 文f(^^;

FOR I=0 TO 300 STEP 10
  GraphicsWindow.DrawLine(0,I, I,300)
EndFor

これで全部です。 Small Basic を立ち上げたら、 コードウィンドウに上の 3行を書いて、 F5 で実行するだけ。 GUI の窓を作って初期化するところは、 Small Basic が良きに計らってくれます。
20090225_smallbasic01
※ 合成画像です。 実際には、 実行中はコードウィンドウは見えません。

ん~、 やぱし行番号が無いのが、 寂しいか。 f(^^;
Next じゃなくて、 EndFor ってのも、 なんか変だしw

ともあれ。 こうしてパラメータを変えたり、 色をいじってみたりして、 プログラミングというか 「コンピューターを操ること」 を覚えてきたように思います。

FOR I=0 TO 300 STEP 10
  GraphicsWindow.PenWidth = 5
  GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
  GraphicsWindow.DrawLine(0,I, I*2,300)
EndFor

20090225_smallbasic02

| | コメント (2) | トラックバック (0)

2009年2月24日 (火)

Oslo ~ データ駆動型フレームワーク

MDD ( モデル駆動開発 ) の仕掛けかと思ってたんですが、 どうやらもっと絞り込んだモノみたいです。

MSDN マガジン 2009年 2月号より。

"Oslo" プラットフォームでメタデータ ベースのアプリケーションを構築する

メタデータ定義用の共通ツール セットを提供し、 通常のアプリケーション データと同じ機能セットが使用できる場所にメタデータを格納できるように、 データ駆動型アプリケーションの構築プラットフォームである "Oslo" を開発中です。

そして、 同じページのコラムには、

それが "Oslo" の本質的な特徴である、 SQL Server の機能を使用してアプリケーションのメタデータを保存するということです。
( …中略… )
"Oslo" は、 簡単に言えば、 アプリケーションのメタデータを形式化して生成し、 アプリケーションのデータに使用するのと同じ機能とツールを提供する技術です。

…などという記述も。
まぁ、 "SQL Server" というのは現時点での話だと思いたいですけど。

| | コメント (0) | トラックバック (0)

[NEWS] 車載ソフト用プラットフォーム AUTOSAR、 日本車も採用へ

今朝の日経新聞より。

車制御ソフト、車・電機73社が共通化 トヨタがまず採用

 トヨタ自動車や日立製作所など自動車・電機大手73社は エンジンやブレーキなど車を電子制御するためのソフトを共通化する。 年内に標準規格をまとめ、 2010年にもまずトヨタが採用して発売する見通し。 ハイブリッド車など環境車の普及に伴い、 車の電子化技術の重要性が高まり、 開発負担も膨らんでいる。 世界的に販売が低迷するなか、 日本の企業連合は欧州の自動車メーカーとも連携、  開発費を削減して世界で需要の高まる低価格車の投入につなげる。

 日産自動車、ホンダなど自動車各社やデンソーなどの自動車部品大手、 東芝、 パナソニックなど合計73社が規格作りに参加する。 このほか約50社が採用を計画している。 (07:00)

20090224_autosar01a AUTOSAR ですね。
今は、 バージョン 2.2 くらいのはず。 「自動車業界に見る 組み込みソフト開発効率化の取り組み」 (兼平靖夫) あたりが詳しそう。

ところで。 2007年初頭に出た研究レポート*1 を見ると、 クルマ 1台に載っているプログラムのソースコードは、 いまや 1,000万行のオーダーだと推定されます。
車載用は、 業務用アプリケーションに比べると、 部分的にリアルタイム性が求められる分散マルチタスクである上に、 格段に厳しい安全性が求められますから、 1,000万行オーダーというのは、 業務アプリの 1億行くらいのイメージで捉えないといけないのかもしれませんね。

(*1) 2007年 1月 『立命館経営学』 第45巻 第5号 「車載ソフトウェアの標準化とAUTOSARの動向」 ( 徳田昭雄, 田村太一 )

| | コメント (0) | トラックバック (0)

2009年2月20日 (金)

[.NET] WPF アプリケーションの Model-View-ViewModel

Model-View-ViewModel …よくもそんな舌を噛みそうな名前にしてくれたな! (w

MSDN マガジン 2009年 2月号より

Model-View-ViewModel デザイン パターンによる WPF アプリケーション

ViewModel はビューへの参照を必要としません。 ビューは ViewModel のプロパティにバインドされ、 ViewModel はモデル オブジェクトに含まれているデータと、 ビューに固有の他の状態を公開します。

ようするに、 「ビュー」 は WPF や Silverlight の画面、 UI です。
ViewModel は、 画面から UI を取っ払った抽象、 みたいなもんです。
つまり、 ViewModel はそのままに、 UI を WPF から Silverlight に交換できる ( 上手くいけば f(^^; )、 というわけです。

ただし、 ViewModel が表しているのは、 あくまでも画面です。 その点で、 問題領域 ( ビジネスルール ) を表している Model とは別物だ、 というわけです。

大事なこと
・ 画面 ( View ) は、 ViewModel とだけ相互作用します。 画面のイベントも、 いったん ViewModel で受けます。
・ ビジネスロジック ( Model ) は、 ViewModel と相互作用します。 画面 ( View ) と直接相互作用してはいけません。
・ ViewModel は、 画面 ( View ) に固有なモノ ( WPF なら、 PresentationFramework.dll に含まれている SystemColors クラスなど ) を含んではいけません。


( 2009/02/24 追記 )
かずきさんが、 「 [WPF] [C#] Model View ViewModel パターンでハローワールド」 という記事を書いてくださってます。

| | コメント (0) | トラックバック (0)

2009年2月17日 (火)

MSF 改め、 「VSTS プロセス」

昨春のネタなんだけど、 すっかり書くの忘れてた f(^^;

Willy-Peter Schaub's Cave of Chamomile Simplicity より

Rosario April 2008 CTP Investigation (Part 2) - Project Management
Published Wednesday, May 28, 2008 1:48 PM

MSF Agile is now known as VSTS Process for Agile Software Development v1.0

Rosario ( Visual Studio 2010 ) からは、 MSF を "Visual Studio Team System Process" ( VSTS Process ) に改名しますよ~、 と。

なんと身も蓋もない名前だとは思いますが、 VSTS と開発プロセスの結び付けを明確にしよう、 という魂胆だろうと想像します。
どうやら、 スクラムのバックログの考え方も取り入れたようです。

で。 英語読むのめんどー… と思ってたら、 MSDN マガジン 1月号に解説記事が出てました。

Visual Studio Team System 2010 のアジャイル計画ツール

Visual Studio Team System (VSTS) 2010 では、 アジャイルなチームが計画を立案するうえで役立つ新機能が導入されています。 この記事では、 アジャイルなチームがリリースおよびイテレーションを計画、 管理するのに役立つ新しい製品バックログおよびイテレーション バックログのブックと、 新しいレポートのセットについて紹介します。

ということで、 MS 系の開発やってて開発プロセスに興味のある人は、 読んでおくといいかも。 …あ~、 前提とされてる知識が多いような気がする。 MSF を知らないと難しいかもしれません。

| | コメント (0) | トラックバック (0)

2009年2月15日 (日)

生産性を語るときには、 品質が前提になっている

…というのが製造業での常識なんだけど、 ソフトウェア業界にはその常識は無いのかもしれない、 という話。

「生産性」 というのは、 モノを作り出すとき、 投入したインプットと出来上がったアウトプットの比です。
インプットとして労働時間だけを見るときは、 労働生産性と言います。
たとえば、 ある工場で 10人が働いていて、 10時間で 1,000個の製品を作って出荷したとすると、 労働生産性は
  1,000[個] ÷ ( 10[人] × 10[時間] ) = 10 [個/人時]
あるいは、 この製品 1個の出荷額に含まれる付加価値分が 100円だったとして
  ( 1,000[個] × 100[円/個] ) ÷ ( 10[人] × 10[時間] ) = 1,000 [円/人時]
といったように計算します。

一見すると、 品質なんてまったく関係していない、 単純な計算式です。
しかし、 この式の裏には、 製造業ではまったくあたりまえの常識が隠れているのです。

続きを読む "生産性を語るときには、 品質が前提になっている"

| | コメント (0) | トラックバック (0)

2009年2月13日 (金)

Small Basic v0.3 リリース

Small Basic v0.3 was released !
I tried "Publish" that is the new features included. Now, the source code of "The Turtle says Happy New Year" became accessible by using the ID "NWH922".

20090213_smallbasic031Small Basic のバージョン 0.31 が公開されました。

Microsoft Small Basic
Brief Description
A simplified programming language and environment to help teach programming to beginners

File Name:    SmallBasic.msi
Version:    0.3.1
Date Published:    2/11/2009
Language:    English

詳細は SMALL BASIC の blog を参照してください ⇒ Microsoft Small Basic v0.3 is here ( Tuesday, February 10, 2009 6:55 PM vijayeg )

追加された機能は大きく 2つ。
・ スプラッシュ スクリーン ( まだ試してません )
・ ソースコードのパブリッシュ/インポート

後者について。
Small Basic 専用のソースコードリポジトリが smallbasic.com に用意されました。 そして、 Small Basic v0.3 で画面に追加された  [Publish] ボタンをクリックすると、 現在編集中のソースコードがリポジトリにアップロードされ、 アクセス用の ID が発行されます。

例えば、 私が先ほどパブリッシュした "Happy New Year 2009" には "NWH922" という ID が割り当てられました。
そして、 [Import] ボタンをクリックして、 この ID を入力すると、 リポジトリからソースコードがダウンロードされる、 というわけです。
また、 ID が分かっていれば、 ブラウザからもアクセスできます。 ⇒ http://smallbasic.com/program/?NWH922
# しかし… 下端の "Copyright (c) Microsoft Corporation. All rights reserved. " ってのは、 いただけんなぁ (--;

| | コメント (0) | トラックバック (1)

2009年2月12日 (木)

[.NET] フィードバック - [LINQ to SQL] 自動生成された SQL 文が不適切なために、 例外が発生することがある

IIJIMAS さんに思い出させてもらったので。 f(^^;
ひさびさに、 MS Connect へバグレポート。

> ID = 413928
> [LINQ to SQL] 自動生成された SQL 文が不適切なために、 例外が発生することがある

ようするに、 ヘタな LINQ 式を書くと、 "~ WHERE ~ IN ( … "ってカタチの SQL 文が生成されちゃって、 で、 "IN ( …" の中身が多いと例外が出ちゃう、 っていう現象。
LINQ to SQL が発行した SQL を全部チェックしとけ、 って話になっちゃうなら、 最初から SQL をベタ書きするよね。

ってことで、 皆様 vote よろしくです~ m(_`_)m

なお、 フィードバックに添付したファイルは、 テストコードです。 テストその2 として、 ちゃんと動く ( そして効率もいい ) コードも載せてあります。 …あ、 ここにも載せておこう。

[TestMethod]
public void TestMethod2() {
    using (AdventureWorksDataContext dc
            = new AdventureWorksDataContext(CONN_STRING)) {
        dc.Log = System.Console.Out;

        // 明細行のどれかに 4個以上の注文を持つ、 注文伝票の ID
        IQueryable<int> q1 = dc.SalesOrderDetail.Where(v => v.OrderQty > 3).Select(m => m.SalesOrderID).Distinct();
        Assert.IsTrue(2100 < q1.Count()); // <= 私の環境では 2401件あった。

        // 該当する注文を出した顧客の ID
        IQueryable<int> q2 = dc.SalesOrderHeader.Where(v => q1.Contains(v.SalesOrderID)).Select(m => m.CustomerID).Distinct();
        Assert.AreEqual(467, q2.Count()); // <= 私の環境では 467件あった。
    }
}

けっきょく、 できるだけ IQueryable<> のまま引きまわしてよ、 ってことなんですけど。
慣れないうちは、 どうしてもすぐ .ToList() しちゃいたくなるんだよね~ f(^^;

| | コメント (0) | トラックバック (0)

2009年2月10日 (火)

[.NET] Visual Studio のエディタでカーソル行を反転表示 ~ SlickEdit Gadgets

スペースやタブを表示するのは、 [ツール] メニューの [オプション...] で設定するだけ。
任意の桁 ( 80桁目とか 100桁目とか ) に縦線を表示させるのは、 レジストリーをいじってやれば出来る。 ( ⇒ Visual Studio 2008 ワンポイント (Sara Ford's Weblog) ~ 今日のワンポイント : エディタにガイドラインを表示する - #184 )

こうやってカスタマイズしてくると、 どーしても欲しい機能があったりする。 それは、
カーソル行の強調表示!!

でもなー、 標準でサポートされてなきゃ難しいよな~
…と諦めていたら。 しっかりそういうツールが無償で公開されてました (^^)

SlickEdit Gadgets for Microsoft Visual Studio

実際に入れてみました。
編集画面の右下に画像が表示されてますが、 これも SlickEdit Gadgets の機能 f(^^;
20090210_slickedit01

ただし、 残念ながら Express Edition には対応してないそうで… orz

| | コメント (0) | トラックバック (0)

2009年2月 9日 (月)

[わんくま同盟 名古屋勉強会] 第6回 (2009/02/07) の資料

20090207_wankuma01 第6回でも LT ( Lightning Talk ) ってことで、 前回に味をしめてさらにヨタ話を f(^^;わんくま同盟 勉強会の資料

LT で喋ったことですが、 わからなくなったらオリジナル、 原本に当たってみろ! ってのは、 どこの世界でも同じなんです。

ダウンロード用の資料には、 LT ではお見せできなかった資料が 2ページ付いてます。

なお、 この資料は、 次の環境で作成しました。
・ Windows 7 beta @ Eee PC 1000H
・ StarSuite Impress ( Power Point の Star Office 版 )
  ※ PDF への変換も StarSuite です。

で。 じつは外部モニターへの接続試験をせずに、 当日を迎えちゃったので、 ドキドキもんでした。 実際にプロジェクターを繋いでみると… プロジェクターを認識して、 勝手に解像度が切り替わって両方に出力されました。 いや、 びっくりです。

20090207_wankumasan オマケ。
当日の捕獲物、 「わんくまさん?」 500円 f(^^;
通販とかはしてないハズなので、 欲しい人はわんくま勉強会に参加してげっとだw

( 2009/02/11 追記 ) 右上の写真は、 当日のメインw である懇親会の鮎 

| | コメント (0) | トラックバック (0)

2009年2月 6日 (金)

[.NET] Visual Studio から Oracle のストアドをデバッグする

やじゅ@アプリケーション・ラボ わんくま支局 より

Visual Studioでデバッグする方法の記事を見たことがあったなーと
記憶の片隅にありました、ってことで早速、実践。

便利、便利、って最初からこうすれば良かった(*^v^*)

Visual Studio上でOracleエクスプローラの表示
http://www.atmarkit.co.jp/fdb/rensai/odp10g02/odp10g02_01.html

ODT ( Oracle Developer Tools for Visual Studio .NET ) で Oracle のテーブルが触れるようになる、 てことは知ってたけど。
ストアドプロシージャのデバッグまでやれるとは、 知らなんだ。 そっか~、 これは入れてみんとイカンなぁ~ f(^^;

| | コメント (0) | トラックバック (0)

2009年2月 4日 (水)

Log Parser 2.2 日本語版

2ヶ月以上も昔のネタですいません。 書き忘れてた、 というか書いてるヒマが無いまま忘れ去ってた f(^^;

Log Parser 2.2 日本語版

Log Parser はログファイル、 XML ファイル、 CSV ファイルといったテキストデータだけではなく、 イベントログ、 レジストリ、 ファイルシステム、 Active Directory といった Windows オペレーティングシステム上のデータソースに対し一般的なクエリアクセスを提供する強力で多目的に利用できるツールです。

ファイル名 :    LogParser.msi
バージョン :    2.2.10
公開された日付 :    2008/11/26
言語 :    日本語

しかし、 サポート OS は Win2k ~ XP となってて、 Vista が入ってない orz

| | コメント (0) | トラックバック (0)

2009年2月 3日 (火)

"Oslo" SDK - January 2009 CTP

もり ひろゆきの日々是勉強」 経由。

Microsoft "Oslo" SDK - January 2009 CTP

Brief Description
The "Oslo" SDK CTP includes documents and tools for working with "M".

Overview
"Oslo" is the code name for the Microsoft's next generation application development platform. The goal of "Oslo" is to provide a 10x productivity gain across the application lifecycle (design, development, and management). "Oslo" leverages domain-specific models, languages and tools to achieve this goal.

ドメインスペシフィックな抽象度の高い言語 "M" を中心に据えて、 いわゆるモデル ( = 図 ) は脇役 …なんじゃないかという気がしてます。

とりあえずダウンロードはしたものの、 さて何時触れるやら? orz

続きを読む ""Oslo" SDK - January 2009 CTP"

| | コメント (0) | トラックバック (1)

2009年2月 2日 (月)

[.NET] .NET 4.0 (予定) の DataGrid の不具合

WPF Toolkit の DataGrid コントロールに、 ちと厳しい不具合が…。
20090202_wpfgridbug01 かずきのBlog より。

前みつけたバグがなおってるかお試し。
WPFToolkitのページに
The same components as the October 2008 release, includeing:
  > V1 of the WPF DataGrid
って書いてあるからなおってない可能性のほうが高いだろうな~と思ってたら、やっぱりなおってなかった。

ぅわは、 なんて不具合だ。 気付いてなかったよ~ orz
こちらでもちょっと試してみたら、 行数が多いと、 カラム幅を変えるまでも無く不具合が出るみたい。
※ 右上の画像は、 かずきさんとこのキャプチャ画像を、 見やすいように着色したもの。

これマズイんじゃね? って思った人は、 MS Connect ID=409318 に vote してやっておくんなまし m(_`_)m

 

( 2009/3/9 追記 )
3月 5日付けで WPF Tree Services & Controls チームのプログラムマネージャからの回答が付いていて、 .NET 4.0 にはバグフィックス版が載るそうです。

( 2009/3/25 追記 )
先日リリースされた WPF Toolkit - March 2009 Release で、 すでにバグフィックス版が入っていたそうです。 → [WPF]WPF Toolkit March 2009 Release!! (DataGridのバグもなおってる)

| | コメント (0) | トラックバック (0)

2009年1月28日 (水)

[.NET] FxCopCmd.exe はエラー コード 65 を返しました。

Visual Studio 2005 のコード分析で、 こんなエラーを喰らいました。
FxCopCmd.exe はエラー コード 65 を返しました。

…いや、 その一行でナニを理解しろ、 と!? orz

で、 日本語の範囲でぐぐった限りでは、 答えが見つからなかったので、 ここにメモ f(^^;

MSDN Forums - FxCopCmd.exe returned error code 65.
Jeffrey van Gogh - MSFT - Posted on 2006年3月15日 2:56:05

Hi Simon,
exitcode 65 means that analysis failed because the output report could not be written. Did you accidentally check in the <assemblyname>.CodeAnalysisLog.xml file?

まさにその通り!
CodeAnalysisLog.xml ( それと、 WebProject.lastcodeanalysissucceeded も ) が、 しっかりソースコード管理にチェックインされて読み取り禁止属性が付いちゃってました。
解析結果をファイルに書き込むのに失敗したらこのエラーになる、 ってことなので、 上のスレッドでは、 結局原因はフルパスが長くなりすぎてた、 ってことでした。

※ 上の画像は、 ASP.NET の Web サイトを分析した場合です。 後から確認したのですが、 通常の ( クラスライブラリとかの ) プロジェクトでは、 このエラーの他に、 CodeAnalysisLog.xml に書き込めませんでした、 みたいなエラーも出ますから、 すぐ分かります。

| | コメント (0) | トラックバック (0)

2009年1月27日 (火)

[Windows7] β版 ~ WPF ベンチマーク "Bubblemark animation test "

( 2009/01/29 追記 ) このベンチマークツールは、 WPF の描画性能を計っていることにはなっていないと考えるようになりました。 ご注意ください。


WPF のベンチを探してみるかな… …なんか見当たらないっすねぇ。 ようやく見付けたのが、 コレ。

Metalink ≫ WPF/e vs DHTML vs Flash vs WPF performance test
Bubblemark animation test

DHTML や Flash や Silverlight (WPF/E) 用とか、 たくさん用意されてます。 WPF 用のは、 xbap アプリになっているので、 .NET Framework 3.0 以上が入っていればブラウザ上でそのまま動きます。
ただ、 ブラウザ上ではいまいちスコアが安定しなかったので、 公開されてるソースをちょこっと改造して、 Windows アプリに仕立て直してみました
20090127_ballswin01

上のページのベンチ結果によると、 PenM/1.7GHz で 99fps ってことでしたが…

続きを読む "[Windows7] β版 ~ WPF ベンチマーク "Bubblemark animation test ""

| | コメント (0) | トラックバック (0)

2009年1月22日 (木)

[Windows7] β版@EeePC1000H ~ 続・ちょこっと WPF してみた

> 同じ非力なマシンなら、 Win7βの載ったノートのほうでやればよかった orz

…ってことで、 やってみました f(^^;

20090122_wpf01

まったく感覚で言うと、 非力なマシンなのでコンパイルはやっぱり遅いです。 ( といっても、 前回やった Pen4/1.6GHz とは大差無い感じですけど。 )
でも、 簡単なデモを見せるには十分な感じ。 ( って、 前にも書いたっけ? f(^^; )

そして、 やっぱり WPF の画面が出てくるのは、 速い です。 (^^;
でも、 大きくする方向にリサイズするとき、 ウィンドウの枠と中身の間に一瞬黒いスキマが出ちゃうのね。 今回は、 リサイズすると中の画像も拡大縮小するように書いたんで、 ちぃと負荷が掛かります。
Win7 は、 マシンパワーが足りないときに、 ウィンドウ枠を動かすのが引っ掛かるような感じにならないように、 描画のほうを間引くような、 操作感を損なわない方向にチューニングしてるみたい。

| | コメント (0) | トラックバック (0)

2009年1月21日 (水)

ちょこっと WPF してみた

今まで自宅では WPF を書いたことなかったんですよ。
なんせ、 Pen4/1.6GHz なんていう非力なマシンだもんで f(^^;

でも、 ちぃとばかり確認する必要にせまられまして、 初めてお家でやってみたですよ。
# で、 これを書き始めて気付いた。 同じ非力なマシンなら、 Win7βの載ったノートのほうでやればよかった orz

はい、 できました。
イメージとテキストボックスの 2つのオブジェクトが載っかってるウィンドウです。 以上 f(^^;

20090120_wpf_rotate01

中身が傾いてますけど、 これは単純に、 イメージとテキストボックスを格納している Grid を回してるだけです。 Grid を回転させればこうなるはず… と思ったんですが、 確認が取れる Web ページがちと見当たらなかったので、 やってみた、 ってわけ。 f(^^;

続きを読む "ちょこっと WPF してみた"

| | コメント (0) | トラックバック (1)

2009年1月17日 (土)

[Windows7] β版@EeePC1000H ~ C# 2008 EE

図に乗って、 Visual C# 2008 Express Edition まで入れてみました f(^^;

20090116_cs01
20090116_cs02
さすがに重いかと思いきや、 簡単なサンプルプログラムのデモ程度なら、 けっこうイケる感じ。 WPF は軽くなってるし。

| | コメント (0) | トラックバック (0)

2009年1月15日 (木)

[本] ケント・ベック 「実装パターン」


実装パターン
ケント・ベック著

ぉお、 しまった、 これは読まねば ! (^^)
# Eee PC 衝動買いして貧乏なのにぃ~ f(^^;

内容は、 ピアソンのページを見てやってください。
ちょこっと引用すると、 ようするに 「集められた 77 のパターンは、 日々のプログラミング作業をこなし、 読みやすいコードを書くための」 本です。 サンプルコードはたぶん Java でしょうけど、 .NET な人にもきっと分かるはず。 ( VB.NET な人はちょっとしんどいかな? この機会に、 C 風な文法に慣れちゃいましょう f(^^; )

なお、 この本の内容を紹介するセミナー ( ! ) が、 1月 21日に東京で開催されます。 → 「ケント・ベック著「実装パターン」ご紹介セミナー直前情報!
セミナーで使うスライドを見て、 「ふん。 こんなん当たり前じゃん!」 と言える人以外には、 きっと有益だと思いますよ。

| | コメント (0) | トラックバック (0)

2009年1月13日 (火)

[VS2010] GUI のテストも、 ユニットテストで

@IT より。

次期 Visual Studio 2010 と .NET Framework 4.0 の新機能
デジタルアドバンテージ 一色 政彦
2009/01/09

次の [新しいテストの追加] (Add New Test) ダイアログを見ると分かるように、 UI をテストするコードを記述するためのファイル・テンプレート [Coded UI Test] なども追加されている。

20090113_coded_ui_test

ぉお、 これは!
UI Automation を使って GUI 画面をテストするユニットテストのテンプレートみたいですね。
自前でもゴリゴリ書けば出来るんだけど、 めんどくさいのよ~ f(^^;

ダイアログの右側に表示されている説明は、 こう書かれています。

Use a "Coded UI Test" to verify the functionality of a User Interface application (Web/WinForm). After you create a "Coded UI Test", you can manually code "UI automation logic" using the Automation Library.

てきとーに訳しておきます。
「 Coded UI Test を使って UI アプリ (Web/WinForm --- 訳注: UI Automation ならば WPF もいけるはず) の機能性を確かめてください。 Coded UI Test を作った後で、 Automation Library を用いた UI automation logic を手動でコーディングできます。 」

| | コメント (0) | トラックバック (0)

2009年1月12日 (月)

[TDD の練習(4)] フィボナッチ数列の問題 ~ その2 : 偶数だけを集計する

前回で 「フィボナッチ数列発生機」 が出来上がりました。
こんどは、 生成されてくるフィボナッチ数列から偶数を選び出して集計してくれるモノ 「フィボナッチ数列偶数集計機」 を作ります。

フィボナッチ数列発生機の使い方は、 そのテストコードを見れば分かりますね。 また、 テストコードには、 n=45, F(n)=1836311903 まで計算できると示されていますから、 設問の 400万までを計算するのに問題は無いこともわかります。

いつものように、 どんなテストコードを書いていけばいいのかを、 文章で書いてみますので、 ユニットテストに書き下してみてください。
ところで、 設問では合計値だけが要求されています。 そのときの n やフィボナッチ数が幾つだったかは不要なのです。 ですが、 気になりますよね?
製品コードには含まれないけど、 テストのときだけ検証したい値があるときはどうするか? そのためのテストテクニックのひとつも、 ご紹介します。

あ、 n=10 までのフィボナッチ数と、 その偶数・奇数、 そして偶数の合計の表を載せておきますね。 これを先に作っておかないと、 テストを書けませんもの。

             番号 n = 1, 2, 3, 4,  5,  6,  7,  8,  9, 10, ...
フィボナッチ数列 F(n) = 1, 2, 3, 5,  8, 13, 21, 34, 55, 89, ...
                偶奇 = O, E, O, O,  E,  O,  O,  E,  O,  O, ...
                合計 = 0, 2, 2, 2, 10, 10, 10, 44, 44, 44, ...

続きを読む "[TDD の練習(4)] フィボナッチ数列の問題 ~ その2 : 偶数だけを集計する"

| | コメント (0) | トラックバック (0)

[TDD の練習(4)] フィボナッチ数列の問題 ~ その1 : 数列を生成する

ぴえろっちが教えてくれた Project Euler の問題 ( かってに改題 f(^^; ) より。
…いや、 オリジナルを示しておきましょか。

Project Euler .net ~ Problem 2 ( 19 October 2001 )
日本語訳: Project Euler ~ Problem 2
フィボナッチ数列の項は前の2つの項の和である。最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。

この問題を解くプログラムには、 2つのモノが必要でしょう。
ひとつは、 フィボナッチ数列を生成するモノ。 ちゃんとフィボナッチ数列を作り出すことができなければ、 総和を求めるもへったくれもありません。
そしてもうひとつは、 生成されてくるフィボナッチ数列から偶数を選び出して集計してくれるモノ。 こいつに、 「数列の項が400万を超えない範囲での合計はどんだけ?」 って聞いてやれば、 答えが返ってくるわけです。

ということで、 まずは、 「フィボナッチ数列発生機」 を作ります。
例によって、 どんなテストコードを書いていけばいいのかを、 文章で書いてみますので、 ユニットテストに書き下してみてください。
※ サンプルは C# 2008 EE で作りました。 ので、 カッコつけて yield retun を使ってます。 f(^^;

続きを読む "[TDD の練習(4)] フィボナッチ数列の問題 ~ その1 : 数列を生成する"

| | コメント (0) | トラックバック (2)

2009年1月11日 (日)

[Windows7] 一般向けのβ版ダウンロード開始、 日本語版も。

アクセスが殺到したらしく停止されていた、 一般向け Windows 7 beta のダウンロードが、 再開されています。 ( たぶん、 今朝というか、 深夜のうちだったのでしょう )

20090111_win7_01a
http://www.microsoft.com/windows/windows-7/

また、 日本語版のダウンロードも始まっています。
上記の Windows 7 のページからもたどれますが、 Microsoft の日本語サイトのトップページで、
20090111_microsoft_01
「ダウンロード&評価版」 のメニューにある、 「IT Pro 向け評価版ダウンロード」 からでも、  「開発者向け評価版ダウンロード」 からでも行けます。

日本語版は 13日からと、 どこかで読んだような気がするのですが、 すでに日本語版も 32bit / 64bit ともにダウンロードできるようになっています。

なお、 ダウンロードするには、 Windows Live ID が必要です。
ダウンロードした DVD イメージから Windows 7 beta をインストールする時には、 プロダクトキーが必要です。 このプロダクトキーは、 上記の 「入り口」 から、 画面に従ってダウンロードページに行き着くと ( あるいは、 行き着く途中で )、 入手できます。

また、 私のところでは、 Firefox ではダウンロードページにたどりつけませんでした。 ( IE7@XP では OK )

| | コメント (0) | トラックバック (0)

2009年1月10日 (土)

[.NET] フィードバック - 日付を "H21/1/9" のような和暦で出力できるようにしてほしい

MS Connect: ID 392977

[提案] 日付を "H21/1/9" のような和暦で出力できるようにしてほしい

DateTime.ToString() や String.Format() などを使って DateTime 型のフォーマットをするときに、 "平成21年1月9日" というフォーマットはサポートされていますが、 日本でよく使われるもう一つのフォーマット "H21/1/9" はサポートされていません。
そのため日本の開発者は、 データベース上にテーブルを持ったり、 非公開なプロパティにアクセスしたりといった、余計な機能を作りこんでアプリケーションを書いています。 この 「元号の頭文字をアルファベットで表記する」 というフォーマットでの出力を、なんとかサポートして欲しいです。

MSDN フォーラム ( 日本 ) Visual Basic フォーラム での議論も、 参照してください。

これはまぁ、 個人的には、 Parse と Format が非対称になっちゃってるのが美しくない、 ってことです。

続きを読む "[.NET] フィードバック - 日付を "H21/1/9" のような和暦で出力できるようにしてほしい"

| | コメント (0) | トラックバック (1)

2009年1月 9日 (金)

[Windows7] βがこんなに速くていいのか!? f(^^;

といっても、 Windows 全体にじゃなくて ( なぜなら、 ほんとにちょっと触っただけなので f(^^; )、 WPF についてだけ、 ですけど。

WPF の画面描画が、 すごく速くなってます。
ウインドウやダイアログを生成する時間や、 エフェクトを出したりする時間が、 短縮されている感じです。
また、 フォントの縁が ( ClearType の効果以上に ) ボケて表示されることがあるのも、 おおむね直ってるみたい。

IE は当然 8 なので、 やっぱり軽いし。 f(^^;

まだ素の Win7b1 に、 開発中のアプリを入れてみただけなので、 Office やらなんやらを入れていくと変わるかもしれませんが、 今日ちょこっとさわった限りでは、 メモリ 1GB の Net Book でもお遊びなら (つまり、 開発用のメインとかにしなけりゃ) 入れて大丈夫なんじゃないの、 という感想です。

| | コメント (0) | トラックバック (1)

2009年1月 8日 (木)

[Windows7] えっ! もうベータ!?

kkamegawa さんとこから

VistaをスキップしてWindows 7へ

何か一つだとしても決定的な理由があるから XP にする、 というのは確かに一つの見識です。 しかし、 いいところ全く見ずに悪いところだけ探してだめじゃんという話を多く聞くので、 げんなりします。

[コメント]
biac   2009/01/08 12:41 
だって~。 Vista 64 搭載したマシンなんて、 ろくに売ってないんだもん! (--;

…と思っていたら。
http://pc.watch.impress.co.jp/docs/2009/0106/sony1.htm
……や、 ヤバイ!! f(^^;;;

…などと思っていたら!! (@@;

続きを読む "[Windows7] えっ! もうベータ!?"

| | コメント (0) | トラックバック (0)

[.NET] フィードバック - IME の郵便番号辞書を、 .NET Framework で利用できるようにして欲しい

MS Connect: ID 391436

[提案] IME の郵便番号辞書を、 .NET Framework で利用できるようにして欲しい

MS IME ( および Office IME ) に搭載されている辞書を ( UI 無しで ) 利用するための機能を、 .NET Framework のクラスライブラリに追加して欲しい。
さらに、 郵便番号から住所 ( の候補リスト ) を取得することに特化した機能もあれば、 なおよい。

MSDN フォーラム ( 日本 ) Visual Studio International Pack での議論も、 参照してください。

というわけで、 そういう機能が欲しいよねと思った方は、 上記ページで vote ( レートの欄で☆マークを沢山 f(^^; 付ける ) したりコメント付けたりしてやってくださいまし m(_`_)m

なお、 漢字からフリガナへの逆変換は、 あちらに人にはピンと来ないかもと思って、 郵便番号 → 住所の変換だけにしました。
※ フリガナへの逆変換は、 IME 辞書引きの問題だけじゃなくって、 テキストボックスが private に持っている機能も絡むので、 ってこともあります。

| | コメント (0) | トラックバック (1)

2009年1月 6日 (火)

[わんくま同盟 名古屋勉強会] 第6回 (2/7) 参加申し込み、 受け付け開始

わんくま同盟 2月の 7日 (土) に、 「わんくま同盟 名古屋勉強会 第6回」 が開催されます。 詳しい情報は、 こちら。 → http://www.wankuma.com/seminar/20090207nagoya06/

Microsoft で Visual Studio International Pack を担当されている頃末さんが登壇してくださるなど、 今回も盛況が予想されます。 お申込みはお早めに!
# 前回は、 たしか 2週間くらいで満席になったように記憶しています。

私は、 今回もライトニングトークで 5分間喋らせていただきますけど… ソフトウェアやコンピューターのネタじゃないです。 f(^^;

| | コメント (0) | トラックバック (0)

2009年1月 4日 (日)

[.NET] テストの容易性とは

もひとつ、 MSDN マガジン 2008年 12月号より。

実践的なパターン ~ テストの容易性を高める設計
Jeremy Miller

テストの容易性の最終的な目標は、 コードの欠陥を見つけて取り除くために、 開発プロセス内に迅速なフィードバック サイクルを設けることです。

そして、 それによって、 ゴール ( 出荷、 カットオーバー、 安定稼働… etc. ) までのトータルの時間とコストを下げることができるわけです。
上に引用した文章に続いて、 テストの容易性のいくつかの側面が説明されています。
・ 繰り返し可能
・ 記述が容易
・ 理解しやすい
・ 高速

この記事では、 さらにテストの容易性を高めるためにどんな方法があるのか、 具体的にコードで紹介してくれています。
.NET での TDD に興味のある人には、 必読の記事だと思います。

| | コメント (5) | トラックバック (0)

[.NET] C# 静的コード分析ツール StyleCop

MSDN マガジン 2008年 12月号より。

ツールボックス ~ .NET 用の静的分析ツール、 Matt Berseth のブログ
Scott Mitchell

StyleCop では C# ソース コードのスタイルが評価されます。 スタイル ガイドラインは、 ソースコードの書式設定を指定するルールです。 インデントにスペースやタブを使用するかどうかや、 for ループまたは if ステートメントなどの構成要素の形式を指定します。 StyleCop のルールの例としては、 for ステートメントの本体は中かっこで囲む必要がある、 = および != 演算子の両端にはホワイトスペースを書く必要がある、 クラス内でメンバ変数を呼び出すときは "this" で始める必要がある、などがあります。

途中までは、 Visual Studio で ^K^F ( 自動フォーマット ) すればいいだけじゃん… と思って読んでたんですが。 最後の 「this を付けろ」 はいいですねぇ。
親のメソッドには base を、 static ならクラス名を、 っていうルールになってるのかな?

暇見て試さなきゃ f(^^;

| | コメント (0) | トラックバック (0)

2009年1月 1日 (木)

新年明けましておめでとうございます

今年もよろしくお願いいたします。

Happy New Year 2009 !
This New Year's card was made by using Small Basic v0.2. The string "HAPPY NEW YEAR!" was drawn by Turtle Graphics. A image of the background is downloaded from Flickr at random. ( However, those photographs are related to "Happy New Year 2009". ) In addition, the color that Turtle uses is random. Therefore, there is little chance that you see completely the same image !! 
The source code is here.  -> HappyNewYear2009.sb [4KB] ( UTF-8 )

20090101_greetbysmallbasic04
Small Basic v0.2 で描いてみました。

続きを読む "新年明けましておめでとうございます"

| | コメント (4) | トラックバック (2)