<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>NEST</title>
    <description>natsuの秘密基地です</description>
    <link>http://nest.sakeblog.net/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

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

  </channel>
</rss>