中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

大阪でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆とか、助言依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2009/03
MCPロゴ
070-316
RSS feed meter for http://blogs.wankuma.com/naka/

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

2009年12月2日 #

わんくまスキー合宿

2010/1/9~11の日程で来年も(今シーズンも)合宿します。

料金は以下のような感じです。

ぜひ皆さんもご参加下さい。今のところ20名くらい決定。

家族参加も多いですので是非家族参加で。

ちなみに参加条件は参加者などと顔見知りであること<=勉強会に参加したことがあるくらいです。

ぜひぜひー

ツアー代金(東京発)
(大人)        33,800円
(小人)        24,600円
(宿泊2泊4食・直行バス・リフト3日券昼食付含む)

ツアー代金(名古屋発)
(大人)        36,800円
(小人)        27,100円
(宿泊2泊4食・直行バス・リフト3日券昼食付含む)

ツアー代金(大阪発)
(大人)        34,300円
(小人)        25,600円
(宿泊2泊4食・直行バス・リフト3日券昼食付含む)

マイカープラン(というか宿泊+リフトのみ)
2泊4食・リフト3日券昼食付き含む
(大人)        22,700円
2泊4食のみ
(小人)        11,800円

posted @ 12:46 | Feedback (1)

2009年11月20日 #

ガード句がプログラムをわかりやすくするとは限らない

昨日はcodeseekの勉強会でした。

http://www.codeseek.net/

その中でプログラムをわかりやすくするとしていろいろな要素をあげていたのですが、ガード句はプログラムをわかりやすくするとは限らないと言ってみました。

class A
{
    public int i;
    public string s;
}

static void Main(string[] args)
{
    A data = new A();
    func(data);

}

private static void func(A data)
{
    if ( data == null ) throw new ArgumentNullException("data");
    //いっぱいの処理
    Console.WriteLine(data.s.IndexOf("A"));
}

たとえばこのようなプログラムがあったときにdata.s.IndexOf("A")の部分でNULL参照で落ちてしまいます。

dataという引数は正しくnullチェックされていますが、data.sまではnullチェックされていなかったということがわかった例です。

この関数の中ではdata.sまで利用するのだからdata.sのガード句である

    if ( data.s == null ) throw new ArgumentNullException("data.s");

まで入れておくべきだったのかもしれません。

ただほかの処理でも使うものがすべてメソッドの上で書かれているということは、メソッド中段ではわからなくなっているかもしれません。(コードを追っかけている際に覚えていられない)

data.sを利用する局面でチェックした方がいい場合もあれば、そうでない場合もあるので、一概にガード句がいいプログラムになるとは限らないの例でした。

posted @ 18:27 | Feedback (0)

.NET4での愛々問題について

http://blogs.wankuma.com/naka/archive/2009/11/11/182901.aspx

OSが7かVistaかで使用されるソートテーブルが変わるのでそれが原因かと思って確認してみましたが、愛々問題の修正だけで解決するようですね。
いろいろ調べて見ましたが、どのように修正されたかは見つかりませんでした。

posted @ 18:00 | Feedback (0)

2009年11月11日 #

.NET4からString.IndexOfはStringComparison.Ordinalになります。

http://d.hatena.ne.jp/siokoshou/20091111#p1

ちょっと今の時期にBeta1の記事になってるっぽいですが、String.IndexOfはいままでの挙動と変更になります。

Beta2では少なくともStringComparsion.Ordinalがデフォルトになっています。

以下同じソースコードですが

Console.WriteLine( "AA".IndexOf("〇A") );         
Console.WriteLine( "AA".IndexOf("〇") );           
Console.WriteLine( "A〇A".IndexOf("AA") );       
Console.WriteLine( "〇A〇A".IndexOf("AA") );     
Console.WriteLine( "〇A〇A".IndexOf("〇A") );     
Console.WriteLine( "〇A〇A".LastIndexOf( "〇A" ) );
Console.WriteLine();

Console.WriteLine( "AA".IndexOf( "〇A", StringComparison.Ordinal ) );       
Console.WriteLine( "AA".IndexOf( "〇", StringComparison.Ordinal ) );         
Console.WriteLine( "A〇A".IndexOf( "AA", StringComparison.Ordinal ) );     
Console.WriteLine( "〇A〇A".IndexOf( "AA", StringComparison.Ordinal ) );   
Console.WriteLine( "〇A〇A".IndexOf( "〇A", StringComparison.Ordinal ) );   
Console.WriteLine( "〇A〇A".LastIndexOf( "〇A", StringComparison.Ordinal ) );

-1
-1
-1
-1
0
2

-1
-1
-1
-1
0
2

ターゲットバージョンを3.5に変更すると

0
0
0
1
1
3

