<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>～ ミネルヴァの梟は黄昏とともに飛び始める ～</title>
	<atom:link href="http://blog.daisukeyamashita.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.daisukeyamashita.com</link>
	<description>日々発見した技術や会社経営の日常を書き記して行きます。</description>
	<lastBuildDate>Fri, 27 Aug 2010 12:48:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[iOS] Scroll Viewのベストプラクティス</title>
		<link>http://blog.daisukeyamashita.com/post/967.html</link>
		<comments>http://blog.daisukeyamashita.com/post/967.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:48:41 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[Xcode/Interface Builder]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=967</guid>
		<description><![CDATA[昨夜、株式会社はてなのid:ninjinkunにUIScrollViewの事で相談した所、WWDC2010のセッションがオススメだと教えてもらいました。
少し調べてみましたが、たぶんApplication Frameworks Session 104 &#8211; Designing Apps with Scroll Viewsが話してヤツだと思う。良いセッションなので、iPhone/iPadの開発に携わっている人は一度見る事をオススメする。
ソースコードはこちら




	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/967.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Xcode] Interface BuilderのIB接続に関する問題　その２</title>
		<link>http://blog.daisukeyamashita.com/post/964.html</link>
		<comments>http://blog.daisukeyamashita.com/post/964.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:38:53 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[Xcode/Interface Builder]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=964</guid>
		<description><![CDATA[こちらのエントリーとは別のエラーで、次のようなエラーを吐いて落ちる問題がある。
-[UIViewController _loadViewFromNibNamed:bundle:] loaded the &#8220;XxxxxxView&#8221; nib but the view outlet was not set.&#8217;
これは、File&#8217;s OwnerとViewのコネクションが張られていない事が原因で出るエラーなので、以下のようにFile&#8217;s Ownerを選択して、viewとViewを以下のように繋いでやると良い。





	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/964.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Xcode] EXEC_BAD_ACCESSのデバッグ方法</title>
		<link>http://blog.daisukeyamashita.com/post/961.html</link>
		<comments>http://blog.daisukeyamashita.com/post/961.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:22:40 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[Xcode/Interface Builder]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=961</guid>
		<description><![CDATA[EXEC_BAC_ACCESSとは、いわゆる不正なメモリアクセス（ポインタ操作）を行った際に発生するエラーである。通常は、解放済みの変数にアクセスしようとしたり、解放済みの変数をもう一度解放したりなどが、それにあたる。
ここ１週間Objective-Cを使ってみた感じでは、ポインタと言ってもゴリゴリとポインタの数値を直接操作する機会は無く、単に参照を持つというのに使うことがほとんどのようだ。
不正なメモリアクセスに関しては、ツールさえあれば原因を調べやすい類のバグなので安心して欲しい。ここでは、便利なデバッグオプションを紹介したいと思う。
Xcodeのメニューから「プロジェクト」-「アクティブな実行ファイル」を選び、「引数」タブにある「環境変数」に以下の４項目を設定すると原因は一目瞭然になる。
MallocStackLogging=YES
MallocStackLoggingNoCompat=YES
NSZombieEnabled=YES
NSDebugEnabled=YES
ただし、上の２つに関してはメモリーを消費しやすいので、搭載メモリーが少ないiPadなど実機デバイスを利用したクロスデバッグ時には、このオプションが原因で落ちる事もあるようなので、注意したい。




	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/961.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Xcode] Interface BuilderのIB接続に関する問題</title>
		<link>http://blog.daisukeyamashita.com/post/956.html</link>
		<comments>http://blog.daisukeyamashita.com/post/956.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:05:50 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[Xcode/Interface Builder]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=956</guid>
		<description><![CDATA[Xcodeでの開発において、UIの構築で力を発揮するのがInerface Builderだ。Interface Builderを利用すると、ビューとコードを簡単に分離する事ができ、Xcodeでの開発でこれを利用しないのはバカだと断言できるレベルで非常にパワフルな機能を提供してくれる。しかも！デザインセンスが無い人でもそこそこの見た目に仕上げる事ができる。（もちろんInterface Builderはデザイナーとプログラマーの作業分離用に用意されていると思うが、Interface Builderを使ったからと言って、おそらくそんなに都合良くまわら無いと思う）
Interface Builderを利用すると何が便利かと、以下のようにUI上で線を結ぶだけでメンバー変数とテキストフィールドを関連づけたり、メソッドとボタンのクリックを関連づけたりできたりする。また、UIとコード間のデータのやり取りに関する処理はすべて内部で請け負ってくれ、コードを書く側はメンバー変数やメソッドの宣言時に識別子を書いておくだけで、UIの値やイベントが勝手に飛んでくるという手軽さ。

さて、今回のエントリーの本題に入りたいと思うが、このInterface Builderは非常にパワプルである一方、致命的に問題だと思う部分がある。（ちなみに、私は今日現在で１週間程度しかXcodeを触っていないので、勘違いしている可能性が十分にある事を前置きしておく）
その問題点は、この関連づけ（コネクション）の一覧を表示する仕組みが存在しない事である。ビュー単位では確認できるのだが、プログラム全体でコネクションの関係を閲覧する事ができない。
なぜこれが問題かと言うと、Controller（ソースコード側）の名前を変更したり削除した際には、Interface Builder側からコネクションを切断するか、コネクションを張り直してやらないとエラーを吐いて落ちるのである。コンパイラかプリプロセッサで弾けば良いと思うのだが、ご丁寧に実行時に落ちてくれる。
しかもXcode側で、名前の変更・削除をした際に、リファクタリングや警告の表示といった事が一切行われないのである。
[&#60;UIViewController 0x55169b0&#62; setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key xxxxxx
プログラムが落ちる時には、上記のようなエラーを吐いて落ちる。もちろんkey xxxxxで示されるIBOutletの対応がおかしくなっている場合があるが、それは明らかなので、検索などでこのページにたどり着いた方は、おそらくエラーを吐くコードに対応した.xibファイルのコネクションはすべて確認されていると思うのでぜひ次の点を確認して欲しい。
これは、私もハマった点なのだが、Controllerの名前を変更してコネクションの不一致が発生した場合は、そのビューだけでなく、そのビューに遷移する前のビューのボタンなどのコネクションを確認して欲しい。遷移先で利用するControllerが指定されていると思うので、このコネクションを張り直すと動くようになると思う。
&#8212;&#8212;&#8212;-
Xcode/Interface Builderは全体的に使いにくい部分が結構ある。これは、Apple特有のデザインに偏った部分が問題になっているというよりは、競争が全くないというのが問題になっている気がする。
Appleが用意しているUI framework群が非常に優れているだけに、IDEの使いにくさでマイナスになっているのはもったいない。ぜひとも改善して欲しい。




	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/956.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMware Server Linux版の管理コンソールが頻繁にクラッシュする場合の対処方法　その２</title>
		<link>http://blog.daisukeyamashita.com/post/935.html</link>
		<comments>http://blog.daisukeyamashita.com/post/935.html#comments</comments>
		<pubDate>Mon, 21 Jun 2010 09:09:52 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=935</guid>
		<description><![CDATA[
その１で、改善しない人も多いようですので、その他の対処方法を見つけたので記載しておきます。
まず、この対処方法で改善するのは以下の環境の方です。
まず、以下のコマンドを実行して下さい。

$ rpm -qa&#124;grep -e "^glibc-*" -e "nscd"

glibcのバージョンが2.5-42の場合は、この記事の方法で劇的に改善する可能性があります。というのも、glibc-2.5-42とnscd-2.5-42の相性が悪いらしく、VMwareの管理コンソールが頻繁にクラッシュし、最悪、仮想マシンが落ちてしまうようです。

さっそく、以下のファイルをダウンロードします。
glibc-2.5-34.i686.rpm
glibc-2.5-34.x86_64.rpm
glibc-common-2.5-34.x86_64.rpm
glibc-devel-2.5-34.i386.rpm
glibc-devel-2.5-34.x86_64.rpm
glibc-headers-2.5-34.x86_64.rpm
nscd-2.5-34.x86_64.rpm
ファイルのダウンロードが完了したら、以下のコマンドでライブラリをダウングレードします。

# rpm -Uvh --oldpackage glibc* nscd*

yum updateで自動更新されないように、/etc/yum.confでexclude指定しておきます。

# vi /etc/yum.conf
 
exclude=glibc* nscd*

これで、きっと快適なVMware Server環境を楽しめるハズです！
&#8212;&#8211;
以下、検索用ワード
VMware Infrastructure Web Access アクセスできない crash 管理コンソール administration administrator admin console access




	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/935.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GWTのコンパイルを高速化する方法</title>
		<link>http://blog.daisukeyamashita.com/post/925.html</link>
		<comments>http://blog.daisukeyamashita.com/post/925.html#comments</comments>
		<pubDate>Wed, 02 Jun 2010 06:43:28 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[Google Mania]]></category>
		<category><![CDATA[京都GWT勉強会]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=925</guid>
		<description><![CDATA[
　Google I/Oのセッションの一つで、Faster apps faster: Optimizing apps with the GWT Compilerというセッションがあり、そこで公開されていたテクニックです。ここで紹介されたテクニックは、リリース用のバイナリ出力を高速化するテクニックではなく、テスト用のバイナリ出力を高速化するテクニックですので、リリース用のコンパイルは従来通り気長に待ちましょう。
　まず、コンパイルオプションに以下の２つを付けます。最初のオプションは、メタデータの出力を抑制し、２つめのオプションはいくつかの最適化をキャンセルする事でコンパイル速度を上げます。

-XdisableClassMetadata
-draftCompile

　次に、モジュール作成時に自動生成されるXxxxxx.gwt.xmlの&#60;module&#62;タグ内に以下の記述を追加します。この記述は、safariブラウザのみを利用することを指示します。

&#60;set-property name=&#8221;user.agent&#8221; value=&#8221;safari&#8221; /&#62;

　続いて、以下の記述を追加し、safari用に最適化されたDOMコントロールのみを利用するように指示します。
 &#60;replace-with class="com.google.gwt.user.client.impl.DOMImplSafari"&#62;
   &#60;when-type-is class="com.google.gwt.user.client.impl.DOMImpl" /&#62;
   &#60;when-property-is name="user.agent" value="safari" /&#62;
 &#60;/replace-with&#62;
　これでテストするブラウザが決まっている場合は、実行するJavaScriptはそこそこ速く、なおかつコンパイル速度を上げる事ができます。user.agentにはie6, ie8, gecko, gecko1_8, safari, operaが指定できるようです。
　最後に、Internationalization(I18N)を利用している場合には、以下の記述を追加する事で、テスト対象の言語以外は利用しない事を明記する事ができます。

&#60;extend-property name=&#8221;locale&#8221; values=&#8221;ja_JP&#8221; /&#62;

　これで、私の環境では従来3分かかっていたコンパイル速度が1分になりました。





	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/925.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google I/Oのお気に入り展示</title>
		<link>http://blog.daisukeyamashita.com/post/922.html</link>
		<comments>http://blog.daisukeyamashita.com/post/922.html#comments</comments>
		<pubDate>Wed, 26 May 2010 15:13:45 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[Google I/O]]></category>
		<category><![CDATA[Google Mania]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=922</guid>
		<description><![CDATA[Google Earthを使ったGreatな展示。Homeボタンはサンフランシスコのイベント会場に飛びます

ドロイド君ががんばって、水平制御します！






	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/922.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google I/O After Hours evening party / part2</title>
		<link>http://blog.daisukeyamashita.com/post/918.html</link>
		<comments>http://blog.daisukeyamashita.com/post/918.html#comments</comments>
		<pubDate>Wed, 26 May 2010 15:08:43 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[Google I/O]]></category>
		<category><![CDATA[Google Mania]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=918</guid>
		<description><![CDATA[ゲームの中を実際に歩けるゲーム！

投げた紙飛行機が戻ってくるよ！（作り方も教えていた）

良くわからないけど、ピカピカしてた（笑）

サソリ型ラジコン

これも良くわからなかったロボット

あれ？イケメンが映っているよ（笑）　3Dテレビですが、メガネがないと単なるボヤけたテレビです





	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/918.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google I/O After Hours evening party</title>
		<link>http://blog.daisukeyamashita.com/post/903.html</link>
		<comments>http://blog.daisukeyamashita.com/post/903.html#comments</comments>
		<pubDate>Thu, 20 May 2010 12:09:12 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=903</guid>
		<description><![CDATA[現在、Google I/Oに参加していますが、初日の夜に行われたパーティの様子です。
大回転するブランコ

ブランコからクモのマシーンに移動

クモのマシーン

みんなでくるくる自転車

飛び出す絵（立体に見えるのが分かりますか？）

非常に大きいiPadモドキ





	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/903.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EeePCにUbuntuを入れる方法</title>
		<link>http://blog.daisukeyamashita.com/post/892.html</link>
		<comments>http://blog.daisukeyamashita.com/post/892.html#comments</comments>
		<pubDate>Sun, 09 May 2010 15:14:13 +0000</pubDate>
		<dc:creator>daisuke</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[自宅サーバのススメ]]></category>

		<guid isPermaLink="false">http://blog.daisukeyamashita.com/?p=892</guid>
		<description><![CDATA[　EeePCは、SSDとUPSを備えた次世代サーバプラットフォームと言える素晴らしいハードウェアです。知らない人も多いようですが、ニコニコ大百科のフロントサーバはEeePCです。すべてのクエリーをEeePCで受け付け、セッション情報まで管理しているそうです。
　まぁ、ハードウェアの素晴らしさは今さら語る必要はありませんが、外配信機材としては軽くてそこそこバッテリーも持つので非常に重宝しております。
　ただ、いかんせんSSDのディスク容量が小さい（私のモデルは4Gbyte）でWindows XP SP2を搭載するとかなり苦しい状況になってしまいます。
　そこで、Windowsを潰してUbuntuを入れようと思った訳です。まぁ、Arch Linuxでも何でも良かったのですが、最近Ubuntuのデスクトップ環境が良いといと方々で聞くのでUbuntuにトライしようと思った訳です。
　EeePCにUbuntuを入れようとすると、Ubuntuプロジェクト公式のUbuntu Netbook Remixとeeebuntuという２つの選択肢があるようですが、私はUbuntu公式のUbuntu Netbook Remixを選択しました。
用意するもの

USBメモリかSDカード　（容量700MB以上のものが必要になります。私はEeePCに付いてきた4GBのSDカードを利用しました）
Windows マシン

　まず、このページで紹介されている「Universal USB Installer（ダウンロードリンク）」をダウンロードして、実行します。（インストールは必要なく、exe単体のプログラムです）
　実行すると、ライセンスが表示されるので、[I Agree]ボタンを押します。

　Step1で、「Ubuntu Netbook Remix 10.04」を選択します。インストールイメージは自動でダウンロードされますが、インストールイメージをこちらの公式ページからダウンロードしておいてもOKです。自分でダウンロードした場合は、Step2でイメージの場所を選択します。
　Step3でインストールしたいドライブを選択します。横のチェックボックスにチェックを入れると、そのドライブをフォーマットします。特に理由がなければ、チェックを入れフォーマットします。
　最後に[Create]ボタンを押してインストールイメージを作成します。

　インストールイメージが作成できたら、EeePCにSDカードを挿入して起動します。すぐに、[F2]ボタンを押し、BIOSの設定画面を表示します。[Boot]-[Boot Device Priority]で1St Boot Deviceを[Removable Dev.]に設定します。
　あとは起動時にUbuntuのブートメニューが出るので、HDD（SSD）にインストールするも良いですし、そのままSDカードやUSBブートで利用しても良いです。




	
	
	
	
	
	
	
	
	


]]></description>
		<wfw:commentRss>http://blog.daisukeyamashita.com/post/892.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
