<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7001283488336365765</id><updated>2012-02-16T19:03:09.998+09:00</updated><category term='cocoa'/><category term='まとめエントリ'/><category term='objective-c'/><category term='iPhoneをプログラミング'/><category term='git'/><category term='ツール'/><category term='覚えておきたいモノ'/><category term='忘れたくないコト'/><category term='macbook'/><category term='server'/><category term='powermac'/><category term='mini'/><category term='指先に触れるモノ'/><category term='about'/><category term='ヒレガス本'/><category term='google'/><title type='text'>Macをプログラムする</title><subtitle type='html'>Macを使ってプログラミングしよう。で、その過程をちくちく記録して、まるっと晒すためのブログ。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-1702788193134879148</id><published>2009-11-02T17:28:00.000+09:00</published><updated>2009-11-02T17:28:53.623+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='about'/><title type='text'>移行しました。</title><content type='html'>&lt;p&gt;思うところあって、いくつかあったブログを一本化することにしました。以後、この「Macをプログラムする」の更新は行いません。これまで投稿してきたエントリはそのまま、ここに残します(Googleが消せと言ってこないかぎり)。&lt;/p&gt;

&lt;h4&gt;移行先&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/search/label/1.%20Mac%E3%82%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%99%E3%82%8B" title="LOG+REPO"&gt;LOG+REPO:Macをプログラムする&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-1702788193134879148?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/1702788193134879148/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/11/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1702788193134879148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1702788193134879148'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/11/blog-post.html' title='移行しました。'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-8749003279395344454</id><published>2009-10-30T12:52:00.000+09:00</published><updated>2009-10-30T12:52:13.041+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Git 早見表</title><content type='html'>&lt;p&gt;&lt;a href="http://git-scm.com/documentation"&gt;公式サイト&lt;/a&gt;からたどって発見。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html"&gt;Zack Rusin: Git cheat sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;印刷するなら Large がオススメ。↓に写っているのは Large を A4 用紙に印刷したもの。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/CW2oP4xGqaJHKAi_WF0CVQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_wobSevGXOh4/Supgow-bEBI/AAAAAAAAAjQ/iONc4q0pe7U/s288/IMG_0091.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-8749003279395344454?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/8749003279395344454/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/10/git.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/8749003279395344454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/8749003279395344454'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/10/git.html' title='Git 早見表'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_wobSevGXOh4/Supgow-bEBI/AAAAAAAAAjQ/iONc4q0pe7U/s72-c/IMG_0091.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-1930444470152994704</id><published>2009-10-29T16:50:00.002+09:00</published><updated>2009-10-29T17:01:49.017+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mini'/><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>SSHで接続 (MacBook → Mac mini Server)</title><content type='html'>&lt;p&gt;Snow Leopard Server ではデフォルトで SSH のサーバが稼動している。せっかくだから、MacBook から接続してみる。せっかくの SSH なんだから、鍵を生成して mini 側に転送しておく。ホームネットワークでやっても意味ないけどな〜。&lt;/p&gt;

&lt;p&gt;参照した文献はこれ(↓):&lt;/p&gt;

&lt;div class="mm-small" style="margin-bottom:0px;"&gt;&lt;div class="mm-image" style="float:left;"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4756145531/mnbi-22/ref=nosim" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41BY36VMEGL._SL75_.jpg" alt="入門SSH (My UNIX series (04))" title="入門SSH (My UNIX series (04))" width="54" height="75" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="mm-content" style="float:left;margin-left:10px;line-height:120%"&gt;&lt;div class="mm-title" style="line-height:120%"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4756145531/mnbi-22/ref=nosim" target="_blank"&gt;入門SSH (My UNIX series (04))&lt;/a&gt;&lt;/div&gt;&lt;div class="mm-detail" style="margin-top:10px;"&gt;春山 征吾 / アスキー ( 2004-11 ) /&lt;img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-4-5.gif" border="0" alt="アマゾンおすすめ度" style="vertical-align:middle;" /&gt;&lt;div style="margin:7px 0px"&gt;&lt;a href="http://mediamarker.net/u/mnbi/?asin=4756145531" target="_blank"&gt;物読みファイル (別館)で詳細を見る&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align:right;font-size:7pt;font-family:verdana"&gt;&lt;a href="http://mediamarker.net/" target="_blank"&gt;MediaMarker&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-1930444470152994704?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/1930444470152994704/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/10/ssh.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1930444470152994704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1930444470152994704'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/10/ssh.html' title='SSHで接続 (MacBook → Mac mini Server)'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-2772949980747054055</id><published>2009-10-29T15:16:00.004+09:00</published><updated>2009-10-29T17:01:04.802+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mini'/><title type='text'>MacPorts 1.8.1</title><content type='html'>mini (Snow Leopard Server) に MacPorts をインストールしてみた。

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/YuUQC8ip6VM_DWdK7y1Png?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_wobSevGXOh4/SukxQSoV1UI/AAAAAAAAAiU/yN-Dsk22coE/s400/macports-181_installation_to_miniserver.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

今のところ、インストールした ports は &lt;a href="http://www.gnupg.org/"&gt;gnupg&lt;/a&gt; だけ。次は &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; をインストールしてみようかと思っている。「&lt;a href="http://mediamarker.net/u/mnbi/?asin=427406767X"&gt;入門git&lt;/a&gt;」を読み始めたから。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-2772949980747054055?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/2772949980747054055/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/10/macports-181.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2772949980747054055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2772949980747054055'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/10/macports-181.html' title='MacPorts 1.8.1'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_wobSevGXOh4/SukxQSoV1UI/AAAAAAAAAiU/yN-Dsk22coE/s72-c/macports-181_installation_to_miniserver.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-3638242008362596754</id><published>2009-10-29T15:14:00.002+09:00</published><updated>2009-10-29T16:58:58.815+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='mini'/><title type='text'>Snow Leopard Server のドック(デフォルト状態)</title><content type='html'>&lt;a href="http://programmingmac.blogspot.com/2009/10/mac-mini-server.html"&gt;先日、購入した Mac mini&lt;/a&gt; は Server モデルだけど、デスクトップ兼用で使う。デフォルト状態でのドックは滅多に見かけないので記念に撮っておいた。ハサミの付いたアイコンは、このスクショを撮るための「グラブ」アプリのもの。

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/fDxnpSOFZnN9uvOk3TVIfA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_wobSevGXOh4/Sukwps2Xp1I/AAAAAAAAAiI/MInoSmTL6z4/s288/dock_on_server.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

もう、今ではすっかり別の並びになっている。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-3638242008362596754?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/3638242008362596754/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/10/snow-leopard-server.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3638242008362596754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3638242008362596754'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/10/snow-leopard-server.html' title='Snow Leopard Server のドック(デフォルト状態)'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_wobSevGXOh4/Sukwps2Xp1I/AAAAAAAAAiI/MInoSmTL6z4/s72-c/dock_on_server.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-1670717677405797373</id><published>2009-10-23T22:19:00.002+09:00</published><updated>2009-10-23T22:22:17.041+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='mini'/><title type='text'>Mac mini Server、届いた！</title><content type='html'>&lt;p&gt;昨日(10/22)、Apple Store で発注したら、もう届いた。早くてびっくり。↓は手に持ってみたところ。小さい、軽い。&lt;a href="http://programmingmac.blogspot.com/search/label/macbook"&gt;MacBook&lt;/a&gt; ですらデカく見えるよ。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/_nDR736M3_NFu_fZVnJh8Q?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_wobSevGXOh4/SuGlZm4WuVI/AAAAAAAAAe4/fxIna83x0oE/s288/IMG_0060.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;次は付属するマニュアル類。サーバのマニュアルは&lt;a href="http://programmingmac.blogspot.com/2009/08/snow-leopard.html"&gt;すっかり見慣れた雪豹&lt;/a&gt;のもの。Apple 製品のマニュアルにしては分厚い。といってもサーバOSのマニュアルだとはとても思えない薄さなんだけどね(ジャストCDサイズで 180 ページ弱)。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/PAfZNg6lH8gH0bD4rNhRmw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_wobSevGXOh4/SuGlatYGlRI/AAAAAAAAAe8/l1M_OH4bfg4/s288/IMG_0064.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;ちなみに、Mac mini (Late 2009) もデフォルトでは&lt;a href="http://programmingmac.blogspot.com/2009/08/snow-leopardmacbook.html"&gt;カーネルが 32 bit モードで起動する&lt;/a&gt;。ものは試しと 64 bit モードで起動させてみると・・・&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/PrODtvlVKMvA-S8AD0XKLw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_wobSevGXOh4/SuGlcBBegzI/AAAAAAAAAfE/8iGyBFmeN1I/s288/IMG_0074.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;これ(↑)じゃあ、使えないよ。シネマにつなげるための Dual-Link ケーブルの問題だという可能性もあるけど。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-1670717677405797373?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/1670717677405797373/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/10/mac-mini-server.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1670717677405797373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1670717677405797373'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/10/mac-mini-server.html' title='Mac mini Server、届いた！'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_wobSevGXOh4/SuGlZm4WuVI/AAAAAAAAAe4/fxIna83x0oE/s72-c/IMG_0060.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-6985642941980229474</id><published>2009-08-29T11:02:00.004+09:00</published><updated>2009-08-29T11:06:53.027+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>MacBook と L997</title><content type='html'>&lt;p&gt;EIZO の &lt;a href="http://www.eizo.co.jp/products/lcd/l997/index.html"&gt;FlexScan L997&lt;/a&gt; はパネルを90度回転させることができ、縦長のディスプレイとしても使える。さらに、グラフィックカードとOSが対応していれば自動的に画像の表示方向も切り替わる。この機能は ActiveRotationII と呼ばれている。&lt;/p&gt;

