中の技術日誌ブログ

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

2010年3月19日 #

2010/5/15のわんくま東京スピーカー募集中

http://bbs.wankuma.com/index.cgi?mode=al2&namber=47989&page=0#1

上記のURLの掲示板で募集中です。

是非しゃべってみたい方、お気軽に立候補してください。

posted @ 13:45 | Feedback (0)

2010年3月17日 #

IE9 Preview

http://ie.microsoft.com/testdrive/info/ThankYou/Default.html

ここからダウンロード

http://ie.microsoft.com/testdrive/

ここからテスト

でも今回のはレンダリングエンジンのすごさだけを確認する専用です。

ちなみにIE8と同居できてますね。

一番左上のデモこれはすごいです。

image

ちょろめ(5.0.342.3)だとクソ遅いのですが、

image

このようにIE9だと64フレーム出てます。

IE8だとすごーく残念な描画

image

FPSは一見ちょろめより出ていそうですが、画面が崩れたままですw

ちなみに256イメージにしても40fps

image

posted @ 11:03 | Feedback (2)

2010年3月15日 #

プログラミング生放送勉強会 第3回@大阪

私も楽しく見ている”プログラミング生放送”の大阪勉強会です。

http://co9320.spaces.live.com/blog/cns!F8FA3BD6ABDDDB63!247.entry?wa=wsignin1.0&sa=69825617

  • 2010/3/20(土)13:30~18:00頃 (13:00頃開場)
  • 大阪市淀川区西中島4丁目13番22号 新大阪淀川ビル7F 株式会社クロノス 研修ルーム