-1
-1
-1
-1
0
2

になります。

いままで意識せずに使っていたIndexOfが怖いこと理解していただけましたでしょうか?

“愛々”問題 と言われていました。

posted @ 12:22 | Feedback (6)

2009年11月5日 #

Windows7のVirtual PCにはFDDサポートがない?

image

image

image

image

フロッピードライブござりませんが・・・・

posted @ 11:23 | Feedback (1)

2009年11月4日 #

Silverlight入門

赤坂さんの最新刊Silverlightの本です。

わんくまでも何度か話していただいています。

今度来てくれるときにサインもらわなきゃですね。

今回もサンプルの画像やサンプルソースが赤坂色全開です。

皆さんもぜひ~

posted @ 12:55 | Feedback (1)

今週末は東京勉強会

http://wankuma.com/seminar/20091107tokyo39/Default.aspx

  • 10:20 ~ 開場・受付開始
  • 10:40 ~ 10:50 わんくまについて
  • 10:50 ~ 11:10 「知ってると自慢?着物ムダ知識~模様・絵柄編~」by 片桐継 Lv1くまー
  • 11:10 ~ 12:00 「Visual StudioからOracle Databaseを使い倒す!」by 日本オラクル 大田さん lv1くまー
  • 12:00 ~ 13:00 おひるごはん
  • 13:00 ~ 13:30 ライトニングトーク
    • Yunokaさん
    • こくぶん
    • 初音玲
  • 13:30 ~ 14:20 「Windows Azureで作るボットアプリ?」by 割と普通さん Lv1くまー
  • 14:30 ~ 15:20 「OWI(Oracle Wait Interface)のコンセプトと実用ツールMaxGaugeの紹介」by 金圭福(アスター)さん Lv2くまー
  • 15:30 ~ 16:20 「windbgでやる .NETデバッグ入門」by 中博俊 Lv3くまー
  • 16:30 ~ 17:20 「脱ビギナ講座:計算量とソートいろいろ」by επιστημη Lv1くまー
  • 18:00 ~ 懇親会

今回はこんな感じ

今回も非常におもしろそうな内容ばっかりですよ。

ちなみに今後も勉強会が続きます。

11/14福岡 http://wankuma.com/seminar/20091114fukuoka10/Default.aspx

11/21東京 http://wankuma.com/seminar/20091121tokyo40/Default.aspx

11/28名古屋 http://wankuma.com/seminar/20091128nagoya10/Default.aspx

是非是非来て下さいねー

posted @ 12:48 | Feedback (0)

.NETによるメモリリーク

http://msdn.microsoft.com/en-us/library/ee658248.aspx

大きく分けて5つのパターンがあると書いています。

  • Static references 静的参照
  • Event with missing unsubscription イベントを使わなくなったのに関連づけたまま
  • Static event with missing unsubscription 静的イベントに関連づけたまま
  • Dispose method not invoked Dispose漏れ
  • Incomplete Dispose method Disposeが不完全

詳細は呼んでいただくとして、途中参照をビジュアルに表示している画面がありますが、これはdotTraceの画面のようです。

dotTraceは使ったことがないんですが、今度使ってみることにします。

posted @ 10:57 | Feedback (3)

2009年10月31日 #

WPF4.0のフォントレンダリング

image

上が従来のWPF3.5、下がWPF4.0です。

何が違うってClearTypeが効いているかどうかです

image

線の右側が青く、左側が赤くマッピングされています。

ClearTypeの詳細については省略しますが、多少は改善されるはずです。ほかも調べていかなきゃ。

関連記事

http://lol.blog12.fc2.com/blog-entry-422.html

http://d.hatena.ne.jp/shiba-yan/20091021/1256128839

posted @ 0:15 | Feedback (2)

2009年10月29日 #

指定ディレクトリ以下のファイルのハッシュ(MD5)を取る

ソースだけ書き残しておく

class Program
{
    static void Main(string[] args)
    {
        var pathname = args[0];

        var files = Directory.GetFiles(pathname, "*.*", SearchOption.AllDirectories);
        var md5 = MD5.Create();
        foreach (var file in files)
        {
            var bytes = File.ReadAllBytes(file);
            var x = md5.ComputeHash(bytes);
            Console.WriteLine(string.Format("{0}\t{1}", file, ByteToByteString(x)));
        }
    }

    static string ByteToByteString(byte[] data)
    {
        var sb = new StringBuilder();
        foreach ( var byt  in data)
        {
            var bytstr = "00" + byt.ToString("X");
            sb.Append(bytstr.Substring( bytstr.Length - 2));
        }
        return sb.ToString();
    }
}

posted @ 14:54 | Feedback (0)

2009年10月19日 #

わんくま大阪とclub Windows7