&lt;p&gt;ところが、この機能は MacBook (Early 2008) とは相性が悪い。縦長だと認識してくれない。グラフィックチップの問題なのか、&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%83%9D%E3%83%BC%E3%83%88" title="Wikipedia (ja)"&gt;Mini Display ポート&lt;/a&gt;の制限なのか不明だけど、1600 x 1200 (縦長)の表示エリアを生かすことができず、中央部の 1024 x 768 の部分にだけ表示されてしまう。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://programmingmac.blogspot.com/2009/08/snow-leopardmacbook.html"&gt;Snow Leopard にアップデートした&lt;/a&gt;ので、何か変わっているかもしれないと思い、試してみた。結果は・・・× 。&lt;br /&gt;うーんん(´・ω・｀)&lt;/p&gt;

&lt;p&gt;このとき、ふと気がついた。「ActiveRotation を切れば良いんじゃないの？」と。&lt;/p&gt;

&lt;p&gt;もともと、Mac OS X のディスプレイの設定には表示を回転させる項目がある。90度ごとに、4方向に表示を切り替えられる。L997 の機能ではなく、OS X の機能で表示を回転させれば良い。で、やってみた(↓)。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/5-ILbPRD6ygwEjpFJ9taxQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_wobSevGXOh4/SpiGNPCv9XI/AAAAAAAAAbE/hPBPT-v33Rs/s288/IMG_0031.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;うまくいった。&lt;/p&gt;

&lt;p&gt;手順は、(1) L997 の設定で「ActiveRotation II」を無効にする、(2)OS X で「システム環境設定」&gt;「ディスプレイ」を開き、L997側の「回転」を「90度」に設定する、というもの。&lt;/p&gt;

&lt;p&gt;MacBook を買ってから1年以上たって気付くなんてなぁ・・・。&lt;/p&gt;

&lt;p&gt;ちなみに、↑のスクショに写っている背景画像は、どちらも Snow Leopard で追加されたもの。L997 側の方は Snow Leopard のパッケージなんかに使われているもの。MacBook 側のは雪豹が山(ヒマラヤとかかなあ)を歩いている様子。雪豹、かわいいよ。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-6985642941980229474?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/6985642941980229474/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/08/macbook-l997.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/6985642941980229474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/6985642941980229474'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/08/macbook-l997.html' title='MacBook と L997'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_wobSevGXOh4/SpiGNPCv9XI/AAAAAAAAAbE/hPBPT-v33Rs/s72-c/IMG_0031.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-2473726175385449732</id><published>2009-08-28T19:18:00.005+09:00</published><updated>2009-08-28T19:28:49.489+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>Snow Leopard、MacBook にインストールした。</title><content type='html'>&lt;p&gt;うちの MacBook は &lt;a href="http://support.apple.com/kb/SP5?viewlocale=ja_JP"&gt;Early 2008&lt;/a&gt; と呼ばれるモデルで、黒ポリカのやつ。Open CL の恩恵なんかは享受できない。体感的にキビキビ動くようになったと思うのは気のせいだろうか(・ω・)？ Safari がとても速いと思うんだけどな。起動も速い。ページを表示するのも速い。当分、Firefox をインストールするのは見送って、Safari を使ってみよう。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/eV1jfpq0qOwBfEwBTLbeJw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_wobSevGXOh4/SpelZYuynLI/AAAAAAAAAaQ/ap1H_evYcqM/s288/snow-leopard_about.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;事前に流れていた情報どおり、MacBook ではカーネルは 64 bit モードにならない。なったからって、目に見えて良くなるわけじゃないけど、ちょっとションボリ(´・ω・｀)。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-2473726175385449732?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/2473726175385449732/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/08/snow-leopardmacbook.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2473726175385449732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2473726175385449732'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/08/snow-leopardmacbook.html' title='Snow Leopard、MacBook にインストールした。'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_wobSevGXOh4/SpelZYuynLI/AAAAAAAAAaQ/ap1H_evYcqM/s72-c/snow-leopard_about.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-9135224545607570110</id><published>2009-08-28T19:15:00.001+09:00</published><updated>2009-08-29T11:21:19.106+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>Snow Leopard、届いた。</title><content type='html'>&lt;p&gt;発売日に届いた。パッケージはジャストCDサイズ。安っぽくも感じるけど、デカいパッケージはあとあと邪魔になるだけ。この方が良い。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/71ZLrBMjhXLj1hnw1eBIMA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_wobSevGXOh4/SpesLXuZB0I/AAAAAAAAAa0/cNv8sRF19aM/s288/IMG_0016.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;内容は、DVD が1枚にうすい説明書。パッケージもふくめて雪豹だらけ。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/dro71Q0uJHZ6rFFjMg9g9Q?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_wobSevGXOh4/SpiQMjwoEnI/AAAAAAAAAbI/35kcMFMBUBk/s288/IMG_0022.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac?feat=embedwebsite"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;最初、この雪豹の写真を見たときは、ちょっといかつい印象だった。何度も見てたら慣れてきた。見慣れたらカワイイよ、雪豹。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-9135224545607570110?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/9135224545607570110/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/08/snow-leopard.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/9135224545607570110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/9135224545607570110'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/08/snow-leopard.html' title='Snow Leopard、届いた。'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_wobSevGXOh4/SpesLXuZB0I/AAAAAAAAAa0/cNv8sRF19aM/s72-c/IMG_0016.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-8186738582121932235</id><published>2009-08-25T13:21:00.000+09:00</published><updated>2009-08-25T13:22:22.844+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><category scheme='http://www.blogger.com/atom/ns#' term='覚えておきたいモノ'/><title type='text'>[ヒレガス本]Chapter 1. Cocoa: What Is It? (Cocoaって何？)</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;(p.7)&lt;br /&gt;
Most of the time, Cocoa fulfills the promise: Common things are easy, and uncommon things are possible.  If you find yourself writing many lines of code to do something rather than ordinary, you are probably on the wrong track.
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Cocoaプログラマの座右の銘だねえ。「Cocoaを使えば、当たり前のことは簡単に書けるし、そうじゃないことだって少なくとも不可能じゃない。もし、大量のコードを書く羽目におちいったとしたら、たぶん何か間違った道筋をたどっている。」うーん、うまく日本語で表現できないけど、まあ、そんな感じのこと。&lt;/p&gt;

&lt;p&gt;Cocoaだけじゃない、ヒトの手に触れるすべてのプログラム(とそれを作るプログラマ)にとっての指針だ。&lt;/p&gt;

&lt;h4&gt;関連エントリ&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://programmingmac.blogspot.com/2008/05/3rd-ed.html"&gt;ヒレガス本(まとめ)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-8186738582121932235?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/8186738582121932235/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/08/chapter-1-cocoa-what-is-it-cocoa.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/8186738582121932235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/8186738582121932235'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/08/chapter-1-cocoa-what-is-it-cocoa.html' title='[ヒレガス本]Chapter 1. Cocoa: What Is It? (Cocoaって何？)'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-7172265557010004795</id><published>2009-02-06T19:26:00.003+09:00</published><updated>2009-02-06T19:26:00.499+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhoneをプログラミング'/><title type='text'>iPhone SDK (OS 2.2.1用) にアップデート</title><content type='html'>&lt;p&gt;iPhone SDK をアップデート。Xcode のバージョンは変わらず(3.1.2のまま)。かかった時間はやはり10分ほど。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/lQ--TZ7mzvYk96SaqbKZfQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_wobSevGXOh4/SYvlX7WidBI/AAAAAAAAAVY/Fmif0GEJUvI/s288/iphone_sdk_install_OS221.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/IPhone?feat=embedwebsite"&gt;iPhoneをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-7172265557010004795?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/7172265557010004795/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/02/iphone-sdk-os-221.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/7172265557010004795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/7172265557010004795'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/02/iphone-sdk-os-221.html' title='iPhone SDK (OS 2.2.1用) にアップデート'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_wobSevGXOh4/SYvlX7WidBI/AAAAAAAAAVY/Fmif0GEJUvI/s72-c/iphone_sdk_install_OS221.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-5620075950125464409</id><published>2009-02-05T19:25:00.008+09:00</published><updated>2009-02-05T19:28:37.281+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhoneをプログラミング'/><title type='text'>iPhone Developer Program</title><content type='html'>&lt;p&gt;ちょっと手間取ったけど、どうにか iPhone Developer Program のアクティベーションにまでこぎつけた。ADC の iPhone DevCenter で Program Portal に行くボタンが表示されるようになった。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/85At4ja-jktVo-312BMYYg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_wobSevGXOh4/SYq-A1saAPI/AAAAAAAAAUc/Qw8GgA2MD5g/s288/iphone_developer_program_program_portal_button.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.com/mnbiwa/IPhone?feat=embedwebsite"&gt;iPhoneをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;何をどう手間取ったかは、そのうち書こう。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-5620075950125464409?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/5620075950125464409/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2009/02/iphone-develper-program-iphone.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/5620075950125464409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/5620075950125464409'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2009/02/iphone-develper-program-iphone.html' title='iPhone Developer Program'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_wobSevGXOh4/SYq-A1saAPI/AAAAAAAAAUc/Qw8GgA2MD5g/s72-c/iphone_developer_program_program_portal_button.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-559419065797822533</id><published>2008-12-20T23:44:00.011+09:00</published><updated>2010-12-19T22:52:35.377+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='objective-c'/><title type='text'>荻原(2.0)本</title><content type='html'>&lt;div class="postscript" style="padding: 5px 1em; border: #666666 3px solid;"&gt;
&lt;h5&gt;追記@2010-12-19&lt;/h5&gt;
&lt;p&gt;2010年12月に改訂版が出た。改訂版の目次も引き写しておいたので、以下を参照のこと。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2010/12/objective-c-20.html"&gt;「詳解 Objective-C 2.0」の改訂版が出た&lt;/a&gt; (LOG+REPO)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;p&gt;何度も言及しているので、目次だけでも参照できるように書き込んでおく。&lt;/p&gt;

