<?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>Ken&#039;s Digital Den &#187; eclipse</title>
	<atom:link href="http://kgilmersden.wordpress.com/category/eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://kgilmersden.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Feb 2012 16:20:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='kgilmersden.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/7691b361f59fd6d600231f4d89f150d3?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Ken&#039;s Digital Den &#187; eclipse</title>
		<link>http://kgilmersden.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://kgilmersden.wordpress.com/osd.xml" title="Ken&#039;s Digital Den" />
	<atom:link rel='hub' href='http://kgilmersden.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Strategies for Multiple Android Products with Eclipse and Git</title>
		<link>http://kgilmersden.wordpress.com/2012/02/06/strategies-for-multiple-android-products-with-eclipse-and-git/</link>
		<comments>http://kgilmersden.wordpress.com/2012/02/06/strategies-for-multiple-android-products-with-eclipse-and-git/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 12:40:36 +0000</pubDate>
		<dc:creator>kengilmer</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://kgilmersden.wordpress.com/?p=381</guid>
		<description><![CDATA[Problem: What&#8217;s the cleanest, easist way of sharing code between multiple &#8220;products&#8221; within a given Android app? Background: An Android application may have free and paid versions.  Both have some common code and other files, but also have specific code and some files must differ between the two versions, such as the Android Manifest.  When [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=381&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Problem: What&#8217;s the cleanest, easist way of sharing code between multiple &#8220;products&#8221; within a given Android app?</p>
<p>Background: An Android application may have free and paid versions.  Both have some common code and other files, but also have specific code and some files must differ between the two versions, such as the Android Manifest.  When bugs or features are added in one version of the product, it would be nice for those changes to be applied to others if appropriate.  This is similar to the &#8220;one product multiple versions&#8221; workflow, but different in than specific well-known files will always differ, and the requirement of merging between the concurrent branches (at least for me) is far more frequent.</p>
<p>Requirements:</p>
<ul>
<li>Simple to migrate code from one product to another.</li>
<li>Easy to isolate code which should be shared and code that belongs to a specific product.</li>
<li>Relies on SCM.</li>
<li>Unlikely to let unwanted changes to slip between versions.</li>
</ul>
<div>The Simplest Thing that Could Work:</div>
<div></div>
<div>Create two isolated projects, one for the free, one for the paid.  When code sharing opportunities present themselves, just copy the files or sections of files across.  Do not rely on SCM or build conventions.  This works but as projects grow, it becomes more difficult to keep things straight and not overwrite changes unintentionally.</div>
<p>My Current Approach:</p>
<p>I&#8217;m working on my first free/paid application and I&#8217;ve decided to represent the two products (free, paid) as branches in a git repository.  In this case, I&#8217;m using master for free.  Since the Android market requires unique product IDs for each product, I use a Java package namespace that corresponds to the product ID for code that only belongs to one product, and a general Java package name for common code.  To migrate code from one version to another, I make careful commits of only the shared java namespace and use git-cherry-pick.  For now I&#8217;m using the command-line rather than egit.  I find it&#8217;s best to first get familiar with a particular git feature via the command-line tools.  Then any troubles encountered when using the GUI provided by egit can be better understood.</p>
<p>This so far is working out acceptably, but it&#8217;s not perfect.  It can be hard to remember to specify commits for specific in-common code, as required by cherry-pick.  Also, depending on how modular the code is, there can be a lot of refactoring to keep the code bases in-sync.</p>
<p>Another approach I may take in the future is to move all common code into separate Android library projects, and only have product-specific code live in actual project associated with the product.  This will reduce the amount of cherry-picking required.  On the downside it seems that the ADT Eclipse plugin has a proprietary  way of managing code in Library projects and changes to library code does not automatically propagate to downstream projects, until the entire workspace is rebuilt.  I&#8217;m hoping there is something I can do to fix this, because using the ADT Eclipse library feature is not very useful with this restriction.</p>
<p>Google searches didn&#8217;t turn up much for me, but I&#8217;d love to know what techniques others are using to solve this problem&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kgilmersden.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kgilmersden.wordpress.com/381/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=381&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kgilmersden.wordpress.com/2012/02/06/strategies-for-multiple-android-products-with-eclipse-and-git/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c72aeb67cdbd5893a996ffbcdfaded17?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kengilmer</media:title>
		</media:content>
	</item>
		<item>
		<title>Fresh from the oven: Knapsack for Apache Felix</title>
		<link>http://kgilmersden.wordpress.com/2011/07/20/fresh-from-the-oven-knapsack-for-apache-felix/</link>
		<comments>http://kgilmersden.wordpress.com/2011/07/20/fresh-from-the-oven-knapsack-for-apache-felix/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 02:03:50 +0000</pubDate>
		<dc:creator>kengilmer</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[osgi]]></category>

		<guid isPermaLink="false">http://kgilmersden.wordpress.com/?p=125</guid>
		<description><![CDATA[Both for my various weekend projects and on the BUG, I&#8217;ve been unhappy with the bundled launcher that comes with Felix.  Equinox is no better.  Typically people use the Eclipse tooling to create and configure framework instances, but when setting up for production or working with embedded targets this is often not possible. So I [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=125&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Both for my various weekend projects and on the BUG, I&#8217;ve been unhappy with the bundled launcher that comes with Felix.  Equinox is no better.  Typically people use the Eclipse tooling to create and configure framework instances, but when setting up for production or working with embedded targets this is often not possible. So I set out to make something that would allow me to easily get a framework up and running from the terminal.  Luckily, Felix has excellent embedding support and documentation so it was pretty easy to get started.</p>
<p>What is it?  Essentially an alternative launcher for the Felix OSGi framework (3.2.2) that uses the OS&#8217;s native shell for framework management, and creates all of the configuration files automatically, letting the user just download, run, and start adding their application bundles, with interactive feedback.</p>
<p>I&#8217;ve much more detail on the design details and usage on the <a href="http://kgilmer.github.com/knapsack/">project page</a> and in the <a href="https://github.com/kgilmer/knapsack#readme">readme</a>.</p>
<p>However, here is the summary of how to go from Zero to OSGi in 30 seconds*:</p>
<pre class="brush: plain; title: ; notranslate">
$ mkdir foo &amp;&amp; cd foo
$ wget https://leafcutter.ci.cloudbees.com/job/knapsack/lastSuccessfulBuild/artifact/knapsack.jar
$ java -jar knapsack.jar &amp;

</pre>
<p>* Depending, of course, on your copy-paste skillz.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kgilmersden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kgilmersden.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=125&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kgilmersden.wordpress.com/2011/07/20/fresh-from-the-oven-knapsack-for-apache-felix/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c72aeb67cdbd5893a996ffbcdfaded17?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kengilmer</media:title>
		</media:content>
	</item>
		<item>
		<title>New steb release: 0.5.0</title>
		<link>http://kgilmersden.wordpress.com/2011/03/14/new-steb-release-0-5-0/</link>
		<comments>http://kgilmersden.wordpress.com/2011/03/14/new-steb-release-0-5-0/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 05:25:29 +0000</pubDate>
		<dc:creator>kengilmer</dc:creator>
				<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://kgilmersden.wordpress.com/?p=86</guid>
		<description><![CDATA[Shell to Linux Bridge has a new feature and a tweak.  The tweak is no log output for socket errors.  I often run multiple instances of eclipse and don&#8217;t want to sort through these messages when I&#8217;m looking for something else.  The feature is a &#8220;project mode&#8221; in which, an Eclipse project is generated for [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=86&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Shell to Linux Bridge has a new feature and a tweak.  The tweak is no log output for socket errors.  I often run multiple instances of eclipse and don&#8217;t want to sort through these messages when I&#8217;m looking for something else.  The feature is a &#8220;project mode&#8221; in which, an Eclipse project is generated for a given directory.  This can be handy for evaluating a new package, or simply browsing some source files that are not apart of a formal, language-oriented project in your workspace.  With my netcat-based client, I type from the terminal:</p>
<pre>$ steb -p /tmp/myproject</pre>
<p>And steb picks this up, creates a new general project named &#8220;myproject&#8221;, and recursively adds all child files and folders.  Be careful when removing these projects from Eclipse, if you elect to have Eclipse delete the files&#8230;that&#8217;s exactly what it will do!</p>
<p>As always the <strong>updatesite</strong> is: <strong><a href="http://angelshare.org/org.steb.updatesite" rel="nofollow">http://angelshare.org/org.steb.updatesite</a></strong></p>
<p>The steb client shell script is available at: <strong><a href="http://angelshare.org/org.steb.updatesite/steb" rel="nofollow">http://angelshare.org/org.steb.updatesite/steb</a></strong></p>
<p><strong><br />
</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kgilmersden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kgilmersden.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=86&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kgilmersden.wordpress.com/2011/03/14/new-steb-release-0-5-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c72aeb67cdbd5893a996ffbcdfaded17?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kengilmer</media:title>
		</media:content>
	</item>
		<item>
		<title>Steb update (0.4.0)</title>
		<link>http://kgilmersden.wordpress.com/2011/02/23/steb-update-0-4-0/</link>
		<comments>http://kgilmersden.wordpress.com/2011/02/23/steb-update-0-4-0/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 04:50:37 +0000</pubDate>
		<dc:creator>kengilmer</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://kgilmersden.wordpress.com/?p=63</guid>
		<description><![CDATA[A quick update to steb for some functionality I&#8217;ve needed: - &#8220;Copy to Clipboard&#8221; action in context menu.  This works like the &#8220;Copy Qualified Name&#8221; as provided by JDT, with the difference being only the resource path is copied to the clipboard.  This makes shell interaction easier.  See the screenshot. - No stacktrace when Steb [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=63&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A quick update to steb for some functionality I&#8217;ve needed:</p>
<p>- &#8220;Copy to Clipboard&#8221; action in context menu.  This works like the &#8220;Copy Qualified Name&#8221; as provided by JDT, with the difference being only the resource path is copied to the clipboard.  This makes shell interaction easier.  See the screenshot.</p>
<p>- No stacktrace when Steb is unable to bind to configured port.  Commonly I run multiple Eclipse instances and don&#8217;t need a nasty stack trace in the logs when I do.</p>
<p>The updatesite for steb is still <a href="http://angelshare.org/org.steb.updatesite">http://angelshare.org/org.steb.updatesite</a>.</p>
<div id="attachment_64" class="wp-caption alignleft" style="width: 585px"><a href="http://kgilmersden.files.wordpress.com/2011/02/steb.png"><img class="size-full wp-image-64" title="Steb screenshot of Copy Path feature." src="http://kgilmersden.files.wordpress.com/2011/02/steb.png?w=500" alt=""   /></a><p class="wp-caption-text">Steb screenshot of Copy Path feature.</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kgilmersden.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kgilmersden.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=63&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kgilmersden.wordpress.com/2011/02/23/steb-update-0-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c72aeb67cdbd5893a996ffbcdfaded17?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kengilmer</media:title>
		</media:content>

		<media:content url="http://kgilmersden.files.wordpress.com/2011/02/steb.png" medium="image">
			<media:title type="html">Steb screenshot of Copy Path feature.</media:title>
		</media:content>
	</item>
		<item>
		<title>Hot Potato!  Visualize file age in Eclipse&#8230;</title>
		<link>http://kgilmersden.wordpress.com/2010/08/19/hello-world/</link>
		<comments>http://kgilmersden.wordpress.com/2010/08/19/hello-world/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 20:48:02 +0000</pubDate>
		<dc:creator>kengilmer</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://kgilmersden.wordpress.com/?p=1</guid>
		<description><![CDATA[A file age visualization extension to Eclipse.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=1&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I rely on the Package Explorer in Eclipse.  I recently noticed that my workflow typically involves many updates to relatively few files in a given project.  And, I sometimes catch myself searching through the package explorer looking for something I was just editing&#8230;</p>
<p><a href="http://kgilmersden.files.wordpress.com/2010/08/screenshot.png"><img class="alignleft size-full wp-image-6" title="Hot Potato Screenshot" src="http://kgilmersden.files.wordpress.com/2010/08/screenshot.png?w=500" alt=""   /></a>So, I wrote Hot Potato.  As the name would imply, it adds a little hot potato decorator to files that have recently changed.  The color of the potato varies on the age.  Files older than a day will be ignored.</p>
<p>The updatesite for hotpotato is: <a href="http://angelshare.org/org.hotpotato.updatesite/">http://angelshare.org/org.hotpotato.updatesite/</a></p>
<p>Sources are at: <a href="http://angelshare.org/org.hotpotato.updatesite/hotpotato-src.tar.gz" rel="nofollow">http://angelshare.org/org.hotpotato.updatesite/hotpotato-src.tar.gz</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kgilmersden.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kgilmersden.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kgilmersden.wordpress.com&#038;blog=15303770&#038;post=1&#038;subd=kgilmersden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kgilmersden.wordpress.com/2010/08/19/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c72aeb67cdbd5893a996ffbcdfaded17?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kengilmer</media:title>
		</media:content>

		<media:content url="http://kgilmersden.files.wordpress.com/2010/08/screenshot.png" medium="image">
			<media:title type="html">Hot Potato Screenshot</media:title>
		</media:content>
	</item>
	</channel>
</rss>