<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7322506539470265225</id><updated>2012-01-15T22:47:13.104+09:00</updated><category term='ロボット'/><category term='「黄金の三日間」'/><category term='初心者'/><category term='SilverLight'/><category term='C/C++'/><category term='.NETFramework'/><category term='perl'/><category term='画像処理'/><category term='ゲーム'/><category term='WebApplication'/><category term='XNA'/><category term='Mercurial'/><category term='インタプリタ'/><category term='開発'/><category term='C#'/><category term='テスト'/><category term='AR'/><category term='教育'/><category term='iPhone'/><category term='GPGPU'/><category term='マネジメント'/><category term='Ruby'/><category term='環境'/><category term='電子書籍'/><category term='Eclipse'/><category term='mac'/><category term='ゲーム開発'/><category term='HKK'/><category term='研究'/><category term='雑記'/><category term='雑談'/><category term='IronPython'/><category term='書籍サービス'/><category term='Android'/><category term='WPF'/><category term='DEMO'/><category term='ＡＩ'/><category term='HappyHackingKeyboard'/><category term='OpenGL'/><title type='text'>日々吾は</title><subtitle type='html'>私が日々、情報技術に関して勉強したこと、試したこと、間違えてから試したことなど特に内容のないことの記録。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default?start-index=101&amp;max-results=100'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>172</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8275107238397997793</id><published>2020-01-20T23:03:00.000+09:00</published><updated>2009-01-20T23:07:53.388+09:00</updated><title type='text'>はじめまして</title><content type='html'>はじめまして、HN：Judaと申すものです。&lt;br /&gt;このブログは、日々の思いつきや試行錯誤の後をつづることを旨としています。&lt;br /&gt;ここに決定的な解答がかかれないこともままあると思いますが、そういうブログなのでご容赦を。&lt;br /&gt;内容も情報技術やアニメ、マンガで気になるものをPickUpします。&lt;br /&gt;&lt;br /&gt;長く続けられるようにゆるくやっていきます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8275107238397997793?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8275107238397997793/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/01/blog-post.html#comment-form' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8275107238397997793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8275107238397997793'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/01/blog-post.html' title='はじめまして'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-1180836208046018348</id><published>2012-01-15T22:47:00.000+09:00</published><updated>2012-01-15T22:47:13.112+09:00</updated><title type='text'>幸せな未来は「ゲーム」が創る　備忘録その１</title><content type='html'>どうもJudaです。&lt;br /&gt;『REALITY IS BROKEN』の邦訳を読んでいる中で特筆すべき記述があったので、備忘録。&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ひとつは、ゲーマーはきわめて貴重な―そしてほとんど活用されていない―参加容量提供源だということです。（12行&amp;nbsp;p. 329 2011年11月15日 幸せな未来は「ゲーム」が創る 早川書房）&lt;/li&gt;&lt;li&gt;ふたつ目は、クラウドソーシングプロジェクトはー本当に意欲的な目標を達成できるだけの参加容量を集められる見込みが多少なりともある場合にはー優れたゲームが与える報酬と同じような内発的報酬を与えられるように、意図的にデザインする必要があるということです。（16行&amp;nbsp;p. 329 2011年11月15日 幸せな未来は「ゲーム」が創る 早川書房）&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;如何にしてクラウドソーシングをして、少ない人数では達成できないように思えるプロジェクトを達成するのかということに言及している。第三部はそれまでとは一転して発展的な考察が多いので、面白い。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-1180836208046018348?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/1180836208046018348/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2012/01/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1180836208046018348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1180836208046018348'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2012/01/blog-post.html' title='幸せな未来は「ゲーム」が創る　備忘録その１'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-177436982835809739</id><published>2011-12-26T14:02:00.001+09:00</published><updated>2011-12-26T14:04:02.221+09:00</updated><title type='text'>ウォークスルーまとめ</title><content type='html'>どうもJudaです。&lt;br /&gt;レビューに引き続き、ウォークスルーについてまとめます。&lt;br /&gt;&lt;a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20070910/281567/" target="_blank"&gt;第8回　ウォークスルーとインスペクション--設計・開発の早期に欠陥を発見・除去し品質を作り込む &lt;/a&gt;&lt;br /&gt;&lt;i&gt;点検対象物としては，システムのDFD（Data Flow Diagram），データの正規化結果，E-R（Entity-Relationship）図，データ・ディクショナリ，画面・帳票仕様や操作仕様などの外部入出力仕様，データベース仕様，モジュール構造や処理機能記述，各種の作業手順書などがある。&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cqpub.co.jp/dwm/column/ito/dwm0020itom5.htm" target="_blank"&gt;「ウォークスルー」を成功させるコツ ――ソフトウェア工学のテクニックがHDL設計を支援 part II &lt;/a&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;一般にレビューは契約ないしは，標準として定められた正式な認証行為である．これに対して，ウォークスルーはよりインフォーマルな活動を指しており，レビューにはない利点をもっている．&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;他人の設計ドキュメントやコードを読むのであるから，集中力が必要である．したがってウォークスルー自体は短時間に区切って進めるべきである．集中はするが，時間としては「あっさり」すませるべきだ．前述の『ソフトウェアの構造化ウォークスルー』では，ウォークスルーの時間は30分以内が望ましいとしている．&lt;/i&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;[1]設計された全体の構造&lt;br /&gt;[2]重要で困難な設計箇所&lt;br /&gt;[3]複雑なロジックを実現しているコード&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;総括すると、 &lt;br /&gt;&lt;ul&gt;&lt;li&gt;短時間で済ませる。 &lt;/li&gt;&lt;li&gt;長時間やることは不適切。例えば30分ぐらいですべてを確認する。 &lt;/li&gt;&lt;li&gt;問題全体の構造を理解できるような資料を可視化することが重要。 &lt;/li&gt;&lt;li&gt;困難な部分に焦点を当てる。 &lt;/li&gt;&lt;li&gt;問題点を対象としてウォークスルーを行う。&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-177436982835809739?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/177436982835809739/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/177436982835809739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/177436982835809739'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/blog-post.html' title='ウォークスルーまとめ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4612664078648769667</id><published>2011-12-26T13:44:00.001+09:00</published><updated>2011-12-26T13:45:01.370+09:00</updated><title type='text'>コードレビュー解体</title><content type='html'>どうもJudaです。&lt;br /&gt;コードレビューがあるので、しっかりと基礎固めをします。&lt;br /&gt;と言っても、まずは既存の解説記事に当たろうと思います。&lt;br /&gt;&lt;a href="http://peace-pipe.blogspot.com/2006/10/memo_20.html"&gt;効率の良いコードレビュー [software]&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.developer.com/java/other/article.php/3579756" target="_blank"&gt;Effective Code Reviews Without the Pain&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.shukuzawa.com/diary/diary071001.html" target="_blank"&gt;レビューの基礎知識&lt;/a&gt; &lt;br /&gt;をあげます。&lt;br /&gt;&lt;br /&gt;やはり基本的にはコードレビューは、&lt;br /&gt;&lt;ol&gt;&lt;li&gt; コードの品質の保証&lt;/li&gt;&lt;li&gt;知識の共有/開発者同士の成長促進 &lt;/li&gt;&lt;/ol&gt;が念頭にあります。&lt;br /&gt;&lt;br /&gt;また議論としてコードを題材にしているだけであり、それを記述した個人の資質、存在に言及することはよくないことであると注記しています。つまり&lt;b&gt;よくあること&lt;/b&gt;であると言っているのです。&lt;br /&gt;&lt;br /&gt;またToshiya HASEGAWA氏の意見である、ソースコードを頭から眺めていくことの非効率性についての言及はもっともであると思います。 &lt;br /&gt;しかしToshiya HASEGAWA氏の意見に私見を加えるならばペアレビューでの、文法チェックやコーディングルールの遵守の確認は、あまりに機械的な作業であるため、コンパイラやチェッカで調べればよく、人間でなければならない理由はあまりないと考えます。私はペアレビューをもし行う場合には、局所的なロジックの妥当性確認やクラス単体での呼び出し整合性の確認を行うほうがより苦痛（退屈）が少なくなると推察します。&lt;br /&gt;&lt;br /&gt;チームレビューでのチェックは、微に入り細に入ったレビューを行うがため、&lt;br /&gt;&lt;i&gt;The developer often feels like it's a bashing session designed to beat out their will.&amp;nbsp;&lt;/i&gt; &lt;br /&gt;（意訳：開発者はコードレビューは彼らの心を打ちのめすために設計された糾弾の打ち合わせのように思っています。）&lt;br /&gt;すべては雰囲気作り次第であるとは言えますが、たやすくそういう場にしてしまうので、参加者すべてがルールを強く守らないといけません。&lt;br /&gt;&lt;br /&gt;宿澤経営情報事務所さまの記事では、さまざまなレビューについて簡単にまとめられており、そのなかで挙げられているインスペクションの有用性と落とし穴についても言及されています。この中でも、レビューが個人の資質を糾弾するための記録として利用されるかもしれないという疑心暗鬼のために、自身の資質をPRするために、レビュー自体が活発なものにならない可能性を指摘しています。組織内での政治的な活動の一部が正常なインスペクションを阻害するのです。組織内での政治的な活動のために、協調的教育的な意味合いの近い活動を利用することは本来のレビューの目的を阻害してしまうため、とても強く注意されていますが、やはりそれだけ多く見られる行動であると推察します。&lt;br /&gt;&lt;br /&gt;コードレビューの多様な形態やその基本的なルールを勘案すると、&lt;br /&gt;&lt;ul&gt;&lt;li&gt;コードというよりも、そこに記述されているロジックを如何にすれば、特定の目的により合致するようにできるのかを多様な解答の中から提案する場としてレビューがある。&lt;/li&gt;&lt;li&gt;個人の資質について言及することは、それ自体がレビューの趣旨に合わず、場の活動を阻害するため、参加者すべてがつよく守るべきルールである。&lt;/li&gt;&lt;li&gt;微に入り細に入りコードをレビューすることは、全体的な質を均一にするためには必要かもしれないが、あまりに時間がかかりすぎるため、ここでもカプセル化を推進し、事象の粒度を粗から細に臨機応変にすることが望ましい。&lt;/li&gt;&lt;li&gt;なぜという問いかけは、その質問自体がコードを記述した個人のみに帰属する問いになるため、絶対にしてはならない。&lt;/li&gt;&lt;/ul&gt;というのが大枠である。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4612664078648769667?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4612664078648769667/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/juda-software-effective-code-reviews.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4612664078648769667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4612664078648769667'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/juda-software-effective-code-reviews.html' title='コードレビュー解体'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6271229521172322747</id><published>2011-12-16T00:12:00.001+09:00</published><updated>2011-12-16T00:15:15.207+09:00</updated><title type='text'>The Bug Genie</title><content type='html'>どうもJudaです。&lt;br /&gt;Issue Tracking Systemを検討中で、掲題のソフトウェアが最近出た奴でいい感じという記事を見つけたので準備中。&lt;br /&gt; せっかくのLinux系のマシンもあるので、いろいろ調べています。導入するためにDBが必要なのだが、この関連の知識に乏しいためインストール手前でぐるぐるしてます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6271229521172322747?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6271229521172322747/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/juda.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6271229521172322747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6271229521172322747'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/juda.html' title='The Bug Genie'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8831891956871677439</id><published>2011-12-07T00:21:00.001+09:00</published><updated>2011-12-07T00:38:11.925+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='初心者'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>AndroidでのAdapterView-Adapter</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;今日はAndroidでのAdapterVIewとAdapterの関係についてです。&lt;br /&gt;&lt;br /&gt;AdapterViewの継承クラスでは、Adapterを使ってデータと表示を密に連携させることだと思います。&lt;br /&gt;この場合にAdapterViewは大量のデータを高速に表示し、スクロールをよりよくサポートしていることを要求されます。&lt;br /&gt;&lt;br /&gt;単純なLinearLayoutの実装では、子要素の数が増えれば増えるほど遅くなります。&lt;br /&gt;これは表示可能領域以外の要素の計測、レイアウト、描画を行ってしまうからです。&lt;br /&gt;また合わせて覚えておきたいことは、Androidでもっとも計算コストの高い処理の一つにLayoutInflaterでのinflateメソッドがあります。XMLからのパース処理はAndroidでもやはり遅いのです。またView要素のコンストラクトも同じく重くなる可能性が高く、あまり多用すると著しい処理コストになります。&lt;br /&gt;&lt;br /&gt;上記のような制約がある中で、ListViewなどは高速な表示を可能にしています。&lt;br /&gt;これは、一度生成したViewを再度利用しているからです。&lt;br /&gt;ここからがAdapterViewとAdapterの連携に関わります。&lt;br /&gt;AdpaterViewは、onLayoutでItemを準備します。&lt;br /&gt;この際に、新規にレイアウトする際に、スクロール変位を計算し、それのあと可視領域内に残っているView要素のみを残して、可視領域を外れたものをリサイクルするために格納します。ここでAdapterのTypeIDCount分の格納場所が用意されています。&lt;br /&gt;Viewは排除したあとに、新しく可視領域に出現するView要素を子要素として追加します。このときに使われるのが、addViewInLayoutです。この段階では、単純に子要素として追加したのみであるので、計測処理を行い、のちにLayoutを行います。これはAndroidのLayoutメカニズムの基本です。&lt;br /&gt;addViewInLayoutで追加する際に、利用しているViewは、AdapterのgetViewメソッドによって提供されるものです。このときにconvertViewとしてViewが提供されます。このViewは先ほどの可視領域外にでてしまったViewを格納したところからリサイクル用に提供されたり、また存在しない場合にはnullで提供されます。&lt;br /&gt;&lt;br /&gt;大まかな流れはこんな感じです。Adapterには、今回説明していない実装を行うことが求められるメソッドがあります。&lt;br /&gt;&lt;br /&gt;静的なIDはデータベースで言うところのIDであり、通常使われるPositionは抽象的な意味でリストの「位置」を表します。またこれを抽象的な意味での「位置」とすることで、内部でソートを行っても、フィルタリングをかけても、とにかく該当するデータを取得する、表現を行うViewを提供することの実装部分をうまく隠蔽できます。&lt;br /&gt;&lt;br /&gt;ただ、よくできたInterfaceなのですが、AdapterViewからの実装がめんどくさいです。AbsListViewはそもそもの実装がY-座標系指向が強いので、X-座標系向けではありません。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8831891956871677439?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8831891956871677439/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/androidadapterview-adapter.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8831891956871677439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8831891956871677439'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/12/androidadapterview-adapter.html' title='AndroidでのAdapterView-Adapter'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-305917350586966437</id><published>2011-11-23T23:20:00.002+09:00</published><updated>2011-11-23T23:59:53.341+09:00</updated><title type='text'>Android覚書</title><content type='html'>どうもJudaです。&lt;div&gt;Androidについてあれこれ。&lt;div&gt;&lt;ul&gt;&lt;li&gt;layoutファイルはlayout*/*に配置される。&lt;/li&gt;&lt;li&gt;layoutファイルでのandroid:*は、xmlnsで定義されているから利用できる。&lt;/li&gt;&lt;li&gt;xmlnsを新しく定義すれば、別の区切りを使えるようになる。しかしEclipseでの入力補助はうまく効かなくなる。&lt;/li&gt;&lt;li&gt;別ファイルに別のlayoutを作成できる。&lt;/li&gt;&lt;li&gt;別ファイルに定義したlayoutは、&lt;include layout="&amp;lt;reference&amp;gt;"&gt;で呼び出せる。&lt;/include&gt;&lt;/li&gt;&lt;li&gt;プログラムから呼び出す場合には、LayoutInflaterを利用する。AndroidのVersionによって呼び出し方が異なるので、要注意。&lt;/li&gt;&lt;li&gt;mergeをrootにもつlayoutは、基本的にはLayoutInfalterからLayoutを呼び出し、親要素に対してアタッチすることが必要になる。&lt;/li&gt;&lt;li&gt;またmergeでアタッチする場合に、親要素はFrameLayoutなどの一部のViewGroupの派生系に限られる。&lt;/li&gt;&lt;li&gt;merge機構を利用して、構築済みのレイアウトを使うカスタムViewコンポーネントを作成できる。&lt;/li&gt;&lt;li&gt;mergeする場合には、親要素とは継承したクラスのことになることが多いので、FrameLayoutなどを継承することで処理を簡略化できる。&lt;/li&gt;&lt;li&gt;inflateしてアタッチした場合はidなどの設定がずれることがあるので、LayoutInflaterのinflateメソッドの戻り値に対して、findViewByIdなどを使うことが必要になる。&lt;/li&gt;&lt;li&gt;onLayoutは、親から呼ばれ、表示可能領域が親要素からの相対的な引数で与えられる。&lt;/li&gt;&lt;li&gt;ViewGroupの系列にあるクラスコンポーネントを開発する場合には、onLayoutやonMeasureを実装することが、必然的に必要になってくる。あとはaddViewの実装を操作するとXMLでのLayoutで子要素を書く数を変えられる。&lt;/li&gt;&lt;li&gt;onLayoutでは、子要素をレイアウトすることが趣旨である。&lt;/li&gt;&lt;li&gt;onLayoutで呼び出す子要素は自身からの相対位置で子要素に対して通知する。その後の配置と描画はここのViewに依存する。MerginやPaddingの取り扱いについては、不定。&lt;/li&gt;&lt;li&gt;onMeasureは自分自身のサイズと子要素をもつ場合には、子要素が確保できるサイズに関して通知をする。はず。。。&lt;/li&gt;&lt;li&gt;onMeasureでは複数のモードを確認する必要性がある。EXACTRY,AT MOST,UNSPECIFIEDがある。&lt;/li&gt;&lt;li&gt;Androidではインスタンスの生成はとてもリソースを必要とする。またLayoutInflaterは更に多くのリソースを必要とする。XMLのパーサが重いらしい。&lt;/li&gt;&lt;li&gt;AndroidではViewの作成が重いため、ListViewとAdapterViewの組み合わせでは、利用したViewを再利用する機構を採用している。&lt;/li&gt;&lt;li&gt;ListViewでは、Scrollによって表示内容が変更された場合に、表示しているViewを減らしたり増やしたりをしている。減らす際に、ViewをRecycleBinに入れておき、なるべく再利用する。またViewの種類が幾つかある場合には、RecycleBinを増やし、種類を識別して対応している。&lt;/li&gt;&lt;li&gt;ListViewやScrollViewはaddChildの利用を制限してる。&lt;/li&gt;&lt;li&gt;独自のクラスを作成し、属性を増やす場合には、value/attrsで記述する。基本的な動作はAndroidのソースコードを参考にすることがよい。またEclipseではattrs.xmlの記述をサポートしてもらえないので、よりソースコードを参考にする必要が出てくる。&lt;/li&gt;&lt;li&gt;ListViewはAbsListViewを継承して作成されているが、あくまでVerticalな動作のみを期待しているので、HorizontalなListViewの実装はAdaperView&lt;listadapter&gt;などから実装する必要があり、動作の速度をあげるために、前述のRecycleをする機構を組み込む必要がある。この機構で重要なのは、onLayoutで表示しなくなる要素の確認と、表示しなくなったところを復元するために再度Viewを増やすこと、そしてスクロールオフセットを考慮して、子要素を配置することである。&lt;/listadapter&gt;&lt;/li&gt;&lt;li&gt;Scrollerを利用すると、スクローリングやフリックなどの処理を代行させられる。ただし痒いところに手が届かない場合には、再実装が必要になる。&lt;/li&gt;&lt;li&gt;GestureDetector.SimpleOnGestureクラスの実装は痒いところに手がとどかないので、実装内容を確認して、別の実装を組み立てることがより細かな設定を行なっていく上で必要になる。&lt;/li&gt;&lt;li&gt;onDrawを利用することを考えるならば、Drawableの利用を考慮することを推奨する。またsetBackgroundとの兼ね合いが問題にならないように注意したい。&lt;/li&gt;&lt;li&gt;AdapterViewでinflateしてEventを作る場合には、特定のイベントで内容を更新する場合には、そのイベントリスナーに登録する実装はAdapterViewに配置しておかないとうまくnotifyを呼び出せなくなる。&lt;/li&gt;&lt;li&gt;上記のような実装は、階層性を持ったカスタムコンポーネントにそれぞれの処理を実装させてしまうと発生する。（個人の設計ミスであるとは思うが、テストなどをしながら開発しているとよく起こると思う。）&lt;/li&gt;&lt;li&gt;ListViewへのrequestLayoutは子要素のonLayoutの呼び出しを保証しないので、子要素が変化する場合には、子要素自身のrootへrequestLayoutが流れることが必要になる。&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-305917350586966437?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/305917350586966437/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/11/android.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/305917350586966437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/305917350586966437'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/11/android.html' title='Android覚書'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6111483978450282185</id><published>2011-07-18T22:36:00.002+09:00</published><updated>2011-07-18T22:46:17.465+09:00</updated><title type='text'>読書について</title><content type='html'>どうもJudaです。&lt;div&gt;つらつらと&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;読書をしながら線を引いたり、&lt;/div&gt;&lt;div&gt;ノートを取ったり、&lt;/div&gt;&lt;div&gt;最近は読むという行為から一歩踏み込んで、&lt;/div&gt;&lt;div&gt;能動的に取り組んでいる。&lt;/div&gt;&lt;div&gt;しかしこの行為をすればするほど、&lt;/div&gt;&lt;div&gt;まとめるという行為が如何に難しいのかが、&lt;/div&gt;&lt;div&gt;明瞭になってくる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まとめるために能動的に取り組んでいるのではないが、&lt;/div&gt;&lt;div&gt;ノートの分量は増えるし、書き込みも増えてくる。&lt;/div&gt;&lt;div&gt;そうなるとやはり視認性が落ちるし、網羅性も悪くなる。&lt;/div&gt;&lt;div&gt;だんだん頭の中が混線しているような感覚に囚われる。&lt;/div&gt;&lt;div&gt;そういう感覚を契機にして、ふっと、まとめようと思う。&lt;/div&gt;&lt;div&gt;しかし此処に至って、自分が如何に濃度の低い読書をしているのか&lt;/div&gt;&lt;div&gt;突きつけられる。うまくまとめられないのだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まとめようにもそれらをまとめていくための柱がうまく決められない。&lt;/div&gt;&lt;div&gt;作者の考えをなぞりながらも、自分の言葉で補足と訂正をおこなうのだが、&lt;/div&gt;&lt;div&gt;事柄をまとめていくための柱と道筋がうまくまとめられない。&lt;/div&gt;&lt;div&gt;なかなかままならぬのだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;高等教育を受けさせてもらってはいたのだが、&lt;/div&gt;&lt;div&gt;この程度のことも満足できないことに情け無さを感じるが、&lt;/div&gt;&lt;div&gt;しかしやらねばならぬから、じりじり道を登るしかないのである。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6111483978450282185?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6111483978450282185/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/07/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6111483978450282185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6111483978450282185'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/07/blog-post.html' title='読書について'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2090338857637706495</id><published>2011-07-18T17:22:00.002+09:00</published><updated>2011-07-18T17:36:49.152+09:00</updated><title type='text'>Mac OS X+XCode4+Boost</title><content type='html'>どうもJudaです。&lt;div&gt;今日はMacOSXでXCode4を使って、Boostライブラリを利用するときの話。&lt;/div&gt;&lt;div&gt;一般的にはMacPortをつかうみたいですが、i386のアーキテクチャ部分がうまく噛み合わなくて、ライブラリがビルドできなかったりするので、直に使う方法をとります。&lt;/div&gt;&lt;div&gt;基本的にはMacOSXと云えども、Unix系なので、Boostをビルドしたりはできます。&lt;/div&gt;&lt;div&gt;BoostをサイトからDownloadして、展開しておきます。&lt;/div&gt;&lt;div&gt;この段階でstatic libraryを使わないものは利用可能な状態になっています。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;XCodeにインクルードパスを追加するときには、VisualStudioとでは考え方がちょっと違って、「ヘッダーを検索するためのパス」を登録しなければいけません。そのため、項目の名前がSearch Header Pathsになってます。User〜というものあるのですが、違いがわかりません。ライブラリに関しても追加ライブラリパスは「ライブラリを検索するためのパス」を登録ということになります。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;とりあえずstatic libraryのいらないものはこれでなんとかなります。&lt;/div&gt;&lt;div&gt;次にstatic libraryとかですが、BoostをDarwinでビルドする事になります。なんだかわかんないですけど、BoostのGet Start 〜で書かれているStepにしたがって行います。この時に bootstrap.sh --Prefix=/Path/to/installっていうのがあります。&lt;/div&gt;&lt;div&gt;Unixに慣れている方は普通なのかもしれませんが、WindowsのVisualStudioから来た人にはわかりにくいので、&lt;/div&gt;&lt;div&gt;./b2 というビルドコマンドを発行するだけだと、ビルドをするだけで、./Build installだとさっきの--Prefixで指定したパスへ生成物と必要なものをコピーします。Defaultだと/usr/localになってます。このディレクトリはアクセス制御されていて、読み込みのみの許可になっているので、sudo ./b2 install という風にしてやらないとうまくコピーが出来なくて悩むことになります。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;あとはDarwinがGCC4.2のコンパイラを使っているので、XCodeのDefaultのコンパイラ LLVMとは生成物の形式が違うので、dynamic link をさせたときにエラーで落ちる原因になります。要注意です。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;んで、実はProgram_Optionsを使ってみようと思っていて、組んで、ビルドはできるけど、うまく実行できず。&lt;/div&gt;&lt;div&gt;CommandLineOptionがうまく機能していないくて大変悲しい目にあってます。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;XCodeでCommandLineOptionを指定するときにはXCodeのメニューバーのProductに該当するItemの下の方のEditSchemeで表示されるDialogのRun Argumentみたいな内容の奴にCommnad Line Optionが云々というのがあります。そこを設定すれば一応起動時の引数にはなるようです。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2090338857637706495?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2090338857637706495/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/07/mac-os-xxcode4boost.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2090338857637706495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2090338857637706495'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/07/mac-os-xxcode4boost.html' title='Mac OS X+XCode4+Boost'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6725684860878684929</id><published>2011-02-10T18:20:00.004+09:00</published><updated>2011-02-10T18:23:50.017+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>CppCheckの雑感</title><content type='html'>どうもJudaです。&lt;div&gt;CppCheckを利用してみました。&lt;/div&gt;&lt;div&gt;とりあえず日本語の動作がクサイので、setlocale(LC_ALL, "");でビルドをする。&lt;/div&gt;&lt;div&gt;動作的には問題がなさげ。&lt;/div&gt;&lt;div&gt;検出件数とかは、よくわからないけど、未初期化の指摘をしてくれるのが、個人的に嬉しい。&lt;/div&gt;&lt;div&gt;現在わかっている困った点はQtで作成されているGUIで日本語が読めないのか、そもそも日本語パスの扱いがおかしいのか、不明だが、利用できない。&lt;/div&gt;&lt;div&gt;これによって、日本語パス以下にあるファイルの解析がままならない。&lt;/div&gt;&lt;div&gt;手っ取り早く、.NET FrameworkでFork用のGUIだけ準備すればいいのではないかと思う。あとは、Includeディレクトリを常に覚えるのが困るので、とりあえずそこもなんか変えたいと思う。&lt;/div&gt;&lt;div&gt;そんな感じ。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6725684860878684929?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6725684860878684929/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/02/cppcheck.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6725684860878684929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6725684860878684929'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/02/cppcheck.html' title='CppCheckの雑感'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8605365470036405390</id><published>2011-02-09T00:05:00.001+09:00</published><updated>2011-02-09T00:06:49.201+09:00</updated><title type='text'>やるきで学ぶTDD</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;h3&gt;&lt;a href="http://www.tdd-net.jp/2011/02/tdd-5d73.html"&gt;[ブログ紹介] やる夫で学ぶ TDD&lt;/a&gt;&lt;/h3&gt;TDDについてまとまっているので、備忘録。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8605365470036405390?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8605365470036405390/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/02/tdd.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8605365470036405390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8605365470036405390'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/02/tdd.html' title='やるきで学ぶTDD'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5082016571694537271</id><published>2011-02-08T23:55:00.003+09:00</published><updated>2011-02-09T13:54:32.735+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='教育'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>C++における様々なツールについて</title><content type='html'>どうもJudaです。&lt;br /&gt;最近CIについて、かなり興味が湧いてきました。また、それ以上に体系的なテストの重要性を痛感している今日この頃ですが。&lt;br /&gt;CIを調べながら、いくつかのツールによる自動化も調査しています。現状ではまだ列挙段階ですが、いくつかのジャンルで情報をまとめておこうと思います。&lt;br /&gt;インスペクションツール&lt;br /&gt;&lt;a href="http://checkstyle.sourceforge.net/config_duplicates.html"&gt;CheckStyle&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uncrustify.sourceforge.net/"&gt;Uncrustify&lt;/a&gt;&lt;br /&gt;&lt;a href="http://astyle.sourceforge.net/"&gt;Artistic Style&lt;/a&gt;&lt;div&gt;&lt;a href="http://astyle.sourceforge.net/"&gt;&lt;/a&gt;（追記：02/2011/09）&lt;a href="http://www.harukizaemon.com/simian/index.html"&gt;Simian&lt;/a&gt;&lt;/div&gt;&lt;div&gt;静的解析ツール&lt;br /&gt;&lt;a href="http://sourceforge.net/apps/mediawiki/cppcheck/index.php?title=Main_Page"&gt;CppCheck&lt;/a&gt;&lt;br /&gt;ドキュメント化ツール（＋可視化）&lt;br /&gt;&lt;a href="http://www.stack.nl/~dimitri/doxygen/"&gt;Doxygen&lt;/a&gt;+&lt;a href="http://www.graphviz.org/"&gt;Graphviz&lt;/a&gt;&lt;br /&gt;OpenSource で利用可能なものはこんな感じですかねぇ。&lt;br /&gt;とりあえず多くの人々がこれらを公開してくれていることに頭が下がります。&lt;br /&gt;Doxygen+Graphvizは導入済みですが、これを自動化して、&lt;br /&gt;Commit毎にドキュメント化するようにするところから初めてみたいですね。&lt;br /&gt;あとはインスペクションツールでリファクタリングの目標を絞ること。&lt;br /&gt;『パターン指向リファクタリング』、&lt;br /&gt;『デザインパターン』、&lt;br /&gt;『実装パターン』、&lt;br /&gt;『リファクタリング』&lt;br /&gt;と開発に関する良い指針となるような書籍を読み進めています。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5082016571694537271?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5082016571694537271/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/02/c.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5082016571694537271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5082016571694537271'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2011/02/c.html' title='C++における様々なツールについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5837172245950196873</id><published>2010-12-08T00:35:00.003+09:00</published><updated>2010-12-08T00:43:17.641+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電子書籍'/><category scheme='http://www.blogger.com/atom/ns#' term='教育'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='環境'/><title type='text'>Rubyの良い教材</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;Rubyの良い教材。それは高品質で低価格であること。&lt;br /&gt;&lt;br /&gt;そんな我侭な要望を満たす様なカリキュラムがあるのです。&lt;br /&gt;&lt;a href="http://www.ipa.go.jp/software/open/ossc/seika_1005_1.html"&gt;OSSモデルカリキュラム導入実証&lt;/a&gt;&lt;br /&gt;ここで公開されている資料はとてもよくまとまってるので、便利である。さらにPDFなので、iPadなどで閲覧するのにうってつけである。&lt;br /&gt;カリキュラムも段階をおっていて、自学習するのにもよい。&lt;br /&gt;これ以外にも公開されているカリキュラムもあるので、合わせて学習してみたら良いと思う。&lt;br /&gt;&lt;br /&gt;ちなみに私も現在Rubyの勉強中であり、ここの資料を拝借させていただいている。&lt;br /&gt;主目的としてはRedmineのカスタマイズを行うためである。&lt;br /&gt;&lt;br /&gt;Redmineのガントチャートの制御と、Pluginがなぜ動作しなくなるのかを知りたくて勉強している。呼び出しのメソッドが変わったりすると動かなくなるというのは分かる。では翻ってどうすれば正しく動くように修正できるのか。つまりは有用であるが、保守された無くなってしまったPluginを復活させたり、改修したいのである。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5837172245950196873?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5837172245950196873/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/12/ruby.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5837172245950196873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5837172245950196873'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/12/ruby.html' title='Rubyの良い教材'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6652189755762579699</id><published>2010-11-23T15:07:00.003+09:00</published><updated>2010-11-23T15:18:42.056+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Doxygenによる開発のカンフル</title><content type='html'>どうもJudaです。&lt;div&gt;最近Doxygenをはじめました。&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.stack.nl/~dimitri/doxygen/"&gt;Doxygen&lt;/a&gt;はコメント生成ツールでかなりメジャーなものだとおもいます。類似したものにはJavaDocやphpDocsとかあるとおもいます。&lt;/div&gt;&lt;div&gt;Doxygenの導入は基本的にはInstallerをOfficialからもらってきて、終わりだとおもいます。DoxygenのGUIとしてDoxyWizardがついているので、比較的簡単にDocumentの生成まではいけるとおもいます。&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.graphviz.org/"&gt;GraphViz&lt;/a&gt;も簡単に手に入れられるので、いれてみるとよりクラスダイアグラムなどが綺麗に画像データになります。&lt;/div&gt;&lt;div&gt;そして、日本語でDoxygenを動かす際にいくつかの問題が起こると思います。&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;出力ファイルで文字化けが起こること。&lt;/li&gt;&lt;li&gt;入力ファイルが読み込めないこと。&lt;/li&gt;&lt;li&gt;ファイルの検索がうまくされないこと。&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;１、は基本的にはExpertの設定でDoxygen_OutputEncodingのような設定のパラメータを「Shift_JIS」など日本語に対応したものにすればよいとおもいます。&lt;/div&gt;&lt;/div&gt;&lt;div&gt;２、もInputを「Shift_JIS」ないし、日本語に対応したものにして、なおかつ読み込ませるデータのEncodeを整えることと、Encodeできない文字を使用しないということになります。&lt;/div&gt;&lt;div&gt;３、もファイルパスをコピー＆ペーストしているとよく起こるのですが、Doxygenでは￥のディレクトリの区切りが利用できないので、/に変換してください。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;それで本題。&lt;/div&gt;&lt;div&gt;DoxygenではCalledByやCallという関数での関係性を表示し、リンクを張ってくれる機能があります。&lt;/div&gt;&lt;div&gt;これを利用すると、呼び出し先と呼び出し元をしっかりしらべることができます。さらに、ソースコードを合わせて出力するようにしていれば、対象となる関数のソースコードを表示してくれるので、より一層ソースコードを探検するのが楽になります。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Doxygenを導入すること、運用することには、コメント付けなどいくつかの規約がありますが、単純に関数の呼び出し関係を整理して表示してくれるので、これだけでもかなりツールとしてありがたいものがあります。ただ静的な解析でのサポートなので、動的な解析はたぶんサポートしていません。それでも改修やDebugのときの一助になることは間違いないでしょう。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6652189755762579699?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6652189755762579699/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/doxygen.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6652189755762579699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6652189755762579699'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/doxygen.html' title='Doxygenによる開発のカンフル'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7624740098733091365</id><published>2010-11-15T01:41:00.002+09:00</published><updated>2010-11-15T01:43:56.147+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>SilverlightのDataBinding</title><content type='html'>どうもJudaです。&lt;div&gt;ちょっと失敗こいたので、注意点を。&lt;/div&gt;&lt;div&gt;DataBindingをするときに、DataContextからデータを取ると思う。そのときに対象となるインスタンスの定義がpublicになっていないとDataBindingは失敗する。どうしてか、それは取得と設定がカプセル化されてしまいアクセスするすべがなくなってしまうからである。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7624740098733091365?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7624740098733091365/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/silverlightdatabinding.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7624740098733091365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7624740098733091365'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/silverlightdatabinding.html' title='SilverlightのDataBinding'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2660985136383867199</id><published>2010-11-13T12:53:00.001+09:00</published><updated>2010-11-13T12:54:46.993+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>Silverlight Sketchflowの変換</title><content type='html'>どうもJudaです。&lt;h1 class="title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span class="Apple-style-span"   &gt;&lt;span class="Apple-style-span" style="font-size: 23px;"&gt;実稼動プロジェクトに変換&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 class="title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span class="Apple-style-span"   &gt;&lt;span class="Apple-style-span" style="font-size: 23px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: 16px; "&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/ee371158(Expression.30).aspx"&gt;http://msdn.microsoft.com/ja-jp/library/ee371158(Expression.30).aspx&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div&gt;今まで散々探したのに見つからなかったのに、今頃見つかるなんて。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2660985136383867199?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2660985136383867199/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/silverlight-sketchflow.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2660985136383867199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2660985136383867199'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/silverlight-sketchflow.html' title='Silverlight Sketchflowの変換'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6242183799734835895</id><published>2010-11-06T11:06:00.002+09:00</published><updated>2010-11-06T11:29:09.672+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>Google C++ Test Framework</title><content type='html'>どうもJudaです。&lt;br /&gt;最近&lt;a href="http://code.google.com/p/googletest/"&gt;Google C++ Test Framework&lt;/a&gt;(以下googletest)を いまさら 導入してみました。&lt;br /&gt;googletestはxUnitの流れをくむTestのFrameworkで少しでもxUnit系のテストについての知識があれば、すぐに使えるという触れ込みです。とりあえず公式な情報を翻訳した&lt;a href="http://opencv.jp/googletestdocs/"&gt;サイト&lt;/a&gt;で勉強すれば、何とかわかります。ちょっと面白いのは、OpenCVのドメインでGoogleTestDocsの日本語訳がホストされていることかなぁ。&lt;br /&gt;肝心の使い方は、公式に書かれているので、割愛しますが、ちょっと読み解くときに面倒に感じたことをいくつか。&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;メジャーなコンパイラのためにはすでに特別なプロジェクトが用意されているので、それを利用すること。MSVCとかG++とかは用意されているので、それを利用すればいいので、Cmakeを利用しなくてもいいこと。ただしCmakeを利用した生成もサポートされているので、そちらを利用してもいい。&lt;/li&gt;&lt;li&gt;MSVCに限らないと思うが、Runtimeの種類で別のSolutionが用意されている。たとえば、マルチスレッドとマルチスレッドDLLで別のRuntime体系になるので、別のSolutionが用意されていて、基本的にはマルチスレッドになっている。なので、MSVCの人でMDｄとかMDのRuntimeを使う人は、gtest_md.slnを利用する。&lt;/li&gt;&lt;li&gt;MSVCはテスト用のプロジェクトにgtest.projもしくはgtest_md.projをプロジェクトに含めて、テスト用のProjectはその追加したgoogletestのProjectへの依存関係を作ることが必要である。&lt;/li&gt;&lt;li&gt;TEST_Fを使う場合には事前に::testing::Testクラスを継承したクラスをつくる必要性がある。TEST_F(test_fixture, test_name)でtest_fixtureの部分には利用したい::testing::Testを継承したクラス名を使う。またTest部分ではクラス内部のように変数を扱ってテストできる、はず。&lt;/li&gt;&lt;li&gt;::testing::Testの仮想メソッドにはSetup(),TearDown()があるが、名前は厳密に継承元にある奴でないと動作しない。(当たり前) またそれぞれのクラスの利用のタイミングであるが、それぞれデフォルトコンストラクタやデストラクタでは利用できない仮想メソッドや例外が発生しやすいメソッドの利用などの場合には、利用する価値が出てくると思う。この質問に対する&lt;a href="http://opencv.jp/googletestdocs/FAQ.html#set-up-tear-down"&gt;回答&lt;/a&gt;もある。&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;上記のような部分で疑問がわいてくると思う。それよりもまず入門ガイドを読まないと話にならないし、それぞれの利用シナリオも&lt;gtest/gtest.h&gt;に記述されているので、こちらも参照したい。翻訳サイトがあるので、そちらで知識を得ることを優先して、効率よくテストをするために、まずは効率よくFrameworkを使いこなさないといけない。&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6242183799734835895?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6242183799734835895/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/google-c-test-framework.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6242183799734835895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6242183799734835895'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/11/google-c-test-framework.html' title='Google C++ Test Framework'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-55915956509702258</id><published>2010-10-11T02:46:00.002+09:00</published><updated>2010-10-11T03:09:58.505+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='初心者'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>継承関係ということについての試論</title><content type='html'>どうもJudaです。&lt;br /&gt;ちゃんとOOPを学習していないのですし、該当する書籍を読み込んでいないのでなんともいえませんが、軽症という事象にはいくつかの要因があるのではないかと推察します。&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;インターフェイス&lt;/li&gt;&lt;br /&gt; &lt;li&gt;実装&lt;/li&gt;&lt;br /&gt; &lt;li&gt;データ構造&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;この3要素があると思う。&lt;br /&gt;よく考えずにこれらをごっちゃにして継承をさせていくとどこかで使いにくさが出てくるように思われる。さらにいうとデータ構造の部分が特に危険だと感じています。&lt;br /&gt;インターフェイスの継承は一般的なOOPでの利用に関して合致しそうです。多態性の文脈に合致します。&lt;br /&gt;実装の部分は、特化したインターフェイスを生かし続ける形で実装しないといけないのでとてもナイーブな感じがします。&lt;br /&gt;データ構造に関しては実に困難さを覚えるのですが、多態のためにサブクラス分化するとあまりにクラスが分割されすぎる気もしますし、それぞれの振る舞いがデータ構造に依存しているときにはやりようがないのですが、うまくまとめないと理解しにくくなりすぎる感があります。&lt;br /&gt;どうすりゃいいんだ。OOPはあまりに強い困難さを覚えます。設計ということに向いていないのかもしれない、、、データ構造と実装があまりに緊密になっている感が。。。でもデータ構造が抽象された実装はアルゴリズムとなっているなぁ。。。&lt;br /&gt;インターフェイスはある意味ではさらにもう一層上のレベルでの継承関係をあらわすのかもしれない。&lt;br /&gt;そう仮定すると、COMやインターフェイス志向の記述は、実装を含めたデータ構造を抽象化したものであり、これは一層抽象度が高いので変更可能性強度が増すと思う。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-55915956509702258?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/55915956509702258/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/55915956509702258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/55915956509702258'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/blog-post.html' title='継承関係ということについての試論'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8529154914579357017</id><published>2010-10-10T22:22:00.005+09:00</published><updated>2010-10-11T09:53:32.783+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>MacでBoostを使う</title><content type='html'>どうもJudaです。&lt;br /&gt;とりあえず、作業をする前に調べてみる。&lt;br /&gt;&lt;a href="http://d.hatena.ne.jp/nakamura001/20081225/1230195789"&gt;&lt;br /&gt;■[Macプログラミング][Boost]MacにC++の高速ライブラリBoostをインストールしたCommentsAdd Startomisima&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://d.hatena.ne.jp/aduka/20081222/1229909299"&gt;&lt;br /&gt;Mac でBoostCommentsAdd Star&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;手始めに調べておいていれてみる。いろんなところで実践実践。&lt;br /&gt;&lt;br /&gt;2010/10/11  0:14:45&lt;br /&gt;XCodeの最新版を導入&lt;br /&gt;MacPortの導入&lt;br /&gt;導入後にUpdateをかける&lt;br /&gt;BoostJamの導入&lt;br /&gt;Boostの導入&lt;ここでError発生　ちなみにMacOSX SnowLeopard&lt;br /&gt;DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/boost&lt;br /&gt;DEBUG: OS darwin/10.4.0 (Mac OS X 10.6) arch i386&lt;br /&gt;DEBUG: org.macports.load registered provides 'load', a pre-existing procedure. Target override will not be provided&lt;br /&gt;DEBUG: org.macports.unload registered provides 'unload', a pre-existing procedure. Target override will not be provided&lt;br /&gt;DEBUG: org.macports.distfiles registered provides 'distfiles', a pre-existing procedure. Target override will not be provided&lt;br /&gt;DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/variant_descriptions.conf&lt;br /&gt;DEBUG: universal variant already exists, so not adding the default one&lt;br /&gt;DEBUG: Starting logging for boost&lt;br /&gt;Error: Cannot install boost for the arch(s) 'x86_64' because&lt;br /&gt;Error: its dependency zlib is only installed for the arch 'i386'&lt;br /&gt;Error: and the configured universal_archs 'i386 ppc' are not sufficient.&lt;br /&gt;DEBUG: architecture mismatch&lt;br /&gt;    while executing&lt;br /&gt;"macports::_upgrade_mport_deps $mport $target"&lt;br /&gt;    (procedure "mportexec" line 26)&lt;br /&gt;    invoked from within&lt;br /&gt;"mportexec $workername $target"&lt;br /&gt;Error: Unable to execute port: architecture mismatch&lt;br /&gt;おいおいどうすればいいんだよ。。。&lt;br /&gt;2010/10/11 1:53&lt;br /&gt;なんとなくだけど、&lt;br /&gt;$port varibants boost&lt;br /&gt;でオプションを調べて、&lt;br /&gt;universalを確認してから&lt;br /&gt;$sudo port install boost +universal&lt;br /&gt;ってやるとなんか依存関係もまとめて調べてくれるから、何とかなりそう。&lt;br /&gt;でもBoostのBuildにかかる時間がすげーなげー。か？&lt;br /&gt;&lt;br /&gt;2010/10/11 09:51&lt;br /&gt;放置しておいて、朝見たら、Build終わっていた。&lt;br /&gt;---&gt;  Computing dependencies for boost&lt;br /&gt;---&gt;  Fetching boost&lt;br /&gt;---&gt;  Verifying checksum(s) for boost&lt;br /&gt;---&gt;  Extracting boost&lt;br /&gt;---&gt;  Configuring boost&lt;br /&gt;---&gt;  Building boost&lt;br /&gt;---&gt;  Staging boost into destroot&lt;br /&gt;---&gt;  Installing boost @1.44.0_0+universal&lt;br /&gt;---&gt;  Activating boost @1.44.0_0+universal&lt;br /&gt;---&gt;  Cleaning boost&lt;br /&gt;とりあえず導入まではできた。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8529154914579357017?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8529154914579357017/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/macboost.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8529154914579357017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8529154914579357017'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/macboost.html' title='MacでBoostを使う'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7421823009297464635</id><published>2010-10-10T03:10:00.002+09:00</published><updated>2010-10-10T03:12:19.219+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>std::vectorは連続領域なのか？</title><content type='html'>どうもJudaです。&lt;br /&gt;http://cranehouse.dojin.com/program/vector.html&lt;br /&gt;http://www.s34.co.jp/cpptechdoc/article/vectorastemp/&lt;br /&gt;ここの二つでなんか問題は解決できそうですな。&lt;br /&gt;それにしても、言語の仕様書を読んだのが初めてというへたれっぷり。C#さんの仕様書でも探し読もうかなぁ。&lt;br /&gt;あと先ほどのリンクにあげたS34って会社が大阪にあるので、ちょっと興味ありかも。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7421823009297464635?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7421823009297464635/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/stdvector.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7421823009297464635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7421823009297464635'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/stdvector.html' title='std::vectorは連続領域なのか？'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8688519280343789988</id><published>2010-10-08T01:48:00.001+09:00</published><updated>2010-10-08T01:53:32.813+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Code Kata的な 練習</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;&lt;br /&gt;// Kata000.cpp : コンソール アプリケーションのエントリ ポイントを定義します。&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;#include "stdafx.h"&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;#include &lt;vector&gt;&lt;br /&gt;#include &lt;algorithm&gt;&lt;br /&gt;#include &lt;boost/lambda/lambda.hpp&gt;&lt;br /&gt;#include &lt;boost/progress.hpp&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void foreachMethod(const size_t&amp; size)&lt;br /&gt;{&lt;br /&gt;  boost::progress_timer t;&lt;br /&gt;&lt;br /&gt;  using namespace boost::lambda;&lt;br /&gt;  using namespace std;&lt;br /&gt;  vector&lt;int&gt; tmpArray(size);&lt;br /&gt;  tmpArray[50] = 200;&lt;br /&gt;&lt;br /&gt;  boost::progress_display show_progress( tmpArray.size());&lt;br /&gt;  for_each(&lt;br /&gt;    tmpArray.begin(),&lt;br /&gt;    tmpArray.end(),&lt;br /&gt;    (_1 + 1) );&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;void forMethod(const size_t&amp; size)&lt;br /&gt;{&lt;br /&gt;  boost::progress_timer t;&lt;br /&gt;&lt;br /&gt;  using namespace std;&lt;br /&gt;  vector&lt;int&gt; tmpArray(size);&lt;br /&gt;  tmpArray[50] = 200;&lt;br /&gt;  boost::progress_display show_progress( tmpArray.size());&lt;br /&gt;  for( size_t i = 0; i &lt; tmpArray.size(); i++){&lt;br /&gt;    int itt = tmpArray[i] + 1;&lt;br /&gt;    ++show_progress;&lt;br /&gt;    //cout &lt;&lt; tmpArray[i] &lt;&lt; endl;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;void foriterMethod(const size_t&amp; size)&lt;br /&gt;{&lt;br /&gt;  boost::progress_timer t;&lt;br /&gt;  using namespace std;&lt;br /&gt;  vector&lt;int&gt; tmpArray(size);&lt;br /&gt;  tmpArray[50] = 200;&lt;br /&gt;  &lt;br /&gt;  boost::progress_display show_progress( tmpArray.size());&lt;br /&gt;  for( &lt;br /&gt;    vector&lt;int&gt;::const_iterator i = tmpArray.begin();&lt;br /&gt;    i != tmpArray.end(); i++){&lt;br /&gt;    int itt = *i + 1;&lt;br /&gt;    ++show_progress;&lt;br /&gt;    //cout &lt;&lt; *i &lt;&lt; endl;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;{&lt;br /&gt;  const size_t size(1000000);&lt;br /&gt;  foreachMethod(size);&lt;br /&gt;  forMethod(size);&lt;br /&gt;  foriterMethod(size);&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;とりあえずいえるのは、VS2008のReleaseならforeachがはやい。Debugならforが早い。とりあえずどれでもイテレータは遅い。でもこの場合に重要な点は、こんな単純なケースで通常のイテレータ回しはあまり有用ではない、という点と、イテレータでの制御はもっと凝ったもののほうがいいかもしれない。とりあえずforeachすげー。投げる要素数が増えるとかなり露骨に早くなる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8688519280343789988?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8688519280343789988/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/code-kata.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8688519280343789988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8688519280343789988'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/10/code-kata.html' title='Code Kata的な 練習'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2608302387859287488</id><published>2010-09-18T14:57:00.002+09:00</published><updated>2010-09-18T15:13:57.856+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>WinSxSについて</title><content type='html'>どうもJudaです。&lt;br /&gt;今日はVC++2005から導入されているManifestについての再配置について。&lt;br /&gt;VC++2005以上でコンパイルされたプログラムは、以前存在していたDLL地獄に対応するために、ManifestによるDLLの選択という機構を取り入れました。&lt;br /&gt;これによって起こっている問題は、VC++2003以前でコンパイルして、配布する際には、プライベートアセンブリや共有DLLは同名のDLLファイルが存在していれば、動作できるのです。しかし、これは正しいDLLかどうかは保障されませんでした。DLL地獄の本当のところは調べれば出てきますので、割愛します。&lt;br /&gt;とりあえず手っ取り早く配布をしたい場合には、以下の手順を踏めばいけます。&lt;br /&gt;・VSコマンドプロンプトでmt.exeを動作させます。&lt;br /&gt;・mt.exe -inputresource:&lt;inputfilepath&gt; -out:&lt;outputfilepath&gt;を使って、埋め込まれているManifestを分離します。inputfilepathはEXEやDLLをいれて使います。&lt;br /&gt;・分離されたManifestに記述されているDLLを集めます。&lt;br /&gt;・DLLの場所はVisualStudio/VC/redistのところにある場合とWINDOWS/WinSxSにあります。そこから該当するものを取得します。&lt;br /&gt;・WinSxSの場合には、該当するDLLとそのDLLに合致するManifestが必要になります。ManifestファイルはManifestフォルダにあります。ここから取得します。&lt;br /&gt;･アプリケーションを入れるディレクトリにEXEとDLLと同じフォルダ内に、最初に取得したManifestのName属性に記述されている名前と合致するようにフォルダ名を変更して、そこにDLLとそのDLLのためのManifestを入れます。&lt;br /&gt;これでたいてい動きます。それでもWinSxSのエラーが出るときには、コントロールパネル：コンピュータの管理：イベントビュアーにエラーログがでますので、そこから、問題のDLLを調べることができます。&lt;br /&gt;またmt.exeを利用しなくても、VSのソリューションにExeやDLLを登録して、開くとリソースビューが開き、MT_MANIFESTとかかれている項目があります。そこにEXEなら1、DLLなら2と書かれた項目が格納されていますので、それを開きます。その際に表示された文字列が埋めこまれたManifestになります。これは最初に分離したものと同じになります。&lt;br /&gt;またMSDNで記述されているようなDLLのライブラリをフォルダに入れて云々は、Manifestファイルに記述されていない際には、EXEと同じ階層に置くようになりますので、この方法から除外されます。しかしながらDLLのManifestのほうも問題がありますので、そこも要調整になります。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2608302387859287488?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2608302387859287488/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/09/winsxs.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2608302387859287488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2608302387859287488'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/09/winsxs.html' title='WinSxSについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5138633799440122590</id><published>2010-07-27T01:55:00.002+09:00</published><updated>2010-07-27T02:04:27.533+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>ベクトル解析</title><content type='html'>どうもJudaです。&lt;br /&gt;いまさらベクトル解析に本格的に取り掛かりました。&lt;br /&gt;学部自体に専門ではなかったので、特に勉強もせずにすごしていました。これはなかなか興味深いですね。陰関数の特性やスカラー積が何を現しているのかとか、ベクトル積がどういう意味をもつのか。じっくりと基礎の基礎にあたってみるのは、実に価値がある。&lt;br /&gt;同様にこのような基礎に対して、教師なしで学習することができるだけの地力がまだ自分にあることが喜ばしいと感じました。高等教育を受けさせてもらえたことをとても感謝しています。と同時に、高等教育を受けても、その教育が役に立たない、勉強はもう終わりと思っている方が多く見られるのが悲しいです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5138633799440122590?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5138633799440122590/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/07/blog-post.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5138633799440122590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5138633799440122590'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/07/blog-post.html' title='ベクトル解析'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6518716307174093864</id><published>2010-07-27T00:07:00.003+09:00</published><updated>2010-07-27T00:16:03.754+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Visual Studio 2008 コメント付けについて</title><content type='html'>どうもJudaです。&lt;div&gt;VisualStudo2008でのコメントづけについて&lt;/div&gt;&lt;div&gt;&lt;a href="http://emboss.blog28.fc2.com/tb.php/106-4453e599"&gt;http://emboss.blog28.fc2.com/tb.php/106-4453e599&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://emboss.blog28.fc2.com/blog-entry-106.html"&gt;http://emboss.blog28.fc2.com/blog-entry-106.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;これはいいのだけど、もう開発はストップしてしまっている。こいつはもったいない。ほかにもいろいろなProjectがあるので、VSの力をもっと発揮するために調べてみるのもいいかもしれない。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6518716307174093864?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6518716307174093864/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/07/visual-studio-2008.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6518716307174093864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6518716307174093864'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/07/visual-studio-2008.html' title='Visual Studio 2008 コメント付けについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7681321916564171601</id><published>2010-07-22T00:15:00.006+09:00</published><updated>2010-07-22T01:06:41.208+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Silverlight 覚書</title><content type='html'>どうもJudaです。&lt;div&gt;Expression Blend 3のSketchFlowで作成したScreenを別のApplicationでホストすることはあると思います。参照を追加して、xmlns:の名前空間を適応して、いざコントロールをビルドできるようになって、ひと段落ですが、このあとになんかきなくさい実行時エラーがでます。&lt;/div&gt;&lt;div&gt;pb:NavigateToScreenAction TargetScreenのターゲットがうまく見えないっていう罠が。&lt;/div&gt;&lt;div&gt;SketchFlowの時には見えていたものが見えなくなっているのですが、これがまたよくわからない。&lt;/div&gt;&lt;div&gt;あと意外と参照がずれている可能性があるのが、Resource系の.xamlファイルへの参照パス。&lt;/div&gt;&lt;div&gt;SketchFlow時にAppに書き込まれているもののうち、独自のものは再び必要？だったりするので、それも追加する。もっともこれは大本に追加しておけば回避できるような気がする。&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.msdn.microsoft.com/KB958017/Wiki/View.aspx?title=Japanese"&gt;KB958017 Rollup Hotfix&lt;/a&gt;&lt;/div&gt;&lt;a href="http://support.microsoft.com/kb/958017/ja"&gt;WPF デザイナーの修正プログラム ロールアップは。&lt;/a&gt;&lt;div&gt;上記の二つが該当するような気がするが、直るかどうかはわからない。&lt;/div&gt;&lt;div&gt;VS2008＋XPでWPFに関連するプログラムはほとんど鬼門である。でもVS2010で直っている保証もないのでややこしい。&lt;/div&gt;&lt;div&gt;またSilverlightはWizardが悪魔のごとき動きをしてくれるので、魂を売り渡せば、もれなく地獄ゆきという特典つきである。問題の調べ方も難解極めるので、ある一定以上になるとExpressionBlendは敵以外の何者でもなくなる。作るコードも汚いし。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;追記：7/22 0：41&lt;/div&gt;&lt;div&gt;とりあえず入れてみても問題は解決しない。AG_E_PARSER_BAD_TYPEのエラーはHOTFIXでは解決しない。&lt;/div&gt;&lt;div&gt;またAG_E_PARSER_BAD_TYPEというエラーコードは古くからあるエラーで、XAMLのパルスエラーであるので、かなりの頻度で出るみたい。というか、これ、汎用過ぎて意味わからん。&lt;/div&gt;&lt;div&gt;&lt;a href="http://jmayo.spaces.live.com/Blog/cns!5F243997972597CE!901.entry"&gt;Solving AG_E_PARSER_BAD_TYPE In Silverlight&lt;/a&gt;&lt;/div&gt;&lt;div&gt;このエントリをみると、別のPOSTをみろってある。&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.global-webnet.net/blogengine/post/2008/12/10/AG_E_PARSER_BAD_TYPE-Adding-Silverlight-Toolkit-control-to-module.aspx"&gt;AG_E_PARSER_BAD_TYPE Adding Silverlight Toolkit control to module&lt;/a&gt;&lt;/div&gt;&lt;div&gt;。。。なんかDLLを足せばなおるって書いてある気がする。&lt;/div&gt;&lt;div&gt;とりあえず文字列でクラスを指定しているところはかなりの確立でエラー起こす。そんな気がする。&lt;/div&gt;&lt;div&gt;でも直し方わからんし、パルスをステップインで追いかけられないし、しょんぼり&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;追記：7/22 1：00&lt;/div&gt;&lt;div&gt;とりあえずMicrosoft.Expression.Prototyping.Interactivityを参照に追加したら、エラーは起きなくなった。しかし、しかしだ。Navigationがきかないじゃないか。がびーん&lt;/div&gt;&lt;a href="http://social.expression.microsoft.com/Forums/en-US/blend/thread/77d238a7-1ce2-4f8b-ace8-b4ad3a88d140"&gt;NavigateToScreenAction programmatically&lt;/a&gt;&lt;div&gt;で少し調べてみたが、なんか飛び先を指定する文字列に癖があるみたいなことがかかれている。こいつは厄介だ。ここを変数かするのもいいが、そもそもSketchUpで作ったものを移行するのはどうすんだよ。ってところのツッコミがあると思うが、開発末期の部分の処理について書かれたものがない。&lt;/div&gt;&lt;div&gt;とりあえずSketchUpスゲーはわかったから、終わり方を教えてくれ。このゴミのような開発の終わり方を。&lt;/div&gt;&lt;div&gt;そもそもScreen内に遷移情報をかかないわけがないのに、なんでこんなことになるんよ。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7681321916564171601?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7681321916564171601/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/07/silverlight.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7681321916564171601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7681321916564171601'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/07/silverlight.html' title='Silverlight 覚書'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4404882215350889517</id><published>2010-06-27T11:34:00.001+09:00</published><updated>2010-06-27T11:36:18.983+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>DBの覚書</title><content type='html'>どうもJudaです。&lt;br /&gt;ＤＢの開発に関する選択肢として、Access、SQLite、PostgreSQLを挙げてみる。&lt;br /&gt;AccessはMicrosoftの製品であり、比較的容易にデータベースを構築出来る。&lt;br /&gt;SQLiteはPublicLicenseであり、ソースもすべて手に入る。&lt;br /&gt;PostgreSQLも似たようなものだが、最近人気になりつつある？MySQLがライセンスが変更されたことによる代替か？&lt;br /&gt;AccessはRDBMSではあるらしいが、データベーストリガとストアドプロシージャがない。&lt;br /&gt;SQLiteはアプリケーションに組み込んで使うタイプのDBMSである。&lt;br /&gt;PostgreSQLがRDBMSとして手軽に利用できるもののようであるが、よく分からない。&lt;br /&gt;RDBMSはコッドの12の法則に準拠してることが必要らしい。&lt;br /&gt;ACIDとかいろいろ定義はあるんだろうけど、DBをやるなら本気で腰をすえていろいろいじらないとTuneUpできそうにない。&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/SQLite"&gt;SQLite&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/Microsoft_Access"&gt;MicrosoftAccess&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=70"&gt;Firebird&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0"&gt;関連データベース管理システム&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4404882215350889517?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4404882215350889517/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/db.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4404882215350889517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4404882215350889517'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/db.html' title='DBの覚書'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-1006594569108443248</id><published>2010-06-27T05:13:00.002+09:00</published><updated>2010-06-27T05:15:28.074+09:00</updated><title type='text'>Silverlight　Error Code 2104</title><content type='html'>どうもJudaです。&lt;div&gt;SilverlightがErrorCode　2104でエラーしました。&lt;/div&gt;&lt;div&gt;とりあえず調べるべきはIISの設定と、TestPageのparam name="source"で指定しているファイルパス。&lt;/div&gt;&lt;div&gt;いくらビルドしてもこのテストページは更新されないようなので、Projectの名前を変えたときなどは確認が必要です。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-1006594569108443248?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/1006594569108443248/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/silverlighterror-code-2104.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1006594569108443248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1006594569108443248'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/silverlighterror-code-2104.html' title='Silverlight　Error Code 2104'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8735995829417800662</id><published>2010-06-21T01:09:00.004+09:00</published><updated>2010-06-21T01:54:32.679+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>拡張保護を使用した統合 Windows 認証ってなんだ？</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/dd639324(v=VS.90).aspx"&gt;&lt;br /&gt;http://msdn.microsoft.com/ja-jp/library/dd639324(v=VS.90).aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/dd470100(VS.95).aspx"&gt;&lt;br /&gt;http://msdn.microsoft.com/ja-jp/library/dd470100(VS.95).aspx&lt;/a&gt;&lt;br /&gt;Extended Protection for Client Applications&lt;br /&gt;&lt;div&gt;とりあえずなんかVS2008でWebServiceの追加を行って、更新をかけたら、動作がおかしくなったので、調査。もしかするとVS2010を入れると内部のVerが変わるのかも知れない。&lt;/div&gt;&lt;div&gt;ここは調査の必要がある。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;追記　2010　06　21　1：46&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/system.security.authentication.extendedprotection.extendedprotectionpolicy.aspx"&gt;http://msdn.microsoft.com/ja-jp/library/system.security.authentication.extendedprotection.extendedprotectionpolicy.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Version情報からするとWindows7と.net Framework4 でサポートされているのだけれども、VS2008では当然サポートしていないにも関わらず、なんかエラーでるし。。。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;追記　２０１０ ０６ ２１ １：５２&lt;/div&gt;&lt;div&gt;&lt;a href="http://connect.microsoft.com/onecare/feedback/details/567198/could-not-load-type-system-security-authentication-extendedprotection-extendedprotectionpolicy-exception-after-automatic-updates-kb976769v2-and-kb908773-installed"&gt;http://connect.microsoft.com/onecare/feedback/details/567198/could-not-load-type-system-security-authentication-extendedprotection-extendedprotectionpolicy-exception-after-automatic-updates-kb976769v2-and-kb908773-installed&lt;/a&gt;&lt;/div&gt;&lt;div&gt;どうもWindowXPの特定のUpdateを行うと壊れてしまうみたいだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://lemtodev.blogspot.com/2010/06/could-not-load-type-systemsecurityauthe.html"&gt;http://lemtodev.blogspot.com/2010/06/could-not-load-type-systemsecurityauthe.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;ここに解析しているものがある。これを読む。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8735995829417800662?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8735995829417800662/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/juda-httpmsdn.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8735995829417800662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8735995829417800662'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/juda-httpmsdn.html' title='拡張保護を使用した統合 Windows 認証ってなんだ？'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5255742876564543620</id><published>2010-06-20T03:47:00.001+09:00</published><updated>2010-06-20T03:47:57.751+09:00</updated><title type='text'>Windows7でのマルチタッチ開発での問題</title><content type='html'>&lt;div&gt;どうもJudaです。&lt;/div&gt;&lt;div&gt;Windows７でのマルチタッチアプリケーションの開発についての問題点ですけど、予想通りデバイスの準備ができないことがあがります。またデバイスを用意しても、それが本当にWindows7でのマルチタッチに準拠しているのかは、慎重に確認しなければなりませんし、意外と情報が記載されていないので、早く業界標準になることを祈ります。&lt;/div&gt;&lt;div&gt;現状確認されているだけでもWACOM Bamboo Touchでは独自のWACOM規格のマルチタッチを採用しているので、エミュレートされたいくつかの動作のみしか効かないです。これはすでにCode Recipeに掲載されている情報と実際に上記のデバイスを使って、Windows7＋VS2010＋WPF4で検証しました。動かねぇ。&lt;/div&gt;&lt;div&gt;そして動くと思われているデバイスもちらほら出てきているのですが、仮に対象をNotePCや一体型Desktopが御手軽なので、選択肢に挙がると思いますが、ここで気になるのは、デバッグのやりやすさです。つまり対象PCで開発も同時に行うことも考えると、AtomやCoreDuoでは若干非力ではないかなぁと。そこまで含めると、マルチタッチに対応したディスプレイだけを買うことになりますが、まぁそれほど開発中は主目的で使わないのに、マルチタッチ付きの高いディスプレイを買うのかと言う貧乏開発者のジレンマがあります。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5255742876564543620?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5255742876564543620/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/windows7.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5255742876564543620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5255742876564543620'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/windows7.html' title='Windows7でのマルチタッチ開発での問題'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7515335169107961837</id><published>2010-06-12T10:28:00.003+09:00</published><updated>2010-06-12T10:35:35.230+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebApplication'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Webサービスを利用する際の大容量データの受信について</title><content type='html'>どうもJudaです。&lt;br /&gt;ちょいと失念してしまうことをいくつか。&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/aa480521.aspx"&gt;http://msdn.microsoft.com/ja-jp/library/aa480521.aspx&lt;/a&gt;&lt;br /&gt;大量データに対する戦略 -　MSDN&lt;br /&gt;ここに書かれているのですが、&lt;br /&gt;今回はぶち当たったのは、SOAPで提供されているサービスである特定のリクエストに対して大容量データを返す場合に、エラーが起きて受信出来ない問題があったのですが、これは、VisualStudioを利用している場合には、Webサービス参照の追加でSOAPサービスなりを追加するのですが、ここで記述されるApp.configもしくはWeb.ConfigファイルにXML形式で記述されている部分で、受信サイズなどを決定している属性があるのですが、そこがデフォルトの値だとうまく処理ができなかった。&lt;br /&gt;このデフォルト値には、意味があり、不用意な大容量データを受け取らないようにするためであり、基本的には問題にならない。しかし今回起こったような大容量データを受信しようとすると、そこで初めて属性情報に処理を止められると言う事態になる。&lt;br /&gt;この一件を総括するならば、「ウィザードが作ってくれるものは、便利だが、その構築がむき出しの元になったときには困難が起こる」ということになるだろう。これは「達人プログラマ」でも指摘されていることで、悪い魔法使いの話だ。&lt;br /&gt;よくよくデータを確認してみる必要性があるなぁとつくづく思った。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7515335169107961837?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7515335169107961837/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/web.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7515335169107961837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7515335169107961837'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/06/web.html' title='Webサービスを利用する際の大容量データの受信について'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5900992896793836610</id><published>2010-05-30T00:48:00.002+09:00</published><updated>2010-05-30T01:00:36.963+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><title type='text'>SilverlightにおけるCustom Template Controlの作り方について</title><content type='html'>どうもJudaです。&lt;div&gt;今回はSilverlightにおけるカスタムテンプレートコントロールの説明です。&lt;/div&gt;&lt;div&gt;コントロールのカスタムテンプレートとユーザーコントロール継承の違いですが、私見では、&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;カスタムテンプレートは、再利用可能なユーザーコントロールの開発&lt;/li&gt;&lt;li&gt;ユーザーコントロール継承は、再利用を含めないユーザーコントロールの開発&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;であり、後者のユーザーコントロール継承は、特定の部位に別のコントロールを埋め込んだりと言うことを基本的に考えていない場合だと思います。もちろん様々な方法が考えられますが、構造を変えたりはできないので、基本的には作成した際の構造を逸脱することは出来ず、またユーザーコントロールの構造を残したままの改造なので、DependencyPropertyの数が増えすぎる傾向にあります。&lt;/div&gt;&lt;div&gt;今回はCustomTemplateControlの話なのですが、こちらの開発に関しては、注意することは主には二つ。&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;TemplatePartAttributeなどのパラメータは今度の実装者がどういうパラメータをUIとして定義しているのかを知るための補助的な情報であること。メタデータとして定義されるので、当たり前ですが。&lt;/li&gt;&lt;li&gt;GetTemplateChildというメソッドを使って、自身で定義したフィールド変数にそのコントロールへの参照を設定します。これをしないと煩雑な呼び出しがいっぱいなMFCみたいなことになるので、注意です。&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;呼び出しのタイミングですが、MSDNのベストプラクティスによれば、OnApplyTemplateのオーバーライドのタイミングが最速になるようです。またイベントの定義の問題などもありますので、変数を直に触らせるのではなく、いくつかのレイヤーをかませて抽象化して、エラーを発生させない機構を作る必要がありますが、あくまで再利用を考えれば、ベストプラクティスに乗っとる必要性がありますが、自己で管理しているレベルでの開発ならば、そこまで神経質になる必要性はなさそうです。&lt;/div&gt;&lt;div&gt;テンプレートコントロールの呼び出しタイミングですが、コンストラクタ→Load→OnApplyTempleteになるので、カスタムユーザーコントロールからの移植の場合には注意が必要になります。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;またGeneric.xamlに記述されるので、Blendではすこぶる開発しにくいと思います。また基本的にクラスの定義部分が大きくなりすぎる感がありますので、可能であれば、Partial Classの利用をおすすめします。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5900992896793836610?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5900992896793836610/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightcustom-template-control.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5900992896793836610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5900992896793836610'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightcustom-template-control.html' title='SilverlightにおけるCustom Template Controlの作り方について'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4598415002239373007</id><published>2010-05-23T01:06:00.002+09:00</published><updated>2010-05-23T01:12:47.306+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><category scheme='http://www.blogger.com/atom/ns#' term='.NETFramework'/><title type='text'>Webサービスのリファレンスの追加に関して。</title><content type='html'>どうもJudaです。&lt;br /&gt;Webサービスのリファレンスの追加に関して（VS2008）。&lt;br /&gt;Webサービスの追加を行うと、こっそりReferenceファイルが生成されますが、定義から飛ばないと生成されたものを確認できません。定義を確認するとわかるのですが、クラスがpartialで定義されています。これが何を意味するのかと言うと、自動生成のファイルのバックエンドへ変更点を書き込むと更新時に修正、変更した部分を破棄されてしまうので、別ファイルで定義を明確に書いてねって事みたいです。&lt;br /&gt;例えば、EntityのEntityDataという名前のクラスが取得される場合に、その中の要素はPropertyとして生成されます。これに対して、INotifyPropertyChangedを実装しようとします。しかしそれをReferenceに書いてしまうと、更新時に破棄されますので、別ファイルに名前空間に整合性を持たせつつ、PartialなEntityDataを定義します。あとはPartialのキーワードを利用して、各項目のOn&lt;propertyname&gt;ChangedやOn&lt;property&gt;Changing（object value）を定義してやれば、独立してプロパティの変更前と変更後の処理を定義出来ます。これでINotifyPropertyChangedを実装可能になります。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4598415002239373007?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4598415002239373007/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/web.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4598415002239373007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4598415002239373007'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/web.html' title='Webサービスのリファレンスの追加に関して。'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2018539601124597315</id><published>2010-05-22T22:30:00.003+09:00</published><updated>2010-05-22T22:36:23.314+09:00</updated><title type='text'>DataGridとの憂鬱</title><content type='html'>どうもJudaです。&lt;br /&gt;MainPage.xaml.cs&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.Reflection;&lt;br /&gt;&lt;br /&gt;namespace AgScheduler&lt;br /&gt;{&lt;br /&gt; public partial class MainPage : UserControl&lt;br /&gt; {&lt;br /&gt;  public MainPage()&lt;br /&gt;  {&lt;br /&gt;   InitializeComponent();&lt;br /&gt;   this.Loaded += new RoutedEventHandler(MainPage_Loaded);&lt;br /&gt;   var list = DataEntity.Users;&lt;br /&gt;   PropertyInfo[] infos = typeof(UserInfo).GetProperties();&lt;br /&gt;   //var q = (from rec in list&lt;br /&gt;   //         select new { Name = rec.名前, Norma = rec.年計, Result = rec.実績 })&lt;br /&gt;   //         .ToArray();&lt;br /&gt;   this.DataContext = infos.AsQueryable();&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  void MainPage_Loaded(object sender, RoutedEventArgs e)&lt;br /&gt;  {&lt;br /&gt;   PropertyInfo[] infos = typeof(UserInfo).GetProperties();&lt;br /&gt;   this.dataGrid1.RowHeight = 30;&lt;br /&gt;   this.Foreground = new SolidColorBrush(Colors.Red);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  private void Button_Click(object sender, RoutedEventArgs e)&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; public class hoge&lt;br /&gt; {&lt;br /&gt;  public string Name { get; set; }&lt;br /&gt;  public double Norma { get; set; }&lt;br /&gt;  public double Result { get; set; }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;MainPage.xaml&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&amp;lt;UserControl&lt;br /&gt;    x:Class="AgScheduler.MainPage"&lt;br /&gt;    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br /&gt;    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"&lt;br /&gt;    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;br /&gt;    xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input"&lt;br /&gt;    xmlns:ctrl="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"&lt;br /&gt;    mc:Ignorable="d"&lt;br /&gt;    d:DesignHeight="600" d:DesignWidth="800"&amp;gt;&lt;br /&gt;    &amp;lt;Grid x:Name="LayoutRoot"&amp;gt;&lt;br /&gt;        &amp;lt;Grid.ColumnDefinitions&amp;gt;&lt;br /&gt;            &amp;lt;ColumnDefinition Width="180" /&amp;gt;&lt;br /&gt;            &amp;lt;ColumnDefinition Width="Auto" /&amp;gt;&lt;br /&gt;            &amp;lt;ColumnDefinition Width="620*" /&amp;gt;&lt;br /&gt;        &amp;lt;/Grid.ColumnDefinitions&amp;gt;&lt;br /&gt;        &amp;lt;ctrl:DataGrid Name="dataGrid1"&lt;br /&gt;                       ItemsSource="{Binding}" Grid.Column="2" Margin="0" AutoGenerateColumns="True"&lt;br /&gt;                       SelectionChanged="dataGrid1_SelectionChanged" /&amp;gt;&lt;br /&gt;        &amp;lt;Button Content="Help" Click="Button_Click"/&amp;gt;&lt;br /&gt;    &amp;lt;/Grid&amp;gt;&lt;br /&gt;&amp;lt;/UserControl&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;DataEntity.cs&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Ink;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;&lt;br /&gt;namespace AgScheduler&lt;br /&gt;{&lt;br /&gt; public class DataEntity&lt;br /&gt; {&lt;br /&gt;  public static UserInfo CreateUserInfo()&lt;br /&gt;  {&lt;br /&gt;   return new UserInfo()&lt;br /&gt;   {&lt;br /&gt;    ID = 0,&lt;br /&gt;    実績 = 80,&lt;br /&gt;    年計 = 1200,&lt;br /&gt;    名前 = "テスト太郎"&lt;br /&gt;   };&lt;br /&gt;  }&lt;br /&gt;  public static IQueryable&lt;UserInfo&gt; Users {&lt;br /&gt;   get&lt;br /&gt;   {&lt;br /&gt;    var list = new List&lt;UserInfo&gt;();&lt;br /&gt;    list.AddRange(new UserInfo[]{&lt;br /&gt;     CreateUserInfo(),&lt;br /&gt;     CreateUserInfo(),&lt;br /&gt;     CreateUserInfo(),&lt;br /&gt;     CreateUserInfo(),&lt;br /&gt;     CreateUserInfo(),&lt;br /&gt;     CreateUserInfo(),&lt;br /&gt;     CreateUserInfo(),&lt;br /&gt;     CreateUserInfo()&lt;br /&gt;    });&lt;br /&gt;    return list.AsQueryable();&lt;br /&gt;   }&lt;br /&gt;   set { }&lt;br /&gt;  }&lt;br /&gt;  public static IQueryable&lt;ProjectInfo&gt; Projects { get; set; }&lt;br /&gt; }&lt;br /&gt; public class UserInfo&lt;br /&gt; {&lt;br /&gt;  public int ID { get; set; }&lt;br /&gt;  public string 名前 { get; set; }&lt;br /&gt;  public double 年計 { get; set; }&lt;br /&gt;  public double 実績 { get; set; }&lt;br /&gt; }&lt;br /&gt; public class ProjectInfo&lt;br /&gt; {&lt;br /&gt;  public int ID { get; set; }&lt;br /&gt;  public string ProjectName { get; set; }&lt;br /&gt;  public double ProjectAmount { get; set; }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;明示的なデータ構造がわかるものじゃないと中身を表示してくれないし、そもそもPropertyInfoは中身を表示してくれない。意味がわからない。無名構造体でも表示はしてくれない。どういうことだ。適応のさせかたのどこかで間違えたことは確かなのだが、どこかわからない。無名構造体が使えないのでは、DataGridに動的にデータを適応しようと思うと困るのだが。&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2018539601124597315?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2018539601124597315/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/datagrid.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2018539601124597315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2018539601124597315'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/datagrid.html' title='DataGridとの憂鬱'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3098235206318557157</id><published>2010-05-19T23:01:00.009+09:00</published><updated>2010-05-22T22:30:27.547+09:00</updated><title type='text'>Codeの表示のテスト</title><content type='html'>どうもJudaです。&lt;br /&gt;MainPage.xaml.cs&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.Reflection;&lt;br /&gt;&lt;br /&gt;namespace AgScheduler&lt;br /&gt;{&lt;br /&gt; public partial class MainPage : UserControl&lt;br /&gt; {&lt;br /&gt;  public MainPage()&lt;br /&gt;  {&lt;br /&gt;   InitializeComponent();&lt;br /&gt;   var list = DataEntity.Users;&lt;br /&gt;   PropertyInfo[] infos = typeof(UserInfo).GetProperties();&lt;br /&gt;   var q = (from rec in DataEntity.Users&lt;br /&gt;        select new&lt;br /&gt;        {&lt;br /&gt;         Name = rec.名前,&lt;br /&gt;         Product = rec.年計,&lt;br /&gt;         Amount = rec.実績&lt;br /&gt;        }).AsQueryable();&lt;br /&gt;   this.dataGrid1.ItemsSource = q;&lt;br /&gt;   this.dataGrid1.UpdateLayout();&lt;br /&gt;   &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private void Button_Click(object sender, RoutedEventArgs e)&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3098235206318557157?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3098235206318557157/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/code.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3098235206318557157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3098235206318557157'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/code.html' title='Codeの表示のテスト'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3125632932240015722</id><published>2010-05-16T02:01:00.002+09:00</published><updated>2010-05-16T02:06:13.733+09:00</updated><title type='text'>Silverlightにおける各種画像のエンコード、デコード</title><content type='html'>どうもJudaです。&lt;div&gt;Silverlight をつかって画像を処理を行いたいなぁとおもっていたり、ファイルを取得して再度変換したいときに、大変なことに気がつきます。&lt;/div&gt;&lt;div&gt;再変換出来ないじゃん&lt;br /&gt;BMPでしか保存出来ないのに、BMP読めないじゃん&lt;/div&gt;&lt;div&gt;意味がわかりません。Silverlightでは、基本的なポリシーとして不適切な攻撃をされる可能性を最小化し、それぞれの実装者の責任に問題を置き直しています。さまざまな部分でセキュリティに重きを置いています。&lt;/div&gt;&lt;div&gt;でもまぁ、そのおかげでいろいろな部分で変更が効くようになっているので助かります。&lt;/div&gt;&lt;div&gt;とりあえず画像データのEncode,Decodeのためのオープンソースを紹介します。&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/p/fjcore/"&gt;http://code.google.com/p/fjcore/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;とりあえずソースを読んでいますが、なかなか便利ですね。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3125632932240015722?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3125632932240015722/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlight.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3125632932240015722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3125632932240015722'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlight.html' title='Silverlightにおける各種画像のエンコード、デコード'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7146636931956037995</id><published>2010-05-14T11:01:00.002+09:00</published><updated>2010-05-14T11:04:12.343+09:00</updated><title type='text'>ADO.NETのあれこれ</title><content type='html'>どうもJudaです。&lt;div&gt;BaseListとBaseEntityの話&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/wave1008/20090324"&gt;http://d.hatena.ne.jp/wave1008/20090324&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/wave1008/20090330/p1"&gt;http://d.hatena.ne.jp/wave1008/20090330/p1&lt;/a&gt;&lt;/div&gt;&lt;div&gt;まさにこの通りで、Reference.csに自動生成されているものに対してINotifyPropertyChangedを実装しないといけないので、面倒で面倒で仕方ないです。&lt;br /&gt;そもそもEntityを生で扱うとめんどくさいことになるので、困りますね。&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7146636931956037995?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7146636931956037995/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/adonet.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7146636931956037995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7146636931956037995'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/adonet.html' title='ADO.NETのあれこれ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-447640825354621259</id><published>2010-05-11T01:25:00.001+09:00</published><updated>2010-05-11T01:26:49.497+09:00</updated><title type='text'>LINQ</title><content type='html'>どうもJudaです。&lt;br /&gt;LINQはここがめちゃくわしい。&lt;br /&gt;日向ぼっこデベロッパhandcraftの備忘録&lt;br /&gt;http://handcraft.blogsite.org/ComponentGeek/ShowArticle/66.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-447640825354621259?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/447640825354621259/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/linq.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/447640825354621259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/447640825354621259'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/linq.html' title='LINQ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6606327257660206496</id><published>2010-05-10T14:41:00.001+09:00</published><updated>2010-05-10T14:43:34.412+09:00</updated><title type='text'>ADO.NET Data Service のデータの追加、削除、更新</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;ADO.NET Data Service のデータの追加、削除、更新についてのサイト&lt;/p&gt;&lt;p&gt;&lt;a href="http://lostintangent.com/2007/12/30/adonet-data-services-part-7-data-modification-client/"&gt;ADO.NET Data Services Part 7: Data Modification - Client&lt;/a&gt;&lt;/p&gt;&lt;p&gt;http://lostintangent.com/2007/12/30/adonet-data-services-part-7-data-modification-client/&lt;/p&gt;&lt;p&gt;こりゃ詳しい。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6606327257660206496?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6606327257660206496/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/adonet-data-service_10.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6606327257660206496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6606327257660206496'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/adonet-data-service_10.html' title='ADO.NET Data Service のデータの追加、削除、更新'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6449354389622110551</id><published>2010-05-06T00:56:00.002+09:00</published><updated>2010-05-06T01:05:08.858+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>ADO.NET Data Serviceについて</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;ADO.NET Data Servicesについてですが、主キーでNot NullableなAutoIncrimentなカラムの値の設定方法ですが、どうも値を自動で上書きされるようです。&lt;/p&gt;&lt;p&gt;それ以上に注意しないといけないのは、Entity FrameworkのEntity Data Modelで接続部分をになってくれる構造体群に対しては、接続元になっているDBの各列の型、既定値、Null許容かなどの、「SQL Expressでつくったから、Wizardがやってくれている」と幻想をいだいているものは大半がダメです。そげぶされます。&lt;/p&gt;&lt;p&gt;明示的に設定するようにMSDNでも書いてあります。調べないとわからないのですけど、ちょっとはどこかに書いて欲しいものであります。&lt;/p&gt;&lt;p&gt;また失敗した場合のエラーログが欲しい場合は、Wizardが書いてくれているコードに対して、いくつかの属性を設定すればより詳しいエラーメッセージを得られるのですが、前に書いたのを忘れたので、探しています。属性についても本当に調べにくい。そのくせ、属性すごく重要。&lt;/p&gt;&lt;p&gt;それとLINQにはAutoIncrimentに関する操作は特にはないです。だから今度はUpdateで揉めそうです。うわー、嫌だなぁー。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6449354389622110551?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6449354389622110551/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/adonet-data-service.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6449354389622110551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6449354389622110551'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/adonet-data-service.html' title='ADO.NET Data Serviceについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2572122705439255400</id><published>2010-05-05T12:39:00.002+09:00</published><updated>2010-05-05T12:43:58.354+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>SilverlightとDBの連携</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;Silverlight : ADO.NET Data Services (Silverlight)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/cc838234(v=VS.95).aspx"&gt;http://msdn.microsoft.com/ja-jp/library/cc838234(v=VS.95).aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;まぁ連携についての情報はここが一番詳しそうです。&lt;/p&gt;&lt;p&gt;ちなみに疑問になるのは、Entity Frameworkを利用した際に、Viewに該当するものは、基本的にUpdateやDeleteは出来ないのではないかと言うことであり、Wizardを通じて、AddTo&lt;classname&gt;で定義されるメソッドにもViewのものが混在しうるけれども、これについてはプログラマが意識的に使わないように心がけないといけないものなのだろうか？&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2572122705439255400?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2572122705439255400/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightdb.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2572122705439255400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2572122705439255400'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightdb.html' title='SilverlightとDBの連携'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3835879907727405092</id><published>2010-05-04T15:51:00.002+09:00</published><updated>2010-05-04T15:58:46.864+09:00</updated><title type='text'>SilverlightでのDataDrivenでの注意</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;プロパティの変更を通知するインターフェイスの実装をしているクラス&lt;br /&gt;INotifyPropertyChangeでの注意。&lt;br /&gt;&lt;br /&gt;文字列で指定するプロパティ名は、&lt;br /&gt;別の参照されている部分で使われているバインディングパスの名前と&lt;br /&gt;同一でないと機能しない。&lt;br /&gt;&lt;br /&gt;だからバインドを統括するようなクラスをDataContextにして&lt;br /&gt;それぞれ同じデータを別のエイリアスでつかっている場合には、&lt;br /&gt;それら全てに適応できるように読み換えや&lt;br /&gt;同時に複数の変更を通知するようにしないといけない。&lt;br /&gt;&lt;br /&gt;本当はエイリアスのような使い方をする場合には&lt;br /&gt;もっと気をつかった設計を行う必要性があると思われる。&lt;br /&gt;&lt;br /&gt;もっともなるべく同一の名称になるようにクラスを調整する方が推奨されるだろう。&lt;br /&gt;しかし今回のような注意点は、複数の提供元によって作成されたコントロール間で&lt;br /&gt;協調させたい場合には、協調を制御する統括クラスにはそれなりの対応が求められる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3835879907727405092?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3835879907727405092/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightdatadriven.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3835879907727405092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3835879907727405092'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightdatadriven.html' title='SilverlightでのDataDrivenでの注意'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8467855190765990738</id><published>2010-05-04T01:05:00.005+09:00</published><updated>2010-05-04T01:26:53.224+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>SilverlightでのXMLシリアライズ</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;&lt;a href="http://dobon.net/vb/dotnet/file/xmlserializer.html"&gt;dobon.net&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.wankuma.com/kazuki/archive/2008/12/21.aspx"&gt;かずきのBlogさん&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/cc189085(v=VS.95).aspx"&gt;MSDN&lt;/a&gt;　＋ &lt;a href="http://msdn.microsoft.com/ja-jp/library/system.xml(v=VS.95).aspx"&gt;MSDNライブラリ&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/waritohutsu/20090417/1239958319"&gt;waりとnaはてな日記&lt;/a&gt;&lt;/p&gt;&lt;p&gt;すまないが、XMLの書き出し、読み込みをもうちょっと簡単にしたい。&lt;/p&gt;&lt;p&gt;System.Runtime.Serialization.DataContractSerializer&lt;/p&gt;&lt;p&gt;をつかえば、なんとかなる。というか、なんとかできる。&lt;/p&gt;&lt;p&gt;でも正しい使い方なのかわからない。&lt;/p&gt;&lt;p&gt;とりあえずSilverlightでXMLを読み書きするときには、便利なクラス。&lt;/p&gt;&lt;p&gt;というか、XMLの解析をガチでやらせようと思うと、めんどくさくてくさくて、仕方がないです。&lt;/p&gt;&lt;p&gt;ありがとう、XMLの簡単な読み書き機能を作ってくれた開発者の方。&lt;/p&gt;&lt;p&gt;それにしてもXMLにある潜在的な&lt;a href="http://www.microsoft.com/japan/technet/security/bulletin/ms06-061.mspx"&gt;セキュリティーホール&lt;/a&gt;とか怖いなぁ。まぁ、全ての入力はすべからく怖いのか。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8467855190765990738?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8467855190765990738/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightxml.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8467855190765990738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8467855190765990738'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/05/silverlightxml.html' title='SilverlightでのXMLシリアライズ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6810084443887423034</id><published>2010-04-29T09:52:00.002+09:00</published><updated>2010-04-29T10:09:45.189+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Silverlightとインターフェイスの話</title><content type='html'>どうもJudaです。&lt;br /&gt;XAMLの技術とInterfaceの親和性についての話。&lt;br /&gt;XAMLで記述して、事前にデータバインディングのターゲットを固定させて、そこへのアクセスを確率できるようなInterfaceを公開することは有益なのだろうかと言う問から端を発しました。&lt;br /&gt;試作段階に置いてXAMLで表示したいものと表示の形式がある程度固まると、そのバックエンドとなる部分で調整になると思います。その時に、もっとも合致する機能はInterfaceではないのかという思いつきですが、そこそこ有益だと思います。&lt;br /&gt;Interfaceなら実装を保証させるので、それによってバインディングエラーを減らすことができます。ここで注意したいのは、XAMLのほうでTwoWayを採用するなら、Interfaceに必ずSetterを書いておく方が混乱が少ないのですが、それ以外のOneTime、OneWayの場合には、それはInterfaceで規約するのではなく、実装側の裁量に任せる方がいいとおもう。また、OneWay、TwoWayの場合にはINotifyPropertyChangedの継承が実装側で最終的に必要になるので、それも検討しておきたい。&lt;br /&gt;別の話にはなるが、INotifyPropertyChangedでプロパティの変更を検知する処理を組み込んで、Setterなりを修正するのだけれども、この場合には、自作でSnippet、もしくはマクロを組むことが有効であると思う。大半のコードが同一になるので、これをおすすめしたい。しかしながら、簡易でPropertyを書いた場合、つまり　get;set;のプロパティへの変更検知機能の追加はめんどくさい。なんとかならないのかと思っている。&lt;br /&gt;話は戻るが、Interfaceの基本的な考え方とXAMLでのバインディングの記述の間にある程度の親和性があり、これを再利用出来る形で提供すると面白いのではないかと思う。しかしこれでは何が問題になるってくるのか、まではまだちゃんと確認出来ていない。Interfaceがそういう具体性を求めているのではないとすれば、この考え方はあまり良くないと思うが、個別の開発でフロントエンドとバックエンドを分離して開発するときには、いちいち名称の確認をとらなくてもよくなって、個人的にはいいと考えた。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6810084443887423034?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6810084443887423034/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/silverlight.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6810084443887423034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6810084443887423034'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/silverlight.html' title='Silverlightとインターフェイスの話'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6495733551493984792</id><published>2010-04-26T18:06:00.002+09:00</published><updated>2010-04-26T18:13:48.448+09:00</updated><title type='text'>DataServiceKeyAttribute("ID")</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;Reference.cs&lt;/p&gt;&lt;p&gt;[global::System.Data.Services.Common.DataServiceKeyAttribute("ID")]&lt;/p&gt;&lt;p&gt;こいつか。。。&lt;/p&gt;&lt;p&gt;昔おいらを苦しめたのは。。。。&lt;/p&gt;&lt;p&gt;追記；&lt;/p&gt;&lt;p&gt;あれ、違う。。。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6495733551493984792?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6495733551493984792/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/dataservicekeyattributeid.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6495733551493984792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6495733551493984792'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/dataservicekeyattributeid.html' title='DataServiceKeyAttribute(&quot;ID&quot;)'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5160572209945900052</id><published>2010-04-25T21:22:00.003+09:00</published><updated>2010-04-25T21:26:41.084+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Silverlight Content Controlについて</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;&lt;a href="http://i-learn-try-error-and-try.blogspot.com/2010/04/silverlightcustom-content-control.html"&gt;いっこ前の話&lt;/a&gt;&lt;/p&gt;&lt;p&gt;なんとなくですけど、Contentって名前は既に使われているので、これをそのまましようすることはできないので、DependencyPropertyでObjectで任意のコントロールを生成する。そしてPropertyのSetterで登録を行えば、なんとか認識して使用できますが、明確に登録するプロパティを使用しないイケないので、ちょいと見栄えが悪くなります。ここらへんはどうすればいいのかわからない。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5160572209945900052?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5160572209945900052/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/silverlight-content-control.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5160572209945900052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5160572209945900052'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/silverlight-content-control.html' title='Silverlight Content Controlについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8551843522196713916</id><published>2010-04-25T02:21:00.002+09:00</published><updated>2010-04-25T02:26:54.964+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>SilverlightにおけるCustom Content Control</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.mostlydevelopers.com/blog/post/2009/03/30/Silverlight-Custom-Content-Control.aspx"&gt;Silverlight Custom Content Control&lt;/a&gt;&lt;/p&gt;&lt;p&gt;まさに掲題のとおり、Contentを表示したい時があります。&lt;/p&gt;&lt;p&gt;けれども簡単に行う方法はよくよく調べないとわかりません。Custom Template Bindingもひとつの手ですが、それもそれでなかなか大変なのです。（本当か？&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/magazine/cc721611.aspx#id0430045"&gt;Silverlight 2 のカスタム コントロールを作成する&lt;/a&gt;&lt;/p&gt;&lt;p&gt;うん、なんかいろいろめんどくさい。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8551843522196713916?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8551843522196713916/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/silverlightcustom-content-control.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8551843522196713916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8551843522196713916'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/04/silverlightcustom-content-control.html' title='SilverlightにおけるCustom Content Control'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2841647895576738505</id><published>2010-03-27T23:33:00.003+09:00</published><updated>2010-03-27T23:39:13.668+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='Mercurial'/><title type='text'>HgInitの試訳</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;Joelが&lt;a href="http://hginit.com/00.html"&gt;Mercurialの入門手引き&lt;/a&gt;を書いたので、かっとなって日本語に訳してみた。最初の頁のとちゅうまでだけどね。&lt;/p&gt;&lt;p&gt;--以下訳--&lt;/p&gt;&lt;p&gt;私の会社にいるプログラマたちがSubversionからMercurialへ乗り換えることを決めたとき、ジョエル少年は混乱してしまった。&lt;br /&gt;&lt;br /&gt;はじめに、あらゆる乗り換えるべきでないくだらない理由に付き合ってくれた。”私は中央サーバにリポジトリを保持すべきであり、それが安全だと思う。””君はしっているのか？君はあまり詳しくないだろうがMercurialでは全ての開発者が自らのハードディクス上にリポジトリ全体のコピーをもつんだよ。それは実際にはより安全だろう。なにより、大抵のMercurialを採用したチームは中央サーバもつかうし、君がBackupをとらなければならないという強迫観念にかられるようなら、そうしよう。また君は3層にもなるセキュリティー、Cylons、Stromtroopers、またはをささやかな開放的な領域を構築できるよ。"&lt;br /&gt;&lt;br /&gt;"煩雑なバージョン管理によるトラブルはブランチすることによってすぐに起きてしまうし、ブランチをつくることは常に問題を起こす。””結局この考えも良くない。いずれ悪い結果がおきる。Subversionでブランチすることは問題を発生するのは、Subversionはマージ処理をおこなうのに十分な情報を持っていないからだ。Mercurialでは、マージは苦痛じゃないし、簡単だ、そしてブランチはありふれたことだし、害もない。&lt;br /&gt;&lt;br /&gt;”そいつはいいね、つかってみるよ。でもとても僕には理解できるようには思えないよ”僕はJacobにMercurialでSubversionで行っていた事と同等のことをできるようにCheatSheetをつくってくれるように頼んだ。&lt;br /&gt;&lt;br /&gt;いま、私はこのCheatSheetを君にみせれる、でもしない。それは数カ月のものあいだ混乱のもとだったからだ。&lt;br /&gt;&lt;br /&gt;結局のところ、Subvesionをつかっていたとしよう、それは君の脳をすこし、えっと礼儀正しく言うにはどうすればいいのかな。その、イカれちまってる。おっとこれはよくない。君には少し再教育が必要になる。私が半年の間MercurialがSubvesionよりも複雑だと考えることによってイカれちまった部分を探してみた。でもそれは私がMercurialがどういう働きをするのか理解していなかったから、一度分かれば、ちんからほい、Mercurialはある意味簡単だ。&lt;br /&gt;&lt;br /&gt;だから私は君のために手引書を書いている。この手引書では、慎重にSubvesionの意味で説明しないようにした。それもこれ以上の混乱のもとをなくすためだ。もう混乱のもとはたくさんだ。代わりにSubvesionからきた人たちのためにMercurialを勉強するために可能な限り綺麗な状態に戻そうと一章つかってやってみようと思う。&lt;br /&gt;&lt;br /&gt;Subvesionを使ったことがないのなら、次の章にいくといいよ。見逃さないでね！&lt;br /&gt;&lt;br /&gt;準備はいい？いくよ。ここで簡単なクイズ！&lt;br /&gt;Q1. 初回で完璧なソースを書けますか？&lt;br /&gt;もし君がはいと答えたら、君はとんでもない嘘つきだし、詐欺師だ。君は失格。また試験を受けてくれ。&lt;br /&gt;&lt;br /&gt;新しいコードはバグに満ちている。ちゃんと働かせるには、すこし時間がかかります。その間の時間、チームの他の開発者の苦痛になります。&lt;br /&gt;&lt;br /&gt;このとき、Subvesionはどのように働くか、&lt;br /&gt;新しいコードをチェックインするとき、みんなトラウマコードを取得します。&lt;br /&gt;君の書いた全ての新しいコードはバグだらけですので、君は悩みます。&lt;br /&gt;バグのあるコードをチェックインして、他の開発者に苦痛を与える。&lt;br /&gt;バグがなくなるまでの間、チェックインをしないようにする。&lt;br /&gt;Subvesionは常にこの苦しいジレンマを起こします。リポジトリはバグで満ちている。新しいコードを入れてもバグを含むし、また新しいコードを管理しないならそれもバグだ。&lt;br /&gt;Subvesionをつかうひとなら、このジレンマが存在しないことを想像できないでしょう。&lt;br /&gt;&lt;br /&gt;Subversionをつかうチームはしばしば何日もあるいは何週間も何もチェックインしないことがある。Subversionチームでは、新入りはあらゆるコードをチェックインすることを恐れる。ビルドを壊してしまうこと、つまり年長の開発者のマイクさんやそういったお歴々を怒らせるを恐れる。マイクはすぐにチェックインによってビルドが壊れたことに腹を立てて、インターンのいるパーティションまでやってきて、彼の机の上のものを全部払いのけて、「てめぇはクビだ！」と叫ぶでしょう。（もっともそうならなくても、哀れなインターンはパンツを濡らしちゃいますけどね。）&lt;br /&gt;あらゆるこの種のチェックインに関するおそれはみんながコードを何週もの間バージョン管理のご利益を得ずにソースを書くことをいみし、そしてこの状況に気づいたある年長の開発者がそれらをチェックインするように助けて回る。&lt;br /&gt;どうしてバージョン管理が使えないのに、バージョン管理を導入したいと考えるだろう。&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;--ここまで訳--&lt;/p&gt;&lt;p&gt;確かにSubversionのジレンマはそのとおりだと思う。しかもこれでブランチを作りまくれば、まぁ大変になるのも仕方なし。とりあえずはやく全部読む。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2841647895576738505?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2841647895576738505/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/hginit.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2841647895576738505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2841647895576738505'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/hginit.html' title='HgInitの試訳'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4585274115872194211</id><published>2010-03-27T15:24:00.007+09:00</published><updated>2010-03-27T23:45:54.569+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><category scheme='http://www.blogger.com/atom/ns#' term='.NETFramework'/><title type='text'>ADO.NET Data Serviceにおける注意点</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;ADO.NET Data Serviceの暗黙的な制約があるっぽいので、注意を。&lt;/p&gt;&lt;p&gt;このサービスを作るときに.svc.csファイルに記述をしていくと思いますが、この時に注意があります。基礎となるデータ構造へのアクセスを提供するIQueryable&lt;t&gt;のプロパティを持つクラスはすべて一箇所にDataService&lt;t&gt;と同じところに書いておかないとサービスが使えない。どうもそうらしい。もう少し厳密に調べてみる。それにしてもややこしいなぁ、このシステム。どうも最近VisualStudioのWizardが生成するコードとの相性が悪い。どうも道から離れているみたい。&lt;/t&gt;&lt;/t&gt;&lt;/p&gt;&lt;p&gt;追記&lt;/p&gt;&lt;p&gt;どうも原因が一定しないみたい。問題を捉えたと思ったら逃げられた。一箇所にデータを入れておいたのに、サービスが認識されない。要求エラーが表示されて、内部にエラーが潜在してしまう。作り方自体は、各種サンプルを参考にしているがどうしても問題点を捉え損なう。&lt;/p&gt;&lt;p&gt;バイナリ化しているものの参照がうまく行っていない気もするけれど、いかにしてそれを捕まえるのか分からない。最近こんなんばっか。はしごが外されている。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;もいっちょ追記。&lt;/p&gt;&lt;p&gt;DataService&lt;t&gt;のTが扱っているEntityにNullにならない一意なIDになるものプロパティがないと、駄目だ。これがないだけで、全てがおじゃんになる。あとはEnumの継承型をEntityに含めることはできない。使えないんだよ。だから、大抵はint,stringのオンパレード。ちなみにDateTimeも使えない。これが痛い。使えるのかも知れないけど、とりあえず直接は入れられない。とりあえずこうすれば、コードを分割して記述してもいけるし、DLLで参照もできる。これもEntityをDBから作らないから、エラー出力をする属性も分からないし、調べ方も分からない。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4585274115872194211?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4585274115872194211/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/adonet-data-service.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4585274115872194211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4585274115872194211'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/adonet-data-service.html' title='ADO.NET Data Serviceにおける注意点'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7938781593114575078</id><published>2010-03-26T15:05:00.002+09:00</published><updated>2010-03-26T16:08:40.307+09:00</updated><title type='text'>ADO.NET Data ServicesあらためてWCF Data Services</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;ここにいい導入発見。いくつかの注意点をあとから洗い出します&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/library/cc907912.aspx"&gt;Using Microsoft ADO.NET Data Services（http://msdn.microsoft.com/library/cc907912.aspx）&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7938781593114575078?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7938781593114575078/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/adonet-data-serviceswcf-data-services.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7938781593114575078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7938781593114575078'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/adonet-data-serviceswcf-data-services.html' title='ADO.NET Data ServicesあらためてWCF Data Services'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8833291558157897824</id><published>2010-03-25T22:15:00.002+09:00</published><updated>2010-03-25T22:25:24.764+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電子書籍'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Silverlightのためのいくつかの話</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/Silverlight%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%96%E3%83%83%E3%82%AF-Web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-X%E3%83%BBK-BOOKS-developers/dp/4767808766/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1269523190&amp;amp;sr=8-1"&gt;Silverlightリファレンスブック&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/ASP-NET-MVC%E5%AE%9F%E8%B7%B5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E2%80%95-NET-Framework%E3%81%AB%E3%82%88%E3%82%8B%E6%A8%99%E6%BA%96Web%E9%96%8B%E7%99%BA%E6%8A%80%E6%B3%95-%E5%B1%B1%E7%94%B0-%E7%A5%A5%E5%AF%9B/dp/4798024015/ref=sr_1_5?ie=UTF8&amp;amp;s=books&amp;amp;qid=1269523241&amp;amp;sr=1-5"&gt;ASP.NET MVC実践プログラミング―.NET Frameworkによる標準Web開発技法 &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/Silverlight%E3%81%A7%E9%96%8B%E7%99%BA%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E9%A7%86%E5%8B%95%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3-John-Papa/dp/4873114195/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1269523282&amp;amp;sr=1-2"&gt;Silverlightで開発するデータ駆動アプリケーション&lt;/a&gt;&lt;br /&gt;とりあえずこの3冊は現状で手に入る日本語のSilverlightまわりの書籍としてはとってもいい。&lt;br /&gt;&lt;br /&gt;リファレンスブックは、「そうなんだよ、この実装をどうやるか知りたかったんだよ」っていうものがちらほら。&lt;br /&gt;ASP.NETは、「そもそもSilverlightのクロスドメイン回避するWebサービスが必要だな」ってときに助かる。&lt;br /&gt;データ駆動は、「Silverlightを使い倒してやる」っていうアプリケーション開発者にはぴったりな一冊。&lt;br /&gt;&lt;br /&gt;ADO.NET  Data Servicesに関する情報は少ないし、そもそもWebアプリケーションに関するビビッとくる本に未だ出会えていない。誰かご存じないですかねぇ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8833291558157897824?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8833291558157897824/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight_25.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8833291558157897824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8833291558157897824'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight_25.html' title='Silverlightのためのいくつかの話'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-1379431946581241894</id><published>2010-03-24T11:28:00.003+09:00</published><updated>2010-04-26T00:03:19.908+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Silverlightのイベントについて</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/ja-JP/library/cc189018(v=VS.95).aspx"&gt;Silverlight のイベントの概要&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/ja-JP/library/dd833067(v=VS.95).aspx"&gt;Silverlight のカスタム クラスのイベントの定義&lt;/a&gt;&lt;/p&gt;&lt;p&gt;RoutedEventは既存のSilverlightのコントロール以外には適応されないようです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-1379431946581241894?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/1379431946581241894/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight_24.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1379431946581241894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1379431946581241894'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight_24.html' title='Silverlightのイベントについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-9148660429787229062</id><published>2010-03-23T23:34:00.005+09:00</published><updated>2010-03-24T01:11:57.453+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'></title><content type='html'>&lt;div&gt;どうもJudaです。&lt;br /&gt;いきなりSilverlightというか、WPFというか、&lt;br /&gt;Bindingで使われるDependencyPropertyの話をMSDNの項目からかなり抜粋するが、&lt;br /&gt;細かな部分だが結構込み入った使い方をする。&lt;br /&gt;依存関係プロパティは、DependencyObjectに存在するPropertyのことで、&lt;br /&gt;DependencyObjectプロパティストアに格納されている。&lt;br /&gt;このプロパティストアを所有するDependencyObjectは、&lt;br /&gt;public static readonlyで修飾されるDependencyProperty識別子を使って、識別される。&lt;br /&gt;この依存関係プロパティを実装しようと思うと、通常のプロパティ(CLRプロパティ)をラップする必要性がある。&lt;br /&gt;この依存関係プロパティがなぜ「依存関係」プロパティというのかという一因は、&lt;br /&gt;あるプロパティが別のプロパティを値としてい持てるからであり、&lt;br /&gt;実行時までその値を評価するのを遅延させることができ、&lt;br /&gt;そのことによってプロパティに依存関係を作ることができるからである。&lt;br /&gt;これはBindingとも関連する。&lt;br /&gt;このプロパティを記法は似ているが、異なる添付プロパティが存在する。&lt;br /&gt;例えば、Canvas.Leftのような個別のオブジェクトが所有していないプロパティである。&lt;br /&gt;この添付プロパティの実装は、依存関係プロパティと似ているが、&lt;br /&gt;設定された値が、自身ではなく、要素に対する付加的な意味合いがある。&lt;br /&gt;&lt;br /&gt;カスタムしたイベント群を作っていこうと思うと、後半の添付プロパティをうまく使っていかないと、&lt;br /&gt;XAMLで楽をできない。&lt;br /&gt;ましてや、サポートされていない機能であるDrag&amp;amp;DropやDoubleClickの基本構造を適応していこうと思うと、&lt;br /&gt;添付プロパティを使わなくてはとてもコーディングできると思えない。&lt;br /&gt;&lt;br /&gt;ただイベントの登録をどうするのかが若干困りものではある。&lt;br /&gt;大まかにはわかるのだが、&lt;br /&gt;Propertyとして設定しようとして&lt;br /&gt;そのプロパティを呼び出したときのオブジェクトを知らせてくれるならば、&lt;br /&gt;オブジェクトとともにイベントハンドラを持てばいいのだろう。&lt;br /&gt;&lt;br /&gt;関連付けさえうまくできればなんとかできそうではあるが、煩雑なことにはかわりない。&lt;br /&gt;あとはListBoxからのDrag&amp;amp;Dropに関しても、内部で取得されるItemsSourceが不定であるので、&lt;br /&gt;Converterを指定し、さらにDrag時の描画や、Dragのイベントなどの処理まで考えるとうんざりしてしまう。&lt;br /&gt;ちょうどいいことにライブラリはあるのだが、&lt;a href="http://www.telerik.com/products/silverlight.aspx"&gt;Telerik&lt;/a&gt;のライブラリいいんだけど、10万も出せません＞＜&lt;br /&gt;でもこの機能で10万は安い買い物だと思います。&lt;br /&gt;ちなみに体験版もあるので、ぜひ！&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-9148660429787229062?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/9148660429787229062/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/juda-silverlightwpf-bindingdependencypr.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/9148660429787229062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/9148660429787229062'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/juda-silverlightwpf-bindingdependencypr.html' title=''/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6840085058325125849</id><published>2010-03-22T02:28:00.002+09:00</published><updated>2010-03-22T02:41:10.697+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Vimでのコメントアウトについて</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;掲題の件に該当する記事のサルベージ&lt;/p&gt;&lt;p&gt;&lt;a href="http://hurley.wordpress.com/2007/06/13/vim-tip-comment-out-multiple-lines/"&gt;Vim Tip: Comment out multiple lines&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://nanasi.jp/articles/vim/commentout_source.html"&gt;commentout.vim : ソースをコメントアウト ←→ コメントアウト解除&lt;/a&gt;&lt;/p&gt;&lt;p&gt;とりあえず一番上の英語をオレオレ訳&lt;/p&gt;&lt;p&gt;Vimのプラグインなしで、一連の行をコメントアウトすることについて&lt;/p&gt;&lt;p&gt;ヴィジュアルブロックでコメントアウトしたい行を選択して、そのときに”I”を入力する。これは、選択した部分の頭に挿入を行うためだ。次にコメントアウト用の文字を入力する。PythonやShellなどなら＃だ。そのあとでESCする。&lt;/p&gt;&lt;p&gt;頻繁には使わないけど、時々使う便利なVimコマンドを忘れてしまう。ブログに書けばいいのに。&lt;/p&gt;&lt;p&gt;君はヴィジュアルラインで選択したものについては別の方法を使える。　”s/^/#”ってやつだ。&lt;/p&gt;&lt;p&gt;こいつなら行頭にコメントアウト用の文字をくっつけることをができるさ。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;って感じか？&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6840085058325125849?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6840085058325125849/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/vim.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6840085058325125849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6840085058325125849'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/vim.html' title='Vimでのコメントアウトについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6859873384027201918</id><published>2010-03-21T01:59:00.002+09:00</published><updated>2010-03-21T02:07:40.044+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='書籍サービス'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>電子書籍の新しい形をサービスへ</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;前回描いた電子書籍の新しい形をやっぱりサービスにしたい。&lt;/p&gt;&lt;p&gt;友人と話をしていてとっても勇気づけられたから、なんとか夏までにサービスに原型を作る。&lt;/p&gt;&lt;p&gt;そのときに新しくあるといい機能が出たので、メモしておく。&lt;/p&gt;&lt;ol&gt;&lt;li&gt;本から別の本への参照機能&lt;/li&gt;&lt;li&gt;気に入った部分のリスト機能&lt;/li&gt;&lt;li&gt;リスト公開機能&lt;/li&gt;&lt;li&gt;書籍の情報入力の簡易化&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;とりあえずメモの共有機能をやるとどうなるのかやってみる。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6859873384027201918?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6859873384027201918/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/blog-post_21.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6859873384027201918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6859873384027201918'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/blog-post_21.html' title='電子書籍の新しい形をサービスへ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4719824907692697181</id><published>2010-03-20T00:08:00.002+09:00</published><updated>2010-03-20T00:46:21.308+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電子書籍'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>電子書籍というよりも書籍型アプリについて</title><content type='html'>どうもJudaです。&lt;br /&gt;今日は面白そうだと思った。電子書籍のやり方をぽつぽつと。&lt;br /&gt;&lt;br /&gt;まずはTweet抜粋&lt;br /&gt;&lt;br /&gt;書籍化されたアプリ。。。これは、面白い。　これに追加して、他人のメモが挟まっていたりするとおもしろいのではないだろうか？　 http://bit.ly/abQUHL&lt;br /&gt;&lt;br /&gt;書籍化されたアプリというニュアンスはとても心地いい。そしてそれはこれから電子書籍をどうしていくのかについて、とてもいい指針を表している。 VerUpしていく書籍ということを考えていたが、これにMedia機能を盛り込んでいくことによって、これまでの書籍とは価値の違う書籍を提供できる。&lt;br /&gt;&lt;br /&gt;実はその手前に電子カルテを見据えている。これの普及が日本での鍵かな。日本の出版業界には期待していないので。&lt;br /&gt;&lt;br /&gt;何を考えているのかというと、既存の紙媒体の書籍と電子書籍の棲み分け。既存の紙媒体をただ代替するだけでは、あまりに電子書籍という考え方は面白くないし、そもそも出版業界が邪魔をするのでうまく普及できない。日本ではKindleが対応していないが、一応EPUBという形式はあるが、普及はしていない。既存の紙媒体の特徴というのは&lt;br /&gt;&lt;ol&gt;&lt;li&gt;無電力&lt;/li&gt;&lt;li&gt;高い保存性&lt;/li&gt;&lt;li&gt;印刷したものは変化しない&lt;br /&gt;&lt;/li&gt;&lt;li&gt;可読性の高さ&lt;/li&gt;&lt;li&gt;自由度が高い&lt;/li&gt;&lt;li&gt;版組がきっちりしている&lt;/li&gt;&lt;li&gt;物理的なコンテナを持っている&lt;/li&gt;&lt;li&gt;紙の感触をもつ&lt;/li&gt;&lt;li&gt;重さがある&lt;/li&gt;&lt;li&gt;手に入れるまでに時間がかかる&lt;/li&gt;&lt;li&gt;索引があるけれど、検索はできない&lt;/li&gt;&lt;/ol&gt;これらが主な要素として挙げられる。そこで電子書籍はなるべくこれと競合しないように考えてみる。&lt;br /&gt;&lt;ol&gt;&lt;li&gt;電気を使う&lt;/li&gt;&lt;li&gt;電源を切ると見えなくなる&lt;/li&gt;&lt;li&gt;買った状態から書かれている内容が変わる&lt;/li&gt;&lt;li&gt;可読性は変化できる&lt;/li&gt;&lt;li&gt;自由度は制限される&lt;/li&gt;&lt;li&gt;版組を変更できる&lt;/li&gt;&lt;li&gt;書籍自体の物理的なコンテナはない&lt;/li&gt;&lt;li&gt;紙の感触はない&lt;/li&gt;&lt;li&gt;書籍自体としての重さはない&lt;/li&gt;&lt;li&gt;オンデマンドに手に入る&lt;/li&gt;&lt;li&gt;索引がなくても、全文検索などができる。&lt;/li&gt;&lt;/ol&gt;こうして考えてみると、現在のブログに近いところが多い。ここまで来てしまうと、情報という意味が強く押し出されてしまって、書籍らしさというものはない。もっとも書籍らしさというものも物理的なコンテナの制約がなくなる時点でとてもあやふやではあるとおもう。&lt;br /&gt;さて話は戻るがここで一つ、試みを足してみる。それは他のメディアを補強するものとして、文字を使うことである。ちなみにこれはすでにペンギンブックスなどが試みている。しかし私は、この方向も面白いが、情報量的な制約によってできることとできないこともあるし、それ以上にこれでは書籍じゃない。雑誌のグラビアが動画になっているのもいいけれど、もっと猥雑さを足してみたい。&lt;br /&gt;例えば書籍にメモを貼れるようにして、それをTwitterや、ニコニコ動画のようにみんなで共有する。現実の本で考えるならば、たくさんのポストイットが貼られている感じ。これがみんなで共有できるのは、オモシロイと思う。ブログに対してコメントを残していく事に比べて、敷居が下がるかどうかは、分からないが、動画にコメントをする行為が受け入れられているので、それほど悩ましい問題ではないかもしれない。&lt;br /&gt;いままでこれをやろうとすると、どうしても同時性に欠けてしまったり、物理的に賃借しなければ読めないことなどがあるが、その問題は電子書籍ではなくなるし、そもそも本を読んでいる人の輪はネットワーク上で補填されるの、地理的な意味は薄くなる。&lt;br /&gt;これは読者側の一体感や同時性を演出するための仕掛け。おなじコンテキストを共有することに対しての提案としての電子書籍。&lt;br /&gt;もう一つ、書籍自体の改版のあり方について、変えてみたい。つまりはVerUpする書籍。あるいはBeta書籍。&lt;br /&gt;現在の書籍は常に完成された形で生まれてきて、長い時間の間で若干の修正が入る。ServicePackがあたるようなもんだ。では、これをBetaで公開しましょう。Alphaで公開しましょう。もしこれを有償のサービスとしてやるなら、Alphaで参加した人は、Betaで参加した人よりも安く手に入り、作者は早い内から読者のFeedBackをもらえる。仮に完成したなら、それを書籍として物理的に発売してもいいだろう。これは、代謝の激しい技術書の世界で根づいてくれるなら、とても嬉しいサービスだ。&lt;br /&gt;つまり技術書、とくにコンピュータ関係の書籍はVerUpによって変更がよく起きる。しかしそれは基本的なものを全部捨て去るほどのものではないし、次の版で、新しいVerのことが追加されて発売されることもままある。そのために良書の版違いをいくつも集めなければいけないことに忸怩たる思いをしている。その問題を解消することが狙いである。あとは、技術書ならば、サンプルを足してもいいし、わかりにくいところを補稿をしてもいい。つまり完全な書籍を販売できないので、不完全な状態から公開、販売し、それを継続的にケアしていく。&lt;br /&gt;こうすることによって、電子書籍は紙書籍とは異なるプロセスで成長できるとおもう。現状の販売システムとは異なるものであり、販売のタイプはライセンス系の契約事項に似てくると思う。そこまで含めてケアできるサービスと、クライアントを用意できれば、これはとてもオモシロイと思う。文字情報をなるべく紙媒体で読みたいという要望は、いずれ電子ペーパーが近いものを提示してくると思う。でも、あくまで紙の代替ではないやり方を電子書籍が追求すると、とてもいい。&lt;br /&gt;こういうビジネスをやりたいなぁ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4719824907692697181?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4719824907692697181/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4719824907692697181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4719824907692697181'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/blog-post.html' title='電子書籍というよりも書籍型アプリについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-154128835239875162</id><published>2010-03-17T23:58:00.002+09:00</published><updated>2010-03-18T00:07:18.126+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><category scheme='http://www.blogger.com/atom/ns#' term='.NETFramework'/><title type='text'>Silverlightとの戦い</title><content type='html'>どうもJudaです。&lt;br /&gt;Silverlightと最近は格闘中ですが、面白いです。TemplateやBindingはパワフルで使い出のあるアドバンテージです。これらの機能を使いこなすことでコーディング量を劇的に減らすこともできますし、自分の中のデータとビューの関係性を捉え直す機会もくれます。実に取り組みがいのある技術です。この先には、まだまだ多くの発展技術がいることを考えると、挫けそうですが。&lt;br /&gt;それはそうとSilverlight4RCがきましたが、まだ確認をしていません。それよりなによりVerUpの頻度が多い気がします。それ自体は悪いことではないですが、技術書が出揃わないうちにVerUpされると出版側が手を出しにくくなって、困ります。ただでさえ、少ないのに。&lt;br /&gt;ブログなどもいくつも見ていますが、重要なのは基本的な機能に十分習熟することと、Bindingをコード側からも理解することがかなり重要ですね。特にとっつきづらいのはCanvasとGridの実際的な制約事項。&lt;br /&gt;Canvasは自由配置できるのですが、Grid内に配置しても自由に配置を出来ること。Gridのみの場合には、自由配置が全くできないので、XAML側での構造の構築には気を使わなければなりません。あとはDrag&amp;amp;Drop機能を使おうと思うときには、構造をよくよく見れば明白ですが、ListBotのListBoxItemはListBoxの外ではそのまま使えないので、取り出したあとなんらかのコンテナを必要とする点や、データ自体の受け渡しのみならば、別のItemSoruceをもつものとも融通がきくことなど。&lt;br /&gt;実際にコードを触らないとあまりに些末で考えなければならないことが多いです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-154128835239875162?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/154128835239875162/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight_17.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/154128835239875162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/154128835239875162'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight_17.html' title='Silverlightとの戦い'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3558766898178040245</id><published>2010-03-16T11:11:00.000+09:00</published><updated>2010-03-16T11:12:58.083+09:00</updated><title type='text'>Silverlightのパス指定</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;Silverlightのパス指定について、重要なことを一つ。&lt;/p&gt;&lt;p&gt;パスの区切りは\ではなく、/。ましてや￥は使えない。&lt;/p&gt;&lt;p&gt;これすごい重要。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3558766898178040245?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3558766898178040245/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3558766898178040245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3558766898178040245'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/silverlight.html' title='Silverlightのパス指定'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6388695557841930662</id><published>2010-03-02T08:22:00.002+09:00</published><updated>2010-03-02T08:27:53.133+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='環境'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>VSでIntelliSenceのセンスがインテリでもセンスでもなくなったとき</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;VS2008でIntelliSenceが使い物にならなくなりました。その解決方法は、devenv.exe のコマンドオプション　/resetsettingもしくは/resetskippkgsのいずれかを用いて、設定がうまく更新されない問題を再設定を行なうことによって解消します。&lt;/p&gt;&lt;p&gt;このオプションの存在を知らないと、延々と続く再インストールを行い、なおかつ設定が変更されていないので、結局IntelliSenceがつかいものにならないという事態が発生してもおかしくないので、なにかこまったことがあったときには実行ファイルをコマンドプロンプトで実行してオプションを知るのもいいなぁと感じました。それにしてもVSは知らない機能が多くありすぎて、使いこなせていないのも一つあります。また悲しいことにVSの説明書はどれも初心者のためのものが多くあり、中級で普段の使い方になれて、次の段階へ移行しようとする開発者にとっては使い物になりません。Keyboardの隠しショートカットの存在とか、アドオンの設定とか。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6388695557841930662?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6388695557841930662/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/vsintellisence.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6388695557841930662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6388695557841930662'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/03/vsintellisence.html' title='VSでIntelliSenceのセンスがインテリでもセンスでもなくなったとき'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-48831162321089442</id><published>2010-02-22T10:20:00.001+09:00</published><updated>2010-02-22T10:21:59.832+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='初心者'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='環境'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><title type='text'>Silverlightの開発環境</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;Silverlightの開発環境は&lt;a href="http://www.microsoft.com/japan/Silverlight/development.aspx"&gt;ここ&lt;/a&gt;をみれば、一発。だってここが本家だもの。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-48831162321089442?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/48831162321089442/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/02/silverlight_22.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/48831162321089442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/48831162321089442'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/02/silverlight_22.html' title='Silverlightの開発環境'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8877753273166251595</id><published>2010-02-21T23:08:00.003+09:00</published><updated>2010-02-21T23:20:46.575+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='初心者'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><title type='text'>Silverlightのためのいくつかの話</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm"&gt;Silverlight SDK Sample Browser&lt;/a&gt;&lt;br /&gt;SDKのサンプル集であり、実行形式になっているものばかりだから、とてもわかりやすい。。。とは言い難いが、それでも基本的な使用方法はよくわかるので参考にされたし。&lt;br /&gt;&lt;br /&gt;基本的な使用方法のなかで、全画面表示を考えている場合には、とても重要な情報があります。&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/cc189023%28VS.95%29.aspx#Mtps_DropDownFilterText"&gt;全画面表示サポート&lt;/a&gt;&lt;br /&gt;使い方に関しては、書かれているがこれはとてつもなくわかりにくい。&lt;br /&gt;基本的な開発をVisualStudioで行うことを考えていると思いますが、この場合に重要になるのは、基本的にはProjectNameで作られたXAMLやcsファイルに対して変更を加えていきますが、この場合にSampleとして上げられているものはどこに導入すればいいのかさっぱりです。&lt;br /&gt;&lt;a href="http://www.atmarkit.co.jp/fdotnet/dotnettips/915slfullscreen/slfullscreen.html"&gt;＠IT - [Silverlight 2]Silverlight アプリケーションをフルスクリーンで表示するには？&lt;/a&gt;&lt;br /&gt;この記事を利用すれば比較的簡単にボタンに対して処理を使っていけましょう。&lt;br /&gt;これで導入ができますが、これよりも詳細なものの設定は個別のイベントに対しておこないます。&lt;br /&gt;しかしここで4未満においては入力関係に対しては制限がかかります。4からはOut of Browseモードでのみ全画面時にキーボード系の入力を受け付けるみたいですが、これがIn Browseでつかえるのかは謎です。たぶんできないのだと思います。&lt;br /&gt;ほかにも全画面表示の解除を行うためのキーのバインドを変更することができません。ちょっと調べただけですが。&lt;br /&gt;Pageクラスがこの全画面関連のメソッドをもっているので、このクラスを継承もしくは利用するクラスを作成すれば良さそうですが、それでも連携部分に対して不安が残ります。&lt;br /&gt;&lt;br /&gt;簡単に調べただけなので、これらの情報の確度は不定です。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8877753273166251595?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8877753273166251595/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/02/silverlight_21.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8877753273166251595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8877753273166251595'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/02/silverlight_21.html' title='Silverlightのためのいくつかの話'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2581613622617290252</id><published>2010-02-11T22:33:00.001+09:00</published><updated>2010-02-11T22:40:52.028+09:00</updated><title type='text'>SilverLightについての少々の覚書</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;SilverLiｇｈｔの初心者向けにいくつか簡単な説明を&lt;/p&gt;&lt;p&gt;Grid要素の下に、ColumnDefinitions、RowDefinisionsを設定して、その子要素としてColumnDefinition、RowDefinisionを必要な分だけ指定してやらないと、その次にTextBoxやButtonを設定してそのプロパティとしてGrid.Row="０"やGrid.Column="０"をやってもうまく表示指定できません。段の組み方などは従来のTable組みと同じです。ただ定義部分とデータ部分が分離されている点がHTMLの時とは若干異なります。&lt;/p&gt;&lt;p&gt;この点を無視して出来るのはCanvasですが、きっちりとした位置取りを行いたいときには面倒かも知れません。&lt;/p&gt;&lt;p&gt;また最初の状態でGridの名前がLayoutRootのものはたしかひとつしか宣言できませんが、これはGridコントロールが唯一と言う意味ではありません。Grid要素の内部にGrid要素を作って入れ子状態にできます。&lt;/p&gt;&lt;p&gt;また塗潰を行うRectangleですが、Gridのときには基本的には指定したセルにフィットしますが、サイズがちぐはぐになると、角の丸め表示などの部分が切られてしまうことがあるので、幅と高さの指定については要注意です。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2581613622617290252?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2581613622617290252/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/02/silverlight.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2581613622617290252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2581613622617290252'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/02/silverlight.html' title='SilverLightについての少々の覚書'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6589121475291322213</id><published>2010-01-24T22:26:00.005+09:00</published><updated>2010-01-24T22:38:03.097+09:00</updated><title type='text'>SilverLight 簡単サンプル</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J5d8z9m7PVE/S1xLwtFTTkI/AAAAAAAAAAM/DeykjX4mtqs/s1600-h/Sample001.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 318px; height: 320px;" src="http://4.bp.blogspot.com/_J5d8z9m7PVE/S1xLwtFTTkI/AAAAAAAAAAM/DeykjX4mtqs/s320/Sample001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5430298550809611842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;MainPage.xaml.cs&lt;/p&gt; &lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;&lt;br /&gt;namespace SilverBullet&lt;br /&gt;{&lt;br /&gt; public partial class MainPage : UserControl&lt;br /&gt; {&lt;br /&gt;  //BookmarkList m_listBookmark = null;&lt;br /&gt;  TextBox m_txtBox_UserId = null;&lt;br /&gt;  TextBox m_txtBox_UserPwd = null;&lt;br /&gt;  TextBlock m_txtBlk_UserId = null;&lt;br /&gt;  TextBlock m_txtBlk_UserPwd = null;&lt;br /&gt;  string m_userId = null;&lt;br /&gt;  string m_userPwd = null;&lt;br /&gt;&lt;br /&gt;  public TextBox TxtBox_UserId&lt;br /&gt;  {&lt;br /&gt;   get { return m_txtBox_UserId; }&lt;br /&gt;   set { m_txtBox_UserId = value; }&lt;br /&gt;  }&lt;br /&gt;  public TextBox TxtBox_UserPwd&lt;br /&gt;  {&lt;br /&gt;   get { return m_txtBox_UserPwd; }&lt;br /&gt;   set { m_txtBox_UserPwd = value; }&lt;br /&gt;  }&lt;br /&gt;  public TextBlock TxtBlock_UserId&lt;br /&gt;  {&lt;br /&gt;   get { return m_txtBlk_UserId; }&lt;br /&gt;   set { m_txtBlk_UserId = value; }&lt;br /&gt;  }&lt;br /&gt;  public TextBlock TxtBlock_UserPwd&lt;br /&gt;  {&lt;br /&gt;   get { return m_txtBlk_UserPwd; }&lt;br /&gt;   set { m_txtBlk_UserPwd = value; }&lt;br /&gt;  }&lt;br /&gt;  public string UserId&lt;br /&gt;  {&lt;br /&gt;   get { return m_userId; }&lt;br /&gt;   set &lt;br /&gt;   {&lt;br /&gt;    m_userId = value;&lt;br /&gt;    TxtBlock_UserId.Text = value;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  public string UserPwd&lt;br /&gt;  {&lt;br /&gt;   get { return m_userPwd; }&lt;br /&gt;   set&lt;br /&gt;   {&lt;br /&gt;    m_userPwd = value;&lt;br /&gt;    TxtBlock_UserPwd.Text = value;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public MainPage()&lt;br /&gt;  {&lt;br /&gt;   InitializeComponent();&lt;br /&gt;   &lt;br /&gt;   m_txtBox_UserId = txtBox_UserId;&lt;br /&gt;   m_txtBox_UserPwd = txtBox_UserPwd;&lt;br /&gt;&lt;br /&gt;   m_txtBlk_UserId = lbl_UserId;&lt;br /&gt;   m_txtBlk_UserPwd = lbl_UserPwd;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private void btn_Login_Click(object sender, RoutedEventArgs e)&lt;br /&gt;  {&lt;br /&gt;   UserId = m_txtBox_UserId.Text;&lt;br /&gt;   UserPwd = m_txtBox_UserPwd.Text;&lt;br /&gt;   messageTxt.Text = "Hit";&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private void txtBox_UserControl_GotFocus(object sender, RoutedEventArgs e)&lt;br /&gt;  {&lt;br /&gt;   if (sender is TextBox)&lt;br /&gt;   {&lt;br /&gt;    TextBox txtBox = (TextBox)sender;&lt;br /&gt;    txtBox.Text = "";&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;MainPage.xaml&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;MainPage.xmlを投稿しようとしたが、上手くいかない。XMLの構文を解釈されてしまうので、掲載しにくいです。&lt;br /&gt;今日気がついたことは、位置情報をきっちり決めようとすると、Gridの要素としてCanvasを登録して、さらにその要素としてTextBlockなどを設定。そのプロパティとしてCanvas.Left,Canvas.Topを設定すると明確に位置合わせができます。&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6589121475291322213?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6589121475291322213/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/silverlight_6694.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6589121475291322213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6589121475291322213'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/silverlight_6694.html' title='SilverLight 簡単サンプル'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_J5d8z9m7PVE/S1xLwtFTTkI/AAAAAAAAAAM/DeykjX4mtqs/s72-c/Sample001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6012124105126634834</id><published>2010-01-24T13:36:00.000+09:00</published><updated>2010-01-24T13:36:14.273+09:00</updated><title type='text'>Google Japan Blog: Tech Talk in 関西: Google 日本語入力を支える情報処理技術 （学生向け）のお知らせ (1 月 30 日)</title><content type='html'>&lt;a href="http://googlejapan.blogspot.com/2010/01/tech-talk-in-google-1-30.html"&gt;Google Japan Blog: Tech Talk in 関西: Google 日本語入力を支える情報処理技術 （学生向け）のお知らせ (1 月 30 日)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;どうもJudaです。&lt;br /&gt;関西の学生はぜひ参加して方がいいですね。というか、私も行きたかった。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6012124105126634834?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googlejapan.blogspot.com/2010/01/tech-talk-in-google-1-30.html' title='Google Japan Blog: Tech Talk in 関西: Google 日本語入力を支える情報処理技術 （学生向け）のお知らせ (1 月 30 日)'/><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6012124105126634834/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/google-japan-blog-tech-talk-in-google-1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6012124105126634834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6012124105126634834'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/google-japan-blog-tech-talk-in-google-1.html' title='Google Japan Blog: Tech Talk in 関西: Google 日本語入力を支える情報処理技術 （学生向け）のお知らせ (1 月 30 日)'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3308618738109618918</id><published>2010-01-24T00:37:00.002+09:00</published><updated>2010-01-24T00:46:17.685+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>SilverLightの特徴まとめ</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;SilverLightのどういう点が特徴的であるのか、ちょっとまとめる。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;XAML（XMLの拡張）でUIを記述する。&lt;/li&gt;&lt;li&gt;C#、VBもしくはJavaScript、Iron Python、Iron Rubyでロジックを記述する。&lt;/li&gt;&lt;li&gt;デザインとロジックを分離できる。&lt;/li&gt;&lt;li&gt;動画再生にAdv.がある。&lt;/li&gt;&lt;li&gt;疑似３DやエフェクトをSilverLight3からサポート。&lt;/li&gt;&lt;li&gt;WPFのサブセットという位置づけであるので、Desktop Applicationとしても使える。&lt;/li&gt;&lt;li&gt;DeepZoomやPhotoSynthいう機能が他のRIAとは異なる。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;DeepZoomは&lt;a href="http://www.atmarkit.co.jp/fdotnet/special/deepzoom/deepzoom_01.html"&gt;こちら&lt;/a&gt;で確認できる。&lt;/p&gt;&lt;p&gt;Photosynthは&lt;a href="http://photosynth.net/default.aspx"&gt;こちら&lt;/a&gt;で確認できる。&lt;/p&gt;&lt;p&gt;マルチメディア系のアプリケーションをつくるのにはいろいろ楽しい感じになっている。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3308618738109618918?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3308618738109618918/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/silverlight_24.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3308618738109618918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3308618738109618918'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/silverlight_24.html' title='SilverLightの特徴まとめ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-273230572346281815</id><published>2010-01-23T22:09:00.003+09:00</published><updated>2010-01-23T22:20:35.543+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>SilverLightことはじめ</title><content type='html'>&lt;p&gt;どうもJudaです。&lt;/p&gt;&lt;p&gt;とりあえずSilverLightのことはじめ。&lt;/p&gt;&lt;p&gt;VisualStudio2008で始めるには、とりあえずSP１が当たっていること、.net Framework3.5がはいっていること。これらはWindowsのDownloadページで手にいれることができるのでこれを用意します。V&lt;a href="http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/vs2008/sp1/"&gt;isual Studio 2008 Service Pack 1 および .NET Framework 3.5 Service Pack 1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;つぎにVisualStudio上でSilverLightを快適に開発するために、SilverLight Toolをいれる。&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;amp;FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd"&gt;Visual Studio 2008 SP1 用 MicrosoftR Silverlight（TM） 3 Tools&lt;/a&gt;&lt;/p&gt;&lt;p&gt;ほかにも便利なToolなどが存在するが、それらはCodePlexで探せばよい。&lt;/p&gt;&lt;p&gt;たぶん開始してProject作成をしてすぐに文字列を表示したいと思う。その際に注意がある。XAMLファイルの編集は癖があるので、注意。文字列はTextBlockを使う。ここにしか文字を書き込めない。Buttonにすらだ。つまりLabel的なものの動作はこれが請け負っている。これだけわかればあまりイライラせずに開始できるとおもう。この落とし穴に関しては解説サイトでもなんかスルーされている気がする。&lt;/p&gt;&lt;p&gt;開始して30分で気がつく落とし穴はそれぐらい。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-273230572346281815?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/273230572346281815/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/silverlight.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/273230572346281815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/273230572346281815'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/silverlight.html' title='SilverLightことはじめ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3962932975974523122</id><published>2010-01-23T16:10:00.003+09:00</published><updated>2010-01-23T16:26:12.897+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>インターフェイスの使い方</title><content type='html'>どうもJudaです。&lt;br /&gt;インターフェイスの使い方は疎結合のための考え方だろうとおもう。個人的にはpImplイディオムと似た匂いを感じます。ちなみにpImplイディオムの関連して記事&lt;br /&gt;&lt;a href="http://zakio.net/blog/2009/04/15-222117.html"&gt;Pimpl イディオムのお手軽な実装&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ameblo.jp/woooh-p/entry-10053200172.html"&gt;PImpl イディオム&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dev.ariel-networks.com/Members/matsuyama/pimpl30a430a330aa30e030928a9e308b"&gt;pimplイディオムを語る&lt;/a&gt;&lt;br /&gt;このイディオムの重要性は、その結合が粗であること。それによって得られる副次的な作用は、コンパイル時間の短縮、変更の容易さが得られますが、代償としてこのイディオムを知らない人に対してはなぜこのような実装をしているのかが、わかりにくくなります。&lt;br /&gt;これは、開発者のレベルに差がある時には非常に問題になりますが、それはOOPも一緒だし、他の様々な実装方式も同一の問題を抱えます。&lt;br /&gt;インターフェイスベースと言うとCOMですねー。COMあれもめんどくさい。&lt;br /&gt;インターフェイスを重要視して開発すると実装の詳細はあまり関係はなくなりますが、十分に動作や手続を説明していないと使い物になりません。また実装が隠蔽されていることによって、慣れると手続きを構築するのは簡単になるのですが、それを学習するコストが大抵はソースコードをみることができないことによって増加しますし、関連ドキュメントがないことによってさらに増大っと利用に関しては結構な関門があるのと思います。&lt;br /&gt;ここまで考えが至るプログラムを組むことに対して、思慮深くなる。うむむ。&lt;br /&gt;&lt;br /&gt;ちなみに参考&lt;br /&gt;&lt;a href="http://qune.cside.com/archives/001302.html"&gt;プログラミングメモ - インターフェイスの使い方&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3962932975974523122?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3962932975974523122/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3962932975974523122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3962932975974523122'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/blog-post.html' title='インターフェイスの使い方'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-834525840114046782</id><published>2010-01-23T14:52:00.003+09:00</published><updated>2010-01-23T15:04:41.736+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='.NETFramework'/><title type='text'>WPFって？</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;今さらですが、&lt;br /&gt;&lt;a href="http://www.microsoft.com/products/expression/ja/wpf/default.mspx"&gt;Windows® Presentation Foundation - Microsoft&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/Windows_Presentation_Foundation"&gt;Windows Presentation Foundation - Wiki&lt;br /&gt;&lt;/a&gt;まぁSliverLightの基礎的なフレームワークなんですけど、&lt;br /&gt;これは既存のWindowsのFrameworkから脱却する目的で開発されているので、MFCとは違いますし、.net Frameworkとも違います。まぁ.netとはとても近いですけどね。&lt;br /&gt;重要なのはこれがまぁ新しいフレームワークで、なおかつDesktopとWebをそれほど区別しない点、UIとLogicの分離をフレームワーク的に強制するところです。&lt;br /&gt;&lt;br /&gt;これによってMVCのような粗な結合を作ることが推奨されますし、これによってOOP、テストの導入などがしやすくなると考えられます。しかしこれは、ある程度以上の興味と技術をもっていないと上手くいかないので、学習コストをそれなりに払う必要があると思います。&lt;br /&gt;もっとも悲しい事例をあげるなら、すべてが無理やり結合されている。もしくはそれに近い状態におかれることでしょう。例えるなら果物ナイフで巨木を切り倒すようなことにならないように、適宜道具の吟味とその使用法を確認する必要があります。&lt;br /&gt;WPFはC#とVBから利用できる点も特筆しておきたいです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-834525840114046782?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/834525840114046782/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/wpf.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/834525840114046782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/834525840114046782'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/wpf.html' title='WPFって？'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2414146785608851498</id><published>2010-01-23T14:37:00.005+09:00</published><updated>2010-01-23T14:51:29.417+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='GPGPU'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><title type='text'>NVIDIAのCUDAを利用したSolution</title><content type='html'>どうもJudaです。&lt;br /&gt;とりあえずこれを見てほしい。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://journal.mycom.co.jp/news/2009/08/05/009/index.html"&gt;NVIDIA「OptiX」エンジン発表、GPUでレイトレーシングを高速処理&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.nvidia.com/object/optix-home.html"&gt;NVIDIA® OptiX™ ray tracing engine&lt;/a&gt;&lt;br /&gt;引用、ただし体裁は変更。&lt;br /&gt;System Requirements&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Operating System: 32 or 64-bit versions of Windows XP, Windows Vista, Windows 7, Linux&lt;/li&gt;&lt;li&gt;CPU: x86 compatible&lt;/li&gt;&lt;li&gt;System Memory: matches graphics board recommendations&lt;/li&gt;&lt;li&gt;GPU*: NVIDIA Quadro FX or NVIDIA Tesla (GT200 class required for multi-GPU scaling and technical support)&lt;/li&gt;&lt;li&gt;Frame buffer memory: varies with data complexity&lt;/li&gt;&lt;li&gt;Driver: NVIDIA Unified Driver r190 or later, CUDA toolkit 2.3 or later&lt;/li&gt;&lt;li&gt;C/C++ Compiler: Visual Studio 2005 or 2008, along with CMAKE&lt;/li&gt;&lt;li&gt;NVIDIA GeForce to be supported with NVIDIA's upcoming "Fermi" GPU architecture- see OptiX 2 Beta.&lt;/li&gt;&lt;/ul&gt;今回のSDKのBeta版から計算用のGPUでなくても、実行可能になりました。&lt;br /&gt;以前は40万からしかOptiXを実行することができなかったのですが、今回は2万円のGPUでも実行可能らしいので、とても楽しみです。&lt;br /&gt;これはCUDAベースのライブラリ群です。開発用にSDKを取得するのは、ちょこっと登録すればダウンロードできるので、オッケーです。&lt;br /&gt;でもGPUをまだ買ってきていないので、実験すらままなりません。どうしましょう、どうしましょう。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2414146785608851498?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2414146785608851498/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/nvidiacudasolution.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2414146785608851498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2414146785608851498'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/nvidiacudasolution.html' title='NVIDIAのCUDAを利用したSolution'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7007867043886037573</id><published>2010-01-16T16:55:00.002+09:00</published><updated>2010-01-16T16:59:44.714+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='環境'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>TracかRedmineかそれが問題だ</title><content type='html'>どうもJudaです。&lt;br /&gt;プロジェクト管理ツールとして、Tracを採用するか、それともRedmineを導入するのか、思案中。&lt;br /&gt;CVSがMercurialとSubverisonを併用しているので、両方扱える方がいい。&lt;br /&gt;また導入しやすくて、当面はローカルなサーバーとして運用できる方がいい。&lt;br /&gt;この二つの条件から考えると上記の二つに絞れるのだけど、まだ別の選択肢もあるのかなぁ。と思う。&lt;br /&gt;ちなみに会社のPCに試験的にTracは導入してみた。Trac Lightingではないので、導入に戸惑ったがSubversionの導入はそれなりに簡単にできた。でもHgとの連携のためのPluginの設定方法が分からなかった。とりあえず管理画面からできるという情報を入手したが、まだよくわからない。&lt;br /&gt;Redmineはとりあえず調べなければ、うむうむ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7007867043886037573?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7007867043886037573/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/tracredmine.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7007867043886037573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7007867043886037573'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/tracredmine.html' title='TracかRedmineかそれが問題だ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7299160367375056348</id><published>2010-01-12T01:11:00.002+09:00</published><updated>2010-01-12T01:18:48.317+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='テスト'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><title type='text'>xUnit Test Patterns買った</title><content type='html'>どうもJudaです。&lt;a href="http://www.amazon.com/xUnit-Test-Patterns-Refactoring-ebook/dp/B00132S6V4/ref=pd_ys_iyr_img"&gt;xUnit Test Patterns: Refactoring Test Code, Mobipocket (Kindle Edition)&lt;/a&gt;&lt;br /&gt;最近の金遣いが最低な人間レベルになっていることは気づいているけど、Kindleは便利だ。すぐに洋書が手にはいるのが素晴らしい。中古販売の権利はないから、もうちょい安くして欲しいと思うけど、さっさと読んで、できれば日本語訳をこっそり作りたい。&lt;br /&gt;テスト系統の学習を早く業務に役立てて、会社に普及させたい。&lt;br /&gt;周りを変えたいと願うなら、まず自分から。とりあえず情報系の大学卒者でいけ好かないやつを　m9　したい。学習コストを支払い続けないとどうなるのかを教えてやる（メラ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7299160367375056348?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7299160367375056348/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/xunit-test-patterns.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7299160367375056348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7299160367375056348'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/xunit-test-patterns.html' title='xUnit Test Patterns買った'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5086373890640323603</id><published>2010-01-10T13:41:00.003+09:00</published><updated>2010-01-10T13:47:15.669+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='テスト'/><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='マネジメント'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><title type='text'>ソフトウェアテストについても並行して学習開始</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/%E4%BD%93%E7%B3%BB%E7%9A%84%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%86%E3%82%B9%E3%83%88%E5%85%A5%E9%96%80-Rick-Craig/dp/4822282074/ref=sr_1_14?ie=UTF8&amp;s=books&amp;qid=1263098502&amp;sr=8-14"&gt;『体系的ソフトウェアテスト入門』&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%86%E3%82%B9%E3%83%88293%E3%81%AE%E9%89%84%E5%89%87-Cem-Kaner/dp/482228154X/ref=sr_1_4?ie=UTF8&amp;s=books&amp;qid=1263098502&amp;sr=8-4"&gt;『ソフトウェアテスト293の鉄則』&lt;/a&gt;&lt;br /&gt;を買ってきた。&lt;br /&gt;これでソフトウェアテストについて勉強を並行して開始。開発サイクルと言う考え方を適応するならば、開発フェーズとテストフェーズは隣接しているので、一緒に勉強するのはとっても重要！って言ってみる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5086373890640323603?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5086373890640323603/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/juda-293.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5086373890640323603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5086373890640323603'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2010/01/juda-293.html' title='ソフトウェアテストについても並行して学習開始'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7750435361956297659</id><published>2009-12-31T01:23:00.002+09:00</published><updated>2009-12-31T01:38:24.607+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Effective C++を読んでいる。</title><content type='html'>どうもJudaです。&lt;br /&gt;読んでいるのだけど、&lt;a href="http://www.amazon.co.jp/gp/product/4894714515/ref=pd_lpo_k2_dp_sr_1?pf_rd_p=466449256&amp;pf_rd_s=lpo-top-stripe&amp;pf_rd_t=201&amp;pf_rd_i=4756118089&amp;pf_rd_m=AN1VRQENFRJN5&amp;pf_rd_r=00DXECBF8SABR50HE9RT"&gt;この本&lt;/a&gt;はとてもためになる。&lt;br /&gt;『Exception C++』を読むための門前本として紹介されていて&lt;a href="http://d.hatena.ne.jp/henschel/20091031/p1"&gt;Effective C++を読んだらExceptional C++の良さがわかったCommentsAdd Star&lt;/a&gt;、「なるほどなるほど」と思って、読み出しました。&lt;br /&gt;C++という言語などのプログラミング言語を使って生活をしているのですが、ちゃんと理解していないでいたこと、どういうプログラミングをすることが流儀に従うのかということについてのちゃんとした知識を得られるのが実にいいです。&lt;br /&gt;もっとも自分のプログラマとしてのレベルが足りないので、この本ですら、読むのが少し大変ですw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7750435361956297659?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7750435361956297659/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/effective-c.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7750435361956297659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7750435361956297659'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/effective-c.html' title='Effective C++を読んでいる。'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4696271946359600301</id><published>2009-12-26T00:13:00.002+09:00</published><updated>2009-12-26T00:19:47.582+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>最近気づくこと</title><content type='html'>どうもJudaです。&lt;br /&gt;最近思うのですけど、世の中にはすぐにできないと言ってしまう人が多いのですね。&lt;br /&gt;例えばそれがハンダ付けであったり、電子工作のためのパーツ選定であったり、数学的な理論の読解であったり、英語の読解であったり、経済の勉強であったり、法律の問題であったり、権利関係の書籍の読み込みなど。&lt;br /&gt;飛び込んでしまってから考えようとか、命が残るからやってみようとか、そういう感じは一般的ではないのですね。&lt;br /&gt;私はなんだかんだと口ではそれが如何に難しいのを留保してから、結局いろんなものに手を出しますね。そうしないでいることによって選択肢が狭くなるのが嫌なのです。&lt;br /&gt;でもなかなか人間関係には飛び込めない。唯一これだけは無理ですね。&lt;br /&gt;失敗した場合に、多少なりともこの問題は死を呼びこむので個人的に苦手です。一番怖いのは人間です。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4696271946359600301?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4696271946359600301/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_26.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4696271946359600301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4696271946359600301'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_26.html' title='最近気づくこと'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2455346886337680052</id><published>2009-12-23T19:29:00.004+09:00</published><updated>2009-12-23T19:47:28.229+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='.NETFramework'/><title type='text'>理由はわかっているけれど、やってしまう間違い</title><content type='html'>どうもJudaです。&lt;br /&gt;今日はXMLシリアライズな話&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Runtime.Serialization;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Xml.Serialization;&lt;br /&gt;&lt;br /&gt;namespace SerializeDaemon&lt;br /&gt;{&lt;br /&gt; class Program&lt;br /&gt; {&lt;br /&gt;  static void Main(string[] args)&lt;br /&gt;  {&lt;br /&gt;   XmlSerializer xmlSel = new XmlSerializer(typeof(Deamon));&lt;br /&gt;   StringWriter wStrm = new StringWriter();&lt;br /&gt;   Deamon hoge = new Deamon();&lt;br /&gt;   xmlSel.Serialize(wStrm, hoge);&lt;br /&gt;   Console.WriteLine(wStrm.ToString());&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; public class TestA : ISerializable&lt;br /&gt; {&lt;br /&gt;  protected int m_id = 0;&lt;br /&gt;  public TestA() { }&lt;br /&gt;  public int Id&lt;br /&gt;  {&lt;br /&gt;   get { return m_id; }&lt;br /&gt;   set { m_id = value; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #region ISerializable&lt;br /&gt;  protected TestA(SerializationInfo info, StreamingContext context)&lt;br /&gt;  {&lt;br /&gt;   m_id = info.GetInt32("Id");&lt;br /&gt;  }&lt;br /&gt;  public void GetObjectData(SerializationInfo info, StreamingContext context)&lt;br /&gt;  {&lt;br /&gt;   info.AddValue("ID", m_id);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #endregion&lt;br /&gt; }&lt;br /&gt; public class TestB : TestA&lt;br /&gt; {&lt;br /&gt;  public TestB() : base() { }&lt;br /&gt;  protected TestB(SerializationInfo info, StreamingContext context) : base(info, context) { }&lt;br /&gt; }&lt;br /&gt; public class TestC : TestA&lt;br /&gt; {&lt;br /&gt;  public TestC() : base() { }&lt;br /&gt;  protected TestC(SerializationInfo info, StreamingContext context) : base(info, context) { }&lt;br /&gt; }&lt;br /&gt; public class Deamon : ISerializable&lt;br /&gt; {&lt;br /&gt;  TestA m_id0;&lt;br /&gt;  public TestA Id0&lt;br /&gt;  {&lt;br /&gt;   get { return m_id0; }&lt;br /&gt;   set { m_id0 = value; }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  TestA m_id1;&lt;br /&gt;  public TestA Id1&lt;br /&gt;  {&lt;br /&gt;   get { return m_id1; }&lt;br /&gt;   set { m_id1 = value; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  TestA m_id2;&lt;br /&gt;  public TestA Id2&lt;br /&gt;  {&lt;br /&gt;   get { return m_id2; }&lt;br /&gt;   set { m_id2 = value; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public Deamon()&lt;br /&gt;  {&lt;br /&gt;   m_id0 = new TestA();&lt;br /&gt;   m_id0.Id = 100;&lt;br /&gt;   m_id1 = new TestB();&lt;br /&gt;   m_id1.Id = 4000;&lt;br /&gt;   m_id2 = new TestC();&lt;br /&gt;   m_id2.Id = 6000;&lt;br /&gt;  }&lt;br /&gt;  protected Deamon(SerializationInfo info, StreamingContext context)&lt;br /&gt;  {&lt;br /&gt;   m_id0 = (TestA)info.GetValue("ID0", typeof(TestA));&lt;br /&gt;   m_id1 = (TestA)info.GetValue("ID1", typeof(TestA));&lt;br /&gt;   m_id2 = (TestA)info.GetValue("ID2", typeof(TestA));&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #region ISerializable&lt;br /&gt;&lt;br /&gt;  public void GetObjectData(SerializationInfo info, StreamingContext context)&lt;br /&gt;  {&lt;br /&gt;   info.AddValue("ID0", m_id0);&lt;br /&gt;   info.AddValue("ID1", m_id1);&lt;br /&gt;   info.AddValue("ID2", m_id2);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  #endregion&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;コンパイルは通るけれども、実行はできないソースコード。&lt;br /&gt;問題点は、シリアライズ対象のクラスがもっている要素に継承クラスが代入されていること。これはシリアライズにおいて、とても大変な問題をはらんでいる。&lt;br /&gt;サブクラスをシリアライズする方法なんてわからないのだから。&lt;br /&gt;シリアライズという行為が現状を復元可能な形で保存することにあるときに、継承クラスかどうかの判定なんて誰がどうやってするんだろーって事で原理的に今は無理です。柔軟に対応しないといけないならば、むしろ別の方法でそれを実現する方法を探す方が賢いと思います。あるいはできるなら、それを教えてください。&lt;br /&gt;とりあえずは素直にすべての要素が構造体で定義されているものをシリアライズするコンテナクラスとして使用しましょう。というお話です。&lt;br /&gt;&lt;br /&gt;細かな点ですが、インターフェイスはコンストラクタを規定できないので、実はISerializableの実装はちゃんとコンストラクタを特別に作っておかないとダメです。&lt;br /&gt;ややこしいですねー。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2455346886337680052?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2455346886337680052/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_23.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2455346886337680052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2455346886337680052'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_23.html' title='理由はわかっているけれど、やってしまう間違い'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3379289247825838457</id><published>2009-12-22T00:46:00.002+09:00</published><updated>2009-12-22T00:52:23.945+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ゲーム'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>C#でMathematicaなIntervalの実装</title><content type='html'>どうもJudaです。&lt;br /&gt;とりあえず掲題の内容を行う。&lt;br /&gt;なぜ作るのか？それは必要だから。&lt;br /&gt;Random関数を範囲で分散する方法に切り替えようと思うと、どうしてもIntervalって感じの区間計算クラスが欲しくなった。それ以外の用途でも、特定の定義域に値が存在しているか、いないのかを簡単なインターフェイスで取得できることをとても便利であり、よくある処理なので、これをつくる。&lt;br /&gt;BoostのIntervalのAPIを参考して、なんとか作るつもり。本当に数学的な意味でのIntervalの実装は面倒なので、使い易い部分のみをサックリと。&lt;br /&gt;昔似た機能のLimitというGenericClassをつくったけど、それはSerializeのためのSyntaxSuger的な糖衣クラスだったので、ちょっと今回はかっちり作ってみつつ、Serializableも目指す。&lt;br /&gt;細かなクラスや機能ばかりを作っている気もするが、気にしない。大きな建築物を作るには細かな道具の手入れや資材の準備に時間を惜しまない。すべて我が血肉になるのだから。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3379289247825838457?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3379289247825838457/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/cmathematicainterval.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3379289247825838457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3379289247825838457'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/cmathematicainterval.html' title='C#でMathematicaなIntervalの実装'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-779580157732525269</id><published>2009-12-20T20:29:00.002+09:00</published><updated>2009-12-20T20:50:58.552+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='画像処理'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>画像処理ライブラリ</title><content type='html'>どうもJudaです。&lt;br /&gt;画像処理ライブラリは汎用性が高くて、使用頻度も高く、なおかつ逐一スクラッチで作るにはめんどうで、それでいて速度が求められて、細かな仕様に左右されることの多いライブラリだと最近思います。&lt;br /&gt;例えばOpenCVのRGBコンポーネントの内部的な配置はRGBではなくBGRであるなど（一応内部的にRGBへ変換する関数が存在するようですが）コンポーネントの問題があり、その画像がRGB24なのかRGBA32なのか、それともGrayScale１６なのかGrayScale32なのかYUIなのかHSVなのかなど色空間の問題もあります。&lt;br /&gt;それらすべてに汎用的なものを用意するのは、非常に困難であり、通常画像処理ライブラリはRGBでの画像処理をもとに考えられています。もっともこれ自体は特にプログラマにとって問題なく読替を効かせることのできるものです。問題はそのライブラリは高速にすることや、面倒を回避するために汎用化することです。&lt;br /&gt;一部細かな話しですが、.netでのImageの操作は通常はメソッド経由なので、オーバーヘッドが尋常ではないので、特定の一点から取得するなどのアクセス頻度の低い作業以外は、なるべく低レベルな操作で構築する必要性があり、BitmapのLock/Unlockは.net系の画像処理では必須であり、これはコンポーネントの構成に大きく左右されるので、通常のマネージドな感覚で行っていると速度の低下が発狂せんばかりになります。Lock/Unlock以外にもUnsafeでガリガリ行う方法もありますが、移植性が下がるので、なるべくそれはやめた方がよいです。それに性能もそれほど向上しないので、最終手段として覚えて置く程度でいいと思います。&lt;br /&gt;話は戻りますが、画像処理は速度と精度と汎用性、多種多様性、移植性、利便性など多くの点が求められるので、なかなか構築が面倒なのですが、作ることは非常に有益だと考えます。&lt;br /&gt;またコンセプト的な嗜好も混ぜ込めるので、個人的にはある程度以上のレベルからは自己のライブラリとして蓄積することを考えてしまいます。&lt;br /&gt;そうするとオープンソースがとても魅力的ですが、仮にこれを業務で特定のアプリケーションに組み込もうと思うと商用ある程度のライセンス料が必要です。そもそも煩雑で有用な知識の集積は、その労力によって企業による上澄みの簒奪を唾棄し、その行為への怒りをこめて、オープン化する場合もあるので、有用なものを安く使いたいという心とライブラリの制作にかかるコストを最低限でも回収したいというジレンマがよくわかります。個人で開発しだすとよくわかります。&lt;br /&gt;だから個人で開発しだしても、やはり企業に差し出すなどということは許容できないなぁと思います。&lt;br /&gt;&lt;br /&gt;企業はもっとライブラリライセンスに金を払えやこらー！っていうのがある意味本音です。安くあがる分けねぇだろ、知識の集積を利用しようとしているのに。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-779580157732525269?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/779580157732525269/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_20.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/779580157732525269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/779580157732525269'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_20.html' title='画像処理ライブラリ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7080274690546465293</id><published>2009-12-19T17:26:00.002+09:00</published><updated>2009-12-19T17:52:15.587+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='教育'/><category scheme='http://www.blogger.com/atom/ns#' term='環境'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>読書と筋トレ</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;読書と筋トレを私はほとんど同列の行為だと時々認識します。&lt;br /&gt;どちらも自己を研鑽する目的があります。読書も本によって内容に強度がありますし、難しい本はやはりベンチプレス200kgのような困難さがあります。しかし読書や筋トレを好む人は、その困難さを楽しみに変えますし、それが嫌いな人は、その困難さが嫌いなのです。運動を頑張る人が勉強を頑張れないというのは、結局はこの困難さがあるということを知らずにいた人なのだろうなぁと思います。私は、個人的にその感覚を養うことができないことはもったいないと思います。ただなにかに頑張るにしても、良き指導者がほしいのは変わりませんが。&lt;br /&gt;&lt;br /&gt;さらに読書と筋トレから同様の枠組みを取り出すならば、それは「不自然な行為を自然な行為に変えていくこと」ということでしょうか？読書は通常の人間の営みからすると不自然です。この場合の不自然は意図をもって行動を行わなければならない。ということです。同様に通常の人間の営みからすると筋トレは不自然です。明確な意志や意図をもって行わなければ、それを行うことはないでしょう。&lt;br /&gt;&lt;br /&gt;私はこの意図や意志というものを高く評価しています。それは哲学科という日本では非常に特異な分野を専攻していたことに起因するのですが、国外ではこの意図や意志というものはごくごく一般的な教養ある人の中では当たり前であり、意思決定においてこれがないとまっとうではないです。&lt;br /&gt;&lt;br /&gt;日本で、ある決定について、「それはどうしてですか？」という根拠を訊くことは野暮ということになっています。それはほぼ均質な文化的な基盤があるという前提が確立しているからですが、現在の日本において個々人の文化的な基盤がほぼ確定的に共通であると信じる根拠に乏しいと思います。ゆとりと称される存在は明らかに文化的な基盤が共通であるとは考えられない人への別称です。このカテゴリにはいる存在に対して、ただ闇雲に「若いヤツは」的な話をするのは、愚かしさの上塗りです。彼らも確かに生きてこの社会に存在しているのですから、その「貧弱」にみえる文化基盤でも問題はないのです。&lt;br /&gt;&lt;br /&gt;話は戻りますが、意志や意図をもって何かを行うことは悪いことではないですし、それは非常に強い決定であると考えます。意志や意図はしばしば「悪いこと」をしたときには訊かれます。「どうしてそんなことをしたんだ！」など、見に覚えがあると思いますが、私からすればその理由が答えられるならば、その人は明確な意図をもって行っているので、容易く答えられますが、ただなんとなく行ってしまったというときに失敗する事は多いと思います。&lt;br /&gt;&lt;br /&gt;つまり通常時は意志や意図を求められることがないのに、失敗した時だけ理由を訊かれることは、個人的に気分最悪です。意思決定をして、行動を起こす前でなく、その結果のみに対して詰問を行う姿勢は、非常に合理的でシステム的にも無駄がないのですが、それが常態化したときに十分な結果に対する責任をもつという姿勢が養えるのかは分かりません。それに失敗は失敗として既にマイナスでしかなくて、詰問の回答によってはさらにマイナスが膨らむとすれば、誰がまっとうに答えることができるようになりましょうか？&lt;br /&gt;&lt;br /&gt;行動の意図や目的を問うことも必要ですし、成功、失敗にかかわらず、結果に対しても常に意見を求めることがこれからの在り方として必要ではないでしょうかねぇ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7080274690546465293?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7080274690546465293/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_19.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7080274690546465293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7080274690546465293'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post_19.html' title='読書と筋トレ'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6095156144025510511</id><published>2009-12-10T00:27:00.003+09:00</published><updated>2009-12-10T00:58:40.877+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><category scheme='http://www.blogger.com/atom/ns#' term='.NETFramework'/><title type='text'>ControlController</title><content type='html'>どうもJudaです。&lt;br /&gt;.net Frameworkをつかって、フォームをデザインするときにでるあの特別なコントローラーが気になります。&lt;br /&gt;あれがとってもほしいのです。&lt;br /&gt;考えられる方法は幾つかありますが、C#,VBがOOPと言えども、言語的にクラスの継承の間に割り込みはできないので、委譲のほうで問題を回避していくことが重要かもー。&lt;br /&gt;コントロールを入れられるコントロール制御用のコンテナを用意して、そのコンテナに対して制御を加えるようにすれば、汎用的にコントロールを扱えますね。うん、というか、それ以外に思いつきません。&lt;br /&gt;調べたところ、既にこのコントローラを開発した人もいるのですが、2003で作られているし、またこれに限っては車輪の再発明も幾分か自己のOOPへの理解や修練に役立つので少し試行してみる。&lt;br /&gt;&lt;br /&gt;取り替えずコンテナをクラスで宣言します。描画の関係もあるので、Controlを継承した方が無難なので、継承する。ただここで考えるのは、&lt;br /&gt;・これにコントロールを入れて、&lt;br /&gt;・Mouse系のイベントを使うこと、&lt;br /&gt;・Key系のイベントでの制御も許容すること。&lt;br /&gt;・同時に周りのコントロールとの数値の関係性によって拘束がかかること。&lt;br /&gt;・選択時には特別な描画処理を行うので、Paintイベントも書くこと。&lt;br /&gt;意外と使い易いコンテナをつくるには問題がありそうだ。&lt;br /&gt;コントロールをコンテナに格納したときに、格納したクラスの個別のマウスやキーのイベントをハックしないといけないので、これが若干気になりますねー。コンテナ格納後に個別のコントロールのイベントが生きていると困るので、殺しておきたいのですが、よくわからないのであとで調べておきますね。&lt;br /&gt;たぶん内側を透明にしてZバッファの順序を入れ替える。もしくはフォーカスイベントが発生するとフォーカスを移すとかですけど、フォーカスのイベント内でフォーカスを移動させると予想外の動きをするので、あまりおすすめできません。以前、実験した際に、呼び出しが規則的に発生しないことを確認したので、フォーカスを制御するのは、確実性に疑問があるので、別の方法を模索するほうがいいです。&lt;br /&gt;あとはコントロールが登録されているものを入れ替えてしまうかですが、これはデータの構造を勝手に書き換えることになるので、おすすめできません。汎用性にかけることは間違いないので、なるべく同一の階層性でイベントの登録のみで解決したいですね。&lt;br /&gt;…別にコンテナを開発しなくても、イベントの登録、削除をうまく制御すれば、データ構造的な面では出来そうですが、すでに存在しているイベントとぶつかったり、そもそももとのイベントが駆動してしまう問題があるので、これはうまくいきそうにないです。&lt;br /&gt;ここまでの問題点で一番大きいのは、コントロールに発生するイベントを一時的に殺して、それをバイパスして別のコントールに移すことができるのかどうかです。そのあとは、ここの機能を分割しながら実装していけば問題はなし。&lt;br /&gt;初回ではなく、選択後つまりコンテナに入れられた後に、そのあとは独占的にコントロールを支配できなければいけません。なにか方法はないものでしょうか？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6095156144025510511?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6095156144025510511/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/controlcontroller.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6095156144025510511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6095156144025510511'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/controlcontroller.html' title='ControlController'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3964365932189451148</id><published>2009-12-06T02:27:00.002+09:00</published><updated>2009-12-06T03:27:13.688+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='教育'/><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>コンテンツ、コンテナの話</title><content type='html'>どうもJudaです。&lt;br /&gt;今回はコンテンツとコンテナの話を。&lt;br /&gt;コンテンツをオリジナルでユニークなそれ自体では複製できないモノとします。それが「なにか」ということについては議論しません。&lt;br /&gt;コンテンツをコンテナに格納すれば、複製可能になるとします。またコンテナに格納されたコンテンツを、別のコンテナに移し替えるこが出来るかどうかは、コンテナの性質になります。&lt;br /&gt;想定している対象物はDVDやMP3です。&lt;br /&gt;コンテナからデータを取り出せないのでは意味がありませんが、このコンテナがコンテンツを完全に取り出せることは保証しません。ただコンテナの存在意義としてそれがあまりにはコンテンツを損傷させるのでは意味がありません。完全に復元可能なものを特別にロスレスという形容をする場合があります。この場合にロスはコンテンツが本来持つ性質を損失しないという意味です。&lt;br /&gt;問題を局所化します。&lt;br /&gt;DVDはコンテナであり、それが内包しているコンテンツが映像やデータになります。通常の販売者はコンテンツをコンテナにいれて、販売します。ただし、このときにコンテンツを売る気はさらさらないです。このコンテンツをコンテナにいれて複写して販売しているので、コンテンツを売ってしまうと困ります。&lt;br /&gt;しかし購入者はコンテンツを購入したと思います。このコンテンツを取り出し、別のコンテナに入れること、複写という行為を含めて権利だと考えます。この時点で既に販売者と購入者の間で意見の相違があります。売買契約から考えると販売者が優位です。このことは既に周知だと思われます。&lt;br /&gt;コンテンツを鑑賞させるけれども、別のコンテナの中にいれることを認めないということは、映画でも同じです。またラジオでも同じです。別のコンテナに入れるときに、コンテンツの作成者は対価を求めます。&lt;br /&gt;さてさてややこしいのは、コンテナとコンテンツは、その構造が入れ子になりうることにあります。この性質のために本来のコンテンツの製作者と利用者の間に介在する存在があることが想定されます。これがもっともややこしい。&lt;br /&gt;すべてのコンテンツの製作者に権利を認めると、その入れ子構造のせいで最終的な利用者以外はすべて権利を持つことになります。オリジナルのコンテンツとしての権利を持つ人ほどそれが無断でコンテナに入れられることに対して、対価請求の機会を損失します。&lt;br /&gt;では本来のオリジナルのコンテンツの制作者からそのコンテンツの権利を手にいれるということは可能か？&lt;br /&gt;これは今までの議論をすっ飛ばしているが、コンテンツの売買というコンテンツの本質に対する問いかけなのだが、これが著作権の本質に直結する。またオリジナルを誰が所有するのかということにもつながる。&lt;br /&gt;オリジナルの所有の問題はもっともややこしい。同一性の問題にもつながり、そこには正統性の話も関わる。正統性の話は歴史の問題であり、そこまで来るならば、それが根ざした背景や環境、文化すらも範囲に入ってしまう。仮に問題を簡素にするなら、何を売っているのかぐらいだろう。&lt;br /&gt;結論から言えば、売っているのはコンテンツをコンテナに詰めることの独占的な販売権だけだろう。&lt;br /&gt;権利というものは、あとから生まれた人為的なものであることを心に止めて置くことが必要だし、それを踏みにじることの代償についてはもっと配慮すべきだ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3964365932189451148?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3964365932189451148/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3964365932189451148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3964365932189451148'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/12/blog-post.html' title='コンテンツ、コンテナの話'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-1613096270412263465</id><published>2009-11-14T12:16:00.004+09:00</published><updated>2009-11-14T12:54:21.866+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='初心者'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='環境'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='開発'/><title type='text'>携帯電話類のアプリケーション開発</title><content type='html'>どうもJudaです。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;最近ようやくAndroidとiPhoneの開発のエントランスのやってきました。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;とりあえずそれぞれの環境設営について。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;iPhoneではXCodeとiPhone SDKをつかって開発します。というか、Mac以外での開発は出来ないと思います。権利的な問題だと思うのですが、MacOSはApple以外の機器へのインストールを許諾していませんし、そのMacに付随するものとしてXCodeが提供されています。まぁ、最近は徐々に状況が変化してきていますが、それはおいておきましょう。（個人的にはVisualStudioもしくはEclipseでWindows上で開発できるといいなぁと）&lt;/div&gt;&lt;div&gt;まぁ、XCodeのインストールは&lt;a href="http://developer.apple.com/technology/xcode.html"&gt;Apple Developer Connection&lt;/a&gt;でDownloadできるのでまぁ、それにしたがってもらえば大丈夫です。&lt;b&gt;最新は XCode 3.2.1？でSnow Leopardが最低Verになるので、Leopardは3.1.4になる&lt;/b&gt;と思います。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;次にAndroid。こいつは結構厄介です。というか、厄介でした。&lt;b&gt;JavaのVMが複数インストールされている場合には、それがいろいろと面倒なことを引き起こしてくれちゃう&lt;/b&gt;のでそれはおいおい。&lt;/div&gt;&lt;div&gt;とりあえず標準的な開発環境として&lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;を選択します。この場合にさきほどのVMの設定が悪さをする場合があるので、うまく動かないときには、&lt;b&gt;-vm　オプションでVMを指定すれば、Eclipseがうまく起動する、はず。&lt;/b&gt;とりあえず、こういうサイトのほうが詳しいので、&lt;a href="http://lab.elephant-com.co.jp/2009/06/eclipse_androidhello_world.html"&gt;こちら&lt;/a&gt;をどうぞ。EclipseならAndroid Plug-inが使えるので、導入を検討する価値アリです。&lt;/div&gt;&lt;div&gt;Eclipseが動くのを確認してからAndroidSDKを入れるほうが無難だと思います。&lt;/div&gt;&lt;div&gt;そしてAndroid SDKは&lt;a href="http://developer.android.com/intl/ja/index.html"&gt;本家&lt;/a&gt;からDownloadします。&lt;/div&gt;&lt;div&gt;その後はAndroid SDK.exeを起動するのですが、まず注意があります。&lt;b&gt;起動させた場所にSDKの中身を持ってくる&lt;/b&gt;ので、はじめから入れたい場所で起動することをオススメします。これはあとで&lt;b&gt;EclipseでAndroid SDKへのパスを設定する部分がある&lt;/b&gt;ので、そこを注意しないといけません。&lt;/div&gt;&lt;div&gt;それでまぁたぶんうまくSDKの実行ファイルからは&lt;b&gt;うまく動かないので、&lt;/b&gt;&lt;b&gt;Settingの「Force http://..」な項目をチェックして&lt;/b&gt;Refreshするとたぶん該当するデータを手に入れることが出来るようになると思います。そしてこのインストール作業なのですが、&lt;b&gt;結構失敗していたりするので、ログを確認して、何度かトライしてみて下さい&lt;/b&gt;。&lt;/div&gt;&lt;div&gt;インストールできたら、Eclipseと関連付けるためにWindowのPreferenceのAndroidの項目でSDKへのパスをさきほどインストールしたパスで指定すれば、文句は言われなくなります。&lt;/div&gt;&lt;div&gt;これで環境はほとんどできました。最後にAndroidはiPhoneと違いターゲットが多様なので、それにあわせたVirtualDeviceの作成が必要になります。本家のサンプル「&lt;a href="http://developer.android.com/intl/ja/guide/tutorials/hello-world.html"&gt;Hello,Android&lt;/a&gt;」でAVDと表記されている項目はConsoleでの設定ですが、&lt;b&gt;Eclipseで設定している場合、もしくはSDKの起動ファイルから起動できる「Android SDK and AVD Manager」を使用すればGUIで構築が出来ます&lt;/b&gt;。Virtual Devicesという項目がAVDの構築と管理を行ってくれます。AVDはAndroid Virtual Deviceの略称ですね。&lt;/div&gt;&lt;div&gt;本家のサンプルはAPI2で作るように書いてありますが、これは使うAPIで整合性が取れていればいいと思っていいと思います。あとサンプルをつくった後にRunすると思うのですが、ここにも注意があります。それは、&lt;b&gt;「とにかく実行されるまで時間がかかる」&lt;/b&gt;ということです。Eclipseなどは実行をスムーズに行えるのですが、よくみるとステータスバーのシーケンスパーセンテージの上がりが遅いことが分かると思います。ここが特に不便ですが、分かっていれば、動かないと不安にならなくてすみます。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;とりあえず環境設営はこんな感じです。&lt;/div&gt;&lt;div&gt;あとは各種サンプルを探すほうがよいと思います。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-1613096270412263465?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/1613096270412263465/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/11/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1613096270412263465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1613096270412263465'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/11/blog-post.html' title='携帯電話類のアプリケーション開発'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4445190291228436492</id><published>2009-10-24T14:19:00.003+09:00</published><updated>2009-10-24T15:00:21.872+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='教育'/><category scheme='http://www.blogger.com/atom/ns#' term='マネジメント'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='「黄金の三日間」'/><title type='text'>黄金の３日間とは</title><content type='html'>どうもJudaです。&lt;br /&gt;2chまとめスレで「黄金の３日間」という単語が出て来た。マネージメントの基礎的な知識であるらしいがちょっと分かりにくいので調べてみた。&lt;br /&gt;Googleの検索ででてくるのは、『&lt;a href="http://www2.ocn.ne.jp/%7Enabetake/ougon.html"&gt;黄金の三日間&lt;/a&gt;』であり、熊本の先生がまとめたサイトが見つかる。学校での学級運営のための教師へのマネジメントの心構えと実践方法が書かれている。&lt;br /&gt;またAmazonで書籍を検索しても、学級運営のための書籍が出てくる。&lt;br /&gt;文脈からすると「黄金の三日間」なるものは、学級運営のためのノウハウとして生まれ、それは始業式から始まる三日間においてルール作りを行うことが重要である。ということであろう。&lt;br /&gt;これを実際のマネジメントまで一般化したものが、「黄金の三日間」を指すのだろう。&lt;br /&gt;このことがおもしろいのは、学級運営という運営としての捉え方、またこの学級運営のノウハウが企業の小集団、プロジェクトに適応できるという洞察にある。&lt;br /&gt;学級崩壊などが過去に世間をにぎわせたが、これは経営者である教師の失策ということになる。そして教師はただ学問を教えるだけの人材ではなく、同時に経営者としての手腕も問われる多義的な職業ということになる。このことは、注目に値すると思う。年の若い、担当クラスをもつ先生というのは、同世代のサラリーマンとは異なり管理者としてのスキルが問われる。この点は注目に値する。一般企業における管理者は、ある程度の年の者がやるのが、日本では一般的である。これは特定の業務に対しての理解無くしてマネジメントができないという発想に基づく話である。しかし昨今の高度に専門化していく業務においては、ここの管理者が配下の被管理者の業務について完全に理解することはまれであり、またそのために管理者は管理に特化すべきという認識が生まれている。&lt;br /&gt;ここで話を教師に戻した場合、教師には割り振られている仕事は２種類あることになる。しかもそれぞれに専門的な知識が必要になる。このことを鑑みれば、教師という職業がいかに困難であるか分かる。一般企業でも４０人近い被管理者を完全に管理することのできる管理者がどれほどいるだろうか。またその管理者を育てられるだろうか。別の問題として、外部との交渉、つまりは保護者からのクレーム、学校組織内での管理者／被管理者関係など、多岐にわたる業務がある。このことだけでも教師という職業がいかに大変か分かる。&lt;br /&gt;そして、「黄金の三日間」という現場での実践で確かに適応できる知識の創出やその知識の共有化を推進するあり方などは一般企業も取り入れることを検討してもいいと思う。この点を私はIT勉強会として行うと面白いと思う。それが含む企業的な問題については憂慮すべきものもある。&lt;br /&gt;&lt;br /&gt;学校組織という特殊なマネジメント環境においてさまざまな管理方法が実験され、共有されていることはとても実験的に面白いと思う。被対象者においての、教育の一回性についてであるが、これは発展が線形で表現できないことからある程度は許容されるべきである。仮に線形である場合にも、人はさかのぼって評価を下しがちであるので、私はこの点からも許容すべきであると考える。それでも認められないのであれば、保護者が教育機関を選別することが必要である。公教育の現場に対してクレームを付けることは、その教育者の管理的なあり方からある程度までは認めるが、彼がプロであることを監視することにとどめるべきであると思う。未熟な管理者を教育するのは、学校組織の側であるので、外部からの強度の干渉は、教育の効率性追求を阻害すると考える。&lt;br /&gt;&lt;br /&gt;公教育の現場において、一般企業からの参入を認めてもいるが、私は逆に教師を一般企業に管理者として導入する可能性も多いに期待したい。この人材の交流によって、より効率的な管理体制が探求されることを望む。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4445190291228436492?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4445190291228436492/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post_24.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4445190291228436492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4445190291228436492'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post_24.html' title='黄金の３日間とは'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-1937663142156366417</id><published>2009-10-23T01:14:00.004+09:00</published><updated>2009-10-23T01:24:39.820+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HKK'/><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='HappyHackingKeyboard'/><title type='text'>Happy Hacking Keyboard Lite 2 英字配列購入</title><content type='html'>どうもJudaです。&lt;br /&gt;いい。やっぱりHHKのLite2はコンセプトが明確でとても素敵だ。&lt;br /&gt;すっきりしたキー配置にはいつも感心する。&lt;br /&gt;またLite2では、十字キーにHome,End,PageUp,PageDownのFnが設定してあることが憎い。&lt;br /&gt;僕はとにかくこのHHKが好きなのだ。これ以上理屈をいくら並べても、それは好きであるということをとらえ損なう。閉じ込めようとしても完全に捕まえきれない。ただ多く語ることで、それが囲んでいる領域をぼんやりととらえるだけ。HHKが好き。これがもっともよく表している。&lt;br /&gt;HHKは最高だぜー、わー。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-1937663142156366417?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/1937663142156366417/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/happy-hacking-keyborad-lite-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1937663142156366417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/1937663142156366417'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/happy-hacking-keyborad-lite-2.html' title='Happy Hacking Keyboard Lite 2 英字配列購入'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4927469112846564363</id><published>2009-10-19T02:01:00.003+09:00</published><updated>2009-10-19T02:41:24.622+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>コンテキスト</title><content type='html'>どうもJudaです。&lt;br /&gt;今日は、「言語」という話を備忘録。&lt;br /&gt;数学と音楽は、日常言語とは違う「言語」を持っていると思う。この場合の「言語」は一定の規約に準じる他者との相互理解のための意味コンテナ。数学の証明は、その作法を知らない者にとって、理解不能だ。音楽もたしなむ人にとっては、特定の旋律や進行がどういう意味合いを持つのかということを理解することもできるだろう。もっと一般化してしまえば、日常の会話でも使われている「言語」は特定の規約を知らなくては理解できないものになるだろう。&lt;br /&gt;このときに、もっとも基礎となる「言語」というものは、もっともその「言語」を理解できる者が最大となるときの「言語」。使用効率がもっともよい者が基礎となるのだろう。これが標準となる。&lt;br /&gt;標準をもとにいくつかの派生言語や、派生先での相互の翻訳がある。このときに、共通の根となるもっとも標準な「言語」を知れば、全てを知ることになると単純に考えることもできる。しかし派生が発生するという現象を鑑みれば、特定の事象を細分化し、他者と共有するために派生が行われていることが分かる。このときに、共通の根というのは非常に素朴なものだけを扱い、あまりにも漠然とし細分化されていないものとなる。この場合の派生関係は差異を進めることによって、もはや共通の根から派生したものとの関係性は薄くなる。これに対して、翻訳を行って、共通の変換規約を作り出しても、その変換は部分的にはうまくいくだろうが、一定以上の細分化が進んでいる場合には、翻訳不可能な局面が現れるはずである。それは、そもそもの派生が発生する契機に、コンセプトの相違に近いものである。&lt;br /&gt;この変換によるロスは、「言語」固有の特質だ。またこのロスを語ることは、それが変換できないという変換可能であることを否定することによってしか、一方の「言語」では、表現できないのではない。&lt;br /&gt;このときに、真に変換された無かった「言語」を理解するには、まったく別のものとして、新規に「言語」を習得する必要性がある。このことを自覚できずに、ロスの存在に気づくと、もどかしさを感じる。&lt;br /&gt;この「言語」を意識、精神に置き換えたときにいかにしてこのロスを克服していくのだろうか。考えられる解は、共通の根まで戻り、再度双方の言語に双方の語を交換して登録を行うことだろう。ただ習得は非常に非連続的なものになる。ある意味ではコンセプトを破壊する。&lt;br /&gt;&lt;br /&gt;仮に、これをクラスに置き換えた場合には、特にC++において、継承関係が完成されてるものに対して、新規に継承関係を動的にあるいはソースコードに直接記述することなしに追加していくことはできない。この流れでみたときに、Objective-Cの考え方はとても拡張性に富んでいて、洗練されたObjectOrientiedな言語設計である。もっともC++はオブジェクト指向でのプログラミングを許容する設計であり、複数のコンセプトが混在してる。だからオブジェクト指向への適応度の違いは、なぜC++とObjective-Cが存在しているのかということを再認識させる。このような違いに無自覚でいることは、その「言語」の本質を見失うことである。またその「言語」を使いこなしているのかという観点から言うと否と言わざるをえない。&lt;br /&gt;&lt;br /&gt;ただし、この論法を人間に拡大してほしくはない。理由があって派生しているというのは、人工的なラベリングでの話だ。個々人の個別な身体の所有に関しては、その理由を提供するものではない。人間とクローンでは話は別だが、あくまでラベリングされた場合のみだ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4927469112846564363?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4927469112846564363/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post_19.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4927469112846564363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4927469112846564363'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post_19.html' title='コンテキスト'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4531997331904994610</id><published>2009-10-14T23:40:00.003+09:00</published><updated>2009-10-14T23:59:36.052+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>不幸自慢はあまりよくない。</title><content type='html'>どうもJudaです。&lt;br /&gt;事実として不幸自慢が日本で多いかどうかは知りませんが、自分はついつい根底にそういう含意のあることを話してしまう。私はこれを理性的には恥ずかしいことだと思っています。&lt;br /&gt;なぜ恥ずかしいのか。それは、自分が愚かであることを周りに言い回っているからです。他の人が簡単にこなせるかもしれないことに自分は「これこれの苦労をしてやった」という。それは単純に効率が悪かったのです。そうではないとあなたは言うかもしれません。しかし「それはこのようにすれば実に簡単にできる」と言われたときに、胸がもやもやしてしまうだろう。苦労した自分を認めてほしいのに、その自分はのろまであったと指摘されるのである。このことにもやもやを抱いてしまう。自慢であるのにその本質が不幸に根を下ろしているので、その指摘に素直に従えなくなる。それはさらなる恥である。善意に対して、悪意をもって応えるのは、決して善きことではない。&lt;br /&gt;しかしそれを知っていても、不幸自慢をする。それは不幸自慢が周りに許容される自慢であると言う側面もある。だが、許されるかもしれないが、その本質もネガティブだ。&lt;br /&gt;できることなら、効率よく楽しくさまざまなことに取り組みたい。苦しいことが嫌いだということではなく、互いが互いを高めて引き上げるような環境が望ましいということだ。そのなかに、苦しいこともあるが、それは別にネガティブなことではない。方向転換のための抵抗と同じである。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4531997331904994610?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4531997331904994610/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post_14.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4531997331904994610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4531997331904994610'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post_14.html' title='不幸自慢はあまりよくない。'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3084436277930866523</id><published>2009-10-04T02:14:00.001+09:00</published><updated>2009-10-04T02:29:15.065+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>ドキュメントコメントについて</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;ドキュメンテーションコメントの重要性について語ろうと思います。&lt;br /&gt;&lt;br /&gt;コメントをつけるといっても、どれぐらいの詳細を書き込むのか、あるいはもっと根本的に、何を書くのか、ということは突き詰めると意外と決まっていないことが多い。もっともちゃんとした規約があるところもあるのでしょうが、それらを新規に制定していこうと思うと、Try&amp;amp;Errorではドキュメントを書く人、主に開発者が死にますのでここは重要ですよ。&lt;br /&gt;その勉強のために、一冊本を調達しました。&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEJavadoc%E5%86%8D%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7-%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8BAPI%E4%BB%95%E6%A7%98%E6%9B%B8%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-%E4%BD%90%E8%97%A4-%E7%AB%9C%E4%B8%80/dp/4798119482/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1254588830&amp;amp;sr=8-1"&gt;エンジニアのためのJavadoc再入門講座&lt;/a&gt;&lt;br /&gt;この本はまだ途中までしか読んでいないのですが、なかなかためになります。Javadocについて書かれていますが、ここからメタ＜ドキュメンテーションコメント付け＞を引き出していこうと思っています。&lt;br /&gt;&lt;br /&gt;なにがドキュメンテーションコメントを深くつきつめる動機になったのか。&lt;br /&gt;&lt;br /&gt;それは、レガシー化しているコードを保守、拡張、利用するということが通例であるのに、それらについての一家言をもっている人が周りにいなくて、個人的に困ったことになっているからです。またコメントと同時的にテストやテスト手法、ソフトウェアのもつ責任範囲など、主にソースコードを利用し、改変、配布する場合におこる問題への対処を根とした調査ですね。まわりもリファクタという行為に関してはまだ認知度が高いみたいだが、これに付随するテストに関してはあまり重要視していない。そしてリファクタを行う前にテストを用意しないと行けないという罠。どう考えても、テストは重要だなぁ。と、それを改変するときには、同時にドキュメントを正確にしていかないといけませんなぁという流れです。&lt;br /&gt;&lt;br /&gt;そして、一番の関心事は、すべての問題の責任を押し付けられる可能性があることに対して、なるべく強固な方法で防御をしないと、何をされるかわからない危険です。危険は回避したいです。&lt;br /&gt;&lt;br /&gt;ドキュメンテーションコメントは、それを利用する人に向けてという意味合いが強いので、ほとんどはPublic 向けな規則ですが、クラスの再利用の問題もあるので、個人的にはProtected、Virtualなメソッドに対しては原則的に必要ですし、例外を投げる可能性のある関数にも必要だと思います。さらに話を広げますと、例外の基準。こちらも実装をしている段階で、いろいろとも問題になります。通常の処理ではありえないものが例外ですが、実装段階でそれらをトラップできるとなると、それは例外なのか？という疑問もあります。そこのところも含めて、上記の書籍には幾分かの指針が書かれていたので、それをもとに考えを深めていく。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3084436277930866523?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3084436277930866523/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3084436277930866523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3084436277930866523'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/10/blog-post.html' title='ドキュメントコメントについて'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8640130778468280208</id><published>2009-09-27T08:46:00.000+09:00</published><updated>2009-09-27T08:46:24.768+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>Growl (for mac)</title><content type='html'>どうもJudaです。&lt;br /&gt;Growlというアプリケーションのユティリティキット？みたいなものを夜フクロウを経由して知りました。「確かにこういうのがほしいんだよー」といった感じの機能でして、Focusのないアプリケーションにくる新着情報などを小さな”控えめな”Windowで表示してくれる憎い機能なのです。とりあえず主張がうるさくないし、Desktop上の滞在時間も文字列を全部確認できるぐらいの時間なのでいい感じ。&lt;br /&gt;また自分でアプリケーションから呼び出しができるみたいで（当たり前）、なんらかの状態変化を通知する必要のあるアプリケーションではこの機能の利用はSmartかなぁ。まだなにも触ってないから苦労とか分からないけど、ちょっと気に入った。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8640130778468280208?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8640130778468280208/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/growl-for-mac.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8640130778468280208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8640130778468280208'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/growl-for-mac.html' title='Growl (for mac)'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-7096261508345824687</id><published>2009-09-27T02:02:00.004+09:00</published><updated>2009-09-27T02:29:50.104+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><title type='text'>Pluginとマクロのための開発設計</title><content type='html'>どうもJudaです。&lt;br /&gt;&lt;br /&gt;問題はこれらは設計段階でうまく考えておかないといくらリファクタリングしても、ほしい機能を実装するめどを立てられなくなりそうなので、いろいろ書いておく。&lt;br /&gt;&lt;br /&gt;PlugInの機能をどうやって管理するのか。&lt;br /&gt;たぶんこれは大別して2種類。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;内部に管理クラスをもつ実行ファイルがあり、それが内部で呼び出すPlugIn機能を利用する&lt;/li&gt;&lt;li&gt;外部に管理クラスをもった実行ファイルがあり、それが生成するDBを元にPlugIn機能を利用する&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;中間の形式が違うだけだ。入力:並べられたPlugIn、出力：呼び出し可能なPlugInの列挙。&lt;br /&gt;マクロの問題を考えるなら、PlugInをインスタンス化できて、外部に公開されたメソッド名を使えば、そのPlugInをマクロで制御できるようにする構想も必要だ。&lt;br /&gt;&lt;br /&gt;マクロ化するならば、内部的な関数の呼び出しも名前で呼べないといけないなぁ。&lt;br /&gt;マクロを認めるなら、結局はスクリプトを認めることで、それならば内部にはParserが必要になる。この部分をPlugIn側にも認めるのか否かは。。。認めないといけないなぁ。&lt;br /&gt;&lt;br /&gt;実際はそこまで考える必要性はないけれど、でもそこまで考えておかないと、未来の僕や僕の後を継ぐ人はかわいそうなコードをかわいそうなスケジュールでかわいそうな顔で変更したり、機能追加しないといけない。コメントをいくら書いても、できないものはできない。なので、イケテル設計(笑)をしないと。開発が嫌いになると困るので、十分調査していこう。&lt;br /&gt;&lt;br /&gt;とりあえず、PlugInの管理は別の実行ファイルにしたい。それは、この機能は統合的には必要だけど、単体的には必要ない。だからDBもしくはCSV（Debug用）でPlugIn情報を表現する。&lt;br /&gt;&lt;br /&gt;さて、ついでに必要になるのは、PlugInを単体でテストすることができる機能。これは開発者向けの必須ツールだ。最低限呼び出し可能かどうかのテストと、読み込んだデータに対して、期待したデータ処理ができるかが重要だ。できれば、テストデータをDefaultで用意できたり、ファイルの読み込みができたり、内部データを動的に表示したり、ログを取れたり、そういうのが絶対にその後の開発者の助けになるし、、、なにより自分がイライラしないだろう。うん、これは必要。&lt;br /&gt;&lt;br /&gt;ほしい機能はとりあえず広げてみたけど、ざっくりまとめると&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PlugInの呼び出し、実行（ｄｌｌ）&lt;/li&gt;&lt;li&gt;マクロ機能の呼び出し、実行、（変換機能：動的＋コンパイル済み）&lt;/li&gt;&lt;li&gt;PlugInのテストツール&lt;br /&gt;&lt;/li&gt;&lt;li&gt;マクロのテストツール&lt;/li&gt;&lt;li&gt;PlugInのマネージ機能&lt;/li&gt;&lt;li&gt;Debug用のお助けツールキット(オプション式)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;あとは基本的な機能。これは、個々の実装系によるので、無視。&lt;br /&gt;マクロ関係は基本の機能に依存するので、いったんは無視。&lt;br /&gt;PlugInの部分の基本的な考え方は同じなので、これを優先的に作る。&lt;br /&gt;マクロ機能に関しては、既存のスクリプト言語で代替可能であることが望ましい。&lt;br /&gt;個人的にはIroｎPythonもしくはNativeのPython。大穴Scala？&lt;br /&gt;PlugInの呼び出しは基本的にはShowDialog（）のような感じで、Dialogを出して、そこでパラメータを変更する。いくつかのメソッドをPlugIn側に公開する必要性があるので、ここを先に留意する。&lt;br /&gt;後から来る人はかならずInterfaceの概念とCOMの概要は知っている必要性がある。この際にOptionとしてDebugのツールキットインターフェイスを引数に入れられるようにすると、、、、複雑度が上がるか。。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-7096261508345824687?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/7096261508345824687/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/plugin.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7096261508345824687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/7096261508345824687'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/plugin.html' title='Pluginとマクロのための開発設計'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-2549112145677367976</id><published>2009-09-27T01:49:00.003+09:00</published><updated>2009-09-27T01:56:36.607+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>DevKANに行ってきました</title><content type='html'>DeｖKANに行ってきました。&lt;br /&gt;まぁ、楽しい会でした。みんな開発愛にあふれていました。&lt;br /&gt;個人的にはテスト工程の方々の苦悩やテスト工程の方々からの提案がとても身に染みました。やはり開発者の敵対関係にあるのは、特定の問題なのだと、より考えを明確にしました。&lt;br /&gt;個人的には、開発ツールへの愛を語る方がいてもよかったかなぁと（じゃ自分でやれ？&lt;br /&gt;LTも初めてみたのですが、とてもためになりました。&lt;br /&gt;うんうん、ぜひぜひ関西にこの種が芽吹くことが願われます。（他人事？&lt;br /&gt;&lt;br /&gt;次はコミュニティー参加は読書会へ行きたいなぁ。&lt;br /&gt;読書会でどれぐらいの知識LVが求められるのか、知りたいなぁ。&lt;br /&gt;#devkan2009&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-2549112145677367976?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/2549112145677367976/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/devkan.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2549112145677367976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/2549112145677367976'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/devkan.html' title='DevKANに行ってきました'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-9181490677991884038</id><published>2009-09-23T06:22:00.003+09:00</published><updated>2009-09-23T06:31:05.753+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>The Last Guy</title><content type='html'>どうもJudaです。&lt;br /&gt;PS3専用ゲーム　「The Last Guy」&lt;br /&gt;いまさらこのゲームなのですが、前から気にはなっていました。ちなみに２０００円でした。&lt;br /&gt;&lt;br /&gt;音楽はそれなりにいいのですが、後１分のときの音楽のちょっぴりうるさいことがなぁ。&lt;br /&gt;ゲームの難易度は高めで、大人ゲーマーでも複数回のチャレンジが必要だと思います。ゆとりゲームではないので、小学生ではこのゲームをクリアしていくのは厳しいと思いました。&lt;br /&gt;&lt;br /&gt;ゲームをやってみて思ったことは、スタミナへの配慮と列の長さの把握がかなり比重を占めていると思います。あとは敵の巡回経路などもありますが、一貫した法則や索敵範囲がゲーム中で分かりにくいので、これよりもより列とスタミナの把握が重要でと思いました。とりあえず敵がみにくいので、目が疲れます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-9181490677991884038?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/9181490677991884038/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/last-guy.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/9181490677991884038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/9181490677991884038'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/last-guy.html' title='The Last Guy'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8595903321571521186</id><published>2009-09-13T02:23:00.003+09:00</published><updated>2009-09-23T06:12:24.057+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>VB.NET における メモリリーク問題</title><content type='html'>どうもJudaです。&lt;br /&gt;最近はTwitterでつぶやきまくって、満足しているのですが、それではここの利用価値が上がらないので、割と重めな内容をPickUp&lt;br /&gt;&lt;br /&gt;VB.NETで長時間運用するとメモリを圧迫してメモリリークを起こす問題がある。&lt;br /&gt;http://support.microsoft.com/default.aspx?scid=kb;[ln];q313417&lt;br /&gt;大学時代の製作物の中にこの問題にひっかかるものがあるので、コレに対処するべく調査中。&lt;br /&gt;&lt;br /&gt;開発者として給料をいただいている身で思うことがある。&lt;br /&gt;それは、プログラマに求められる以上のことだ。&lt;br /&gt;自己を防衛するための機構の導入だ。&lt;br /&gt;テストしかり、トレースしかり、デバッグプリントしかり、ログ機能しかり。&lt;br /&gt;これらのものは、本来の開発ではオプションである。&lt;br /&gt;しかしこれらを欠くと著しく後期の開発において欠損を生む。&lt;br /&gt;近頃これをよく思う。&lt;br /&gt;&lt;br /&gt;詳しくは後日説明を加えたいと思う。&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;それで後日談。&lt;br /&gt;とりあえず.NETのガベージコレクタはそれほど賢くないので、なるべく明確にゴミを設定してやる必要がある。&lt;br /&gt;&lt;br /&gt;それとその前に結果的にだが、プログラマはオブジェクトの所有権にその持ち方についてある程度留意する必要があるということだ。（スマートなポインタが売りだった気がするのだが。&lt;br /&gt;&lt;br /&gt;結論としてDisposeのメソッドをもつことが最も確実なメモリ解放への配慮だったりする。&lt;br /&gt;いくつかあるメモリへの配慮として、&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;変数にNothingをSetする。&lt;/li&gt;&lt;br /&gt;&lt;li&gt;配列をEraseする。&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;ちなみに配列のEraseはすべての要素にNothingを入れるのとほぼ同等らしいです。&lt;br /&gt;&lt;br /&gt;ここからが問題ですが、クラスの確保した領域の解放ですが、ここはさりげなくC/C++とそれほど変わらないというのが調べてみた感じです。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;循環参照はうまく解決できない。&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Nothingを入れる前に入っている変数のサイズ分しか解放されないっぽい。&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;これは確かC/C++でmallocを行ったときに発生するプログラマのぼんやりから発生するメモリリークとそれほど変わらない。結局C/C++的な考え方を持ち込んでこないと問題を回避できないっぽい。&lt;br /&gt;ここで、明確に破棄するための手段としてIDisposeの適応が考えられる。これによってプログラマは明示的に破棄方法を設定できる。これがもっとも問題の少ない解決法である。&lt;br /&gt;&lt;br /&gt;これは憶測だが、Stringの解放が若干怪しい気がするが、基本型で用意されているので問題ないと思うが、C/C++的な考え方からするとこれは基本型ではないので、ちゃんと解放されるのか心配だ。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8595903321571521186?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8595903321571521186/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/vbnet.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8595903321571521186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8595903321571521186'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/vbnet.html' title='VB.NET における メモリリーク問題'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5117431989363730722</id><published>2009-09-06T00:09:00.005+09:00</published><updated>2009-09-06T00:43:39.266+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Mercurialの有用性について</title><content type='html'>どうもJudaです。今日はコード管理について。&lt;br /&gt;Mercurialというコードヴァージョン管理ソフトについてです。&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;まぁ、よく似たのにはGitがあります。&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/入門Mercurial-Linux-Windows対応-藤原-克則/dp/4798021741/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1252163432&amp;sr=8-1"&gt;入門Mercurial Linux/Windows対応&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/Mercurial-Definitive-Guide-Bryan-OSullivan/dp/0596800673/ref=sr_1_3?ie=UTF8&amp;s=english-books&amp;qid=1252163432&amp;sr=8-3"&gt;Mercurial: The Definitive Guide&lt;/a&gt;&lt;br /&gt;オライリーだとこれがありますけど、前述の書籍のほうが日本語だしいいかなぁって思います。&lt;br /&gt;いまどきのソフトウェア会社でコード管理をしていない会社なんてほとんどないと思いますけど、個人ではまだやってないって言う人もいると思います。かくいう私も最近までは管理していませんでした。これは、単純にそういう管理面でのことを教えてくれる記事などがあまりないということが関係あると思います。しかし個人でのいかなるソースコードも資産として価値があると思います。だから管理しておくに越したことはありません。&lt;br /&gt;ほかの管理ツールは&lt;br /&gt;・Subversion&lt;br /&gt;・Git&lt;br /&gt;・Visual Source Safe&lt;br /&gt;とかありますけど、個人で有料のものをつかっていくのはなかなか大変です。そもそも高いですし。その点で言うとオープンソースで開発されているSVNとかGit、Mercurialは有料ではないが、とても有用なプロジェクトの一つだと思います。&lt;br /&gt;Mercurialの基本的な動きなどは、解説書に譲りますが、個人的に使うときに気づくと思うのですが、10Mbyte以上のデータは管理できないらしいです。あとGUI付のTortoise（トータス）系はWindowsのShellと融合して使いやすい反面、間違いを起こしやすいので注意。&lt;br /&gt;あとは、管理といってもやることは簡単。でもちょっと違うことをおこなったときに、どうすればいいのだろうということは結構あります。実際にSubversionで”Working Copyを先にしてね”みたいなエラーは意味が分かりませんでした。もっとも説明書も読まずに使おうというのが間違っています。そして、その説明書が段階を踏んで説明されているわけではないので、解説書を手に入れると結構踏み台としていい感じです。&lt;br /&gt;ちなみに日本語化をするととっても意味不明になります。そもそもの単語が意味分からないで使っているのに、それを日本語化しても分かりやすいわけはないので、なるべく英語のほうがいいです。そして検索の際にも英語で検索するほうが情報が手に入りやすいです。日本語で説明しているサイトや記事が充実していない状態ではなるべく言語パッチを当てないほうがいいです。&lt;br /&gt;あとは大前提としては、英語の情報やプロジェクトのほうが多いので、それを読むことになれること。これは、もはや相対的な開発者の言語分布が英語が圧倒的に多いので、それを受け入れることである。嫌なら、日本語で同等か、それ以上のものを作るしかないです。まぁ、だから日本にはまだ市場があるんだけどね。&lt;br /&gt;多くの事項は、Mercurial入門の日本語の本にあります。ぜひこれを買いましょう！話は戻って、SubversionとMercurial、Gitはなにが違うのか。それは情報の集積のやり方です。SubversionなどのCVSは中央集権的、Mercurialは分散型です。&lt;br /&gt;中央集権的なSubversionは、すべてを管理するRepositoryがあります。個々のRepositoryをもつことは一般的ではありません。分散的なMercurialもRepositoryはあります。しかし個々のRepositoryがあるのです。中央集権的に振舞わせることもできますが、それではよさが活きません。分散型のよさは、中央が死んでいても、個々のレベルで情報を共有して、コード管理できます。これは、結構開発現場ではいいことなのです。たとえば、サーバがなにかの障害で使えなくなっても、個人のソースコードはいつもどおり管理できますし、中央を介せず、個々のレベルでもソースコードの同期を取れます。そのたびにマージがおきますが、このマージの方法も実に合理的です。&lt;br /&gt;Subversionでは、UpdateしてMergeしてCommitします。MercurialはCommitしてPullしてMergeしてCommitしてPushします（たしか&lt;br /&gt;重要なのは、自身の変更結果を自身でも保持しているので、途中で自分の変更がなくなったりしないのです。Subversionは結構マージでてこずると、マージ前に戻したいのに、戻せないことに気づきます。これは、ある意味絶望です。成果がパーなので。&lt;br /&gt;ここらへんで、Mercurialの話は終わりますが、一番重要なのは、SubvesrsionとMercurialは共存できます。だから個人でMercurialを導入しても問題ありません。&lt;br /&gt;そして、これはあくまで手段です、より効率よくソースコードを管理できるのであるならば、別の方法を採用するべきでしょう。というか、ちゃんとそこを理解しないと頭悪い感じになるなぁ。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5117431989363730722?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5117431989363730722/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/mercurial.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5117431989363730722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5117431989363730722'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/09/mercurial.html' title='Mercurialの有用性について'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-3857272185987031254</id><published>2009-08-26T00:22:00.003+09:00</published><updated>2009-08-26T00:24:54.528+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='研究'/><category scheme='http://www.blogger.com/atom/ns#' term='画像処理'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>JPEGって手のかかる子</title><content type='html'>どうもJudaです。&lt;br /&gt;最近JPEGのDecoderを自前で用意しなくてはいけないので、大変な思いをしています。しかも特許がらみでなんだか情報も閉鎖的です。とりあえず、エントリをつくっておいて、後で情報を足しておきます。&lt;br /&gt;もーめんどくせぇ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-3857272185987031254?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/3857272185987031254/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/08/jpeg.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3857272185987031254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/3857272185987031254'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/08/jpeg.html' title='JPEGって手のかかる子'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8745310592834210159</id><published>2009-08-16T23:54:00.002+09:00</published><updated>2009-08-17T00:02:32.631+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>FinePix REAL 3D W1</title><content type='html'>どうもJudaです。&lt;br /&gt;今回は、FinePix REAL 3D W1という商品がいいなぁと言うお話。&lt;br /&gt;なにがいいのか、「ステレオ画像を手軽に取れるところ」。&lt;br /&gt;今の映像業界的な流れは3-Dです、どうかんがえても。(もっとも過去にも3-Dが話題に上がったこともありましたが。)映画もディスプレイも3-Dです。そしてここにきて、3-Dカメラなるものが発売される（た）のです。&lt;br /&gt;既存のシステムでは、シャッタータイミングがどうしてもずれたりするなどお手軽に3-D用のステレオ画像を取れませんでした。この問題などもろもろを制約条件をつけることによって解決したのが、FinePix REAL 3D W1でありまして。&lt;br /&gt;&lt;a href="http://plusd.itmedia.co.jp/lifestyle/articles/0907/22/news061.html"&gt;+D media Lisestyle / http://plusd.itmedia.co.jp/lifestyle/articles/0907/22/news061.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.yodobashi.com/ec/product/100000001001138914/index.html"&gt; FinePix REAL 3D W1 (ヨドバシカメラ)/ http://www.yodobashi.com/ec/product/100000001001138914/index.html&lt;/a&gt;&lt;br /&gt;ただ高画質なだけのカメラになんだかなぁと思っていたJudaは、「これは、おもしろい」と思いました。ただ再生形式や表現環境が著しく制限されているので、広く頒布しようとしている方には問題があるのかもしれませんが、ローカルなサークル内では楽しめるのではないでしょうか？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8745310592834210159?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8745310592834210159/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/08/finepix-real-3d-w1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8745310592834210159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8745310592834210159'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/08/finepix-real-3d-w1.html' title='FinePix REAL 3D W1'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5447953551812626406</id><published>2009-08-02T01:25:00.003+09:00</published><updated>2009-08-02T01:51:13.407+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>Emacsから始まる、奥義の道</title><content type='html'>Emacsのメジャーバージョンアップがきました。&lt;br /&gt;といっても、私はEmacsの信者ではありません。信念的にはViです。(ただでさえCtrlを多用する現状なのに、移動にもCtrlを押し続けなければならないのは苦痛です。といってもEmacsにCtrlでモードを切り替える機能があれば、、、なんて言い出すとViのほうがスマートｗ)ですが、なんにしてもめでたきこと。UNIXを代表する代表的なエディタがWindowsでしかも日本語環境でも起動するなんて夢みたいな話です。多くの互換プログラムがありましたが、本家が対応してくることによって、これまでとっつきづらいと思っていた人にも選択肢が解放されたと私は思いました。&lt;br /&gt;&lt;br /&gt;テキストエディタについては人はその重要性に気づいていません。もっとも、日用品となったアプリケーションに普通の人は選択肢が存在する事を理解できません。ブラウザしかり、メモ帳しかり、OSしかり。この現象をあらわせる適切な用語を知らないのですが、習慣づけによって多様性がなくなっていくこと自体は淘汰で言い表せるのですが、この淘汰が発生していることに気づくことをなんと言い表すのでしょうか。淘汰状態を知覚するというのでしょうか。なんとなく哲学的感性の芽生えと類比して考えられるのですが、何度も言うようにこの感覚をあらわす適切な用語が思いつきません。&lt;br /&gt;&lt;br /&gt;ともかくも、この気づきに至る人は一般のレールからは逸脱しました。気づいてしまったことで、その前提が脆弱なものであることに気づくのです。趣味の世界への入り口のようなものですが。。。またややこしいことに、この気づきそのものに気づくと、今あるさまざまなものの前提条件が砂上の楼閣になるのです。まぁ、確かにこれは哲学的な感性でしょう。デカルト的な懐疑とでも言えばいいのか。そうか、淘汰状態への気づきはつまりは前提条件によって選択肢が隠蔽されていることに気づくということで類比的に懐疑か。懐疑というメソッドを手に入れると知るものの大半へその懐疑を差し込めるようになります。前提条件を疑うという新たな手法を手に入れます。もっともこれをどこまで適応するのかという問題は再帰的に発生し、この根となるところの話までいくのならば、デカルトを頼ってその著書を読むべきでしょう。私は、これを手段として使うにとどめます。&lt;br /&gt;&lt;br /&gt;この懐疑は、つまるところ前提条件を自ら意志的に組みなおすことを求めます。（哲学で言う意志的ということは人間的ということに言い換えられます、割と）気づいているからには、その前提条件を承認するのか、それとも否定するのかという問いかけが発生します。知ってしまうことによって必然的発生する問題です。またこの懐疑という手法は再帰的であるが故に、どこで再帰をやめて戻ってくるのかを規定する必要もあります。無邪気にすべてを無に還して、世を果敢無むをよし、あくまで手法として選択肢に加えるもよし。&lt;br /&gt;&lt;br /&gt;趣味や奥義、追求の端緒は、懐疑だろう。そして満足を求める心は修羅の道。されど楽園にはもはや戻れるわけもなく、ただ東へ。&lt;br /&gt;&lt;br /&gt;だから選択肢がなくなっていることに気づくのは、人間的。。。なのかなぁ。少なくともシステムの歯車から外れてしまっている&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5447953551812626406?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5447953551812626406/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/08/emacs.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5447953551812626406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5447953551812626406'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/08/emacs.html' title='Emacsから始まる、奥義の道'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5233819078425235780</id><published>2009-07-28T23:40:00.002+09:00</published><updated>2009-07-28T23:46:59.152+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>道具にもこだわりたい</title><content type='html'>どうもJudaです。&lt;br /&gt;世間的には優れたプログラマは道具を選ばないらしいのですが、私は俗物凡人なので入力インターフェイスもテキストエディタもこりこりで、言語やランチャやクリップボード、仮想Windowなどもつかっています。&lt;br /&gt;入力インターフェイスは長期戦向きのFILCOのマジェスタッチ、職場向けのHHK Professional JP&lt;br /&gt;テキストエディタは通常使いのMIFES8と開発用のVisualStudio、そして修練中のVi、Emacsです。&lt;br /&gt;言語は、なるべくならばC/C++ではなくてC#、Perl、Python&lt;br /&gt;ランチャは穏便にLaunchy、クリップボードはCLCL、仮想WindowはVirtualWindowです。&lt;br /&gt;この導入群の制でALTとCtrlのキーは押しまくりです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5233819078425235780?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5233819078425235780/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_28.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5233819078425235780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5233819078425235780'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_28.html' title='道具にもこだわりたい'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-6426554028441705446</id><published>2009-07-26T00:30:00.002+09:00</published><updated>2009-07-26T00:38:24.704+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>テストファーストでの開発の注意点</title><content type='html'>どうもJudaです。&lt;div&gt;今日は、TDD（Test Driven Design)について気づいたことを。&lt;/div&gt;&lt;div&gt;TDDは結局は終わりから始まりに戻るリバースエンジニアリングであり、それによって開発を行う方法だけど、これって通常は突然の仕様変更に耐えられるように作れるのか？または機能追加に。&lt;/div&gt;&lt;div&gt;事前に機能追加を見越して開発をするということは、テストケースからは推察できないと思うのだが、どうなのだろう。今はまだしっかりと理解していないが、直ぐに思いつく問題になりそうなものはそこかな。&lt;/div&gt;&lt;div&gt;あとはMDD（Model Driven Design)なんかも、仕様を元にデータモデルを考えて云々だと思うけど、仕様変更には、TDDよりは強いと思う。&lt;/div&gt;&lt;div&gt;ただ、一番いえるのは、仕様が変更されることは今までのものでは機能不全であるという烙印を押すのであるから、どんな場合でも厄介である。また冗長性で回避できるにしても限界があるし、想定の範囲内の修正でない場合も多い。&lt;/div&gt;&lt;div&gt;私はソフトウェアをなにかの類推や定型化して考えるには、まだまだ知らないこと、いつか現れる新しいことが多すぎて、いつ何をしゃべっても一定以上の付帯条件がついていて、どれにも銀の弾丸にはならないと考える。ただあるのは、開発者がより多くのツールと手段を知っていることで、それらに対応するのが唯一有効であると言える手法に思える。ただこれは何も示していないのと同じだが。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-6426554028441705446?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/6426554028441705446/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_26.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6426554028441705446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/6426554028441705446'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_26.html' title='テストファーストでの開発の注意点'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-5155135464211244252</id><published>2009-07-18T13:58:00.002+09:00</published><updated>2009-07-18T14:15:12.765+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>新しいゲーム布教の提案</title><content type='html'>&lt;p&gt;どうもJudaです。今回は新しいゲームの布教の話をします。&lt;/p&gt;&lt;p&gt;昨今のゲームではオンラインは当たり前になりつつあります。そのなかでPCゲームというカテゴリでの販売にはクローンの生成に問題があります。現在はこれらを海賊行為として取り締まっていく機運がありますが、個人的にはこれではユーザーが&lt;strong&gt;わざわざPCゲームを選んでくれているメリット&lt;/strong&gt;の一つを奪うと考えます。それは、楽しいゲームをみつけて、それを仲間内でやろうとします。そのときには直ぐに仲間とゲームをやりたいのです。そのためにそれが契約違反であってもしてしまう可能性は極めて高いです。そのゲームをレビューするような段階ならなおさら。&lt;/p&gt;&lt;p&gt;そこで既に試みられているかもしれないのですが、この行為が仲間内で行われることを利用して、同一シリアルでのLAN Party利用を前提としたプレイスタイルを認めることを提案します。基本的にはゲームの仮想イメージを故意に流布させる人は、それ以外のものをも流布している可能性が高いので、法的意識云々のレベルで考慮にいれてもどうしようもありません。わかっているけど、一線を越えてしまう人のために限定的に同一ライセンス同士でのローカルマッチを認めるのはどうか、と。これはまだ案でしかないので、より詰めて考えないといけないのですが、新規のゲームほどレビューをしてもらえること、紹介してもらえることにかけるコストが大手に比べて大きくなります。そのためにソフトのロックも保守的になるのですが、あくまでそれらを広めようとする人に対して、より理解を示そうということが主眼です。利用者のいないゲームはただの自己満足でしかないので、可能であるならば、販売者側の立場と購入者側の立場でより妥当な線を提案できればと考えます。&lt;/p&gt;&lt;p&gt;PCでゲームをするという、欧米では普通のスタイルですが、日本国内ではなじみのないスタイルに対して、よい関係を気づいていくことが双方によいフィードバックをもたらすと思います。&lt;/p&gt;&lt;p&gt;このためにオンラインでの対戦のネットワーク構築の基盤となるライブラリの構築と認証システムを考えるのも、販売者よりの利用者の歩み寄りかなぁ、と。まぁ、企業からすれば横柄な利用者にしか見えませんが、それでもゲームは好きですし、よりゲームデザインのよいものをより多くの人と分かち合い、それを生み出してくださった開発者によりダイレクトに評価ならびに評価としての金銭が還元されるモデルがうまくうまれるといいなぁとおもいます。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-5155135464211244252?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/5155135464211244252/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_18.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5155135464211244252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/5155135464211244252'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_18.html' title='新しいゲーム布教の提案'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4275828927032536708</id><published>2009-07-15T23:04:00.002+09:00</published><updated>2009-07-15T23:15:45.056+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>人工知能</title><content type='html'>どうもJudaです。&lt;br /&gt;今日は、人工知能の話。&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;人々が本当に望んでいるのは、人工知能ではない。とても優秀な私だけの奴隷だ。&lt;br /&gt;仮に人工知能が可能であるとすると、自身の意図していない行動を起こすようになることだ。自律的に活動するということだ。でも、人々が人工知能に期待するのは、人道的な奴隷だ。&lt;br /&gt;空間を跳躍して、同時に離れた場所に点在する。遍くこの世界に存在することが究極の願いだろう。いわば、神である。&lt;br /&gt;この目標を達成することに、知能はいらない。精密なフィードバック機構と規格化された外骨格だけが必要なのだ。機械はどこまでも末端神経の拡張でしかないので、この方面での拡張はもっとも人間的である。&lt;br /&gt;自らの身体という鎖から放たれていることが目的であるので、この方向はとても利に適う。しかし別の欲求も認める。自分でない、自分と同等の存在の渇望。人は一人でできることなど限られる。議論やゲームなどの闘争に関するものは必然的に一人ではできない。&lt;br /&gt;人は遊び相手、奴隷、代替品として人工知能を求めている。しかも自分と同等の知能でという制約付だ。その中で社会制度というものを考えるとなかなか面白いのではないだろうか。自己の制限付の代替品としての他者とか。&lt;br /&gt;人工知能の究極のジレンマは、離散集合でしかどうしても処理ができないことだろう。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4275828927032536708?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4275828927032536708/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_15.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4275828927032536708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4275828927032536708'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_15.html' title='人工知能'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-8113649594919945580</id><published>2009-07-12T23:35:00.002+09:00</published><updated>2009-07-13T00:05:32.715+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>破をみた</title><content type='html'>というわけで以下ネタばれ&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;単純にみて、泣けました。&lt;br /&gt;&lt;br /&gt;シンジの葛藤や、アスカの苦悩、レイの心境の変化がふんだんに盛り込まれていて、今までのエヴァとは違うものとなっていました。まぁ、悪く言うとガイナック的な演出が多くなりました。それは特に後半に凝縮されているのですが、いささかやりすぎな演出があったと思います。宣伝も大々的に行ったサブカルチャとしてのエヴァから大衆向けのエヴァへの変化という点では正解なのだと思うのですが、後半の戦闘シーンに関してはもっとトーンを落としてもよかったのかもなぁと思います。&lt;br /&gt;&lt;br /&gt;本当はべた褒めしたいです。アスカの心理描写がとても現代的なものに変わっていること。アスカがとってもキュートな演出できつさがぼかされていること。まぁとにかくアスカがかわいいんだ。（ぇ&lt;br /&gt;まぁ、アスカとレイの描写がことごと古い時代とは変わっていること。それがいいことか悪いことかは瑣末な問題で、本当に受け取るべきは今回提示されたエヴァであり、これは古い時代の誰もを悩ませた混沌に満ちていたエヴァとは違う。あの行き場のなさとそれでも抗うしかない自己との拮抗のような詩的な世界観から、人から神へと昇華する神話的な世界観になってきています。エヴァというアニメ界の金字塔に求められている期待に対する回答としては、上等だと思います。&lt;br /&gt;&lt;br /&gt;ただ着目したいのは、&lt;br /&gt;なぜ物語はシフトしたのか？&lt;br /&gt;なぜ大筋から変革を加えられたのか？&lt;br /&gt;時間が流れて、要求されるものが変わったから？&lt;br /&gt;それとも、これが本来の結末なのか？&lt;br /&gt;&lt;br /&gt;エヴァの世界観を現代風にアレンジしなおしても、どうしても変えられなかったのは、"インターネットの導入"だと思う。携帯電話やノートPCがでてくるが、インターネットの存在は明らかにならない。彼らの世界にはそれがないと考えるのが自然だ。あの世界にはGoogleは生まれていない。mixiもブログもない。知識は本や口承で伝わるのだ。世界はつながっていないのだ。&lt;br /&gt;&lt;br /&gt;なぜエヴァの結末は変わったのか？私の答えは、インターネットが生まれたからだ。この発明のせいで人類補完計画の結末は塗り替えられざるを得ないのだと思う。今すでに人々はつながっている。知識は共有されている。一つのネットワークを作り出している。ネットがない世界を、ネットがある世界の人が見ていながら、人類補完計画の結末を納得させるにはどうするのか？これに立ち向かうのか、それともこの問題を回避するのかは、これからの話だ。たぶんエヴァの新しい世界では人類補完計画は発動しない。あの結末はネットのない時代の孤立と取れる。ならば、結末はどうするのか。ハッピーエンドにしてしまうのか？&lt;br /&gt;&lt;br /&gt;あと気になるのは、今回のエヴァはよく精神汚染されていると思う。なにかのメタファー？&lt;br /&gt;&lt;br /&gt;と、難しいことも書いたけど、普通に見れば楽しめます。熱いです！&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-8113649594919945580?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/8113649594919945580/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_3581.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8113649594919945580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/8113649594919945580'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_3581.html' title='破をみた'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322506539470265225.post-4016475539288468293</id><published>2009-07-12T07:28:00.003+09:00</published><updated>2009-07-12T08:30:19.583+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑談'/><title type='text'>理想的なキーボード配列</title><content type='html'>どうもJudaです。&lt;br /&gt;今回の記事はインターフェイスについて考えます。&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;p&gt;結論から言うともっとも汎用的なものがもっとも便利です。しかし、そのキーボードには潜在的な健康リスクや打鍵速度の限界が存在しているとします。そのときに、自分のキーボードだけでもそれを回避しようという考えが生まれるかもしれません。インターフェイスの重要性への気付きです。&lt;/p&gt;&lt;p&gt;インターフェイスの基礎はそれを通じての他者間の交通があることです。その交通が円滑に行えることは、交通量の増大をもたらします。古いタイプライタがQWERTYを採用した背景には交通量による制限がありました。あまり早く打鍵すると、交通量が増えすぎて入力が渋滞するのです。現在のキーボード入力のために用意されているパスではこのような交通渋滞は発生しません。つまりはQWERTYに固執しなければならないハード的な制約はないのです。&lt;/p&gt;&lt;p&gt;キーボードに求められるインターフェイスの要求は、手元を見ずに話すような自然さで入力を行えることでしょう。日本の携帯電話は固定電話のインターフェイスを踏襲しています。これに対してiPhoneは、キーボードのインターフェイスを踏襲しています。一部は固定電話のインターフェイスですが。ここでも結局は既存のインターフェイスを変革させることはできませんでした。インターフェイスは習得することに抵抗が大きいのです。&lt;/p&gt;&lt;p&gt;しかし習慣化されたインターフェイス利用への前に存在した学習期間がどのインターフェイスにも必要なことに留意してもらえば、対等にそれぞれのインターフェイスを考えることができます。またそのあとの利点については、なるべく伏せておきます。この点に関しては、趣味の話なので、個人の信条が至上です。ただここで考えるのは、優れたインターフェイスを追求するという試みです。&lt;/p&gt;&lt;p&gt;携帯電話に話を特殊化します。このときに入力インターフェイスが固定電話と同じであることは至極もっともです。iPhoneのPCキーボード踏襲は完全にMailやBrowseでの使用が前提です。この基盤の違いがインターフェイスを決定しています。日本の携帯はi-modeなどのネット利用のBrowseを普及させる戦略をとりましたが、結局インターフェイスは電話のままでした。私はこれは使いにくいと思います。もともと意図されていないインターフェイスを使わされているので、不便であるはずなのです。しかし現在この入力系は基本です。これを強制する理由は電話利用におけるキープッシュです。あとは携帯のための小型化のためにインターフェイスに課せられる制約は大きいものであったと思います。&lt;/p&gt;&lt;p&gt;そしてiPhoneでBrowseにはなじみのQWERTYを持ってきましたが、今度はそれを使うBrowserが携帯での利用を本気で考えてはいなかったことですかね。あんな小さい画面でPC並みの情報を得ることには無理があります。すべての機能が統合されていません。ちぐはぐな感じがします。このことにもきっとDesignerは気付いていると思います。&lt;/p&gt;&lt;p&gt;携帯自体が個人間のインターフェイスとして機能しています。電話、メール、ブラウズの機能を凝縮したインターフェイス端末です。電話とメール・ブラウズには使う感覚に違いがあります。電話は音声、メールなどは文字です。携帯の役割が次第にメールなどの文字系統に変わっていくのならば、インターフェイスがキーボード配列になっていくのは、自然であると思います。しかし携帯端末にPCのキーボードのような役割をもたせつつ、PCとは異なるインターフェイスの開発が求められます。今度は空間的な制約がインターフェイスに制限を課すのです。&lt;/p&gt;&lt;p&gt;そのなかで私はiPhoneのタッチしているとスライドする入力方式はとてもスマートであると思います。ただし入力精度にまだ問題が残っているのですが、あの考え方は素敵です。ですが、完全なブレイクスルーにはいたらないと思います。あれでもまだ入力しにくいのです。ただタッチスクリーンによる入力インターフェイスは、レイアウトが自由ですし、開発の制約が少ないので、さまざまインターフェイスがうまれてくることを期待します。&lt;/p&gt;&lt;p&gt;このときに、私が重要だと考えるのは、２つです。&lt;/p&gt;&lt;ol&gt;&lt;li&gt;片手で入力が完結すること。（基本的に携帯は片手で使用）&lt;/li&gt;&lt;li&gt;1.７５ステップで入力できること。（めんどくさいのいまいち）&lt;/li&gt;&lt;li&gt;できればさらにコンパクトにおさまること（画面的な制約）&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;習得のしやすさは根本的な問題ではなくて、とっつきやすさでしかないのです。&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322506539470265225-4016475539288468293?l=i-learn-try-error-and-try.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://i-learn-try-error-and-try.blogspot.com/feeds/4016475539288468293/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_12.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4016475539288468293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322506539470265225/posts/default/4016475539288468293'/><link rel='alternate' type='text/html' href='http://i-learn-try-error-and-try.blogspot.com/2009/07/blog-post_12.html' title='理想的なキーボード配列'/><author><name>Juda</name><uri>http://www.blogger.com/profile/07213016961937004932</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
