<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel rdf:about="http://nest.sakeblog.net/RSS/100/">
    <title>NEST</title>
    <link>http://nest.sakeblog.net/</link>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://nest.sakeblog.net/RSS/" />
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
    <description>natsuの秘密基地です</description>
    <dc:language>ja</dc:language>
    <dc:date>2010-06-21T14:46:11+09:00</dc:date>
    <items>
    <rdf:Seq>
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E5%B0%8F%E3%83%8D%E3%82%BF/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E3%83%91%E3%82%B9" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/cocoa/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/stringwithcstring" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/rangeofstring-options" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/retain" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/%E3%83%AD%E3%83%83%E3%82%AF" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/-synchronized" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/%E5%85%A5%E3%82%8A%E4%B9%B1%E3%82%8C%E3%82%8B%EF%BC%93%E3%81%A4%E3%81%AE%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/iso-2022-jp" />
      <rdf:li rdf:resource="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/4000--4dbf" />
    </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="http://nest.sakeblog.net/%E5%B0%8F%E3%83%8D%E3%82%BF/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E3%83%91%E3%82%B9">
    <link>http://nest.sakeblog.net/%E5%B0%8F%E3%83%8D%E3%82%BF/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E3%83%91%E3%82%B9</link>
    <title>ホームディレクトリのパス</title>
    <description>ターミナルというかコンソールというか。