今週10/24大阪で勉強会を開催します。

開催要項は以下の感じ

  • 10:20 ~ 10:30 わんくまについて等
  • 10:30 ~ 11:20 「C#でiPhoneアプリ開発 with MonoTouch」by 伊勢シンさん lv1くま~
  • 11:30 ~ 12:00 「Windows Azure (CTP) 触ってみた」by おださん lv1くま~
  • 12:00 ~ 13:00 おひるごはん
  • 13:00 ~ 13:30 ライトニングトーク 5分間の真剣勝負
    • れいきいとさん
    • 真司さん
    • teru_kさん
  • 13:40 ~ 14:30 「マンガでおぼえる視線誘導 おかわり」by 長月葵 lv3くま~
  • 14:40 ~ 15:30 「.NETデバッグ入門」by 中博俊 lv1くま~
  • 15:40 ~ 17:30 「グループディスカッション - IT技術者のモチベーションの維持、高め方」by モデレータ 刈歩 菜良 CTP
  • 18:00~ 懇親会~

http://wankuma.com/seminar/20091024osaka32/Default.aspx

詳細はサイトのほうでおねがいします。

今回私は.NETのデバッグに関して説明させてもらいます。

かなり面白いセッションだと思いますよ~そしてグループディスカッションもします。

ぜひ皆さんもご参加ください。

 

さてその次の週はclub Windows7ということで、Windows7ローンチ記念のイベントを行います。

http://www.club-windows7.net/

場所はこれまた同じくクロノスさん。本当にありがとうございます。

13:30-13:40 ご挨拶
13:40-14:40
  「Windows 7 対応アプリケーションの開発術 ~新機能でアプリケーションを完全武装!~」(70分)
    井上章さん
    Windows 7 の新機能に関する開発トピックを、デモを交えながら詳しくご紹介いたします。
    これを機会に皆様が開発されているアプリケーションを完全武装してください!
     <アジェンダ案>
      ●Windows 7 の基本情報と開発環境
      ●互換性対応
      - ユーザー アカウント制御 (UAC)
      ●新機能対応
      - シェル&ライブラリ
      - タスクバー&ジャンプリスト
      - リボン インターフェイス
      - マルチタッチ
      - センサー API
14:40-14:50 休憩(10分)
14:50-15:00
   「64bit開発のポイント(仮)」中博俊(50分)
15:00-15:20 おかし休憩(20分)
15:20-16:50
   「セッション3(仮)」黒龍(30分)
16:50-17:10
   「セッション4(仮)」さお(20分)
17:10-17:20 休憩(10分)
17:20-17:50 ディスカッション(30分)
   Windows7についての色々について、みんなで語り合いましょう!

私は64bit開発の勘所をお話しする予定です。

ぜひみなさんいらしてください~

posted @ 16:44 | Feedback (1)

2009年10月12日 #

app.manifest

Windows7向けのコードも足したmanifestのベースファイル

<?xml version="1.0" encoding="utf-8"?>
<assembly
    xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd"
    manifestVersion="1.0"
    xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
    xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
    xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"
    xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
    xmlns="urn:schemas-microsoft-com:asm.v1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <asmv3:trustInfo>
    <asmv3:security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asinvoker" uiAccess="false"/>

      </requestedPrivileges>
    </asmv3:security>
  </asmv3:trustInfo>

  <assemblyIdentity name="xxxx.exe" type="win32" version="1.0.0.0" processorArchitecture="x86"  />
  <file name="xxxx.dll">
    <typelib tlbid="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" />
    <comClass clsid="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" threadingModel="Apartment" progid="DirLibNIF.DirCheckNIF" tlbid="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" />
  </file>

  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!--The ID below indicates application support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <!--The ID below indicates application support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>

</assembly>

サポートOSについては

http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx

ちゃんとWindows 7ターゲットできているかどうかはリソースモニターでチェックする。詳細はkkamegawaさんのページ

http://d.hatena.ne.jp/kkamegawa/20090705/p1

posted @ 0:40 | Feedback (1)

2009年10月11日 #

XPSがECMAに

http://blogs.msdn.com/xps/archive/2009/07/16/hello-ecma-388-1st-edition.aspx

http://hagi-san.blog.ocn.ne.jp/hagisan/2009/10/xpsopenxps_ecma.html

XPS普及のためにがんばってほしぃ

posted @ 23:22 | Feedback (0)

2009年10月9日 #

2009/11/21東京勉強会スピーカー募集

http://bbs.wankuma.com/index.cgi?mode=al2&namber=42181

11/21の東京勉強会のスピーカーを募集します。
一応予定の枠はアイスブレーク1枠、通常スピーカー2枠です。
是非みなさんご応募下さい~

 

