<?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; projects</title>
	<atom:link href="http://theflyingdeveloper.com/category/projects/feed" rel="self" type="application/rss+xml" />
	<link>http://theflyingdeveloper.com</link>
	<description>The daring adventures of an aspiring software developer</description>
	<lastBuildDate>Sat, 19 May 2012 14:09:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Who Goes First? An App to Entertain Boardgamers</title>
		<link>http://theflyingdeveloper.com/who-goes-first-an-app-to-entertain-boardgamers</link>
		<comments>http://theflyingdeveloper.com/who-goes-first-an-app-to-entertain-boardgamers#comments</comments>
		<pubDate>Tue, 24 Apr 2012 16:00:24 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=981</guid>
		<description><![CDATA[I still consider myself to be a relative ruby/rails novice, so every now and again I build &#8216;toy&#8217; projects to teach myself more about the framework. Usually these don&#8217;t end up going anywhere, but my latest attempt over about 3 &#8230; <a href="http://theflyingdeveloper.com/who-goes-first-an-app-to-entertain-boardgamers">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I still consider myself to be a relative ruby/rails novice, so every now and again I build &#8216;toy&#8217; projects to teach myself more about the framework. Usually these don&#8217;t end up going anywhere, but my latest attempt over about 3 evenings of coding turned out rather well.</p>
<p style="text-align: center;"><a href="http://whogoesfirst.herokuapp.com"><img class="aligncenter  wp-image-988" title="Rule 1" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-24-at-12.24.26-PM-1024x269.png" alt="" width="584" height="153" /></a></p>
<p><a href="http://whogoesfirst.herokuapp.com/">Who Goes First</a> is a super-simple web app that spits out a random rule to decide who takes the first turn in a board game. It supports user submissions and has a contact form. That&#8217;s it.<span id="more-981"></span></p>
<h2>Gems Used</h2>
<ul>
<li><a href="https://github.com/spilliton/randumb">randumb</a></li>
<li><a href="https://github.com/pluginaweek/state_machine">state_machine</a></li>
<li><a href="http://activeadmin.info">activeadmin</a></li>
<li><a href="https://github.com/decioferreira/bootstrap-generators">bootstrap-generators</a></li>
</ul>
<p>The backbone of this app is <a href="http://activeadmin.info/">Active Admin</a>. I love this gem. The documentation took a little while to decipher but once I had a general idea of what was going on it was a pleasure to use. Before using activeadmin I&#8217;d always used the console to &#8216;administer&#8217; my site &#8211; creating objects, updating state, that sort of thing. Activeadmin bypasses all of that by providing a proper web interface complete with authentication thanks to devise. It&#8217;s just customizable enough to allow complex actions like triggering state changes on objects so it was perfect for Who Goes First as all user submissions need to be moderated before going live.</p>
<p style="text-align: center;"><a href="http://whogoesfirst.herokuapp.com"><img class="aligncenter  wp-image-990" title="Rule 2" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-24-at-12.26.08-PM-1024x269.png" alt="" width="584" height="153" /></a></p>
<p><a href="https://github.com/spilliton/randumb">Randumb</a> is a brilliant little gem that adds a <code>random</code> method to ActiveRelation that does exactly what you&#8217;d expect: Pulls and returns a random object from the current relation. I&#8217;m using it to grab a single object but you can specify a count if you want more. Very useful.</p>
<p><a href="https://github.com/decioferreira/bootstrap-generators">Bootstrap-Generators</a> provided my layouts. <a href="http://twitter.github.com/bootstrap/">Bootstrap</a> (from Twitter) is a godsend for developers such as myself who hate spending time (and suck at) designing layouts. The generators gem gets everything set up for you and provides basic rails-y templates to get started with. One note if you&#8217;re planning on using this gem though: At the time of writing the current release on rubygems.org does not contain the responsive templates, so grab it from the github repo instead. The responsive aspect was paramount for me as I envision people using the app on a smartphone, tablet or whatever at the gaming table.</p>
<p>Finally, there&#8217;s <a href="https://github.com/pluginaweek/state_machine">state_machine</a>. I used this gem to provide the basis of my moderation mechanism. New user-submitted rules start in a &#8216;pending&#8217; state and only appear once I move them to &#8216;approved&#8217;. There&#8217;s also a &#8216;denied&#8217; state for rules I don&#8217;t want published.</p>
<p style="text-align: center;"><a href="http://whogoesfirst.herokuapp.com"><img class="aligncenter  wp-image-991" title="Rule 3" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-24-at-12.27.07-PM-1024x270.png" alt="" width="584" height="153" /></a></p>
<h2>Other things I learned</h2>
<p><a href="http://heroku.com">Heroku</a> has really good mail support thanks to <a href="http://sendgrid.com/">Sendgrid</a>. I was able to hook up my contact form really easily (although my webhost&#8217;s mail server bounced the first few messages as the domains didn&#8217;t match up. D&#8217;oh!).</p>
<p>Activeadmin doesn&#8217;t play well with the asset pipeline. The styles and js are hidden away in the gem so I had to explicitly load them in the initializer. Easy once you know how, but it was a pain when I deployed to production for the first time and found that my styles were broken.</p>
<p style="text-align: center;"><a href="http://whogoesfirst.herokuapp.com"><img class="aligncenter  wp-image-992" title="Rule 4" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-24-at-12.28.00-PM-1024x270.png" alt="" width="584" height="153" /></a></p>
<h2>What&#8217;s next?</h2>
<p>I&#8217;m pretty pleased with the site as-is at the moment, but I do have some ideas for improvements. The first thing I want to do is add some normalization to new submissions so that they&#8217;re all correctly capitalized and punctuated. Right now about half of the submissions have full stops at the end and half don&#8217;t which and it&#8217;s a pain to go in and edit them all manually.</p>
<p>I&#8217;m also considering adding modifiers to the rules. A lot of them refer to the &#8216;most&#8217;, &#8216;biggest&#8217;, or &#8216;largest&#8217; of something. Detecting these and randomly replacing them with the opposite version (&#8216;least&#8217;, &#8216;smallest&#8217;, etc.) would add some free variety to the ruleset.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/who-goes-first-an-app-to-entertain-boardgamers/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dashboard Update</title>
		<link>http://theflyingdeveloper.com/951</link>
		<comments>http://theflyingdeveloper.com/951#comments</comments>
		<pubDate>Mon, 27 Feb 2012 15:00:29 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[ferrets]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[geckoboard]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=951</guid>
		<description><![CDATA[Previously I wrote about creating a weather widget for Geckoboard. Here&#8217;s the current state of things: Calendar: Built in widget, with custom text size to make it more readable Date and Time: Another built in widget. Weather: Covered last time, &#8230; <a href="http://theflyingdeveloper.com/951">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Geckoboard Weather Widget (Wot I Made)" href="http://theflyingdeveloper.com/geckoboard-weather-widget-wot-i-made">Previously</a> I wrote about creating a weather widget for <a title="Geckoboard" href="http://geckoboard.com">Geckoboard</a>. Here&#8217;s the current state of things:<a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/02/Default-dashboard-Sousbois-Read-Only-Mode.jpg"><img class="aligncenter size-full wp-image-954" title="Dashboard" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/02/Default-dashboard-Sousbois-Read-Only-Mode.jpg" alt="" width="1010" height="746" /></a></p>
<ol>
<li><strong>Calendar</strong>: Built in widget, with custom text size to make it more readable</li>
<li><strong>Date and Time</strong>: Another built in widget.</li>
<li><strong>Weather</strong>: Covered <a title="Geckoboard Weather Widget (Wot I Made)" href="http://theflyingdeveloper.com/geckoboard-weather-widget-wot-i-made">last time</a>, it takes weather info from Yahoo and displays it.</li>
<li><strong>ToDo List</strong>: A placeholder for now, but will display a particular shared note from Evernote that we can fill with important things we need to do.</li>
<li><strong>Weasels!</strong>: Geckoboard has an image widget, so I wrote an endpoint that looks like a  jpeg but fetches a random image from a person&#8217;s Flickr photostream and returns it. Every time the board refreshes, Tada! New image. In our case, it&#8217;s usually <a title="Kim's Flickr Page" href="http://www.flickr.com/photos/kimstitch">embroidery or ferrets</a>.</li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/951/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geckoboard Weather Widget (Wot I Made)</title>
		<link>http://theflyingdeveloper.com/geckoboard-weather-widget-wot-i-made</link>
		<comments>http://theflyingdeveloper.com/geckoboard-weather-widget-wot-i-made#comments</comments>
		<pubDate>Mon, 30 Jan 2012 15:00:28 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[geckoboard]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[weather]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=913</guid>
		<description><![CDATA[Back in December, this happened: I&#8217;ve been wanting to do something &#8216;cool&#8217; with it since then, but until now I hadn&#8217;t found the right project. Then earlier this week I came across Geckoboard, a neat app that allows you to create Panic-like &#8230; <a href="http://theflyingdeveloper.com/geckoboard-weather-widget-wot-i-made">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Back in December, this happened:</p>
<blockquote class="twitter-tweet" width="550"><p><a href="https://twitter.com/search/%2523shopify">#shopify</a> Christmas party was a blast. As evidence, I am typing this on my new iPad 2</p>&mdash; David Underwood (@davefp) <a href="https://twitter.com/davefp/status/148284001541554176" data-datetime="2011-12-18T06:10:35+00:00">December 18, 2011</a></blockquote>
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>I&#8217;ve been wanting to do something &#8216;cool&#8217; with it since then, but until now I hadn&#8217;t found the right project. Then earlier this week I came across <a href="http://www.geckoboard.com/" target="_blank">Geckoboard</a>, a neat app that allows you to create <a href="http://www.panic.com/blog/2010/03/the-panic-status-board/" target="_blank">Panic-like status boards</a> to monitor all sorts of interesting stats.</p>
<p style="text-align: center;"><a href="http://geckoboard.com"><img class="aligncenter size-full wp-image-933" title="geckoboardLogo_500_53" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/01/geckoboardLogo_500_53.png" alt="" width="500" height="53" /></a></p>
<p>I decided I wanted to use it to create a living room dashboard that pulls in my calendar events, the current time, the weather, and maybe a todo/shopping list. I would then place my iPad somewhere prominent and have all the info available at a glance.</p>
<p><span id="more-913"></span></p>
<h2>Mixing Business and Pleasure</h2>
<p>Unfortunately for me, most of Geckoboard&#8217;s built in widgets are integrations with business oriented services: <a href="http://github.com" target="_blank">Github</a>, <a href="http://basecamphq.com/" target="_blank">Basecamp</a>, <a href="http://www.pingdom.com/" target="_blank">Pingdom</a>, that sort of thing. Whilst these would look great in an office lobby, I don&#8217;t think my wife would appreciate live uptime stats in our living room. Time to improvise!</p>
<p>Geckoboard has this concept of custom widgets which allows you to shoehorn any data you can get your hands on into various predefined templates for display. There are a range of different <a href="http://support.geckoboard.com/entries/274940-custom-chart-widget-type-definitions" target="_blank">chart types</a> available, as well as <a href="http://support.geckoboard.com/entries/231507-custom-widget-type-definitions" target="_blank">maps, numerical displays, and plain text</a>.</p>
<p>I decided I was going to get my feet wet by creating a weather widget that would display the current temperature along with the conditions. This would be represented in a custom plain text widget.</p>
<p>Sourcing the weather data turned out to be really easy. Yahoo has a <a href="http://developer.yahoo.com/weather/" target="_blank">fantastic weather API</a> which is free to use for non-commercial purposes that works by simply sending a request with your location to a particular endpoint. The hardest part (which is still dead simple) is looking up your &#8216;WOEID&#8217; (short for <a href="http://developer.yahoo.com/geo/geoplanet/guide/concepts.html" target="_blank">Where On Earth ID</a>), a numeric ID for your location.</p>
<h2>WOE Is Me</h2>
<p>With my WOEID in hand, it was time to wrangle the data. I created a new Rails project with a simple endpoint that took an ID and spat out the weather data for that location. With a little help from the <a href="http://xml-simple.rubyforge.org/" target="_blank">xml-simple gem</a> I then refined the response to include only the data I needed (The temperature and the condition text) before re-wrapping the response in json to be returned. This was maybe half a dozen lines of code in my controller. In fact, Rails is probably way over the top for something like this but it&#8217;s what I have the most experience with so I went with it anyway.</p>
<p>I created an app on Heroku to host everything, and then tried it out. Here&#8217;s what the widget looks like (excuse the boring Ottawa weather):</p>
<p><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/01/geckoboard_weather_widget1.png"><img class="aligncenter size-full wp-image-931" title="geckoboard_weather_widget" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/01/geckoboard_weather_widget1.png" alt="" width="230" height="230" /></a></p>
<p>Really simple, but exactly what I wanted. I liked it so much that I decided to share it. Head over to the app on Heroku for instructions on how to use it yourself: <a href="http://gecko-weather.heroku.com/" target="_blank">Gecko-Weather</a>.</p>
<p>I&#8217;m planning on adding a couple of extra features soon, namely the ability to specify Fahrenheit/Celsius and some error handling in case the weather info is unavailable for some reason. I&#8217;m also open to suggestions, so please post any requests in the comments!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/geckoboard-weather-widget-wot-i-made/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Flying Developer Eats His Own Dogfood</title>
		<link>http://theflyingdeveloper.com/the-flying-developer-eats-his-own-dogfood</link>
		<comments>http://theflyingdeveloper.com/the-flying-developer-eats-his-own-dogfood#comments</comments>
		<pubDate>Fri, 06 Jan 2012 03:51:51 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[The Noble Pony]]></category>
		<category><![CDATA[dogfooding]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[shopify]]></category>
		<category><![CDATA[t-shirts]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=884</guid>
		<description><![CDATA[There&#8217;s a term in the software industry called &#8216;Dogfooding&#8217;, or &#8220;To eat one&#8217;s own Dogfood&#8221;. It refers to the practice of using the products you develop. The term was coined in 1988 when: &#8220;Microsoft manager Paul Maritz sent Brian Valentine, test manager for Microsoft &#8230; <a href="http://theflyingdeveloper.com/the-flying-developer-eats-his-own-dogfood">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a term in the software industry called &#8216;Dogfooding&#8217;, or &#8220;To eat one&#8217;s own Dogfood&#8221;. It refers to the practice of using the products you develop. The term was coined in 1988 when:</p>
<blockquote><p>&#8220;Microsoft manager <a title="Paul Maritz" href="http://en.wikipedia.org/wiki/Paul_Maritz">Paul Maritz</a> sent <a title="Brian Valentine" href="http://en.wikipedia.org/wiki/Brian_Valentine">Brian Valentine</a>, test manager for <a title="Microsoft LAN Manager" href="http://en.wikipedia.org/wiki/Microsoft_LAN_Manager">Microsoft LAN Manager</a>, an email titled &#8220;Eating our own Dogfood&#8221;, challenging him to increase internal usage of the company&#8217;s product.&#8221; &#8211; <a href="http://en.wikipedia.org/wiki/Eating_your_own_dog_food">Wikipedia</a></p></blockquote>
<p>I&#8217;ve been at <a href="http://shopify.com">Shopify</a> for the better part of a year now, so I thought it was about time that I engaged in some dogfooding of my own. The result has just gone live: <a href="http://thenoblepony.com">The Noble Pony</a></p>
<p><span id="more-884"></span></p>
<h2>Giving Myself a Crash Course In E-Commerce</h2>
<p>Setting this up was a bit trickier than if I worked at, say, Facebook. Shopify is not a service unto itself, but rather an tool that forms part of a much larger chain: running an online shop. Before I even signed up for a Shopify account I needed several things:</p>
<ol>
<li>An audience</li>
<li>A product</li>
<li>A business plan</li>
<li>Funding</li>
</ol>
<p>After considering some alternatives I decided that I would sell T-shirts with my own designs on them. This was because all the creative work could be done by one person (me) at my computer using free software (<a title="Inskacpe" href="http://inkscape.org" target="_blank">Inkscape</a>). I could then take the designs I came up with to a local printer who would handle the manufacturing. As for an audience, I was primarily designing for myself. However, I knew that I would have to publicize my products somehow and so picked interests of mine that had strong communities I thought I could market to.</p>
<p>My business and funding plan are very closely linked. Due to the way T-shirts are printed, it only makes sense to order them in bulk. <a title="Economies of scale" href="http://en.wikipedia.org/wiki/Economies_of_scale" target="_blank">Economies of scale</a> and all that. Putting my own money up to fund an initial printing run would be too risky, so I&#8217;m running the shop on a pre-order basis: People promise to pay for shirts, and if enough people are interested then I do the print run and ship the shirts. If not, oh well. I cancel the orders and no-one loses out (except my hopes and dreams of striking it rich).</p>
<h2>Getting Set Up With Shopify</h2>
<p>Once I had a design for a shirt, investigated the production costs, and decided on the business plan I got to work and set up <a href="http://thenoblepony.com" target="_blank">The Noble Pony</a>, my very own Shopify shop. The actual mechanics of doing this I&#8217;ll cover another time, but the main elements I needed were:</p>
<ol>
<li>A storefront design</li>
<li>A payment processor</li>
<li>A fulfillment/shipping solution</li>
</ol>
<p>I went as bare-bones as possible by tweaking a <a href="http://themes.shopify.com">Shopify theme</a> called <a href="http://themes.shopify.com/themes/solo/styles/solo">Solo</a> for the storefront and setting up <a href="https://merchant.paypal.com/us/cgi-bin/?cmd=_render-content&amp;content_ID=merchant/express_checkout">PayPal Express Checkout</a> for my payment processor. I&#8217;ll be handling the fulfillment side of things myself so I did some research into <a href="http://www.canadapost.ca/cpo/mc/default.jsf">Canada Post</a> rates and set a couple of weight-based flat rates accordingly. The shipping setup was the hardest part by far as I initially went through the process of setting up an account with UPS only to find out that shipping really small/light packages with them was way too expensive (Shipping the shirts would have cost more than the shirts themselves).</p>
<h2>The Finished Product</h2>
<p>So what have I actually created? I threw around a couple of ideas about <a href="http://reddit.com">Reddit</a>-related shirts as well as <a href="http://us.battle.net/sc2/en/" target="_blank">Starcraft</a>-related shirts. Then I played with Inkscape until I finally came up with this:</p>
<p><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/01/vet_detail_web.png"><img class="aligncenter size-full wp-image-889" title="vet_detail_web" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/01/vet_detail_web.png" alt="" width="600" height="400" /></a></p>
<p>If you&#8217;ve ever played Starcraft 2 you&#8217;ll recognize this instantly: It&#8217;s a group of the <a title="Battle.net leagues on Liquipedia" href="http://wiki.teamliquid.net/starcraft2/Battle.net_Leagues#The_Leagues" target="_blank">battle.net league icons</a>. There&#8217;s a little more to it than that though. The shirt itself looks like this:</p>
<p><a href="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/01/veteran_shirt_template.png"><img class="aligncenter size-full wp-image-891" title="veteran_shirt_template" src="http://theflyingdeveloper.com/blog/wp-content/uploads/2012/01/veteran_shirt_template.png" alt="" width="668" height="670" /></a></p>
<p>The design is supposed to mimic the way a soldier wears his or her medals or <a href="http://en.wikipedia.org/wiki/Ribbon_bar" target="_blank">ribbon bar</a>. Plus I think it looks cool.</p>
<h2>What&#8217;s Next?</h2>
<p>My goal is to have 100 pre-orders by the end of January. Since opening the shop and announcing it on <a href="http://reddit.com/r/starcraft" target="_blank">/r/starcraft</a> two days ago I&#8217;ve pre-sold a grand total of&#8230; 2 shirts. Clearly the age of &#8216;If they build it, they will come&#8217; is long over. My next task (and the subject of my next blog post) is to learn as much as I can about publicity and advertising and sell the hell out of the shirts. I&#8217;ll report back with my findings.</p>
<p>&nbsp;</p>
<p>Note: Mad props to ~<a href="http://jovdaripper.deviantart.com/" target="_blank">JovDaRipper</a> for creating the brilliant <a href="http://jovdaripper.deviantart.com/art/Vector-T-shirt-Template-143230813" target="_blank">T-shirt templates</a>. Go check out his gallery on DeviantArt.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/the-flying-developer-eats-his-own-dogfood/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Limelight Now Open Source</title>
		<link>http://theflyingdeveloper.com/limelight-now-open-source</link>
		<comments>http://theflyingdeveloper.com/limelight-now-open-source#comments</comments>
		<pubDate>Fri, 10 Dec 2010 21:22:23 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[limelight]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=356</guid>
		<description><![CDATA[I&#8217;ve had a couple of queries about the lighthouse ticket exporter tool (Limelight) that I wrote a while back. Seeing as I have no further plans to develop the project, I&#8217;ve put the source code up on github. Feel free &#8230; <a href="http://theflyingdeveloper.com/limelight-now-open-source">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a couple of queries about the lighthouse ticket exporter tool (Limelight) that I wrote a while back. Seeing as I have no further plans to develop the project, I&#8217;ve put the source code up on github. Feel free to fork it or browse the code.</p>
<p>Here&#8217;s a link to the repo: <a href="https://github.com/davefp/Limelight">https://github.com/davefp/Limelight</a></p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/limelight-now-open-source/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reactions plugin end-of-year update</title>
		<link>http://theflyingdeveloper.com/reactions-plugin-end-of-year-update</link>
		<comments>http://theflyingdeveloper.com/reactions-plugin-end-of-year-update#comments</comments>
		<pubDate>Mon, 28 Dec 2009 18:25:21 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[wp-reactions]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[reactions]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=214</guid>
		<description><![CDATA[Last time I posted about the wp-reactions plugin, I said that I planned on having a new version released by the end of the year. The good news is that I&#8217;ve made considerable progress over the last six weeks overhauling &#8230; <a href="http://theflyingdeveloper.com/reactions-plugin-end-of-year-update">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last time I posted about the wp-reactions plugin, I said that I planned on having a new version released by the end of the year.</p>
<p>The good news is that I&#8217;ve made considerable progress over the last six weeks overhauling the back-end to make it easier to maintain and expand. I&#8217;ve also learned a lot more about relational databases in the process, which is good for me if not the plugin users.</p>
<p>The bad news is that this process isn&#8217;t finished yet, so it&#8217;ll be a little while longer before there is a new version available. I hope that anyone out there who is waiting for a new release isn&#8217;t too disappointed.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/reactions-plugin-end-of-year-update/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Limelight v0.3</title>
		<link>http://theflyingdeveloper.com/limelight-v0-3</link>
		<comments>http://theflyingdeveloper.com/limelight-v0-3#comments</comments>
		<pubDate>Fri, 27 Nov 2009 01:27:41 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[limelight]]></category>
		<category><![CDATA[adobe AIR]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[lighthouse]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=197</guid>
		<description><![CDATA[Here&#8217;s a new version of the Limelight app! The name is now changed, and it has a new icon. In terms of functionality, I&#8217;ve updated the API requests to grab all the tickets for a project, instead of just the &#8230; <a href="http://theflyingdeveloper.com/limelight-v0-3">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a new version of the Limelight app! The name is now changed, and it has a new icon.</p>
<p>In terms of functionality, I&#8217;ve updated the API requests to grab all the tickets for a project, instead of just the first &#8216;page&#8217;:</p>
<a href="http://theflyingdeveloper.com/downloadslimelight.air" title="Downloaded 440 times">Limelight version 0.3</a>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/limelight-v0-3/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lighthouse Keeper is now called Limelight!</title>
		<link>http://theflyingdeveloper.com/lighthouse-keeper-is-now-called-limelight</link>
		<comments>http://theflyingdeveloper.com/lighthouse-keeper-is-now-called-limelight#comments</comments>
		<pubDate>Mon, 23 Nov 2009 02:29:29 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[limelight]]></category>
		<category><![CDATA[adobe AIR]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[bug tracking]]></category>
		<category><![CDATA[lighthouse]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=192</guid>
		<description><![CDATA[As stated in the update on my previous blog post, there is already a Lighthouse-related app called Lighthouse Keeper. Bummer. Still, not to worry. To avoid confusion and general awkwardness, I&#8217;m going to change the name of the app to &#8230; <a href="http://theflyingdeveloper.com/lighthouse-keeper-is-now-called-limelight">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As stated in the update on my previous blog post, there is already a Lighthouse-related app called Lighthouse Keeper. Bummer.</p>
<p>Still, not to worry. To avoid confusion and general awkwardness, I&#8217;m going to change the name of the app to Limelight. I&#8217;m pretty sure that there are no existing apps in the same domain with that name. Pretty sure. Not 100%. So if there are any app developers out there developing a Lighthouse app called Limelight&#8230; I&#8217;m sorry in advance. Hopefully I&#8217;ll be ok this time though.</p>
<p>I&#8217;m going to release a new version of the app with the changed name in the next couple of days.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/lighthouse-keeper-is-now-called-limelight/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing: Lighthouse Keeper</title>
		<link>http://theflyingdeveloper.com/introducing-lighthouse-keeper</link>
		<comments>http://theflyingdeveloper.com/introducing-lighthouse-keeper#comments</comments>
		<pubDate>Fri, 20 Nov 2009 00:58:13 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[limelight]]></category>
		<category><![CDATA[adobe AIR]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[bug tracking]]></category>
		<category><![CDATA[entp]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[lighthouse]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=179</guid>
		<description><![CDATA[Update: Oops! It looks like there is already a Lighthouse-related app called Lighthouse Keeper (it can be found here). Future versions of my app will have a different name to avoid confusion. Lighthouse is a lightweight hosted bug-tracker produced by &#8230; <a href="http://theflyingdeveloper.com/introducing-lighthouse-keeper">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong><em>Update: Oops! It looks like there is already a Lighthouse-related app called Lighthouse Keeper (it can be found <a href="http://www.mcubedsw.com/software/lighthousekeeper">here</a>). Future versions of my app will have a different name to avoid confusion</em></strong>.</p>
<p><a href="http://lighthouseapp.com/">Lighthouse</a> is a lightweight hosted bug-tracker produced by <a href="http://entp.com/">entp</a>. It&#8217;s advertised as &#8220;Beautifully Simple Issue Tracking&#8221;.</p>
<p>Lighthouse Keeper is a small AIR app produced by me. It allows you to export Lighthouse ticket info to a csv file.</p>
<h2>Background</h2>
<p>I learned about the existence of Lighthouse earlier this week at a job interview. I&#8217;ve used a couple of bug-trackers before, but Lighthouse had never appeared on my radar. The two guys interviewing me got into a spirited conversation with each other about the various pros and cons of different bug tracking solutions, but Lighthouse in particular. One of their comments was</p>
<blockquote><p>I wish there was a way to export my tickets as a csv file.</p>
<p>Maybe someone will come up with something using the API.</p></blockquote>
<p>That&#8217;s a challenge if I&#8217;ve ever heard one.<span id="more-179"></span></p>
<h2>Implementation</h2>
<p>I&#8217;m a big fan of Flash/Flex, so I set to work that evening on a small app that would grab Lighthouse projects for a given domain then allow you to perform searches on the tickets in an individual project and export the results. Fortunately, flex is designed around tasks just like this.</p>
<p>Lighthouse has a fairly comprehensive REST API available for developers. Using either your regular login info or a generated API key, you have access to (as far as I can tell) all of the functionality you get from the regular web interface.</p>
<p>Thanks to this, retrieving data from the API was achieved in less than an hour, and then the rest of the time (about 6 more hours) was spent wrangling it and tweaking the interface.</p>
<p>The current incarnation is still very much an experimental product, but I want to release it to let people (and prospective employers) test it out and see what they think.</p>
<h2>Download</h2>
<p>So, without further ado, here it is:</p>
<p><a href="http://theflyingdeveloper.com/misc/lighthousekeeper.air">Lighthouse Keeper version 0.1</a></p>
<p>As always: Questions, comments, suggestions and criticism are welcomed and encouraged.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/introducing-lighthouse-keeper/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wp-reactions Project Update</title>
		<link>http://theflyingdeveloper.com/wp-reactions-project-update</link>
		<comments>http://theflyingdeveloper.com/wp-reactions-project-update#comments</comments>
		<pubDate>Sun, 08 Nov 2009 16:21:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[wp-reactions]]></category>

		<guid isPermaLink="false">http://theflyingdeveloper.com/?p=165</guid>
		<description><![CDATA[I&#8217;m sad to admit that I&#8217;ve somewhat neglected my wp-reactions WordPress Plugin over the last few months. All the usual reasons apply: Work, real life, laziness. It seems though that there is still interest in the plugin, so over the &#8230; <a href="http://theflyingdeveloper.com/wp-reactions-project-update">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sad to admit that I&#8217;ve somewhat neglected <a href="http://wordpress.org/extend/plugins/wp-reactions/">my wp-reactions WordPress Plugin</a> over the last few months. All the usual reasons apply: Work, real life, laziness.</p>
<p>It seems though that there is still interest in the plugin, so over the next few weeks I&#8217;m going to give it an overhaul. It&#8217;s been a long time coming, and since I first wrote the original code I&#8217;ve learned a lot about the &#8216;correct&#8217; way to program web apps.</p>
<p>The current code is not very flexible: In order to implement the new features that are in the roadmap, I&#8217;m going to have to start again from scratch. This time I&#8217;m going to give the plugin a proper DB back-end, so that reaction text can be updated without resetting the count, and so that posts in different categories can have different reaction options (and a lot of other things, too!). This should also make it a lot easier to maintain and add further features to.</p>
<p>So, if you use wp-reactions, or are holding off until some of the features you want are available, rejoice! I expect to have a new version available by the end of the year.</p>
]]></content:encoded>
			<wfw:commentRss>http://theflyingdeveloper.com/wp-reactions-project-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