unixファミリーのOSだと、
cd ~
とか、
ls ~
ってやると、
ホームディレクトリになんかかんか出来るのだと思う。
&amp;amp;nbsp;
まあ、linuxとOS Xしかお知り合いじゃないんだけど。
&amp;amp;nbsp;
&amp;amp;nbsp;
&amp;amp;nbsp...</description>
    <content:encoded><![CDATA[ターミナルというかコンソールというか。<br />
<meta charset="utf-8" />unixファミリーのOSだと、<br />
cd ~<br />
<div>とか、<br />
ls ~<br />
ってやると、</div>
<div>ホームディレクトリになんかかんか出来るのだと思う。</div>
<div>&nbsp;</div>
<div>まあ、linuxとOS Xしかお知り合いじゃないんだけど。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>cocoaなことをしているときに</div>
<div>これを応用出来ないかと思った。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>要するに</div>
<div>NSString* home = [@&quot;~&quot; stringByExpandingTildeInPath];</div>
<div>みたいな。</div>
<div><span class="Apple-tab-span" style="white-space:pre">			</span></div>
<div><span class="Apple-tab-span" style="white-space:pre"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">			</span></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>久しぶりに書いたと思えばなんと短い。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>小ネタ</dc:subject>
    <dc:date>2010-06-21T14:44:14+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/cocoa/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA">
    <link>http://nest.sakeblog.net/cocoa/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA</link>
    <title>ファイルのサイズ</title>
    <description>あるディレクトリの奥の奥の奥にある。
そんなファイルをロードしたい。
初夏の夜。
&amp;amp;nbsp;
ファイルサイズを取得して、
そのぶんだけメモリを確保。
んで、そこにむいてファイルから、
リードリードリード。
&amp;amp;nbsp;
&amp;amp;nbsp;
オーバーフロー！！
&amp;amp;nbsp;

...</description>
    <content:encoded><![CDATA[<div>あるディレクトリの奥の奥の奥にある。</div>
<div>そんなファイルをロードしたい。</div>
<div>初夏の夜。</div>
<div>&nbsp;</div>
<div>ファイルサイズを取得して、</div>
<div>そのぶんだけメモリを確保。</div>
<div>んで、そこにむいてファイルから、</div>
<div>リードリードリード。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>オーバーフロー！！</div>
<div>&nbsp;</div>
<div><br />
<br />
ん？なんでだろ。</div>
<div>&nbsp;</div>
<div>処理を極限まで減らす。</div>
<div>ファイルから読み込みを無くした時点で、</div>
<div>エラーは出なくなる。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>読み込みがやっぱ悪い。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>んー。ファイルサイズで取得した分しか、</div>
<div>ファイルのサイズはないわけなんで、</div>
<div>教えてもらったファイルサイズだけメモリを確保すればいいはず。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>ちなみにファイルサイズを知る方法。</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>NSDictionary *result = [manager attributesOfItemAtPath:path error:&amp;error];</div>
<div>で得たDictionaryにはfileSizeってイベントを送ってもいいらしいんですな。</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>unsigned long long resultSize = [result fileSize];</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>さて。エラーのおこるやつ。</div>
<div>ファイルサイズなんぼじゃ。</div>
<div>&nbsp;</div>
<div>/Users/dev/Documents/backup/dmGet/build/Debug/dmGet.app/Contents/Plugins/ITunesCommunication.plugin/Contents/Resources/lib/python2.6/site.py</div>
<div>&nbsp;</div>
<div>こんなおくのおくのおくにあるファイル。<br />
枠からはみ出ているだろうが気にしない。</div>
<div>サイズは13。</div>
<div>&nbsp;</div>
<div>そんなばかな。</div>
<div>site.py書いたの私だけど、13文字で書いた覚えは無い。</div>
<div>&nbsp;</div>
<div>Finderで調べると、3042。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>おっとー？</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>ファイルサイズの別の求め方として、</div>
<div>cの標準関数が使えるのならば。</div>
<div>前にlinuxでなんかを書いたとき、</div>
<div>statとかを使った気がする。</div>
<div>&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>struct stat buf; &nbsp; &nbsp;/* ファイル情報の格納領域 */</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>size_t debug = 0;</div>
<div>&nbsp;&nbsp; &nbsp;if ((stat([path UTF8String], &amp;buf)) == 0) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>debug = buf.st_size;</div>
<div>&nbsp;&nbsp; &nbsp;}</div>
<div>&nbsp;</div>
<div>まあ、ちょいとこんな感じで。</div>
<div>で、どうなったかというと、</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>＊attributesOfItemAtPath:error:の結果＊</div>
<div>2010-06-12 23:12:57.672 crepe[44602:903] image:14df5b30 size:13 pt+n:14df5c30 name:/Users/dev/Documents/backup/dmGet/build/Debug/dmGet.app/Contents/Plugins/ITunesCommunication.plugin/Contents/Resources/lib/python2.6/site.py</div>
<div>Current language: &nbsp;auto; currently objective-c</div>
<div>&nbsp;</div>
<div>&ldquo;result&rdquo;の説明を出力中：</div>
<div>{</div>
<div>&nbsp;&nbsp; &nbsp;NSFileCreationDate = &quot;2010-05-01 21:15:52 +0900&quot;;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileExtensionHidden = 0;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileGroupOwnerAccountID = 20;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileGroupOwnerAccountName = staff;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileHFSCreatorCode = 1919443312;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileHFSTypeCode = 1936485995;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileModificationDate = &quot;2010-05-01 21:15:52 +0900&quot;;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileOwnerAccountID = 503;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileOwnerAccountName = dev;</div>
<div>&nbsp;&nbsp; &nbsp;NSFilePosixPermissions = 493;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileReferenceCount = 1;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileSize = 13;&larr;＊＊＊ここ＊＊＊</div>
<div>&nbsp;&nbsp; &nbsp;NSFileSystemFileNumber = 2854447;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileSystemNumber = 234881026;</div>
<div>&nbsp;&nbsp; &nbsp;NSFileType = NSFileTypeSymbolicLink;</div>
<div>}</div>
<div>&nbsp;</div>
<div>うそつき。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>＊statの結果＊</div>
<div>デバッガで見た。</div>
<div>debugの値は3042。</div>
<div><br />
正解。そのとおり。</div>
<div><br />
<br />
&nbsp;</div>
<div>&nbsp;</div>
<div>なんなんかなぁ。</div>
<div>わたし、なんかしたっけかなぁ。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>とりあえず、statで問題をよけるぞ。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>Cocoa</dc:subject>
    <dc:date>2010-06-12T23:46:09+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/stringwithcstring">
    <link>http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/stringwithcstring</link>
    <title>stringWithCString</title>
    <description>すでになにか別の処理で、
テキストファイルからテキストをメモリに読み取ってあるのなら、
stringWithCString:encodingを使えば、
そのメモリ領域にあるデータからNSStringを作成できると思った。
&amp;amp;nbsp;
私の場合、encodingについては既に割れているので...</description>
    <content:encoded><![CDATA[すでになにか別の処理で、
<div>テキストファイルからテキストをメモリに読み取ってあるのなら、</div>
<div>stringWithCString:encodingを使えば、</div>
<div>そのメモリ領域にあるデータからNSStringを作成できると思った。</div>
<div>&nbsp;</div>
<div>私の場合、encodingについては既に割れているので、</div>
<div>それを引数にstringWithCString:encodingを使う。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>らくちんぽん。とおもいきや。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>UTF-16でどうもうまくいかない。<br />
&nbsp;</div>
<div>ん？こいつどうやってUTF-16の終端を判断してるんだ？</div>
<div>とおもった。</div>
<div>長さを渡していないので、</div>
<div>終端を表す何かが必要なはず。</div>
<div>&nbsp;</div>
<div>UTF-16でASCII文字を使うと、１バイト分データの空きが出る。</div>
<div>そう。そこはヌル文字。</div>
<div>なので、ほかの文字列と同じようには</div>
<div>UTF-16ではヌル文字で終端を表せない。</div>
<div>２バイト連続ヌル文字を使えばいいのだろうけど、</div>
<div>そんな話は聞いたこと無い。</div>
<div>ちなみにやってみたけど駄目。<br />
<br />
<br />
&nbsp;</div>
<div>unicharの配列だと可能だろうけど、</div>
<div>stringWithCStringはふつうにcharの配列を受け取るから。</div>
<div>&nbsp;</div>
<div>もし、stringWithCString:encoding内部で、</div>
<div>ヌル文字を終端として扱っているなら、</div>
<div>このメソッドではUTF-16は扱えないように思えた。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>そんななかにもかすかな光が。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>stringWithCString:length:は長さが指定できる。</div>
<div>そして、試したところBOM無しのリトルエンディアンUTF-16も</div>
<div>同様にBOM無しのビッグエンディアンUTF-16もちゃんと読み込めた。</div>
<div>&nbsp;</div>
<div>ん？Deprecated in Mac OS X v10.4？</div>
<div>あ。自分、英語読めませんのですいませんが。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>なんか光が消えた。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>そんななかにもかすかな光が。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>stringWithCharacters:length:というメソッドがある。</div>
<div>引数にconst unichar *と長さが渡せる。</div>
<div>&nbsp;</div>
<div>もう。いかにもいけそうな予感。</div>
<div><br />
<br />
&nbsp;</div>
<div>結論から言うといける。</div>
<div>ビッグエンディアンなら。</div>
<div><br />
リトルエンディアンのときはBOMをつけてもだめ。</div>
<div>んもー。またぐちゃぐちゃ。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>あー。なんならスワップしますけど、します？</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>またもや、そんななかにもかすかな光が。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>initWithBytes:length:encoding:というメソッドがあった。</div>
<div>長さもエンコードも指定できる。</div>
<div>ええんよ、ええんよ。</div>
<div>どっちもわかってるから。</div>
<div>ちゃんと動いてくれれば。</div>
<div>&nbsp;</div>
<div>．．．</div>
<div>動いた！</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>えっと。クラスメソッド版は無いんですね．．．</div>
<div>allocしなきゃだめですか。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>そうですか。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>文字列</dc:subject>
    <dc:date>2010-06-09T19:37:15+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/rangeofstring-options">
    <link>http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/rangeofstring-options</link>
    <title>rangeOfString:options</title>
    <description>ある意味で、ある文章から特定の文字列を
抜き出さなければならないという仕事は、
いつだってある仕事なのだと思う。
&amp;amp;nbsp;
従って、「ある意味で」という言葉を文書から検索し、
その位置を導きだすこというサンプルは、
ある意味、非常に有益だと思う。
&amp;amp;nbsp;
&amp;amp;nbsp;
管...</description>
    <content:encoded><![CDATA[ある意味で、ある文章から特定の文字列を
<div>抜き出さなければならないという仕事は、</div>
<div>いつだってある仕事なのだと思う。</div>
<div>&nbsp;</div>
<div>従って、「ある意味で」という言葉を文書から検索し、</div>
<div>その位置を導きだすこというサンプルは、</div>
<div>ある意味、非常に有益だと思う。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>管さんはある意味でを使い過ぎらしい。</div>
<div>ある意味で。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>これまで、なんか重い話題が続いたので、</div>
<div>ある意味ちょっと息抜きで。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>レッツrangeOfString:options。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>第一引数で検索したい文字列を指定。</div>
<div>私の場合、@&quot;ある意味で&quot;。</div>
<div>&nbsp;</div>
<div>第二引数はオプション。</div>
<div>実際はunsigned int。</div>
<div>オプションは適宜指定で。</div>
<div>まずは無しで検索してみたいの私は0で。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>戻り値のNSRangeはlocationとlengthを持つ構造体。</div>
<div>NSLog(@&quot;location : %d &nbsp; length : %d&quot;, range.location, range.length);</div>
<div>とかやれば値が見れる。</div>
<div>&nbsp;</div>
<div>locationは先頭の文字を0として、</div>
<div>多バイト文字でも文字数で何文字目か出してくれる。</div>
<div>lengthも文字数。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>私の場合、「ある意味で」が２回登場するので、</div>
<div>もう一回やる必要がある。</div>
<div>ふつう２回出る、なんて知らないので、</div>
<div>do whileで回す必要がある。</div>
<div>そんなとき、rangeOfString:options:range:。</div>
<div>第三引数で、残りの部分を指定してやればいい。</div>
<div>&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>range= NSMakeRange(0, 0);</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>result = NSMakeRange(0, 0);</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>do</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>range.location = result.location+result.length;</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>range.length = [base length] - (result.location+result.length);</div>
<div>&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>result = [base rangeOfString:@&quot;ある意味で&quot; options:0 range:range];</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>if(result.location != NSNotFound)</div>
<div><span class="Apple-tab-span" style="white-space:pre">			</span>NSLog(@&quot;location : %d &nbsp; length : %d&quot;, result.location, result.length);</div>
<div>&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>}while(result.location != NSNotFound);</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>オプションについてはunsigned intなんで、</div>
<div>cのノリで</div>
<div>NSCaseInsensitiveSearch | NSLiteralSearch</div>
<div>とかしちゃえばOK。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>例えばこんなオプションがありんす。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>NSCaseInsensitiveSearch</div>
<div>大文字小文字を区別しない。</div>
<div><br />
&nbsp;</div>
<div>NSLiteralSearch</div>
<div>これを指定した場合、byteをみて比較する。</div>
<div><br />
&nbsp;</div>
<div>例えば、UCS2で3071,306F,309Aとした場合、</div>
<div>それは&quot;ぱぱ&quot;となる。</div>
<div>3071が&quot;ぱ&quot;。</div>
<div>306Fが&quot;は&quot;。</div>
<div>309Aが&quot;゜&quot;</div>
<div>&quot;ぱは゜&quot;ではなく、だいたいちゃんと&quot;ぱぱ&quot;と表示される。</div>
<div>このオプションを指定すると、</div>
<div>3071の&quot;ぱ&quot;で検索した場合、</div>
<div>306F,309Aの&quot;ぱ&quot;で引っかからなくなる。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>NSBackwardsSearch</div>
<div>終わりから検索。</div>
<div>エディタの&quot;前を検索&quot;を実装するときに使うんだろうなと。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>NSAnchoredSearch</div>
<div>先頭しか検知しない。</div>
<div>（NSBackwardsSearchのときは最後）</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>NSNumericSearch</div>
<div>文字列に含まれる数値で比較。</div>
<div>たぶん、compare:optionsとか使うときに使う。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>NSDiacriticInsensitiveSearch</div>
<div>発音区別符号無視。</div>
<div>無視すると、'&ouml;&rsquo;は&lsquo;o'で検索に引っかかる。</div>
<div>試してないけど。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>NSWidthInsensitiveSearch</div>
<div>全角ａが半角aとマッチするようになる。</div>
<div>半角aもまた全角ａとマッチするようになる。</div>
<div><br />
&nbsp;</div>
<div>NSForcedOrderingSearch</div>
<div>compare:optionsとかで使えるんだと思う。</div>
<div>こいつは言ってることがよくわかんなかった。</div>
<div>NSCaseInsensitiveSearch指定で&quot;aaa&quot;&lt;&quot;AAA&quot;らしい。</div>
<div>&nbsp;</div>
<div><br />
<br />
&nbsp;</div>
<div>NSCaseInsensitiveSearchとNSLiteralSearchが大事なんだと思う。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>文字列</dc:subject>
    <dc:date>2010-06-07T23:52:42+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/retain">
    <link>http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/retain</link>
    <title>retain</title>
    <description>キューを作って、実際使ってみた。
なんかデータを入れようということで、
NSDateとintを持つクラスを作り、
そのオブジェクトをキューに放り込んでみた。
で、取り出す。
&amp;amp;nbsp;
放り込む人が５スレッド。
取り出す人が３スレッド。
&amp;amp;nbsp;
ばらばらばらばら。
ログが...</description>
    <content:encoded><![CDATA[キューを作って、実際使ってみた。
<div>なんかデータを入れようということで、</div>
<div>NSDateとintを持つクラスを作り、</div>
<div>そのオブジェクトをキューに放り込んでみた。</div>
<div>で、取り出す。</div>
<div>&nbsp;</div>
<div>放り込む人が５スレッド。</div>
<div>取り出す人が３スレッド。</div>
<div>&nbsp;</div>
<div>ばらばらばらばら。</div>
<div>ログが入り乱れる。</div>
<div>放り込んだときと、</div>
<div>取り出したときにNSDateとintの内容を表示する。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>で、取り出したとき、280個目あたりで落ちる。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>どうも、NSDateの内容が無効になっているみたいだった。</div>
<div>気づくのにだいぶ時間がかかってしまった。</div>
<div>&nbsp;</div>
<div>[NSDate date]で</div>
<div>かえってきたインスタンスをそのまま使っていたのが</div>
<div>まずかったんだと思う。</div>
<div>&nbsp;</div>
<div>retainしてなかったんだな。</div>
<div>&nbsp;</div>
<div>retainは大事だと思った。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><a href="http://natsu.onmitsu.jp/queue_download.html">何も考えず、とりあえず、ざっと作ったキュー。</a></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>頼りない感じだけど、</div>
<div>こんな感じでいんじゃね。</div>
<div>と、おもわれ。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>できたてほやほや。</div>
<div>もうちょっと試さないといかんね。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>スレッド</dc:subject>
    <dc:date>2010-06-04T18:13:06+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/%E3%83%AD%E3%83%83%E3%82%AF">
    <link>http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/%E3%83%AD%E3%83%83%E3%82%AF</link>
    <title>ロック</title>
    <description>ロックをしたいとき、
どんな方法がとれるのか調べてみたけど、
以下の３つからどれにしようかといったところ。
&amp;amp;nbsp;
・@synchronized
・POSIX mutex
・spin lock
&amp;amp;nbsp;
なにも考えずにやりたい場合、
普通は@synchronizedでやれ...</description>
    <content:encoded><![CDATA[<div>ロックをしたいとき、</div>
<div>どんな方法がとれるのか調べてみたけど、</div>
<div>以下の３つからどれにしようかといったところ。</div>
<div>&nbsp;</div>
<div>・@synchronized</div>
<div>・POSIX mutex</div>
<div>・spin lock</div>
<div>&nbsp;</div>
<div>なにも考えずにやりたい場合、</div>
<div>普通は@synchronizedでやればいいんだと思う。</div>
<div>&nbsp;</div>
<div>POSIXのmutexも特になんも考えなくていいと思う。</div>
<div>&nbsp;</div>
<div>spin lockはなんか、もっと低レベルの仕組みなんだと思う。</div>
<div>ドライバ書いたりする人はこんなの使うんでしょ。</div>
<div>ちょいと調べる限り、</div>
<div>ロックで待ってる間はビジーループで回るとかなんか書いてあるけど、</div>
<div>最近の実装じゃ、もっとうまいことやるでしょ。</div>
<div>きっと。</div>
<div>ほかのスレッドにCPU渡したり。</div>
<div>&nbsp;</div>
<div>spin lockは実際に使わないと思うけど、</div>
<div>実験だし使ってみる。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>計測計測。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>ロックかけて</div>
<div>インクリメント</div>
<div>ロック外す</div>
<div>&nbsp;</div>
<div>を10000回まわしてみる。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>インクリメントすらスレッドセーフではない世の中。</div>
<div>何を信じればいいのか。</div>
<div>&nbsp;</div>
<div>阿弥陀様を信じればいいと思うよ。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>さて。計測計測。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>一応すべての方法で、ロックがうまいこといくのは確認。</div>
<div>&nbsp;</div>
<div>ロックなし</div>
<div>大体 0.035ms</div>
<div>&nbsp;</div>
<div>@synchronized</div>
<div>大体1.84ms</div>
<div>&nbsp;</div>
<div>POSIX mutex</div>
<div>大体0.65ms</div>
<div>&nbsp;</div>
<div>spin lock</div>
<div>大体0.29ms</div>
<div>&nbsp;</div>
<div>10000回連続でロックとアンロックをやってるので、</div>
<div>なんとかテクノロジ的なもので、</div>
<div>２回目以降は速くなるのかもしれないけど。</div>
<div>&nbsp;</div>
<div>一回あたりのロックは</div>
<div>@synchronizedでも計測する意味が無いレベルだと思う。</div>
<div>&nbsp;</div>
<div>とりあえず、</div>
<div>普通に使う分ではどれでも問題ない気はした。</div>
<div>すくなし、</div>
<div>@synchronizedなんて遅くて使えないよー。</div>
<div>なんてことは、いわないと思う。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>スレッド</dc:subject>
    <dc:date>2010-06-02T12:30:45+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/-synchronized">
    <link>http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/-synchronized</link>
    <title>@synchronized</title>
    <description>クリティカルセクションを作る、
っていうときに、
@synchronizedはとても便利だと思う。
&amp;amp;nbsp;
	@synchronized(self)
	{
		for(int m=1 ; m&amp;amp;lt;=5 ; m++)
		{
			NSLog(@&amp;amp;quot;ID:%d SPEA...</description>
    <content:encoded><![CDATA[クリティカルセクションを作る、
<div>っていうときに、</div>
<div>@synchronizedはとても便利だと思う。</div>
<div>&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>@synchronized(self)</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>for(int m=1 ; m&lt;=5 ; m++)</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre">			</span>NSLog(@&quot;ID:%d SPEAK %d&quot;, threadID, m);</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div>
<div>&nbsp;</div>
<div>なんていう例は、</div>
<div>どこでだって見れるけども、</div>
<div>@synchronized(self)っていった場合、</div>
<div>そのメソッドがいくつかのスレッドから、</div>
<div>呼び出されることを想定しているんだと思う。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>まあ、スレッドをつかってごにゃごにゃと、</div>
<div>この間からやってわけなんですが。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>私のやつは、</div>
<div>スレッドごとにオブジェクトを一つ作成し、</div>
<div>そのオブジェクトに対してメッセージを送ることによって、</div>
<div>スレッド上の処理を動かす。</div>
<div>っていう感じになっているんだけども。</div>
<div>&nbsp;</div>
<div>こんな動き方はすごいと思った。</div>
<div>あるスレッドで作ったオブジェクトは、</div>
<div>ほんとにそのスレッドに乗っかってるんだもの。</div>
<div>NSConnection経由でメッセージが送れる。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>で、そんな感じのつくりだと、</div>
<div>@synchronized(self)</div>
<div>なんて無意味であることがわかる。</div>
<div>実際無意味だったし。</div>
<div>&nbsp;</div>
<div>私のNSObjectを継承するクラスからうまれた、</div>
<div>かわいいインスタンスオブジェクトは</div>
<div>@synchronizedを意識した実装などしていないので、</div>
<div>この鍵はNSObjectがもっているはず。</div>
<div>&nbsp;</div>
<div>なので、スレッドのファクトリで、</div>
<div>NSObject *lockObject</div>
<div>をもっておいて、</div>
<div>スレッドを作る際に渡しておく。</div>
<div>&nbsp;</div>
<div>で、鍵をかけたいところで、</div>
<div>@synchronized(lockObject)</div>
<div>する。</div>
<div>&nbsp;</div>
<div>2010-05-31 15:11:39.522 lockTest[4411:1d03] ID:0 SPEAK 1</div>
<div>2010-05-31 15:11:39.531 lockTest[4411:1d03] ID:0 SPEAK 2</div>
<div>2010-05-31 15:11:39.532 lockTest[4411:1d03] ID:0 SPEAK 3</div>
<div>2010-05-31 15:11:39.533 lockTest[4411:1d03] ID:0 SPEAK 4</div>
<div>2010-05-31 15:11:39.533 lockTest[4411:1d03] ID:0 SPEAK 5</div>
<div>2010-05-31 15:11:39.535 lockTest[4411:3603] ID:1 SPEAK 1</div>
<div>2010-05-31 15:11:39.535 lockTest[4411:3603] ID:1 SPEAK 2</div>
<div>2010-05-31 15:11:39.540 lockTest[4411:3603] ID:1 SPEAK 3</div>
<div>2010-05-31 15:11:39.540 lockTest[4411:3603] ID:1 SPEAK 4</div>
<div>2010-05-31 15:11:39.541 lockTest[4411:3603] ID:1 SPEAK 5</div>
<div>2010-05-31 15:11:39.544 lockTest[4411:3e03] ID:2 SPEAK 1</div>
<div>2010-05-31 15:11:39.545 lockTest[4411:3e03] ID:2 SPEAK 2</div>
<div>2010-05-31 15:11:39.545 lockTest[4411:3e03] ID:2 SPEAK 3</div>
<div>2010-05-31 15:11:39.546 lockTest[4411:3e03] ID:2 SPEAK 4</div>
<div>2010-05-31 15:11:39.546 lockTest[4411:3e03] ID:2 SPEAK 5</div>
<div>&nbsp;</div>
<div>うん。めいめいのスレッドでちゃんと最後まで用を足す。</div>
<div>途中でママは呼ばない。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>@synchronized。</div>
<div>こいつは勘なんだけども、</div>
<div>中の人はmutexのような気がする。</div>
<div>&nbsp;</div>
<div>もし、頻繁にロック、アンロックするならば。</div>
<div>キューに構造体のポインタを押し込むような処理ならば、</div>
<div>処理自体よりロックの方が時間がかかるかもしれない。</div>
<div>と思った。</div>
<div>&nbsp;</div>
<div>それも、たくさんの件数のデータを</div>
<div>押し込み、取り出しするんなら、</div>
<div>わりと馬鹿にならない時間がかかるかもしれない。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>まだ試してみるべきことはある。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>スレッド</dc:subject>
    <dc:date>2010-06-01T00:30:18+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/%E5%85%A5%E3%82%8A%E4%B9%B1%E3%82%8C%E3%82%8B%EF%BC%93%E3%81%A4%E3%81%AE%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89">
    <link>http://nest.sakeblog.net/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89/%E5%85%A5%E3%82%8A%E4%B9%B1%E3%82%8C%E3%82%8B%EF%BC%93%E3%81%A4%E3%81%AE%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89</link>
    <title>入り乱れる３つのスレッド</title>
    <description>ある処理をするスレッドを３つ作り、
それを実行させていくといったとき。
&amp;amp;nbsp;
で、その一連の処理は一つのセットで、
その処理を始めたら処理を走りきらないと、
ほかのスレッドで処理を始めたくないときとか。
&amp;amp;nbsp;
たとえば、
あるデータの集合。
たくさんあるデータの処理...</description>
    <content:encoded><![CDATA[ある処理をするスレッドを３つ作り、
<div>それを実行させていくといったとき。</div>
<div>&nbsp;</div>
<div>で、その一連の処理は一つのセットで、</div>
<div>その処理を始めたら処理を走りきらないと、</div>
<div>ほかのスレッドで処理を始めたくないときとか。</div>
<div>&nbsp;</div>
<div>たとえば、</div>
<div>あるデータの集合。</div>
<div>たくさんあるデータの処理を２つや４つのスレッドで分担すると、</div>
<div>CPUの複数のコアがちゃんとつかえてお得かも。</div>
<div>と考えたときなんか。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>キューから読み込み、読み込んだものを消す。</div>
<div>で、処理する。</div>
<div>その前には当然キューに書き込むわけだけど。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>キューに押し込むデータをまとめて、</div>
<div>キューに書き込んで、なんてしてるとき、</div>
<div>スレッドが切り替わったりなんてして見なさいな。</div>
<div>&nbsp;</div>
<div>あーもう。</div>
<div>&nbsp;</div>
<div>ってなるから。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>Cocoaでスレッドセーフなキューがあれば、</div>
<div>私はちょっと幸せになれたんだと思う。</div>
<div>MutableArrayを使えば、キューなんて簡単に実装できるけど、</div>
<div>MutableArrayはスレッドセーフじゃないんですな。</div>
<div>&nbsp;</div>
<div>MutableArrayを保護しながら使わないといけない。</div>
<div>&nbsp;</div>
<div>キューにアクセスできるのは一つのスレッドだけで、</div>
<div>ほかのスレッドは終わるまで外で待っていないといけない。</div>
<div>&nbsp;</div>
<div>トイレの個室には同時に一人までしか入ってはいけないんです。</div>
<div>ある例外を除いて。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>トイレに入ったらロックしましょう。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>少し話はそれるんだけども、</div>
<div>スレッドを３つ立てて、</div>
<div>その３つのスレッドで５回ログをはく。</div>
<div>&nbsp;</div>
<div>なんて処理は、結局こんな結果になる。</div>
<div>&nbsp;</div>
<div>2010-05-31 14:28:54.933 lockTest[4067:3603] ID:1 SPEAK 1</div>
<div>2010-05-31 14:28:54.934 lockTest[4067:3e03] ID:2 SPEAK 1</div>
<div>2010-05-31 14:28:54.930 lockTest[4067:1d03] ID:0 SPEAK 1</div>
<div>2010-05-31 14:28:54.935 lockTest[4067:3603] ID:1 SPEAK 2</div>
<div>2010-05-31 14:28:54.935 lockTest[4067:3e03] ID:2 SPEAK 2</div>
<div>2010-05-31 14:28:54.935 lockTest[4067:1d03] ID:0 SPEAK 2</div>
<div>2010-05-31 14:28:54.936 lockTest[4067:3603] ID:1 SPEAK 3</div>
<div>2010-05-31 14:28:54.936 lockTest[4067:3e03] ID:2 SPEAK 3</div>
<div>2010-05-31 14:28:54.936 lockTest[4067:1d03] ID:0 SPEAK 3</div>
<div>2010-05-31 14:28:54.938 lockTest[4067:3603] ID:1 SPEAK 4</div>
<div>2010-05-31 14:28:54.938 lockTest[4067:3e03] ID:2 SPEAK 4</div>
<div>2010-05-31 14:28:54.938 lockTest[4067:1d03] ID:0 SPEAK 4</div>
<div>2010-05-31 14:28:54.940 lockTest[4067:3603] ID:1 SPEAK 5</div>
<div>2010-05-31 14:28:54.940 lockTest[4067:3e03] ID:2 SPEAK 5</div>
<div>2010-05-31 14:28:54.941 lockTest[4067:1d03] ID:0 SPEAK 5</div>
<div>&nbsp;</div>
<div>ログはき一回ずつ、仲良く交代している。</div>
<div>あえてトイレでは例えない。</div>
<div>&nbsp;</div>
<div>ログを５回はききるまで、</div>
<div>スレッドが切り替わるのはいや。</div>
<div>っていったとき、</div>
<div>&nbsp;</div>
<div>ログをはくfor文に入る前と、</div>
<div>出た後に、</div>
<div>ロックをかける処理と、</div>
<div>ロックを外す処理が必要になる。</div>
<div><br />
<br />
&nbsp;</div>
<div>さてさて。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>スレッド</dc:subject>
    <dc:date>2010-05-31T15:28:09+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/iso-2022-jp">
    <link>http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/iso-2022-jp</link>
    <title>ISO-2022-JP</title>
    <description>いわゆるJISなんですが。
&amp;amp;nbsp;
&amp;amp;nbsp;
ルール１
漢字や半角カタカナとかの前にあるコードをおくこと。
そのコードは0x1B（いわゆるエスケープ文字）から始まる。
&amp;amp;nbsp;
ルール２
漢字や半角カタカナを使い終わったら、あるコードをおき、
行の終わりまでにJIS ...</description>
    <content:encoded><![CDATA[いわゆるJISなんですが。
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>ルール１</div>
<div>漢字や半角カタカナとかの前にあるコードをおくこと。</div>
<div>そのコードは0x1B（いわゆるエスケープ文字）から始まる。</div>
<div>&nbsp;</div>
<div>ルール２</div>
<div>漢字や半角カタカナを使い終わったら、あるコードをおき、</div>
<div>行の終わりまでにJIS X 0201-1976のラテン文字集合か</div>
<div>ASCIIに戻すこと。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>っていうことがあるみたいなんで、</div>
<div>そんなコード。</div>
<div>&nbsp;</div>
<div>例えば、</div>
<div>1B 24 42</div>
<div>とか、</div>
<div>1B 28 42</div>
<div>が入っていれば</div>
<div>JISと思えばいいんすよ。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>ただ、これはUCS2に含まれているようなコードで、</div>
<div>すなわちそれはUTF-16で書かれている以下のような文字列、</div>
<div>&nbsp;</div>
<div>☛⑂あかさたなはまやらわ✛⡂</div>
<div>&nbsp;</div>
<div>なんかはJISっぽく見えるんだと思う。</div>
<meta charset="utf-8" />
<div>まあ、こんな文字列はね。</div>
<div>見かける可能性なんてないと思うけど。</div>
<div>&nbsp;</div>
<div>あるわけないよこんなの。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>だから、</div>
<div>&nbsp;</div>
<div>☛⑂⡂やっほー。元気ー？ こないだの品物は1200㌛⡂⑂☚</div>
<div>&nbsp;</div>
<div>っていうUTF-16の文章は悪意があるんだよ。</div>
<div>うっさい。具合悪いわ！みたいな。</div>
<div>円で換算してから請求しろ！！みたいな。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>Windowsのブラウザでちゃんと出るのか不安だ。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>1B 2?はバリのほうの言葉が割り当てられてるんで、</div>
<div>バリのほうの文書はJISっぽいんだと思った。</div>
<div>&nbsp;</div>
<div>ちなみに、</div>
<div>☛ 26 1B　右さしてる手の形。しかも黒い</div>
<div>⑂ 24 42　さすまたみたいな記号。</div>
<div>✛ 27 1B　十字な記号。</div>
<div>⡂ 28 42　クリリンのおでこにあるようなやつ。</div>
<div>㌛ 33 1B　クローネを一文字で。</div>
<div>だわさ。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>クリリンのおでこは、</div>
<div>ハードウェアな人が使いそうな予感。</div>
<div>&nbsp;</div>
<div><br />
<br />
&nbsp;</div>
<div>Windowsのブラウザでちゃんと出るのか激しく不安だ。</div>
<div><br />
<br />
<br />
ここらあたりは文字化け御免で。</div>
<div><br />
<br />
&nbsp;</div>
<div>そんなこんなで、ちょっと怖いよね。</div>
<div>だもんで、UTF-16チェックをした後に</div>
<div>JISチェックをするようにしようと思った、</div>
<div>今日という肌寒い日。</div>
<div>&nbsp;</div>
<div><br />
<br />
&nbsp;</div>
<div>どっか雹がふってたらしいよ。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>文字列</dc:subject>
    <dc:date>2010-05-27T00:16:21+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
  <item rdf:about="http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/4000--4dbf">
    <link>http://nest.sakeblog.net/%E6%96%87%E5%AD%97%E5%88%97/4000--4dbf</link>
    <title>4000-&gt;4DBF</title>
    <description>&amp;amp;nbsp;ああ。ねむい。
酒飲みながらステップ実行ぽちぽちぽち。
&amp;amp;nbsp;
&amp;amp;nbsp;
で、すっかり忘れてたんだけども、
UTF-16はNULL文字が平気で出てくるわけで。
&amp;amp;nbsp;
改行やタブのこともすっかり忘れてたし。
&amp;amp;nbsp;
&amp;amp;nbsp;
NULL文字が平...</description>
    <content:encoded><![CDATA[&nbsp;ああ。ねむい。
<div>酒飲みながらステップ実行ぽちぽちぽち。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>で、すっかり忘れてたんだけども、</div>
<div>UTF-16はNULL文字が平気で出てくるわけで。</div>
<div>&nbsp;</div>
<div>改行やタブのこともすっかり忘れてたし。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>NULL文字が平気で出るので、</div>
<div>fgetsとかstrlenとかやると痛い思いをする。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>うん。痛かったよ。わりと。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>もはやバイナリを読む気でかからないと。</div>
<div>っていうかcでファイルポインタからファイル読み込むなんて。</div>
<div>何年ぶりですか。ほんと。</div>
<div>&nbsp;</div>
<div>最近はね。まあ、いろいろ便利になったからね。</div>
<div>&nbsp;</div>
<div>freadをつかってね。と。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>で、微妙な漢字ばかりの4000-&gt;4DBF。</div>
<div>日本がどうたら書かれてるんで、</div>
<div>もしかしたら、なじみのやつが含まれているかも。</div>
<div>漢字の拡張文字らしい。</div>
<div>&nbsp;</div>
<div>これもやはり含めた方が無難か。と思った。</div>
<div>&nbsp;</div>
<div>なので4E00-&gt;9FFFを</div>
<div>4000-&gt;9FFFに変更してみる。</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>もう少しのんだら寝よう。</div>
<div>&nbsp;</div>]]></content:encoded>
    <dc:subject>文字列</dc:subject>
    <dc:date>2010-05-26T01:45:01+09:00</dc:date>
    <dc:creator>natsu</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>natsu</dc:rights>
  </item>
</rdf:RDF>