&lt;h4&gt;詳解 Objective-C 2.0 ([著]荻原剛志, [版]SoftBank Creative)&lt;/h4&gt;

&lt;div class="mm-middle" style="margin-bottom:0px;"&gt;&lt;div class="mm-image" style="float:left;"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797346809/mnbi-22/ref=nosim" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41uQ1Wld8PL._SL160_.jpg" alt="詳解 Objective-C 2.0" title="詳解 Objective-C 2.0" width="127" height="160" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="mm-content" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="mm-title" style="line-height:120%"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797346809/mnbi-22/ref=nosim" target="_blank"&gt;詳解 Objective-C 2.0&lt;/a&gt;&lt;/div&gt;&lt;div class="mm-detail" style="margin-top:10px;"&gt;荻原 剛志&lt;br /&gt;ソフトバンククリエイティブ ( 2008-05-28 )&lt;br /&gt;ISBN: 9784797346800&lt;br /&gt;&lt;div style="margin:7px 0px"&gt;&lt;a href="http://mediamarker.net/u/mnbi/?asin=4797346809" target="_blank"&gt;物読みファイル (別館)で詳細を見る&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align:right;font-size:7pt;font-family:verdana"&gt;&lt;a href="http://mediamarker.net/" target="_blank"&gt;MediaMarker&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:left"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;CHAPTER 01. オブジェクトに基づくソフトウェアの作成&lt;/li&gt;
&lt;li&gt;CHAPTER 02. Objective-Cのプログラム&lt;/li&gt;
&lt;li&gt;CHAPTER 03. 継承とクラス&lt;/li&gt;
&lt;li&gt;CHAPTER 04. オブジェクトの型と動的結合&lt;/li&gt;
&lt;li&gt;CHAPTER 05. リファレンスカウンタを用いたメモリ管理方式&lt;/li&gt;
&lt;li&gt;CHAPTER 06. ガーベジコレクション&lt;/li&gt;
&lt;li&gt;CHAPTER 07. NSObjectクラスとランタイムシステム&lt;/li&gt;
&lt;li&gt;CHAPTER 08. Foundationフレームワークの重要なクラス&lt;/li&gt;
&lt;li&gt;CHAPTER 09. カテゴリ&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2010/12/4-macbloggerglass_16.html"&gt;CHAPTER 10. 抽象クラスとクラスクラスタ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CHAPTER 11. プロトコル&lt;/li&gt;
&lt;li&gt;CHAPTER 12. 宣言プロパティとアクセサ&lt;/li&gt;
&lt;li&gt;CHAPTER 13. オブジェクトのコピーと保存&lt;/li&gt;
&lt;li&gt;CHAPTER 14. メッセージ送信のパターン&lt;/li&gt;
&lt;li&gt;CHAPTER 15. アプリケーションの構造&lt;/li&gt;
&lt;li&gt;CHAPTER 16. 例題: 簡易画像ビューア&lt;/li&gt;
&lt;li&gt;CHAPTER 17. 例外とエラー&lt;/li&gt;
&lt;li&gt;CHAPTER 18. スレッド&lt;/li&gt;
&lt;li&gt;CHAPTER 19. 分散オブジェクト&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2010/12/cocoa-bindings.html"&gt;CHAPTER 20. キー値コーディング&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Appendix A: Foundationフレームワークの概要&lt;/li&gt;
&lt;li&gt;Appendix B: コーディングの指針&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-559419065797822533?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/559419065797822533/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/12/20.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/559419065797822533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/559419065797822533'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/12/20.html' title='荻原(2.0)本'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-2323186028590594222</id><published>2008-12-20T23:33:00.004+09:00</published><updated>2010-11-16T09:00:53.306+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cocoa'/><title type='text'>ゾーンについて調べてみた</title><content type='html'>&lt;p&gt;&lt;a href="http://programmingmac.blogspot.com/search/label/%E3%83%92%E3%83%AC%E3%82%AC%E3%82%B9%E6%9C%AC"&gt;ヒレガス本&lt;/a&gt;を読んでいた。ちょっと気になることがあって ADC Documents の中の &amp;quot;&lt;a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/Introduction/Introduction.html"&gt;Cocoa Fundamentals Guide&lt;/a&gt;&amp;quot; を開いた。そこで、"zone" という言葉に出会う。「ああ、そう言えば "allocWithZone" とか見たことあるな。ゾーンって何(・ω・)？」と思ったので、&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;を開いた。「CHAPTER 13. オブジェクトのコピーと保存」の最初にゾーンの解説が載っている。軽く引用してみる:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;(p.304) &lt;br /&gt;
Cocoa では、動的に確保されるメモリの管理をゾーン(zone)と呼ばれる領域を使って行います。(・・・中略・・・)
メモリ空間にいくつかのヒープを設けて、関係の深いデータやオブジェクトは特定のヒープからメモリが割り当てられるようにします。このようにすると、空間的な局所参照性を生かした効率的なメモリアクセスを実現できると期待されます。
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;ページフォールトを避けたい、ってこと何だろうねえ。何というか、C の時代に戻ったような気がするよ。と思いつつ先を読み進むと・・・&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;(p.305)&lt;br /&gt;
Apple社のドキュメントでは、通常はデフォルトゾーンだけの利用で十分な実行効率が得られるとされており、(・・・中略・・・) さらに、ガーベジコレクションを利用した場合には、オブジェクトを生成する時にゾーンを指定することができません。
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;ええええ？？&lt;/p&gt;

&lt;p&gt;しょうがない、英語と格闘するか。と ADC Documents にもどって、ゾーンに関する記述を探した。&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;には &amp;quot;Objective-C 2.0 Runtime Reference&amp;quot;、&amp;quot;Memory Management Programming Guide for Cocoa&amp;quot; の名前が挙がっている。&lt;/p&gt;

&lt;p&gt;&amp;quot;&lt;a href="http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html"&gt;Memory Management Programming Guide for Cocoa&lt;/a&gt;&amp;quot; にこう書いてあった。&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Zones are page-aligned areas of memory that hold the objects and data allocated by an application.
(・・・中略・・・)
In most circumstances, using the default zone is faster and more efficient than creating a separate zone.&lt;/p&gt;
&lt;p&gt;(・・・中略・・・)
For example, allocating a group of related objects in the same zone co-locates those objects in the same area of memory. If a page fault occurs when trying to access one of the objects, loading the page brings in all of the related objects, which could significantly reduce the number of future page faults.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;たいていはデフォルト(ランタイムシステムが自動的に割り当てるゾーン)だけで十分だ。一方で、独立したゾーンを使うと、メモリのフットプリントが大きくなる代わりに、ページフォールトが減らせるかもよ、とも書いてある。&lt;/p&gt;

&lt;p&gt;&amp;quot;&lt;a href="http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/Introduction.html"&gt;Garbage Collection Programming Guide&lt;/a&gt;&amp;quot; では、つぎの一文を発見。&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;
You cannot allocate objects in separate zones—all Cocoa objects must be allocated in a single managed heap. If your application is running in garbage collection mode, the zone parameter in NSAllocateObject is ignored. 
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;GCが有効だと、ゾーンを指定しても無視される、と。&lt;/p&gt;

&lt;p&gt;まとめてみよう・・・。Mac で、それも Leopard 以降だけをプラットフォームとするなら、GC を使えるし、使いたいだろう。その場合、ゾーンのことは忘れて OK。けど、iPhone OS では GC は使えない。しかもメモリやパフォーマンスはシビアなプラットフォームだから、ゾーンを使ったプログラミングが関係してくるかもしれない。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-2323186028590594222?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/2323186028590594222/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/12/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2323186028590594222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2323186028590594222'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/12/blog-post.html' title='ゾーンについて調べてみた'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-4334886288385561305</id><published>2008-12-14T13:54:00.001+09:00</published><updated>2008-12-14T13:54:43.876+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhoneをプログラミング'/><title type='text'>"Beginning iPhone Development" が届いた</title><content type='html'>&lt;p&gt;今日、Amazon から届いた。&lt;/p&gt;

&lt;p&gt;表紙の輪切りフルーツは何？ 裏表紙を見ると関連するタイトルで同様の柑橘系フルーツの輪切り写真が使われていて、レモン、ライム、オレンジのように見える。とすると、この iPhone のやつは・・・。&lt;/p&gt;

&lt;p&gt;それはさておき、まずは目次。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CHAPTER 1 Welcome to the Jungle&lt;/li&gt;
&lt;li&gt;CHAPTER 2 Appeasing the Tiki Gods&lt;/li&gt;
&lt;li&gt;CHAPTER 3 Handling Basic Interaction&lt;/li&gt;
&lt;li&gt;CHAPTER 4 More User Interface Fun&lt;/li&gt;
&lt;li&gt;CHAPTER 5 Autorotation and Autosizing&lt;/li&gt;
&lt;li&gt;CHAPTER 6 Multiview Applications&lt;/li&gt;
&lt;li&gt;CHAPTER 7 Tab Bars and Pickers&lt;/li&gt;
&lt;li&gt;CHAPTER 8 Introduction to Table Views&lt;/li&gt;
&lt;li&gt;CHAPTER 9 Navigation Controllers and Table Views&lt;/li&gt;
&lt;li&gt;CHAPTER 10 Application Settings and User Defaults&lt;/li&gt;
&lt;li&gt;CHAPTER 11 Basic Data Persistence&lt;/li&gt;
&lt;li&gt;CHAPTER 12 Drawing with Quartz and OpenGL&lt;/li&gt;
&lt;li&gt;CHAPTER 13 Tabs, Touches, and Gestures&lt;/li&gt;
&lt;li&gt;CHAPTER 14 Where Am I? Finding Your Way with Core Location&lt;/li&gt;
&lt;li&gt;CHAPTER 15 Whee!&lt;/li&gt;
&lt;li&gt;CHAPTER 16 iPhone Camera and Photo Library&lt;/li&gt;
&lt;li&gt;CHAPTER 17 Application Localization&lt;/li&gt;
&lt;li&gt;CHAPTER 18 Where to Next?&lt;/li&gt;
&lt;/ul&gt;

