<?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>samurai-apps</title>
	<atom:link href="http://samurai-apps.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://samurai-apps.com</link>
	<description>Geisha, Fujiyama, Samurai-apps.</description>
	<lastBuildDate>Sun, 22 Jan 2012 15:30:27 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Arduino uno + ethernet shield + iPhone + iOSC(OSC Application)</title>
		<link>http://samurai-apps.com/2011/06/11/arduino-osc/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2011/06/11/arduino-osc/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 01:31:41 +0000</pubDate>
		<dc:creator>tamori</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=755</guid>
		<description><![CDATA[Arduino uno にethernet shieldを乗っけて、iPhoneアプリのiOSCから、OSCのUDPパケットを受信してArduinoに接続された液晶を変更するスケッチ。 液晶接続のポートですが、最初 LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); としてたら液晶が表示されなかったので、下のスケッチのようにしたら動くようになりました。接続ポートに注意。また、UDPの受信コードはExamplesのUDPSendReceiveStringを参考にしました。というかそのまんま使いました。 /* UDPSendReceive.pde: */ #include // needed for Arduino versions later than 0018 #include #include // UDP library from: bjoern@cs.stanford.edu 12/30/2008 #include // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=20fd7a9700&amp;photo_id=5804698592" /><param name="bgcolor" value="#000000" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" allowfullscreen="true" bgcolor="#000000" flashvars="intl_lang=en-us&amp;photo_secret=20fd7a9700&amp;photo_id=5804698592" data="http://www.flickr.com/apps/video/stewart.swf?v=71377"></embed></object></p>
<p>Arduino uno にethernet shieldを乗っけて、iPhoneアプリのiOSCから、OSCのUDPパケットを受信してArduinoに接続された液晶を変更するスケッチ。</p>
<p>液晶接続のポートですが、最初</p>
<pre class="brush:c">LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);</pre>
<p>としてたら液晶が表示されなかったので、下のスケッチのようにしたら動くようになりました。接続ポートに注意。また、UDPの受信コードはExamplesのUDPSendReceiveStringを参考にしました。というかそのまんま使いました。</p>
<pre class="brush:c">/*
  UDPSendReceive.pde:
 */