いつもわんくま大阪で利用させていただいているクロノスさん( http://www.kronos-jp.net/ )の会場で行われます。

  • 5zj: 主催コミュニティ 代表
    Bing、使ってみた。
    「マイクロソフトのWeb・地図検索サービスのBing・Bing Mapsの紹介とAPI/SDKをいじいじします。開発アプリの何かアイデアになるかも?」
  • だいちゃん さん
    Android携帯で音声認識する方法 (※2/28変更しました)
    「音声認識用のAPIを呼び出す事で簡単に音声認識する方法をご紹介します!」 
  • 池原大然(Neri)さん: アイネタビューロ登録スピーカー
    XAMLで[中身をいれかえるんです]
    「今回はXAML入門の2回目として、VisualTreeとテンプレートの切り替えについてお話しさせていただきたいと思います。」
  • いな さん
    Webアプリケーションの危険性
    「Webアプリケーションに対する実際の攻撃手法と最低限やっておくべき防御方法を紹介します。」
  • oden さん
    ようこそ発火村へ!
    「ハッカソンとはハッキングマラソンの略で、プログラマーが集まって共同作業を行うイベントです。今回はそんなハッカソン紹介をさせて頂きたく存じます。」

この日は大阪にいないので参加できないんだけど、行きたいなー

池原さんのセッションもおもしろそうだし。

ということで、みなさんも是非是非参加してみてください。

posted @ 17:42 | Feedback (0)

VisualTreeHelper.GetChildを呼ぶときには事前チェックが必要

指定されたインデックスは範囲外か、インデックスの子が NULL です。VisualChildrenCount によって、Visual に子がないことを示す 0 が戻された場合は、このメソッドを呼び出さないでください。
パラメータ名: index
実際の値は 0 です。

場所 System.Windows.FrameworkElement.GetVisualChild(Int32 index)
場所 System.Windows.Media.Visual.InternalGet2DOr3DVisualChild(Int32 index)
場所 System.Windows.Media.VisualTreeHelper.GetChild(DependencyObject reference, Int32 childIndex)
場所

 

var x = VisualTreeHelper.GetChild(listviewitem, 0);

こんなことしてListViewItem取得しようとしても構築が完了していないタイミングだとうまくとれない場合があります。

if ( VisualTreeHelper.GetChildrenCount(listviewitem) != 0)

こういう事前チェックを行っておきましょう。

posted @ 16:56 | Feedback (0)

2010年3月9日 #

Visual Studio 2010 Ready Day

開催日

2010 年 4 月 13 日 (火)

時間

9:30 開場 10:00 開演 (18:10 終了)

会場

東京ミッドタウンホール ホール A (ミッドタウン・イースト B1F)

定員

500名

所在地住所

東京都港区赤坂 9-7-2
日比谷線/六本木駅・徒歩 1 分 (コンコースにて直結)

http://www.microsoft.com/japan/msdn/vstudio/2010/readyday/

平日だけどトラブルがなければ行きますよ!

トラックはAAABかなー

是非東京近郊の皆さんは参加しましょう!

posted @ 0:13 | Feedback (1)

2010年3月3日 #

INETA + Microsoft = Community Open Day

今度3月末~4月頭にINETAのイベントを行います。

是非皆さんもご参加ください。

東京会場の3/27はわんくま勉強会はありません。残念ながら大阪会場の4/3は東京で数学デーがあるのですが、是非この機会にコミュニティ勉強会参加してみてください。

【東京会場】

◆ 日時:2010 年 3 月 27 日(土)  12:00 受付開始、13:00 ~

◆ 会場:マイクロソフト 新宿本社 セミナールーム

◆ 定員:Office 2010 - 70名 / Visual Studio 2010 - 80名

2010 Community Open Day with GITCA - Tokyo ~Microsoft Office 2010編~

2010 Community Open Day with INETA Japan - Tokyo ~ Microsoft Visual Studio 2010 編 ~

【大阪会場】

◆ 日時:2010 年 4 月 3 日(土)12:00 受付開始、13:00 ~

◆ 会場:マイクロソフト 関西支店 セミナールーム

◆ 定員:Office 2010 - 40名 / Visual Studio 2010 - 70名

2010 Community Open Day with GITCA - Osaka ~Microsoft Office 2010編~

2010 Community Open Day with INETA Japan - Osaka ~ Microsoft Visual Studio 2010 編 ~

posted @ 18:46 | Feedback (0)

わんくまの3月の勉強会について

なかです

ブログあんまり書いてないやばい^^;;

3月は2回勉強会やります。

是非ご参加ください。東京はみんなでレビューというなのツッコミをしてすっきりしましょう^^

2010/03/06 東京#44 募集中
  • 10:20 ~ 開場・受付開始
  • 10:40 ~ 10:50 わんくまについて
  • 10:50 ~ 11:10 「知ってると自慢?着物ムダ知識~言葉編~」by 片桐継 Lv1くまー
  • 11:10 ~ 12:00 「デジタル放送について」by 仲根かなはるさん Lv1くまー
  • 12:00 ~ 13:00 おひるごはん
  • 13:00 ~ 13:30 ライトニングトーク
    • ひらぽんさん
    • yunokaさん
    • (調整中)
  • 13:30 ~ 14:20 「"Go" MY WAY!!」by 赤坂玲音さん Lv3くまー
  • 14:30 ~ 15:20 「はじめての Adobe Flex」by うづきらんさん Lv1くまー
  • 15:30 ~ 16:20 「Entity Framework を真面目に使ってみた」by takeshikさん Lv2くまー
  • 16:30 ~ 17:40 「レビュー会」by 割と普通さん Lv2くまー
  • 18:00 ~ 懇親会
2010/03/13 名古屋#12 募集中
  • 10:20 ~ 開場・受付開始
  • 10:30 ~ 10:40 わんくまについて
  • 10:40 ~ 11:20 「Cell/B.E. プログラミング事始め」by You&Iさん lv 1くまー
  • 11:20 ~ 12:00 「PowerShell 2.0の紹介」by 牟田口大介(むたぐち) lv 1くまー
  • 12:00 ~ 12:45 おひるごはん
  • 12:45 ~ 13:20 TDD道場
  • 13:20 ~ 13:50 ライトニングトーク 5分間の真剣勝負
    • (調整中)
    • (調整中)
    • (調整中)
  • 13:50 ~ 14:40 「Silverlightはじめました」by 長月葵 lv 1くまー
  • 14:50 ~ 15:40 「Bingってみた」by 松江祐輔(JZ5) lv 1くまー
  • 15:50 ~ 16:40 「とあるニセ科学の再検証」by guicheng lv 1くまー
  • 17:30 ~ 懇親会~

posted @ 18:43 | Feedback (0)

2010年2月26日 #

MSDN Hacks

わんくまの有志によるMSDNの活用テクニックをご紹介させていただきました!

http://codezine.jp/article/detail/4960

  1. Windows Azureを最短でマスターしたい
  2. Windows 7アプリに移行するには、どこを押さえておけばよい?
  3. 開発でつまづいた! でも身近に聞ける人がいない
  4. 環境構築の手間なく開発製品を評価・学習するスゴ技
  5. Windows phoneアプリを開発したい
  6. MSDNライブラリのもっと上手な使い方ってないの?
  7. せっかく調べた開発ノウハウなので、みんなと共有したい
  8. 旧バージョンのクラスライブラリを確認したい

私は

開発でつまづいた! でも身近に聞ける人がいない

旧バージョンのクラスライブラリを確認したい

をご紹介

VS2010もそろそろローンチですので、そららに向けていまから是非MSDNを使いこなしてみてください。

posted @ 17:41 | Feedback (3)

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 (4)

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)