&lt;div style="margin-bottom:0px;"&gt;&lt;div style="float:left;"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1430216263/mnbi-22/ref=nosim" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41LV4D3yU6L._SL160_.jpg" alt="Beginning iPhone 2 SDK Development (Beginning)" title="Beginning iPhone 2 SDK Development (Beginning)" width="121" height="160" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div style="line-height:120%"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1430216263/mnbi-22/ref=nosim" target="_blank"&gt;Beginning iPhone 2 SDK Development (Beginning)&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top:10px;"&gt;Dave Mark, Jeff Lamarche&lt;br /&gt;Apress ( 2008-11-26 )&lt;br /&gt;ISBN: 9781430216261&lt;br /&gt;&lt;div style="margin:7px 0px"&gt;&lt;a href="http://mediamarker.net/u/mnbi/?asin=1430216263" target="_blank"&gt;mnbiのバインダーで詳細を見る&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align:right;font-size:7pt;font-family:verdana"&gt;&lt;a href="http://mediamarker.net/" target="_blank"&gt;MediaMarker&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-4334886288385561305?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/4334886288385561305/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/12/beginning-iphone-development.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/4334886288385561305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/4334886288385561305'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/12/beginning-iphone-development.html' title='&quot;Beginning iPhone Development&quot; が届いた'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-8137958898511813555</id><published>2008-12-13T21:46:00.000+09:00</published><updated>2008-12-13T21:49:16.053+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhoneをプログラミング'/><title type='text'>iPhone SDK (OS 2.2用) にアップデート</title><content type='html'>&lt;p&gt;MacBookの方の Xcode、っていうか iPhone SDK をアップデート。iPhone OS 2.2 対応のもの。Xcode は 3.1.2。インストールにかかった時間は約10分。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/n9p2w0-pTUSRpmuqzd34ZQ"&gt;&lt;img src="http://lh4.ggpht.com/_wobSevGXOh4/SUOuEY4ja-I/AAAAAAAAAQ8/v5oU1eZNqM8/s288/iphone_sdk_install_OS22.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/IPhone"&gt;iPhoneをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-8137958898511813555?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/8137958898511813555/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/12/iphone-sdk-os-22.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/8137958898511813555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/8137958898511813555'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/12/iphone-sdk-os-22.html' title='iPhone SDK (OS 2.2用) にアップデート'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_wobSevGXOh4/SUOuEY4ja-I/AAAAAAAAAQ8/v5oU1eZNqM8/s72-c/iphone_sdk_install_OS22.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-3767883098932494581</id><published>2008-12-05T23:50:00.001+09:00</published><updated>2008-12-05T23:50:38.851+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powermac'/><title type='text'>Xcode 3.1.2 にアップデート</title><content type='html'>&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/urqSKScdVD3c53mfofY48g"&gt;&lt;img src="http://lh4.ggpht.com/_wobSevGXOh4/STk_IaC9GLI/AAAAAAAAAPo/uvtavcIVVS4/s288/about_xcode_312.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-3767883098932494581?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/3767883098932494581/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/12/xcode-312.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3767883098932494581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3767883098932494581'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/12/xcode-312.html' title='Xcode 3.1.2 にアップデート'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_wobSevGXOh4/STk_IaC9GLI/AAAAAAAAAPo/uvtavcIVVS4/s72-c/about_xcode_312.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-4104436143317649712</id><published>2008-11-29T17:57:00.002+09:00</published><updated>2008-11-29T18:11:12.663+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ツール'/><title type='text'>MindNode Pro を使うことにする</title><content type='html'>&lt;p&gt;FreeMind はファイルの拡張子に「.mm」を使う。これは Objective-C++ 用として Xcode にひもづけられている。気に入らない。「.mmap」とかに変えると、今度は FreeMind が開けないと文句を言う。むかつく。立ち上げた後、ファイルを開こうとするとダイアログはデフォルトが「.mm」でフィルタリングされている。いちいち「All Files」に変えないと他の拡張子のファイルを探せない。イライラする。&lt;/p&gt;

&lt;p&gt;他のソフトを探してみることにした。「mac mindmap」でグーグルさんに聞いてみると、すぐに MindNode というソフトが見つかった。まだ新しいソフトのようだけど、評判も良さそう。&lt;/p&gt;

&lt;p&gt;公式サイトを開く( &lt;a href="http://www.mindnode.com/"&gt;MindNode &amp;gt;&amp;gt; MindNode Pro&lt;/a&gt; )。フリー版がある。試してみた。うん、なかなかイイ感じ。あれ、ノードの移動ができないぞ。むむむ、カット＆ペーストしろっていうのか？ ほほお、それは Pro 版(有料)ならできるのか。いくらいくら？ 11.95 ユーロって・・・(だいたい￥1,500.-ぐらいらしい)。そこまで言うなら買おうじゃないか。PayPal でお支払い。&lt;/p&gt;

&lt;p&gt;こんな感じ(↓)。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/-7rmGfjo0uLCOLvc32fpVg"&gt;&lt;img src="http://lh4.ggpht.com/_wobSevGXOh4/STECro3oSTI/AAAAAAAAAPI/Ya-TSaBzeWU/s288/mindnodepro.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-4104436143317649712?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/4104436143317649712/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/11/mac.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/4104436143317649712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/4104436143317649712'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/11/mac.html' title='MindNode Pro を使うことにする'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_wobSevGXOh4/STECro3oSTI/AAAAAAAAAPI/Ya-TSaBzeWU/s72-c/mindnodepro.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-2087251617953067261</id><published>2008-11-24T15:03:00.003+09:00</published><updated>2008-11-29T18:12:16.500+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powermac'/><title type='text'>Power Mac にメモリ増設</title><content type='html'>&lt;p&gt;Power Mac G5 にメモリを増設した。少し前から、2GBだと少しキツいな、と思い始めていた。ブラウザ(Firefox と Safari)、メールに iCal、iTunes、iPhoto。Omni系のアプリが加わることもある。これでもういっぱいいっぱい。アクティビティモニタで「システムメモリ」を見ると緑の部分(空き)がほとんど残らない。というか、すでにページアウトが増えている状態。ここから Xcode を起動すれば、その分がそのまま他を押し出すことになる。&lt;/p&gt;

&lt;p&gt;で、思い切って買ってみることにした。ちなみにうちの Power Mac は G5で、Early 2005 って言われているやつ。&lt;/p&gt;

&lt;p&gt;増設作業自体は簡単。Power Mac に付属してきたマニュアルに書いてあるとおりにやればOK。スロットは少々、カタく、けっこう力をかけて押し込まなければならなかった。良く見れば、きちんと刺さっているかどうかはわかる。&lt;/p&gt;

&lt;p&gt;少しドキドキしながら起動。無事に起動する。ログインして「このMacについて」を表示させると・・・このとおり(↓):&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/TIHxO5SjVn5pHcFlY751Bg"&gt;&lt;img src="http://lh5.ggpht.com/_wobSevGXOh4/SSpBUx1HS0I/AAAAAAAAAOI/H4x8g2DzLTc/s144/about_power_mac_g5.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;さらにプロファイラを開いてメモリの項目を見たものがコレ(↓):&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/7edH255Ov744sLKAhl-eVw"&gt;&lt;img src="http://lh3.ggpht.com/_wobSevGXOh4/SSpDP1-RmrI/AAAAAAAAAOo/f8-1702RyiE/s288/profiler_power_mac_g5.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/Mac"&gt;Macをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;買ったのはコレ(↓):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.dospara.co.jp/5goods_parts/parts_detail.php?h=d&amp;f=d&amp;m=parts&amp;ic=81140&amp;lf=0"&gt;A-DATA DDR SDRAM PC3200 ADATA 1GBx2 HEAT SINK付き&lt;/a&gt; (ドスパラの通販ページより)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;送料込みで￥6,800.-ぐらい。金曜日(11/21)の夜(ってか深夜)にネットで発注して、今朝(11/24)届いた。素早い発送で満足。次の週末になるかと思っていたからね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-2087251617953067261?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/2087251617953067261/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/11/power-mac.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2087251617953067261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/2087251617953067261'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/11/power-mac.html' title='Power Mac にメモリ増設'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_wobSevGXOh4/SSpBUx1HS0I/AAAAAAAAAOI/H4x8g2DzLTc/s72-c/about_power_mac_g5.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-465289388751908070</id><published>2008-11-08T21:49:00.002+09:00</published><updated>2008-12-13T21:52:30.078+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhoneをプログラミング'/><title type='text'>iPhone SDK をインストールしてみた</title><content type='html'>&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/qUBdjVRg1tVsjNgyvxsNgQ"&gt;&lt;img src="http://lh6.ggpht.com/_wobSevGXOh4/SRWKb4tNM-I/AAAAAAAAAMs/Nww5aqoCADc/s144/iphone_sdk_install_window.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/IPhone"&gt;iPhoneをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;インストールに要した時間は約10分。インストールしたのは MacBook (Early 2008; 黒)。Xcode はインストールずみだったので、上書き + 追加、ってことになる。&lt;/p&gt;

