<?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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Flying Developer</title>
	
	<link>http://theflyingdeveloper.com</link>
	<description>A software development blog</description>
	<lastBuildDate>Tue, 31 Aug 2010 19:58:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/theflyingdeveloper" /><feedburner:info uri="theflyingdeveloper" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Starbucks Geeks</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/DWIfrPc6DPs/starbucks-geeks</link>
		<comments>http://theflyingdeveloper.com/starbucks-geeks#comments</comments>
		<pubDate>Tue, 31 Aug 2010 19:58:45 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[admiral ackbar]]></category>
		<category><![CDATA[legend of zelda]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[starbucks]]></category>
		<category><![CDATA[starcraft 2]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=331</guid>
		<description><![CDATA[I love seeing little pieces of geek culture showing up in day-to-day places. This isn&#8217;t related to anything in particular, but here are a couple of great signs that I saw at Starbucks stores recently: I saw the Link/Starcraft 2 &#8230; <a href="http://theflyingdeveloper.com/starbucks-geeks">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I love seeing little pieces of geek culture showing up in day-to-day places.</p>
<p>This isn&#8217;t related to anything in particular, but here are a couple of great signs that I saw at Starbucks stores recently:
<a href='http://theflyingdeveloper.com/starbucks-geeks/imag0287' title='starcraft link coffee'><img width="150" height="150" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/08/IMAG0287-150x150.jpg" class="attachment-thumbnail" alt="It&#039;s about time!" title="starcraft link coffee" /></a>
<a href='http://theflyingdeveloper.com/starbucks-geeks/imag0290' title='ackbar coffee'><img width="150" height="150" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/08/IMAG0290-150x150.jpg" class="attachment-thumbnail" alt="It&#039;s a Frap!" title="ackbar coffee" /></a>
</p>
<p>I saw the Link/Starcraft 2 one a few weeks ago in Little Italy, and the  Admiral Ackbar sandwich board was spotted today at South Keys. They both  made me smile, so I thought I&#8217;d share them.</p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/DWIfrPc6DPs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/starbucks-geeks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/starbucks-geeks</feedburner:origLink></item>
		<item>
		<title>The Flying Developer Hates Mouldy Food</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/PofzC4lXWp0/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.
<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>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/PofzC4lXWp0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-hates-mouldy-food/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/the-flying-developer-hates-mouldy-food</feedburner:origLink></item>
		<item>
		<title>OCRI: Final Spring 2010 Update</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/aas_2CcixVE/ocri-final-spring-2010-update</link>
		<comments>http://theflyingdeveloper.com/ocri-final-spring-2010-update#comments</comments>
		<pubDate>Sat, 05 Jun 2010 15:32:26 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OCRI]]></category>
		<category><![CDATA[olpc]]></category>
		<category><![CDATA[xo]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=287</guid>
		<description><![CDATA[This week marked the last session that I spent volunteering my time at a high school as a programming mentor for the current school term. Here are some of my thoughts about the experience. Over the last 2 months I&#8217;ve &#8230; <a href="http://theflyingdeveloper.com/ocri-final-spring-2010-update">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week marked the last session that I spent volunteering my time at a high school as a programming mentor for the current school term. Here are some of my thoughts about the experience.<span id="more-287"></span></p>
<p>Over the last 2 months I&#8217;ve been continually surprised by the ideas that the students have come up with. As I wrote in a previous post, the 5 groups that I mentored all came up with very different game ideas for their projects. I was really pleased that all of them were interested and committed to the class and that I didn&#8217;t see any of them get bored or lose interest. What was even more impressive was the degree to which they actually finished the game ideas they presented to us. My main worry was that they would bite off more than they could chew and end up with some half-finished product that didn&#8217;t run, or just stopped part way through the game because that was how far they&#8217;d gotten. We tried from the outset to impress upon them how important having something that worked was and how they could implement their gameplay in increments. Judging by the state of the projects that I saw on Tuesday, this advice seems to have paid off.</p>
<p>The teacher whose class we were attached to had some great feedback on the project as a whole, but first some background: The project is not just about people like myself going into classrooms and helping out with the students. There are also several off-site days organised for them where they get bussed out to the IBM offices in Kanata and get to do things like take laptops apart, have an introduction to a development environment and more.</p>
<p>However, the thing our teacher said was that none of the off-site trips were really important to him and his class. For starters, they took time away from other classes and therefore made the whole scheme <em>less </em>attractive.</p>
<p>The XO laptops weren&#8217;t the main draw either: Sure they&#8217;re excellent machines and there are educational aspects involved in learning about the target market. OLPC is a great project. But in the classroom, from a programming perspective, it was sometimes a hindrance. The testing cycle was always longer as code had to be copied across to the laptop every time a change was made. We didn&#8217;t have as many XOs as project groups, so we had to share and give limited time to each group. Furthermore, there were issues with performance. As anyone who has ever done any embedded development will tell you, optimizing code to run on a target device is a huge consideration. For grade 12 students who are just learning programming, worrying about how many times you can redraw the game background before the performance suffers (for instance) is not high on their list of priorities. Nor should it.</p>
<p>The most important aspect of the whole OCRI program for our teacher was us. The mentors. His opinion was that even if there had been no off-site visits or XO laptops then he would still have wanted us to come in and talk to the students and help them out. That was what made the difference, and it meant that the students didn&#8217;t get bored, or lose interest.</p>
<p>OCRI is currently looking at what form the program should take next  year, and I&#8217;d like to be involved in it whatever form it takes. That said, I will also talk to them about the pluses and minuses of the current scheme and see if we can&#8217;t improve it for the next batch of students.</p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/aas_2CcixVE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/ocri-final-spring-2010-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/ocri-final-spring-2010-update</feedburner:origLink></item>
		<item>
		<title>New Project: Inflatable Apps</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/lOFOgKLF07o/new-project-inflatable-apps</link>
		<comments>http://theflyingdeveloper.com/new-project-inflatable-apps#comments</comments>
		<pubDate>Sat, 15 May 2010 01:52:08 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=279</guid>
		<description><![CDATA[A few weeks back I linked to an interview that I did about an Android app that I have been working on. Well, the app is just a part of a larger project that I&#8217;ve been thinking about for a &#8230; <a href="http://theflyingdeveloper.com/new-project-inflatable-apps">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/05/inflatableicon.png"><img class="alignleft size-full wp-image-282" title="inflatableicon" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/05/inflatableicon.png" alt="Inflatable Apps" width="160" height="160" /></a>A few weeks back <a href="http://theflyingdeveloper.com/the-flying-developer-gets-interviewed">I linked to an interview</a> that I did about an Android app that I have been working on. Well, the app is just a part of a larger project that I&#8217;ve been thinking about for a while. I call it <a href="http://inflatableapps.com">Inflatable Apps</a>.<span id="more-279"></span></p>
<p>Inflatable Apps is an umbrella title that I created to allow me to brand my android apps starting with <a href="http://inflatableapps.com/apps/tumtum/">TumTum</a>, the app from the interview. Any and all apps for the android platform that I create will be released under the Inflatable Apps name.</p>
<p>There&#8217;s more to it than that though. Aside from myself, I know a number of people who are interested in android development. Behind the scenes, I want Inflatable Apps to offer a collaborative and friendly environment for developers that I know to work in and ultimately publish their completed apps under. I&#8217;m hoping that by doing this our apps will reach more people and gain a reputation for quality.</p>
<p>The Inflatable Apps website is now live at <a href="http://inflatableapps.com">http://inflatableapps.com</a>. The developer community is currently at an embryonic stage, but now that the site is up there is extra incentive for others to get involved. I also have my own ideas for new apps, so if nothing else those will be going up soon.</p>
<p>I&#8217;m excited about the potential Inflatable Apps has to produce excellent mobile applications for the android platform. Please check the site out, and let me know what you think!</p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/lOFOgKLF07o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/new-project-inflatable-apps/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/new-project-inflatable-apps</feedburner:origLink></item>
		<item>
		<title>Student Projects Get Underway at OCRI</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/hXi_Px4hVkk/student-projects-get-underway-at-ocri</link>
		<comments>http://theflyingdeveloper.com/student-projects-get-underway-at-ocri#comments</comments>
		<pubDate>Wed, 05 May 2010 01:51:42 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OCRI]]></category>
		<category><![CDATA[realbasic]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=273</guid>
		<description><![CDATA[Today Dan and I ventured forth again into our adopted high-school to see how the students were getting on with their projects. Last week they had all presented their game ideas in front of ourselves, the rest of the class &#8230; <a href="http://theflyingdeveloper.com/student-projects-get-underway-at-ocri">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today <a href="http://dan-menard.com">Dan</a> and I ventured forth again into our adopted high-school to see how the students were getting on with their projects. Last week they had all presented their game ideas in front of ourselves, the rest of the class and a representative from OCRI. A week later, I was interested to see if they still had the enthusiasm they&#8217;d shown in the presentations.<span id="more-273"></span>This session was interesting because it was the first time I&#8217;d seen any of the students do any actual programming. So far all the sessions have been &#8216;lead up&#8217;, allowing us to explain the goals of the project and the specifics of the hardware they&#8217;d be developing for (<a href="http://laptop.org">OLPC&#8217;s XO laptop</a>). This week we finally got started on the project proper and it&#8217;s this part that I&#8217;m really interested in.</p>
<p>I was pleasantly surprised that all of the groups had started out in different ways. The first pair that we spoke to had jumped right into their astronomy-based game and wanted to know how to make a sprite move in a circle. This required a brief maths lesson from the teacher as he explained the equations for finding the x and y co-ordinates of an orbiting object based on the distance from the center of rotation  (the Sun in this case) and the angle the object was at.</p>
<p>One of the other teams had started straight out with designing their interface in photoshop. It was therefore the prettiest (albeit least functional for the time being) of the games at this early stage. Fortunately,because REAL Basic is a visual editor, there&#8217;s no harm in throwing design elements at the canvas first and then hooking up the logic later.</p>
<p>Another group hadn&#8217;t done any coding at all. They had decided to theme their game around the environment, concentrating on endangered species. Rather than tack this element onto the end of their game production they had instead decided to do the research required up front and when I saw them they were busy looking species of exotic birds on Wikipedia.</p>
<p>There are other groups in our class, but these three were the ones that I spent the most time with today. The range of different approaches to the project is interesting as since university I&#8217;ve not been part of a project from the get-go besides my own personal one-man efforts. I think all of the student teams have made a good start and I&#8217;m looking forward to heading back next week and seeing how they&#8217;re progressing.</p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/hXi_Px4hVkk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/student-projects-get-underway-at-ocri/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/student-projects-get-underway-at-ocri</feedburner:origLink></item>
		<item>
		<title>Networking on the XO with REALBasic</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/a9IFy-FO-Rw/networking-on-the-xo-with-realbasic</link>
		<comments>http://theflyingdeveloper.com/networking-on-the-xo-with-realbasic#comments</comments>
		<pubDate>Thu, 22 Apr 2010 14:01:16 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OCRI]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[olpc]]></category>
		<category><![CDATA[realbasic]]></category>
		<category><![CDATA[xo]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=252</guid>
		<description><![CDATA[One of the main things that I personally wanted to get across to the students here in Ottawa was that the XO is not just another laptop. There are certain key features that make it unique compared to the desktops &#8230; <a href="http://theflyingdeveloper.com/networking-on-the-xo-with-realbasic">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the main things that I personally wanted to get across to the  students here in Ottawa was that the XO is not just another laptop.  There are certain key features that make it unique compared to the  desktops and notebooks that they may have seen before.</p>
<div class="wp-caption alignleft" style="width: 250px"><img src="http://farm3.static.flickr.com/2062/2265749376_d3e1f3fba7_m.jpg" alt="3 XO laptops on a desk" width="240" height="180" /><p class="wp-caption-text">3 XO Laptops</p></div>
<p style="text-align: left;">Chief amongst these is the mesh networking capabilities of the XO.  Whilst it can connect to a regular wireless network just like any other  computer, the XO can also form its own peer-to-peer network with others in the vicinity. This is really important as many of the  applications that ship with the XO are social or collaborative in nature  and the mesh allows them to be used in situations where a centralized  network is unavailable.<span id="more-252"></span></p>
<p>With this in mind, I started thinking about how to harness the powerful  capabilities of the mesh for my own applications. As far as I could  tell, the whole thing just worked by magic. This was great, but didn&#8217;t  give me any idea on how to send and receive messages from other machines  on the network.</p>
<p>The teacher of the particular grade 12 class I&#8217;m mentoring (along  with my good friend <a href="http://danmenard.com">Dan Menard</a>) is teaching his students  <a href="http://www.realsoftware.com/realbasic/">REAL Basic</a>. I&#8217;d  not seen this environment before, and I can&#8217;t remember the last time I  did any Basic programming. Fortunately, RB comes with extensive  documentation.</p>
<p>RB comes with a set of pre-defined &#8216;modules&#8217;,  roughly equivalent to the way that Java provides default  packages/objects for common tasks. There were a couple of interesting  modules that I wanted to take a closer look at: EasyTCPSocket and  EastUDPSocket.</p>
<p>Both of these allow simple interaction over the network. You bind  them to a port, then send information to a specified IP on that port.  That&#8217;s all well and good, but what I really wanted was a way of  discovering other machines on the network automatically. I knew that  each XO on the mesh was somehow assigned an IP address, but neither  socket provided a means searching for addresses automatically. I dug a  little deeper, and struck gold.</p>
<p>RB has a nice little module called AutoDiscovery. Subclassed from the  EasyUDPSocket, it allows you to bind to a port and then join a named  group within the subnet. Furthermore, it can pull back a list of IPs in  that same group. Perfect! After a little bit of trial and error, I  managed to get two desktop computers on my home network to join the same  group and exchange IP addresses. For proof-of-concept, that was enough.  It was time to move to the XOs.</p>
<p>Fortunately, RB can cross-compile applications for Windows, Mac and  Linux. The XO runs a modified version of Fedora, so I built a linux  version of my simple app and transferred it to my pair of laptops via a  USB key. I was slightly worried that they wouldn&#8217;t have the required GTK  libraries installed, but both applications started up fine. A couple of  seconds later, and success! Each XO was proudly displaying the other&#8217;s  IP in it&#8217;s group list.</p>
<div id="attachment_263" class="wp-caption alignleft" style="width: 310px"><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/04/IMAG0205.jpg"><img class="size-medium wp-image-263 " title="Two XO  laptops demonstrating mesh networking" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/04/IMAG0205-300x200.jpg" alt="Two XO laptops demonstrating mesh networking" width="300" height="200" /></a><p class="wp-caption-text">A pair of XOs running my proof-of-concept app</p></div>
<p>From this starting point, it is easy to see that more complex network-enabled apps can be built: Either by using the discovery mechanism as a way to exchange IP addresses before forming dedicated one-to-one connections with other machines (using the EasyTCPSocket, for example) or communicating with the group directly using a broadcast function. Both options have their pros and cons, but the main hurdle of harnessing the underlying mesh has been solved.</p>
<p>I&#8217;m really excited to see what the students do with the starting point I&#8217;ve given them. They&#8217;re still at the design stage right now, but by the end of term I expect that they&#8217;ll have produced some really phenomenal stuff.</p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/a9IFy-FO-Rw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/networking-on-the-xo-with-realbasic/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/networking-on-the-xo-with-realbasic</feedburner:origLink></item>
		<item>
		<title>The Flying Developer is a Mentor</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/bsTM-cou7AA/the-flying-developer-is-a-mentor</link>
		<comments>http://theflyingdeveloper.com/the-flying-developer-is-a-mentor#comments</comments>
		<pubDate>Wed, 21 Apr 2010 14:44:11 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OCRI]]></category>
		<category><![CDATA[mentoring]]></category>
		<category><![CDATA[olpc]]></category>
		<category><![CDATA[xo]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=233</guid>
		<description><![CDATA[Over the last couple of weeks I have had the pleasure of a pair of XO Laptops at my disposal. The XO is the result of the One Laptop Per Child project, founded by Nicholas Negroponte. The device itself is &#8230; <a href="http://theflyingdeveloper.com/the-flying-developer-is-a-mentor">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_253" class="wp-caption alignleft" style="width: 310px"><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/04/xo.png"><img class="size-medium wp-image-253 " title="XO Laptop" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2010/04/xo-300x187.png" alt="My XO Laptop" width="300" height="187" /></a><p class="wp-caption-text">An XO Laptop on my desk at work</p></div>
<p>Over the last couple of weeks I have had the pleasure of a pair of XO Laptops at my disposal. The XO is the result of the <a href="http://laptop.org/en/">One Laptop Per Child project</a>, founded by Nicholas Negroponte. The device itself is a real marvel of design and engineering, and I&#8217;ve had great fun hacking around with it.</p>
<p>The reason I am able to do this is because I am a volunteer mentor for OCRI, the Ottawa Center for Research and Innovation.<span id="more-233"></span> In a nutshell, their remit is to promote Ottawa as a prime candidate for software and other technology companies to set up shop in. To quote from their website:</p>
<blockquote><p>Our Vision for 2010 [is] to make Ottawa recognized as one of the most innovative  cities worldwide.</p></blockquote>
<p>One of the things OCRI does  is run a high-school program to encourage students to consider a career in the technology sector. That&#8217;s where the XO laptops and I come in.</p>
<p>Over the course of 12 or so weeks, myself and other industry professionals (I feel like such a fraud calling myself a &#8216;professional&#8217;) go into classrooms around Ottawa and mentor the students as they design, create and test an educational game for the XO laptop platform. The idea is that these projects will become available over the internet to teachers in Africa whose schools are part of the OLPC project and that they in turn can pass the games on to their students.</p>
<p>The students at the school I&#8217;m mentoring in are currently preparing presentations on their game designs, and I&#8217;m really excited to see what they come up with. I hope to post follow-up articles over the coming weeks describing some of the challenges of programming for the XO, as well as neat things the students manage to pull of. I already have a post in the works on mesh networking which I will be putting up later this week.</p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/bsTM-cou7AA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-is-a-mentor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/the-flying-developer-is-a-mentor</feedburner:origLink></item>
		<item>
		<title>The Flying Developer Gets Interviewed</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/tGBu8yqjqXE/the-flying-developer-gets-interviewed</link>
		<comments>http://theflyingdeveloper.com/the-flying-developer-gets-interviewed#comments</comments>
		<pubDate>Tue, 20 Apr 2010 18:39:42 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[PAX]]></category>
		<category><![CDATA[tumblr]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=244</guid>
		<description><![CDATA[Want to see me flail around on camera and talk too fast about Android development? Here&#8217;s an interview I did completely at random while I was at PAX last month about a personal Andorid project that I&#8217;m working on. The &#8230; <a href="http://theflyingdeveloper.com/the-flying-developer-gets-interviewed">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Want to see me flail around on camera and talk too fast about Android development? Here&#8217;s an interview I did completely at random while I was at PAX last month about a personal Andorid project that I&#8217;m working on. The guys interviewing me are from <a href="http://ftwapps.com">ftwapps.com</a> which is more of an iPhone app review site but they were happy to let me ramble on about how much I like Android. Enjoy!</p>
<p style="text-align: center;"><span class="youtube">
<object width="480" height="295">
<param name="movie" value="http://www.youtube.com/v/TFoX1A__-zw&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0?rel=1&amp;hd=1" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/TFoX1A__-zw&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0?rel=1&amp;hd=1" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="295"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=TFoX1A__-zw&fmt=18">www.youtube.com/watch?v=TFoX1A__-zw</a></p></p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/tGBu8yqjqXE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-gets-interviewed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/the-flying-developer-gets-interviewed</feedburner:origLink></item>
		<item>
		<title>The Flying Developer Is Not A Designer</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/Ug5DKOhkqLQ/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>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/Ug5DKOhkqLQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-is-not-a-designer/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/the-flying-developer-is-not-a-designer</feedburner:origLink></item>
		<item>
		<title>Complicated vs. Simple</title>
		<link>http://feedproxy.google.com/~r/theflyingdeveloper/~3/SDa1z_slQs0/complicated-vs-simple</link>
		<comments>http://theflyingdeveloper.com/complicated-vs-simple#comments</comments>
		<pubDate>Fri, 19 Feb 2010 02:01:21 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[lesson]]></category>
		<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=224</guid>
		<description><![CDATA[As a software developer, I&#8217;m used to being given tough problems and I&#8217;m not shy about building custom solutions from scratch to solve them. However, this is not always necessary. I recently learned that taking a step back and considering &#8230; <a href="http://theflyingdeveloper.com/complicated-vs-simple">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As a software developer, I&#8217;m used to being given tough problems and I&#8217;m not shy about building custom solutions from scratch to solve them. However, this is not always necessary. I recently learned that taking a step back and considering simpler solutions is always worthwhile.</p>
<p>This week, I was tasked with gathering and analyzing some data at my job. The task involved generating a couple of thousand data-points and examining their spread. The first part was easy, and accomplished in a couple of hours. What happened next was interesting though.<span id="more-224"></span></p>
<p>My script to gather/generate the data was written in python, so by the end of each run I had a large data structure in memory with all the results in. After printing some random samples to make sure the data was all in the correct ranges, I considered how to analyze it. A graph seemed the obvious choice and for my particular data-set an x/y scatter plot would be very useful. This decided, I went looking for a way of drawing such a thing.</p>
<p>My thoughts immediately went to finding a python library that would render the chart for me. After asking around a couple of my fellow developers I took a look at <a href="http://matplotlib.sourceforge.net/">matplotlib</a> and was very impressed. It seemed to offer a huge range of different graph and chart types, along with a whole host of rendering options. I say &#8216;seemed&#8217;, because I never actually used it. I realized that there was a much simpler solution to my problem.</p>
<p>Excel!</p>
<p>Excel, the spreadsheet software I was taught to use way back when I was 13 and not touched since. Technically, it&#8217;s all the things I dislike about software: bloated, over-engineered and closed-source. However, it does draw some pretty good charts with minimal work. Five minutes after realizing this, I had a thoroughly understandable representation of my data without writing a single extra line of code. Who&#8217;d have thought?</p>
<p>Could matplotlib have made the same chart? Of course. It probably would have had more colours, been in 3D and made you tea when you got up in the morning. On the downside, I didn&#8217;t really need any of those things, and it would have taken a whole afternoon, if not longer.</p>
<p>Similarly, I could have used an open-source solution such as OpenOffice or something lightweight like Google Docs. Excel just happened to be the most convenient option as it was already installed on my laptop at work.</p>
<p>The lesson I drew from this is that even though I <em>can </em>do some pretty cool things, I don&#8217;t always <em>have </em>to. Sometimes, existing solutions perform a task well enough and much faster to boot.</p>
<img src="http://feeds.feedburner.com/~r/theflyingdeveloper/~4/SDa1z_slQs0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/complicated-vs-simple/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://theflyingdeveloper.com/complicated-vs-simple</feedburner:origLink></item>
	</channel>
</rss>
