<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Featheast Lee 李羽东</title>
	
	<link>http://www.featheast.com/en/wordpress</link>
	<description>Life in Melbourne, Tech in Software, and Travel around the world</description>
	<pubDate>Tue, 10 Apr 2012 23:47:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/featheast/vSdD" /><feedburner:info uri="featheast/vsdd" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>[Tricks &amp; Tips] - Maven running offline</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/Z3sWF32cs0g/tricks-tips-maven-running-offline</link>
		<comments>http://www.featheast.com/en/wordpress/maven/tricks-tips-maven-running-offline#comments</comments>
		<pubDate>Tue, 10 Apr 2012 23:47:22 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Maven]]></category>

		<category><![CDATA[Offline]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=133</guid>
		<description><![CDATA[In some environment, you have limited internet connection, either you just cannot connect to internet or you are behind a firewall or proxy that your command line will not working properly, but once you start to install your maven project it starts to fetch latest dependency update which will make the process running forever.
An easy [...]]]></description>
			<content:encoded><![CDATA[<p>In some environment, you have limited internet connection, either you just cannot connect to internet or you are behind a firewall or proxy that your command line will not working properly, but once you start to install your maven project it starts to fetch latest dependency update which will make the process running forever.</p>
<p>An easy way to skip the redundant part in this scenario is add -o at the end of your command.</p>
<p>E.G: mvn install -o</p>
<p>It simply means I don&#8217;t have internet now, don&#8217;t bother to connect any outside source, just do your real stuff.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/4fOtapfPbj3ZKrgfoYFsZgyPGyg/0/da"><img src="http://feedads.g.doubleclick.net/~a/4fOtapfPbj3ZKrgfoYFsZgyPGyg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4fOtapfPbj3ZKrgfoYFsZgyPGyg/1/da"><img src="http://feedads.g.doubleclick.net/~a/4fOtapfPbj3ZKrgfoYFsZgyPGyg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/Z3sWF32cs0g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/maven/tricks-tips-maven-running-offline/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/maven/tricks-tips-maven-running-offline</feedburner:origLink></item>
		<item>
		<title>[Tricks &amp; Tips] - Maven running tests against single class</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/FmIXybD7zrY/tricks-tips-maven-running-tests-against-single-class</link>
		<comments>http://www.featheast.com/en/wordpress/maven/tricks-tips-maven-running-tests-against-single-class#comments</comments>
		<pubDate>Tue, 27 Mar 2012 22:54:40 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Maven]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Tricks & Tips]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=131</guid>
		<description><![CDATA[I would like to write down those small tricks and tips that I kept using during my working hours. Some of them may be pretty trivial but will greatly improve your working efficiency if you can used it correctly.
The first one to mention about is running Maven unit test against a single class. Most of [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to write down those small tricks and tips that I kept using during my working hours. Some of them may be pretty trivial but will greatly improve your working efficiency if you can used it correctly.</p>
<p>The first one to mention about is running Maven unit test against a single class. Most of the time, the test failures are only happening for a small sets of classes, and when you try to fix them after and would like to test again, you don&#8217;t want to run all those tests again which may be time-consuming in some extreme cases.</p>
<p>Luckily, Maven provides a simple way to specify classes that you would like to test against:</p>
<p>mvn test -Dtest=TestClassName.</p>
<p>In the case of multiple classes are needed, you can append the class name at the end of the TestClassName with a coma as delimiter.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/3Ays9XnVbezLB6o2HRk4xz594sI/0/da"><img src="http://feedads.g.doubleclick.net/~a/3Ays9XnVbezLB6o2HRk4xz594sI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3Ays9XnVbezLB6o2HRk4xz594sI/1/da"><img src="http://feedads.g.doubleclick.net/~a/3Ays9XnVbezLB6o2HRk4xz594sI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/FmIXybD7zrY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/maven/tricks-tips-maven-running-tests-against-single-class/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/maven/tricks-tips-maven-running-tests-against-single-class</feedburner:origLink></item>
		<item>
		<title>Cache in AppEngine</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/PzfXhW9fTxM/cache-in-appengine</link>
		<comments>http://www.featheast.com/en/wordpress/google-app-engine/cache-in-appengine#comments</comments>
		<pubDate>Tue, 10 Jan 2012 07:28:34 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Google App Engine]]></category>

		<category><![CDATA[304]]></category>

		<category><![CDATA[AppEngine]]></category>

		<category><![CDATA[Cache]]></category>

		<category><![CDATA[cache-control]]></category>

		<category><![CDATA[Header]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=127</guid>
		<description><![CDATA[To correctly set the cache for Google App Engine looks like an easy task, but in order to fully understand the story behind the scene turns out to be a little bit tricky as there are some hidden points that only can be discovered from various posts that scattered in the cloud.
Some highlighted points here [...]]]></description>
			<content:encoded><![CDATA[<p>To correctly set the cache for Google App Engine looks like an easy task, but in order to fully understand the story behind the scene turns out to be a little bit tricky as there are some hidden points that only can be discovered from various posts that scattered in the cloud.</p>
<p>Some highlighted points here which I have learned from the research:</p>
<p>1) For static files, the cache is being set in the appengine-web.xml file, you can specify how long it is going to expire within the file.<br />
The cache here is if you don&#8217;t declare your static file here, then quite possibly you will not be able to render your static file well. Google use a different source to serve static files, as a result you have to explicitly tells AppEngine that &#8220;these are the types of static files I am using, and you need to serve it&#8221;. An alternative is to add those static files into your web.xml as a servlet or a filter, which will then be caught by the servlet/filter chain, however, this is not the recommended way to go.</p>
<p>2) You can use a filter to add &#8220;cache-control&#8221; header to static files request/response, but Google will not honor it. To be precisely, Google will always return a private cache-control for your static files regardless what kind of setting you provided. Hence these static files will only available in your private cache pool (local browser), and will expire after your specified length.</p>
<p>3) However, we can use above mentioned method to add &#8220;cache-control&#8221; header to dynamic generated pages, such as jsp file. This is particularly useful for files that rarely change, such as front-page or some introduction pages. And this time, Google will honor your setting in your cache-control header with the right expire time.</p>
<p>4) The way current browser working is a little bit weird but understandable:<br />
If you click a link on a page, then browser will always first check if there is a local cache available, if not then goes to the server to fetch.<br />
If you press F5/Refresh the page, the the browser will just ignore your local browser cache at all, but goes directly to the server. This time, it will use the &#8220;is-modified-since&#8221; header to compare whether the content on the server side is still valid, if it is, then a 304 will return and you will still use your local cache, otherwise a new version will be retrieved.</p>
<p>In short, if you click the link, then it is possible that client will not talk to the server at all, but if you refresh, then the client will always talk to the server.</p>
<p>5) Both Chrome and Firefox have good tools for debugging HTTP Request, see how the cache is working and diagnose each of the specific request.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/tc58pbS5B3tTyyNK_b5eC1YVB2I/0/da"><img src="http://feedads.g.doubleclick.net/~a/tc58pbS5B3tTyyNK_b5eC1YVB2I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tc58pbS5B3tTyyNK_b5eC1YVB2I/1/da"><img src="http://feedads.g.doubleclick.net/~a/tc58pbS5B3tTyyNK_b5eC1YVB2I/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/PzfXhW9fTxM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/google-app-engine/cache-in-appengine/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/google-app-engine/cache-in-appengine</feedburner:origLink></item>
		<item>
		<title>CloudFront Streaming Exception: NetStream.Play.StreamNotFound</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/XkEsaan7-44/cloudfront-streaming-streamnotfound</link>
		<comments>http://www.featheast.com/en/wordpress/cloudfront/cloudfront-streaming-streamnotfound#comments</comments>
		<pubDate>Thu, 29 Dec 2011 23:59:05 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[CloudFront]]></category>

		<category><![CDATA[NetStream.Play.StreamNotFound]]></category>

		<category><![CDATA[Streaming]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=121</guid>
		<description><![CDATA[While I am doing some work with CloudFront streaming using S3 bucket as origin, I get some weird exception &#8220;NetStream.Play.StreamNotFound&#8221; randomly. It doesn&#8217;t happen on all files, but just some certain files. Initially, I thought there is something wrong with my encoding configuration which leads to some inconsistency between bitrate to result a failure of [...]]]></description>
			<content:encoded><![CDATA[<p>While I am doing some work with CloudFront streaming using S3 bucket as origin, I get some weird exception &#8220;NetStream.Play.StreamNotFound&#8221; randomly. It doesn&#8217;t happen on all files, but just some certain files. Initially, I thought there is something wrong with my encoding configuration which leads to some inconsistency between bitrate to result a failure of stream rendering, but even I tried out with some of the most popular service online, it still doesn&#8217;t work. And it is only applied to streaming protocols, for normal HTTP protocol it is still working perfectly.</p>
<p>After struggling with it more than one day, I eventually found out the culprit of this failure is because of the file extension.</p>
<p>The rule is: you can not make the file extension in CAPITAL/UPPERCASE/BIG case, otherwise CloudFront won&#8217;t recognize those files thus failed to streaming it.</p>
<p>So, if you want to play with CloudFront streaming, make sure that your file is not xxx.FLV or xxx.MP4, but please name it xxx.flv or xxx.mp4.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/FTJyFK2-q2BEz5dBrXxcowqlpEw/0/da"><img src="http://feedads.g.doubleclick.net/~a/FTJyFK2-q2BEz5dBrXxcowqlpEw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FTJyFK2-q2BEz5dBrXxcowqlpEw/1/da"><img src="http://feedads.g.doubleclick.net/~a/FTJyFK2-q2BEz5dBrXxcowqlpEw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/XkEsaan7-44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/cloudfront/cloudfront-streaming-streamnotfound/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/cloudfront/cloudfront-streaming-streamnotfound</feedburner:origLink></item>
		<item>
		<title>Change VM Allocation for Intellij Idea</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/ObnLMWJZcUE/change-vm-allocation-for-intellij-idea</link>
		<comments>http://www.featheast.com/en/wordpress/intellij-idea/change-vm-allocation-for-intellij-idea#comments</comments>
		<pubDate>Mon, 28 Nov 2011 22:27:59 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Intellij Idea]]></category>

		<category><![CDATA[IDEA]]></category>

		<category><![CDATA[Intellij]]></category>

		<category><![CDATA[Memory]]></category>

		<category><![CDATA[VM]]></category>

		<category><![CDATA[vmoptions]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=117</guid>
		<description><![CDATA[This method is suitable for at least the current version I&#8217;m using: 10.5.2, not sure about earlier version but should have no problem in Idea 9. I have also tried on the EAP of 11 without any issues.
Basically, what you need to do is modify the memory configurations in the file:
{IDEA_HOME}/bin/idea.vmoptions
Change the the value to [...]]]></description>
			<content:encoded><![CDATA[<p>This method is suitable for at least the current version I&#8217;m using: 10.5.2, not sure about earlier version but should have no problem in Idea 9. I have also tried on the EAP of 11 without any issues.</p>
<p>Basically, what you need to do is modify the memory configurations in the file:</p>
<p>{IDEA_HOME}/bin/idea.vmoptions</p>
<p>Change the the value to the size you wish to have. In my case, I update the -Xmx to 1536M and -XX:MaxPermSize=500M, which speed up the process and responsiveness of Idea quite a bit.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/-HozUn4P_fC-Vo6YuOeu34FNlDU/0/da"><img src="http://feedads.g.doubleclick.net/~a/-HozUn4P_fC-Vo6YuOeu34FNlDU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-HozUn4P_fC-Vo6YuOeu34FNlDU/1/da"><img src="http://feedads.g.doubleclick.net/~a/-HozUn4P_fC-Vo6YuOeu34FNlDU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/ObnLMWJZcUE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/intellij-idea/change-vm-allocation-for-intellij-idea/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/intellij-idea/change-vm-allocation-for-intellij-idea</feedburner:origLink></item>
		<item>
		<title>Session Clean in Google App Engine</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/s3ITJjMYxXM/session-clean-in-google-app-engine</link>
		<comments>http://www.featheast.com/en/wordpress/google-app-engine/session-clean-in-google-app-engine#comments</comments>
		<pubDate>Fri, 30 Sep 2011 06:33:18 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Google App Engine]]></category>

		<category><![CDATA[Cache]]></category>

		<category><![CDATA[GAE]]></category>

		<category><![CDATA[GAE/J]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Session]]></category>

		<category><![CDATA[SessionCleanupServlet]]></category>

		<category><![CDATA[_ah_session]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=114</guid>
		<description><![CDATA[It is always sad that with such a good product, the documents always lacking behind, sometimes even years. While a lot of information can be retrieved by using its mother Google, still a formal doc and some practical hint will definitely be helpful than those articles scattered in the sea.
Anyway, to clean the session in [...]]]></description>
			<content:encoded><![CDATA[<p>It is always sad that with such a good product, the documents always lacking behind, sometimes even years. While a lot of information can be retrieved by using its mother Google, still a formal doc and some practical hint will definitely be helpful than those articles scattered in the sea.</p>
<p>Anyway, to clean the session in the AppEngine database is a basic requirement for any real product running on it. If you don&#8217;t clean it, unless you are not using session anywhere, there is definitely one day your datastore will blow out.</p>
<p>Once you have a session hanging around, you will easily detect them under the Datastore Viewer. It is actually a table called _ah_session. (Yep, whenever you see _ah, it means Google is playing some magic background stuff). It will list all current sessions in the app and its expire date as well as the size of it (well, actually it&#8217;s the value, but most of the time, the value is not easy to be displaying there)</p>
<p>Apparently, the most direct way and easiest way is using your hand, tick all those boxes before the sessions, and click the DELETE button, and then yep, all sessions just cleared. Easy right, what if you have 100 sessions? Some one may argue that, you can append &amp;limit=SOME_MAGIC_MAXIMUM_NUMBER_TO_BE_DISPLAYED at the end of the link in the browser, refresh the page, and then clear them all at once. But as far as I know, the maximum number you can set is 200, which means if there are 1000 entries, then you have to go through all 5 pages.</p>
<p>This manual process sounds boring and lack of the self satisfactory as a software developer, don&#8217;t you think? As a programmer, we always look down those guys who has to use mouse and keyboard instead of using their mind to delete stuff. All right, so Google does provides a way to clean the session, it is a servlet, part of the Google Code infrastructure (Being aware of Google&#8217;s BigTable). Basically what you need to do is declare the servlet: SessionCleanupServlet in your web.xml, and get a cron job to call it periodically based on your traffic.</p>
<p><a href="http://radomirml.com/2011/03/26/cleaning-up-expired-sessions-from-app-engine-datastore">This article</a> explains well how to integrate the servlet and cron job into your app to delete the sessions. But you should be aware that each of the servlet run can only remove 100 sessions at most, that means if you have a huge traffic and huge sessions, you have to set the servlet/cron job runs more frequently but also make sure you won&#8217;t interrupt any current user&#8217;s activities.</p>
<p>OK, it seems all working well except some bugs may happen. One of the issues we have detect is that we have some very very very old sessions being around, maybe one year (Before we include the clean session mechanism), and obviously no matter how many times of the session being cleaned by the servlet, those sessions will always survive from all bullets. While, we have no explaination about it and they are always so trivial to be neglect until a 500 error comes up when a new version being released.</p>
<p>One bug we recently have is after we change one of the property in a class type from String to Date, and accordingly some of the related methods are being updated as well. But those ghost sessions still have String in their hearts, and when app initialized, everything just crashed because of this catch. Consequently, we are thinking about maybe it is worthwhile to clean the cache whenever a new version being released, and this cannot being relied on the servlet provided by Google, but rather our own code to delete all of them. <a href="http://groups.google.com/group/google-appengine-java/browse_thread/thread/280c3fb95dac2314">This thread</a> elegantly handles above problem by deleting all sessions and caches using a customized code, and you can now have a clean environment whenever you want.</p>
<p>So once you have integrated above two points into your projects, you should no longer worry about any session issues, and hopefully Google will someday bring us a better built-in solution to handle all this issues. For now, let&#8217;s just work harder.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/kIGfcawuZRji9OzVtNySMtosO_s/0/da"><img src="http://feedads.g.doubleclick.net/~a/kIGfcawuZRji9OzVtNySMtosO_s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/kIGfcawuZRji9OzVtNySMtosO_s/1/da"><img src="http://feedads.g.doubleclick.net/~a/kIGfcawuZRji9OzVtNySMtosO_s/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/s3ITJjMYxXM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/google-app-engine/session-clean-in-google-app-engine/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/google-app-engine/session-clean-in-google-app-engine</feedburner:origLink></item>
		<item>
		<title>Google App Engine: Found a jar file too large to upload</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/Yy2JazMM-w4/google-app-engine-found-a-jar-file-too-large-to-upload</link>
		<comments>http://www.featheast.com/en/wordpress/google-app-engine/google-app-engine-found-a-jar-file-too-large-to-upload#comments</comments>
		<pubDate>Fri, 16 Sep 2011 07:24:44 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Google App Engine]]></category>

		<category><![CDATA[GAE]]></category>

		<category><![CDATA[Jar]]></category>

		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=111</guid>
		<description><![CDATA[When deploying your application into the server, sometimes you may encounter this issue that if you have a really big JAR. This is not a common case before the release of 1.5.4, however, the latest appengine-tools-sdk-1.5.4.jar is about 9.7MB which exceeds the limit a little bit. I&#8217;m not sure if you use Eclipse&#8217;s plugin to [...]]]></description>
			<content:encoded><![CDATA[<p>When deploying your application into the server, sometimes you may encounter this issue that if you have a really big JAR. This is not a common case before the release of 1.5.4, however, the latest appengine-tools-sdk-1.5.4.jar is about 9.7MB which exceeds the limit a little bit. I&#8217;m not sure if you use Eclipse&#8217;s plugin to upload your application will be OK or not, but definitely when you try to use the maven plugin, an error will happen to notify you that the jar is too large to upload.</p>
<p>The fix for using standard upload is simple that add the provided parameter to the end of the command is fine.</p>
<p>For maven part, what you need to modify is your pom.xml:</p>
<p>&lt;plugin&gt;<br />
&lt;groupId&gt;net.kindleit&lt;/groupId&gt;<br />
&lt;artifactId&gt;maven-gae-plugin&lt;/artifactId&gt;<br />
&lt;version&gt;${maven.gae.plugin.version}&lt;/version&gt;<br />
&lt;configuration&gt;<br />
<span style="color: #ff0000;">&lt;splitJars&gt;true&lt;/splitJars&gt;</span><br />
&lt;/configuration&gt;<br />
&lt;dependencies&gt;<br />
&lt;dependency&gt;<br />
&lt;groupId&gt;net.kindleit&lt;/groupId&gt;<br />
&lt;artifactId&gt;gae-runtime&lt;/artifactId&gt;<br />
&lt;version&gt;${gae.version}&lt;/version&gt;<br />
&lt;type&gt;pom&lt;/type&gt;<br />
&lt;/dependency&gt;<br />
&lt;/dependencies&gt;<br />
&lt;/plugin&gt;</p>
<p>The one with the red color is the thing that you need to add, are maven plugin will use the split jar pattern to upload the application.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/pTzLhULZ8QYtdxKE1hwZoYy3VSA/0/da"><img src="http://feedads.g.doubleclick.net/~a/pTzLhULZ8QYtdxKE1hwZoYy3VSA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/pTzLhULZ8QYtdxKE1hwZoYy3VSA/1/da"><img src="http://feedads.g.doubleclick.net/~a/pTzLhULZ8QYtdxKE1hwZoYy3VSA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/Yy2JazMM-w4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/google-app-engine/google-app-engine-found-a-jar-file-too-large-to-upload/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/google-app-engine/google-app-engine-found-a-jar-file-too-large-to-upload</feedburner:origLink></item>
		<item>
		<title>SQL: Turn multiple rows into one row multiple columns</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/DbUT6hQdW5Q/sql-turn-multiple-rows-into-one-row-multiple-columns</link>
		<comments>http://www.featheast.com/en/wordpress/uncategorized/sql-turn-multiple-rows-into-one-row-multiple-columns#comments</comments>
		<pubDate>Sat, 25 Jun 2011 01:29:00 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=109</guid>
		<description><![CDATA[We have a table looks like this:
Name Question Value
Alan        1           5
Alan        2           4
Alan        3           6
Jim          1           4
Jim          2           3
Jim   [...]]]></description>
			<content:encoded><![CDATA[<p><span>We have a table looks like this:<br />
Name Question Value<br />
Alan        1           5<br />
Alan        2           4<br />
Alan        3           6<br />
Jim          1           4<br />
Jim          2           3<br />
Jim          4           5</p>
<p>We would like to select out a result looks like this:<br />
Name    Q1     Q2    Q3    Q4<br />
Alan       5        4       6      null<br />
Jim          4       3       null   5</p>
<p>This problem seems to be very easy, however, cost me a lot of time to figure out how to proceed. Finally, after some googling a nice post introduce a nice way to handle similar issues using MAX(DECODE()) function.</p>
<p>Basically, you first need to utilise the decode() function. decode() acts like if-else-then. For example, decode(name, &#8216;Alan&#8217;, &#8216;True&#8217;, &#8216;False&#8217;) works like if the name is &#8216;Alan&#8217; then return &#8216;True&#8217;, otherwise return &#8216;False&#8217;.</p>
<p>In our problem here, we use decode() to distinguish the answers from different questions: decode(question, 1, value, NULL) as Q1,   decode(question, 2, value, NULL) as Q2, &#8230; In this way we would pick out the value of each question.</p>
<p>After we can get the answer to each question, what we need to do is group the answers by different names. That&#8217;s why we need max() here to act for the group by clause. Since there is only one value here for each question, so max(), min() or some other reasonable functions are all working well here.:</p>
<p>select name AS NAME, max(decode(question, 1, value, NULL)) AS Q1, max(decode(question, 2, value, NULL)) AS Q2, max(decode(question, 3, value, NULL)) AS Q3, max(decode(question, 4, value, NULL)) AS Q4 from table group by name.</span></p>

<p><a href="http://feedads.g.doubleclick.net/~a/bprfOVF6LF9BbYyHFJMcB4lv_Ys/0/da"><img src="http://feedads.g.doubleclick.net/~a/bprfOVF6LF9BbYyHFJMcB4lv_Ys/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bprfOVF6LF9BbYyHFJMcB4lv_Ys/1/da"><img src="http://feedads.g.doubleclick.net/~a/bprfOVF6LF9BbYyHFJMcB4lv_Ys/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/DbUT6hQdW5Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/uncategorized/sql-turn-multiple-rows-into-one-row-multiple-columns/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/uncategorized/sql-turn-multiple-rows-into-one-row-multiple-columns</feedburner:origLink></item>
		<item>
		<title>Cannot restart LDAP server on Ubuntu</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/fRFQ5c_tuM4/cannot-restart-ldap-server-on-ubuntu</link>
		<comments>http://www.featheast.com/en/wordpress/uncategorized/cannot-restart-ldap-server-on-ubuntu#comments</comments>
		<pubDate>Wed, 25 May 2011 01:28:30 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=107</guid>
		<description><![CDATA[I did some changes to the ldif file yesterday, and cannot start my LDAP server any more today. I tried different ways, but all unfortunately failed.
Actually the way to workaround is quite easy, that you simply remove the folder slapd.d/ under /etc/ldap, and reinstall the ldap again, ldap will work again.
]]></description>
			<content:encoded><![CDATA[<p><span>I did some changes to the ldif file yesterday, and cannot start my LDAP server any more today. I tried different ways, but all unfortunately failed.</p>
<p>Actually the way to workaround is quite easy, that you simply remove the folder slapd.d/ under /etc/ldap, and reinstall the ldap again, ldap will work again.</span></p>

<p><a href="http://feedads.g.doubleclick.net/~a/7xVRHVHHZxLvD8qHThkpt0MgAnQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/7xVRHVHHZxLvD8qHThkpt0MgAnQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7xVRHVHHZxLvD8qHThkpt0MgAnQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/7xVRHVHHZxLvD8qHThkpt0MgAnQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/fRFQ5c_tuM4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/uncategorized/cannot-restart-ldap-server-on-ubuntu/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/uncategorized/cannot-restart-ldap-server-on-ubuntu</feedburner:origLink></item>
		<item>
		<title>Intellij IDEA 10.5 stuck in the loading process</title>
		<link>http://feedproxy.google.com/~r/featheast/vSdD/~3/bGCYJtUSTjI/intellij-idea-105-stuck-in-the-loading-process</link>
		<comments>http://www.featheast.com/en/wordpress/uncategorized/intellij-idea-105-stuck-in-the-loading-process#comments</comments>
		<pubDate>Wed, 25 May 2011 01:27:54 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.featheast.com/en/wordpress/?p=105</guid>
		<description><![CDATA[Intellij IDEA is a really smart IDA that attracts more and more developers to its community. However, a lot of bugs are still hanging there which annoy people too much.
One of the bugs is when you start IDEA with a pretty large project, there is a highly chance that your loading process will stuck there [...]]]></description>
			<content:encoded><![CDATA[<p><span>Intellij IDEA is a really smart IDA that attracts more and more developers to its community. However, a lot of bugs are still hanging there which annoy people too much.</p>
<p>One of the bugs is when you start IDEA with a pretty large project, there is a highly chance that your loading process will stuck there forever. This has been identified as a bug in <a href="http://youtrack.jetbrains.net/issue/IDEA-67401">IDEA-67401</a>, and hasn&#8217;t been resolved yet now.</p>
<p>According to that issue page, there is a workaround to load the project. That is to disable the &#8216;Tip of the Day&#8217; and &#8216;Productivity Guide&#8217; prompt when start a new project or open IDEA.</p>
<p>Besides, there is another possibility that you cannot even get in to adjust your setting before it get stuck. If that is the case, just remember to be very quick when you open IDEA, as soon as the loading project prompt pop up, cancel the loading, as well as all the next loading processes. Once the loading started, you will not be able to cancel it again, and have to kill the IDE and restart again.</span></p>

<p><a href="http://feedads.g.doubleclick.net/~a/f572tuJvx38FXTMRjCfoTka9PLQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/f572tuJvx38FXTMRjCfoTka9PLQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/f572tuJvx38FXTMRjCfoTka9PLQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/f572tuJvx38FXTMRjCfoTka9PLQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/vSdD/~4/bGCYJtUSTjI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/en/wordpress/uncategorized/intellij-idea-105-stuck-in-the-loading-process/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/en/wordpress/uncategorized/intellij-idea-105-stuck-in-the-loading-process</feedburner:origLink></item>
	</channel>
</rss>