&lt;p&gt;インストール完了後、Xcode を立ち上げる。新規プロジェクトを選ぶと、確かに 「iPhone OS」が選択肢に増えている。&lt;/p&gt;

&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/0jU_SsXrmstyqv5iglbg0Q"&gt;&lt;img src="http://lh3.ggpht.com/_wobSevGXOh4/SRWNqY4M_rI/AAAAAAAAAM0/I9EpAaAga5s/s288/iphone_new_project_dialog.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/mnbiwa/IPhone"&gt;iPhoneをプログラミング&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-465289388751908070?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/465289388751908070/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/11/iphone-sdk.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/465289388751908070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/465289388751908070'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/11/iphone-sdk.html' title='iPhone SDK をインストールしてみた'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_wobSevGXOh4/SRWKb4tNM-I/AAAAAAAAAMs/Nww5aqoCADc/s72-c/iphone_sdk_install_window.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-3165968157107716701</id><published>2008-07-30T02:26:00.002+09:00</published><updated>2008-12-06T02:31:17.626+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>MacBookが届いた</title><content type='html'>&lt;p&gt;昨夜(2008-07-29)、20:00ごろに届いた。軽く設定などをやってみた。思い出せるだけ書きとめておこう。&lt;/p&gt;

&lt;h5&gt;現状&lt;/h5&gt;
&lt;p&gt;→ Time Capsule で初回のバックアップが完了した。&lt;/p&gt;

&lt;h5&gt;作業ログ&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;MobileMe に接続完了。
&lt;ul&gt;
&lt;li&gt;Mail.app は MobileMe アカウントのみで使う予定。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Firefox インストール完了。&lt;/li&gt;
&lt;li&gt;AquaSKK インストール完了。&lt;/li&gt;
&lt;li&gt;Xcodeのインストールイメージ、転送完了。&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-3165968157107716701?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/3165968157107716701/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/07/macbook.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3165968157107716701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3165968157107716701'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/07/macbook.html' title='MacBookが届いた'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-5647780074363592061</id><published>2008-07-24T02:34:00.001+09:00</published><updated>2008-12-06T02:35:47.464+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>MacBook、買ってしまった</title><content type='html'>&lt;p&gt;2008-07-23の夜、Appl Store で黒い MacBook を発注した。メモリを増設して、キーボードをUSにした。即日発送とはならず、早くて 7/25 発送とのこと。これが Amazon なら翌日に届いたりするんだけどねえ。ともあれ、初の intel Mac だ。&lt;/p&gt;

&lt;p&gt;買おう、買おうといいつつ、最後の一歩が踏み出せなかった。最終的な背中を押したのは、直前にヨドバシカメラで実物に触れてみたときに、部屋の PowerBook よりはるかに速い、ひょっとしたら Power Mac より速いんじゃないかと感じたことだ。先週末(7/19)に iPhone を買えたことで調子に乗っているというのもある。&lt;/p&gt;

&lt;p&gt;秋に新しい製品が出るんじゃないか、MacBook だろう、なんていう噂もあるみたい(今日、知った)だけど気にしないでおこう。今の黒いヤツの見た目も気に入ってるし(黒地に白のリンゴマークがイイ)。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-5647780074363592061?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/5647780074363592061/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/07/macbook_24.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/5647780074363592061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/5647780074363592061'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/07/macbook_24.html' title='MacBook、買ってしまった'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-1598343175451479570</id><published>2008-07-10T22:49:00.003+09:00</published><updated>2008-07-10T22:56:01.187+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='指先に触れるモノ'/><title type='text'>新しいキーボード</title><content type='html'>&lt;p&gt;昨夜、不意に思った(というか決心した)。新しいキーボードを買おう、と。これは前日、急に Power Mac のキーボード(Wireless Keyboardの最初のやつ)のキーが重いと感じたから。しばらく前から Apple 純正のキーボードは何やらアルミっぽい薄型のものに変わっている。なんとなく気になっていたんだ。&lt;/p&gt;

&lt;p&gt;純正のキーボードは 2 種類。USB接続のフルキーボードとワイヤレス(Bluetooth)なコンパクトなタイプ。以前からテンキーはいらないと思っていたから、迷わずコンパクトタイプを選びたかったんだけど、問題がひとつ。右側の Control キーがないこと。Emacsもしくは Emacs っぽいキー操作に慣れたものにとって、Control キーが片方にしかないっていうのは重大な問題だ。世の中には Caps Lock の位置に Control があるようなキーボードに慣れている人たちもいるらしいけど、わたしは違う。Control が最下段の両端に2つある(由緒正しい) IBM キーボードに出会って以来、Control は両端にあるべきだと精神と身体が求めている。&lt;/p&gt;

&lt;p&gt;同様の悩みは PowerBook を使うときにもあって、こちらも Control は左側にしかない。右側の Command のとなりはなぜか [Enter]。&lt;a href="http://doublecommand.sourceforge.net/"&gt;DoubleCommand&lt;/a&gt; という最下段のキー配列を変えてくれるソフトがなければ PowerBook を使うのが苦痛に感じられていたかもしれない。&lt;/p&gt;

&lt;p&gt;実はこの問題、「システム設定」で対処することができる。というのも現行のコンパクトタイプの最下段の配列(あ、言うまでもなく US 配列だぞ)は、こんな感じ(↓):&lt;/p&gt;

&lt;pre&gt;[fn][control][option][command][Space Bar][command][option]&lt;/pre&gt;

&lt;p&gt;右側の[option]が[control]になってくれれば問題ない。それなら「システム設定」で修飾キーの変更ができるのだ。つまり、option と control を入れ替えれば良い。こうすると左側の方も入れ替わってしまうけど、左右対称になってこの方がイイ感じ。&lt;/p&gt;

&lt;p&gt;ちなみに、このコンパクトキーボードの配列は現行の MacBook なんかと同じらしい。だから、MacBook を買ったとしても同じ方法で対処できるってこと。&lt;/p&gt;

&lt;p&gt;と、問題が解決できることがわかったので、今日、早速、仕事帰りに買ってきた。ヨドバシカメラで￥10,200.-。値段はそれなり。けど、箱が小さいし、薄い。コンパクトタイプとは言え、カバンにすっぽり収まった。&lt;/p&gt;

&lt;p&gt;自宅に戻り、箱を開けて中身を取り出すと・・・「小さい！！ 薄い！！！」。ビックリした。Bluetooth接続なので単三電池を入れるだけの空間は確保されているのだけど、そのことを感じさせない。まるで机の上に直接キーが並んでいるように錯覚する。今まで使っていたフルサイズのキーボードがやたらデカくて不細工なものに見えてしまう。&lt;/p&gt;

&lt;p&gt;小さくて、薄くて、それこそ吹けば飛びそうなのに、しっかりとした重量感がある。机の上にしっかりと固定される感じがある。それもあって机の表面にキーがあるように思うんだよね。&lt;/p&gt;

&lt;p&gt;とまどったのは、ファンクションキーの扱いが変わっていることだけ。従来どおりのファンクションキーにするには Fn キーと組み合わせる必要がある。ノートのキーボードと同じになったってことか。&lt;/p&gt;

&lt;p&gt;正直、キーの配列(US配列限定)を除けば Apple のキーボードが良いと思ったことはないんだけど、これは良い。現行の MacBook にはほとんど触れたことがないんだけど、キーのサイズやストロークはこれと同等なのだろう。そのうち、気付かない間にモデルチェンジして手に入らなくなるかもしれないから、予備も買っておいた方がイイかも。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-1598343175451479570?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/1598343175451479570/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/07/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1598343175451479570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1598343175451479570'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/07/blog-post.html' title='新しいキーボード'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-1804393390480009110</id><published>2008-06-24T23:53:00.000+09:00</published><updated>2008-06-24T23:55:30.519+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><title type='text'>[ヒレガス本]Chapter 4. Memory Management #2</title><content type='html'>&lt;a href="http://programmingmac.blogspot.com/2008/06/chapter-4-memory-management.html"&gt;前回&lt;/a&gt;より続き。

&lt;p&gt;p.70&lt;br /&gt;
配列(NSMutableArray)にオブジェクトが追加されるときにオブジェクトはコピーされない。配列中に保持されるのはオブジェクトへのポインタ。で、そのとき追加されるオブジェクトに retain が送られる。配列が削除(deallocate)されるときに、格納されていた各オブジェクト(へのポインタ)に release が送られる。同様に、配列から要素(オブジェクト)が取り除かれるときにもオブジェクトに release が送られる。&lt;/p&gt;

&lt;h4&gt;Releaseに関する規則 (p.73)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;alloc, new, copy および mutableCopy で作られたオブジェクトは retain count が 1 になっていて、autorelease pool には登録されていない。&lt;/li&gt;
&lt;li&gt;他のメソッドで作られたオブジェクトは、autorelease されている(retain count が 1)。deallocate されたくないときは retain する必要がある。&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;アクセサ&lt;/h4&gt;
&lt;p&gt;他のオブジェクトを保持するインスタンス変数があったとして、その setter をどう書くか。setter に今保持しているのと同じオブジェクトが渡される可能性に対応するため、以下のように書く必要がある。&lt;/p&gt;

&lt;pre&gt;
- (void)setFoo:(NSCalendarDate *)x
{
    [x retain];
    [foo release];
    foo = x;
}
&lt;/pre&gt;

&lt;p&gt;この方法以外にも、release と代入の前に(同じオブジェクトかどうかを)チェックする、あるいは release の代わりに autorelease を使う、というのもある。3つのどれでも良いけれど(それぞれにトレードオフがある)、この本では最初の「retain して release」を選ぶ、と。&lt;/p&gt;