応募は掲示板でお願いしますmm

posted @ 11:05 | Feedback (0)

2009年10月8日 #

CH3COOHさんがやってくれました

わんくまでもたまにしゃべってくれる 伊勢シンさん、孤月さん、酢酸さんの3人の.NET CFの本です。

もちろんぽちっと

posted @ 22:22 | Feedback (2)

10/17はLT大会!

今年もやりますライトニングトーク大会

みんなのちょっとした思いつき、こだわり、調査結果、自慢、紹介したい出来事、等々をライトニングトークという5分間でしゃべってみませんか?

http://wankuma.com/seminar/20091017tokyo38/Default.aspx

是非みんなで楽しい一日を過ごしてみましょう。

是非ご参加下さい!

posted @ 12:12 | Feedback (0)

2009年10月5日 #

2010年スキー合宿(第3回)

こんにちは中です。

来年もスキー合宿しますよ!

日程(たぶん):2010/01/9~11(バスの人は8の夜出発)予定かな?

場所:今年は未定(去年は長野県白馬岩岳)、どこがいいか東京、名古屋、大阪
の3カ所から便利にってなると長野かな?

金額:(去年実績)

大阪発着バス料金大人  16800円
東京発着バス料金大人  11300円
名古屋発着バス料金大人  14300円
大人宿泊料金+リフト   21500円
子供宿泊料金+リフト無し 5900円
バスは四列です。

スキースノボレンタル料金 1000円/1日
ウェアレンタル料金  1000円/1日
保険代金 500円(全員必須です。)

移動手段(自前もOK)+宿泊料金+レンタル料金+保険で計算してください。
<-あくまで去年の実績なので、このままと言うわけではないです。

参加したい。参加してもいいかも?と言う方は特別MLを作りますので、
いったんだいたいの人数確認のために、連絡するから連絡ください。

参加条件は勉強会などで顔見知り、または顔見知りと一緒に参加です。

家族参加大歓迎!

是非皆さんのご参加をお願いします~

posted @ 18:25 | Feedback (0)

2009年9月10日 #

9/12はわんくま名古屋勉強会

もう9回目ですね。早いな-

ということで、お誘い合わせの上ご参加下さい。

お待ちしております。

  • 10:20 ~ 開場・受付開始
  • 10:30 ~ 10:40 わんくまについて
  • 10:40 ~ 11:30 「人工知能について」by 影山さん lv 1くまー
  • 11:40 ~ 12:20 「地図データの紹介」by You&Iさん lv 1くまー
  • 12:20 ~ 13:20 おひるごはん
  • 13:20 ~ 13:50 ライトニングトーク 5分間の真剣勝負
    • 浦部さん
    • ネコギギさん
    • You&Iさん
  • 13:50 ~ 14:40 「マンガでおぼえる視線誘導」by 長月葵 lv 3くまー
  • 14:50 ~ 15:40 「メソッドの外部設計とテストファースト」by biac lv 3くまー
  • 15:50 ~ 16:40 「LaTeX でプレゼン」by bleis-tiftさん lv 1くまー
  • 17:30 ~ 懇親会~

http://wankuma.com/seminar/20090912nagoya09/Default.aspx

posted @ 9:03 | Feedback (0)

2009年9月7日 #

わんくまblog管理人からのお知らせ

わんくま同盟代表の中博俊です
皆さんに悲しいお知らせをしなければなりません
わんくま同盟の仲間 Hirotow さんが2009年8月19日にお亡くなりになりました
Hirotow's Craftive Blog's
Hirotow's Ctaft Museum
誠に痛恨の情に堪えません
先週末にご家族とお会いしたあとに すぐにお知らせすべきところ ご通知が遅れましたことを深くお詫び申し上げます
ご家族によれば 葬儀も滞りなく終わり いまは故郷のご家族の元で安らかな眠りについています
ここに謹んでご通知申し上げますとともに もし故人とご親交のあった方をご存じ場合は 亡くなられたことをお知らせいただければと思います
わんくま同盟代表 中博俊

コメントは以下にお願いします
わんくまblog管理人からのお知らせ

posted @ 21:48 | Feedback (0)

2009/11/07東京勉強会スピーカー大募集

http://bbs.wankuma.com/index.cgi?mode=al2&namber=40767

11/07のわんくま東京勉強会のスピーカーを募集します。
最近は勉強会で次の勉強会のスピーカー募集することが多いですが・・・・
11/7ほかのネタは
・着物
・デバッグ
・データベース
何かがありそうです。
ネタはなんでもOK<技術ネタである必要すらありません。
ぜひ立候補をお願いします。
#残念ながら全員にお願いできないかもしれませんが、そこのところはよろしくお願いします。mm

posted @ 14:06 | Feedback (1)