<?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>tmdf.net</title>
	<atom:link href="http://tmdf.net/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://tmdf.net/blog</link>
	<description>Takaaki Morita Blog</description>
	<lastBuildDate>Tue, 24 Jan 2012 16:31:58 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
  <link>http://tmdf.net/blog</link>
  <url>http://tmdf.net/blog/../favicon.ico</url>
  <title>tmdf.net</title>
</image>
		<item>
		<title>Edge800 購入</title>
		<link>http://tmdf.net/blog/20110830_buy_edge800.html</link>
		<comments>http://tmdf.net/blog/20110830_buy_edge800.html#comments</comments>
		<pubDate>Mon, 29 Aug 2011 18:15:03 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[Gaap]]></category>
		<category><![CDATA[LOOK 566]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2406</guid>
		<description><![CDATA[Edge705が壊れてしまったので勢いで800を購入しました。Wiggleの20%OFF利用で本体は約32,000円、消費税+通関手数料とかは2,000円くらいで合計34,000円くらい。センサー類は705で使っていたも [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2011/08/edge800.jpg" alt="Edge 800" title="Edge 800" width="570" height="380" class="c" /></p>
<p>Edge705が壊れてしまったので勢いで800を購入しました。Wiggleの20%OFF利用で本体は約32,000円、消費税+通関手数料とかは2,000円くらいで合計34,000円くらい。センサー類は705で使っていたものをそのまま使います。今回は800を使ってみての感想。</p>
<p>まずは外観。705と比べると一回り小さく軽くなっています。500と705のちょっと705よりなサイズ。前面のタッチパネル周りはツヤありのカーボン調。側面と背面はすべりにくいようにウレタン塗装っぽくなっています。自分が買ったのはブラック×ホワイトですが、ブラック×ブルーもあって、そちらはセンサーが付いたセットのタイプだと思います。</p>
<p>スタイリングは側面の中央部（前後のパーツが組んでいるところ）にエッジを効かせて、あとは全体的にはダラした（ヌメっとさせた）感じ。少しスポーティな雰囲気を出しつつも、頑張りすぎず基本に忠実なGARMINデザイン、といった印象。</p>
<p>マウントは500と共通で、エラストマ（硬いゴムみたいな素材）の輪っかバンドでステムなどに固定するタイプ。本体を90度回転してロックさせるこの設計はよくできてると思います。</p>
<p>次は操作性。物理的なボタンはPOWER、LAP/RESET、START/STOPの3つだけ。あとは全てタッチパネルでの操作となりました。この3つのボタンは画面を見ないでも操作したいシーンが多いので、真面目にUIを考えた結果こうなったのでしょう。タッチパネルはiPhoneのような静電容量式ではなく感圧式ですが、かなりiPhoneなどの操作感に近づくように調整されていて、触れるだけで反応するようになっています。タッチパネルになったおかげで705のような4方向キーや、500のような2つの上下ボタンでチマチマ操作するよりは格段に使いやすくなりました。</p>
<p>その他、細かい部分について。<br />
これは500からそうでしたが、POWERボタンが長押しじゃなくて押せば起動になってます。あと、電源を切る時やラップを区切るときの長押しで液晶に表示されるカウントダウンが「3&#8230;2&#8230;1&#8230;」ではなく「5.4.3.2.1.」といった感じでスピーディになりました。たぶん長押しに必要な時間はほとんど一緒ですが、UIの調整が行われてるんだと思います。GPSの測位スピードなんかはほとんど変わらない気がします。</p>
<p>総合すると新規購入であれば705と比べて価格差以上の魅力が800にはありますが、705からの買い増しとなるとちょっと微妙なところですね。</p>
<p>最後に705の話をすこし。液晶が映らなくなったので修理しようと思ったのですが、リチウムイオンバッテリを内蔵した電子機器の国外への発送が面倒そうなので挫折。液晶以外はちゃんと動作していたので勿体無いですが、ジャンク品としてヤフオクで売りました。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20110830_buy_edge800.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最近の566</title>
		<link>http://tmdf.net/blog/20110829_recent_566.html</link>
		<comments>http://tmdf.net/blog/20110829_recent_566.html#comments</comments>
		<pubDate>Sun, 28 Aug 2011 15:12:37 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[LOOK 566]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2375</guid>
		<description><![CDATA[Look566も少しだけ変わってます。 100kmぐらい走ると妙に背中と肩が疲れるので、LOOK 566に付いていたステムを短かくしました。もともと付いていた「FSA OS-150 WHITE」のまま、長さを110mm/ [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2011/06/seat_cranp.jpg" alt="Seat Cramp" title="Seat Cramp" width="570" height="380" class="c" /></p>
<p>Look566も少しだけ変わってます。</p>
<p>100kmぐらい走ると妙に背中と肩が疲れるので、LOOK 566に付いていたステムを短かくしました。もともと付いていた「FSA OS-150 WHITE」のまま、長さを110mm/6° → 80mm/6° のタイプに。新品をヤフオクで5,000円。見た目のバランスは悪くなりましたがポジションは良くなりました。ついでに同じステムの90mmの中古をヤフオクで2,000円ちょっとで手に入れたので、徐々に体を慣れさせてこっちに変えたいと思っています。</p>
<p>それに加え、Gaapと合わせるかたちでハンドル幅を40cmに。これももともと付いていた「FSA Wing Pro Compact White Handlebar」のサイズ違いを購入。これでロングライドも楽になるはず。</p>
<p>あと一つ。どうでもいいところですが、シートクランプを評判の良かった「Campagnolo」にしてみました。これもヤフオクで1,200円とかで購入。特に変わったことを実感しないので感想も何もないですけどね。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20110829_recent_566.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最近のGaap</title>
		<link>http://tmdf.net/blog/20110828_recent_gaap.html</link>
		<comments>http://tmdf.net/blog/20110828_recent_gaap.html#comments</comments>
		<pubDate>Sun, 28 Aug 2011 03:53:03 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[DropHandle]]></category>
		<category><![CDATA[Gaap]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2380</guid>
		<description><![CDATA[最近あんまり乗っていないGaapですが、もう少しで10,000kmです。少しいじったので紹介。 まず、ハンドルバーをブルホーンにしました。ドロップハンドルの下ハンが結局耐えれないポジションだったのと、ハンドル幅が40cm [...]]]></description>
			<content:encoded><![CDATA[<p><img class="c" title="Bullhorn" src="http://tmdf.net/blog/wp-content/2011/06/bullhorn.jpg" alt="Bullhorn" width="570" height="380" /></p>
<p>最近あんまり乗っていないGaapですが、もう少しで10,000kmです。少しいじったので紹介。</p>
<p>まず、ハンドルバーをブルホーンにしました。ドロップハンドルの下ハンが結局耐えれないポジションだったのと、ハンドル幅が40cmの方が自分には合っているみたいなので交換。新しく付けたのは「Profile Design T2 WING OS BULLHORN BAR / 40cm」で、EvansCyclesで6,000円くらい。ハンドルの中央部分を白く塗ってステムから「3T」の文字を見えるようしました。無駄なこだわり。スタイリング的にはGaapにブルホーンって似合ってる気がします。</p>
<p>これに合わせてケーブル類も全部新しくしました。ケーブル類が全てセットになっている「Jagwire Racer Brake and Gear Cable Kit for Road Bikes」をWiggleで3,000円くらいで買ったのですが、アウターはシフトもブレーキも長さが足りません。ブレーキのインナーは、私のポジションでフロント、リアともに10cmくらい短かったです。今回はフロントにリア用の長いものを使って、リア用には2mタイプを別に用意しました。ちょっとコストパフォーマンス悪かったです。なにはともあれ、いつの間にか普通に自分でケーブル交換・調整ができるようにはなっています。</p>
<p>ブルホーンにしたことによって、ブレーキレバーの下部分を握れるようになったので、ドロップハンドルよりはブレーキをしっかりかけれるようになりましたが、カチっとした感じまでは至ってません。バーテープの中にブレーキを通しているので少し無理な曲げ方をしているのと、単純にブレーキケーブルが長いのが原因だと思います。あとブルホーンの場合、STIのブラケットではなく常にバーの部分を握ることになるので、気持ち厚めにバーテープを巻いた方が良さそうかも。意外と手が疲れるので次はバーテープを厚めに巻きたいと思います。</p>
<p>あと、ペダルを両面SPDの「Shimano PD-M520」にしました。色は黒。今まで「Shimano PD-A530」を付けていましたが、一度もスニーカーで乗らなかったので、潔く両面に。両面だと向きを気にしなくていいので片面の2倍以上楽になります。CRCで買ったので2,500円くらい。1,000円くらいで売っているオプションの「SM-PD22」を付ければフラットペダルにもなるので、はじめてのSPDペダルはA530よりコレの方が安くていい気がしました。</p>
<p>ちなみに使っていたハンドルやペダルがヤフオクなどで思った以上に高値で売れたので、交換してもほとんど実費がかかってません。かなり満足です。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20110828_recent_gaap.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CS5でFlashPlayer10.2</title>
		<link>http://tmdf.net/blog/20110513_cs5-fp102.html</link>
		<comments>http://tmdf.net/blog/20110513_cs5-fp102.html#comments</comments>
		<pubDate>Thu, 12 May 2011 16:14:36 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Flash / ActionScript]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2387</guid>
		<description><![CDATA[数カ月ぶりの投稿。もうすぐCS5.5が出るので必要な方は限られると思いますが、Adobe Flash Professional CS5を使ってFlashPlayer10.2のAPIを使ったswfを書き出す方法です。何か不 [...]]]></description>
			<content:encoded><![CDATA[<p>数カ月ぶりの投稿。もうすぐCS5.5が出るので必要な方は限られると思いますが、Adobe Flash Professional CS5を使ってFlashPlayer10.2のAPIを使ったswfを書き出す方法です。何か不具合があっても自己責任でお願いします。</p>
<p>「<a href="http://rhuno.com/flashblog/2011/04/04/how-to-compile-for-flash-player-10-2-with-flash-cs5/">Rhuno Flash Blog > How to compile for Flash Player 10.2 with Flash CS5</a>」を日本語訳しただけだと思ってください。簡単な英語が読める方は、上記のリンク先ページの最後の方に、必要なファイルと手順をまとめてくれているzipファイルがあるのでそれを使うと楽です。コメント欄に追記があるのでちゃんと見てください。</p>
<p>そうでない方は以下の手順。<br />
元のページがWin向けだったので、ここではMac向けに書きます。</p>
<h4>1. FlexSDKのダウンロード</h4>
<p><a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.5">ここ</a>からFlexSDK（2011.5.13時点では4.5.0.20967が最新）をダウンロード。「Adobe Flex SDK」で大丈夫です。</p>
<h4>2. playerglobal.swcのコピー</h4>
<p>「/アプリケーション/Adobe Flash CS5/Common/Configuration/ActionScript 3.0」に「FP10.2」フォルダを作成し、その中に先ほどダウンロードした「flex_sdk_4.5.0.20967/frameworks/libs/player/10.2/playerglobal.swc」をコピーして下さい。</p>
<h4>3. XMLファイルを作成</h4>
<p>「/アプリケーション/Adobe Flash CS5/Common/Configuration/Players」の「FlashPlayer10_1.xml」をコピーして、ファイル名を「FlashPlayer10_2.xml」に変更。このXMLファイルをテキストエディタなどで開き、以下の行を変更。<br />
3行目　playerノード　&#8221;FlashPlayer10&#8243; を &#8220;FlashPlayer10.2&#8243; にして、さらにversion を &#8220;11&#8243; に変更<br />
4行目　nameノード　&#8221;Flash Player 10.2&#8243; に変更<br />
8行目　playerDefinitionPath の as3= 以降を &#8220;$(AppConfig)/ActionScript 3.0/FP10.2/playerglobal.swc&#8221; に変更</p>
<h4>4. FlashPlayerを更新</h4>
<p>これは参考サイトに書かれていなかったのですが、<a href="http://www.adobe.com/support/flashplayer/downloads.html">ここ</a>から最新のFlashPlayerをダウンロードして「/アプリケーション/Adobe Flash CS5/Players」内の各Player（DebugやReleaseも）を最新のもので上書きした方がいいと思います。</p>
<h4>5. 動作確認</h4>
<p>Flashを再起動後、パブリッシュ設定に「FlashPlayer10.2」が追加されているはずです。てきとうなファイルを作り、動作確認してください。</p>
<h4>6. 注意事項</h4>
<p>一部のAPI（StageVideoなど？）を使うと、プレビューではエラーが出たりする場合があるようです。今のところデバッグやパブリッシュでは問題なく動きましたが、自分も今日したばっかりなのであまり検証していません。以上です。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20110513_cs5-fp102.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一定時間で消える線</title>
		<link>http://tmdf.net/blog/20101222_as3_line.html</link>
		<comments>http://tmdf.net/blog/20101222_as3_line.html#comments</comments>
		<pubDate>Wed, 22 Dec 2010 10:23:21 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Flash / ActionScript]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2347</guid>
		<description><![CDATA[マウスの座標をオリジナルクラスの二次元配列で保存し白線を描画、1秒後配列から削除します。]]></description>
			<content:encoded><![CDATA[<p>マウスの座標をオリジナルクラスの二次元配列で保存し白線を描画、1秒後配列から削除します。</p>
<p>
<object width="570" height="240">
<param name="movie" value="http://tmdf.net/blog/wp-content/2010/12/Drawing.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#000"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="570" height="240" src="http://tmdf.net/blog/wp-content/2010/12/Drawing.swf" quality="high" bgcolor="#000" wmode="window" menu="false" ></embed>
</object>
</p>
<pre class="brush: as3; title: ; notranslate">
package {
	import flash.display.Graphics;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Point;
	import flash.utils.getTimer;

	public class Main extends MovieClip {

		private var tracks:Vector.&lt;Vector.&lt;Track&gt;&gt;;

		public function Main():void {

			//初期化
			tracks = new Vector.&lt;Vector.&lt;Track&gt;&gt;();

			//リスナー登録
			this.addEventListener(Event.ENTER_FRAME, Draw);
			stage.addEventListener(MouseEvent.MOUSE_DOWN, Begin);
		}

		//ドラッグ開始
		private function Begin(e:MouseEvent):void {

			//更新
			Update(mouseX, mouseY, getTimer(), true);

			//リスナー登録
			stage.addEventListener(Event.ENTER_FRAME, Move);
			stage.addEventListener(MouseEvent.MOUSE_UP, Finish);
		}

		//ドラッグ中
		private function Move(e:Event):void {

			//更新
			Update(mouseX, mouseY, getTimer(), false);
		}

		//ドラッグ終了
		private function Finish(e:MouseEvent):void {

			//更新
			Update(mouseX, mouseY, getTimer(), false);

			//リスナー解除
			stage.removeEventListener(Event.ENTER_FRAME, Move);
			stage.removeEventListener(MouseEvent.MOUSE_UP, Finish);
		}

		//更新
		private function Update(_x:int, _y:int, _t:int, _s:Boolean):void {

			//データ追加
			if (!_s) _s = Boolean(tracks.length == 0);
			if (_s) tracks.unshift(new Vector.&lt;Track&gt;());
			tracks[0].unshift(new Track(_x, _y, _t));
		}

		//描画
		private function Draw(e:Event):void {

			//変数
			var t:uint = getTimer();
			var a:int = tracks.length;
			var b:int;
			var c:Boolean;
			var i:int;
			var j:int;
			var g:Graphics = this.graphics;

			//描画
			g.clear();
			if (a &gt; 0) {
				for (i = a - 1; i &gt;= 0; i --) {
					b = tracks[i].length;
					c = true;
					if (b &gt; 0) {
						for (j = b - 1; j &gt;= 0; j --) {
							if (t - tracks[i][j].t &gt; 1000) {
								tracks[i].splice(j, 1);
								if (j == 0) tracks.splice(i, 1);
							}
							else {
								if (c) {
									c = false;
									g.lineStyle();
									g.moveTo(tracks[i][j].x, tracks[i][j].y);
									g.beginFill(0xFFFFFF, 1.0);
									g.drawCircle(tracks[i][j].x, tracks[i][j].y, 3);
									g.endFill();
									g.lineStyle(6, 0xFFFFFF, 1.0, false);
								}
								g.lineTo(tracks[i][j].x, tracks[i][j].y);
							}
						}
					}
				}
			}
		}
	}
}

//軌跡クラス
class Track {
	public var x:int;
	public var y:int;
	public var t:int;
	public function Track(_x:int, _y:int, _t:int):void {
		x = _x;
		y = _y;
		t = _t;
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101222_as3_line.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oFで純正マルチタッチ</title>
		<link>http://tmdf.net/blog/20101213_of_multitouch.html</link>
		<comments>http://tmdf.net/blog/20101213_of_multitouch.html#comments</comments>
		<pubDate>Mon, 13 Dec 2010 14:38:06 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[iPhone / Objective-C]]></category>
		<category><![CDATA[openFrameworks]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2324</guid>
		<description><![CDATA[Mac版openFrameworksで純正マルチタッチ入力を取得する方法について。 デバイスを一つしか使わない（MacBookのトラックパッドやiMacにMagicTrackpad）場合はopenFrameworks.j [...]]]></description>
			<content:encoded><![CDATA[<p>Mac版openFrameworksで純正マルチタッチ入力を取得する方法について。</p>
<p>デバイスを一つしか使わない（MacBookのトラックパッドやiMacにMagicTrackpad）場合は<a href="http://openframeworks.jp/forum/topic.php?id=4">openFrameworks.jp forum 「MacBookProのトラックパッドでマルチタッチ」</a>のサンプルとかリンク先を見てください。</p>
<p>ここではすでにトラックパッドが搭載されているMacBookにMagicTrackpadをつないでMagicTrackpad側を認識したい場合、など複数のデバイスを混在させoFで認識させる方法について書きます。基本は上のサンプルとほとんど同じで、デバイスの取得で使う関数がObjective-Cで動作させる必要があるので少し変更が必要です。下記コードの変更は24行目と78～82行目の部分がメイン。</p>
<p>まず、oFのemptyExampleをコピーして、addonsの「ofxVectorMath」とフレームワークの「MultitouchSupport.framework」を読み込みます。次に「testApp.cpp」を「testApp.mm」に名称変更し、右クリック>情報を見る>ファイルタイプで「sourcecode.cpp.cpp」を「sourcecode.cpp.objcpp」に変更します。そしてtestApp.mmには以下のコード。</p>
<pre class="brush: cpp; title: ; notranslate">
#include &quot;testApp.h&quot;
#include &quot;ofxVectorMath.h&quot;

extern &quot;C&quot; {
	typedef struct { float x,y; } mtPoint;
	typedef struct { mtPoint pos,vel; } mtReadout;
	typedef struct {
		int frame;
		double timestamp;
		int identifier, state, foo3, foo4;
		mtReadout normalized;
		float size;
		int zero1;
		float angle, majorAxis, minorAxis;
		mtReadout mm;
		int zero2[2];
		float unk2;
	}
	Finger;

	typedef void *MTDeviceRef;
	typedef int (*MTContactCallbackFunction)(int,Finger*,int,double,int);

	CFMutableArrayRef MTDeviceCreateList(void);
	void MTRegisterContactFrameCallback(MTDeviceRef, MTContactCallbackFunction);
	void MTDeviceStart(MTDeviceRef, int);
}

class TouchPoint {
public:
	ofxVec2f pos;
	float size;
	int id;
	bool enable;
	float phase;
	float freq, amp;
	float trem_phase;
};

vector&lt;TouchPoint&gt; touchPoints;

int mtCallback(int device, Finger *data, int nFingers, double timestamp, int frame) {
	for (int i = 0; i &lt; touchPoints.size(); i  ++) {
		touchPoints[i].enable = false;
	}
	for (int i=0; i&lt;nFingers; i++) {
		Finger *f = &amp;data[i];

		/*
		 printf(&quot;Frame %7d: Angle %6.2f, ellipse %6.3f x%6.3f; &quot;
			&quot;position (%6.3f,%6.3f) vel (%6.3f,%6.3f) &quot;
			&quot;ID %d, state %d [%d %d?] size %6.3f, %6.3f?n&quot;,
			f-&gt;frame,
			f-&gt;angle * 90 / atan2(1,0),
			f-&gt;majorAxis,
			f-&gt;minorAxis,
			f-&gt;normalized.pos.x,
			f-&gt;normalized.pos.y,
			f-&gt;normalized.vel.x,
			f-&gt;normalized.vel.y,
			f-&gt;identifier, f-&gt;state, f-&gt;foo3, f-&gt;foo4,
			f-&gt;size, f-&gt;unk2);
		 */

		TouchPoint &amp;t = touchPoints[f-&gt;identifier];
		t.pos.x = f-&gt;normalized.pos.x;
		t.pos.y = 1 - f-&gt;normalized.pos.y;
		t.size = f-&gt;size;
		t.enable = true;
		t.id = f-&gt;identifier;
	}
	return 0;
}

void testApp::setup() {
	touchPoints.resize(20);

	NSMutableArray* deviceList = (NSMutableArray*)MTDeviceCreateList();
	for(int i = 0; i &lt; [deviceList count]; i ++) {
		MTRegisterContactFrameCallback([deviceList objectAtIndex:i], mtCallback);
		MTDeviceStart([deviceList objectAtIndex:i], 0);
	}

	ofEnableSmoothing();
	ofEnableAlphaBlending();
	ofSetVerticalSync(true);
	ofSetFrameRate(60);

	ofHideCursor();

	ofBackground(0, 0, 0);

	ofSetColor(255, 255, 255);
	ofNoFill();
}

void testApp::update() {
}

void testApp::draw() {
	for (int i = 0; i &lt; touchPoints.size(); i++)
	{
		TouchPoint &amp;t = touchPoints[i];

		if (t.enable == false) continue;

		float xx = t.pos.x * ofGetWidth();
		float yy = t.pos.y * ofGetHeight();
		ofCircle(xx, yy, t.size * 50);

		ofDrawBitmapString(ofToString(t.freq, 1), xx, yy);
	}
}

void testApp::keyPressed(int key) {
}

void testApp::keyReleased(int key) {
}

void testApp::mouseMoved(int x, int y){
}

void testApp::mouseDragged(int x, int y, int button) {
}

void testApp::mousePressed(int x, int y, int button) {
}

void testApp::mouseReleased(int x, int y, int button) {
}

void testApp::windowResized(int w, int h) {
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101213_of_multitouch.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>addCaller 注意点</title>
		<link>http://tmdf.net/blog/20101209_as3_addcaller.html</link>
		<comments>http://tmdf.net/blog/20101209_as3_addcaller.html#comments</comments>
		<pubDate>Thu, 09 Dec 2010 13:03:12 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Flash / ActionScript]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2298</guid>
		<description><![CDATA[Tweener ver.1.33.74（それ以外は未確認）でaddCallerを使う時の注意点。addCallerでtransitionを無指定のままにしておくとなぜか遅延されます。下記swfはキーボードの「1」を押した [...]]]></description>
			<content:encoded><![CDATA[<p>Tweener ver.1.33.74（それ以外は未確認）でaddCallerを使う時の注意点。addCallerでtransitionを無指定のままにしておくとなぜか遅延されます。下記swfはキーボードの「1」を押した時がtransition指定無し、「2」「3」を押したときは指定有りでaddCallerを呼び、イベントが発生するたびに円を右に動かします。</p>
<p>
<object width="570" height="200">
<param name="movie" value="http://tmdf.net/blog/wp-content/2010/12/addCaller.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#000"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="570" height="200" src="http://tmdf.net/blog/wp-content/2010/12/addCaller.swf" quality="high" bgcolor="#000" wmode="window" menu="false" ></embed>
</object>
</p>
<pre class="brush: as3; title: ; notranslate">
//Main.as

package {
	import caurina.transitions.Tweener;
	import flash.display.Graphics;
	import flash.display.MovieClip;
	import flash.events.KeyboardEvent;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;

	public class Main extends MovieClip {

		private var Circle_mc:MovieClip;

		public function Main():void {

			//円
			Circle_mc = new MovieClip();
			Circle_mc.graphics.beginFill(0x999999, 1);
			Circle_mc.graphics.drawCircle(0, 0, 50);
			Circle_mc.x = 170;
			Circle_mc.y = stage.stageHeight / 2;
			this.addChild(Circle_mc);

			//説明文
			var Text_tf:TextField = new TextField();
			Text_tf.textColor = 0xFFFFFF;
			Text_tf.text = &quot;KeyDown (ON/OFF)n1 : nonen2 : linearn3 : easeInOutCubic&quot;;
			Text_tf.x = Text_tf.y = 10;
			Text_tf.autoSize = TextFieldAutoSize.LEFT;
			this.addChild(Text_tf);

			//リスナー登録
			stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
		}

		//キーボードが押された場合
		private function KeyDown(e:KeyboardEvent):void {

			//移動
			if (e.keyCode == 49 || e.keyCode == 97) Move(&quot;&quot;);
			else if (e.keyCode == 50 || e.keyCode == 98) Move(&quot;linear&quot;);
			else if (e.keyCode == 51 || e.keyCode == 99) Move(&quot;easeInOutCubic&quot;);
		}

		//移動
		private function Move(_type:String):void {

			//初期化
			Tweener.removeTweens(this);
			Circle_mc.x = 170;

			//トランジションが指定されている場合
			if (_type != &quot;&quot;) {
				Tweener.addCaller(this, {
					count		:30,
					time		:3.0,
					transition	:_type,
					onUpdate	:Update
				});
			}

			//トランジションが無指定の場合
			else {
				Tweener.addCaller(this, {
					count		:30,
					time		:3.0,
					onUpdate	:Update
				});
			}

			//トゥイーン中
			function Update():void {
				Circle_mc.x += 10;
			}
		}
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101209_as3_addcaller.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rep2 カスタム</title>
		<link>http://tmdf.net/blog/20101208_rep2_custom.html</link>
		<comments>http://tmdf.net/blog/20101208_rep2_custom.html#comments</comments>
		<pubDate>Wed, 08 Dec 2010 14:28:18 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[rep2]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2301</guid>
		<description><![CDATA[rep2の自分用カスタムメモ。 使用している画像とかスキンは「rep2_tmdf.zip」からダウンロードできます。 1. iPhone用Webクリップを変更 img/touch-icon/p2-serif.png を好 [...]]]></description>
			<content:encoded><![CDATA[<p>rep2の自分用カスタムメモ。<br />
使用している画像とかスキンは「<a href='http://tmdf.net/blog/wp-content/2010/12/rep2_tmdf.zip'>rep2_tmdf.zip</a>」からダウンロードできます。</p>
<h4>1. iPhone用Webクリップを変更</h4>
<p>img/touch-icon/p2-serif.png を好きな画像に変更<br />
解像度はiPhoneやiPadが勝手にリサイズするので大きめでOK。<br />
同じフォルダ内に他にも画像がいっぱいあるけど何のためだろう？</p>
<h4>2. faviconを変更</h4>
<p>./favicon.ico を好きな画像に変更</p>
<h4>3. スタイルシートを変更</h4>
<p>skin/○○○.php を追加（※自分の場合はtmdf.php）<br />
設定管理の「スキン」でそれを指定</p>
<h4>4. 2カラムに変更 &#038; 新規タブで開く</h4>
<p>設定管理 > ユーザ設定編集 > ETC の<br />
frame_subject_width と frame_read_width を空白に。<br />
このままだとスレ一覧のリンクをクリックした際に見えなくしている<br />
カラムに表示されてしまうので target=&#8221;_blank&#8221; を下記に追加<br />
lin/sb_print.inc.php の443行目（※各スレッド）<br />
lib/sb_toolbar.inc.php の127行目（※板の新着まとめ読み）</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101208_rep2_custom.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>keyCode 一覧リスト</title>
		<link>http://tmdf.net/blog/20101110_as3-keycode.html</link>
		<comments>http://tmdf.net/blog/20101110_as3-keycode.html#comments</comments>
		<pubDate>Wed, 10 Nov 2010 14:48:47 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Flash / ActionScript]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2277</guid>
		<description><![CDATA[自分が好きな感じのタイプがなかったのでキーボードのグラフィック上にkeyCodeをマッピングしたグラフィックを作りました。ActionScript（Flash）でKeyboardEventを大量に使う時に便利なはず。編集 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2010/11/Keycode.gif" alt="Keycode" title="Keycode" width="570" height="190" class="c" /></p>
<p>自分が好きな感じのタイプがなかったのでキーボードのグラフィック上にkeyCodeをマッピングしたグラフィックを作りました。ActionScript（Flash）でKeyboardEventを大量に使う時に便利なはず。編集可能なPDFなので好きなようにいじって使ってください。間違えてないはずだけど、間違えてたら直すのでコメントで教えてください。</p>
<p><a href='http://tmdf.net/blog/wp-content/2010/11/Keycode.pdf'>Download Keycode.pdf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101110_as3-keycode.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>トレイナー（固定ローラー台） 購入</title>
		<link>http://tmdf.net/blog/20101109_buy_trainer.html</link>
		<comments>http://tmdf.net/blog/20101109_buy_trainer.html#comments</comments>
		<pubDate>Tue, 09 Nov 2010 14:27:34 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2094</guid>
		<description><![CDATA[「Elite SuperCrono Fluid Digital Wireless」を買いました。ついでに「Cycleops Training Mat」「Cycleops Bike Thong」と、「Cycleops Ri [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2010/10/trainer.jpg" alt="Elite SuperCrono Fluid Digital Wireless" title="Elite SuperCrono Fluid Digital Wireless" width="570" height="380" class="c" /></p>
<p>「Elite SuperCrono Fluid Digital Wireless」を買いました。ついでに「Cycleops Training Mat」「Cycleops Bike Thong」と、「Cycleops Riser Block」を2つ購入。有線コンピュータのモデルが在庫切れになっていたので、送料が無料だったこちらに。EvansCyclesで全て揃えて£356.5（約47,000円）と消費税が500円、金曜日の夜に発注して翌週の木曜日に着。</p>
<p>気になっていた音と振動は満足のいくレベル。マットを敷いて使えば振動は感じられないので階下を気にせず（家は軽量鉄骨アパートの3F/3F）使ってます。動作音はiPhoneの「Decibel」というアプリで、ローラー台から1mくらい離して計測したところ70dbくらい。漕ぐたびに「ヒュン ヒュン」鳴っています。</p>
<p>また、付属コンピュータのワット数表示は負荷の目安になっていいです。ただ、ワット数計測で使用する重量が1つしか保存できないのが残念。毎回変更するのも面倒なので妻の体重でセットしています。獲得標高は負荷に合っている気がしますが、仮想傾斜度は思ったより実感がわきません。</p>
<p>あと、メーカーは推奨していないので壊れても自己責任ですが、ローラ部分を26インチ（最小）の位置にセットし、「Cycleops Riser Block」を2つ重ねて前輪を持ち上げると20インチ（451）のTarutaruga Type SPORT でも使えます。こちらのブログ「<a href="http://3748nayu.blog92.fc2.com/blog-entry-154.html">ぴちゃと☆ぶろぐ「ローラー台到着！」</a>」の方が18インチのBD-1で使ってたので、そのままオプション品も参考にさせてもらいました。試していませんがGaapでも使えると思います。</p>
<p>最後に不満点ですが、ローラー台本体が入ったダンボールの梱包が酷かったです。ELITEのせいかEveansCyclesのせいか分かりませんが、かなり重量のあるローラー台のフレーム部分とローラー部分がそのまま剥き出しで入れられていて、輸送中に中でぶつかり合って傷だらけ、説明書や電池も何故か濡れている、といった状況。問題なく動いたのでいいですが、たぶん返品する人のほうが多いと思います。もう一つのCycleOpsのマットなどがまとめて入れられてた方は、緩衝材などは入ってなかったですが無事でした。これからEvansCyclesで壊れそうなものを買うのは控えます。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101109_buy_trainer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mxj を.app(.exe) ビルド時の注意点</title>
		<link>http://tmdf.net/blog/20101106_notemxj.html</link>
		<comments>http://tmdf.net/blog/20101106_notemxj.html#comments</comments>
		<pubDate>Fri, 05 Nov 2010 16:42:24 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Max/MSP / Processing]]></category>
		<category><![CDATA[Max/MSP]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2228</guid>
		<description><![CDATA[mxjのライブラリを使ったMax/MSPを.app（.exe）でビルドし、そのまま実行するとJavaの実行環境がインクルードされていないためにうまく動かない場合があります。Maxウィンドウには下記エラー表示。 ・(mxj [...]]]></description>
			<content:encoded><![CDATA[<p>mxjのライブラリを使ったMax/MSPを.app（.exe）でビルドし、そのまま実行するとJavaの実行環境がインクルードされていないためにうまく動かない場合があります。Maxウィンドウには下記エラー表示。<br />
・(mxj) Unable to find max.jar! mxj is rendered powerless in its absence.<br />
・Unable to create JVM<br />
これの解決方法を紹介。</p>
<p>Macの場合、ビルドされた■■■.appを右クリックして「パッケージの内容を表示」し「Contents/support」フォルダ内に「java」フォルダを新規作成。その中に「アプリケーション/Max5/Cycling &#8217;74/java」フォルダ内にある以下のファイルをコピー。<br />
・classes/■■■.class　*使用しているライブラリ<br />
・classes/■■■.java<br />
・lib/max.jar<br />
・max.java.config.txt</p>
<p>Windowsの場合も似たディレクトリになっているので、同じようにファイルをコピー。<br />
これでちゃんと実行されるはず。</p>
<p>注意点は、「コレクティブ / アプリケーションをビルド&#8230;」をすると、「含めるフォルダ&#8230;」などでインクルードするファイルを指定できますが、上記ファイルを指定してもインクルードされない上に、後でビルドされたアプリにmax.jarをコピーしてもうまく認識されなくなります。なのでmxj関連のファイルは指定しないようにしておきましょう。</p>
<p>上記の環境はMac、WinともにMax5.1.4です。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101106_notemxj.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>起動時にMaxウィンドウ非表示</title>
		<link>http://tmdf.net/blog/20101104_hide-maxwindo.html</link>
		<comments>http://tmdf.net/blog/20101104_hide-maxwindo.html#comments</comments>
		<pubDate>Thu, 04 Nov 2010 14:56:44 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Max/MSP / Processing]]></category>
		<category><![CDATA[Max/MSP]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2262</guid>
		<description><![CDATA[タイトルの通り、.mxf や.app（.exe）のMax/MSPの実行ファイルを起動した場合に、Maxウィンドウを表示させない方法の紹介。 「standalone」オブジェクトを作り、「インスペクタ」で「Status W [...]]]></description>
			<content:encoded><![CDATA[<p>タイトルの通り、.mxf や.app（.exe）のMax/MSPの実行ファイルを起動した場合に、Maxウィンドウを表示させない方法の紹介。</p>
<p>「standalone」オブジェクトを作り、「インスペクタ」で「Status Window Visible at Statup」をオフにするだけ。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101104_hide-maxwindo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>シートポスト交換</title>
		<link>http://tmdf.net/blog/20101102_change_seatpost.html</link>
		<comments>http://tmdf.net/blog/20101102_change_seatpost.html#comments</comments>
		<pubDate>Tue, 02 Nov 2010 14:34:39 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[Gaap]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=1825</guid>
		<description><![CDATA[Gaapのシートポストを「3T Palladio Pro Setback Seatpost 350mm / 27.2mm」に交換しました。これでハンドルバー、ステム、シートポストが3Tで揃いました。満足。最初は「3T D [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2010/10/seatpost.jpg" alt="Seatpost" title="Seatpost" width="570" height="380" class="c" /></p>
<p>Gaapのシートポストを「3T Palladio Pro Setback Seatpost 350mm / 27.2mm」に交換しました。これでハンドルバー、ステム、シートポストが3Tで揃いました。満足。最初は「3T Dorico Pro」にしようと思っていたのですが、2ヶ月以上待っても入荷しなかったのでこちらに。ChainReactionCyclesで7,500円くらい。</p>
<p>長くなったおかげで適切な高さまでサドルを上げれるようになり、クランクが回しやすくなりました。思った以上に快適になったのでもっと早く交換すれば良かったです。</p>
<p>「<a href="http://www.3tcycling.com/products.aspx?i=road&#038;t=Seatposts&#038;p=palladio">3T Cycling PALLADIO</a>」の写真を見てもらうと分かりますが、このシートポストはサドルの取付が特殊で、2つのギアを回転させて角度を調整し、やぐらにサドル（レール）を載せ、横からキャップをボルトで締めます。<br />
この方法のおかげで、取り付け時にズレてしまう心配がなくなり、サドルの位置を前後に微調整するのが簡単になりました。その反面、ちょっとだけ角度を変えたい場合でもすべて分解する必要があります。私は他のシートポストの機構よりもこちらの方が理にかなってると思いますし、ギアの精巧な質感も好みです。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101102_change_seatpost.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>プロパティ毎にremoveTweens</title>
		<link>http://tmdf.net/blog/20101008_as3_removetweens.html</link>
		<comments>http://tmdf.net/blog/20101008_as3_removetweens.html#comments</comments>
		<pubDate>Fri, 08 Oct 2010 10:36:50 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Flash / ActionScript]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=2070</guid>
		<description><![CDATA[TweenerのremoveTweensについてあまり書かれていないのでメモ。オブジェクトにaddTweenしたプロパティの一部だけを止めたい場合は、「Tweener.removeTweens(オブジェクト, プロパティ [...]]]></description>
			<content:encoded><![CDATA[<p>TweenerのremoveTweensについてあまり書かれていないのでメモ。オブジェクトにaddTweenしたプロパティの一部だけを止めたい場合は、「Tweener.removeTweens(オブジェクト, プロパティ);」といった書き方をします。プロパティ名はStringで指定し、複数ある場合はカンマ区切りで続けて書きます。プロパティ部分を省略するとすべてトゥイーンが止まります。</p>
<div class="add">修正 2010.10.25<br />
一度もaddTweenせずにremoveTweensをプロパティ指定して呼びだすと、「TypeError: Error #1009: ～～～」が発生します。起動時に何でもいいのでオブジェクトにaddTweenしておくとエラーを回避できます。
</div>
<p>
<object width="570" height="200">
<param name="movie" value="http://tmdf.net/blog/wp-content/2010/10/RemoveTweens.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#000"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="570" height="200" src="http://tmdf.net/blog/wp-content/2010/10/RemoveTweens.swf" quality="high" bgcolor="#000" wmode="window" menu="false" ></embed>
</object>
</p>
<pre class="brush: as3; title: ; notranslate">
//Main.as

package {
	import caurina.transitions.Tweener;
	import flash.display.Graphics;
	import flash.display.MovieClip;
	import flash.events.KeyboardEvent;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;

	public class Main extends MovieClip {

		private var Circle_mc:MovieClip;
		private var fade:Boolean;
		private var move:Boolean;

		public function Main():void {

			//円
			Circle_mc = new MovieClip();
			Circle_mc.graphics.beginFill(0xFFFFFF, 1);
			Circle_mc.graphics.drawCircle(0, 0, 60);
			Circle_mc.x = 100;
			Circle_mc.y = stage.stageHeight / 2;
			this.addChild(Circle_mc);

			//説明文
			var Text_tf:TextField = new TextField();
			Text_tf.textColor = 0xFFFFFF;
			Text_tf.text = &quot;KeyDown (ON/OFF)n1 : Moven2 : Alphan3 : Both&quot;;
			Text_tf.x = Text_tf.y = 10;
			Text_tf.autoSize = TextFieldAutoSize.LEFT;
			this.addChild(Text_tf);

			//動作
			Change(&quot;fade&quot;, true);
			Change(&quot;move&quot;, true);

			//リスナー登録
			stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
		}

		//キーボードが押された場合
		private function KeyDown(e:KeyboardEvent):void {

			//フェードイン（アウト） トグル
			if (e.keyCode == 49 || e.keyCode == 97) Change(&quot;fade&quot;, !fade);

			//x軸移動 トグル
			else if (e.keyCode == 50 || e.keyCode == 98) Change(&quot;move&quot;, !move);

			//3 停止（どちらも停止中の場合は開始）
			else if (e.keyCode == 51 || e.keyCode == 99) {
				if (!fade &amp;&amp; !move) {
					Change(&quot;fade&quot;, true);
					Change(&quot;move&quot;, true);
				}
				else Change(&quot;both&quot;);
			}
		}

		//動作
		private function Change(_type:String, _value:Boolean = false):void {

			//フェードイン（アウト） 停止
			if (_type == &quot;fade&quot; &amp;&amp; !_value) {
				fade = false;
				Tweener.removeTweens(Circle_mc, &quot;alpha&quot;);
			}

			//フェードイン（アウト） 開始
			else if (_type == &quot;fade&quot; &amp;&amp; _value) {
				fade = true;
				Tweener.addTween(Circle_mc, {
					alpha				:1.0,
					time				:0.5
				});
				Tweener.addTween(Circle_mc, {
					alpha				:0.2,
					delay				:0.5,
					time				:0.5,
					onComplete			:Change,
					onCompleteParams	:[&quot;fade&quot;, true]
				});
			}

			//x軸移動 停止
			else if (_type == &quot;move&quot; &amp;&amp; !_value) {
				move = false;
				Tweener.removeTweens(Circle_mc, &quot;x&quot;);
			}

			//x軸移動 開始
			else if (_type == &quot;move&quot; &amp;&amp; _value) {
				move = true;
				Tweener.addTween(Circle_mc, {
					x					:stage.stageWidth - 100,
					time				:2.5
				});
				Tweener.addTween(Circle_mc, {
					x					:100,
					delay				:2.5,
					time				:2.5,
					onComplete			:Change,
					onCompleteParams	:[&quot;move&quot;, true]
				});
			}

			//両方 停止
			else if (_type == &quot;both&quot;) {
				fade = false;
				move = false;
				Tweener.removeTweens(Circle_mc, &quot;alpha&quot;, &quot;x&quot;);
			}
		}
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101008_as3_removetweens.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SPDペダル 購入</title>
		<link>http://tmdf.net/blog/20101007_buy_spd.html</link>
		<comments>http://tmdf.net/blog/20101007_buy_spd.html#comments</comments>
		<pubDate>Thu, 07 Oct 2010 13:19:50 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[LOOK 566]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=1898</guid>
		<description><![CDATA[LOOK 566にはロード用 片面SPDペダルの「SHIMANO PD-A600」を付けました。Bicinet Sanaで5,800円くらい。Gaap用に買った「SHIMANO PD-A530」と一緒に買ってずっと眠って [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2010/09/a600.jpg" alt="PD-A600" title="PD-A600" width="570" height="380" class="c" /></p>
<p>LOOK 566にはロード用 片面SPDペダルの「SHIMANO PD-A600」を付けました。Bicinet Sanaで5,800円くらい。Gaap用に買った「SHIMANO PD-A530」と一緒に買ってずっと眠っていました。<br />
566付属の「LOOK KEO CLASSIC PEDAL」はロード用のビンディングシューズを持っていないので未使用のままお蔵入り。</p>
<p>このペダルはULTEGRAグレードで、金属の質感が「ヌメッ」「ツルッ」とした感じで高級感があります。ただしクリートをキャッチし損なうたびに、傷が増えて塗装が剥げていき、今では残念な見た目になりました。</p>
<p>「SHIMANO PD-A530」と比べると、ペダル本体も軽く回しやすい気がします。ビンディングの固定力は同じ最弱設定にしても、「PD-A600」のほうがかなり強く固定されます。信号待ちで足を外すと、ひっくり返ってビンディングではない面が上になってしまいますが、ペダルの手前をつま先で少し蹴り上げつつ、スライドさせるといい感じにキャッチできます。グリスを調整すればひっくり返らなくなるかもしれません。</p>
<div class="add">一部記事修正 2010.10.29</div>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101007_buy_spd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>トレイナー（固定ローラー台） 調査</title>
		<link>http://tmdf.net/blog/20101006_research_trainer.html</link>
		<comments>http://tmdf.net/blog/20101006_research_trainer.html#comments</comments>
		<pubDate>Wed, 06 Oct 2010 14:45:32 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=1925</guid>
		<description><![CDATA[レースに出る気もないのに、トレーニング用にローラー台が欲しくて調べたのでメモ。 賃貸住宅なので、設置面積が小さく動作音の少ないタイヤドライブ式の固定ローラーに絞りました。このタイプの特徴は、後輪タイヤだけが減る、ペダリン [...]]]></description>
			<content:encoded><![CDATA[<p>レースに出る気もないのに、トレーニング用にローラー台が欲しくて調べたのでメモ。<br />
賃貸住宅なので、設置面積が小さく動作音の少ないタイヤドライブ式の固定ローラーに絞りました。このタイプの特徴は、後輪タイヤだけが減る、ペダリングの練習には向かない（≒読書しながらでもできる）、高負荷をかけやすい（カーボンフレームには良くない？）、実装感はほどほど、といったところ。「静か」と評判のものを、欲しい順にピックアップ。</p>
<h4 class="p_t40">ELITE SuperCrono Hydromag</h4>
<p><img src="http://tmdf.net/blog/wp-content/2010/10/elite.jpg" alt="ELITE SuperCrono Hydromag" title="ELITE" width="240" height="180" class="l m_t40 m_b40" />まずはイタリアのELITE社のローラー台で、レビューの数は少ないですが、軒並み高評価な一品。<br />
イタリア製のイメージとは違い、作りはかなりしっかりしているみたい。マンションなのに直置きで使用している人がいるぐらいなので、静粛性はかなりのはず。負荷は5段階と少なめですが、1段1段の幅はけっこう広く取ってあり、ハンドルまで有線で伸ばしたコントローラーで調整します。</p>
<p><span class="r">Web : <a href="http://www.elite-it.com/">ELITE（英語）</a><span class="space">│</span>￥28,500くらい (EvansCycles 送料込)</span></p>
<h4 class="p_t40">ELITE SuperCrono Fluid Digital Trainer</h4>
<p><img src="http://tmdf.net/blog/wp-content/2010/10/elite2.jpg" alt="ELITE SuperCrono Fluid Digital Trainer" title="ELITE SuperCrono Fluid Digital Trainer" width="240" height="200" class="l m_t40 m_b40" />これもELITE社製で、上記モデルと見た目はかなり似ていますが、さらに静かな負荷調整をなくした（自転車の変速で調整）モデル。負荷調整自体は、ローラー台本体にあった方が練習の幅が広がると言う人もいれば、あっても使わないって人もいるので人それぞれだと思います。<br />
負荷調整がない代わりに、こちらにはちょっと楽しそうな出力やバーチャル斜度などを表示できるコンピュータが付いてます。<br />
※Hydromagにもコンピュータを付けたDigitalモデルがあります。</p>
<p><span class="r">Web : <a href="http://www.elite-it.com/">ELITE（英語）</a><span class="space">│</span>￥30,500くらい (EvansCycles 送料込)</span></p>
<h4 class="p_t40">MINOURA Gyro V270-2</h4>
<p><img src="http://tmdf.net/blog/wp-content/2010/10/minoura.jpg" alt="MINOURA Gyro V270-2" title="MINOURA Gyro V270-2" width="240" height="160" class="l m_t40 m_b40" />日本のミノウラが作っている最上グレードの固定ローラー台。負荷を7段階に調整可能で、後述のTacxやCycleOpsの負荷調整をサイト内で名指しで批判しているあたり、かなり自信のある製品みたい。静粛性も負荷を少し重たくすればチェーン音しかしないとレビューされていて、<a href="http://www.youtube.com/watch?v=Q0i91PC42W4">YouTubeの動画</a>でもそんな感じ。<br />
個人的には20インチじゃないと意味がないのですが、700x40c～22インチと幅広いタイヤサイズに対応しています。<br />
精度は低いみたいですが、オプションのワットマスター（出力計）が4,000円と安く、アナログチックな使用方法で面白いようです。</p>
<p><span class="r">Web : <a href="http://www.minourausa.com/japan/trainer-j/tire-j/v270-2-j.html">Minoura（日本語）</a><span class="space">│</span>￥29,000くらい (国内ショップ 送料込)</span></p>
<h4 class="p_t40">CycleOps Classic Fluid<sup>2</sup></h4>
<p><img src="http://tmdf.net/blog/wp-content/2010/10/cycleops.jpg" alt="CycleOps Classic Fluid2" title="CycleOps Classic Fluid2" width="240" height="130" class="l m_t40 m_b40" />アメリカのCycleOps社の製品。負荷調整はないですが、自然な走行感で静かだそうです。<br />
CycleOpsはアクセサリー類が魅力的で、5,000円ぐらいでローラー部分を底上げする「20/24inch Wheel Adapter」もあり、Gaapでも使えるみたい。<br />
また、前輪を置く「Riser Block」は大きくしっかりしていて、1つで3パターンの高さの溝があり、2つ重ねてさらに高さを調整することができ、値段も2,000円前後と安くて高評価。ハンドルとサドルまでをカバーする汗対策タオル「Bike Thong」も小物入れが付いているので使いやすそう。</p>
<p><span class="r">Web : <a href="http://www.cycleops.com/products/trainers.html">CycleOps（英語）</a><span class="space">│</span>￥25,500くらい (SlaneCycles 送料込)</span></p>
<h4 class="p_t40">Tacx Sirius T1435</h4>
<p><img src="http://tmdf.net/blog/wp-content/2010/10/tacx.jpg" alt="Tacx Sirius T1435" title="Tacx Sirius T1435" width="240" height="180" class="l m_t40 m_b40" />オランダのTacx製。このメーカーのデザインはけっこう好きだけど、これはちょっと&#8230;。「Satori」はカッコいい。<br />
レビューを見る限り、今回ピックアップしている中ではこれが一番うるさそう。負荷は10段階。値段は一番手頃なので安くて静かなものが欲しい人はこれがいいかも。</p>
<p><span class="r">Web : <a href="http://www.tacx.com/producten/fietstrainers/sirius/index.dot">Tacx（英語）</a><span class="space">│</span>￥19,000くらい(ChainReactionCycles 送料込)</span></p>
<div class="l p_t40">
※海外ショップの価格は 2010.10.6 時点。
</div>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101006_research_trainer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>サドルバッグ 購入</title>
		<link>http://tmdf.net/blog/20101003_buy_saddlebag.html</link>
		<comments>http://tmdf.net/blog/20101003_buy_saddlebag.html#comments</comments>
		<pubDate>Sun, 03 Oct 2010 14:47:32 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[LOOK 566]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=1884</guid>
		<description><![CDATA[意図せずLOOK 566がFizi:k製のサドルだったので、「Fizi:k ICS Seat Bag」というサドルバッグを試しに付けてみました。名前にも入っている「ICS」っていうのうはFizi:kの独自規格で、サドルの [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2010/09/saddle_bag.jpg" alt="ICS Seat Bag" title="ICS Seat Bag" width="570" height="380" class="c" /></p>
<p>意図せずLOOK 566がFizi:k製のサドルだったので、「Fizi:k ICS Seat Bag」というサドルバッグを試しに付けてみました。名前にも入っている「ICS」っていうのうはFizi:kの独自規格で、サドルの背面にあるロゴのプレートを取り外し、そこへ対応したサドルバッグやリアライトを装着できるシステムのこと。クリップ部分にエンボスで「特許出願済み」と大きく英語で入ってます。買ったサドルバッグはたぶんSサイズ（大きい方）で1,400円くらい、Wiggleです。</p>
<p>装着はこれ以上ないってくらい簡単で、ただカチッとはめるだけ。サドルの角度とか位置を微調整をしたい時のバッグを外す作業が全く億劫になりません。取り付け角度はプラスドライバーで調整できるようになっています。手でグイグイ引っ張ってみても外れそうになかったので、私は単体で使っていますが、心配な人はジッパーの脇に紐を通す穴があるのでそこを使って補強すればいいと思います。</p>
<p>収納はGaapで使ってるTacxのツール缶とほぼ同等。具体的には「チューブ1本、CO2インフレーターとボンベ2本、携帯ミニ工具、パンク修理パッチ、タイヤレバー、コイン電池」がちょうど入るぐらい。押しこめばチューブ2本いけるかもしれません。</p>
<p>他のブログなどにも書かれていますが、ICS対応のリアライトと併用できない点は残念ですが、サドルバッグ単体でみてもスマートなのでお薦めです。Fizi:kのサドルが付いてきて良かったな、ってちょっと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101003_buy_saddlebag.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LOOK 566 : スペック</title>
		<link>http://tmdf.net/blog/20101001_566_spec.html</link>
		<comments>http://tmdf.net/blog/20101001_566_spec.html#comments</comments>
		<pubDate>Fri, 01 Oct 2010 13:58:32 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[LOOK 566]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=1767</guid>
		<description><![CDATA[FRAME LOOK 566 L Size FORK LOOK 566 HEAD PARTS FSA ALU 1 &#8220;1/8&#8243; TIRE Victoria Zaffiro Slick 23c WHE [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tmdf.net/blog/wp-content/2010/07/566.jpg" alt="566" title="566" width="570" height="380" class="c" /></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="tbl_g">FRAME</td>
<td>LOOK 566 L Size</td>
</tr>
<tr>
<td class="tbl_g">FORK</td>
<td>LOOK 566</td>
</tr>
<tr>
<td class="tbl_g">HEAD PARTS</td>
<td>FSA ALU 1 &#8220;1/8&#8243;</td>
</tr>
<tr>
<td class="tbl_g">TIRE</td>
<td>Victoria Zaffiro Slick 23c</td>
</tr>
<tr>
<td class="tbl_g">WHEEL</td>
<td>Fulcrum Racing5 Evolustion Black</td>
</tr>
<tr>
<td class="tbl_g">HANDLE BAR</td>
<td>FSA Wing Pro Compact White 420mm</td>
</tr>
<tr>
<td class="tbl_g">HANDLE STEM</td>
<td>FSA OS150 White 110mm 6°</td>
</tr>
<tr>
<td class="tbl_g">CONTROL LEVER</td>
<td>SHIMANO ST-6700</td>
</tr>
<tr>
<td class="tbl_g">BRAKE UNIT</td>
<td>SHIMANO BR-6700</td>
</tr>
<tr>
<td class="tbl_g">SADDLE</td>
<td>Fi&#8217;zi:k ARIONE WING FLEX ( White / Black )</td>
</tr>
<tr>
<td class="tbl_g">SEAT POST</td>
<td>FSA SL-240 CSI SBS 27.2 x 350mm</td>
</tr>
<tr>
<td class="tbl_g">FRONT DERAILLEUR</td>
<td>SHIMANO FD-6700-B</td>
</tr>
<tr>
<td class="tbl_g">REAR DERAILLEUR</td>
<td>SHIMANO RD-6700-SS</td>
</tr>
<tr>
<td class="tbl_g">BOTTOM BRACKET</td>
<td>SHIMANO BB-6700</td>
</tr>
<tr>
<td class="tbl_g">CRANKSET</td>
<td>SHIMANO FC-6750 / 50x34T-172.5mm</td>
</tr>
<tr>
<td class="tbl_g">REAR SPROCKET</td>
<td>SHIMANO CS-6700 / 12-25T ( 10speed )</td>
</tr>
<tr>
<td class="tbl_g">PEDAL</td>
<td>SHIMANO PD-A600</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20101001_566_spec.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>タイヤ交換</title>
		<link>http://tmdf.net/blog/20100902_change_tyre.html</link>
		<comments>http://tmdf.net/blog/20100902_change_tyre.html#comments</comments>
		<pubDate>Thu, 02 Sep 2010 14:11:11 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Cycle]]></category>
		<category><![CDATA[Gaap]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=1823</guid>
		<description><![CDATA[Gaapのタイヤを「Panaracer MINITS LITE PT」に交換しました。以前使っていた「MINITS LITE」からパンク耐性強化、少し軽量化したアップデート版。価格は2本で約8,200円、あいかわらず他の [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tmdf.net/blog/wp-content/2010/08/tyre.jpg" alt="MINITS LITE PT" title="MINITS LITE PT" width="570" height="380" class="c" /></p>
<p>Gaapのタイヤを「Panaracer MINITS LITE PT」に交換しました。以前使っていた「MINITS LITE」からパンク耐性強化、少し軽量化したアップデート版。価格は2本で約8,200円、あいかわらず他の20インチタイヤと比べると1.5倍ほど高いです。</p>
<p>履いた印象では少し接地面積が大きくなった気がしましたが、実際に走ってみるとあまり印象は変わりません。以前と同じ少し柔らかく（ショックを吸収する）てグリップがしっかりしているタイヤです。見た目の変化は「PT」の文字が追加されたぐらいだと思いますが、150kmくらい走ると地面と接する部分の文字は完全に消えてしまいました。前のはもっと残ってた気がしますが、夏で路面が暑いからでしょうか？</p>
<p>前のタイヤはオンロードで4,000km / 10ヶ月ほど走行して、チューブまで貫通している穴が5箇所/本ぐらい開いていました。最後にガラス片でパンクした時の穴がかなり大きかったため交換しましたが、トレッド面はまだ残っていたのでもう少し使えそうな気もします。パンクした回数は前後輪ともに3回づつくらい。</p>
<div class="add">追記 2011.2.11<br />
タイヤ交換してから2,000km以上走りましたが前後輪ともに一度もパンクしていません。
</div>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20100902_change_tyre.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小さい順にソート</title>
		<link>http://tmdf.net/blog/20100818_as3_sort.html</link>
		<comments>http://tmdf.net/blog/20100818_as3_sort.html#comments</comments>
		<pubDate>Wed, 18 Aug 2010 14:47:35 +0000</pubDate>
		<dc:creator>tmdf</dc:creator>
				<category><![CDATA[Flash / ActionScript]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.tmdf.net/blog/?p=1867</guid>
		<description><![CDATA[ActionScript3で数値配列内の任意のインデックス位置の数値が、配列全体で何番目に小さい（または大きい）値なのかを調べるためのコード。ダイレクトな関数がなかったので作ってみました。けっこう高速に処理してくれてると [...]]]></description>
			<content:encoded><![CDATA[<p>ActionScript3で数値配列内の任意のインデックス位置の数値が、配列全体で何番目に小さい（または大きい）値なのかを調べるためのコード。ダイレクトな関数がなかったので作ってみました。けっこう高速に処理してくれてると思います。</p>
<pre class="brush: as3; title: ; notranslate">
//Main.as

package {
	import flash.display.MovieClip;

	public class Main extends MovieClip {

		public function Main():void {

			//数値配列「num」を作成
			var l:uint = 100000;
			var num:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;();
			for (var i:uint = 0; i &lt; l; i ++) {
				num[i] = Math.random() * l;
			}

			//インデックス位置と数値を記憶する配列を作成
			var sort:Array = new Array();
			for (i = 0; i &lt; l; i ++) {
				sort[i] = {id:i, value:num[i]};
			}

			//元のインデックス位置が4285のデータを記憶
			var search:Object = sort[4285];

			//数値の小さい順に並び替え
			sort.sortOn(&quot;value&quot;, Array.NUMERIC);

			//元のインデックス位置が4285のデータが何番目に小さい値か？
			trace(sort.indexOf(search));

			//1365番目に小さい値の元のインデックス位置はどこか？
			trace(sort[1365].id);
		}
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tmdf.net/blog/20100818_as3_sort.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