&lt;h4&gt;これで終わり！！&lt;/h4&gt;
&lt;p&gt;Objective-C に関する説明はここまで。残りは Cocoa フレームワークに関する話題が中心になる、とのこと。(p.77)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-1804393390480009110?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/1804393390480009110/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-4-memory-management-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1804393390480009110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1804393390480009110'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-4-memory-management-2.html' title='[ヒレガス本]Chapter 4. Memory Management #2'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-7494086358794252076</id><published>2008-06-14T03:16:00.004+09:00</published><updated>2008-12-20T23:51:45.539+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><title type='text'>[ヒレガス本]Chapter 4. Memory Management</title><content type='html'>&lt;p&gt;メモリ管理に関する章。Leopard 以降の特徴のひとつである garbage collection についての記述が始めに来る(p.66 - 68)。その部分を読んだところ。&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;(CHAPTER 06)では「ガーベジコレクション」となっているけど、ここでは Xcode の日本語表記に合わせて「ガベージコレクション」としておく。&lt;/p&gt;

&lt;h4&gt;ガベージコレクションについて覚えておくこと - その1&lt;/h4&gt;

&lt;p&gt;ビルドの設定を変える(p.67)。「必須 (-fobjc-gc-only)」を選べば良い。「サポートあり (-fobjc-gc)」の方は両モードで動けるようなフレームワークだとか、プラグインを作るときに選ぶもの。&lt;/p&gt;

&lt;p&gt;そうそう、ここでちょっと驚いたこと。ヒレガス本の p.67 には、ビルドの設定の中から GC に関する項目を探すために「情報パネル」の検索ボックスを使うように書かれている。で、それを日本語環境でやろうとすると検索語も日本語で入力しないと見つけられなかった。「Garbage」では見つからず「ガーベジ」でも見つからず(だから&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原本&lt;/a&gt;の記述はちょっとマズいだろ)、「ガベージ」でようやく見つかった。検索ボックスはそういうものなんだとわかれば当たり前だけどね。というか、この挙動の方が直観的か。驚く方がヒネクレているんだろう・・・orz&lt;/p&gt;

&lt;p&gt;ヒレガスは GC に完全に頼り切る前に、一通りは従来の方式(リテインカウント方式)も知っておくべきだと言う。以下、その部分を引用。&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;
In the future, you may decide, "This retain-count stuff is for the birds. I'm going to use the garbage collector for everything." I wouldn't blame you. For now, however, learn about the retain-count mechanism. When you study old code or anything that uses lower-level frameworks (such as CoreFoundation), you will want to understand how it works.
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;古いコードを調べる必要があるかもしれないし、低レベル層のフレームワーク(CoreFoundationなど)を使うことがあるかもしれない。そうなればきっと、従来の方式がどう働くのかを知りたくなるよ、と。&lt;/p&gt;

&lt;p&gt;過渡期なんだろうけど、つまりいずれ GC を使わない Cocoa アプリはなくなって、Xcode のオプションもデフォルトで -fobjc-gc-only が付くようになる(むしろコンパイラのデフォルトが変わるかも)。それは言い換えると、プログラマが Leopard より前の OSX のことをサポートしないと決めたとき、なんだけど。「ユキちゃん(Snow Leopard)」が出る頃には Tiger はいなくなっているかね。&lt;/p&gt;

&lt;h4&gt;ガベージコレクションについて覚えておくこと - その2&lt;/h4&gt;

&lt;p&gt;オブジェクトへの参照を保持している変数には、そのオブジェクトを使わなくなった時点で、nil を代入する。従来の方式で release するようなものか。これをやらないと、たとえローカルな自動変数であってもそのスコープにいる間はオブジェクトが回収されない。&lt;/p&gt;

&lt;h4&gt;ガベージコレクションについて覚えておくこと - その3&lt;/h4&gt;

&lt;p&gt;その3はない。Chapter 4 の残りはリテインカウント方式の解説だ、と。&lt;/p&gt;

&lt;h4&gt;&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;から拾ってみる&lt;/h4&gt;

&lt;p&gt;p.125 から引用。&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;
両用が可能なコードを記述するのは大変困難であり、Apple 社のドキュメントでもそのような記述は推奨されていません。どちらのメモリ管理方式を採用するか決めたら、その方式で完全に動作するようにプログラミングするべきです。
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;「両用」というのは従来のリテインカウント方式と GC 方式のどちらでも動くように作るという意味。&lt;/p&gt;

&lt;p&gt;過渡期っていうのは悩ましいね。一部のパフォーマンスに対する要求が厳しいプログラムを除けば GC を使うべきだろう。ただし、その場合 Tiger 以前のユーザを切り捨てることになる。&lt;/p&gt;

&lt;p&gt;追記@2008-06-24: &lt;a href="http://programmingmac.blogspot.com/2008/06/chapter-4-memory-management-2.html"&gt;続き&lt;/a&gt;。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-7494086358794252076?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/7494086358794252076/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-4-memory-management.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/7494086358794252076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/7494086358794252076'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-4-memory-management.html' title='[ヒレガス本]Chapter 4. Memory Management'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-3395006420529548503</id><published>2008-06-09T23:31:00.002+09:00</published><updated>2008-12-20T23:52:52.252+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><title type='text'>[ヒレガス本]Chapter 3. Objective-C #2</title><content type='html'>&lt;p&gt;ヒレガス本、p.44あたりから。&lt;/p&gt;

&lt;p&gt;p.45の 「"Inherits from" versus "Uses" or "Knows About"」は、むやみに継承を使うな、という主張。何でもかんでも継承を使いたくなるのはオブジェクト指向プログラミングを覚え始めたときにみんな通る道だよねえ。ともあれ、Objective-C のような動的な言語では継承を使う必要性はほとんどない、とのこと(NSObjectを継承するのは別として)。この本(ヒレガス本)の中で継承はたった2個所しか使ってないゾ、と書いてある。&lt;/p&gt;

&lt;p&gt;p.51で LotteryEntry の実装に description メソッドを追加しているけれど、ヘッダの方には宣言を加えていない。これは - (NSString *)description が NSObject で宣言されているメソッドだから。ちなみに、この description メソッドはデバッガでオブジェクトを "print" した際に呼ばれるそうだ(ADC Home &amp;gt; Reference Library &amp;gt; References &amp;gt; Cocoa &amp;gt; Objective-C Language &amp;gt; NSObject Protocol Reference)。デフォルトではクラス名と id 値を表示するだけ(荻原(2.0)本、p.148より)とのことなので、クラスを作ったときは専用の description を書いておくべきだろうね。デバッグしやすいから。&lt;/p&gt;

&lt;p&gt;p.56。Cocoa のクラスイニシャライザの中には初期化に失敗すると nil を返すものがある。スーパークラスのイニシャライザが nil を返す場合、nil チェックをして自分も nil を返すべき。&lt;/p&gt;

&lt;p&gt;p.57。designated initializer のことは&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;のp.55-56に「指定イニシャライザ」として記述がある。ヒレスガ本のこのページの最後に書いてあるのは、「もし初期化の際に引数が必須となるクラスを作ったら、スーパークラスの指定イニシャライザをオーバーライドして例外をスローするようにすべし」というもの。正しい引数なしにイニシャライザが呼び出されてしまうのを防ぐため。&lt;/p&gt;

&lt;h4&gt;覚えたこと&lt;/h4&gt;

&lt;p&gt;@"some text" 記法は 7bit で ASCII な文字しか書いてはいけない。つまり、日本語なんかは書けない。荻原(2.0)本だと p.177 の「オブジェクト定数の文字列」に同様の記述がある。@"..." 記法で書かれた文字列は NSString オブジェクト定数 (a string object constant) になる。&lt;/p&gt;

&lt;p&gt;デバッガでオブジェクトの内容を表示させるのは "po" (print-object) コマンド。「内容を表示」といっても description メソッドを呼ぶだけ。&lt;/p&gt;

&lt;h5&gt;メッセージ送信が働く仕組み&lt;/h5&gt;
&lt;p&gt;p.62と63にある記述("For the More Curious: How Does Messaging Work?")。荻原(2.0)本だと p.148からの「07-02 メッセージ送信の仕組み」にもう少し詳しく書いてある。&lt;/p&gt;

&lt;p&gt;オブジェクト(インスタンス)へのメッセージ送信は、コンパイル時に C の関数呼び出しの形に書き換えられる。&lt;/p&gt;

&lt;pre&gt;[myOjbect addObject:yourObject];&lt;/pre&gt;

&lt;p&gt;が、&lt;/p&gt;

&lt;pre&gt;objc_msgSend(myObject, 12, yourObject);&lt;/pre&gt;

&lt;p&gt;になる。レシーバーが第1引数、第2引数はセレクタ、以後はセレクタの引数が並ぶ形。上の例でセレクタを 12 という整数値で表しているけれど、これは「例え」であって実際に SEL 型が &lt;code&gt;int&lt;/code&gt; だというわけではない。著者は、ほんとうは&lt;code&gt;char *&lt;/code&gt;なんだけど、&lt;code&gt;int&lt;/code&gt; と考えると便利だよ、と言っているだけ。&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原本&lt;/a&gt;だと、SEL 型に関しては以下のように記述されている:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;
セレクタが異なれば対応する SEL 型の値も異なり、同じセレクタには必ず同じ SEL 型の値が対応します。Objective-C のプログラマは、SEL 型が具体的にどんな値を持つかについて知っている必要はありません。詳細は処理系に依存します。
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;このあたりのことは「&lt;a href="http://journal.mycom.co.jp/column/objc/018/index.html" title="【コラム】ダイナミックObjective-C (18) メソッドとは何か(1) - メソッド、セレクタ、メソッドの実装"&gt;ダイナミックObjective-C&lt;/a&gt;」というネット上のコラムに、もう少し踏み込んだ解説がある。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-3395006420529548503?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/3395006420529548503/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-3-objective-c-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3395006420529548503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/3395006420529548503'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-3-objective-c-2.html' title='[ヒレガス本]Chapter 3. Objective-C #2'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-5567613292354176808</id><published>2008-06-05T23:13:00.003+09:00</published><updated>2008-12-20T23:53:27.976+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><title type='text'>[ヒレガス本]Chapter 3. Objective-C</title><content type='html'>&lt;h4&gt;覚えたこと&lt;/h4&gt;

