<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>:maohao:</title>
	<atom:link href="http://maohao.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://maohao.wordpress.com</link>
	<description>by maohao.com</description>
	<lastBuildDate>Fri, 06 Nov 2009 02:23:50 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='maohao.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/0b4407e23be51737d5d888707dd29424?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>:maohao:</title>
		<link>http://maohao.wordpress.com</link>
	</image>
			<item>
		<title>2 GB &gt; 1 GB!</title>
		<link>http://maohao.wordpress.com/2009/11/05/2-gb-greater-than-1-gb/</link>
		<comments>http://maohao.wordpress.com/2009/11/05/2-gb-greater-than-1-gb/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 02:23:42 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=695</guid>
		<description><![CDATA[I just upgraded my old Dell Inspiron 5150 by replacing a 2X512MB (HYNIX DDR/PC2700) with 2 X 1G RAM (Crucial 200 pin/DDR/PC3200) and I realize it IS faster!
OS (Windows XP Pro) booting seemingly faster;
Firefox 3.5 loading web pages seemingly faster;
Running Photoshop CS2 seemingly faster;
Compiling Flex projects in FB3 seemingly faster;
I will have to check out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=695&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I just upgraded my old Dell <a href="http://reviews.cnet.com/laptops/dell-inspiron-5150/4505-3121_7-30418693.html">Inspiron 5150</a> by replacing a 2X512MB (HYNIX DDR/PC2700) with 2 X 1G RAM (Crucial 200 pin/DDR/PC3200) and I realize it IS faster!</p>
<p>OS (Windows XP Pro) booting seemingly faster;</p>
<p>Firefox 3.5 loading web pages seemingly faster;</p>
<p>Running Photoshop CS2 seemingly faster;</p>
<p>Compiling Flex projects in FB3 seemingly faster;</p>
<p>I will have to check out hulu.com to see if the Flash Player will still blow up my machine.</p>
<p>Just a note for self. Because like in early 90&#8217;s, I overheard someone complained that adding more RAMs on top of the 512MB(?) didn&#8217;t really help/didn&#8217;t seem to make too much of a difference.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/695/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=695&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/11/05/2-gb-greater-than-1-gb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Refer to component in Flex with curly braces</title>
		<link>http://maohao.wordpress.com/2009/11/03/curly-braces-refer-to-component-in-flex/</link>
		<comments>http://maohao.wordpress.com/2009/11/03/curly-braces-refer-to-component-in-flex/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 03:05:28 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=689</guid>
		<description><![CDATA[Always use curly braces/brackets to refer to your component by id. Like this:
&#60;mx:Panel &#8230;
showEffect=&#8221;{shake}&#8221;&#62;
&#60;pg:ShakeEffect id=&#8221;shake&#8221;/&#62;
&#60;/mx:Panel&#62;
You can probably do without the curly brace to refer to an effect component if you are in the main application mxml; but it won&#8217;t work for a component.
See also:
Curly Braces in Flex Control Properties
       [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=689&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Always use curly braces/brackets to refer to your component by id. Like this:</p>
<blockquote><p>&lt;mx:Panel &#8230;<br />
showEffect=&#8221;{shake}&#8221;&gt;</p>
<p>&lt;pg:ShakeEffect id=&#8221;shake&#8221;/&gt;</p>
<p>&lt;/mx:Panel&gt;</p></blockquote>
<p>You can probably do without the curly brace to refer to an effect component if you are in the main application mxml; but it won&#8217;t work for a component.</p>
<p>See also:</p>
<div><a href="http://devharbor.blogspot.com/2008/10/curly-braces-in-flex-control-properties.html">Curly Braces in Flex Control Properties</a></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/689/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=689&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/11/03/curly-braces-refer-to-component-in-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes for Building iPhone With HTML, CSS and JavaScript by Jonathan Stark</title>
		<link>http://maohao.wordpress.com/2009/10/17/notes-building-iphone-apps/</link>
		<comments>http://maohao.wordpress.com/2009/10/17/notes-building-iphone-apps/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 00:53:13 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript;Ajax]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=660</guid>
		<description><![CDATA[The book. Author: Jonathan Stark.

Page scaling in iPhone
By default Mobile Safari will zoom out for a page that is wider than 980px unless you specify &#8220;viewport&#8221; &#60;meta&#62; tag to tell it not to;

 &#60;meta name = "viewport" content = "user-scalable=no, width=device-width" /&#62;

CSS for iPhone
&#60;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;styles/iphone.css&#8221; media=&#8221;only screen and (max-device-width: 480px)&#8221; /&#62;&#60;link rel="stylesheet" type="text/css" href="styles/desktop.css" media="screen [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=660&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="Building iPhone Apps with HTML, CSS and JavaScript" href="http://building-iphone-apps.labs.oreilly.com/" target="_blank">The book.</a> Author: <a title="Jonathan Stark" href="http://jonathanstark.com/" target="_blank">Jonathan Stark</a>.</p>
<ul>
<li><strong>Page scaling in iPhone</strong><br />
By default Mobile Safari will zoom out for a page that is wider than 980px unless you specify &#8220;<em><strong>viewport</strong></em>&#8221; &lt;meta&gt; tag to tell it not to;<br />
<code><br />
<em> &lt;meta name = "viewport" content = "user-scalable=no, width=device-width" /&gt;</em><br />
</code></li>
<li><strong>CSS for iPhone<br />
<span style="font-family:monospace, 'Times New Roman', 'Bitstream Charter', Times, serif;font-weight:normal;"><em>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;styles/iphone.css&#8221; media=&#8221;only screen and (max-device-width: 480px)&#8221; /&gt;</em></span></strong><code><em>&lt;link rel="stylesheet" type="text/css" href="styles/desktop.css" media="screen and (min-device-width: 481px)" /&gt;<br />
&lt;!--[if IE]&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="styles/desktop.css" media="all" /&gt;</em><br />
&lt;![endif]--&gt; </code></li>
<li><strong>Icon for iPhone home screen, a.k.a. &#8220;web clip icon&#8221;</strong>By default, this is a 57px by 57px named &#8220;<em>apple-touch-icon.png</em>&#8221; in your web root. iPhone will add gloss and 10px(?) radius rounded corner to it. If you don’t want the iPhone to add effects to your webclip icon, change the name of the file to &#8220;<em>apple-touch-icon-precomposed.png</em>&#8220;.In the case you want to add a web clip icon for an individual page that is different from the rest of the site, add one of the following lines to the  of the page:</li>
<p><code><br />
&lt;link rel="apple-touch-icon" href="myCustomIcon.png" /&gt;<br />
&lt;link rel="apple-touch-icon-precomposed" href="myCustomIcon.png" /&gt; </code></p>
<li><strong>Full-screen mode</strong>Add the following line to the  of your page and your web app will in display full screen mode when launched from the web clip icon, which will give you an extra of 104 px in height:
<p><code>&lt;meta name="apple-mobile-web-app-capable" content="yes" /&gt;</code></p>
<p>Once you’ve added the<em> apple-mobile-web-app-capable</em> meta tag, you have the option to control the background color of the 20 pixel status bar at the top of the screen using the <em>apple-mobile-web-app-status-bar-style</em> meta tag. The normal gray Safari status bar is the default, or you can change it to black. You can also set it to <em>black-translucent</em> which makes it partialy transparent and additionally removes it from the document flow. In other words, your content will be shifted up by 20 pixels and behind the status bar the when page first loads, so you might have to position your header a little lower to compensate.</li>
<p>Here are some webkit(?)/Safari specific CSS or newer CSS3 attributes or confusing ones:</p>
<li><span style="font-family:monospace, 'Times New Roman', 'Bitstream Charter', Times, serif;"><strong>text-shadow<br />
<span style="font-weight:normal;"> </span></strong><em>text-shadow: 0px 1px 0px #fff;</em></span></p>
<div>The parameters: horizontal offset, vertical offset, blur, and color.</div>
</li>
<li><strong>-webkit-gradient</strong><br />
<code><em>background-image: -webkit-gradient(linear, left top, left bottom, from(#ccc), to(#999));</em></code><br />
a CSS gradient can be used anywhere you would normally specify a url() (e.g. background image, list style image). The parameters from left to right are as follows: the gradient type (can be linear or radial), the starting point of the gradient (can be left top, left bottom, right top, or right bottom), the end point of the gradient, the starting color, and the ending color.</li>
<li><span style="font-family:monospace, 'Times New Roman', 'Bitstream Charter', Times, serif;"><strong>-webkit-border-top-left-radius, etc. </strong></span><br />
<code><em>#header ul li:first-child a {<br />
-webkit-border-top-left-radius: 8px;<br />
-webkit-border-top-right-radius: 8px;<br />
}</em></code></li>
<li><span style="font-family:monospace, 'Times New Roman', 'Bitstream Charter', Times, serif;"><strong>first-child/last-child</strong> pseudo classes<br />
</span><br />
<code><em>#header ul li:first-child a {<br />
-webkit-border-top-left-radius: 8px;<br />
-webkit-border-top-right-radius: 8px;<br />
}<br />
#header ul li:last-child a {<br />
-webkit-border-bottom-left-radius: 8px;<br />
-webkit-border-bottom-right-radius: 8px;<br />
}</em> </code><br />
The first-child and last-child pseudo classes can be a bit confusing. For example, li:first-child will select the first li that is the child of its ul parent. It does not select whatever is the first child of the li.</li>
<li><strong>rgb/rgba</strong><br />
<code><em>text-shadow: rgba(125,125,125,0.6) 0px -1px 0px;</em></code><span style="font-family:monospace, 'Times New Roman', 'Bitstream Charter', Times, serif;"><br />
</span></li>
<li><strong>-webkit-border-image</strong> and <strong>border-width<br />
</strong><code><em>border-width: 0 8px 0 8px;<br />
-webkit-border-image: url(images/button.png) 0 8 0 8;</em></code><br />
These two propoerties together allow you to assign portions of a single image to the border area of an element. They are similar to 9-slice scaling in Flash or 9-patch in Android. The parameters in <em>border-width</em> refer to top/right/bottom/left side of the image.</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/660/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=660&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/10/17/notes-building-iphone-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Shortcuts for Microsoft Visio 2007</title>
		<link>http://maohao.wordpress.com/2009/10/08/shortcuts-for-microsoft-visio-2007/</link>
		<comments>http://maohao.wordpress.com/2009/10/08/shortcuts-for-microsoft-visio-2007/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 20:24:59 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Microsoft Visio]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=654</guid>
		<description><![CDATA[
Ctrl+Shift-&#62;  Zoom/pan with magnifying glass. Left click for zooming in; right click for zooming out;  Left drag an rectangle to zoom in to area; Right drag to pan;
Ctrl+drag-&#62; Duplicate object;
Ctrl+k-&#62; Add hyperlink to object;
Ctrl+Shift+g-&#62; Group shapes;
Ctrl+Shift+u-&#62;Ungroup shapes;
Double click on Textbox -&#62; Select all text in the Textbox;


Size/position object manually -&#62; Select &#62;View &#62; Size/Position Window

 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=654&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><ul>
<li>Ctrl+Shift-&gt;  Zoom/pan with magnifying glass. Left click for zooming in; right click for zooming out;  Left drag an rectangle to zoom in to area; Right drag to pan;</li>
<li>Ctrl+drag-&gt; Duplicate object;</li>
<li>Ctrl+k-&gt; Add hyperlink to object;</li>
<li>Ctrl+Shift+g-&gt; Group shapes;</li>
<li>Ctrl+Shift+u-&gt;Ungroup shapes;</li>
<li>Double click on Textbox -&gt; Select all text in the Textbox;</li>
</ul>
<ul>
<li>Size/position object manually -&gt; Select &gt;View &gt; Size/Position Window</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/654/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=654&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/10/08/shortcuts-for-microsoft-visio-2007/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Type of View.OnTouchListener</title>
		<link>http://maohao.wordpress.com/2009/10/04/type-of-view-ontouchlistener/</link>
		<comments>http://maohao.wordpress.com/2009/10/04/type-of-view-ontouchlistener/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 14:48:53 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=650</guid>
		<description><![CDATA[I found the documentation on the type of android.view.View.OnTouchListener  misleading. It says: &#8220;Return true if the listener has consumed the event, false otherwise.&#8221;

For me, it looks like it should almost be the opposite:
&#8220;Return true if the event is allowed to propagate, false otherwise.&#8221;
//Sample code
public boolean onTouch(View v, evt:MotionEvent) {
switch(evt.getAction) {
case MotionEvent.ACTION_DOWN:
return true; // should [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=650&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I found the documentation on the type of <em>android.view.View.OnTouchListener </em> misleading. It says: <em>&#8220;Return true if the listener has consumed the event, false otherwise.&#8221;<br />
</em><br />
For me, it looks like it should almost be the opposite:</p>
<p><em>&#8220;Return true if the event is allowed to propagate, false otherwise.&#8221;</em></p>
<p>//Sample code</p>
<blockquote><p>public boolean onTouch(View v, evt:MotionEvent) {<br />
switch(evt.getAction) {<br />
case MotionEvent.ACTION_DOWN:<br />
return true; // should allow propagate since we need to handle it in MOTION_MOVE block<br />
case MotionEvent.ACTION_MOVE:<br />
Log.d(&#8220;TOUCH&#8221;, &#8220;historical size is &#8220;+getHistoricalSize());<br />
return false;<br />
default:<br />
break;<br />
}<br />
return false;//for any motions other than DOWN, we choose to block them. Unless other code want to handle it.<br />
}</p></blockquote>
<p>Please do feel free to correct me if I am wrong. Thanks.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/650/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=650&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/10/04/type-of-view-ontouchlistener/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Canvas.save, Canvas.restore; Camera.save, Camera.restore</title>
		<link>http://maohao.wordpress.com/2009/09/30/canvas-save-canvas-restore/</link>
		<comments>http://maohao.wordpress.com/2009/09/30/canvas-save-canvas-restore/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 02:52:01 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[graphics]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=639</guid>
		<description><![CDATA[Android graphics package contains android.graphics.Canvas and android.graphics.Camera classes, both of which allow you to manipulate the &#8220;Modelview&#8221; transformation matrix, with the latter manipulating your drawing in &#8220;3D&#8221;.
Basically the ability to manipulate complex, hierarchical transformation is achieved by an(?) internal matrix stack with the top matrix being the current one in effect and the one that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=639&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Android graphics package contains <code>android.graphics.Canvas</code> and <code>android.graphics.Camera</code> classes, both of which allow you to manipulate the &#8220;Modelview&#8221; transformation matrix, with the latter manipulating your drawing in &#8220;3D&#8221;.</p>
<p>Basically the ability to manipulate complex, hierarchical transformation is achieved by an(?) internal matrix stack with the top matrix being the current one in effect and the one that you are manipulating. All the transformations you are making on the current matrix are cumulative; so if you were just to manipulate the current matrix, it&#8217;s going to be a big pain to draw something like a car or a human figure which conceptually is assembled by different parts.  <code>Canvas.save()/Camera.save()</code> is to push a matrix into the stack; the result is the transformation you&#8217;ve made is saved into the stack.  <code>Canvas.restore()/Camera.restore()</code> is to discard the current transformation and go back to the last saved one and continue on it. So if you want to continue with some transformation you made a while ago, you should first save/push it into the stack first so that you can go back to it by restoring/popping it out from the stack. See the following pseudo code for how we go about drawing a drag race car with huge wheels:</p>
<p>//setup/clean up stuff<br />
canvas.save(); // remember where we are since we&#8217;d like to go back to this original transformation later;<br />
// move the front wheel to front left<br />
// make it twice as big as the normal wheel<br />
// draw front-left wheel in normal size<br />
canvas.restore(); // go back to the identity matrix;<br />
// move the front wheel to front right<br />
// make it twice as big as the normal wheel<br />
// draw front-right wheel in normal size<br />
canvas.restore();<br />
//&#8230; draw body<br />
canvas.restore();<br />
//&#8230; and other wheels&#8230;</p>
<p>The pattern is</p>
<ul>
<li>If you want to go back to the current state in terms of transformation, you should remember where you are by calling Canvas.save() or Camera.save());</li>
<li>Transform the matrix (via Canvas or Camera methods such as Canvas.translate() and Camera.rotateY();</li>
<li>Do drawing;</li>
<li>Go back to the transformation state you remember in step 1 by calling Canvas.restore()/Camera.restore() if you want to continue from the transformation you left in step 1;</li>
<li>In theory, if you only have one matrix transformation saved in the stack, you can simply push it out by calling Canvas.restore()/Camera.restore() again and again. But in the real world (at least applying for cupcake and donut),  I&#8217;ve found I have to keep &#8220;saving&#8221; before each new transformation and &#8220;restoring&#8221; after it, even if I was &#8220;saving&#8221;/&#8221;restoring&#8221; an identity matrix. So this means you would normally call Canvas.save()/Camera.save() each time before a new transformation;</li>
<li>Transform the matrix;</li>
<li>Do drawing;</li>
<li>Canvas.restore()/Camera.restore();</li>
</ul>
<p>To summarize (applying to android.graphics.Camera as well), you repeatedly do the following cycles:</p>
<ol>
<li>canvas.save();</li>
<li>transform matrix;</li>
<li>draw;</li>
<li>canvas.restore();</li>
</ol>
<p>Note that in android, #2 transformation should be coded before #3 drawing to make the drawing stick to the transformation. If you reverse 2/3, your drawing won&#8217;t be affected by the transformations that come after it. This is kinda &#8220;counter-intuitive&#8221; at least for me since you have always need to set your canvas in position before you paint but not the other way around.</p>
<p>Check out the &#8220;Red book&#8221; for &#8220;<a title="OpenGL: Manipulating the Matrix Stacks" href="http://glprogramming.com/red/chapter03.html#name6" target="_blank">Manipulating the Matrix Stacks</a>&#8221; to get a better understanding. And here is a sample code showing you how I draw the awesome <a title="Batmobile" href="http://en.wikipedia.org/wiki/Batmobile" target="_blank">Batmobile</a> (Spiderman&#8217;s car) crawling on a skyscraper (use your imagination for the wall and other details as I am still polishing my drawing skill. Please hold on for the next episode!):</p>
<blockquote><p>package com.mh.android.test;</p>
<p>import android.app.Activity;<br />
import android.content.Context;<br />
import android.graphics.Camera;<br />
import android.graphics.Canvas;<br />
import android.graphics.Color;<br />
import android.graphics.Paint;<br />
import android.os.Bundle;<br />
import android.view.View;</p>
<p>public class HelloAndroidAgain extends Activity {<br />
/** Called when the activity is first created. */<br />
@Override<br />
public void onCreate(Bundle savedInstanceState) {<br />
super.onCreate(savedInstanceState);<br />
setContentView(new MyTestView(this));<br />
}</p>
<p>private static class MyTestView extends View {</p>
<p>public MyTestView(Context context) {<br />
super(context);<br />
setMinimumWidth(200);<br />
setMinimumHeight(200);<br />
//camera = new Camera();<br />
}<br />
private Camera camera = new Camera();<br />
@Override<br />
protected void onDraw(Canvas canvas){<br />
super.onDraw(canvas);</p>
<p>camera.save();<br />
camera.rotateY(60f);<br />
camera.applyToCanvas(canvas);</p>
<p>canvas.drawColor(Color.DKGRAY);<br />
Paint paint = new Paint();<br />
paint.setTextSize(24);</p>
<p>//front left wheel<br />
canvas.save();<br />
canvas.translate(50f, 50f);//xCtr, yCtr<br />
paint.setColor(Color.GREEN);<br />
canvas.drawCircle(0, 0, 30, paint);<br />
paint.setColor(Color.WHITE);<br />
canvas.drawText(&#8220;FL&#8221;, -10, 10, paint);//string<br />
canvas.restore();</p>
<p>//front right wheel<br />
canvas.save();<br />
canvas.translate(150f, 50f);<br />
paint.setColor(Color.GREEN);<br />
canvas.drawCircle(0, 0, 30, paint);<br />
paint.setColor(Color.WHITE);<br />
canvas.drawText(&#8220;FR&#8221;, -10, 10, paint);<br />
canvas.restore();</p>
<p>//rear left wheel<br />
canvas.save();<br />
canvas.translate(50f, 150f);<br />
paint.setColor(Color.GREEN);<br />
canvas.drawCircle(0, 0, 30, paint);<br />
paint.setColor(Color.WHITE);<br />
canvas.drawText(&#8220;BL&#8221;, -10, 10, paint);<br />
canvas.restore();</p>
<p>//rear right wheel<br />
canvas.save();<br />
canvas.translate(150f, 150f);<br />
paint.setColor(Color.GREEN);<br />
canvas.drawCircle(0, 0, 30, paint);<br />
paint.setColor(Color.WHITE);<br />
canvas.drawText(&#8220;BR&#8221;, -10, 10, paint);<br />
canvas.restore();</p>
<p>//body<br />
canvas.save();<br />
canvas.translate(100f, 100f);<br />
paint.setColor(Color.RED);<br />
canvas.drawRect(-50, -50, 50, 50, paint);<br />
canvas.restore();</p>
<p>camera.restore();<br />
}<br />
@Override<br />
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){<br />
super.onMeasure(widthMeasureSpec, heightMeasureSpec);<br />
setMeasuredDimension(getSuggestedMinimumWidth(), getSuggestedMinimumHeight());<br />
}</p>
<p>}<br />
}</p></blockquote>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/639/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=639&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/09/30/canvas-save-canvas-restore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Uninstall Adobe AIR application in Linux/Ubuntu</title>
		<link>http://maohao.wordpress.com/2009/09/11/uninstall-adobe-air-application-in-linuxubuntu/</link>
		<comments>http://maohao.wordpress.com/2009/09/11/uninstall-adobe-air-application-in-linuxubuntu/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 15:12:19 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=634</guid>
		<description><![CDATA[I am talking about AIR 1.5.2 installer and Ubuntu 9.04 (cat /etc/lsb-release to find out your Ubuntu version).
Simple run the installation package file (*.air, which is basically an zip file) again. If you don&#8217;t know where it is (and presumably still in your machine), go to &#8220;Applications-&#62;Accessories-&#62;Adobe AIR Application Installer&#8221;, which opens the most recently [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=634&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I am talking about AIR 1.5.2 installer and Ubuntu 9.04 (<em>cat /etc/lsb-release</em> to find out your Ubuntu version).</p>
<p>Simple run the installation package file (*.air, which is basically an zip file) again. If you don&#8217;t know where it is (and presumably still in your machine), go to &#8220;Applications-&gt;Accessories-&gt;Adobe AIR Application Installer&#8221;, which opens the most recently installed AIR package (*.air), then click &#8220;Uninstall&#8221;.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/634/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=634&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/09/11/uninstall-adobe-air-application-in-linuxubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Multiple offline devices attached</title>
		<link>http://maohao.wordpress.com/2009/09/10/multiple-offline-devices-attached/</link>
		<comments>http://maohao.wordpress.com/2009/09/10/multiple-offline-devices-attached/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 18:49:55 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=632</guid>
		<description><![CDATA[This was driving me crazy this morning as I was debugging using G1 phone on Eclipse. Basically the Android AVD Manager sees multiple offline devices attached, although they are all the same device (sometimes it sees one online device sometimes none online device); despite that &#8220;adb devices&#8221; reports the correct info about device attached.
So basically [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=632&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This was driving me crazy this morning as I was debugging using G1 phone on Eclipse. Basically the Android AVD Manager sees multiple offline devices attached, although they are all the same device (sometimes it sees one online device sometimes none online device); despite that &#8220;adb devices&#8221; reports the correct info about device attached.</p>
<p>So basically Mr. Mark Murphy&#8217;s <a title=" adb devices command sees multiple offline devices attached - but it's the same device " href="http://groups.google.com/group/android-developers/browse_thread/thread/2531684a53ea5a1e" target="_blank">suggestion</a> solved my problem:</p>
<p>1. Unplug all devices from computer and shut down all instances of emulators;</p>
<p>2. Run &#8220;<code>adb kill-server</code>&#8220;;</p>
<p>3. Run &#8220;<code>adb devices</code>&#8221; and you should see an empty list of devices;</p>
<p>4. Plug back in your device or re-lauch emulator. Now hopefully AVD Manager should now act normally.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/632/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/632/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/632/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/632/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/632/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/632/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/632/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/632/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/632/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/632/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=632&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/09/10/multiple-offline-devices-attached/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Building mix-up custom Android component/widget using Java class and XML layout</title>
		<link>http://maohao.wordpress.com/2009/08/27/building-mix-up-custom-component-android/</link>
		<comments>http://maohao.wordpress.com/2009/08/27/building-mix-up-custom-component-android/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 20:46:06 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=624</guid>
		<description><![CDATA[A lot of times you would find it convenient to just create &#8220;compound components&#8221; or what Commons guy called &#8220;meta&#8221; widgets.These widgets are compositions of other widgets. Most of the work involved would be to layout those compound components, bind data and wire up controls. For the layout part, it&#8217;s convenient to just use mixture [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=624&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A lot of times you would find it convenient to just create &#8220;<a title="Building Custom Components" href="http://developer.android.com/guide/topics/ui/custom-components.html" target="_self">compound components</a>&#8221; or what Commons guy called <a title="The Busy Coder's Guide to Advanced Android Development" href="http://commonsware.com/AdvAndroid/index.html" target="_blank">&#8220;meta&#8221; widgets</a>.These widgets are compositions of other widgets. Most of the work involved would be to layout those compound components, bind data and wire up controls. For the layout part, it&#8217;s convenient to just use mixture of a Java class and a corresponding xml layout file, as opposed to using a pure Java class. Here is how:</p>
<p>1. Create the Java class. It usually extends a Layout class such as a LinearLayout or a RelativeLayout.  You have to define a constructor in the flavor of</p>
<p><code>public MyHomeBrewedComp(Context context, AttributeSet attr)</code></p>
<p>If you just use<code> "public MyHomeBrewedComp(Context context)</code>&#8220;,  you would get an &#8220;<code>java.lang.NoSuchMethodException"</code> error from Console and a &#8220;<code>android.view.InflateException: Binary XML file line #nnn: Error inflating class com.mh.android.test.MyHomeBrewedComp"</code> from CatLog at runtime.</p>
<p>2. Create the corresponding xml layout file under the package &#8220;res/layout&#8221; folder.  This is the xml version of your Java class, which means the root node should be the identical class to your Java class.</p>
<p>3. Layout compound widgets in your enclosing widget. If you are doing layout in the xml file, you will then have to inflate the xml in your java file programmatically. You do this by overriding the widget&#8217;s <code>onFinishInflate</code> () method.</p>
<p><code>@Override<br />
protected void onFinishInflate(){<br />
super.onFinishInflate();<br />
((Activity)getContext()).getLayoutInflater().inflate(R.layout.myhomebrewedComp, this);<br />
//other code comes here, such as wiring up controls<br />
...<br />
}</p>
<p>4. TODO: setting up attributes in the custom widget</code></p>
<p>5.  Using the widget in XML.  First of all you will need a new namespace when you refer to any property/attribute in your widget; second you have to use the full-qualified class name in the xml file. Here is a sample:</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;RelativeLayout<br />
xmlns:android=&#8221;http://schemas.android.com/apk/res/android&#8221;<br />
xmlns:app=&#8221;http://schemas.android.com/apk/res/com.mh.android.test&#8221;<br />
android:layout_width=&#8221;fill_parent&#8221;<br />
android:layout_height=&#8221;fill_parent&#8221;&gt;</p>
<p>&lt;com.mh.android.test.MyHomeBrewedComp<br />
android:id=&#8221;@+id/panel&#8221;<br />
app:velocity=&#8221;30&#8243;<br />
app: friction=&#8221;.7f&#8221;<br />
android:orientation=&#8221;horizontal&#8221;<br />
android:layout_width=&#8221;fill_parent&#8221;<br />
android:layout_height=&#8221;75px&#8221;<br />
android:layout_alignParentTop=&#8221;true&#8221;<br />
/&gt;</p>
<p>&lt;/RelativeLayout&gt;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/624/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=624&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/08/27/building-mix-up-custom-component-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
		<item>
		<title>Synchronizing small projects in eclipse</title>
		<link>http://maohao.wordpress.com/2009/08/17/synchronizing-small-projects-in-eclipse/</link>
		<comments>http://maohao.wordpress.com/2009/08/17/synchronizing-small-projects-in-eclipse/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 15:37:02 +0000</pubDate>
		<dc:creator>maohao</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://maohao.wordpress.com/?p=620</guid>
		<description><![CDATA[
To export the project as a zip: File&#62;General&#62;Archive File;
To import it back to the workspace: File&#62;General&#62;Existing Projects into Workspace
and select the aforementioned zip file. This will result in a new folder in the root of the current workspace.

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=620&subd=maohao&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><ul>
<li>To export the project as a zip:<code> File&gt;General&gt;Archive File;</code></li>
<li>To import it back to the workspace:<code> File&gt;General&gt;Existing Projects into Workspace</code><br />
and select the aforementioned zip file. This will result in a new folder in the root of the current workspace.</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maohao.wordpress.com/620/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maohao.wordpress.com/620/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maohao.wordpress.com/620/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maohao.wordpress.com/620/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maohao.wordpress.com/620/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maohao.wordpress.com/620/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maohao.wordpress.com/620/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maohao.wordpress.com/620/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maohao.wordpress.com/620/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maohao.wordpress.com/620/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maohao.wordpress.com&blog=202301&post=620&subd=maohao&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maohao.wordpress.com/2009/08/17/synchronizing-small-projects-in-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac75dfe1c3f137ec54a538bb66a390c9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">maohao</media:title>
		</media:content>
	</item>
	</channel>
</rss>