#include          // needed for Arduino versions later than 0018
#include
#include          // UDP library from: bjoern@cs.stanford.edu 12/30/2008
#include 

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[]	= { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
byte ip[]	= { 192 , 168 , 1 , 1 } ;  //

unsigned int localPort = 10000;      // local port to listen on

// the next two variables are set when a packet is received
byte remoteIp[4];        // holds received packet's originating IP
unsigned int remotePort; // holds received packet's originating port

// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  ReplyBuffer[] = "acknowledged";       // a string to send back
LiquidCrystal lcd(8, 7, 6, 5, 4, 3, 2);

void setup() {
  // start the Ethernet and UDP:
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);

  lcd.begin(16,2);
  lcd.clear();
  lcd.setCursor(0, 0);

  Serial.begin(9600);
}

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.available(); // note that this includes the UDP header
  if(packetSize)
  {
    packetSize = packetSize - 8;      // subtract the 8 byte header
    Serial.print("Received packet of size ");
    Serial.println(packetSize);

    // read the packet into packetBufffer and get the senders IP addr and port number
    Udp.readPacket(packetBuffer,UDP_TX_PACKET_MAX_SIZE, remoteIp, remotePort);
    char* c = packetBuffer;
    if( strcmp(c, "/osc/button1") == 0 ){
      lcd.setCursor(0,0);
      lcd.print("button 1 pushed");
    }
    if ( strcmp(c, "/osc/button2") == 0 ){
      lcd.setCursor(0,0);
      lcd.print("button 2 pushed");
    }
    Udp.sendPacket( ReplyBuffer, remoteIp, remotePort);
  }
  delay(500);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2011/06/11/arduino-osc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>新旧Android 4機種のNEON対応</title>
		<link>http://samurai-apps.com/2011/04/12/checkneonsupport/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2011/04/12/checkneonsupport/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 18:11:42 +0000</pubDate>
		<dc:creator>munepi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[開発者ブログ]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=687</guid>
		<description><![CDATA[（2011-04-14 一部修正） samurai-appsでは、今年に入ってAndroid開発機を一気に増強し、次の4台になりました。 NTTドコモ HT-03A （HTC Magic） イーモバイル PocketWiFi S （Huawei IDEOS U8150） NTTドコモ Xperia arc SO-01C （Sony Ericsson） Motorola Xoom WiFi 今後これらを駆使してプラットフォーム対応の向上を目指して参ります。 各機の違いをみるため、次期Tegraでは搭載されるという噂もあるARM版SIMD命令”NEON”について調べてみました。 NEONを使うと演算主体のルーチンを劇的に高速化できることがあります。NEON命令を使うにはC/C++でネイティブライブラリを作成し、アプリからJNI (Java Native Interface) を使ってライブラリを呼び出します。ARMv7以上でかつNEON対応のCPUが必要で、機種ごとに対応・非対応を調べてルーチンを切り替える必要がありでしょう。 NEON対応状況を、Android NDK r5bに付属のHelloNeonアプリを使って対応を調べてみました。 さらに、各機の基本的情報およびtDpiInfoで調べたディスプレイスペックも併せて紹介します。 機種名 NTT docomo HT-03A EMOBILE PocketWiFi S NTT docomo Xperia arc SO-01C Xoom メーカー HTC Huawei Sony Ericsson Motorola OS Version 1.6 [...]]]></description>
			<content:encoded><![CDATA[<p>（2011-04-14 一部修正）</p>
<p>samurai-appsでは、今年に入ってAndroid開発機を一気に増強し、次の4台になりました。</p>
<ul>
<li>NTTドコモ HT-03A （HTC Magic）</li>
<li>イーモバイル PocketWiFi S （Huawei IDEOS U8150）</li>
<li>NTTドコモ Xperia arc SO-01C （Sony Ericsson）</li>
<li>Motorola Xoom WiFi</li>
</ul>
<p>今後これらを駆使してプラットフォーム対応の向上を目指して参ります。</p>
<p>各機の違いをみるため、<a href="http://semiaccurate.com/2011/04/06/nvidia-in-full-philosophical-retreat-for-tegra-3/">次期Tegraでは搭載されるという噂</a>もあるARM版SIMD命令”NEON”について調べてみました。<span id="more-687"></span><br />
NEONを使うと演算主体のルーチンを劇的に高速化できることがあります。NEON命令を使うにはC/C++でネイティブライブラリを作成し、アプリからJNI (Java Native Interface) を使ってライブラリを呼び出します。ARMv7以上でかつNEON対応のCPUが必要で、機種ごとに対応・非対応を調べてルーチンを切り替える必要がありでしょう。</p>
<p>NEON対応状況を、<a href="http://developer.android.com/intl/ja/sdk/ndk/index.html">Android NDK r5b</a>に付属のHelloNeonアプリを使って対応を調べてみました。<br />
さらに、各機の基本的情報および<a href="https://market.android.com/details?id=jp.co.taosoftware.android.dpiinfo">tDpiInfo</a>で調べたディスプレイスペックも併せて紹介します。</p>
<table style="border: navy 1px solid; text-align: center;">
<tbody>
<tr>
<th>機種名</th>
<td>NTT docomo<br />
HT-03A</td>
<td>EMOBILE<br />
PocketWiFi S</td>
<td>NTT docomo<br />
Xperia arc SO-01C</td>
<td>Xoom</td>
</tr>
<tr>
<th>メーカー</th>
<td>HTC</td>
<td>Huawei</td>
<td>Sony Ericsson</td>
<td>Motorola</td>
</tr>
<tr>
<th>OS Version</th>
<td>1.6</td>
<td>2.2</td>
<td>2.3.2</td>
<td>3.0.1</td>
</tr>
<tr>
<th>CPU</th>
<td>Qualcomm<br />
MSM7200A<br />
<a href="http://www.htc.com/www/product/magic/specification.html">→see</a></td>
<td>Qualcomm<br />
MSM7201A<br />
<a href="http://pdadb.net/index.php?m=specs&amp;id=2578&amp;c=huawei_ideos_u8150">→see</a></td>
<td>Qualcomm<br />
Snapdragon MSM8255<br />
<a href="http://pdadb.net/index.php?m=specs&amp;id=2809&amp;c=sony_ericsson_xperia_arc_so-01c_se_anzu">→see</a></td>
<td>NVIDIA<br />
Tegra 2 250<br />
<a href="http://pdadb.net/index.php?m=specs&amp;id=2788&amp;c=motorola_xoom_mz604">→see</a></td>
</tr>
<tr>
<th>Clock</th>
<td>384MHz *1</td>
<td>528MHz</td>
<td>1000MHz</td>
<td>1000MHz<br />
(Dual Core)</td>
</tr>
<tr>
<th>ARMv7 or later</th>
<td>No</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<th>NEON</th>
<td>No</td>
<td>No</td>
<td>Yes</td>
<td>No</td>
</tr>
<tr>
<th>Height [px]</th>
<td>480</td>
<td>320</td>
<td>854</td>
<td>800</td>
</tr>
<tr>
<th>Width [px]</th>
<td>320</td>
<td>240</td>
<td>480</td>
<td>1280</td>
</tr>
<tr>
<th>Density</th>
<td>1.0</td>
<td>0.75</td>
<td>1.5</td>
<td>1.0</td>
</tr>
<tr>
<th>Xdpi [px]</th>
<td>180.62193</td>
<td>160.42105</td>
<td>234.46153</td>
<td>149.82489</td>
</tr>
<tr>
<th>Ydpi [px]</th>
<td>181.96814</td>
<td>159.37254</td>
<td>233.24301</td>
<td>149.41176</td>
</tr>
</tbody>
</table>
<p>*1: スペック上は528MHz動作可能なCPUですが、384MHzで駆動されています。</p>
<p>動作速度は、HT-03AとPocket WiFi Sのグループ、Xperia arcとXoomのグループの2つでは別次元です。Xoomは最も解像度が高いですが、最も高速に動作する印象です。Dual CoreとGPUが効いているのでしょう。Xperia arcも操作感は滑らかで、どちらも素晴らしいです。前者のグループは遅く、解像度も低いですが、開発時の速度チューニング用に使っています。</p>
<p>開発の観点からは、DPIの違いにも注目です。<br />
<a href="http://developer.android.com/intl/ja/guide/practices/screens_support.html"> DPIは160px/inchを標準としてDensity=1.0と定められており</a>、ディスプレイの仕様・物理的サイズに応じて各機固有の値を持っています。ただ、Densityは0.25刻みでまるめられるようで、Densityが1.0でも物理サイズが小さいHT-03Aは180dpiと高くなっていますし、ディスプレイの大きなXoomは逆に149dpiと低くなっています。Xperia arcは、Densityが1.5と高くなっています。そのため、グラフィックスを表示する場合は1.5倍に拡大しないと視覚的には非常に小さく表示されてしまいます。<br />
# なお、ChartExpertにはこの問題があり、現在鋭意対応作業中です：P</p>
<p>NEON対応については、samurai-appsの所有する中ではXperia arcだけという結果になりました。アプリ開発でNEONを前提とするにはまだまだ注意が必要と言えそうです。</p>
<hr />
<p>（2011-04-14 追記）</p>
<p>ほかの機種についても、知人の協力を得て調べてみました。</p>
<table style="border: navy 1px solid; text-align: center;">
<tbody>
<tr>
<th>機種名</th>
<td>NTT docomo<br />
MEDIAS N-04C</td>
<td>NTT docomo<br />
REGZA Phone T-01C</td>
<td>au<br />
IS03</td>
</tr>
<tr>
<th>メーカー</th>
<td>NECカシオ</td>
<td>富士通東芝</td>
<td>SHARP</td>
</tr>
<tr>
<th>OS Version</th>
<td>2.2.1</td>
<td>2.1-update1</td>
<td>2.1-update1</td>
</tr>
<tr>
<th>CPU</th>
<td>Qualcomm<br />
Snapdragon MSM7230<br />
<a href="http://www.lintasberita.us/topic/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3+cpu%E3%80%80MSM7230+800MHz">→see</a></td>
<td>Qualcomm<br />
Snapdragon QSD8250<br />
<a href="http://pdadb.net/index.php?m=specs&amp;id=2810&amp;view=1&amp;c=nec_medias_n-04c">→see</a></td>
<td>Qualcomm<br />
Snapdragon QSD8650<br />
<a href="http://pdadb.net/index.php?m=specs&amp;id=2631&amp;c=sharp_is03">→see</a></td>
</tr>
<tr>
<th>Clock</th>
<td>800MHz</td>
<td>1000MHz</td>
<td>1000MHz</td>
</tr>
<tr>
<th>ARMv7 or later</th>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<th>NEON</th>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<th>Height [px]</th>
<td>854</td>
<td>854</td>
<td>960</td>
</tr>
<tr>
<th>Width [px]</th>
<td>480</td>
<td>480</td>
<td>640</td>
</tr>
<tr>
<th>Density</th>
<td>1.5</td>
<td>1.5</td>
<td>2.0</td>
</tr>
<tr>
<th>Xdpi [px]</th>
<td>160.42105</td>
<td>160.42105</td>
<td>331.7551</td>
</tr>
<tr>
<th>Ydpi [px]</th>
<td>159.49706</td>
<td>159.49706</td>
<td>334.0274</td>
</tr>
</tbody>
</table>
<p>IS03の解像度の高さが際立ちます。<br />
MEDIASとREGZA Phoneのディスプレイスペックはよく似ています。ただし、Densityが1.5で240dpiのはずなのに、XdpiとYdpiが160前後の値になっているのが気になります。</p>
<p>NEONについては、Snapdragon搭載機はすべて対応でした。ここ1年の携帯電話ならば問題ないでしょう。一方、タブレットはTegra2搭載機が増えていますので、注意が必要になりそうです。</p>
<p>調査にご協力いただいた皆様、本当にありがとうございました！</p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2011/04/12/checkneonsupport/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>さくらインターネットサーバーにOpenCV 2.1.1を入れる</title>
		<link>http://samurai-apps.com/2010/08/25/opencv2-2-1/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/08/25/opencv2-2-1/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 02:14:50 +0000</pubDate>
		<dc:creator>tamori</dc:creator>
				<category><![CDATA[開発者ブログ]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=547</guid>
		<description><![CDATA[English is here cmakeをインストール %cd ~/local/src %wget http://www.cmake.org/files/v2.8/cmake-2.8.2.tar.gz %tar xvf cmake-2.8.2.tar.gz %cd cmake-2.8.2 %./bootstrap --prefix=$HOME/local %make %make install OpenCVのインストール %mkdir OpenCV-2.1.1 %cd OpenCV-2.1.1 %svn export ﻿https://code.ros.org/svn/opencv/trunk %cd .. %mkdir opencv.bulid %ccmake ../OpenCV-2.1.1/trunk/opencv 設定項目は下記の通りにしました．（ccmakeに入ったあと，c(continue)を押下したあと，t(toggle advanced mode)を押下して，アドバンスドモードで設定） BUILD_EXAMPLES OFF BUILD_LATEX_DOCS OFF BUILD_NEW_PYTHON_SUPPORT ON BUILD_PACKAGE OFF BUILD_SHARED_LIBS ON BUILD_TESTS ON BZIP2_LIBRARIES /usr/lib/libbz2.so CMAKE_AR /usr/bin/ar CMAKE_BACKWARDS_COMPATIBILITY 2.4 CMAKE_BUILD_TYPE RELEASE CMAKE_COLOR_MAKEFILE ON [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://samurai-apps.com/en/2010/08/25/opencv2-2-1/">English is here</a></p>
<h3>cmakeをインストール</h3>
<pre class="brush:shell">
%cd ~/local/src
%wget http://www.cmake.org/files/v2.8/cmake-2.8.2.tar.gz
%tar xvf cmake-2.8.2.tar.gz
%cd cmake-2.8.2
%./bootstrap --prefix=$HOME/local
%make
%make install
</pre>
<h3>OpenCVのインストール</h3>
<pre class="brush:shell">
%mkdir OpenCV-2.1.1
%cd OpenCV-2.1.1
%svn export ﻿https://code.ros.org/svn/opencv/trunk
%cd ..
%mkdir opencv.bulid
%ccmake ../OpenCV-2.1.1/trunk/opencv
</pre>
<p>設定項目は下記の通りにしました．（ccmakeに入ったあと，c(continue)を押下したあと，t(toggle advanced mode)を押下して，アドバンスドモードで設定）</p>
<pre class="brush:text; highlight: [10, 24,86,89]">
BUILD_EXAMPLES                   OFF
BUILD_LATEX_DOCS                 OFF
BUILD_NEW_PYTHON_SUPPORT         ON
BUILD_PACKAGE                    OFF
BUILD_SHARED_LIBS                ON
BUILD_TESTS                      ON
BZIP2_LIBRARIES                  /usr/lib/libbz2.so
CMAKE_AR                         /usr/bin/ar
CMAKE_BACKWARDS_COMPATIBILITY    2.4
CMAKE_BUILD_TYPE                 RELEASE
CMAKE_COLOR_MAKEFILE             ON
CMAKE_CONFIGURATION_TYPES        Debug;Release
CMAKE_CXX_COMPILER               /usr/bin/c++
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG            -g
CMAKE_CXX_FLAGS_RELEASE          -O3 -DNDEBUG
CMAKE_C_COMPILER                 /usr/bin/gcc
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG              -g
CMAKE_C_FLAGS_RELEASE            -O3 -DNDEBUG
CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_INSTALL_PREFIX             /home/USERNAME/local
CMAKE_LINKER                     /usr/bin/ld
CMAKE_MAKE_PROGRAM               /usr/local/bin/gmake
CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS_DEBU
CMAKE_MODULE_LINKER_FLAGS_RELE
CMAKE_NM                         /usr/bin/nm
CMAKE_OBJCOPY                    /usr/bin/objcopy
CMAKE_OBJDUMP                    /usr/bin/objdump
CMAKE_RANLIB                     /usr/bin/ranlib
CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS_DEBU
CMAKE_SHARED_LINKER_FLAGS_RELE
CMAKE_SKIP_RPATH                 OFF
CMAKE_STRIP                      /usr/bin/strip
CMAKE_USE_RELATIVE_PATHS         OFF
CMAKE_VERBOSE_MAKEFILE           OFF
DOXYGEN_DOT_EXECUTABLE           DOXYGEN_DOT_EXECUTABLE-NOTFOUND
DOXYGEN_EXECUTABLE               DOXYGEN_EXECUTABLE-NOTFOUND
EIGEN2_INCLUDE_PATH              EIGEN2_INCLUDE_PATH-NOTFOUND
ENABLE_PROFILING                 OFF
ENABLE_SSE                       ON
ENABLE_SSE2                      ON
ENABLE_SSE3                      OFF
ENABLE_SSSE3                     OFF
EXECUTABLE_OUTPUT_PATH           /home/USERNAME/local/src/opencv.bulid/bin
INSTALL_C_EXAMPLES               OFF
INSTALL_PYTHON_EXAMPLES          OFF
IPP_PATH                         IPP_PATH-NOTFOUND
JASPER_INCLUDE_DIR               /usr/local/include
JASPER_LIBRARY                   /usr/local/lib/libjasper.so
JPEG_INCLUDE_DIR                 /usr/local/include
JPEG_LIBRARY                     /usr/local/lib/libjpeg.so
LIBRARY_OUTPUT_PATH              /home/USERNAME/local/src/opencv.bulid/lib
OPENCV_BUILD_3RDPARTY_LIBS       OFF
OPENCV_CONFIG_FILE_INCLUDE_DIR   /home/USERNAME/local/src/opencv.bulid
OPENCV_EXTRA_C_FLAGS
OPENCV_EXTRA_C_FLAGS_DEBUG
OPENCV_EXTRA_C_FLAGS_RELEASE
OPENCV_EXTRA_EXE_LINKER_FLAGS
OPENCV_EXTRA_EXE_LINKER_FLAGS_
OPENCV_EXTRA_EXE_LINKER_FLAGS_
OPENCV_WARNINGS_ARE_ERRORS       OFF
OPENEXR_HALF_LIBRARY             OPENEXR_HALF_LIBRARY-NOTFOUND
OPENEXR_IEX_LIBRARY              OPENEXR_IEX_LIBRARY-NOTFOUND
OPENEXR_ILMIMF_LIBRARY           OPENEXR_ILMIMF_LIBRARY-NOTFOUND
OPENEXR_IMATH_LIBRARY            OPENEXR_IMATH_LIBRARY-NOTFOUND
OPENEXR_INCLUDE_PATH             OPENEXR_INCLUDE_PATH-NOTFOUND
PKG_CONFIG_EXECUTABLE            /usr/local/bin/pkg-config
PNG_LIBRARY                      /usr/local/lib/libpng.so
PNG_PNG_INCLUDE_DIR              /usr/local/include
PVAPI_INCLUDE_PATH               PVAPI_INCLUDE_PATH-NOTFOUND
PYTHON_EXECUTABLE                /usr/local/bin/python2.6
PYTHON_INCLUDE_DIR               /usr/local/include/python2.6
PYTHON_LIBRARY                   /usr/local/lib/libpython2.6.so
SVNVERSION_PATH                  /home/USERNAME/local/bin/svnversion
TIFF_INCLUDE_DIR                 /usr/local/include
TIFF_LIBRARY                     /usr/local/lib/libtiff.so
USE_FAST_MATH                    ON
USE_IPP                          OFF
USE_O3                           ON
USE_OMIT_FRAME_POINTER           ON
WITH_1394                        OFF
WITH_CUDA                        OFF
WITH_EIGEN2                      ON
WITH_FFMPEG                      OFF
WITH_GSTREAMER                   ON
WITH_GTK                         ON
WITH_JASPER                      ON
WITH_JPEG                        ON
WITH_OPENEXR                     ON
WITH_PNG                         ON
WITH_PVAPI                       ON
WITH_QT                          OFF
WITH_QT_OPENGL                   OFF
WITH_TBB                         OFF
WITH_TIFF                        ON
WITH_UNICAP                      OFF
WITH_V4L                         ON
WITH_XINE                        OFF
ZLIB_INCLUDE_DIR                 /usr/include
ZLIB_LIBRARY                     /usr/lib/libz.so
</pre>
<p>c(continue)押下後にg(generate and exit)を押してコンパイル設定完了．<br />
ffmpegなんかも入れてみましたが，エラーしたのでOFFにしてます．</p>
<p>ソースをちょっとなおす．</p>
<pre class="brush:shell">
%vi ../OpenCV-2.1.1/trunk/opencv/modules/highgui/src/grfmt_png.cpp
</pre>
<p>50行目くらい．</p>
<pre class="brush:cpp; highlight: [2]">
#ifdef HAVE_LIBPNG_PNG_H
#include &lt;png.h&gt;
#else
#include &lt;png.h&gt;
#endif
#include "grfmt_png.hpp"
</pre>
<pre class="brush:shell">
%make
</pre>
<p>多分一回コンパイルに失敗するので，もう一回</p>
<pre class="brush:shell">
%make
</pre>
<p>すると，コンパイル完了．</p>
<pre class="brush:shell">
%make install
</pre>
<p>で，インストールされるはず．</p>
<h2>OpenCVを使ったプログラムをコンパイルする</h2>
<h3>環境整備</h3>
<pre class="brush:shell">
%setenv PKG_CONFIG_PATH /home/USERNAME/local/lib/pkgconfig
</pre>
<p>これは，~/.cshrcに書いておけばよし．</p>
<pre class="brush:shell">
%pkg-config --cflags --libs opencv
-I/home/USERNAME/local/include/opencv -I/home/USERNAME/local/include  -L/home/USERNAME/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy
</pre>
<p>となれば準備完了．</p>
<h3>プログラムのコンパイル</h3>
<p>test.cpp &#8211; ２値化するプログラム</p>
<pre class="brush:cpp">
#include &lt;cv.h&gt;
#include &lt;highgui.h&gt;

int
main (int argc, char **argv)
{
  IplImage *src_img = 0, *dst_img;

  if (argc >= 2)
    src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE);
  if (src_img == 0)
    return -1;

  dst_img = cvCreateImage (cvGetSize (src_img), IPL_DEPTH_8U, 1);

  cvSmooth (src_img, src_img, CV_GAUSSIAN, 5);

  cvThreshold (src_img, dst_img, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

  cvSaveImage( argv[2], dst_img);
  cvReleaseImage (&#038;src_img);
  cvReleaseImage (&#038;dst_img);

  return 0;
}
</pre>
<p>コンパイル．</p>
<pre class="brush:shell">

%g++ -v -o test.o test.cpp `pkg-config --cflags --libs opencv ImageMagick++`

Using built-in specs.
Target: i386-undermydesk-freebsd
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070719  [FreeBSD]
/usr/libexec/cc1plus -quiet -v -I/home/USERNAME/local/include/opencv -I/home/USERNAME/local/include -I/usr/local/include/ImageMagick -D_LONGLONG test2.cpp -quiet -dumpbase test2.cpp -auxbase test2 -version -o /var/tmp//cc80L5hQ.s
ignoring duplicate directory "/usr/include"
#include "..." search starts here:
#include &lt;...&gt; search starts here:
/home/USERNAME/local/include/opencv
/home/USERNAME/local/include
/usr/local/include/ImageMagick
/usr/include/c++/4.2
/usr/include/c++/4.2/backward
/usr/include
End of search list.
GNU C++ version 4.2.1 20070719  [FreeBSD] (i386-undermydesk-freebsd)
compiled by GNU C version 4.2.1 20070719  [FreeBSD].
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 32d3ad82329e6a2b39fccea1ee418a45
/usr/bin/as -o /var/tmp//ccHTucYA.o /var/tmp//cc80L5hQ.s
/usr/bin/ld --eh-frame-hdr -V -dynamic-linker /libexec/ld-elf.so.1 -o test.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/home/USERNAME/local/lib -L/usr/local/lib -L/usr/lib -L/usr/lib /var/tmp//ccHTucYA.o -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lMagick++ -lMagickCore -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
GNU ld version 2.15 [FreeBSD] 2004-05-23
Supported emulations:
elf_i386_fbsd

%./test.o test1.jpg test2.jpg
</pre>
<p>test.oができていればOK．</p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/08/25/opencv2-2-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ChartExpert 1.0 リリース</title>
		<link>http://samurai-apps.com/2010/08/22/chartexpert-1-0-%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/08/22/chartexpert-1-0-%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 14:40:24 +0000</pubDate>
		<dc:creator>munepi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[ChartExpert]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=538</guid>
		<description><![CDATA[からログと連携してグラフを表示するアプリ、ChartExpert 1.0を公開しました。 からログだけでなく、ChartExpert APIを使えば、あなたのアプリにもグラフ機能を搭載できます。 詳しくはこちら。]]></description>
			<content:encoded><![CDATA[<p>からログと連携してグラフを表示するアプリ、ChartExpert 1.0を公開しました。</p>
<p>からログだけでなく、ChartExpert APIを使えば、あなたのアプリにもグラフ機能を搭載できます。</p>
<p>詳しくは<a href="http://samurai-apps/ja/chartexpert/">こちら</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/08/22/chartexpert-1-0-%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>からログ 1.1 リリース</title>
		<link>http://samurai-apps.com/2010/08/14/%e3%81%8b%e3%82%89%e3%83%ad%e3%82%b0-1-1-%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/08/14/%e3%81%8b%e3%82%89%e3%83%ad%e3%82%b0-1-1-%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 14:24:03 +0000</pubDate>
		<dc:creator>munepi</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=470</guid>
		<description><![CDATA[グラフ表示に対応した「からログ ver 1.1.20100814」 を本日リリースしました。 グラフ表示専門サポートアプリ「ChartExpert（チャートエキスパート）」と連携して、体重および体脂肪率データのグラフ表示に対応します。 そのほか、横型表示の禁止、画面レイアウトの微調整、広告の表示、などの機能強化を行っています。 なお、ChartExpertは、近日リリース予定です。 広告スペースにもリリース告知を表示いたします。お見逃しなく。]]></description>
			<content:encoded><![CDATA[<p>グラフ表示に対応した「<a href="http://samurai-apps.com/karalog">からログ ver 1.1.20100814</a>」 を本日リリースしました。</p>
<p>グラフ表示専門サポートアプリ「ChartExpert（チャートエキスパート）」と連携して、体重および体脂肪率データのグラフ表示に対応します。</p>
<p>そのほか、横型表示の禁止、画面レイアウトの微調整、広告の表示、などの機能強化を行っています。</p>
<p>なお、ChartExpertは、近日リリース予定です。<br />
広告スペースにもリリース告知を表示いたします。お見逃しなく。</p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/08/14/%e3%81%8b%e3%82%89%e3%83%ad%e3%82%b0-1-1-%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Programming : OpenCV + AVFoundation &#8211; First step of AR</title>
		<link>http://samurai-apps.com/2010/08/02/opencv-avfoundation-first-step-of-ar/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/08/02/opencv-avfoundation-first-step-of-ar/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 07:28:05 +0000</pubDate>
		<dc:creator>tamori</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[開発者ブログ]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=456</guid>
		<description><![CDATA[OpenCV + AVFoundation &#8211; First step of AR カメラからリアルタイムキャプチャして，OpenCVでFFTしたスペクトルをだすプログラム． ARはこんなところから始まるんでしょう，という例です． プロジェクトのダウンロード(Xcode Project &#8211; Source) こんな感じのプログラムです．下の方に表示されているのはプレビュー画像，上がスペクトルです． このプログラムに対して，samurai-appsは一切責任を持ちません．自己責任で，またサンプルとして利用してください．]]></description>
			<content:encoded><![CDATA[<p>OpenCV + AVFoundation &#8211; First step of AR<br />
カメラからリアルタイムキャプチャして，OpenCVでFFTしたスペクトルをだすプログラム．<br />
ARはこんなところから始まるんでしょう，という例です．</p>
<p><a href="http://samurai-apps.com/wp-content/uploads/2010/08/LiveCapturing2.zip" target="_blank">プロジェクトのダウンロード</a>(Xcode Project &#8211; Source)</p>
<p>こんな感じのプログラムです．下の方に表示されているのはプレビュー画像，上がスペクトルです．</p>
<p><a href="http://samuraiapps.sakura.ne.jp/wp-content/uploads/2010/08/fft.png#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="alignnone size-medium wp-image-461" title="fft" src="http://samuraiapps.sakura.ne.jp/wp-content/uploads/2010/08/fft-200x300.png" alt="" width="200" height="300" /></a></p>
<p>このプログラムに対して，samurai-appsは一切責任を持ちません．自己責任で，またサンプルとして利用してください．</p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/08/02/opencv-avfoundation-first-step-of-ar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Android + OpenGL ES 1.0 で必ず設定する項目</title>
		<link>http://samurai-apps.com/2010/07/06/android-opengl-es-1-0-%e3%81%a7%e5%bf%85%e3%81%9a%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b%e9%a0%85%e7%9b%ae/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/07/06/android-opengl-es-1-0-%e3%81%a7%e5%bf%85%e3%81%9a%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b%e9%a0%85%e7%9b%ae/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 03:59:49 +0000</pubDate>
		<dc:creator>munepi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[開発者ブログ]]></category>
		<category><![CDATA[OpenGL ES]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=375</guid>
		<description><![CDATA[Android開発で、ちょっとキャッチーでレスポンスもよいUIを作ろうと思うと、OpenGL ESの利用は最重要検討事項となります。 OpenGLは、ステートマシン型のアーキテクチャーになっていますが、多くのステートには「デフォルト値」がないようで、設定必須の項目がいくつかあります。 私も新しいプログラムを書くたびにうまく描画されなくてしばし悩みます。 ということで、最低限必要と思われる項目をメモっておきます。 (GL10対応です) ビューポートの設定 glViewport() : スクリーンのうち、描画に使われる範囲を、ピクセルで指定する 射影行列の設定 GLU.gluPerspective(), GLU.gluOrtho2D()など 必要に応じて glMatrixMode(GL10.GL_PROJECTION), glLoadIdentity()  を先に呼び出す 頂点配列/インデックス配列利用の設定 glEnableClientState(GL10.GL_VERTEX_ARRAY) : OpenGL ESでは頂点配列が必須なので、この設定は必須 描画 glClearColor() : カラーバッファ消去時に塗りつぶしに使う色をセットする glClear() : カラーバッファ or/and デプスバッファを消去する glVertexArray() : 頂点配列をセットする glDrawArrays() : セット済みの頂点配列で、線分/三角形を描画する glDrawElements() : セット済みの頂点配列と、インデックス配列を使って、線分/三角形を描画する]]></description>
			<content:encoded><![CDATA[<p>Android開発で、ちょっとキャッチーでレスポンスもよいUIを作ろうと思うと、OpenGL ESの利用は最重要検討事項となります。</p>
<p>OpenGLは、ステートマシン型のアーキテクチャーになっていますが、多くのステートには「デフォルト値」がないようで、設定必須の項目がいくつかあります。<br />
私も新しいプログラムを書くたびにうまく描画されなくてしばし悩みます。</p>
<p>ということで、最低限必要と思われる項目をメモっておきます。<br />
(GL10対応です)</p>
<h4>ビューポートの設定</h4>
<ul>
<li>glViewport() : スクリーンのうち、描画に使われる範囲を、ピクセルで指定する</li>
</ul>
<h4>射影行列の設定</h4>
<ul>
<li>GLU.gluPerspective(), GLU.gluOrtho2D()など</li>
<li>必要に応じて glMatrixMode(GL10.GL_PROJECTION), glLoadIdentity()  を先に呼び出す</li>
</ul>
<h4>頂点配列/インデックス配列利用の設定</h4>
<ul>
<li>glEnableClientState(GL10.GL_VERTEX_ARRAY) : OpenGL ESでは頂点配列が必須なので、この設定は必須</li>
</ul>
<h4>描画</h4>
<ul>
<li>glClearColor() : カラーバッファ消去時に塗りつぶしに使う色をセットする</li>
<li>glClear() : カラーバッファ or/and デプスバッファを消去する</li>
<li>glVertexArray() : 頂点配列をセットする</li>
<li>glDrawArrays() : セット済みの頂点配列で、線分/三角形を描画する</li>
<li>glDrawElements() : セット済みの頂点配列と、インデックス配列を使って、線分/三角形を描画する</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/07/06/android-opengl-es-1-0-%e3%81%a7%e5%bf%85%e3%81%9a%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b%e9%a0%85%e7%9b%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>隠レター　公開開始</title>
		<link>http://samurai-apps.com/2010/06/12/invisiletter/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/06/12/invisiletter/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 15:13:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[隠レター]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=350</guid>
		<description><![CDATA[samurai-appsは本日，iPhone/iPod Touch/iPadアプリ　隠レター・隠Readerをリリースしました． 隠レターは，いわゆる電子透かしアプリです．自分の撮った，あるいはカメラロールにある写真に，自分の指で描いた秘密の画像を埋め込むことができます．埋め込んだ画像は受け取り手の隠レターで抽出することができます．秘密の通信に使いましょう．６月２５日までは無料キャンペーンをしておりますので，ダウンロードして頂き，ぜひご感想をお寄せください． 隠Readerは，抽出に特化した無料アプリです。秘密の画像を受け取っても、これさえあればその秘密の画像を見ることができます。 詳しくはこちらから！ &#8211; 開発はObjective-Cはもちろんのこと，今回はOpenCVを使って書いています．画像処理はやはりOpenCVに任せてしまうのがいいですね．しかし，iPhone3Gで計算速度を出すのが大変でした．インタフェースにはまだまだ改良の余地がありますが，ぜひ電子透かしの新しい使い方を模索してみてください．]]></description>
			<content:encoded><![CDATA[<p>samurai-appsは本日，iPhone/iPod Touch/iPadアプリ　<a href="http://samurai-apps.com/ja/invisiletter/">隠レター・隠Reader</a>をリリースしました．</p>
<div>
<p>隠レターは，いわゆる電子透かしアプリです．自分の撮った，あるいはカメラロールにある写真に，自分の指で描いた秘密の画像を埋め込むことができます．埋め込んだ画像は受け取り手の隠レターで抽出することができます．秘密の通信に使いましょう．６月２５日までは無料キャンペーンをしておりますので，ダウンロードして頂き，ぜひご感想をお寄せください．</p>
<p>隠Readerは，抽出に特化した無料アプリです。秘密の画像を受け取っても、これさえあればその秘密の画像を見ることができます。</p>
<p><a href="http://samurai-apps.com/ja/invisiletter/">詳しくはこちらから！</a></p>
<p>&#8211;</p>
<p>開発はObjective-Cはもちろんのこと，今回はOpenCVを使って書いています．画像処理はやはりOpenCVに任せてしまうのがいいですね．しかし，iPhone3Gで計算速度を出すのが大変でした．インタフェースにはまだまだ改良の余地がありますが，ぜひ電子透かしの新しい使い方を模索してみてください．</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/06/12/invisiletter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calolog FREE 公開開始</title>
		<link>http://samurai-apps.com/2010/03/17/calolog-free-%e5%85%ac%e9%96%8b%e9%96%8b%e5%a7%8b/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/03/17/calolog-free-%e5%85%ac%e9%96%8b%e9%96%8b%e5%a7%8b/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 00:48:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[カロログ]]></category>
		<category><![CDATA[Diet]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=129</guid>
		<description><![CDATA[ご好評いただいているCalolog(カロログ)の無料配布版を本日，公開しました． 機能的な制限はありませんが，広告が出ます． 今後ともsamurai-appsをよろしくお願い申し上げます． Calolog FREE (iTunes)]]></description>
			<content:encoded><![CDATA[<p>ご好評いただいている<a href="http://samurai-apps.com/calolog/">Calolog(カロログ)</a>の無料配布版を本日，公開しました．</p>
<p>機能的な制限はありませんが，広告が出ます．</p>
<p>今後ともsamurai-appsをよろしくお願い申し上げます．</p>
<p><a href="http://itunes.apple.com/jp/app/calolog-free/id361679749?mt=8">Calolog FREE (iTunes)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/03/17/calolog-free-%e5%85%ac%e9%96%8b%e9%96%8b%e5%a7%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリをInterface Builderを使わずに開発する</title>
		<link>http://samurai-apps.com/2010/03/06/iphone%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92interface-builder%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%9a%e3%81%ab%e9%96%8b%e7%99%ba%e3%81%99%e3%82%8b/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2010/03/06/iphone%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92interface-builder%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%9a%e3%81%ab%e9%96%8b%e7%99%ba%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 02:16:41 +0000</pubDate>
		<dc:creator>tamori</dc:creator>
				<category><![CDATA[開発者ブログ]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=118</guid>
		<description><![CDATA[iPhoneアプリケーションを開発する際，おそらく一番の難関の一つがInterface Builder(IB)です． これは，Viewのレイアウトをするのには非常に便利なツールです．しかし，IBを用いると，MVCモデルでいう，VやCがブラックボックス化してしまう可能性があります．よって，より難しい構成のアプリケーションを作る場合は，このブラックボックス化している部分を理解していないことが足かせとなることがあります． 例えば，動的に，あるいは大量にUILabelを作る場合，UILabelを生成する部分はfor文で書きたい…といった場合は，プログラマブルに書いた方がずっと楽に書けることが多くあります．公開中のアプリケーションであるcalologでは，食品と，そのカロリーを書いたUILabelが大量に並んでいます．これは，データはXMLで持っておき，それをfor文で呼び出しつつ，UILabelをXMLに応じて動的に生成しています． だいたいの入門書はIBを使ったものですが，この本に関してはIBをつかわないプログラミング手法が，多数の例をもって紹介されています．掲載されているプログラムも，ところどころ省略されているものではなく，すべてが掲載されているので非常に読みやすい．おすすめです． ただ，UIViewとUIViewControllerの使い分け，がよくわからない．MVCモデルでいう，VがUIView，CがUIViewControllerだという認識だけど，UIViewControllerに描画部分も書けてしまう．無理に分けなくてもいいんでしょうが…]]></description>
			<content:encoded><![CDATA[<p>iPhoneアプリケーションを開発する際，おそらく一番の難関の一つがInterface Builder(IB)です．</p>
<p>これは，Viewのレイアウトをするのには非常に便利なツールです．しかし，IBを用いると，MVCモデルでいう，VやCがブラックボックス化してしまう可能性があります．よって，より難しい構成のアプリケーションを作る場合は，このブラックボックス化している部分を理解していないことが足かせとなることがあります．</p>
<p>例えば，動的に，あるいは大量にUILabelを作る場合，UILabelを生成する部分はfor文で書きたい…といった場合は，プログラマブルに書いた方がずっと楽に書けることが多くあります．公開中のアプリケーションであるcalologでは，食品と，そのカロリーを書いたUILabelが大量に並んでいます．これは，データはXMLで持っておき，それをfor文で呼び出しつつ，UILabelをXMLに応じて動的に生成しています．</p>
<p>だいたいの入門書はIBを使ったものですが，この本に関してはIBをつかわないプログラミング手法が，多数の例をもって紹介されています．掲載されているプログラムも，ところどころ省略されているものではなく，すべてが掲載されているので非常に読みやすい．おすすめです．</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=tamochancom-22&#038;o=9&#038;p=8&#038;l=as1&#038;m=amazon&#038;f=ifr&#038;md=1X69VDGQCMF7Z30FM082&#038;asins=4873114179" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>ただ，UIViewとUIViewControllerの使い分け，がよくわからない．MVCモデルでいう，VがUIView，CがUIViewControllerだという認識だけど，UIViewControllerに描画部分も書けてしまう．無理に分けなくてもいいんでしょうが…</p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2010/03/06/iphone%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92interface-builder%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%9a%e3%81%ab%e9%96%8b%e7%99%ba%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