&lt;h5&gt;nil にメッセージを送ると・・・&lt;/h5&gt;
&lt;blockquote&gt;&lt;p&gt;(p.40)&lt;br /&gt;In Objective-C, it is okay to send a message to &lt;code&gt;nil&lt;/code&gt;.
The message is simply discarded, which eliminates the need for these sort of checks.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Objective-C では nil にメッセージを送っても良い。単にメッセージが捨てられるだけ。エラーも例外も発生しない。C/C++/Java でおなじみの null チェックは不要だということ。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;だとp.62-63にかけて、このあたりの解説がある。ただ nil チェックを書かないことに関しては↓が著者の主張:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;ただし、プログラムは簡単になりますが、「nil だった場合に何もしない」という意図が分かりにくくなることは確かです。従って、誤りが混入する危険性も高くなります。&lt;/p&gt;&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;これはおっしゃるとおり。プログラマはいつだって自らの意図をどうやってコードに込めようかと腐心しているのだから、意図を表現できる機会を減らすべきじゃない。っていうか、いろいろパターンを思い浮かべたけど「安全に nil チェックを省略できる」場合が出てこない。さらに、何も起こらないってことは nil にメッセージを送っているってこともわからないわけで、ヒレガス本の言う(p.40)ように「何でメッセージが届かないんだあ!!!」状態に陥りそう。&lt;/p&gt;

&lt;h5&gt;NSArrayには nil を入れられない&lt;/h5&gt;
&lt;blockquote&gt;&lt;p&gt;(p.44)&lt;br /&gt;You cannot put a nil in an NSArray.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;もちろん、NSMutableArrayでも同じ。これはちょっと意外だった。だから書き留めておく。で、nil が入れられない代わりに用意されたのが NSNull というクラス。使い方は↓&lt;/p&gt;

&lt;pre&gt;
[myArray addObject:[NSNull null]];
&lt;/pre&gt;

&lt;hr /&gt;

&lt;p&gt;さて、今日は p.54ぐらいまでで、時間切れ。夜が短いよ。&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;追記@2008-06-11:続きは&lt;a href="http://programmingmac.blogspot.com/2008/06/chapter-3-objective-c-2.html"&gt;こちら&lt;/a&gt;。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-5567613292354176808?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/5567613292354176808/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-3-objective-c.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/5567613292354176808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/5567613292354176808'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-3-objective-c.html' title='[ヒレガス本]Chapter 3. Objective-C'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-4250336804974899025</id><published>2008-06-04T00:22:00.001+09:00</published><updated>2008-12-20T23:53:47.985+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><title type='text'>[ヒレガス本]Chapter 2: Let's Get Started (さあ、始めよう) #2</title><content type='html'>&lt;p&gt;&lt;a href="http://programmingmac.blogspot.com/2008/06/chapter-2-lets-get-started.html"&gt;前回&lt;/a&gt;の続き。&lt;/p&gt;

&lt;h4&gt;デリゲートって何&lt;/h4&gt;

&lt;p&gt;「&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;」の CHAPTER 14 にデリゲートの説明がある。要は下働きのためのオブジェクトってこと。&lt;/p&gt;

&lt;p&gt;デリゲート機構を持つオブジェクトは何か特定のメッセージを受けたときに、もしデリゲートオブジェクトがセットされていれば、そいつに問い合わせたり、処理を任せたりする。このとき元のオブジェクトはセットされているデリゲートオブジェクトが送りたいメッセージを受け取れるかどうかを &lt;code&gt;respondsToSelector:&lt;/code&gt;などで調べる。受け取れるオブジェクトならメッセージを送る(つまり、問い合わせたり処理を任せたり)。&lt;/p&gt;

&lt;p&gt;デリゲートになるオブジェクトは送られる可能性のあるメッセージすべてに対応する必要はない。対応したいメソッドだけを実装すれば良いことになっている。だから元のオブジェクトは事前に調べる必要があるわけだ。まあ、なんというかデリゲートになる方がエラそうなわけだ。やりたい仕事だけ受け付けます、と。&lt;/p&gt;

&lt;p&gt;さて、ここで(前回の)非形式プロトコルが登場する。デリゲートになるオブジェクトは好きなメソッドだけ実装すれば良いという規約なので、通常のプロトコルではまずい。プロトコルを採用するというのはそこで宣言されたすべてのメソッドを実装するっていう意味だから。そのための "ugly" な方法(ヒレガス本より)が非形式プロトコルだったわけだ。Objective-C 2.0 以降はオプション付きプロトコルが導入されて、もう必要なくなった。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-4250336804974899025?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/4250336804974899025/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-2-lets-get-started-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/4250336804974899025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/4250336804974899025'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-2-lets-get-started-2.html' title='[ヒレガス本]Chapter 2: Let&apos;s Get Started (さあ、始めよう) #2'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-9115395094246270597</id><published>2008-06-02T23:50:00.002+09:00</published><updated>2008-06-04T00:36:58.077+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Site、作ってみた</title><content type='html'>&lt;p&gt;作ってみた↓。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sites.google.com/site/programmingmac/"&gt;Macをプログラムする&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;以下は、Official Google Blog での告知へのリンク。使い方の動画も貼られている。それを見るとだいたいの感じがわかる。英語だけど操作の様子が映るから問題ない。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://googleblog.blogspot.com/2008/05/google-sites-now-open-to-everyone.html"&gt;Google Sites bow open to everyone&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-9115395094246270597?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/9115395094246270597/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/06/google-site.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/9115395094246270597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/9115395094246270597'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/06/google-site.html' title='Google Site、作ってみた'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-7940439401003977172</id><published>2008-06-02T23:29:00.005+09:00</published><updated>2008-12-20T23:54:23.622+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><title type='text'>[ヒレガス本]Chapter 2: Let's Get Started (さあ、始めよう)</title><content type='html'>&lt;p&gt;書かれているとおりに手順を追って、RandomeApp を作ってみた。この程度のことは以前にもやったことはあったけど、まあ、それでも実際に手を動かしてみると楽しいものだ。&lt;/p&gt;

&lt;h4&gt;覚えたこと&lt;/h4&gt;
&lt;p&gt;Interface Builder で GUI 部品とコントローラなんかのインスタンスを結び付けるときの Ctrl-Drag の方向。メッセージを送る方から送られる方へ線を引く。ボタンなら、ボタンを押したときにメッセージがコントローラに送られるのだから、ボタンからインスタンスへ。テキストフィールドなら、関連づけられたインスタンス変数が変わったときに表示されるテキストが変わるようにしたいのだから、コントローラからテキストフィールドへ。メッセージの方向だと覚えれば良い。&lt;/p&gt;

&lt;h4&gt;調べたこと&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;awakeFromNib&lt;/code&gt;が気になった。調べてみた。&lt;code&gt;NSNibAwaking&lt;/code&gt;という非形式プロトコル(informal protocol)だった。&lt;/p&gt;

&lt;h4&gt;非形式プロトコルって何?&lt;/h4&gt;

&lt;p&gt;ヒレガス本(p.297-298)によれば、2.0より前のObjective-Cで、デリゲート・メソッドを宣言するための "ugly" な手段だったということ。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://programmingmac.blogspot.com/2008/12/20.html"&gt;荻原(2.0)本&lt;/a&gt;だと、p.272-274あたりに「非形式プロトコル」の説明がある。その最後の部分を引用すると、&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;従来は上の例のように、メソッド群のすべてが必ずしも必要でない場合、非形式プロトコルで宣言されるのが普通でした。Objective-C 2.0ではオプション付きのプロトコルが使えるようになりましたので、今後はプロトコルの利用が増えてくるものと思われます。&lt;/p&gt;&lt;/blockquote&gt;

&lt;h4&gt;オプション付きのプロトコルって何よ?&lt;/h4&gt;

&lt;p&gt;プロトコルは Java の interface。荻原本(2.0)によれば Java の方がマネしたとのことだけど、まあそれはどっちでも良い。いわゆる「振舞いによる類型」を実現するための仕組みだ。平たく言うと「インタフェースの共有」ね。&lt;/p&gt;

&lt;p&gt;で、2.0 より前の Objective-C ではあるプロトコルを採用(adopt)するとなったら、そこで宣言されたメソッドをすべて実装する必要があった。この仕組みだと先に出てきたデリゲート・メソッドの宣言に使うには都合が悪かったようだ。で非形式プロトコルのような "ugly" なやり方を取っていた、と。&lt;/p&gt;

&lt;p&gt;これを解消するためなのかどうかは不明だけど、2.0 からはプロトコルを宣言するときに &lt;code&gt;@optional&lt;/code&gt; と &lt;code&gt;@required&lt;/code&gt; というコンパイラ指定子を使えるようになった。荻原本(2.0)のサンプルを抜き出しておく。&lt;/p&gt;

&lt;div&gt;&lt;pre&gt;
@protocol Alarm
- (void)setCurrentTime:(NSDate *)date;
- (BOOL)alarm;
- (void)setAlarm:(BOOL)flag;
@optional
- (BOOL)snooze;
- (void)setSnooze:(BOOL)flag;
@required
- (void)setTimerAtHour:(int)h minute:(int)m;
@end
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;プロトコルに適合しているかどうかを &lt;code&gt;conformsToProtocol&lt;/code&gt; で実行時にチェックできるのだけど、&lt;code&gt;@optional&lt;/code&gt; なメソッドに関してはこれではチェックできない。調べるにはメソッドごとに &lt;code&gt;respondsToSelector:&lt;/code&gt; でチェックする。&lt;/p&gt;

