<?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>The Flying Developer &#187; rants</title>
	<atom:link href="http://theflyingdeveloper.com/category/rants/feed" rel="self" type="application/rss+xml" />
	<link>http://theflyingdeveloper.com</link>
	<description>The daring adventures of an aspiring software developer</description>
	<lastBuildDate>Mon, 30 Jan 2012 15:00:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Flying Developer Dislikes Pando Media Booster</title>
		<link>http://theflyingdeveloper.com/the-flying-developer-dislikes-pando-media-booster</link>
		<comments>http://theflyingdeveloper.com/the-flying-developer-dislikes-pando-media-booster#comments</comments>
		<pubDate>Mon, 14 Nov 2011 15:00:43 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[apb reloaded]]></category>
		<category><![CDATA[lol]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[pando]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=834</guid>
		<description><![CDATA[I&#8217;ve been playing League of Legends over the last month or so, and I rather like it. But that&#8217;s not what this post is about. A couple of days after I installed the game, I noticed something strange. My network &#8230; <a href="http://theflyingdeveloper.com/the-flying-developer-dislikes-pando-media-booster">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-839 alignleft" title="pando-logo" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/11/pando-logo.png" alt="" width="297" height="137" /></p>
<p>I&#8217;ve been playing <a href="http://leagueoflegends.com" target="_blank">League of Legends</a> over the last month or so, and I rather like it. But that&#8217;s not what this post is about.</p>
<p>A couple of days after I installed the game, I noticed something strange. My network monitor gadget was showing an ongoing upload of about 1Mbit. Whaa? I don&#8217;t remember telling anything to upload large amounts of data. Time to investigate!<span id="more-834"></span></p>
<p>Throwing open performance monitor, I saw a process called pmb.exe. Perfmon has a handy context menu feature that allows you to search the net for a process name, so I did that and found that the process was a program called <a href="http://www.pandonetworks.com/media-booster" target="_blank">Pando Media Booster</a>.</p>
<h3>This looks familiar&#8230;</h3>
<p>Seeing that name jogged my memory. I&#8217;d seen it before, pulling the same trick. That time I had been trying <a href="http://apbreloaded.gamersfirst.com/" target="_blank">APB: Reloaded</a>. I decided to hit up the Riot Games forums to see if pmb.exe was linked to LoL in any way. Turned out it was.</p>
<p>It seems that the trend amongst many free-to-play games (including LoL) is to supplement their direct download sources with peer-to-peer services for distributing the game client. This makes a lot of sense from a cost-saving perspective, and I&#8217;m all for it. Pando Media Booster is a tool that facilitates this.</p>
<h3>Malware at Best</h3>
<p>The trouble is, Pando seems consistently shady in the way it is installed and configured.  It&#8217;s usually auto-installed along with whatever game you&#8217;re installing. By default it&#8217;s set to run on start up and has no cap on the upload speed it uses. It doesn&#8217;t have a task tray icon so unless you&#8217;re paying attention you&#8217;ll have no idea it&#8217;s running. That sounds a lot like malware to me.</p>
<p>Fortunately uninstalling Pando is straightforward once you know it&#8217;s there and doesn&#8217;t cause programs that use it to break once it&#8217;s gone. But with bandwidth caps in place on most internet connections a program like this is basically spending your money for you without your knowledge. Pando (and to a lesser extent, Riot Games), I am disappointed in you. Knock it off please.</p>
<p><a href="http://cheezburger.com/View/4510849792"><img class="aligncenter size-full wp-image-842" title="knock it off" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/11/83458a6f-0df5-44e7-abbd-08058d61cd37.jpg" alt="" width="480" height="640" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-dislikes-pando-media-booster/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I Don&#8217;t Obfuscate My Email</title>
		<link>http://theflyingdeveloper.com/why-i-dont-obfuscate-my-email</link>
		<comments>http://theflyingdeveloper.com/why-i-dont-obfuscate-my-email#comments</comments>
		<pubDate>Mon, 22 Aug 2011 14:00:48 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=744</guid>
		<description><![CDATA[One of the longstanding &#8216;tricks&#8217; that I see around the web is people obfuscating their email addresses. A quick search reveals that A List Apart talked about it in 2002 and again in 2007, so it&#8217;s been around for a &#8230; <a href="http://theflyingdeveloper.com/why-i-dont-obfuscate-my-email">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.dafont.com/grunge-puddles.font"><img class="aligncenter size-full wp-image-746" title="obfuscated email" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/08/Screen-shot-2011-08-14-at-1.23.38-.png" alt="" width="468" height="72" /></a></p>
<p>One of the longstanding &#8216;tricks&#8217; that I see around the web is people obfuscating their email addresses. A quick search reveals that A List Apart talked about it in <a href="http://www.alistapart.com/articles/spam/" target="_blank">2002</a> and again in <a href="http://www.alistapart.com/articles/gracefulemailobfuscation/" target="_blank">2007</a>, so it&#8217;s been around for a hell of a long time in internet terms. We still do it on the Shopify App Store when displaying developer emails. I&#8217;m not usually one to question security decisions but seriously, why the hell are we still doing this?</p>
<h2>Spam is a solved problem</h2>
<p>I can&#8217;t remember the last time I got a piece of spam in my inbox. There&#8217;s a pile of spam in my spam folder, but who cares? Since 2004 when I got Gmail spam has been a non-issue for me. Even if every spammer on the globe got my email I think that my filter could probably handle it.</p>
<h2>It&#8217;s fucking annoying</h2>
<p>Every time I see davefp (at) gmail (dot) com, I cringe. Who wants to go around removing/replacing additional crap that has been added to an address to make it more &#8216;secure&#8217;? If anything, I&#8217;m less likely to want to email you if you write your email like that.</p>
<h2>It doesn&#8217;t work</h2>
<p>I hate email obfuscation for the same reason I dislike DRM: It only harms those <em>without</em> malicicious intent. The example above can be defeated with a single regular expression and about 30 seconds of editing my crawling script. Meanwhile, every single human beings that has legitimate reasons to be emailing me still has to decode my address.</p>
<p>So please, I beg of you: stop obfuscating your email address on Twitter, Facebook, Google+ , or wherever else you might be posting it. You&#8217;re not protecting yourself, you&#8217;re just pissing off the rest of the internet.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/why-i-dont-obfuscate-my-email/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Productive or Responsive: Pick One</title>
		<link>http://theflyingdeveloper.com/productive-or-responsive-pick-one</link>
		<comments>http://theflyingdeveloper.com/productive-or-responsive-pick-one#comments</comments>
		<pubDate>Mon, 08 Aug 2011 14:00:23 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=719</guid>
		<description><![CDATA[When people ask me what I do at my job, I often have a hard time explaining. &#8216;Developer Advocate&#8217; isn&#8217;t exactly specific in the same way that &#8216;Software Engineer&#8217;, &#8216;Visual Designer&#8217; or &#8216;Phone Support&#8217; is. Truth be told, I&#8217;m not &#8230; <a href="http://theflyingdeveloper.com/productive-or-responsive-pick-one">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When people ask me what I do at my job, I often have a hard time explaining. &#8216;Developer Advocate&#8217; isn&#8217;t exactly specific in the same way that &#8216;Software Engineer&#8217;, &#8216;Visual Designer&#8217; or &#8216;Phone Support&#8217; is. Truth be told, I&#8217;m not 100% sure what the true scope of my job is: It changes daily. I do app reviews, tech support, community management, and write blog posts. Sometimes I even write code.</p>
<h2>Responsive</h2>
<p>A lot of my time is spent reading, researching, and responding to emails that I get from merchants and developers. People tend to get annoyed when you don&#8217;t respond to them, so I feel a certain responsibility to reply as soon as I can. Unfortunately this is often a black hole and if I&#8217;m not careful I can spend whole days doing it which would be great, except that support is only one of my many responsibilities.</p>
<h2>Productive</h2>
<p>Another thing I sink time into is development. Right now I&#8217;m working on a tool for feeding merchant ideas to developers, and it&#8217;s a lot of fun. I really enjoy sitting down, getting stuck into the code and finishing the day with a new feature. Unfortunately when I do this my inbox inevitably fills up and I feel guilty about not tending to it.</p>
<h2>Pick One</h2>
<p>So that&#8217;s my dilemma: At any one time I can either be on top of my emails (responsive) or get ahead on my development (productive). Right now my strategy is to tackle my email in the morning, then switch to development after lunch regardless of whether I&#8217;m  &#8216;done&#8217; or not (I&#8217;m beginning to suspect you can never be &#8216;done&#8217; with email). This leaves me with a sense of accomplishment at the end of the day which I quite enjoy, but does result in a mountain of mail in the morning which is somewhat less fun.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/productive-or-responsive-pick-one/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Flying Developer Gets Some Dodgy Solicitation</title>
		<link>http://theflyingdeveloper.com/705</link>
		<comments>http://theflyingdeveloper.com/705#comments</comments>
		<pubDate>Mon, 01 Aug 2011 14:00:03 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[domains]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=705</guid>
		<description><![CDATA[The other day I got a letter from the &#8216;Domain Registry of Canada&#8217;, telling me that one of my domains was expiring soon, along with a handy renewal form for me to fill out. There are several problems with this. &#8230; <a href="http://theflyingdeveloper.com/705">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The other day I got a letter from the &#8216;Domain Registry of Canada&#8217;, telling me that one of my domains was expiring soon, along with a handy renewal form for me to fill out.</p>
<p>There are several problems with this.</p>
<p>First and foremost, I&#8217;m not a customer of the &#8216;Domain Registry of Canada&#8217;. Despite appearances, they&#8217;re not an official body either. What they&#8217;ve done is scraped my info from the whois data and generated this solicitation letter. Once you take the time to actually read the thing this becomes apparent, but I have a huge problem with the fact that they&#8217;ve dressed it up as an official document. I&#8217;ve uploaded a copy below so you can see for yourself.</p>
<p>Oh, and their prices SUCK.</p>
<p><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/07/001.jpg"><img class="aligncenter size-large wp-image-707" title="Domain Solicitation Letter" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/07/001-743x1024.jpg" alt="" width="584" height="804" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/705/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How To Write an Android App That I&#8217;ll Use</title>
		<link>http://theflyingdeveloper.com/how-to-write-an-android-app-that-ill-use</link>
		<comments>http://theflyingdeveloper.com/how-to-write-an-android-app-that-ill-use#comments</comments>
		<pubDate>Mon, 13 Jun 2011 14:00:46 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=573</guid>
		<description><![CDATA[Last week, Mark Jaquith posted an article entitled &#8216;How to write a WordPress plugin that I’ll use&#8216;. It occurred to me that a similar document about Android apps would be a useful and fun thing to write. A lot of his &#8230; <a href="http://theflyingdeveloper.com/how-to-write-an-android-app-that-ill-use">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p id="post-634">Last week, <a href="http://markjaquith.com/">Mark Jaquith</a> posted an article entitled &#8216;<a href="http://markjaquith.wordpress.com/2011/06/07/how-to-write-a-plugin-that-ill-use/" target="_blank">How to write a WordPress plugin that I’ll use</a>&#8216;. It occurred to me that a similar document about Android apps would be a useful and fun thing to write. A lot of his points carry over, but there are some Android-specific points that I’d like to expand upon.</p>
<h2>Use shared functionality, use shared data</h2>
<p>One of my favourite things about Android is the ability to re-use functionality from other apps. Some of these are no-brainers: If you need the user to select a picture, use ACTION_PICK. Email? Use ACTION_SEND. This extends beyond the standard system intents. <a href="http://www.openintents.org" target="_blank">OpenIntents</a> has a whole <a href="http://www.openintents.org/en/intentstable" target="_blank">slew of intents</a> that you can use to accomplish any number of tasks. Before you write a given feature into your app, go there and see if someone has already done it. You&#8217;ll save time, effort, and won&#8217;t have to maintain the extra code. As a concrete example, Omnivore uses Zebra Crossing&#8217;s barcode scanning intent to read barcodes.</p>
<h2>Share your functionality, share your data</h2>
<p>My first point wouldn&#8217;t be possible if developers didn&#8217;t make their features available for reuse in the first place. You should do this. Take a look to see if your app performs a function that has an existing intent and if there isn&#8217;t one, create it yourself. Omnivore doesn&#8217;t do this yet, but eventually I want other apps to be able to access the food list for other purposes (e.g. creating shopping lists, finding recipes).</p>
<h2>Don&#8217;t ask for unnecessary permissions</h2>
<p>I was once in the market for a chess clock app. The most popular one at the time asked for both internet and location permissions. Sorry, what? How are either of those going to improve the application for me, the user. Advertising doesn&#8217;t count as a valid reason for including a permission by the way. I&#8217;m fine with apps that make calls to ad-servers on the back of legitimate internet access, but including permissions for the sole purpose of showing ads isn&#8217;t on.</p>
<h2>Use Android UI/UX conventions</h2>
<p>When I press the menu button in an app and nothing happens, I get sad. Similarly, whenever I see an iPhone-esque back button in the top left I shake my head in disappointment. Users (myself included) expect certain things to function certain ways. Imagine installing a desktop app that didn&#8217;t use the default keyboard shortcuts for copy/paste, undo/redo or save/load. Everything still works, but it feels out of place and wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/how-to-write-an-android-app-that-ill-use/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adventures in Mac-Land: My New MBP</title>
		<link>http://theflyingdeveloper.com/better-the-devil-you-know-my-new-mbp</link>
		<comments>http://theflyingdeveloper.com/better-the-devil-you-know-my-new-mbp#comments</comments>
		<pubDate>Mon, 16 May 2011 14:00:37 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[macbook pro]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[shopify]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=530</guid>
		<description><![CDATA[For my new job I was given a brand new Macbook Pro. This caused both joy and trepidation. I&#8217;m always excited by new tech toys, but the last time I used a Mac was in secondary school when the iMac &#8230; <a href="http://theflyingdeveloper.com/better-the-devil-you-know-my-new-mbp">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For my new job I was given a brand new Macbook Pro. This caused both joy and trepidation. I&#8217;m always excited by new tech toys, but the last time I used a Mac was in secondary school when the iMac looked like a giant piece of neon fruit. Since then I&#8217;ve been primarily Windows-based with occasional Linux use. So how have I been dealing with this new environment?</p>
<h2><span id="more-530"></span></h2>
<h2>Strangely Impotent</h2>
<p>My first experiences with the MBP were rather negative. Coming into OSX without any sort of primer was a jarring experience. How do I install apps? What&#8217;s this &#8216;dock&#8217; thing? Why don&#8217;t the Home and End buttons work? The feeling was quite strange. Here was a computer, something that I&#8217;ve been building my life and career around for years, that I&#8217;m struggling to do even the basics with. If I may use a comic-book analogy, I felt like a Superhero losing his powers. All the pieces were there, but whereas I would usually be able to assemble them into a powerful tool, for some reason they weren&#8217;t fitting together like they used to.</p>
<h2>Familiar Underpinnings</h2>
<p>A few years ago I fancied myself as a sysadmin, so I cobbled together some old PC components and made myself a home server running Ubuntu. I didn&#8217;t have a spare monitor, so after the initial setup it lived completely headless. For a number of months I did everything via the command line, and quite enjoyed it. I installed Apache, got WordPress and Mediawiki set up, and then delved into getting temperature stats from the internal sensors. It was fun for a while but eventually I got bored with the endless little tweaks I had to make to get everything running <em>just so</em>. I abandoned Linux and went back to the comfort and familiarity of Windows. That said, I missed the level of control that bash gave me. Cue the MBP. All of a sudden, even though most things were alien, I found myself in familiar surroundings once I opened up the terminal. The environment I missed from Linux, the power of a decent shell, it was all there. There was hope.</p>
<h2>Starting From Scratch</h2>
<p>I realized that if I wanted to take command of my new system, if I wanted to turn it from an uncooperative servant into a powerful companion, I was going to need some help. I had done the same thing on Windows over the years. Over time, I&#8217;d build up a library of tweaks, tools and hacks that allowed me to use the system the way I wanted to, not the other way round. The same needed to happen here. I didn&#8217;t have the time to organically build this arsenal, but fortunately my co-workers had already done a lot of the legwork for me.</p>
<p>First to go was Safari, replaced by my old friend Firefox and its extensive suite of familiar plugins. Firefox doesn&#8217;t have the best of reputations on Mac, but so far I&#8217;ve found that the current version performs just as well as it ever did on Windows.</p>
<p>Next I needed a better text editor. On Windows I&#8217;ve always used <a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a> but I&#8217;d heard that the standard on Mac was <a href="http://macromates.com/" target="_blank">TextMate</a> so I gave it a try and was impressed. The lightweight &#8216;project&#8217; model is really useful, and like NP++ it has an extensive set of extensions available for further customization.</p>
<p>Thanks to the cross-platform <a href="http://www.adobe.com/products/air/" target="_blank">AIR</a> runtime, I was able to stick with my twitter client of choice: <a href="http://www.tweetdeck.com/" target="_blank">TweetDeck</a>. As I&#8217;m partly responsible for the @<a href="http://twitter.com/#!/shopifyapi" target="_blank">ShopifyAPI</a> account now, the multi-user, multi-column features are invaluable.</p>
<p>I also installed a few other tools recommended to me: <a href="http://www.alfredapp.com/" target="_blank">Alfred</a> to replace Spotlight, <a href="http://smilesoftware.com/TextExpander/" target="_blank">Text Expander</a> to handle email signatures/templates and other commonly used text snippets, <a href="http://mizage.com/divvy/" target="_blank">Divvy</a> for window management, <a href="http://www.evernote.com/" target="_blank">Evernote</a>, and <a href="http://visor.binaryage.com/" target="_blank">Visor</a> for the terminal.</p>
<h2>Still a Long Way to Go</h2>
<p>I&#8217;m feeling more comfortable with my new environment now that I&#8217;ve customized it a bit. That said, I&#8217;m definitely not there yet. I&#8217;m too reliant on the mouse right now which is going to slow me down until I get comfortable with the various &#8216;standard&#8217; keyboard shortcuts. I might switch out a couple of my new tools for alternatives before I&#8217;m 100% happy and the OS itself still feels slightly strange but I&#8217;m getting more adept daily. The most useful tool I&#8217;ve found so far though has to be my co-workers who have been using the platform for years and who are always happy to answer my stupid questions about really basic things. They&#8217;re awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/better-the-devil-you-know-my-new-mbp/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Against the Android Action-Bar</title>
		<link>http://theflyingdeveloper.com/against-the-android-action-bar</link>
		<comments>http://theflyingdeveloper.com/against-the-android-action-bar#comments</comments>
		<pubDate>Sun, 06 Feb 2011 21:37:42 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[action-bar]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[ui design]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=372</guid>
		<description><![CDATA[I&#8217;ve noticed some interesting UI design patterns emerging in the Android app ecosystem of late1. It&#8217;s great to see apps evolving to make the best of the mobile platform, but there&#8217;s one that irks me. It&#8217;s the &#8216;Action-Bar&#8217; pattern. A &#8230; <a href="http://theflyingdeveloper.com/against-the-android-action-bar">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/02/action-bars.jpg"><img class="alignleft size-medium wp-image-377" title="Action-Bars" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/02/action-bars-300x125.jpg" alt="" width="300" height="125" /></a>I&#8217;ve noticed some interesting UI design patterns emerging in the Android app ecosystem of late<sup class='footnote'><a href='#fn-372-1' id='fnref-372-1'>1</a></sup>. It&#8217;s great to see apps evolving to make the best of the mobile platform, but there&#8217;s one that irks me. It&#8217;s the &#8216;Action-Bar&#8217; pattern.</p>
<p>A lot of apps on the Android Market seem to be going for this design pattern. Not just small one-man operations, either. <a href="https://market.android.com/details?id=com.twitter.android">Twitter</a>, <a href="https://market.android.com/details?id=com.aldiko.android">Aldiko</a>, and even Google&#8217;s own <a href="http://code.google.com/p/iosched/">IO Conference schedule app</a> all use it. The trouble is, it sucks.</p>
<h3>Not So Handy</h3>
<p>My dislike for the action-bar stems from the button placement. All the apps mentioned above have the buttons in the action bar on the right (except the Aldiko home button, but that seems to be the exception rather than the rule). This places them next to your thumb, which is really convenient <em>provided you&#8217;re holding the device in your right hand</em>.</p>
<p>I hold my phone with my left hand most of the time. When I&#8217;m out and about I keep it in my left-hand trouser pocket so naturally when I take it out it ends up in my left hand. Unfortunately for people who do this, the action-bar buttons are in the farthest corner of the screen requiring them to reach across in order to press them. If you have an app that does this, try holding the phone in either hand and try it out to see what I mean.</p>
<h3>On The Other Hand</h3>
<p><img class="alignleft size-full wp-image-375" title="Action-Bar Positioning" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2011/02/screens.png" alt="" width="308" height="951" />So what&#8217;s to be done? My first thought was to move the action-bar to the bottom of the screen. This makes it easier to press the buttons with my left hand, but is terribly cramped when using the right. It basically suffers from the opposite problem as the original.</p>
<p>How about moving the buttons over to the left? Same problem as before, but reversed. I have no idea what the breakdown is between left and right-handedness is when holding a smartphone but either way you end up annoying a large group of people<sup class='footnote'><a href='#fn-372-2' id='fnref-372-2'>2</a></sup>.</p>
<p>Rather than call for the action-bar pattern to be ditched altogether what I&#8217;d like to see is app developers taking better care of the needs of their users. A simple check-box in the settings that causes the buttons to be displayed on the left or right accordingly would be great. It&#8217;s really easy to do, and would make many apps easier to use for a lot of people.</p>
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-372-1'>They&#8217;re probably present in iOS, BB and others too but I don&#8217;t use either of those platforms so I can&#8217;t comment on them. Feel free to substitute your favourite smartphone platform if you like. <span class='footnotereverse'><a href='#fnref-372-1'>&#8617;</a></span></li>
<li id='fn-372-2'>For the record, I&#8217;m right handed. I just hold my phone in my left. <span class='footnotereverse'><a href='#fnref-372-2'>&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/against-the-android-action-bar/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Docs Is My Permanent Shopping List</title>
		<link>http://theflyingdeveloper.com/google-docs-is-my-permanent-shopping-list</link>
		<comments>http://theflyingdeveloper.com/google-docs-is-my-permanent-shopping-list#comments</comments>
		<pubDate>Tue, 28 Sep 2010 17:41:20 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google docs]]></category>
		<category><![CDATA[life hacks]]></category>
		<category><![CDATA[shopping]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=338</guid>
		<description><![CDATA[My last &#8216;real&#8217; post was about how I was trying to [intlink id="307" type="post"]reduce the amount of food I was throwing away[/intlink]. This seems to be going well, I have definitely not thrown out as much food since we started &#8230; <a href="http://theflyingdeveloper.com/google-docs-is-my-permanent-shopping-list">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/09/Recipes-Google-Docs_1285694620709.png"><img class="size-full wp-image-343   aligncenter" title="Recipes - Google Docs" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/09/Recipes-Google-Docs_1285694620709.png" alt="Recipes Document Screendshot" width="580" height="200" /></a>My last &#8216;real&#8217; post was about how I was trying to [intlink id="307" type="post"]reduce the amount of food I was throwing away[/intlink]. This seems to be going well, I have definitely not thrown out as much food since we started keeping track of best-by dates. Success!</p>
<p>Since starting to use the food calendar I&#8217;ve come up with another useful method of helping organize our eating-related expenses. Neither my wife nor I own a car, so going on large grocery runs is impractical since we have to carry everything home. This often leads to us running out of food and having to eat out a lot, especially for lunch during the week. $10 for one meal five times a week each gets expensive quickly. Fortunately I work right next to a large supermarket. On an ideal day, I&#8217;ll remember to look up a recipe before I leave for work, buy all the ingredients on the way home and use the leftovers from that night&#8217;s meal as lunch for the next day. Most of the time though, I&#8217;m too out-of-it in the morning and forget. This has led to several incomplete recipes or just total abandonment of a meal when I get the wrong things. Not so good.<span id="more-338"></span>One recent development in this area was that I realized that if I timed it right I could call my wife once she got off work and ask her to email me a shopping list of all the things I needed so that I could print it out before I left the office. Partial success, but annoying to do repeatedly. Thinking about how useful our food calender had been, I created a Google Doc and shared it with her. Each time we find a new recipe that we like, we add the ingredients to the document.</p>
<p>As a result we now I have a permanent list of different meals that I can choose from whenever I need to go shopping. Although you can&#8217;t edit a document from the mobile view, Google Docs renders really well on my phone so I save some time and resources by avoiding printing things out every time. Because a lot of our favourite recipes come from magazines or cookbooks, I&#8217;ve also added a &#8216;Source&#8217; line above each list so that I can find the instructions when I actually come to cook everything.</p>
<div id="attachment_347" class="wp-caption alignright" style="width: 310px"><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/09/tumblr_l8nxr5LQ091qzycz4o1_500.jpg"><img class="size-medium wp-image-347 " title="Curry" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/09/tumblr_l8nxr5LQ091qzycz4o1_500-300x199.jpg" alt="curry leftovers" width="300" height="199" /></a><p class="wp-caption-text">The fruits of my labour: Curry!</p></div>
<p>So far this is working out really well. The best thing for me about using Google Docs and Calendar is that I don&#8217;t have to sign up for specialized service that I have to log into. In addition, I&#8217;m not tied to any platform. If my wife is the one doing the shopping on a given day, she can access the info on her iPhone just as  easily as I can on my Android-powered device. I can also add new recipes to the list from my desktop, something you wouldn&#8217;t be able to do with a native app.</p>
<p>All in all I&#8217;m really pleased with how these little ideas have panned out. If you have any food-related technology tricks that you use to make day-to-day life a little easier, please leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/google-docs-is-my-permanent-shopping-list/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Flying Developer Hates Mouldy Food</title>
		<link>http://theflyingdeveloper.com/the-flying-developer-hates-mouldy-food</link>
		<comments>http://theflyingdeveloper.com/the-flying-developer-hates-mouldy-food#comments</comments>
		<pubDate>Thu, 08 Jul 2010 17:12:02 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[google calendar]]></category>
		<category><![CDATA[life hacks]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=307</guid>
		<description><![CDATA[There is a problem in our household. My wife and I have a terrible time keeping track of what&#8217;s in our fridge and more importantly, when it will go off. On many occasions we have bought meat, fresh veg or &#8230; <a href="http://theflyingdeveloper.com/the-flying-developer-hates-mouldy-food">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/07/Google-Calendar_1278604911503.png"><img class="alignleft size-full wp-image-314" title="Food Calendar" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/07/Google-Calendar_1278604911503.png" alt="food in a Google calendar" width="580" height="200" /></a>There is a problem in our household. My wife and I have a terrible time keeping track of what&#8217;s in our fridge and more importantly, when it will go off. On many occasions we have bought meat, fresh veg or bread with the intention of eating it &#8216;soon&#8217; only to find it has passed its best-before date by the time we want to eat it. It&#8217;s frustrating, depressing, costly and results in more meals at McDonalds than I&#8217;d care to mention. Clearly a better solution is needed.<span id="more-307"></span></p>
<p>My first thought (as a developer) was &#8220;I&#8217;ll write an app for it!&#8221;. My second thought, following close behind, was &#8220;Someone must have already written an app for that!&#8221;. Along these lines, I did a quick search of the android market and the iTunes app store (for my wife&#8217;s iPhone). Indeed, there are apps out there that let you track expiry dates on food. However, there were generally two problems with them.</p>
<ol>
<li>They cost money</li>
<li>They were for single users only</li>
</ol>
<p>The first point is self-explanatory, so I&#8217;ll expand on the second. One of the big problems in our apartment is when one of us buys food but forgets to tell the other what they got. This inevitably leads to us finding mouldy food that we didn&#8217;t know was there in the first place. Any solution to the problem must therefore allow multiple users to enter data separately.</p>
<p>This is when I had my third thought, which went as follows: &#8220;I don&#8217;t need an app for this at all!&#8221;. I realized that all the functionality I needed was already available to me through Google Calendar <sup class='footnote'><a href='#fn-307-1' id='fnref-307-1'>1</a></sup>. Want to know when food will expire? Create an all-day event for it. Want to be notified when food is about to go off? Set an email or pop-up notification. Sharing is also trivial: As long as the events are in their own calendar, the whole thing can be shared with as many people as you need.</p>
<p>The idea is that I will be able to add items to the calendar using my phone as I put them in my basket at the store. That way I don&#8217;t have to assign any extra time to data entry than strictly necessary.</p>
<p>The proof is in the pudding (pun definitely intended) however, and I&#8217;ve yet to see how this new endeavor pans out. My hope is that it will help us reduce food waste and save us money at the same time. I certainly think that the idea is sound, the main point of failure (if any) will be me forgetting to add things to the calendar. I&#8217;ll have to see how it goes.</p>
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-307-1'>Ok, so technically GCal <em>is</em> an app, but it&#8217;s way more generic  than what I was originally thinking of. Plus I already use it, so I  don&#8217;t have to add yet another icon to my desktop or bookmark to my  browser. Also, I expect you could substitute GCal for any major calendar  software. <span class='footnotereverse'><a href='#fnref-307-1'>&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-hates-mouldy-food/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Flying Developer Is Not A Designer</title>
		<link>http://theflyingdeveloper.com/the-flying-developer-is-not-a-designer</link>
		<comments>http://theflyingdeveloper.com/the-flying-developer-is-not-a-designer#comments</comments>
		<pubDate>Sun, 04 Apr 2010 15:08:42 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[code reuse]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=228</guid>
		<description><![CDATA[Anyone who follows this blog will notice that I&#8217;ve changed the theme recently. This was done because I finally admitted to myself that I&#8217;m not a particularly good web designer. Whilst I understand HTML, CSS and javascript I lack the &#8230; <a href="http://theflyingdeveloper.com/the-flying-developer-is-not-a-designer">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Anyone who follows this blog will notice that I&#8217;ve changed the theme recently. This was done because I finally admitted to myself that I&#8217;m not a particularly good web designer. Whilst I understand HTML, CSS and javascript I lack the design skills to weave them together into something that looks really good. That&#8217;s ok. In matters of design I&#8217;m prepared to defer to those who have had proper training and experience.</p>
<p>Instead, I&#8217;m now using a free wordpress theme called <a href="http://wordpress.org/extend/themes/lightword">LightWord</a>. The design is far superior to my previous attempt, if somewhat generic. However, I can now tweak this theme to my own needs without worrying too much about all the little details that I would miss if starting from scratch. This approach appeals to me because it&#8217;s an example of one of the central pillars of good programming: Code reuse. There are literally thousands of existing themes out there, so starting from scratch would mean repeating the work of many, many people. Seeing as I don&#8217;t plan on making design work part of my professional portfolio any time soon, I&#8217;m perfectly happy to borrow existing works (within the terms of their license) and bend them to suit my needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-is-not-a-designer/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

