<?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:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>DONN FELKER</title>
	
	<link>http://blog.donnfelker.com</link>
	<description>Technology, startups, health &amp; entrepreneurial tidbits</description>
	<lastBuildDate>Thu, 06 Jun 2013 15:48:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/donnfelker" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="donnfelker" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Android Studio – Tips and Tricks Part 1</title>
		<link>http://blog.donnfelker.com/2013/06/06/android-studio-tips-and-tricks-part-1/</link>
		<comments>http://blog.donnfelker.com/2013/06/06/android-studio-tips-and-tricks-part-1/#comments</comments>
		<pubDate>Thu, 06 Jun 2013 15:46:00 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Screencasts]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1213</guid>
		<description><![CDATA[This video is part 1 of two of a short series of tips and tricks for Android Studio. I&#8217;ll show you how to quickly navigate quickly between files, create string resouces on the fly, create entire resources (such as dimens.xml) on the fly. This is the third video of a multi part series on Android [...]]]></description>
				<content:encoded><![CDATA[<p>This video is part 1 of two of a short series of tips and tricks for Android Studio. I&#8217;ll show you how to quickly navigate quickly between files, create string resouces on the fly, create entire resources (such as dimens.xml) on the fly.</p>
<p>This is the third video of a multi part series on Android Studio</p>
<ul>
<li><a href="http://blog.donnfelker.com/2013/05/16/getting-started-with-android-studio/"><span style="line-height: 24.545454025268555px;">Part 1: Getting Started with Android Studio</span></a></li>
<li><a href="http://blog.donnfelker.com/2013/05/20/android-studio-setting-up-an-emulator/"><span style="line-height: 24.545454025268555px;">Part 2: Setting up an Emulator</span></a></li>
<li><span style="line-height: 24.545454025268555px;">Part 3: Tips and Tricks Part 1 (this post)</span></li>
</ul>
<p>&nbsp;<br />
<iframe src="http://fast.wistia.net/embed/iframe/bceirtjy6k?controlsVisibleOnLoad=true&#038;plugin%5BrequireEmail-v1%5D%5BallowSkip%5D=true&#038;plugin%5BrequireEmail-v1%5D%5BbottomText%5D=We%20wont%20send%20you%20spam.%20Unsubscribe%20at%20any%20time.&#038;plugin%5BrequireEmail-v1%5D%5Blist%5D=e23c488273&#038;plugin%5BrequireEmail-v1%5D%5Bprovider%5D=mailchimp&#038;plugin%5BrequireEmail-v1%5D%5Btime%5D=1&#038;plugin%5BrequireEmail-v1%5D%5BtopText%5D=Get%20just%20the%20best%20Android%20Dev%20posts%20delivered%20to%20your%20inbox%20weekly.&#038;version=v1&#038;videoHeight=400&#038;videoWidth=640&#038;volumeControl=true" allowtransparency="true" frameborder="0" scrolling="no" class="wistia_embed" name="wistia_embed" width="640" height="400"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2013/06/06/android-studio-tips-and-tricks-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Studio – Setting up an Emulator</title>
		<link>http://blog.donnfelker.com/2013/05/20/android-studio-setting-up-an-emulator/</link>
		<comments>http://blog.donnfelker.com/2013/05/20/android-studio-setting-up-an-emulator/#comments</comments>
		<pubDate>Tue, 21 May 2013 02:26:13 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1205</guid>
		<description><![CDATA[In this video I talk about how the Android SDK is actually stored in a different location than previous Android installations and how you can use Android Studio to set up and start an emulator for development. Enjoy! This video is part 2 of a multi part series on Android Studio Part 1: Getting Started [...]]]></description>
				<content:encoded><![CDATA[<p>In this video I talk about how the Android SDK is actually stored in a different location than previous Android installations and how you can use Android Studio to set up and start an emulator for development. Enjoy!</p>
<p>This video is part 2 of a multi part series on Android Studio</p>
<ul>
<li><a href="http://blog.donnfelker.com/2013/05/16/getting-started-with-android-studio/"><span style="line-height: 13.991477012634277px;">Part 1: Getting Started with Android Studio</span></a></li>
<li>Part 2: Setting up an Emulator (this post)</li>
<li><a href="http://blog.donnfelker.com/2013/06/06/android-studio-tips-and-tricks-part-1/">Part 3: Tips and Tricks Part 1</a></li>
</ul>
<p><iframe src="http://fast.wistia.net/embed/iframe/6gy3n5ig6u?controlsVisibleOnLoad=true&#038;plugin%5BrequireEmail-v1%5D%5BallowSkip%5D=true&#038;plugin%5BrequireEmail-v1%5D%5BbottomText%5D=We%20wont%20send%20you%20spam.%20Unsubscribe%20at%20any%20time.&#038;plugin%5BrequireEmail-v1%5D%5Blist%5D=e23c488273&#038;plugin%5BrequireEmail-v1%5D%5Bprovider%5D=mailchimp&#038;plugin%5BrequireEmail-v1%5D%5Btime%5D=1&#038;plugin%5BrequireEmail-v1%5D%5BtopText%5D=Get%20just%20the%20best%20Android%20Dev%20posts%20delivered%20to%20your%20inbox%20weekly.&#038;version=v1&#038;videoHeight=400&#038;videoWidth=640&#038;volumeControl=true" allowtransparency="true" frameborder="0" scrolling="no" class="wistia_embed" name="wistia_embed" width="640" height="400"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2013/05/20/android-studio-setting-up-an-emulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Android Studio</title>
		<link>http://blog.donnfelker.com/2013/05/16/getting-started-with-android-studio/</link>
		<comments>http://blog.donnfelker.com/2013/05/16/getting-started-with-android-studio/#comments</comments>
		<pubDate>Thu, 16 May 2013 23:10:15 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1196</guid>
		<description><![CDATA[Since Google announced an IDE that was based on IntelliJ for Android Development I&#8217;ve received various emails, texts and calls regarding this app and whether folks should use it. My consensus: YES! USE IT! (If you&#8217;re not already using IntelliJ) I&#8217;ve been developing Android applications with IntelliJ for 2+ years now and I&#8217;m very excited that Google [...]]]></description>
				<content:encoded><![CDATA[<p>Since Google announced an IDE that was based on IntelliJ for Android Development I&#8217;ve received various emails, texts and calls regarding this app and whether folks should use it. My consensus: YES! USE IT! (If you&#8217;re not already using IntelliJ) I&#8217;ve been developing Android applications with IntelliJ for 2+ years now and I&#8217;m very excited that Google is moving in this direction. In hopes to help folks make the transition I&#8217;m going to release a series of screencasts that will help you get familiar and instantly productive with Android Studio.</p>
<p>Here is the first video, enjoy!</p>
<p>This video is part 1 of a multi part series on Android Studio</p>
<ul>
<li>Part 1: Getting Started with Android Studio(this post)</li>
<li><a href="http://blog.donnfelker.com/2013/05/20/android-studio-setting-up-an-emulator/">Part 2: Setting up an Emulator</a></li>
<li><a href="http://blog.donnfelker.com/2013/06/06/android-studio-tips-and-tricks-part-1/">Part 3: Tips and Tricks Part 1</a></li>
</ul>
<p><iframe src="http://fast.wistia.net/embed/iframe/96rzvv23vp?controlsVisibleOnLoad=true&#038;plugin%5BrequireEmail-v1%5D%5BallowSkip%5D=true&#038;plugin%5BrequireEmail-v1%5D%5BbottomText%5D=We%20wont%20send%20you%20spam.%20Unsubscribe%20at%20any%20time.&#038;plugin%5BrequireEmail-v1%5D%5Blist%5D=e23c488273&#038;plugin%5BrequireEmail-v1%5D%5Bprovider%5D=mailchimp&#038;plugin%5BrequireEmail-v1%5D%5Btime%5D=1&#038;plugin%5BrequireEmail-v1%5D%5BtopText%5D=Get%20just%20the%20best%20Android%20Dev%20posts%20delivered%20to%20your%20inbox%20weekly.&#038;version=v1&#038;videoHeight=400&#038;videoWidth=640&#038;volumeControl=true" allowtransparency="true" frameborder="0" scrolling="no" class="wistia_embed" name="wistia_embed" width="640" height="400"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2013/05/16/getting-started-with-android-studio/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hi Performance JSON Parsing in Android</title>
		<link>http://blog.donnfelker.com/2013/04/15/hi-performance-json-parsing-in-android/</link>
		<comments>http://blog.donnfelker.com/2013/04/15/hi-performance-json-parsing-in-android/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 21:09:36 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Patterns and Practices]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1185</guid>
		<description><![CDATA[Sometimes in Android you connect to a third party API and you need to download gobs of JSON data. One of my current clients has an API endpoint that is used for syncing data to the device. One API call returns hundreds of thousands of lines of JSON resulting in a JSON file (when saved) [...]]]></description>
				<content:encoded><![CDATA[<p>Sometimes in Android you connect to a third party API and you need to download gobs of JSON data. One of my current clients has an API endpoint that is used for syncing data to the device. One API call returns hundreds of thousands of lines of JSON resulting in a JSON file (when saved) of around 8MB or more. Processing the entire file by loading it into memory can be painful and can crash a lot memory constrained devices. However, using the <a href="http://jackson.codehaus.org/">Jackson</a> JSON parsing library you can stream the <a href="https://github.com/kevinsawicki/http-request">http-request</a> as a <a href="http://developer.android.com/reference/java/io/Reader.html">Reader</a> into <a href="http://wiki.fasterxml.com/JacksonStreamingApi">Jacksons Streaming API</a> which will allow you to process each JSON object as soon as it comes down from the pipe. This allows you to process the data as it comes down the pipe instead of loading the entire JSON file.</p>
<p>&nbsp;</p>
<p>I use the <a href="http://jackson.codehaus.org/1.7.9/javadoc/org/codehaus/jackson/map/ObjectMapper.html">ObjectMapper</a> from Jackson to deserialize the JSON into a <a href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object">POJO</a>. This allows me to work with domain objects throughout my app, therefore I dont have to worry about parsing JSON objects all over the place (or cursors if you move the data into a DB locally on the device). If you were to load the entire JSON file into the object mapper you&#8217;d create a humongous object graph which may ballon your memory out of the bounds of whats available and you might get a OutOfMemoryException. The end goal is to process EACH of the JSON objects as they come down, but also have the benefit of using a POJO to do so. Here&#8217;s how you can do it.</p>
<p><strong>The ObjectModel</strong></p>
<p>Below we have a simple customer object that we need to download. Imagine having a large accounting app that has millions of customers. Each customer would be represented as a POJO as defined below.</p>
<p><script src="https://gist.github.com/donnfelker/5391243.js"></script><br />
&nbsp;</p>
<p><strong>Connecting to the API / Consuming the Stream</strong></p>
<p>This actually quite easy. Simply connect to your API endpoint with your http library of choice (I use <a href="https://github.com/kevinsawicki/http-request">http-request</a>). Using the reader() method on the HttpRequest object I can then pass this reader into the JsonParser (shown below) and then let the loop build each Customer and then I handle each customer accordingly. Comments are inline:</p>
<p>&nbsp;<br />
<script src="https://gist.github.com/donnfelker/5391295.js"></script><br />
&nbsp;</p>
<p><strong>How to Use Jackson</strong></p>
<p>Simply add it as a library or if you&#8217;re using Maven add the Maven dependency in your POM and you&#8217;re off to the races. <img src='http://blog.donnfelker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Now you can download HUGE JSON streams without the worry of exploding your memory footprint. <img src='http://blog.donnfelker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2013/04/15/hi-performance-json-parsing-in-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby 1.9.3 [BUG] Segmentation with rspec</title>
		<link>http://blog.donnfelker.com/2013/03/21/ruby-1-9-3-bug-segmentation-with-rspec/</link>
		<comments>http://blog.donnfelker.com/2013/03/21/ruby-1-9-3-bug-segmentation-with-rspec/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 22:54:43 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rspec]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1179</guid>
		<description><![CDATA[Recently I dealt with an issue with Agile Affiliate so I&#8217;m going to catalogue it here. Long story short &#8211; I was using the &#8216;binding_of_caller&#8217; gem for rails. Well, one of my contractors was using it in dev and never took it out of the Gemfile. However, just this sitting in the Gemfile caused all kinds of [...]]]></description>
				<content:encoded><![CDATA[<p>Recently I dealt with an issue with Agile Affiliate so I&#8217;m going to catalogue it here. Long story short &#8211; I was using the &#8216;binding_of_caller&#8217; gem for rails. Well, one of my contractors was using it in dev and never took it out of the Gemfile. However, just this sitting in the Gemfile caused all kinds of segmentation faults when running rspec. I google&#8217;d around, reinstaled Ruby 1.9.3 with settings from a few Stack Overflow posts but still had no luck. The gem was the problem I eventually found by git bisecting the issue.</p>
<p>The segmentation faults looked like this:</p>
<p style="padding-left: 30px;">AgileAffiliate/gems/actionpack-3.2.11/lib/action_dispatch/testing/assertions.rb:2: [BUG] Segmentation fault<br />
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin12.2.0]</p>
<p style="padding-left: 30px;">&#8211; Control frame information &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p style="padding-left: 30px;">&#8230;</p>
<p>This issue has been logged in the gem&#8217;s issue list here: <a href="https://github.com/banister/binding_of_caller/issues/14">https://github.com/banister/binding_of_caller/issues/14</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2013/03/21/ruby-1-9-3-bug-segmentation-with-rspec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Fragmentation – The Business Reason</title>
		<link>http://blog.donnfelker.com/2013/01/03/android-fragmentation/</link>
		<comments>http://blog.donnfelker.com/2013/01/03/android-fragmentation/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 15:22:47 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1169</guid>
		<description><![CDATA[I was recently interviewed by InfoWorld for a segment on Android Fragmentation. Seeing that I get asked about this a lot I figured I&#8217;d post my thoughts about why a lot of Android fragmentation occurs in the Android ecosystem. The content below is an edited version of an email conversation I had with an editor [...]]]></description>
				<content:encoded><![CDATA[<p>I was recently interviewed by <a href="http://www.infoworld.com" target="_blank">InfoWorld</a> for a segment on Android Fragmentation. Seeing that I get asked about this a lot I figured I&#8217;d post my thoughts about why a lot of Android fragmentation occurs in the Android ecosystem. The content below is an edited version of an email conversation I had with an editor at <a href="http://www.infoworld.com" target="_blank">InfoWorld</a>.</p>
<p>Question &#8211; Does Android Fragmentation exist? If so, why do you think it exists?</p>
<p>Yes, it definitely exists. We have a large fragmentation problem currently. What I mean by that is that the large fragmentation issue largely stems from manufacturers failing to upgrade existing devices most of the time. A lot of devices can handle the upgrades without issue (CPU and memory/etc and device properties can handle the upgrade fine) but the manufacturer won&#8217;t update them. Therefore we have a large variance of devices in the wild.</p>
<p>Why won&#8217;t manufacturers update existing devices? Well, I have to speculate (as I have never heard it from them directly) and deduce that the reason lies in profits and revenue. In my opinion, a manufacturer has no interest in updating the devices to the new version of the software unless is quite trivial. Unfortunately its not trivial. The reason for this is because a lot of manufacturers like to take android and apply their own skin (TouchWiz, HTC Sense, AT&amp;T Whatchamacallit, etc). The manufacturer have to DEVELOP this theme/skin on their own dime, Google does not do this for them. So when a new version of Android comes out that completely changes a lot of UI paradigms, the manufacturers have to look at the business and determine how much it will cost to upgrade their theme so they can push out an update to their existing Android customers. My guess is that the cost of the development time to upgrade their themes is quite large and the return is small. <em>Think about it -</em> What additional revenue will a new updated OS bring? Probably something very very very small (if any at all &#8211; most likely none at all). So the manufacturers develop new devices and market those as the &#8220;new best thing&#8221; because the new OS is present on them. If the user wants the new OS, they need to upgrade. They need to buy a new device. New devices are revenue generators. The cost is already built into the new device development and marketing and profit margins are higher when someone buys a new device vs the manufacturer updating an OS and sending an OTA (Over the Air) update.</p>
<p>Now… if the device is a Nexus style device (Galaxy Nexus, Nexus 7, Nexus 4, etc) … these are all what I like to call <em>Vanilla Android </em>devices. There have been no modifications (other than getting it set up for the carrier) to the theme/etc. So the cost to push new updates is radically different than those of other customized devices like the SII or SIII, HTC One, Hero, etc. Since the first Android device hit the market I&#8217;ve owned an array of Android devices (over 25). Of all the devices I&#8217;ve owned, the &#8220;Nexus&#8221; models out perform the other manufacturers devices and always receive updates months in advance of others and usually continue to receive updates after other capable devices are not supported anymore (because of the speculation noted above).</p>
<p>So … at the end of the day we have a fragmentation problem because of business revenue and business decisions, not because the devices can&#8217;t handle them. Sure there are exceptions &#8211; not all devices can be upgraded &#8211; but you get the point that I&#8217;m getting at.</p>
<p>At the end of the day it comes down to this: Money In is not equaling money out. Result: Fragmentation</p>
<p>Note: This is not the only reason fragmentation exists or the only variance. We also have various screen sizes, resolutions  etc to deal with. This article mainly talks about the variance in OS versions in regards to fragmentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2013/01/03/android-fragmentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Innocence is Lost</title>
		<link>http://blog.donnfelker.com/2012/12/15/the-innocence-is-lost/</link>
		<comments>http://blog.donnfelker.com/2012/12/15/the-innocence-is-lost/#comments</comments>
		<pubDate>Sun, 16 Dec 2012 05:10:42 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Startup]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1166</guid>
		<description><![CDATA[Around 6 years ago&#8230; my wife and I bought a reusable Christmas tree in Danbury, CT. Why? We didn&#8217;t want to go to the Walmart in White Plains, NY when we lived in the Bronx, NY because its a madhouse. So we drove up to Danbury, CT because they had a Walmart and it was [...]]]></description>
				<content:encoded><![CDATA[<p>Around 6 years ago&#8230; my wife and I bought a reusable Christmas tree in Danbury, CT. Why? We didn&#8217;t want to go to the Walmart in White Plains, NY when we lived in the Bronx, NY because its a madhouse. So we drove up to Danbury, CT because they had a Walmart and it was more &#8220;chill&#8221; at the time (and probably still is). We were not sure if we were going to find a tree, but sure enough, we found one we loved and we bought it (though we were broke as a joke at the time). Since then we&#8217;ve used this tree every year and its the only tree our children have known (4 &amp; almost 2). It has memories that I can never let go of.</p>
<p>Little did I know that nearly ~6 years later I&#8217;d reflect on this XMAS tree purchasing experience moment in our lives in a deep introspective way. My wife and I talked about our XMAS tree buying experience today. ~6 years ago today, when we were out buying our first (and only) tree our family has owned in Danbury, CT, we were in the same store that some of the unfortunate Newton, CT childhood fatality parents had been in during that same xmas season.</p>
<p>For those that dont know, Danbury, CT is the closest &#8220;larger&#8221; city/town that is near Newton, CT that has a Walmart. What does this mean? It means that &#8230; Most likely those same parents of the slain children were pregnant with the child that was slain yesterday (or already had a &lt;1 yr old) at the time when we were in the store. We realized we may have actually ran into some of them while in the store (sure &#8230; small coincidence, but its a possibility) as back then we didn&#8217;t have children but were still high on the &#8220;newlywed&#8221; experience and were quite extroverted. We (wife an I) have an exact moment and place in history we can remember which can relate to the parents in that store. Happy, fulfilled, excited, full of joy. We now have children, (almost 2 and 4) &#8230; and we have no idea what these folks are going through.</p>
<p>The fact that we&#8217;ve shared the same path as those unfortunate parents at one point in our life makes us feel closer to them then the average american. That doesn&#8217;t make us better in any regard, but it sure does make it &#8220;hit home&#8221; a lot harder. We&#8217;ve seen those streets. We&#8217;ve driven those roads. We&#8217;ve sat at the same stop lights, we&#8217;ve experienced the same things. While it may initially seem shallow, to us it is still deep in retrospect.</p>
<p>In the end, we&#8217;ve shared the same sights as those families have, and now&#8230; those thoughts and memories are all those families have of their loved ones from here on out. Words cannot express how sad we feel for those families during this holiday season.</p>
<p>I wish I had something great/witty/etc to say here, but I don&#8217;t. When innocent children die its not something that can be replaced by words; mere silence is the only thing that fits &#8230; because the childhood laughter is forever gone.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2012/12/15/the-innocence-is-lost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Android Bootstrap – A Comprehensive Android Template Project</title>
		<link>http://blog.donnfelker.com/2012/10/17/android-template-project/</link>
		<comments>http://blog.donnfelker.com/2012/10/17/android-template-project/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 20:28:06 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1154</guid>
		<description><![CDATA[Better late than never, they say &#8230; the most comprehensive Android Template Project released to date. The History of the Android Template Project aka: Android Bootstrap About a month ago I released an open source project called &#8220;Android Bootstrap&#8221;. Android Bootstrap is a multi-faceted open source project. It serves a couple of main purposes, namely [...]]]></description>
				<content:encoded><![CDATA[<p>Better late than never, they say &#8230; the most comprehensive Android Template Project released to date.</p>
<h2>The History of the Android Template Project aka: Android Bootstrap</h2>
<p><a href="http://www.androidbootstrap.com" target="_blank"><img class=" wp-image-1161 alignleft" title="Android Bootstrap" src="http://blog.donnfelker.com/wp-content/uploads/2012/10/ab-300x146.png" alt="Android Bootstrap" width="300" height="146" /></a></p>
<p>About a month ago I released an open source project called &#8220;Android Bootstrap&#8221;. Android Bootstrap is a multi-faceted open source project. It serves a couple of main purposes, namely as a Android Template Project and a working reference application for developers. You can view the open source site at <a title="Android Bootstrap Website" href="http://www.androidbootstrap.com" target="_blank">www.androidbootstrap.com</a></p>
<h2>Why it was Built</h2>
<p>Over the last couple of years I&#8217;ve slowly accumulated various libraries and tools that I&#8217;ve used on various projects. These included (but were not limited to):</p>
<ul>
<li>RoboGuice</li>
<li>Action Bar Sherlock</li>
<li>View Pager Indicator</li>
<li>GSON</li>
<li>jUnit</li>
<li>Maven</li>
<li>Mockito</li>
<li>Account Manager (how to use it mainly)</li>
</ul>
<p>As time progressed I had my own little bastardized version of a Android Template Project I&#8217;d use each time I started developing a new app for myself or a client. However, I never had it down perfectly and felt the file structure was a bit off most of the time. But I kept using it anyway. I wanted a better solution and in the end after a few weeks of development and such Android Bootstrap was born.</p>
<h2>How its Built</h2>
<p>Android Bootstrap is not the end all be all of Android Template Projects. It simply provides a working example of how to build and app with full source code available. It&#8217;s not meant to be everything to everyone. When I began building Android Bootstrap it looked much different than it does now and the main reason for that is because the new incarnation that currently exists is heavily inspired from the <a href="http://github.com/github/android" target="_blank">GitHub Android App</a> as well as the <a href="https://github.com/github/gauges-android" target="_blank">Gaug.es Android App</a>. These apps used all of the same libraries that I used, but did it a bit more elegantly than my template project was set up. I used their nomenclature, file structure and a lot of their code to help develop Android Bootstrap.</p>
<p>Android Bootstrap is built using Maven and I explicitly target the usage of IntelliJ. I feel its a far superior product compared to Eclipse. While Maven is supported in Eclipse, I find it far more cumbersome than in IntelliJ. At this time there are a couple of open issues in regards to Eclipse on the <a href="https://github.com/donnfelker/android-bootstrap/issues" target="_blank">issue tracker</a>. Unfortunately I will probably not be fixing these unless a pull request comes in for them as my time is too limited.  So if you&#8217;re looking for a reason to try out IntelliJ with Android, now&#8217;s your chance. <img src='http://blog.donnfelker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The app is separated into a parent pom.xml that acts as the aggregator. The children are the <em>/app </em>and <em>/integration-tests</em> folder. The working Application can be found in the <em>/app</em> directory while the tests are in the <em>/integration-tests </em>folder. The apk is built out of the <em>/app</em> folder.</p>
<h2>Libraries/Examples Included in Android Bootstrap</h2>
<p>These are the following examples that are included in Android Bootstrap</p>
<ul>
<li>Build an Android Project with Maven and the android-maven-plugin</li>
<li>RoboGuice</li>
<li>Action Bar Sherlock</li>
<li>Action Bar Sherlock 4.x &amp; RoboGuice 2.x Integration</li>
<li>GSON</li>
<li>How to make HTTP Requests with the http-request library</li>
<li>AsycTasks using RoboAsyncTask</li>
<li>How to download and cache an image in the Android app cache (code is in the AvatarLoader.java file)</li>
<li>How to integrate with the Android Account Manager</li>
<li>How to use the Action Bar and various options of it.</li>
<li>How to consume JSON and hydrate POJOS from a remote API.</li>
<li>How to talk to a real JSON api (API is hosted on Parse.com)</li>
<li>Unit Test Examples</li>
<li>Integration Tests Examples</li>
<li>How to use Robotium</li>
<li>How to use the ViewPagerIndicator with a FragmentPager</li>
<li>How to use Fragments</li>
<li>How to display images in a ListView</li>
<li>&#8230; and much more</li>
</ul>
<p>This is only an introduction to Android Bootstrap. I hope to provide some videos soon on how to set up a project with it using the code generator available on <a href="http://www.androidbootstrap.com" target="_blank">androidbootstrap.com</a> , until next time &#8211; cheers. <img src='http://blog.donnfelker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2012/10/17/android-template-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Overcoming Coffee with Yerba Mate</title>
		<link>http://blog.donnfelker.com/2012/08/15/overcoming-coffee-yerba-mate/</link>
		<comments>http://blog.donnfelker.com/2012/08/15/overcoming-coffee-yerba-mate/#comments</comments>
		<pubDate>Wed, 15 Aug 2012 15:46:47 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Startup]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1143</guid>
		<description><![CDATA[Note: Also cross posted on the Guayaki Blog.  I never liked coffee until about my mid twenties. I found some sugary sweet drink that was some thing called a “latte”. I ended up liking it and ordered one whenever I met my friends at a coffee shop. Over time I noticed that these things also [...]]]></description>
				<content:encoded><![CDATA[<p><em>Note: Also cross posted on the <a href="http://blog.guayaki.com/197/site-news/overcoming-coffee-with-yerba-mate/">Guayaki Blog</a>. </em></p>
<p>I never liked coffee until about my mid twenties. I found some sugary sweet drink that was some thing called a “latte”. I ended up liking it and ordered one whenever I met my friends at a coffee shop. Over time I noticed that these things also carried quite the “zing” (and jitters among other things) after I drank it. Before I knew it, a couple years later I was having a coffee every other day. Then I got married and my wife loves coffee. She brewed it all the time at home so I started having a cup here and there and made my own version of latte’s and such. Fast forward five years later and I’m a two cup of coffee drinker per day. If it was a late night it could be 3-4 cups of coffee to get the engine going.</p>
<p>As time progressed over the last year or so I noticed a change in the color of my teeth (as do all coffee drinkers usually). I brush my teeth so its not a hygiene issue. My dentist told me “you have very porous teeth, and if you drink coffee it will be absorbed into your teeth. Sure you can brush, but thats why your teeth are looking a shade or two darker.” That literally grossed me out. I was also growing very tired of the jitters and was beginning to have problems sleeping at night because I had so much coffee flowing through my system. I wanted to quit, I was done. I wanted brighter teeth (and better smelling breath, who likes coffee breath anyway?). So I tried to quit, cold turkey … oops.</p>
<p>Second day into quitting the massive headaches hit. I was grumpy, blah, not feeling good. Long story short, I started drinking coffee again. I tried cutting back, didn&#8217;t work. I tried slowly removing myself off of coffee, nope, didn&#8217;t work. I eventually didn&#8217;t even like the taste of it anymore, but I needed it. I couldn&#8217;t believe it .. I was hooked on coffee. What the hell! How could I let this happen!? Almost amused at the fact that I was hooked I posted on Facebook about how I was hooked on coffee and wanted to get off but wasn&#8217;t sure how. I mentioned I liked Yerba Mate and was going to give it a try but it seemed that the tea packets didn’t pack enough punch to help me get past NOT drinking coffee. That&#8217;s when my old friend Mateo commented and said I needed to try the loose leaf tea instead.</p>
<p>After some conversation with Mateo about the loose leaf I was able to finally get my hands on some loose leaf Guayaki Yerba Mate as well as a Gourd (a gourd is a cup that is made from a Gourd plant and is used in traditional drinking of the mate). Mateo informed me that drinking the mate that was loose leaf allowed the mate to be brewed as strong as coffee. Using the gourd took some getting used to, but I enjoyed it. It was a different experience and I’m glad to have one. However, I’m a klutz and I work at the computer a good part of the day so I could possibly spill it over a few thousand dollars worth of equipment &#8211; not good. To combat this and still have the great effects of the loose leaf tea but to also be safe around my electronics I picked up a <a href="http://guayaki.com/product/241/Guayaki-French-Press-Travel-Mug.html">French Press Travel Mug</a>.  I can now bring Mate with me while I travel.<br />
I used the gourd for about two weeks and noticed a great improvement in my quality of life. The first major benefit I noticed was that I slept like a rock at night. Apparently yerba mate helps you sleep at night when you drink it during the day. Very cool. <img src='http://blog.donnfelker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The second was that I did not have any caffeine/coffee withdrawals &#8211; I had plenty of energy.  Third, I didn’t experience the jitters or crash that you can get with coffee or even black or green tea.  I also felt VERY CLEAN when I drank it. Sometimes coffee (even with rice milk or almond milk) still sat very heavy in my stomach at times (this was only my experience so your mileage may vary). I did not have the brown staining effects of coffee as well as nasty coffee breath. Finally, I was able to finally kick the coffee habit. The one super nice thing about this? I’m able to enjoy an occasional coffee again. I still love the smell and the occasional taste of it. So every couple of weeks or maybe once a month I’ll have a cup of coffee, iced coffee or something that has coffee in it, simply because I want to … not because I have to. I’ve been able to go days without drinking tea and not have cravings or withdrawls of the sort. Overall its been a great experience.</p>
<p>Tips on kicking the coffee habit with mate: I’ve tried a few brands of mate and the kind that worked best for me (and the kind I liked the best) was the Guayaki Yerba Mate. You can find it at health stores like Whole Foods and the like. Make sure you buy the loose leaf kind and make sure you have a tea infuser, coffee maker for French press. Quitting coffee is like quitting any other drug &#8211; you have to be emotionally invested in quitting. Spend a few bucks, get a good infuser (get used to the occasional leaf in your tea, it won&#8217;t kill you) and/or a gourd. Drink it early in the morning when you wake up or when you normally drink coffee (I know many folks who only drink coffee after lunch). Basically … replace it with your coffee routine. I now take a bag of mate with me when I travel and I bring my travel press. Hot water is usually easily found at a hotel and then you’re off to a good morning with some good tea.</p>
<p>Have fun and enjoy!<strong id="internal-source-marker_0.8207421256229281"><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2012/08/15/overcoming-coffee-yerba-mate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IKEA Standing Desk – Two Weeks Later</title>
		<link>http://blog.donnfelker.com/2012/07/23/ikea-standing-desk-two-weeks-later/</link>
		<comments>http://blog.donnfelker.com/2012/07/23/ikea-standing-desk-two-weeks-later/#comments</comments>
		<pubDate>Mon, 23 Jul 2012 18:13:26 +0000</pubDate>
		<dc:creator>Donn</dc:creator>
				<category><![CDATA[Startup]]></category>

		<guid isPermaLink="false">http://blog.donnfelker.com/?p=1138</guid>
		<description><![CDATA[I’ve been two weeks since I’ve started working at $22 my stand up desk (inspiration from here) and I thought I’d post an update. Overall, its been a good experience but I’ve found a few things interesting … I’m much more productive when I’m ready to work when I’m at the standing desk. For some [...]]]></description>
				<content:encoded><![CDATA[<p>I’ve been two weeks since I’ve started working at $22 <a href="https://twitter.com/donnfelker/status/222363878372294657">my stand up desk</a> (<a href="http://iamnotaprogrammer.com/Ikea-Standing-desk-for-22-dollars.html">inspiration from here</a>) and I thought I’d post an update. Overall, its been a good experience but I’ve found a few things interesting …</p>
<ul>
<li>I’m much more productive when I’m ready to work when I’m at the standing desk. For some reason standing makes me more productive.</li>
<li>My feet, back and shoulders were very sore for the first three to four days. I expected some additional soreness, but not like what I had experienced. I’m thinking of getting an anti-fatigue mat to help with this issue.</li>
<li>Everyone said I’d have more energy. I found this to be moot. I had the same energy, but I did feel better overall.</li>
<li>I noticed that I was more apt to go get water and do something when I was standing rather than when I was sitting. The act of standing up and then sitting down (over and over) has a mental weight associated with it that I did not know existed prior to having a stand up desk.</li>
<li>Some people say they don’t get tired standing up, but I found that I did. That doesnt mean I’m a lazy ass though. I usually have an hour + CrossFit style workout that I do during the day and after performing numerous 225lb deadlifts and 150 lb push presses and a ton of pullups for an hour, I’m tired. During that recuperation time, I sit at a regular desk I have and eat lunch. So I’m probably 7-8 hours standing and around 1 hour sitting day overall.</li>
<li>I found my overall attitude while working was better as compared to when I was sitting down. While sitting down I felt when someone spoke to me I was being interrupted. I didn’t feel that way when standing up.</li>
<li>The single <a href="http://www.ikea.com/us/en/catalog/products/20011413/#/40104270">LACK</a> desk was great to test the stand up desk theory but now that I’ve confirmed that I like it, I decided to get another <a href="http://www.ikea.com/us/en/catalog/products/20011413/#/40104270">LACK</a> desk to make the stand up area larger (so I can place my laptop on a stand and gain a second monitor at the same level).</li>
</ul>
<p>Overall, I’d recommend everyone try it. It’s cheap, simple and works well. Plus you’re more active throughout the day, by far.<strong id="internal-source-marker_0.30747764301486313"><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donnfelker.com/2012/07/23/ikea-standing-desk-two-weeks-later/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
