<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>2Lines Software</title>
	<atom:link href="http://www.2linessoftware.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.2linessoftware.com</link>
	<description></description>
	<lastBuildDate>Wed, 04 Aug 2010 03:41:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Singletons and Services and Shutdowns Oh My</title>
		<link>http://www.2linessoftware.com/2010/08/03/singletons-and-services-and-shutdowns-oh-my/</link>
		<comments>http://www.2linessoftware.com/2010/08/03/singletons-and-services-and-shutdowns-oh-my/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 03:38:58 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Programming Tip]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[singleton]]></category>

		<guid isPermaLink="false">http://www.2linessoftware.com/2010/08/03/singletons-and-services-and-shutdowns-oh-my/</guid>
		<description><![CDATA[Passing data back and forth between activities on the Android platform is one of the more challenging aspects of understanding Android. Understanding how this data is managed by the OS is the difference between getting flooded with Error Reports and bad reviews and getting  glowing praise and eternal gratitude. Well maybe not to that extent, [...]]]></description>
			<content:encoded><![CDATA[<div class="posterous_autopost">
<p>Passing data back and forth between activities on the Android platform is one of the more challenging aspects of understanding Android. Understanding how this data is managed by the OS is the difference between getting flooded with Error Reports and bad reviews and getting  glowing praise and eternal gratitude. Well maybe not to that extent, but having a good background in passing data can make your code much easier to manage and cleaner to read (and for that you have my gratitude)  So in passing the data there are essentially two types Persistent and strangely enough, Non-Persistent data types. The Persistent types are best handled by preferences, files, databases or content providers and they are pretty detailed in their operation. If you need to keep data over the length of more that one session consider using Persistent data stores.  On the other hand, there are often times where transient data needs to be stored for one session and passed between activities. To handle that there are a couple of ways to handle it.  This <a title="Android Framework Topics" href="http://developer.android.com/guide/appendix/faq/framework.html#3" target="_blank">page </a>details some of the methods, and it is repeated here for convenience;</p>
<blockquote>
<h2>How do I pass data between Activities/Services within a single application?</h2>
<p>It depends on the type of data that you want to share:</p>
<h3>Primitive Data Types</h3>
<p>To share primitive data between Activities/Services in an application, use Intent.putExtras(). For passing primitive data that needs to persist use the <a href="http://developer.android.com/guide/topics/data/data-storage.html#preferences">Preferences</a> storage mechanism.</p>
<h3>Non-Persistent Objects</h3>
<p>For sharing complex non-persistent user-defined objects for short duration, the following approaches are recommended:</p>
<h4>The android.app.Application class</h4>
<p>The android.app.Application is a base class for those who need to maintain global application state. It can be accessed via getApplication() from any Activity or Service. It has a couple of life-cycle methods and will be instantiated by Android automatically if your register it in AndroidManifest.xml.</p>
<h4>A public static field/method</h4>
<p>An alternate way to make data accessible across Activities/Services is to use <em>public static</em> fields and/or methods. You can access these static fields from any other class in your application. To share an object, the activity which creates your object sets a static field to point to this object and any other activity that wants to use this object just accesses this static field.</p>
<h4>A HashMap of WeakReferences to Objects</h4>
<p>You can also use a HashMap of WeakReferences to Objects with Long keys. When an activity wants to pass an object to another activity, it simply puts the object in the map and sends the key (which is a unique Long based on a counter or time stamp) to the recipient activity via intent extras. The recipient activity retrieves the object using this key.</p>
<h4>A Singleton class</h4>
<p>There are advantages to using a static Singleton, such as you can refer to them without casting getApplication() to an application-specific class, or going to the trouble of hanging an interface on all your Application subclasses so that your various modules can refer to that interface instead.  <strong>But, the life cycle of a static is not well under your control; so to abide by the life-cycle model, the application class should initiate and tear down these static objects in the onCreate() and onTerminate() methods of the Application Class </strong>[my emphasis]</p></blockquote>
<p>Being as I come from a java EE background the first decision was to use the singleton class and allow the instance to be available across the VM. The<a href="http://en.wikipedia.org/wiki/Singleton_pattern" target="_blank"> singleton design pattern</a> is fairly well-known and is a good easy way to manage control across many activities. In some previous projects I have used them to manage HTTP connections, image caching and global application configuration to much success. However, this is the important part to consider when using singletons which is very important; <strong>Android OS can and will terminate your singleton and not even tell you about it. </strong>I highlighted that in bold because if your design depends on singleton patterns you naturally assume they are going to stay persistent through the VM. These are frustrating errors and difficult to track down and even more frustrating for your users.  For instance consider this piece of code:  In your main activity;</p>
<blockquote>
<div>@Override</div>
<div>public void onCreate(Bundle savedInstanceState) {</div>
<div><span> </span>super.onCreate(savedInstanceState);</div>
<div><span> </span>SuperSingletonManager.create(this);</div>
<div>}</div>
</blockquote>
<p>And your singleton;</p>
<blockquote>
<div>
<div><span> </span>private static SuperSingletonManager instance;</div>
<div><span> </span>private SuperSingletonManager(Context context)</div>
<div><span> </span>{</div>
<div><span> </span>// do stuff once</div>
<div><span> </span>}</div>
<div><span> </span>protected static SuperSingletonManager create(Context context) {</div>
<div><span> </span>instance = new SuperSingletonManager(context);</div>
<div><span> </span>}</div>
<div><span> </span>protected static SuperSingletonManager getInstance() {</div>
<div><span> </span>if (instance == null)</div>
<div><span> </span>throw new NastyException("Oh God Why?");</div>
<div><span> </span>return instance;</div>
<div><span> </span>}</div>
</div>
</blockquote>
<p>Seemingly you should be able to call  <em>SuperSingletonManager.getInstance() </em>at any time and get access to the static instance. However, this isn't the case. If the launching  activity is removed by the OS (it happens, a lot) while you are on another activity, that static instance will be gone. So when you make that  <em>SuperSingletonManager getInstance() </em> call you are only going to get a nasty exception. This also means that if any of your functions in <em>SuperSingletonManager </em>make use of the <em>Context </em>those will throw errors. Ack.  <em>But I really, really like singletons. </em> So do I. And far be it from me to tell you how to architect your code. The only stipulation is that the singleton should <strong>abide by the lifecycle</strong> <strong>model. </strong>We can do this by launching the singletons from a service and binding that service to the launching activity. To the Android purists, and common-sensists out there you might just say "Why not just use a service instead of a singleton?".  Sure, makes sense but this post is about singletons and how to get them working and not common-sense.  So here is the class that will do all that;</p>
<blockquote><p>public class SingletonService extends Service {</p>
<p><span> </span>private final ISingletonService.Stub mBinder = new ISingletonService.Stub() {</p>
<p><span> </span>public void startSingletons() throws RemoteException {</p>
<p><span> </span> initializeSingletons();</p>
<p><span> </span>}</p>
<p><span> </span>public void stopSingletons() throws RemoteException {</p>
<p><span> </span> shutdownSingletons();</p>
<p><span> </span>}</p>
<p><span> </span>};</p>
<p><span> </span>public IBinder onBind(Intent intent) {</p>
<p><span> </span> return mBinder;</p>
<p><span> </span>}</p>
<p><span> </span>protected void initializeSingletons() {</p>
<p><span> </span> SuperSingletonManager.initialize(getApplicationContext());</p>
<p><span> </span>}</p>
<p><span> </span>private void shutdownSingletons() {</p>
<p><span> </span> SuperSingletonManager.shutdown();</p>
<p><span> </span>}</p>
<p><span> </span>}</p></blockquote>
<p>When you start your main activity bind the service using <em>bindService()</em> , and make a call to the <em>startSingletons() </em>method. This will launch your singletons under the lifecycle of the service. This will ensure they are active for the life of your application session.  Also, make sure to <em>unbindService </em>when you are finished. Nobody likes developers that don't clean up after themselves.  Good luck and if you actually use this method let me know!  John</p>
<p style="font-size: 10px;"><a href="http://posterous.com">Posted via email</a> from <a href="http://johncarpenter.posterous.com/singletons-and-services-and-shutdowns-oh-my">John Carpenter</a></p>
</div>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F&amp;title=Singletons+and+Services+and+Shutdowns+Oh+My" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F&amp;title=Singletons+and+Services+and+Shutdowns+Oh+My" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F&amp;title=Singletons+and+Services+and+Shutdowns+Oh+My" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F&amp;title=Singletons+and+Services+and+Shutdowns+Oh+My" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F&amp;title=Singletons+and+Services+and+Shutdowns+Oh+My', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F&amp;title=Singletons+and+Services+and+Shutdowns+Oh+My" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F08%2F03%2Fsingletons-and-services-and-shutdowns-oh-my%2F&amp;title=Singletons+and+Services+and+Shutdowns+Oh+My" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.2linessoftware.com/2010/08/03/singletons-and-services-and-shutdowns-oh-my/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Poynt comes to Android</title>
		<link>http://www.2linessoftware.com/2010/07/29/poynt-comes-to-android/</link>
		<comments>http://www.2linessoftware.com/2010/07/29/poynt-comes-to-android/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 19:23:38 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.2linessoftware.com/2010/07/29/poynt-comes-to-android/</guid>
		<description><![CDATA[I've been helping the good people over at Multiplied Media with their Poynt for Android application for a couple of months now and I'm proud to see that they have launched the application.  [Market Link] The team did a great job putting the application together and hopefully it will be well received by the community. [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>I've been helping the good people over at Multiplied Media with their Poynt for Android application for a couple of months now and I'm proud to see that they have launched the application. </p>
<p><img src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-29/hoBjamfoDsaruCyruwpGtmdwwevydBpyHnfuJoJbgkFHHvgGaBzCyydIetmG/poynt1.png.scaled500.png" width="480" height="800"/> </p>
<p><a href="http://market.android.com/search?q=poynt" title="Android Market Link">[Market Link]</a></p>
<p>The team did a great job putting the application together and hopefully it will be well received by the community. Although its still being distributed and talked about here are some great features that might not be immediately apparent. </p>
<p> </p>
<p><strong>1. Look up a Contact in the White Pages Search </strong></p>
<p>On 1.6+ devices, and in the countries where the White Page lookup is supported, Poynt has the ability to prepopulate the lookup fields from one of your existing contacts. </p>
<p>To get the function, select People from the Main Carousel, and select one of the lookup items. For this example, I will select "Lookup By Name". </p>
<p><img src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-29/BbIediEHqxfkBpujboGdxdFymfanxHkDddDHzdnnpbGmoxxyeBvDipasaxnB/poynt2.png.scaled500.png" width="480" height="800"/> Press the Menu key and there it is, "Lookup Contact". By pressing the menu item you will get your contact list to show up. Select one of the names and the menu will auto populate the fields. </p>
<p><img src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-29/wmHnbIvtimwjkgocCafbjtAhrxobArDmwmGHtwpqxErBCFrkolHnlpuDjdgF/poynt3.png.scaled500.png" width="480" height="800"/> Press the search icon and get the list of the nearby search results. Click on the appropriate search result and get the specific details. </p>
<p> </p>
<p><img src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-29/wyhnfBDajuaozrxvdbfmxrGmnrbaCDokIhhwekHHtIAnCJGBhGdFdyfhcnuI/poynt4.png.scaled500.png" width="480" height="800"/> Now, click the Add Contact icon  on the right side, and Android will automatically merge the details from the White Pages lookup with your contact details. </p>
<p>So with a couple of clicks you can add the address, and phone number to your existing. contacts by using the People lookup in Poynt. </p>
<p>Look for more tips soon and make sure to download and try out Poynt for Android. </p>
<p> </p>
<p> </p>
<p> </p>
<p style="font-size: 10px;">  <a href="http://posterous.com">Posted via email</a>   from <a href="http://johncarpenter.posterous.com/poynt-comes-to-android">John Carpenter</a>  </p>
</p></div>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F&amp;title=Poynt+comes+to+Android" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F&amp;title=Poynt+comes+to+Android" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F&amp;title=Poynt+comes+to+Android" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F&amp;title=Poynt+comes+to+Android" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F&amp;title=Poynt+comes+to+Android', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F&amp;title=Poynt+comes+to+Android" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2010%2F07%2F29%2Fpoynt-comes-to-android%2F&amp;title=Poynt+comes+to+Android" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.2linessoftware.com/2010/07/29/poynt-comes-to-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Starting Android Development &#8212; READ THIS FIRST</title>
		<link>http://www.2linessoftware.com/2009/12/17/starting-android-development-read-this-first/</link>
		<comments>http://www.2linessoftware.com/2009/12/17/starting-android-development-read-this-first/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 17:03:31 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.2linessoftware.com/?p=98</guid>
		<description><![CDATA[After releasing a couple of products into the Android marketplace you get a little more familiar with the OS and framework. Looking back you start to realize that Android has a number of methods and tools that, if you took the time to learn them first you would have saved yourself a ton of time. [...]]]></description>
			<content:encoded><![CDATA[<p>After releasing a couple of products into the Android marketplace you get a little more familiar with the OS and framework. Looking back you start to realize that Android has a number of methods and tools that, if you took the time to learn them first you would have saved yourself a ton of time.</p>
<p>Search after search related to problems I ran into always seemed to direct me to one page. The page didn't always have the answer to your problem but more than once it indicated that maybe I'm asking the wrong question in the first place!</p>
<p>Well here it is the <strong><em>single most important page in the entire Android framework</em></strong>!</p>
<p style="text-align: center;"><a title="Android Framework Fundamentals" href="http://developer.android.com/guide/topics/fundamentals.html">http://developer.android.com/guide/topics/fundamentals.html</a></p>
<p>I can't stress this enough. Read this page in its entirety. When you are finished go back to the start and read it again. Don't do any coding until you understand how your program gets executed!</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F&amp;title=Starting+Android+Development+%26%238212%3B+READ+THIS+FIRST" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F&amp;title=Starting+Android+Development+%26%238212%3B+READ+THIS+FIRST" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F&amp;title=Starting+Android+Development+%26%238212%3B+READ+THIS+FIRST" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F&amp;title=Starting+Android+Development+%26%238212%3B+READ+THIS+FIRST" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F&amp;title=Starting+Android+Development+%26%238212%3B+READ+THIS+FIRST', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F&amp;title=Starting+Android+Development+%26%238212%3B+READ+THIS+FIRST" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F12%2F17%2Fstarting-android-development-read-this-first%2F&amp;title=Starting+Android+Development+%26%238212%3B+READ+THIS+FIRST" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.2linessoftware.com/2009/12/17/starting-android-development-read-this-first/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Development and the Case of the Missing Google Maps Reference SDK</title>
		<link>http://www.2linessoftware.com/2009/04/28/android-development-and-the-case-of-the-missing-google-maps-reference-sdk/</link>
		<comments>http://www.2linessoftware.com/2009/04/28/android-development-and-the-case-of-the-missing-google-maps-reference-sdk/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 17:34:38 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Location Based Services]]></category>

		<guid isPermaLink="false">http://www.2linessoftware.com/?p=96</guid>
		<description><![CDATA[The Android Developer site has moved a bunch of links around to remove a lot of the Google branding from the community. Technically speaking Google drove the project and owns a lot of the development but it is an open-source community and probably should avoid proprietary and company specific codebases within its structure. That at [...]]]></description>
			<content:encoded><![CDATA[<p>The Android Developer site has moved a bunch of links around to remove a lot of the Google branding from the community. Technically speaking Google drove the project and owns a lot of the development but it is an open-source community and probably should avoid proprietary and company specific codebases within its structure.</p>
<p>That at least what I assume they were thinking when they yanked the com.android.maps reference documentation from the site. For instance if you were looking for the MapController reference you would run a Google search for it and the first link is this:</p>
<p><a href="http://code.google.com/android/reference/com/google/android/maps/MapController.htm">http://code.google.com/android/reference/com/google/android/maps/MapController.html</a></p>
<p>Which returns a bug fat 404. The proper link is at:</p>
<p><a href="http://code.google.com/android/add-ons/google-apis/reference/index.html">http://code.google.com/android/add-ons/google-apis/reference/index.html</a></p>
<p>Android/Google get it together! At least put a redirect page up on old links!</p>
<p>Hopefully that saves you some time with the SDK.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F&amp;title=Android+Development+and+the+Case+of+the+Missing+Google+Maps+Reference+SDK" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F&amp;title=Android+Development+and+the+Case+of+the+Missing+Google+Maps+Reference+SDK" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F&amp;title=Android+Development+and+the+Case+of+the+Missing+Google+Maps+Reference+SDK" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F&amp;title=Android+Development+and+the+Case+of+the+Missing+Google+Maps+Reference+SDK" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F&amp;title=Android+Development+and+the+Case+of+the+Missing+Google+Maps+Reference+SDK', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F&amp;title=Android+Development+and+the+Case+of+the+Missing+Google+Maps+Reference+SDK" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F28%2Fandroid-development-and-the-case-of-the-missing-google-maps-reference-sdk%2F&amp;title=Android+Development+and+the+Case+of+the+Missing+Google+Maps+Reference+SDK" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.2linessoftware.com/2009/04/28/android-development-and-the-case-of-the-missing-google-maps-reference-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mistakes in Programming Projects</title>
		<link>http://www.2linessoftware.com/2009/04/10/mistakes-in-programming-projects/</link>
		<comments>http://www.2linessoftware.com/2009/04/10/mistakes-in-programming-projects/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 18:53:35 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.2linessoftware.com/2009/04/10/mistakes-in-programming-projects/</guid>
		<description><![CDATA[This should be required reading for any Software Project Manager. http://www.stevemcconnell.com.nyud.net/rdenum.htm Although for you jaded and older programming types you should play the "Been There" Bingo with that page. I've been on projects that scored well over 20/36!]]></description>
			<content:encoded><![CDATA[<p>This should be required reading for any Software Project Manager.</p>
<p><a href="http://www.stevemcconnell.com.nyud.net/rdenum.htm" target="_blank">http://www.stevemcconnell.com.nyud.net/rdenum.htm</a></p>
<p>Although for you jaded and older programming types you should play the "Been There" Bingo with that page. I've been on projects that scored well over 20/36!</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F&amp;title=Mistakes+in+Programming+Projects" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F&amp;title=Mistakes+in+Programming+Projects" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F&amp;title=Mistakes+in+Programming+Projects" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F&amp;title=Mistakes+in+Programming+Projects" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F&amp;title=Mistakes+in+Programming+Projects', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F&amp;title=Mistakes+in+Programming+Projects" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.2linessoftware.com%2F2009%2F04%2F10%2Fmistakes-in-programming-projects%2F&amp;title=Mistakes+in+Programming+Projects" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.2linessoftware.com/2009/04/10/mistakes-in-programming-projects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
