<?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>Thu, 14 Feb 2013 00:27:04 +0000</lastBuildDate>
	<language>ja-JP</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>UISegmentedControlのボタンの色を任意に変える</title>
		<link>http://samurai-apps.com/2012/06/03/uisegmentedcontrol%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ae%e8%89%b2%e3%82%92%e4%bb%bb%e6%84%8f%e3%81%ab%e5%a4%89%e3%81%88%e3%82%8b/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2012/06/03/uisegmentedcontrol%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ae%e8%89%b2%e3%82%92%e4%bb%bb%e6%84%8f%e3%81%ab%e5%a4%89%e3%81%88%e3%82%8b/#comments</comments>
		<pubDate>Sat, 02 Jun 2012 23:41:23 +0000</pubDate>
		<dc:creator>tamori</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=870</guid>
		<description><![CDATA[下記の例では「Month」と「All」、「Timeline」と「Tag」をそれぞれ排他的に選択させたいが、UISegmentedControlでは複数のグループには分割できない。それぞれのボタンに色をつけることでそれを擬似的に表現したい。 初期状態では「Month」「Timeline」がそれぞれ選択されている。 「All」をタッチすると、「Month」の色が消えて、「All」に色がつく。「Timeline」と「Tag」に変化はない。 さらに「Tag」をタッチすると、同様にボタンの色が変化する。 以下、コード。   - (void)viewWillAppear:(BOOL)animated { navigationSegment = [[UISegmentedControl alloc] initWithItems:nil]; navigationSegment.segmentedControlStyle = UISegmentedControlStyleBar; navigationSegment.momentary = YES; //initialize UISegmentedControl //UISegmentedControlの初期化 [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"month", @"Month") atIndex:0 animated:NO]; [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"all", @"All") atIndex:1 animated:NO]; [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"sorttime",@"Timeline") atIndex:2 animated:NO]; [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"sorttag",@"Tag") atIndex:3 animated:NO]; [navigationSegment insertSegmentWithImage:[UIImage imageNamed: @"mail2.png"] atIndex:4 animated:NO]; //call controlPressed when UISegmentedControl is pushed //UISegmentedControlが押されたら、controlPressedメソッドを呼ぶ [navigationSegment [...]]]></description>
				<content:encoded><![CDATA[<p>下記の例では「Month」と「All」、「Timeline」と「Tag」をそれぞれ排他的に選択させたいが、UISegmentedControlでは複数のグループには分割できない。それぞれのボタンに色をつけることでそれを擬似的に表現したい。</p>
<p><img title="NewImage.png" src="http://samuraiapps.sakura.ne.jp/wp-content/uploads/2012/06/NewImage3.png" border="0" alt="NewImage" width="320" height="200" /></p>
<p>初期状態では「Month」「Timeline」がそれぞれ選択されている。</p>
<p><img title="NewImage.png" src="http://samuraiapps.sakura.ne.jp/wp-content/uploads/2012/06/NewImage4.png" border="0" alt="NewImage" width="320" height="200" /></p>
<p>「All」をタッチすると、「Month」の色が消えて、「All」に色がつく。「Timeline」と「Tag」に変化はない。</p>
<p><img title="NewImage.png" src="http://samuraiapps.sakura.ne.jp/wp-content/uploads/2012/06/NewImage5.png" border="0" alt="NewImage" width="320" height="200" /></p>
<p>さらに「Tag」をタッチすると、同様にボタンの色が変化する。</p>
<p>以下、コード。</p>
<p> </p>
<pre class="brush:c">- (void)viewWillAppear:(BOOL)animated {
	
    navigationSegment = [[UISegmentedControl alloc] initWithItems:nil];
    navigationSegment.segmentedControlStyle = UISegmentedControlStyleBar;
    navigationSegment.momentary = YES;
    
    //initialize UISegmentedControl
    //UISegmentedControlの初期化
    [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"month", @"Month")  atIndex:0 animated:NO];
    [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"all", @"All")  atIndex:1 animated:NO];
    [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"sorttime",@"Timeline")  atIndex:2 animated:NO];
    [navigationSegment insertSegmentWithTitle:NSLocalizedString(@"sorttag",@"Tag")  atIndex:3 animated:NO];
    [navigationSegment insertSegmentWithImage:[UIImage imageNamed: @"mail2.png"] atIndex:4 animated:NO];
    
    //call controlPressed when UISegmentedControl is pushed
    //UISegmentedControlが押されたら、controlPressedメソッドを呼ぶ
    [navigationSegment addTarget:self action:@selector(controlPressed:) forControlEvents:UIControlEventValueChanged];

    //Initial value: Month and Timeline is ON.
    //初期値はMonthがON,TimelineがON
    tagOrTime = TIMELINE_FLAG_ON;
    allOrMonth = MONTH_FLAG_ON;
    
    //When view is displayed, objectAtIndex(es) are 0, 1, 2, 3, and 4 from the left.
    //viewが表示されたときは、objectAtIndexは左から0,1,2,3,4。
    [[[navigationSegment subviews] objectAtIndex:0] setTintColor:[UIColor colorWithRed: 0/255.0 green:32/255.0 blue:128/255.0 alpha:0.2]];
    [[[navigationSegment subviews] objectAtIndex:1] setTintColor:nil];
    [[[navigationSegment subviews] objectAtIndex:2] setTintColor:[UIColor colorWithRed: 0/255.0 green:32/255.0 blue:128/255.0 alpha:0.2]];
    [[[navigationSegment subviews] objectAtIndex:3] setTintColor:nil];

    
    
}


- (void)controlPressed:(id)sender{
    int index = navigationSegment.selectedSegmentIndex;
    
    if(index == 2){
        tagOrTime = TIMELINE_FLAG_ON;
    }else if(index == 3){
        tagOrTime = TAG_FLAG_ON;
    }else if(index == 0){
        allOrMonth = MONTH_FLAG_ON;
    }else if(index == 1){
        allOrMonth = ALL_FLAG_ON;
    }else if(index == 4){
    	....
    }
    
    //Since the turn of Subview of UISegmentedControl changes irregularly, it rearranges from the left.
    //UISegmentedControlのSubviewの順番がなぜかコロコロ変わってしまうので、左から並び替える。
    NSArray *sortedViews = [navigationSegment.subviews sortedArrayUsingFunction:compareViewsByOrigin context:NULL];

    //A flag is changed according to the button pushed now.
    //現在押されているボタンに従って、フラグを変更する。
    if (tagOrTime == TAG_FLAG_ON) {
        [[sortedViews  objectAtIndex:2] setTintColor:nil];
        [[sortedViews  objectAtIndex:3] setTintColor:[UIColor colorWithRed: 0/255.0 green:32/255.0 blue:128/255.0 alpha:0.2]];
    } else {
        [[sortedViews objectAtIndex:3] setTintColor:nil];
        [[sortedViews objectAtIndex:2] setTintColor:[UIColor colorWithRed: 0/255.0 green:32/255.0 blue:128/255.0 alpha:0.2]];
        
    }
    
    if (allOrMonth == ALL_FLAG_ON) {
        [[sortedViews objectAtIndex:0] setTintColor:nil];
        [[sortedViews objectAtIndex:1] setTintColor:[UIColor colorWithRed: 0/255.0 green:32/255.0 blue:128/255.0 alpha:0.2]];
    } else {
        [[sortedViews objectAtIndex:1] setTintColor:nil];
        [[sortedViews objectAtIndex:0] setTintColor:[UIColor colorWithRed: 0/255.0 green:32/255.0 blue:128/255.0 alpha:0.2]];
    }

    // Remove all original segments from the control
    // 一旦Subviewをすべて削除
    for (id view in navigationSegment.subviews) {
        [view removeFromSuperview];
    }
    
    // Append sorted and colored segments to the control
    //　色を変えたsubviewを付け替える
    for (id view in sortedViews) {
        [navigationSegment addSubview:view];
    }

}
         
//subviews sort function
//ソート関数
NSInteger static compareViewsByOrigin(id sp1, id sp2, void *context)
{
    // UISegmentedControl segments use UISegment objects (private API). But we can safely cast them to UIView objects.
    float v1 = ((UIView *)sp1).frame.origin.x;
    float v2 = ((UIView *)sp2).frame.origin.x;
    if (v1 &lt; v2)
        return NSOrderedAscending;
    else if (v1 &gt; v2)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}
</pre>
<p>Thank you, <a href="https://goddess-gate.com/dc2/index.php/post/454">https://goddess-gate.com/dc2/index.php/post/454 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2012/06/03/uisegmentedcontrol%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ae%e8%89%b2%e3%82%92%e4%bb%bb%e6%84%8f%e3%81%ab%e5%a4%89%e3%81%88%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【iOS】おさいふをアップデートしました</title>
		<link>http://samurai-apps.com/2012/06/03/%e3%80%90ios%e3%80%91%e3%81%8a%e3%81%95%e3%81%84%e3%81%b5%e3%82%92%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2012/06/03/%e3%80%90ios%e3%80%91%e3%81%8a%e3%81%95%e3%81%84%e3%81%b5%e3%82%92%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/#comments</comments>
		<pubDate>Sat, 02 Jun 2012 22:55:24 +0000</pubDate>
		<dc:creator>tamori</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[おさいふ]]></category>
		<category><![CDATA[osaifu]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=865</guid>
		<description><![CDATA[iPhoneアプリ「おさいふ」をアップデートしました。ぜひお試しください！ 「おさいふ」は、単純なインターフェースで「続けられる家計簿入力」をコンセプトに作成しました。おさいふの入力をネットワーク経由でお友達やご夫婦で共有できること、最低２タップで入力が完了することが大きな特徴です。 （1.2.0でのアップデート） ・入力画面の使い勝手をよくしました。「タグ（摘要）」から、金額のフィールドをタップして、連続で入力できるようにしました。今までは一回一回「完了」ボタンを押さないといけなかったもので。 ・おさいふ選択画面で、残高表示されるようにしました。 ・リスト画面で、現在どの表示方法を選択しているか、わかりやすい配色にしました。 （1.1.0でのアップデート） ・プリセットボタンに別名を付けられることで、例えばボタンには食事の絵文字、タグ（摘要）には「ランチ」と別々に設定できるようにしました。  ]]></description>
				<content:encoded><![CDATA[<p>iPhoneアプリ「おさいふ」をアップデートしました。ぜひお試しください！</p>
<p>「おさいふ」は、単純なインターフェースで「続けられる家計簿入力」をコンセプトに作成しました。おさいふの入力をネットワーク経由でお友達やご夫婦で共有できること、最低２タップで入力が完了することが大きな特徴です。</p>
<p>（1.2.0でのアップデート）</p>
<p>・入力画面の使い勝手をよくしました。「タグ（摘要）」から、金額のフィールドをタップして、連続で入力できるようにしました。今までは一回一回「完了」ボタンを押さないといけなかったもので。</p>
<p>・おさいふ選択画面で、残高表示されるようにしました。</p>
<p>・リスト画面で、現在どの表示方法を選択しているか、わかりやすい配色にしました。</p>
<p>（1.1.0でのアップデート）</p>
<p>・プリセットボタンに別名を付けられることで、例えばボタンには食事の絵文字、タグ（摘要）には「ランチ」と別々に設定できるようにしました。</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2012/06/03/%e3%80%90ios%e3%80%91%e3%81%8a%e3%81%95%e3%81%84%e3%81%b5%e3%82%92%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【iOS】起動時にUIAlertを出して評価ページに飛ばす</title>
		<link>http://samurai-apps.com/2012/04/07/%e3%80%90ios%e3%80%91%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%abuialert%e3%82%92%e5%87%ba%e3%81%97%e3%81%a6%e8%a9%95%e4%be%a1%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e9%a3%9b%e3%81%b0%e3%81%99/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://samurai-apps.com/2012/04/07/%e3%80%90ios%e3%80%91%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%abuialert%e3%82%92%e5%87%ba%e3%81%97%e3%81%a6%e8%a9%95%e4%be%a1%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e9%a3%9b%e3%81%b0%e3%81%99/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 09:20:02 +0000</pubDate>
		<dc:creator>tamori</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://samurai-apps.com/?p=850</guid>
		<description><![CDATA[起動時に「このアプリを評価してください」とUIAlertにと出したい話。 こういう場合は、didFinishLaunchingWithOptionsにUIAlertについての記述をすれば良い。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { CGRect frameForWindow = [[UIScreen mainScreen] bounds]; window = [[UIWindow alloc] initWithFrame:frameForWindow]; //write about window //ウインドウについて記載 [window addSubview:navigationController.view]; //From here about UIAlert and rating popup. //manage displaying UIAlert by NSUserDefaults //ここからUIAlertについて記載。表示するかどうかはNSUserDefaultsで制御する。 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger executeTime = [userDefaults integerForKey: @"executeTime"]; NSInteger alertDispFlag = [userDefaults integerForKey: @"alertDispFlag"]; [...]]]></description>
				<content:encoded><![CDATA[<p>起動時に「このアプリを評価してください」とUIAlertにと出したい話。</p>
<p><img title="NewImage.png" src="http://samuraiapps.sakura.ne.jp/wp-content/uploads/2012/04/NewImage.png" border="0" alt="NewImage" width="320" height="480" /></p>
<p>こういう場合は、didFinishLaunchingWithOptionsにUIAlertについての記述をすれば良い。</p>
<pre class="brush:c">- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    CGRect frameForWindow = [[UIScreen mainScreen] bounds];
    window = [[UIWindow alloc] initWithFrame:frameForWindow];

    //write about window
    //ウインドウについて記載

    [window addSubview:navigationController.view];

    //From here about UIAlert and rating popup.
    //manage displaying UIAlert by NSUserDefaults
    //ここからUIAlertについて記載。表示するかどうかはNSUserDefaultsで制御する。
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    NSInteger executeTime = [userDefaults integerForKey: @"executeTime"];
    NSInteger alertDispFlag = [userDefaults integerForKey: @"alertDispFlag"];

    executeTime++;

    //If this application is started 6 times or more and alertDispFlag == 0, then alert is displayed.
    //もし６回以上起動していて、alertDispFlagが０なら表示する
    if (executeTime &gt; 5 &amp;&amp; alertDispFlag == 0) {
        // アラート表示

        UIAlertView *alertView = [[UIAlertView alloc] init];
        alertView.delegate = self;
        alertView.title=NSLocalizedString(@"pleaseReview", @"Please Rate");
        alertView.message=NSLocalizedString(@"appliciate", @"Please Rate this apps.");
        [alertView addButtonWithTitle:NSLocalizedString(@"Review", @"Rate now.")];
        [alertView addButtonWithTitle:NSLocalizedString(@"Later", @"Remind me later.")];
        [alertView addButtonWithTitle:NSLocalizedString(@"nothanks", @"No, thanks.")];
        [alertView show];
        [alertView release];

    }

    [userDefaults setInteger:executeTime forKey: @"executeTime"];
    [userDefaults synchronize];

    return YES;
}

//UIAlartのデリゲート。UIAlertの動作を記載する。
//delegate to UIAlret

-(void)alertView:(UIAlertView*)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex {

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    switch (buttonIndex) {
        case 0:
            //go to rate page
            [userDefaults setInteger: 1 forKey: @"alertDispFlag"];
            [userDefaults synchronize];
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:NSLocalizedString(@"reviewURL", @"") ]];
            break;

        case 1:

            break;
        case 2:
            [userDefaults setInteger: 1 forKey: @"alertDispFlag"];
            [userDefaults synchronize];
            break;
    }

}
</pre>
<p>review URLは、</p>
<blockquote><p>itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=（数字9桁のapp id)&amp;onlyLatestVersion=true&amp;pageNumber=0&amp;sortOrdering=1&amp;type=Purple+Software</p></blockquote>
<p>です。</p>
]]></content:encoded>
			<wfw:commentRss>http://samurai-apps.com/2012/04/07/%e3%80%90ios%e3%80%91%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%abuialert%e3%82%92%e5%87%ba%e3%81%97%e3%81%a6%e8%a9%95%e4%be%a1%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e9%a3%9b%e3%81%b0%e3%81%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>3</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>
	</channel>
</rss>
