tag:blogger.com,1999:blog-11697771651098063512024-03-09T08:12:49.476+09:00我楽多園技術ブログを始めたくてなんとなくスタートです。
たぶん長続きしないはず…泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.comBlogger113125tag:blogger.com,1999:blog-1169777165109806351.post-15615812078392738322010-09-27T23:04:00.001+09:002010-09-27T23:04:08.165+09:00Project Euler(その3)<p>引き続きやってます。めでたくレベル2になりました。</p> <p><img src="http://projecteuler.net/profile/yone64.png" /></p> <p>Linqも、SelctManyやAggregateの使い方がわかってきた気がします。 <br />一つわからないのが下の様なケース。TakeWhileやAggregateで出来そうな気もするんですが。どうするのがいいんだろう。</p> <p>・合計がxを越えない範囲で列挙する。</p> <p>あと、.NET Framework4でBigIntegerが追加されてることを知りました。便利。 <br />#というか反則っぽいなぁ</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-23222856361590341972010-09-24T00:23:00.001+09:002010-09-27T22:52:51.483+09:00Project Euler(その2)<p><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TJtw3bo8tKI/AAAAAAAAAVM/7_r-PLUID8U/s1600-h/image%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/TJtw4ckNz4I/AAAAAAAAAVQ/4wtmyb0ubao/image_thumb%5B1%5D.png?imgmax=800" width="644" height="439" /></a> </p> <p>今日も引き続き挑戦してました。18問目まで終了。</p> <p>12問目がなかなか計算時間短縮が難しい。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-74217394807934834562010-09-23T00:53:00.001+09:002010-09-24T00:20:45.670+09:00Project Euler<p>Project Eulerなるものを知った。数学の問題をプログラムで解くらしい。 <br />おもしろそうなので、登録してみた。 <br />#そういえば、TopCoderに登録してそのままなことを思い出した。 <br /><a title="http://projecteuler.net/" href="http://projecteuler.net/">http://projecteuler.net/</a></p> <p>日本語のWikiもあり、問題も日本語化されているようだ。<やった。 <br /><a title="http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler" href="http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler">http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler</a></p> <p>番号が若いうちは比較的簡単。出来るだけLinqを使って書くように心がける。 <br />#でもLinqだと無駄が出やすい気がする。スピード重視なら、手続き指向になるのかなぁ。</p> <p><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TJomiRBtoeI/AAAAAAAAAVE/sUsHMJliL6o/s1600-h/image%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TJomjFeULSI/AAAAAAAAAVI/EDQF8f0-Oqw/image_thumb%5B1%5D.png?imgmax=800" width="644" height="397" /></a> </p> <p>とりあえず、今日は8問目まで。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-60080869917925986042010-09-15T00:27:00.001+09:002010-09-15T07:31:44.913+09:00Azureへのデプロイ(手動)<p>いい加減、Azureへデプロイです。</p> <p>プロジェクトを右クリックメニューより発行を選択。 <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI-UEzdkRlI/AAAAAAAAATc/hpMtC-DN4vU/s1600-h/image%5B9%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI-UFYS21jI/AAAAAAAAATg/6d9hbZhgCdc/image_thumb%5B5%5D.png?imgmax=800" width="396" height="470" /></a> <br />表示されたダイアログで、「サービスパッケージだけを作成」を選択しOKをクリックします。 <br /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI-UFxlfpqI/AAAAAAAAATk/E2JFgxl1azA/s1600-h/image%5B8%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI-UGtskyiI/AAAAAAAAATo/1xt4mKTSyCU/image_thumb%5B4%5D.png?imgmax=800" width="463" height="414" /></a>  <br />.cspkgファイルとcscfgファイルが作成されます。 <br /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI-UHOtmhiI/AAAAAAAAATs/nzvim_OxoLQ/s1600-h/image%5B13%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI-UH_n7fUI/AAAAAAAAATw/gfwPHRCkbmo/image_thumb%5B7%5D.png?imgmax=800" width="644" height="393" /></a> </p> <p>これを、Azure環境にデプロイします。 <br />まず、Windows Azure Developer Portal(<a title="http://windows.azure.com/" href="http://windows.azure.com/">http://windows.azure.com/</a>)にアクセスします。その後、New Serviceをクリックします。 <br /><a href="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI-UIhIKC_I/AAAAAAAAAT0/ywqZ_7O-EUU/s1600-h/image%5B17%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI-UJaivIxI/AAAAAAAAAT4/mG-TAcu3zVs/image_thumb%5B9%5D.png?imgmax=800" width="580" height="484" /></a> <br />Hosted Servicesを選択します。 <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI-UKBtj4KI/AAAAAAAAAT8/O--IG76dJS0/s1600-h/image%5B21%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI-UKwXM_OI/AAAAAAAAAUA/T13FA9DcbGc/image_thumb%5B11%5D.png?imgmax=800" width="579" height="484" /></a> <br />Service Labelと、Service Descriptionを入力します。適当でOK. <br /><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-ULoDnwgI/AAAAAAAAAUE/pgrCAaqBEkQ/s1600-h/image%5B25%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI-UMnj4mII/AAAAAAAAAUI/8gHvDRGg0LQ/image_thumb%5B13%5D.png?imgmax=800" width="581" height="484" /></a> <br />次にURLと、デプロイ場所を決定し、Createボタンをクリックします。 <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI-UNfS2Q_I/AAAAAAAAAUM/zWrxsl4wagY/s1600-h/image%5B29%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI-UOoyyDHI/AAAAAAAAAUQ/sJMTvqhWAjs/image_thumb%5B15%5D.png?imgmax=800" width="580" height="484" /></a> <br />とりあえず、出来ました。そして、Deployボタンをクリック。 <br /> <a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-UPfkMvUI/AAAAAAAAAUU/1L1cUOxEJGw/s1600-h/image%5B37%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-UQOyBRVI/AAAAAAAAAUY/ajXHpF3GhSg/image_thumb%5B19%5D.png?imgmax=800" width="580" height="484" /></a> <br />Application Packageに.cspkgファイルを、Configuration Settingsに.cscfgファイルを設定。Deployment Nameを入力したら、Deployボタンをクリック。 <br /><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-UQ79e38I/AAAAAAAAAUc/ZS2ts3rY8E0/s1600-h/image%5B41%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI-URsE2VeI/AAAAAAAAAUg/gsEQSyd9RTg/image_thumb%5B21%5D.png?imgmax=800" width="577" height="484" /></a>  <br />デプロイ完了です。最初は、Stoppedなので、Runボタンをクリックしアプリケーションを開始します。 <br /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI-USYvN6eI/AAAAAAAAAUk/2-Xgjr2dqDA/s1600-h/image%5B45%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI-UTPXT3TI/AAAAAAAAAUo/j6dc5nOzLXs/image_thumb%5B23%5D.png?imgmax=800" width="578" height="484" /></a> </p> <p>しばらく、待つとデプロイが完了します。ステータスは次のように変更されます。 <br /><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-UTj-X7NI/AAAAAAAAAUs/HdiIDGZsRr0/s1600-h/image%5B48%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-UT---4pI/AAAAAAAAAUw/RZmAm548RnU/image_thumb%5B24%5D.png?imgmax=800" width="107" height="57" /></a> <br /><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-UUTr8aFI/AAAAAAAAAU0/U5EexyuIevo/s1600-h/image%5B51%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI-UU3IqmnI/AAAAAAAAAU4/GVGho_9SroM/image_thumb%5B25%5D.png?imgmax=800" width="118" height="60" /></a> <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI-UVa-agXI/AAAAAAAAAU8/mKfiAbcvDVo/s1600-h/image%5B54%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI-UWInEUGI/AAAAAAAAAVA/xuQCm5vWGQ4/image_thumb%5B26%5D.png?imgmax=800" width="101" height="49" /></a> <br /></p> <p>以上で、すべて完了。 </p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-68638195753892565962010-09-13T23:27:00.001+09:002010-09-13T23:27:55.515+09:00開発環境での実行<p>油断すると、すぐ間隔が開いてしまって困ったことです。</p> <p><a href="http://daisy64.blogspot.com/2010/09/windows-azure-tool.html" target="_blank">前回</a>の続きです。今回は、とりあえず実行するために、デフォルト設定で突き進みます。</p> <p>まずは、プロジェクトの作成から。 <br />VisualStudio2010を管理者モードで起動し(これ重要!いつも忘れます(^^;))、新しいプロジェクトの作成より、Windows Azure クラウドサービスを選択。 <br /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI40yeZ2RzI/AAAAAAAAASk/LEI-S7Bnn5g/s1600-h/image%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI40y7aicCI/AAAAAAAAASo/0qEfgQ4zfs0/image_thumb%5B1%5D.png?imgmax=800" width="644" height="446" /></a>  <br />プロジェクトには、とりあえず、ASP.NET Webロールを一つだけ追加。 <br /><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TI40zs5AzxI/AAAAAAAAASs/5GoTpIiYDQ4/s1600-h/image%5B10%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI400UZ-HSI/AAAAAAAAASw/o-t544Tttdk/image_thumb%5B4%5D.png?imgmax=800" width="644" height="478" /></a> <br />すると、ソリューションが作成されます。 <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI400rRyikI/AAAAAAAAAS0/8H4KSZCnMMA/s1600-h/image%5B14%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI401aSkBmI/AAAAAAAAAS4/uWLJ4pFQHzQ/image_thumb%5B6%5D.png?imgmax=800" width="406" height="484" /></a> <br />その後、いきなりF5で実行。ASP.NETで作成されたテンプレートページが表示されます。一見、普通のWeb開発と変わりません。 <br /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI402AhPUPI/AAAAAAAAAS8/v9hHhSRNx98/s1600-h/image%5B18%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI402_sdjlI/AAAAAAAAATA/39r5PGQASnM/image_thumb%5B8%5D.png?imgmax=800" width="644" height="403" /></a> <br />違いはというと、タスクトレイのアイコンぐらい <br /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TI403dZWbuI/AAAAAAAAATE/mfoWLYgy2gA/s1600-h/image%5B27%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI403umKXaI/AAAAAAAAATI/ow2JLXy-B6g/image_thumb%5B13%5D.png?imgmax=800" width="141" height="46" /></a> <br />右クリックメニューより、Development Fabric UIとDevelopment Storage UIを表示することが可能です。 <br />まずは、Development Fabric UI。 <br /><a href="http://lh4.ggpht.com/_Dq3MUVL_8x8/TI404BVBFGI/AAAAAAAAATM/ZuUgmJ1TY8I/s1600-h/image%5B31%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI4045vh_MI/AAAAAAAAATQ/dAJaYF_cNGg/image_thumb%5B15%5D.png?imgmax=800" width="644" height="484" /></a> <br />続いて、Develpment Storage UI。 <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI406MGMi2I/AAAAAAAAATU/i-ndBdjawcY/s1600-h/image%5B35%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TI406l8SuaI/AAAAAAAAATY/ztmXchKT114/image_thumb%5B17%5D.png?imgmax=800" width="644" height="208" /></a> </p> <p>以上で、ローカルでのAzureプロジェクトの実行は完了です。 次は、ようやくデプロイ。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-31115789009685341502010-09-01T23:20:00.001+09:002010-09-01T23:20:27.602+09:00Windows Azure Toolのインストール<p>昨日、<a href="http://daisy64.blogspot.com/2010/08/windows-azure-platformmsdn.html">Azureの申し込みを完了した</a>ので、今日は環境の整備。</p> <p>Windows Azure Toolsをインストールします。 <br />ダウンロードは、下記から。</p> <p>「Windows Azure Tools for Microsoft Visual Studio 1.2」 <br /><a title="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f" href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f">http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f</a></p> <p>リンク先ページにある、注意事項を参考にしつつインストールしました。 <br />Windows7(x64)×VS2010なので、↓だけ追加でインストール。 <br /><a title="http://code.msdn.microsoft.com/KB981002" href="http://code.msdn.microsoft.com/KB981002">http://code.msdn.microsoft.com/KB981002</a></p> <p>というわけで、環境の準備は終了。そして今日の作業も終了。 <br />明日はサンプル作りたいな。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-27886142829934340222010-08-31T23:53:00.002+09:002010-09-01T23:08:09.526+09:00Windows Azure PlatformのMSDNサブスクリプション特典<p>MSDNサブスクリプションを利用中の方には特典が用意されています。詳しくは↓。 <br />
<a title="http://msdn.microsoft.com/ja-jp/subscriptions/ee461076.aspx" href="http://msdn.microsoft.com/ja-jp/subscriptions/ee461076.aspx">http://msdn.microsoft.com/ja-jp/subscriptions/ee461076.aspx</a></p><p>幸いにもPremiumの割り当てがあるので、申し込みを行ってみます。 <br />
入り口は、MSDNサブスクリプションのページから。</p><p><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TH0XZEuMNoI/AAAAAAAAASM/FrwobdjMSmw/s1600-h/image%5B6%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TH0XZ9L_T_I/AAAAAAAAASQ/0yV8Gt0iAYU/image_thumb%5B2%5D.png?imgmax=800" width="352" height="484" /></a> </p><p>WIndows Azure プラットフォームのリンクをクリックすると、Microsoft Online Service カスターマー ポータルにサインインします。(アカウントがない場合は、ここで作成します。)</p><p><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TH0XazXh5XI/AAAAAAAAASU/veEtMJFDmyo/s1600-h/image%5B10%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/TH0XbrNRR5I/AAAAAAAAASY/TL_pVnIrRAw/image_thumb%5B4%5D.png?imgmax=800" width="538" height="265" /></a> </p><p></p><p>すると、ショッピングカートに商品が入っている状態に。あとは、同意するチェックボックスにチェックを入れて、購入手続きへ。(クレジットカード情報等を入力します。なぜか途中のValidationに引っかかって、何回か最初からやり直しましたが…)</p><p><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TH0Xcu07GtI/AAAAAAAAASc/GUnsiEQRuhM/s1600-h/image%5B14%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TH0XdcD4MNI/AAAAAAAAASg/dz9SMo83mZE/image_thumb%5B6%5D.png?imgmax=800" width="511" height="376" /></a> </p><p>あとは、サービスをアクティブにすれば終了。とりあえず、きょうはここまでか。</p>泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-47234077300310857872010-08-31T22:18:00.001+09:002010-08-31T22:18:26.525+09:00Azure始めたい。<p>行ってもいないTech・Edに影響されて、Azureの書籍を買ってしまいました。</p> <iframe style="width: 120px; height: 240px" marginheight="0" src="http://rcm-jp.amazon.co.jp/e/cm?t=daisy64-22&o=9&p=8&l=as1&asins=4798026956&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" frameborder="0" marginwidth="0" scrolling="no"></iframe> <p>とりあえず申し込みから始めるか…</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-43916306845285814902010-07-31T00:03:00.001+09:002010-07-31T00:03:46.033+09:00Expression Studio 4<p>今更ですが、ダウンロード可能になってました。 <br /><a title="http://www.microsoft.com/japan/products/expression/" href="http://www.microsoft.com/japan/products/expression/">http://www.microsoft.com/japan/products/expression/</a></p> <p>さて試すか。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-32944164137828991772010-06-30T23:48:00.001+09:002010-06-30T23:48:31.901+09:00SQLServer Compact Edition<p>SQLServerCeで行ロックがかかっているかの実験。</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1dcf7c71-4fe6-4618-9251-ce7a3db8432e" class="wlWriterEditableSmartContent"><pre name="code" class="c#">using (var connection1 = new SqlCeConnection(Settings.Default.Setting))<br />using (var connection2 = new SqlCeConnection(Settings.Default.Setting))<br />{<br /> connection1.Open();<br /> connection2.Open();<br /> var command1 = connection1.CreateCommand();<br /> var command2 = connection2.CreateCommand();<br /> using (var tran1 = connection1.BeginTransaction())<br /> using (var tran2 = connection2.BeginTransaction())<br /> {<br /> command1.Transaction = tran1;<br /> command2.Transaction = tran2;<br /><br /> command1.CommandText = "select * from table1 with (updlock) where id = 1";<br /> command2.CommandText = "select * from table1 with (updlock) where id = 1";<br /><br /> using (var reader1 = command1.ExecuteReader())<br /> using (var reader2 = command2.ExecuteReader())<br /> {<br /> while (reader1.Read() && reader2.Read())<br /> {<br /> Console.WriteLine(reader1.GetInt32(0));<br /> Console.WriteLine(reader2.GetInt32(0));<br /> }<br /> }<br /> }<br />}</pre></div><br /><br /><p>確かに。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-55736746320949580302010-06-24T00:10:00.002+09:002010-06-24T00:16:16.346+09:00Visual Studio 2010 Pro Power Tools<pre style="font-family: consolas">Visual Studio 2010 Pro Power Toolsをインストールしてみた。
<a title="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef" href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef">http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef</a></pre><ul><li>タブがカラフルになった<br/><br />
<a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/TCIj41bTKmI/AAAAAAAAARU/xRjsQDiFjA0/s1600-h/image%5B10%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TCIj6BbhOiI/AAAAAAAAARY/DWY5K-96I3w/image_thumb%5B6%5D.png?imgmax=800" width="644" height="56" /></a> </li>
<li>タブの設定がいろいろ設定項目が増えている<br/><br />
<a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TCIj7S52VkI/AAAAAAAAARc/5ApxBCE9iX0/s1600-h/image%5B14%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TCIj8nDfvKI/AAAAAAAAARg/X3Jd-rXtINc/image_thumb%5B8%5D.png?imgmax=800" width="644" height="442" /></a> </li>
<li>タブがピン留め出来る<br/><br />
<a href="http://lh4.ggpht.com/_Dq3MUVL_8x8/TCIj9qXvJGI/AAAAAAAAARk/z6TyHRbcT04/s1600-h/image%5B22%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/TCIj-r_Ot5I/AAAAAAAAARo/RtMOMy0xNR0/image_thumb%5B12%5D.png?imgmax=800" width="383" height="264" /></a><br />
</li>
<li>参照の追加ダイアログが変わった(しかも早い)<br/><br />
<a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TCIj_XP-EuI/AAAAAAAAARs/amPv9bFG9Yc/s1600-h/image%5B27%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/TCIj_-J2nqI/AAAAAAAAARw/x5xq4dlhMtY/image_thumb%5B15%5D.png?imgmax=800" width="644" height="372" /></a></li>
<li>現在の選択行がハイライトされる</li>
<li>HTMLコピーが出来る(↓)<br />
<span style="color: blue">var</span> list = <span style="color: blue">new</span> <span style="color: #2b91af">List</span><<span style="color: #2b91af">Class1</span>><br />
{<br />
    <span style="color: blue">new</span> <span style="color: #2b91af">Class1</span>{ Name = <span style="color: #a31515">"abc"</span>},<br />
    <span style="color: blue">new</span> <span style="color: #2b91af">Class1</span>{ Name = <span style="color: #a31515">"def"</span>, Inner = <span style="color: blue">new</span> <span style="color: #2b91af">Class1</span>{Name = <span style="color: #a31515">"DEF"</span>}},<br />
    <span style="color: blue">new</span> <span style="color: #2b91af">Class1</span>{ Name = <span style="color: #a31515">"ghi"</span>, Inner = <span style="color: blue">new</span> <span style="color: #2b91af">Class1</span>{Name = <span style="color: #a31515">"GHI"</span>}},<br />
};</li>
<li>トリプルクリックで一行選択<br/><br />
Wordと一緒ですな。</li>
<li>Ctrl+クリックで定義で移動<br/><br />
eclipseでそんな操作ができたような<br />
</li>
<li>Ctrl + Alt + ] で = がそろう(便利?)<br />
</li>
<li>縦位置のガイドラインが追加出来る<br />
</li>
</ul><pre style="font-family: consolas">など盛りだくさん。
あと、Alt+↑ とか Alt+↓とかで、コード移動が出来るみたいなのだが試してもよくわからなかった。</pre>泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com1tag:blogger.com,1999:blog-1169777165109806351.post-85777569873558624352010-06-01T22:34:00.001+09:002010-06-01T22:34:18.054+09:00スカラプロパティーに外部キーを追加する<p>Entity Framework4では、外部キーをスカラプロパティーとして公開することが出来ます。</p> <blockquote> <p>外部キーの使用 (Entity Framework) <br /><a href="http://msdn.microsoft.com/ja-jp/library/ee794150.aspx">http://msdn.microsoft.com/ja-jp/library/ee794150.aspx</a></p> </blockquote> <p>でも、追加方法がよくわからずはまったので備忘録。</p> <p>①追加からアソシエーションを選択すること。 <br />(ツールボックスからではダメ。ここではまった。) <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TAUMS_0uA1I/AAAAAAAAAQ4/ks7mmati-3I/s1600-h/image%5B8%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/TAUMTlG512I/AAAAAAAAAQ8/WDOjGXeVzs8/image_thumb%5B6%5D.png?imgmax=800" width="552" height="333" /></a></p> <p>②外部キープロパティーの追加にチェックを付ける <br /> <a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/TAUMUFosi5I/AAAAAAAAARA/A4MzHB4PpEM/s1600-h/image%5B23%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/TAUMUwMU3SI/AAAAAAAAARI/RILcUEkJmdI/image_thumb%5B13%5D.png?imgmax=800" width="492" height="650" /></a> <br />③プロパティーが追加されます。 <br /><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/TAUMVdzQiRI/AAAAAAAAARM/NpeuonO5my4/s1600-h/image%5B27%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/TAUMWL9zuuI/AAAAAAAAARQ/gtqz8hhG8WE/image_thumb%5B15%5D.png?imgmax=800" width="484" height="307" /></a> </p> <p>ところで、追加されたプロパティーが、どのアソシエーションに関連しているかを確認する方法がない?</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-56470812948976810102010-05-26T23:36:00.001+09:002010-05-26T23:36:50.156+09:00WPF - レイアウトのリセット<p>最近、またWPFの入門中。(何度目?)</p> <p>VisualStudio2010のデザイナでは、レイアウトのリセットというメニューが追加されています。</p> <p><a href="http://lh3.ggpht.com/_Dq3MUVL_8x8/S_0x_4qWOUI/AAAAAAAAAQw/htFdKwolvvQ/s1600-h/%C3%AC%C2%A4%C2%A2%C2%A6%C3%88n%C3%AA%C2%BB%C3%83%C3%88%5B3%5D.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="レイアウトのリセット" border="0" alt="レイアウトのリセット" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/S_0yAVSGByI/AAAAAAAAAQ0/k3WUlAAl9NE/%C3%AC%C2%A4%C2%A2%C2%A6%C3%88n%C3%AA%C2%BB%C3%83%C3%88_thumb%5B1%5D.jpg?imgmax=800" width="513" height="322" /></a></p> <p>それぞれ、XAMLから下記プロパティに関する記述が削除されます。</p> <table border="2" cellspacing="0" cellpadding="2" width="400"><tbody> <tr> <td valign="top" width="100">サイズ</td> <td valign="top" width="300">Height,Width</td> </tr> <tr> <td valign="top" width="100">配置</td> <td valign="top" width="300">VerticalAlignment,HorizontalAlignment</td> </tr> <tr> <td valign="top" width="100">余白</td> <td valign="top" width="300">Margin</td> </tr> </tbody></table> <p>結構便利でした。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-69868626654064109332010-05-20T00:18:00.002+09:002010-05-22T00:53:27.701+09:00WPFとWinForm@ITにて、WPFの連載とWinFormの連載がほぼ同時にスタート。<br />
<br />
連載:Windowsフォーム開発入門【Visual Studio 2010対応】<br />
http://www.atmarkit.co.jp/fdotnet/chushin/introwinform_index/index.html<br />
連載:WPF入門<br />
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_index/index.html<br />
<br />
いよいよ全面対決か?<br />
何度も途中で挫折しているので、WPFもう一回最初っから勉強し直そうかな。泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-19518799513152123802010-05-18T23:50:00.001+09:002010-05-22T00:53:48.721+09:00Visual Studio 2010 で WPFVS2010では、WPFのデザイナが強化されています。便利。<br />
でも、VS2010で作成したプロジェクトはBlend3で開けません。残念。<br />
<br />
Blend4待ち?泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-71792443398316690242010-05-01T00:33:00.002+09:002010-05-22T00:54:12.492+09:00x64環境のOLEDBドライバ<p>長らくx64環境からMDBファイルにアクセスすることが出来なかった。 <br />
(正しくは、32bitアプリとしてWOW64上で動作する様に、ビルド構成としてx86を指定する必要があった。)</p><p>Office2010(x64)をインストールすることにより、64bitのアプリケーションでもMDBファイルにアクセスできるようになる。ConnectionStringで”Microsoft.ACE.OLEDB.12.0”するだけである。 <br />
<br />
データ接続コンポーネントも、今はベータがとれていないが、そのうちベータがとれるだろう。 <br />
(2010 Office system Beta ドライバ: データ接続コンポーネント) <br />
<a title="http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=ja" href="http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=ja">http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=ja</a></p><p>これにより、32bitでは"Microsoft.JET.OLEDB.4.0"、64bitでは"Microsoft.ACE.OLEDB.12.0”と接続文字列を切り替えることにより、どちらの環境でも動作させることが可能になる。 <br />
※32bitでも下記ドライバをインストールすれば、"Microsoft.ACE.OLEDB.12.0”で接続が可能。 <br />
2007 Office system ドライバ: データ接続コンポーネント <br />
<a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=ja" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=ja">http://www.microsoft.com/downloads/details.aspx?FamilyId=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=ja</a> <br />
<br />
なお、32bitで動作しているか64bitで動作しているかは、IntPtr.Sizeで判定が可能だそうだ。</p><p>(とあるコンサルタントのつぶやき:Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応) <br />
<a title="http://blogs.msdn.com/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx" href="http://blogs.msdn.com/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx">http://blogs.msdn.com/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx</a></p><blockquote><p>なお、アプリケーションの内部から、現在自分が 64 ビット/32 ビットどちらで動作しているのかを知る一番簡単な方法は、IntPtr.Size プロパティをチェックするというものです。</p><ul><li>IntPtr.Size = 8 の場合は 64 ビットモードでプロセスが動作している。 </li>
<li>IntPtr.Size = 4 の場合は 32 ビットモードでプロセスが動作している。 </li>
</ul></blockquote>泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-10464776711157213662010-04-24T01:34:00.001+09:002010-04-24T01:35:24.204+09:00アンインストール訳あって、VisualStudioをアンインストール中。<br />
何でこんなに面倒なんでしょう。<br />
<br />
インストールされていたのは、VS2005/2008/2010+SQLServer2005/2008。<br />
でもプログラムの追加と削除にはかなりの数(50ぐらい?)の関連すると思われるプログラムが…<br />
もちろんこれらはVSをアンインストールするだけでは残ったまま。<br />
<br />
何でこんなに面倒なんでしょう。泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com1tag:blogger.com,1999:blog-1169777165109806351.post-72275132344198545212010-04-22T23:20:00.001+09:002010-04-22T23:20:05.652+09:00Visual Studio 2010日本語版をインストール。
週末に試そう。泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-53833463613959899282010-04-20T08:51:00.001+09:002010-05-22T00:54:33.442+09:00Windows7 on viliv S5<p>というわけで、Windows7化完了です。</p><p>感想。 <br />
・手書きツールいい感じ <br />
・gpsとCubeIUが不調 <br />
・動作はもっさり</p><p><a href="http://lh4.ggpht.com/_Dq3MUVL_8x8/S8zuIdOSfII/AAAAAAAAAQo/d4t8_h2_xk8/s1600-h/%21L%5B5%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="無題" border="0" alt="無題" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/S8zuJs_FqVI/AAAAAAAAAQs/8_a1pDyQdIM/%21L_thumb%5B3%5D.png?imgmax=800" width="244" height="172" /></a>  <br />
最後にUXインデックスでした。</p>泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-85911074009773877092010-04-16T22:55:00.001+09:002010-04-16T22:55:35.870+09:00viliv S5 、Windows7化<p>週末を利用して、viliv S5にWindows7をインストールすることを画策中。</p> <p>とりあえず、ブータブルのUSBメモリを作成中。 <br />最近はMicrosoftがISOからブータブルUSBメモリを作成するツールを配布してるんですな。 <br />ISOのダウンロード販売といい、便利な時代になったもんだ。 <br /><a title="http://www.microsoftstore.jp/Form/Guide/downloadTool.aspx" href="http://www.microsoftstore.jp/Form/Guide/downloadTool.aspx">http://www.microsoftstore.jp/Form/Guide/downloadTool.aspx</a></p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-77962032649345892752010-04-14T23:16:00.001+09:002010-04-14T23:16:02.008+09:00PLinq<p>Visual Studio 2010(.NET Framework 4)より、PLINQ (Parallel LINQ)が追加され、並列処理が簡単にできるようになっています。</p> <blockquote> <p><a href="http://msdn.microsoft.com/ja-jp/netframework/ff602883.aspx">10 行でズバリ !! 並列プログラミング - PLINQ (C#)</a>より <br />PLINQ は LINQ によるデータ コレクションに対するクエリ処理を並列化するためのものであり、PLINQ を使用することで LINQ クエリの Select 句や Where 句で実行されるロジックを容易に並列処理化することが可能です。PLINQ の機能は ParallelEnumerable クラス (System.Linq.ParallelEnumerable) の拡張メソッドとして提供されており、LINQ クエリの処理対象データ コレクションに対して ParallelEnumerable クラスの拡張メソッドの呼び出しを追加するだけでデータ コレクションへの処理を並列化し、マルチプロセッサー/マルチコア CPU の処理能力を活用して処理時間を短縮することができます。</p> </blockquote> <p>と言うわけで、<a href="http://daisy64.blogspot.com/2010/04/blog-post.html">先日の重いLinq</a>構文を何とか出来ないかとあちこちにAsParallelを追加してみました。 <br />が、Aggregate構文を途中で使用しているためか、追加前より速くなることはありませんでした。 <br />残念。</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-81135379420127882382010-04-14T00:26:00.002+09:002010-04-14T00:34:13.333+09:00Visual Studio 2010<p insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">というわけで、早速お試し。</p> <p insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><strong insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">気になる機能その1</strong> <font color="#ff0000" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><strong insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">Coded UI Test <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></strong></font><font color="#ff0000" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><font color="#000000" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">なんと、GUIのUnitテストが出来るらしい。</font></font></p> <p insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><font color="#ff0000" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><font color="#000000" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">①まずは、超簡単なWinFormアプリを作成</font> <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/S8SM-j6iXZI/AAAAAAAAAPw/iHNNpz5TnI4/s1600-h/image%5B2%5D.png" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/S8SM_MlUrxI/AAAAAAAAAP0/7GJcqe7Dr2U/image_thumb.png?imgmax=800" width="230" height="114" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></a> <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /><font color="#000000" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">テキストボックスに文字列をいれて、ボタンを押下すると下記ダイアログを表示する <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/S8SM_lwPy6I/AAAAAAAAAP4/rqQn8o-paVY/s1600-h/image%5B5%5D.png" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_Dq3MUVL_8x8/S8SNAYuN9tI/AAAAAAAAAP8/xkev2quT-nE/image_thumb%5B1%5D.png?imgmax=800" width="165" height="182" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></a> <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />ただそれだけです。</font></font></p> <p insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">②テストの追加 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/S8SNBO6V0dI/AAAAAAAAAQA/gx-NwhBofUU/s1600-h/image%5B9%5D.png" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/S8SNBzcRsOI/AAAAAAAAAQE/-NV928du0s0/image_thumb%5B3%5D.png?imgmax=800" width="599" height="594" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></a>  <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />Testメニューから、NewTestを選択。そうすると下記ダイアログが表示されるので、Coded UI Testを選択する。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />  <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /> <a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/S8SNCSjU8pI/AAAAAAAAAQI/bulOcfoR_pI/s1600-h/image%5B17%5D.png" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_Dq3MUVL_8x8/S8SNDEQwtnI/AAAAAAAAAQM/sulH0edn_9s/image_thumb%5B7%5D.png?imgmax=800" width="485" height="360" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></a> <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />そうすると、どうやってUIテストを作成するかを聞いてくる。一番最初はテスト資産がないので、上を選択。<a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/S8SNDl1KcvI/AAAAAAAAAQQ/sBDIYs9srpA/s1600-h/image%5B20%5D.png" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"> <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /> <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Dq3MUVL_8x8/S8SNEQlOFnI/AAAAAAAAAQU/eslTG85tMhA/image_thumb%5B8%5D.png?imgmax=800" width="234" height="67" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></a>  <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />画面の右下に、小さなポップアップ?が表示されるので、準備OK。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /> <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />ここからの正しい使い方がよくわかっていないので、適当に。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />(i)テスト対象アプリの起動 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />とりあえず、テスト対象が起動していないことにはどうにもならないので、起動します。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />(ii)赤いボタンを押下 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />操作記録が開始されます。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />(iii)適当に操作 <br />検証したいポイントの手前まで操作します。今回の場合、はテキストボックスに文字入力&ボタン押下。 <br />(iv)一番右のボタン押下 <br />行った操作に対するコードが生成されます。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />(iv)照準アイコンを検証したいコントロールへD&D <br />対象コントロールのプロパティーが表示されます。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /><a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/S8SNEzxZ2GI/AAAAAAAAAQY/ZPdpoF-DMdA/s1600-h/image%5B24%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/S8SNFQGE1GI/AAAAAAAAAQc/ioWY9i7ll1g/image_thumb%5B10%5D.png?imgmax=800" width="334" height="337" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></a>  <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" />(v)検証したいプロパティーを選択し、Add Assertionをクリック <br /><a href="http://lh6.ggpht.com/_Dq3MUVL_8x8/S8SNGbxAttI/AAAAAAAAAQg/5lu9cLadlZQ/s1600-h/image%5B31%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/S8SNHH_lSpI/AAAAAAAAAQk/RTkGwn8qpGg/image_thumb%5B13%5D.png?imgmax=800" width="334" height="337" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /></a>  <br />表示されるダイアログで、検証の条件を追加します。 <br />(vi)再び、コードを生成 <br />今度はAssertionコードが追加されます。 <br insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1" /> <br />以上で、テストケースの作成は終わり。</p> <p insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1">③テストの実行 <br /> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1506242a-cf55-4ccd-9002-57b127598d64" class="wlWriterEditableSmartContent" insertadjacenthtml="function (loc, code) { // HTML Content changing.. _baseInsertFunction(loc, code); try { vsttTrackHover.NodeAddition(); vsttTrackHover.OverrideNodes(domElement.parentNode.all, 0); } catch (ex) { } }" __vsttTracked="1"><pre name="code" class="c#">[TestMethod]<br />public void CodedUITestMethod1()<br />{<br /> this.UIMap.RecordedMethod1();<br /> this.UIMap.AssertMethod1();<br />}</pre></div><br />上記テストメソッドが作成されるので、右クリックからテストの実行を選択。<br />/>テストが実行される。<br />※テスト実行前にも必ずテスト対象を起動してあげないとダメ。このあたりはちゃんとした手法があると思うのだがよくわからん。</p><p><strong>気付き</strong><br />IMEが有効になっていると、途中でテストが失敗する。 <br />いまいち。自動テストとかできるんだろうか。。。</p>泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-56161985897021029472010-04-13T07:11:00.001+09:002010-04-13T07:11:21.934+09:00Visual Studio 2010<p>MSDNサブスクリプションで、ダウンロードが開始されてますな。 <br />英語版だけど。日本語はいつ?</p> 泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-61861037695036686622010-04-11T19:30:00.002+09:002010-04-12T22:09:01.632+09:00pocket wifi を買った<p>前々から欲しかったPocket Wifiを買ってしまった。 <br /><a href="http://emobile.jp/pocketwifi/">http://emobile.jp/pocketwifi/</a> <br /> <br />買った後で、何なんですが、コース別の料金を比べてみた。<a href="http://lh5.ggpht.com/_Dq3MUVL_8x8/S8Gk3xWwYoI/AAAAAAAAAPo/wprle8FTPfw/s1600-h/image%5B3%5D.png"> <br /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Dq3MUVL_8x8/S8Gk4TifK_I/AAAAAAAAAPs/67Ww71ujVxc/image_thumb%5B1%5D.png?imgmax=800" width="470" height="253" /></a></p> <p>スーパーライトのライト加減がよくわかりますな。 <br />どのコース従量の部分が狭いこと。。。 </p>泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0tag:blogger.com,1999:blog-1169777165109806351.post-5157609902286710382010-04-08T00:38:00.002+09:002010-04-12T22:08:37.764+09:00順列の問題<blockquote> <p>0~9までの数字のカードがN枚ある。同じ数字のカードは1枚とは限らない。 <br />そこから、M枚使用しM桁の整数を作るとき、小さい方から数えi番目の数値は何か? <br />※先頭桁に0はこないものとする。</p> </blockquote> <p>という問題が与えられた場合、これを効率よく説くにはどうすればよいか?</p> <p>とりあえず、効率よくという部分は無視して、順列を作成して前から数えてみた。順列を作成するに当たりLinqを使用しているサイトが見つかったので、利用にさせていただいた。 <br /><a href="http://d.hatena.ne.jp/taguo/20080722/1216745650">http://d.hatena.ne.jp/taguo/20080722/1216745650</a></p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:6d349c7b-8be7-4eed-982c-d3e750bb9e81" class="wlWriterEditableSmartContent"><pre name="code" class="c#">class Program<br />{<br /> static void Main(string[] args)<br /> {<br /> int[] array = {0,0,1,2,2,3};<br /> var result = array.GetPermutation(4)<br /> .Where(x => x.ElementAt(0) != 0)<br /> .Select(x => string.Join("", x.Select(i => i.ToString()).ToArray()))<br /> .Distinct();<br /><br /> result = result.Skip(10).Take(1);<br /> foreach (var item in result)<br /> {<br /> Console.WriteLine(item);<br /> }<br /> }<br />}<br /><br />public static class Util<br />{<br /> public static IEnumerable<IEnumerable<T>> GetPermutation<T>(this IEnumerable<T> source, int count)<br /> {<br /> return Enumerable.Range(0, count)<br /> .Select(_ => source)<br /> .Select(et => et.Select((t, i) => new { t, i }))<br /> .Aggregate(Enumerable.Repeat(Enumerable.Repeat(new { t = default(T), i = default(int) }, 0), 1)<br /> , (ac, et) => from a in ac<br /> from t in et<br /> where !a.Contains(t)<br /> select a.Concat(Enumerable.Repeat(t, 1)))<br /> .Select(ea => ea.Select(a => a.t));<br /> }<br />}</pre></div>泥爺http://www.blogger.com/profile/17850703522238623034noreply@blogger.com0