&lt;p&gt;じゃあ、次はデリゲートって何、ってことを調べようと思ったけど、時間切れ。今夜はここまで。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-7940439401003977172?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/7940439401003977172/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-2-lets-get-started.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/7940439401003977172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/7940439401003977172'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/06/chapter-2-lets-get-started.html' title='[ヒレガス本]Chapter 2: Let&apos;s Get Started (さあ、始めよう)'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-1339555666779297995</id><published>2008-05-31T21:15:00.010+09:00</published><updated>2010-12-02T23:48:56.757+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ヒレガス本'/><category scheme='http://www.blogger.com/atom/ns#' term='まとめエントリ'/><title type='text'>ヒレガス本(3rd Ed.)が良い感じ</title><content type='html'>&lt;p&gt;先週末(2008-05-25)、Amazonからヒレガス本の新版(3rd Ed.)が届いた。&lt;/p&gt;

&lt;h4&gt;Cocoa Programming for Mac OS X -- Third Edition ([著]Aaron Hillegass, [版]Addison Wesley)&lt;/h4&gt;

&lt;div class="mm-middle" style="margin-bottom:0px;"&gt;&lt;div class="mm-image" style="float:left;"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/0321503619/mnbi-22/ref=nosim" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41pyKTm2fxL._SL160_.jpg" alt="Cocoa Programming for Mac OS X" title="Cocoa Programming for Mac OS X" width="121" height="160" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="mm-content" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="mm-title" style="line-height:120%"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/0321503619/mnbi-22/ref=nosim" target="_blank"&gt;Cocoa Programming for Mac OS X&lt;/a&gt;&lt;/div&gt;&lt;div class="mm-detail" style="margin-top:10px;"&gt;Aaron Hillegass&lt;br /&gt;Addison-Wesley Professional ( 2008-05-15 )&lt;br /&gt;ISBN: 9780321503619&lt;br /&gt;&lt;div style="margin:7px 0px"&gt;&lt;a href="http://mediamarker.net/u/mnbi/?asin=0321503619" target="_blank"&gt;物読みファイル (別館)で詳細を見る&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align:right;font-size:7pt;font-family:verdana"&gt;&lt;a href="http://mediamarker.net/" target="_blank"&gt;MediaMarker&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:left"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Prefaceを読んでみたところ英語もわかりやすく、内容もかなり期待できそう。Objective-C 2.0の目玉のGCについても chapterを割いてあるし、Core Dataのchapterもある。「Macでプログラミング」の活動はこの本を読むことを中心に進めていこう。&lt;/p&gt;

&lt;p&gt;目次を抜き出すと以下のとおり:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://programmingmac.blogspot.com/2009/08/chapter-1-cocoa-what-is-it-cocoa.html"&gt;Chapter 1. Cocoa: What Is It?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://programmingmac.blogspot.com/2008/06/chapter-2-lets-get-started.html"&gt;Chapter 2. Let’s Get Started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://programmingmac.blogspot.com/2008/06/chapter-3-objective-c.html"&gt;Chapter 3. Objective-C&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://programmingmac.blogspot.com/2008/06/chapter-4-memory-management.html"&gt;Chapter 4. Memory Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Chapter 5. Target/Action&lt;/li&gt;
&lt;li&gt;Chapter 6. Helper Objects&lt;/li&gt;
&lt;li&gt;Chapter 7. Key-Value Coding; Key-Value Observing&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2009/11/mvc-cocoa.html"&gt;Chapter 8. NSArrayController&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2009/11/mvc-cocoa.html"&gt;Chapter 9. NSUndoManager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2009/11/mvc-cocoa.html"&gt;Chapter 10. Archiving&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Chapter 11. Basic Core Data&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2009/11/mvc-cocoa.html"&gt;Chapter 12. Nib Files and NSWindowController&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2009/11/mvc-cocoa.html"&gt;Chapter 13. User Defaults&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2010/12/4-macbloggerglass.html"&gt;Chapter 14. Using Notifications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2009/11/mvc-cocoa.html"&gt;Chapter 15. Using Alert Panels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://logrepo.blogspot.com/2009/11/mvc-cocoa.html"&gt;Chapter 16. Localization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Chapter 17. Custom Views&lt;/li&gt;
&lt;li&gt;Chapter 18. Images and Mouse Events&lt;/li&gt;
&lt;li&gt;Chapter 19. Keyboard Events&lt;/li&gt;
&lt;li&gt;Chapter 20. Drawing Text with Attributes&lt;/li&gt;
&lt;li&gt;Chapter 21. Pasteboards and Nil-Targeted Actions&lt;/li&gt;
&lt;li&gt;Chapter 22. Categories&lt;/li&gt;
&lt;li&gt;Chapter 23. Drag-and-Drop&lt;/li&gt;
&lt;li&gt;Chapter 24. NSTimer&lt;/li&gt;
&lt;li&gt;Chapter 25. Sheets&lt;/li&gt;
&lt;li&gt;Chapter 26. Creating NSFormatters&lt;/li&gt;
&lt;li&gt;Chapter 27. Printing&lt;/li&gt;
&lt;li&gt;Chapter 28. Web Service&lt;/li&gt;
&lt;li&gt;Chapter 29. View Swapping&lt;/li&gt;
&lt;li&gt;Chapter 30. Core Data Relationships&lt;/li&gt;
&lt;li&gt;Chapter 31. Garbage Collection&lt;/li&gt;
&lt;li&gt;Chapter 32. Core Animation&lt;/li&gt;
&lt;li&gt;Chapter 33. A Simple Cocoa/OpenGL Application&lt;/li&gt;
&lt;li&gt;Chapter 34. NSTask&lt;/li&gt;
&lt;li&gt;Chapter 35. The End&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-1339555666779297995?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/1339555666779297995/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/05/3rd-ed.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1339555666779297995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/1339555666779297995'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/05/3rd-ed.html' title='ヒレガス本(3rd Ed.)が良い感じ'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-6023238949434542630</id><published>2008-05-31T19:55:00.004+09:00</published><updated>2008-05-31T21:09:46.886+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='忘れたくないコト'/><title type='text'>引用集</title><content type='html'>&lt;p&gt;ブログテンプレートを試すためのテスト用投稿。&lt;code&gt;blockquote&lt;/code&gt;用のスタイルを確認するため。まずはプログラマとしての座右の銘を、&lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book.html"&gt;SICP&lt;/a&gt;の序文から引用。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thus, programs must be written for people to read, and only incidentally for machines to execute.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;続いて、プログラマの心得として。"&lt;a href="http://c2.com/cgi/wiki?SevenPrinciplesOfSoftwareDevelopment"&gt;Seven Principles Of Software Development&lt;/a&gt;"より第一原理を引用。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A software system exists for one reason: to provide value to its users.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;日本語の引用もしておこう。&lt;a href="http://www.rubyist.net/~matz/20031006.html#p01" title="Matzにっき"&gt;Matzがとても良いことを言っている&lt;/a&gt;。すべてのプログラマにとっての光だと言って良い(それぐらい良いコト)。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;私はソフトウェアを開発している。私のソフトウェアには価値がある。それがたとえ無料で配布されていても。価値があるソフトウェアには、それからお金を生む方法がある。&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-6023238949434542630?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/6023238949434542630/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/05/blog-post_31.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/6023238949434542630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/6023238949434542630'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/05/blog-post_31.html' title='引用集'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7001283488336365765.post-727382969329345706</id><published>2008-05-31T19:47:00.003+09:00</published><updated>2008-05-31T21:22:39.915+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='about'/><title type='text'>プログラミングについて書くところ</title><content type='html'>&lt;h4&gt;目的(goal)&lt;/h4&gt;
&lt;p&gt;Macを使ってプログラミングすることに関して、丸ごと記録して晒すためのブログ。知ったことや考えたことのメモが中心。&lt;/p&gt;
&lt;p&gt;タイトル候補:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Macをプログラムする ← 仮採用&lt;/li&gt;
&lt;li&gt;プログランミングMac&lt;/li&gt;
&lt;li&gt;Programming Mac&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;目標(objectives)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Macでプログラミングをする記録。&lt;/li&gt;
&lt;li&gt;Macでプログラミングをするための情報の集積。リンク集。&lt;/li&gt;
&lt;li&gt;作ってみたプログラムを公開する場所。&lt;br /&gt;
→ プログラム(ソースコード)自体を置くのは別の場所。Google Code や Google Siteになるだろう。&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;活動(activities)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://programmingmac.blogspot.com/2008/05/3rd-ed.html"&gt;ヒレガス本(3rd Ed.)&lt;/a&gt;をベースに勉強を進める。その経過をブログとして記録していく。&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;作業(tasks)のバックログ&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;カテゴリを決める。&lt;/li&gt;
&lt;li&gt;aboutなエントリを書く。&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7001283488336365765-727382969329345706?l=programmingmac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmingmac.blogspot.com/feeds/727382969329345706/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://programmingmac.blogspot.com/2008/05/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/727382969329345706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7001283488336365765/posts/default/727382969329345706'/><link rel='alternate' type='text/html' href='http://programmingmac.blogspot.com/2008/05/blog-post.html' title='プログラミングについて書くところ'/><author><name>mnbi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_wobSevGXOh4/SxnQilFBULI/AAAAAAAAAyY/DHGHibuBfOY/S220/mnbi.jpeg'/></author><thr:total>0</thr:total></entry></feed>
