<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>その他</title><link>http://blogs.wankuma.com/trapemiya/category/373.aspx</link><description>その他</description><managingEditor>trapemiya &lt;miya.hideki@nifty.com&gt;</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>C#たん</title><link>http://blogs.wankuma.com/trapemiya/archive/2009/08/31/180696.aspx</link><pubDate>Mon, 31 Aug 2009 15:53:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2009/08/31/180696.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/180696.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2009/08/31/180696.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/180696.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/180696.aspx</trackback:ping><description>&lt;P&gt;C#たん&lt;BR&gt;&lt;A href="http://ufcpp.spaces.live.com/blog/cns!5C622397E11C979D!464.entry?wa=wsignin1.0&amp;amp;sa=872533245"&gt;http://ufcpp.spaces.live.com/blog/cns!5C622397E11C979D!464.entry?wa=wsignin1.0&amp;amp;sa=872533245&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;GJ!&amp;nbsp;&amp;nbsp; やっぱ下はサイハイですよね？ｗ&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/180696.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>正規表現における空文字は特別扱いだ。</title><link>http://blogs.wankuma.com/trapemiya/archive/2009/04/24/172040.aspx</link><pubDate>Fri, 24 Apr 2009 16:39:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2009/04/24/172040.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/172040.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2009/04/24/172040.aspx#Feedback</comments><slash:comments>41</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/172040.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/172040.aspx</trackback:ping><description>&lt;P&gt;正規表現において、空文字はどうやら特別扱いされています。&lt;BR&gt;例によって調査結果を元に動作を推測していますので、誤りがあればご指摘下さい。m(_ _)m&lt;/P&gt;
&lt;P&gt;abc&lt;BR&gt;に対して&lt;BR&gt;.*&lt;BR&gt;とすると何がマッチするだろうか？&lt;/P&gt;
&lt;P&gt;答えはabcと空文字です。なぜ空文字がマッチするのだろうか？&lt;BR&gt;実験すると、&lt;BR&gt;^.*&lt;BR&gt;だとabcにしかマッチしない。&lt;BR&gt;.*$&lt;BR&gt;だとabcと空文字にマッチする。ということは空文字が$の直前にあるようだ。&lt;/P&gt;
&lt;P&gt;調査・・・調査・・・調査・・・&lt;/P&gt;
&lt;P&gt;どうやら正規表現上、abcというのは以下のように考えられるとのことだ。&lt;/P&gt;
&lt;P&gt;行頭　空文字　a　空文字　b　空文字　c　空文字　行末&lt;/P&gt;
&lt;P&gt;要するに間に全部空文字が入っているわけだ。&lt;/P&gt;
&lt;P&gt;.*はできるだけ長い文字列にマッチするから、&lt;BR&gt;空文字　a　空文字　b　空文字　c　空文字&lt;BR&gt;にマッチしている。つまり、abcだ。次に残ったのは行末だ。この検査対象の行末の前にも空文字があると考え、実際には、空文字＋行末に対してマッチングを行うことになる。この結果、.*は.の０回繰り返しとなり、空文字がマッチする。マッチを２回にわけて考えれば、&lt;/P&gt;
&lt;P&gt;行頭　空文字　a　空文字　b　空文字　c　空文字&lt;/P&gt;
&lt;P&gt;でマッチ、&lt;/P&gt;
&lt;P&gt;空文字　行末&lt;/P&gt;
&lt;P&gt;でマッチとなったわけだ。上記だと&lt;/P&gt;
&lt;P&gt;行頭　空文字　a　空文字　b　空文字　c　空文字　空文字　行末&lt;/P&gt;
&lt;P&gt;と行末に空文字が２つ続くイメージになるが、空文字は元々存在せず、検査する際には常に存在すると考えるのであろう。それに空文字なのでいくつあっても空文字一つと同じである。というより何個という概念がない。（虚数のような感じか？）&lt;BR&gt;&lt;BR&gt;以上のように考えると、^.*が空文字にマッチしなくて、.*$がマッチするのも説明が付く。&lt;/P&gt;
&lt;P&gt;では、&lt;BR&gt;abc&lt;BR&gt;に対して&lt;BR&gt;b*&lt;BR&gt;とすると何がマッチするだろうか？&lt;/P&gt;
&lt;P&gt;答えは、空文字、b、空文字、空文字である。&lt;BR&gt;動作的にはたぶんこうだ。&lt;BR&gt;行頭の次の空文字はbの０回の繰り返してでマッチ。・・・(1)&lt;BR&gt;次のaはマッチしようがないのでスキップ。&lt;BR&gt;次の「空文字　b　空文字」はbと考えられるのでbの１回の繰り返しでマッチ。・・・(2)&lt;BR&gt;残りは「空文字　c　空文字　行末」。&lt;BR&gt;よってcの前の空文字がマッチ。・・・(3)&lt;BR&gt;cはマッチしないのでスキップ。&lt;BR&gt;残りの「空文字　行末」で空文字がマッチ・・・(4)&lt;/P&gt;
&lt;P&gt;以上より、空文字、b、空文字、空文字がマッチすることになる。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;＃以上のこと合ってる？　＞みなさん。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/172040.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>正規表現の先読みについて自分なりにまとめてみました。</title><link>http://blogs.wankuma.com/trapemiya/archive/2009/04/22/171899.aspx</link><pubDate>Wed, 22 Apr 2009 13:39:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2009/04/22/171899.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/171899.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2009/04/22/171899.aspx#Feedback</comments><slash:comments>84</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/171899.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/171899.aspx</trackback:ping><description>&lt;P&gt;正規表現を使って、ある文字列にいくつかの特定の文字列が含まれているかを調べる &lt;BR&gt;&lt;A href="http://blogs.wankuma.com/trapemiya/archive/2009/04/18/171635.aspx"&gt;http://blogs.wankuma.com/trapemiya/archive/2009/04/18/171635.aspx&lt;/A&gt; 
&lt;P&gt;にコメントをいただいて、正規表現の先読みに関して理解が足りていないと痛感しましたので、自分なりに調査してまとめてみました。間違ってるというご指摘があれば是非コメントを下さい。よろしくお願いします。 
&lt;P&gt;「謎は全て解けた！」と、金田一少年のように言い切れればいいんですけど・・・ 。でも自分ではほぼ満足いくレベルに達したんで公開してみました。添削してもらいたいということもありますがｗ 
&lt;P&gt;では、解説を始めます。 
&lt;P&gt;
&lt;P&gt;以下の検査対象の文字列があるとします。 
&lt;P&gt;abuser unknown? bbbbb unknown user1aaaaaa No such user here a 
&lt;P&gt;この時、「user unknown」、「unknown user」、「No such user here」の３つの文字列全てを含むかどうかを検査する正規表現は以下のように書けます。（ただしベストな書き方ではありません。より良い書き方は後述します。） 
&lt;P&gt;(?=.*user unknown)(?=.*unknown user)(?=.*No such user here) 
&lt;P&gt;ここで(?=)は先読みと呼ばれるものです。いきなりですが先読みという訳は誤解を招きやすく、訳としては適当ではないと思います。英語ではlookaheadやlook-aheadやlook aheadと書かれます。直訳すれば「先を見ろ」ということになります。つまり先は前後の前という意味の先です。先読みとは前方を読みなさいということです。順序的に先に読むということではありません。&lt;BR&gt;（＃日本語訳だとわかりにくい場合があるので、その場合には英語の原文で確認されることをお勧めします。これは一般的に言えることです。） 
&lt;P&gt;さて、意味がわかったところで先読みの動作を見てみましょう。先読みは、マッチした部分があるとその直前にポインタを置きます。例えば、abcdefという文字列に対する(?=cd)はcdの部分にマッチし、ポインタはbとcの間に置かれます。従って、bcdeにマッチさせるにはb(?=cd)cdeとなります。このように先読みはマッチした部分をマッチの対象として記憶しません。これをキャプチャしないとも言います。言いかればキャプチャした文字列長が０ということであり、幅０とも言われます。 
&lt;P&gt;上記のことは次のように言うこともできます。&lt;BR&gt;abcdefという文字列に対してcdという正規表現があった場合、abcdefのcdの部分にマッチし、次の検査開始のポインタはそのマッチした部分の直後に置かれます。したがって例えばbcdeにマッチさせる正規表現はb(cd)eになります。もちろんbcdeと書いてもかまいません。一方、先読みは幅０ですので、このポインタが移動しないということなのです。したがって前述した通り、先読みでは同じ正規表現を b(?=cd)cdeと書く必要があります。lookaheadですので、その場に留まって前方を見ろということなのですしょう。 
&lt;P&gt;ところで、最初に書いたように先読みを連続で書いた場合はどうなるでしょうか？　この場合は、全ての先読みについて、それぞれが一致した位置が全て合致している場合にマッチしたということになります。&lt;BR&gt;つまり、&lt;BR&gt;(?=.*user unknown)(?=.*unknown user)(?=.*No such user here) &lt;BR&gt;に関して言えば、３つの先読みがそれぞれ一致した位置の全てが合致している場合にマッチしたということになります。&lt;BR&gt;上のことは論理積ですので、３つの先読みをどのような順序で記述しても良いということになります。 
&lt;P&gt;ではここで問題です。&lt;BR&gt;以下の検査対象の文字列があるとします。 
&lt;P&gt;abcdefg 
&lt;P&gt;(?=.*cd)(?=bc)はマッチするでしょうか？&lt;BR&gt;(?=.*cd)(?=de)はマッチするでしょうか？ 
&lt;P&gt;答えは(?=.*cd)(?=bc)はマッチしますが、(?=.*cd)(?=de)はマッチしません。&lt;BR&gt;なぜなら(?=.*cd)が一致する位置は先頭からcdの直前までですから、先頭、aとbの間、bとcの間の三ヵ所あります。(?=bc)はaとbの間のみ、(?=de)はcとdの間のみになります。&lt;BR&gt;したがって(?=.*cd)(?=bc)はaとbの間が合致しますからマッチしますが、(?=.*cd)(?=de)は合致する位置がないためマッチしないということになります。&lt;BR&gt;同様に考えると、&lt;BR&gt;(?=.*user unknown)(?=.*unknown user)(?=.*No such user here) &lt;BR&gt;も比較する位置がたくさんあって効率悪そうです。上記の３つの先読みはいずれも.*を含むため、先読みが一致すれば一致する位置に必ず先頭が含まれるということです。そこで先頭の位置だけ比較すれば済むように、マッチ条件に先頭の位置を追加しましょう。先頭の位置は^で表します。位置情報なので^も幅０です。&lt;BR&gt;^&lt;BR&gt;(?=.*user unknown)&lt;BR&gt;(?=.*unknown user)&lt;BR&gt;(?=.*No such user here)&lt;BR&gt;の４つの位置の論理積になりますから、 
&lt;P&gt;^(?=.*user unknown)(?=.*unknown user)(?=.*No such user here) 
&lt;P&gt;のように書くことができます。４つの論理積なので、ちょっとびっくりされるかもしれませんが、&lt;BR&gt;(?=.*user unknown)^(?=.*unknown user)(?=.*No such user here) &lt;BR&gt;や&lt;BR&gt;(?=.*user unknown)(?=.*unknown user)(?=.*No such user here)^&lt;BR&gt;でもいいんです。&lt;BR&gt;&lt;BR&gt;これで４つの先頭の位置が合致したらマッチしたと条件を絞ることができます。&lt;BR&gt;&lt;BR&gt;ちなみに(?=.*user unknown）の合致する位置は複数あり得ますが、その場合でもポインタは先頭に置かれます。したがって、以下のような先読みである&lt;BR&gt;(?=.*user unknown).*&lt;BR&gt;にマッチした場合、マッチする文字列は検索対象文字列全体になります。 &lt;/P&gt;
&lt;P&gt;さて、次に先読みについてもう少し解説します。論理積なので、そのうちの一つである(?=.*user unknown)の動作について説明すれば十分でしょう。なぜなら他の２つもこれと同様の動作になるだけだからです。&lt;BR&gt;では、以下のように先読みが含まれる場合のキャプチャされる文字列について考えてみます。 
&lt;P&gt;^.*(?=.*user unknown) 
&lt;P&gt;検索対象は既出と同じく&lt;BR&gt;abuser unknown? bbbbb unknown user1aaaaaa No such user here a&lt;BR&gt;です。 
&lt;P&gt;先読みで.*user unknownがマッチするところを調べます。とりあえず一致するところが見つかりました。abuser unknownの部分ですね。次に.*について調べます。.*はマッチする最長に一致しようとします。そうすると、先読みの条件を満たす.*の最長はabになります。(?=.*user unknown)は幅0なので、結局この正規表現でキャプチャされたフレーズはab + 幅0 = abということになります。&lt;BR&gt;先読みはバックトラックしないため、つまり複数マッチする部分を見つけようとしないため、正規表現にマッチした部分は一箇所であり、グループ化もされていないのでキャプチャされた部分も一箇所になりますが、通常の正規表現ですとマッチする部分が複数、それぞれのマッチした部分でのキャプチャも複数ということもあり得ます。 
&lt;P&gt;上記を理解されれば、&lt;BR&gt;^(?=.*unknown user)や&lt;BR&gt;(?=.*user unknown)や&lt;BR&gt;^&lt;BR&gt;のキャプチャが空白になることは明らかでしょう。^も(?=.*unknown user)などの位置情報は幅０だからです。&lt;BR&gt;^.(?=.*user unknown)&lt;BR&gt;のキャプチャがaになるのも明白ですね。 
&lt;P&gt;では、&lt;BR&gt;^.*(?=.*user unknown).&lt;BR&gt;はどうなるでしょうか？（判りにくいですが文末にピリオドがあります）&lt;BR&gt;ab + 幅0　までは良いでしょう。この時、abuser unknownにマッチしていますが、先読み部分はポインタが動きませんから、ポインタはabの後にあることになります。&lt;BR&gt;したがって、.はuになり、abuがキャプチャされることになります。ちなみにマッチしている部分はabuser unknown? bbbbb unknown userです。 
&lt;P&gt;^.*(?=.*unknown XXXuser).&lt;BR&gt;としたら、userの前にXXXが付いているため先読み部分がマッチしませんから、正規表現全体としてもマッチしません。したがって何もキャプチャされません。 
&lt;P&gt;^.*(?=.*user unknown).*&lt;BR&gt;はもう簡単ですね。検索対象全てになります。ab以下.*ですから、一致する最長の部分となり、すなわちキャプチャは検索対象全てということになります。ちなみに&lt;BR&gt;^(?=.*user unknown).*や&lt;BR&gt;^(?=.*user unknown).*$も&lt;BR&gt;同様の理由で、キャプチャは検索対象全てになります。 
&lt;P&gt;以上のように、マッチするかどうかと何がキャプチャされるかとは別物なのでご注意下さい。すなわち、最初に書いた３つの検索フレーズ全てが含まれるかどうかは以下のように書いてもＯＫです。 ただし冗長になります。 
&lt;P&gt;^.*(?=.*user unknown)(?=.*unknown user)(?=.*No such user here).*$&lt;BR&gt;や&lt;BR&gt;^(?=.*user unknown)(?=.*unknown user)(?=.*No such user here).*$ 
&lt;P&gt;問題とすべきは、３つの先読みがそれぞれマッチした位置が３つとも合致するかどうかなのです。そういう意味で後ろにある.*や.*$は何の意味もありません。 
&lt;P&gt;上記の動作は、Regexクラスから得られるMatchオブジェクトやCaptureコレクションなどで調査しました。 
&lt;P&gt;
&lt;P&gt;（参考文献） 順不同 
&lt;P&gt;▼正規表現の問題集1（基本編） &lt;BR&gt;&lt;A href="http://codezine.jp/article/detail/1573"&gt;http://codezine.jp/article/detail/1573&lt;/A&gt; 
&lt;P&gt;▼■[ruby]正規表現の先読みについて解説してみる&lt;BR&gt;&lt;A href="http://d.hatena.ne.jp/rubikitch/20080622/1214080482"&gt;http://d.hatena.ne.jp/rubikitch/20080622/1214080482&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;▼標準添付ライブラリ紹介 【第 12 回】 正規表現 (1)&lt;BR&gt;&lt;A href="http://jp.rubyist.net/magazine/?0019-BundledLibraries"&gt;http://jp.rubyist.net/magazine/?0019-BundledLibraries&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;▼正規表現&lt;BR&gt;&lt;A href="http://lukewarm.s101.xrea.com/RegEx.html"&gt;http://lukewarm.s101.xrea.com/RegEx.html&lt;/A&gt; 
&lt;P&gt;▼正規表現（先読み）&lt;BR&gt;&lt;A href="http://blatoma.blog10.fc2.com/blog-entry-7.html"&gt;http://blatoma.blog10.fc2.com/blog-entry-7.html&lt;/A&gt; 
&lt;P&gt;▼先読み（lookahead）&lt;BR&gt;&lt;A href="http://www4.ocn.ne.jp/~kaerume/k2e/regex_3.html"&gt;http://www4.ocn.ne.jp/~kaerume/k2e/regex_3.html&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/171899.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>期間限定★ＭＣＰ受験料１０％オフ！！今ならお安く受験できます。</title><link>http://blogs.wankuma.com/trapemiya/archive/2009/03/03/169116.aspx</link><pubDate>Tue, 03 Mar 2009 15:01:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2009/03/03/169116.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/169116.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2009/03/03/169116.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/169116.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/169116.aspx</trackback:ping><description>&lt;P&gt;なにやらタイトルがオークションっぽくなっていますが、今、ＭＶＰヒーローキャンペーンというのをやっていまして、各ＭＶＰが取得したプロモーションコードを利用するとＭＣＰ受験料が１０％オフになります。しかも、例え不合格でも、なんと同一試験なら２度目まで無料で受験できるというおまけ付です。ただし期限がありまして、２度目目の受験を含め２００９年５月３１日までに試験を受ける必要があります。詳しくは以下をご覧下さい。&lt;/P&gt;
&lt;P&gt;マクロソフトＭＣＰ資格&lt;BR&gt;&lt;A href="http://www.learnandcertify.com/ja/"&gt;http://www.learnandcertify.com/ja/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;１０％オフで受験するには、上のＷｅｂページにある「割引バウチャーコード無料登録はこちら」をクリックし、まず割引バウチャーコードを取得して下さい。割引バウチャーコードを取得するにはＭＶＰプロモーションコードが必要になります。私のコードは、&lt;BR&gt;&lt;STRONG&gt;JP128D1C&lt;/STRONG&gt; &lt;BR&gt;になります。もちろん、ご自由にお使い下さい。というかこのコードを使っていただくと私に特典があるようなのですｗｗｗ&lt;BR&gt;&lt;BR&gt;ちなみに割引バウチャーコードに関しては以下に詳しく載っています。&lt;/P&gt;
&lt;P&gt;キャンペーン利用規約&lt;BR&gt;&lt;A href="http://learnandcertify.com/ja/Terms.aspx"&gt;http://learnandcertify.com/ja/Terms.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Good Luck!!&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/169116.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>MSDNフォーラムのopml作成しました。（ただし癖あり）</title><link>http://blogs.wankuma.com/trapemiya/archive/2009/01/30/167155.aspx</link><pubDate>Fri, 30 Jan 2009 11:50:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2009/01/30/167155.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/167155.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2009/01/30/167155.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/167155.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/167155.aspx</trackback:ping><description>&lt;P&gt;MSDNフォーラムのopmlを作成しました。あくまで自分用に作成しましたので癖がありますが、もしよろしければご活用下さい。&lt;/P&gt;
&lt;P&gt;RssBanditはフィードがアルファベット順に並んでしまいますので、頭に番号を付けています。また、カテゴリの名前も若干変えています。&lt;/P&gt;
&lt;P&gt;あと、Visual Studio 2008 ベータフォーラムのRSSは既に公開中止になっているようなので含めていません。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://trapemiya.wankuma.com/images/blog/MSDNopml_A247/rssbandit_msdnforum_W.jpg"&gt;&lt;IMG title=フィード内容 style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=523 alt=フィード内容 src="http://trapemiya.wankuma.com/images/blog/MSDNopml_A247/rssbandit_msdnforum_W_thumb.jpg" width=454 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;こちらからどうぞ。　&lt;A href="http://trapemiya.wankuma.com/opml/MSDNForum20090130.zip"&gt;ＭＳＤＮフォーラムＯＰＭL（MSDNForum20090130.zip）&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;＃なんか余計なForum (recnt threads)とか付いていたので、それをカットした版も作りました。&lt;/P&gt;
&lt;P&gt;&lt;IMG title=フィード内容 style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=572 alt=フィード内容 src="http://trapemiya.wankuma.com/images/blog/MSDNopml_A247/rssbandit_msdnforum_1w.jpg" width=317 border=0&gt;&lt;/P&gt;
&lt;P&gt;こちらからどうぞ。　&lt;A href="http://trapemiya.wankuma.com/opml/MSDNForum20090130_1.zip"&gt;ＭＳＤＮフォーラムＯＰＭL（MSDNForum20090130_1.zip）&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/167155.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>ＭＳＤＮフォーラムがリニューアルしましたね。</title><link>http://blogs.wankuma.com/trapemiya/archive/2009/01/29/167119.aspx</link><pubDate>Thu, 29 Jan 2009 17:00:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2009/01/29/167119.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/167119.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2009/01/29/167119.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/167119.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/167119.aspx</trackback:ping><description>&lt;p&gt;昨日からＭＳＤＮフォーラムがリニューアルしましたね。昨日の昼間はまだリニューアルしていなかったのですが、夜になってお家で覗いてい見るとリニューアルしていました。その後、結構格闘していますが、慣れないせいか大変です。(^^;&lt;/p&gt; &lt;p&gt;私としては、GDNJメーリングリスト、GDNJのフォーラム、旧ＭＳＤＮフォーラム、そして今回のＭＳＤＮフォーラム（バージョン３らしい）と４回目のリニューアルを経験しているわけですが、機能的には格段に良くなって来ています。コードに色が付くようになったのと、引用した際に引用元のスレッド全体がスクローラブルで上の画面に表示されるのは気に入っています。ただ、最新の投稿のタイトルが各フォーラムに表示されなくなったのは痛いですね。しかし、これも慣れの問題かもしれません。RSSやLive Alertを使ってもう少し使い込んでみます。&lt;/p&gt; &lt;p&gt;その他、いくつか気が付くことがありますが、やはり、もう少し使い込んでから要望があれば要望を出したいと思います。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/167119.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>SyntaxHighlighter for Windows Live Writerのテスト用エントリー</title><link>http://blogs.wankuma.com/trapemiya/archive/2009/01/22/166607.aspx</link><pubDate>Thu, 22 Jan 2009 17:20:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2009/01/22/166607.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/166607.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2009/01/22/166607.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/166607.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/166607.aspx</trackback:ping><description>&lt;P&gt;test&lt;/P&gt;
&lt;DIV class=wlWriterEditableSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8801bd17-cd78-47fa-9b17-a55e0fbe981a style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;PRE class=c# name="code"&gt;protected override void Dispose(bool disposing)
{
 if (disposing &amp;amp;&amp;amp; (components != null))
 {
  components.Dispose();
 }
 base.Dispose(disposing);
}&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=postText&gt;＃Windows Live Writer上では色が付いてるんですがなぜか付かないので、ちょっと調整のためにテストで上げときます。ただ、Windows Live Writer上でもxmlだけは色がなぜか付かない・・・。&lt;/DIV&gt;
&lt;DIV class=postText&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class=postText&gt;＃（追記）T.Hirase さんのおかげで色が付くようになりました。スペシャルサンクスです。&lt;/DIV&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/166607.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>マイクロソフト テック フィールダーズが結成されたんですね。</title><link>http://blogs.wankuma.com/trapemiya/archive/2008/09/09/155935.aspx</link><pubDate>Tue, 09 Sep 2008 10:28:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2008/09/09/155935.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/155935.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2008/09/09/155935.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/155935.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/155935.aspx</trackback:ping><description>&lt;P&gt;MSDN Flashから引用します。&lt;/P&gt;
&lt;P&gt;「まずは、マイクロソフトのエバンジェリスト 9 名が、エバンジェリストの活動報告や、コラムの執筆を通じて活動を開始します。&lt;BR&gt;エバンジェリストは、それぞれにブログでの情報発信をしていますが、このサイトでは、ブログで執筆した内容を整理したものや、マイクロソフトの製品や技術に IT エンジニアとしてのエバンジェリストの視点も加え、より現場に近い形のコラムを充実させていきます。」&lt;/P&gt;
&lt;P&gt;マイクロソフト テック フィールダーズ&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/powerpro/TF/default.mspx"&gt;http://www.microsoft.com/japan/powerpro/TF/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;コラムは読みやすくて良い感じですね。個人的には「SharePoint で行う「製品開発」シリーズ」が楽しみです。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/155935.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>クリスタルレポートのグローバル変数は衝突してもエラーが出ない。</title><link>http://blogs.wankuma.com/trapemiya/archive/2008/08/21/153878.aspx</link><pubDate>Thu, 21 Aug 2008 19:09:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2008/08/21/153878.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/153878.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2008/08/21/153878.aspx#Feedback</comments><slash:comments>351</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/153878.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/153878.aspx</trackback:ping><description>&lt;P&gt;久々にクリスタルレポートを作成したら見事にハマりました。&lt;BR&gt;クリスタルレポートのクリスタル構文におけるグローバル変数は、例えば以下のように書けます。&lt;BR&gt;&lt;BR&gt;Global numberVar rowcount&lt;BR&gt;&lt;BR&gt;デフォルトがグローバルなので、&lt;BR&gt;&lt;BR&gt;numberVar rowcount&lt;BR&gt;&lt;BR&gt;でも同じです。&lt;/P&gt;
&lt;P&gt;問題はこのrowcountを複数の箇所で宣言してもエラーになりません。したがって、rowcountを複数で宣言していることに気付かないと、おかしな動作にぶちあたることになります。例えば、&lt;/P&gt;
&lt;P&gt;rowcount := rowcount + 1&lt;/P&gt;
&lt;P&gt;と書いて、レコードが読まれる度に１づつインクリメントされることを期待します。ところが他の場所でも同じrowcountを宣言して同じ処理をしている場合、rowcountは２づつインクリメントされることになります。これは、随分前に作成したレポートを久しぶりに改修するような場合に起こりやすいでしょう。&lt;/P&gt;
&lt;P&gt;こういう例はまだわかりやすいのですが、もっと複雑なロジックだとこの現象の原因に気付くのに時間がかかります。&lt;BR&gt;そういうわけでハマりました。２時間も・・・&lt;BR&gt;なでしこジャパンが銅メダルをかけて闘っているというに、ふたたびこんな時間を浪費しないようにブログに戒めとして残しておきます。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/153878.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>trapemiya &lt;miya.hideki@nifty.com&gt;</dc:creator><title>セーコかセイコか？</title><link>http://blogs.wankuma.com/trapemiya/archive/2008/04/24/135011.aspx</link><pubDate>Thu, 24 Apr 2008 13:48:00 GMT</pubDate><guid>http://blogs.wankuma.com/trapemiya/archive/2008/04/24/135011.aspx</guid><wfw:comment>http://blogs.wankuma.com/trapemiya/comments/135011.aspx</wfw:comment><comments>http://blogs.wankuma.com/trapemiya/archive/2008/04/24/135011.aspx#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://blogs.wankuma.com/trapemiya/comments/commentRss/135011.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/trapemiya/services/trackbacks/135011.aspx</trackback:ping><description>&lt;P&gt;「サーバ」と「サーバー」、Microsoft流の表記はどっち？&lt;BR&gt;&lt;A href="http://codezine.jp/a/article/aid/2460.aspx"&gt;http://codezine.jp/a/article/aid/2460.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;いつも悩んでいるんだが、最近はサーバーと書くことの方が多い。だって、そう発音するんですもの。でも、サーバの方がかっこいい。ある種の２ちゃんのような表現なのか？&lt;/P&gt;
&lt;P&gt;だいぶ前にＣＤ検索システムの設計をしたことがある。例えば松田聖子。マツダセイコと書くが、マツダセーコとはあまり書かない。でも、発音はセーコが一般的だと思う。今ならどっちもヒットさせることは無理な相談ではないが、当時はそうもいかなかった。だからアーティストの登録は書き言葉で行うというルールを作らざるを得なかった。だから、読みはセイコで登録した。&lt;BR&gt;日本語には書き言葉と読み言葉というゆらぎがあることを思い出した。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/trapemiya/aggbug/135011.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>