<?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>KEREBUS</title>
	<atom:link href="http://kerebus.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kerebus.com</link>
	<description>It&#039;s a front for my IT ventures</description>
	<lastBuildDate>Tue, 01 Jan 2013 20:06:47 +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>Canvas vs SVG</title>
		<link>http://kerebus.com/2013/01/canvas-vs-svg/</link>
		<comments>http://kerebus.com/2013/01/canvas-vs-svg/#comments</comments>
		<pubDate>Tue, 01 Jan 2013 13:54:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[frontend]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=568</guid>
		<description><![CDATA[I need to create some sort of interactive map. So I did a quick investigation of canvas and svg stuff and thought I&#8217;d document my findings. I am by no means an authority on these matters, and my knowledge is &#8230; <a href="http://kerebus.com/2013/01/canvas-vs-svg/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>I need to create some sort of interactive map. So I did a quick investigation of canvas and svg stuff and thought I&#8217;d document my findings. I am by no means an authority on these matters, and my knowledge is based on an evening on reading/trying stuff out. Mostly I&#8217;m summarizing stuff I read elsewhere.</p>
<h2>Hey what&#8217;s Canvas?</h2>
<p>Canvas is just a bitmap drawing surface. In the DOM it&#8217;ll just be one element.<br />
You can draw on it using a javascript api: <a href="https://developer.mozilla.org/en-US/docs/HTML/Canvas">https://developer.mozilla.org/en-US/docs/HTML/Canvas</a></p>
<h3>Browser support?</h3>
<p>Canvas is usable since ie9, most other moderns browsers seem to support it:<br />
<a href="http://caniuse.com/canvas">http://caniuse.com/canvas</a></p>
<h3>Shims/Shivs/Polyfills?</h3>
<p>For ie&lt;9 you may try excanvas: <a href="http://code.google.com/p/explorercanvas/">http://code.google.com/p/explorercanvas/</a><br />
Supposedly it can&#8217;t simulate the api 100%.</p>
<h3>Libraries?</h3>
<p>Most canvas libraries give you some svg-like features, like a display hierarchy and easy to use event listeners. I.e. you can draw shapes and retain references to them, add listeners to the references and so on. Most of these libararies offer animation support too, so you can tween your heart out.</p>
<p><a title="kangax on twitter" href="https://twitter.com/kangax">@kangax</a> has made a comparison of libraries:<br />
<a href="https://docs.google.com/spreadsheet/ccc?key=0Aqj_mVmuz3Y8dHNhUVFDYlRaaXlyX0xYSTVnalV5ZlE">https://docs.google.com/spreadsheet/ccc?key=0Aqj_mVmuz3Y8dHNhUVFDYlRaaXlyX0xYSTVnalV5ZlE</a></p>
<p>The top five canvas libraries according to github watchers are:</p>
<ul>
<li><a href="http://www.createjs.com/#!/EaselJS">easel.js</a></li>
<li><a href="http://fabricjs.com/">fabric.js</a></li>
<li><a href="http://paperjs.org/">paper.js</a></li>
<li><a href="http://kineticjs.com/">kinetic.js </a></li>
<li><a href="http://processingjs.org/">processing.js</a></li>
</ul>
<p>&nbsp;</p>
<h2>Hey what&#8217;s SVG?</h2>
<p>SVG is vector graphics format. Each element (shape) in an svg will be part of the DOM.</p>
<h3>Browser support?</h3>
<p>SVG is usable since ie9, most other moderns browsers seem to support it, besides the android stock browser before 3.0: <a href="http://caniuse.com/svg">http://caniuse.com/svg</a></p>
<h3>Shims/Shivs/Polyfills?</h3>
<p>ie&lt;9 supports vml which is similar in functionality (although removed in ie10).<br />
If you&#8217;re using raphael (a javascript svg/vml library) it can fallback on vml if needed.</p>
<h3>Libraries?</h3>
<ul>
<li><a href="http://d3js.org/">d3.js</a> &#8211; Consider this for diagrams/graphs/etc. It&#8217;s geared towards data visualization and based on svg.</li>
<li><a href="http://raphaeljs.com/">Raphael</a> &#8211; Provides an it&#8217;s own api for producing svg (or vml if ie&lt;9). You can do animations etc.<br />
It can&#8217;t read in svg though, which kind of sucks if you have a neat svg file. There are conversion tools (svg to raphael js-code) in existence, but it&#8217;s still manual work.</li>
<li><a href="http://keith-wood.name/svg.html">jQuery-SVG</a> &#8211; jQuery plugin for dealing with SVG, but provides no fallback to vml.</li>
</ul>
<h2>When should I use Canvas and when should I use SVG?</h2>
<p>Use svg for:</p>
<ul>
<li>Static images (svgs are great for responsive/fluid layouts)</li>
<li>Vector graphics (e.g. produced in illustrator/inkscape, exported as svg)</li>
<li>Diagrams</li>
<li>Stuff which benefits from DOM integration (fancy UI-components?)</li>
<li>Easier debugging since you can view that stuff in a dom-inspector</li>
</ul>
<p>Use canvas for:</p>
<ul>
<li>Mutable bitmaps</li>
<li>Your fancy graphically intense demos</li>
<li>Games</li>
<li>Stuff for which svg performance won&#8217;t cut it. (Thousands of rendered elements and a lot of real-time updates)</li>
</ul>
<p>Of course the case might be you happen to know one of those canvas libraries really well, in such a case you&#8217;d be more productive using canvas vs. svg, if it meets all your needs.</p>
<h2>So which one will you use for your interactive map?</h2>
<p>Well I&#8217;m not done yet but it looks like none of the above.<br />
I should be just fine with basic html/css with some creative positioning.<br />
It has the best browser support and I won&#8217;t really need any of those fancy features.<br />
According to some quick tests, pixel based scaling will look good enough for my use case.<br />
Given some neat svg map and better browser support the svg stuff would probably be a cleaner implementation choice.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2013/01/canvas-vs-svg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trying out Redis with Java</title>
		<link>http://kerebus.com/2012/05/redis/</link>
		<comments>http://kerebus.com/2012/05/redis/#comments</comments>
		<pubDate>Sun, 20 May 2012 18:50:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=555</guid>
		<description><![CDATA[I decided to take Redis for a spin on Sunday. Redis is a key-value store and much more. For some good Redis use-cases read: http://highscalability.com/blog/2011/7/6/11-common-web-use-cases-solved-in-redis.html I installed redis using macports: sudo port install redis Although you can install it any &#8230; <a href="http://kerebus.com/2012/05/redis/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>I decided to take <a href="http://redis.io/">Redis</a> for a spin on Sunday. </p>
<p>Redis is a key-value store and much more. For some good Redis use-cases read:<br />
<a href="http://highscalability.com/blog/2011/7/6/11-common-web-use-cases-solved-in-redis.html">http://highscalability.com/blog/2011/7/6/11-common-web-use-cases-solved-in-redis.html</a></p>
<p>I installed redis using macports:<br />
<code>sudo port install redis</code><br />
Although you can install it any way you want. Check the <a href="http://redis.io/download">Redis download page</a>.</p>
<p>Started the server<br />
<code>redis-server</code></p>
<p>Coded some <a href="https://github.com/kallebertell/redisperf">Java based tests using Jedis</a>.</p>
<p>Output on my 2010 macbook pro when running the tests within an IDE:<br />
<code><br />
main: Starting cache writing test: 100 concurrent clients doing 1000 writes each. (100000 total writes)<br />
main: Waiting for clients to finish writes.<br />
main: 100 clients did 1000 writes in 5181 ms.<br />
main: Served about 19301.29 writes per second.<br />
============================================================================<br />
main: Publishing 1000 messages to 10 subscribers.<br />
main: Waiting for subscribers to receive all messages.<br />
main: Published 1000 messages and confirmed receival in 10 subscribers in 360 ms.<br />
main: Throughput (to confirmed delivery) with 10 subscribers was about 2777.78 published messages per second.<br />
main: 27777.78 messages received in total per second.<br />
============================================================================<br />
main: 100 clients doing 1000 lookups each.<br />
main: Waiting for clients to finish lookups.<br />
main: 100 clients did 1000 lookups each for a single cached value in 3812 ms.<br />
main: Served about 26232.95 lookups per second.<br />
============================================================================<br />
main: 100 clients incrementing the same key 1000 times.<br />
main: Waiting for threads to finish.<br />
main: 100 concurrent clients incremented 'incrKey1337529005509' 1000 times each. Completed in 3868 ms.<br />
main: So around 25853.15 increments per second<br />
============================================================================<br />
main: 5 queue listening clients dequeuing 50000 items from a queue.<br />
main: Waiting for all items to be dequeued.<br />
main: 5 clients listening to 'queueKey1337529009407' containing 50000 items emptied the queue in 1942 ms<br />
main: Queue listeners processed about 25746.65 items per second.<br />
QueueListener-2: dequeued a total of 9954 items<br />
QueueListener-1: dequeued a total of 10031 items<br />
QueueListener-5: dequeued a total of 9991 items<br />
QueueListener-3: dequeued a total of 9973 items<br />
QueueListener-4: dequeued a total of 10051 items<br />
============================================================================<br />
</code></p>
<p>Clone the repository and try twiddling around with it yourself:<br />
<code>git clone git://github.com/kallebertell/redisperf.git</code></p>
<p>You should be able to run the tests with plain maven:<br />
<code>mvn test</code></p>
<p>Or browse the github repo here: <a href="https://github.com/kallebertell/redisperf">https://github.com/kallebertell/redisperf</a></p>
<p>For more info about Jedis, check: <a href="https://github.com/xetorthio/jedis/wiki">https://github.com/xetorthio/jedis/wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2012/05/redis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scan-Agile</title>
		<link>http://kerebus.com/2012/02/scan-agile/</link>
		<comments>http://kerebus.com/2012/02/scan-agile/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 19:33:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=535</guid>
		<description><![CDATA[So Scan-Agile is coming up on the 8:th of March. I&#8217;ll try to forsee what I&#8217;ll go watch from http://scan-agile.org/program/. 10:00 Venkat Subramaniam: How to approach Refactoring – key step to agility I&#8217;ve seen Venkat a couple of times and &#8230; <a href="http://kerebus.com/2012/02/scan-agile/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>So Scan-Agile is coming up on the 8:th of March.<br />
I&#8217;ll try to forsee what I&#8217;ll go watch from http://scan-agile.org/program/.</p>
<p><br/><br />
<br/></p>
<h3>10:00</h3>
<p><br/></p>
<h4>Venkat Subramaniam:</h4>
<h4>How to approach Refactoring – key step to agility</h4>
<p>I&#8217;ve seen Venkat a couple of times and he&#8217;s a solid technical presenter.<br />
Here he is presenting scala:<br />
<iframe width="420" height="315" src="http://www.youtube.com/embed/LH75sJAR0hc" frameborder="0" allowfullscreen></iframe></p>
<p>If the topic (Refactoring) interests you it&#8217;ll probably be a worthwile.<br />
I think I know enough about the topic though so I think I&#8217;ll try to check something else.</p>
<h4>Dave Snowden:</h4>
<h4>The new 3 C’s: Complexity based approaches to project management</h4>
<p>
Something about Project Management. Here he is presenting something called Cynefin:<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/N7oz366X0-8" frameborder="0" allowfullscreen></iframe><br />
I forsee this presentation being a bit too academic for my tastes.
</p>
<h4>Brant Cooper:</h4>
<h4>It’s the End of the (Startup) World as We Know it</h4>
<p><span style="color: #339966; font-weight: bold;">Attending!</span></p>
<p>
I haven&#8217;t heard of the guy but he seems to know his stuff:<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/zoXn48P_jkw" frameborder="0" allowfullscreen></iframe>
</p>
<p><br/><br />
<br/></p>
<h3>11:00</h3>
<p><br/></p>
<h4>Olaf Lewitz:</h4>
<h4>Agile Community Building – Using StrategicPlay with Lego</h4>
<p><span style="color: #339966; font-weight: bold;">Attending!</span></p>
<p>
This is a 90minute session.</p>
<p>Here&#8217;s an interview with Olaf:<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/-OaHSPDGoec" frameborder="0" allowfullscreen></iframe><br />
I have no idea what it&#8217;s about but if it has Legos it must be good!<br/>
</p>
<p><br/><br />
<br/></p>
<h3>11:15</h3>
<p><br/></p>
<h4>Phil Calçado:</h4>
<h4>Better Functional Design Through Test-Driven Development</h4>
<p>
So TDD with functional languages. Might prove interesting.
</p>
<h4>Joseph Pelrine:</h4>
<h4>“Cynefin – Making Sense of Agile”</h4>
<p>
This sounds like Dave Snowdens stuff, but I know for a fact that Joseph Pelrine has very engaging sessions.<br />
It&#8217;s probably worth to attend no matter the topic is. Here he presenting about coaching self organising teams: <a href="http://www.infoq.com/presentations/coaching-self-org-teams">http://www.infoq.com/presentations/coaching-self-org-teams</a>
</p>
<h4>Stuart Eccles</h4>
<p>
Hey, this guy doesn&#8217;t have a topic yet.
</p>
<p><br/><br />
<br/></p>
<h3>13:45</h3>
<p><br/></p>
<h4>Daniel Knott:</h4>
<h4>Mobile App Testing – Challenges, Solutions and Best Practices</h4>
<p><span style="color: #339966; font-weight: bold;">Attending!</span></p>
<p>
Probably about how to do functional testing on Android and iPhone. I&#8217;m not burning for the topic but might be useful.
</p>
<h4>Kati Vilkki:</h4>
<h4>Creating continuous improvement culture</h4>
<p>
I guess this is going to be about retrospectives. Kati is an agilista from NSN.
</p>
<h4>Otto Hilska:</h4>
<h4>Flowdock’s journey to product-market fit</h4>
<p>
Flowdock is a nice product. I&#8217;m gonna guess this is going to be some 37 signalish approach. (They are using their own product etc)
</p>
<h4>Riitta Saarikangas:</h4>
<h4>Vuorovaikutuskoulutus: sosiaaliset vuorovaikutustyylit</h4>
<p>
This is a 90min session, I guess about social interaction.
</p>
<p><br/><br />
<br/></p>
<h3>15:00</h3>
<p><br/></p>
<h4>Chris Matts:</h4>
<h4>Feature Injection</h4>
<p>
I&#8217;m not quite sure what feature injection is, but I found this comic:<br />
<a href="http://www.agilejournal.com/articles/columns/articles/1643-feature-injection-">http://www.agilejournal.com/articles/columns/articles/1643-feature-injection-</a></p>
<p>Some day I&#8217;m going to read it.
</p>
<h4>Laura Snellman-Junna:</h4>
<h4>Mechanics of Empathy</h4>
<p>
So I guess some psychological thing explained so it can be understood by us nerds.
</p>
<h4>Tuomas Rinta:</h4>
<h4>Lean Organizational Growth</h4>
<p><span style="color: #339966; font-weight: bold;">Attending!</span></p>
<p>
I guess about how to scale a startup&#8217;s organization once it gets to a certain size.
</p>
<p><br/><br />
<br/></p>
<h3>16:15</h3>
<p><br/></p>
<h4>Daniel Temme:</h4>
<h4>Quit Your Job</h4>
<p>
If you don&#8217;t enjoy your job you&#8217;re wasting your life.
</p>
<h4>Marko Taipale:</h4>
<h4>Showing the unseen</h4>
<p>
Some agile technique involving pictures.
</p>
<h4>Marc McNeill:</h4>
<h4>Agile Experience Design</h4>
<p><span style="color: #339966; font-weight: bold;">Attending!</span></p>
<p>
Don&#8217;t know the guy but the topic is interesting.<br />
Here&#8217;s someone else on Agile User Experience:<br />
<iframe src="http://www.youtube.com/embed/tea_CtOsCKw" frameborder="0" width="420" height="315"></iframe>
</p>
<h4>Ari Tikka:</h4>
<h4>Zen at work</h4>
<p>
&#8220;After a short introduction we will do a 25 min meditation exercise.&#8221;</p>
<p>Ok <img src='http://kerebus.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2012/02/scan-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Old Map of Helsinki Overlaid</title>
		<link>http://kerebus.com/2012/01/old-map-of-helsinki-overlaid/</link>
		<comments>http://kerebus.com/2012/01/old-map-of-helsinki-overlaid/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 21:44:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=516</guid>
		<description><![CDATA[Earlier today I got this obsession of overlaying an aerial view of current day Helsinki over an old map from 1837. I had to rotate and skew the pic to get a better fit and here&#8217;s what I turned up with: &#8230; <a href="http://kerebus.com/2012/01/old-map-of-helsinki-overlaid/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>Earlier today I got this obsession of overlaying an aerial view of current day Helsinki over an old map from 1837. I had to rotate and skew the pic to get a better fit and here&#8217;s what I turned up with:</p>
<p><a rel="attachment wp-att-518" href="http://kerebus.com/2012/01/old-map-of-helsinki-overlaid/overlay_screenshot/"><img class="aligncenter size-medium wp-image-518" title="overlay_screenshot" src="http://kerebus.com/wp-content/uploads/2012/01/overlay_screenshot-300x186.png" alt="" width="300" height="186" /></a></p>
<p><a title="Old Map of Helsinki" href="http://kerebus.com/hkimap">Check out the live version</a>. It may work on some browsers (chrome).</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2012/01/old-map-of-helsinki-overlaid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analyzing a Tech Book: Android Wireless Application Development</title>
		<link>http://kerebus.com/2011/10/analyzing-a-tech-book-android-wireless-application-development/</link>
		<comments>http://kerebus.com/2011/10/analyzing-a-tech-book-android-wireless-application-development/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 18:29:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=508</guid>
		<description><![CDATA[Prolog I promised a publisher I&#8217;d review their book, Android Wireless Application Development (2nd edition), however, I tried doing a book review earlier and honestly it&#8217;s just a snooze to read; so I thought I&#8217;d write a blurb about tech &#8230; <a href="http://kerebus.com/2011/10/analyzing-a-tech-book-android-wireless-application-development/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<h4>Prolog</h4>
<p>I promised a publisher I&#8217;d review their book, <a href="http://www.amazon.com/gp/product/0321743016/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;tag=kerebus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321743016">Android Wireless Application Development</a> (2nd edition), however, I tried doing <a href="http://kerebus.com/2011/07/book-review-the-clean-coder/">a book review earlier</a> and honestly it&#8217;s just a snooze to read; so I thought I&#8217;d write a blurb about tech books in general too.</p>
<p>In general these technical books suffer from a very common ailment, being big and boring &#8211; no normal people would read these tomes from cover to cover and enjoy it. There are some publishers which consistently publish enjoyable succinct reading; but a large majority still churn out heavy tomes which end up selling regardless of their content.</p>
<p>The subject has been covered in some detail.</p>
<p>Andrew Binstock wrote about <a href="http://drdobbs.com/tools/229700183">Lax Language Tutorials</a> not too long ago,</p>
<p style="padding-left: 30px;"><em>&#8220;These books are marked by common failings that greatly frustrate their simple mission. The first and by far most-common handicap is a confusion by the authors in which they conflate a tutorial with a detailed treatise on every aspect of the language. For reasons not quite clear, the latter approach seems generally favored by the publishing industry, resulting in almost ridiculous volumes.&#8221;</em></p>
<p>Philip Greenspun also touches the subject in his <a href="http://philip.greenspun.com/wtr/dead-trees/story">Dead Trees story</a>,</p>
<p style="padding-left: 30px;"><em>&#8220;It is an article of faith in the computer publishing that bigger books sell better. They take up more space on the shelf and readers with a tech problem find a bigger book comforting. Readers aren&#8217;t really sure what is wrong with their computer and they only have a few minutes in the bookstore so they figure the thickest book is the most likely to contain the solution.&#8221;</em></p>
<p>Sounds plausible. I did a bit of googling about the myth of authors getting paid by the pages, but that seems to be untrue; although a thicker book might mean more sales which would mean there is an implicit motive to make your book as thick and heavy as possible.</p>
<h4>The Bad</h4>
<p>So how does this relate to Android Wireless Application Development? Well at 791 pages (including index and everything) it certainly is thick, although it&#8217;s not the thickest book I&#8217;ve seen. There are much worse. I&#8217;d love it if these books would limit themselves to 300 pages, but preferably closer to 200 pages.</p>
<p>The biggest cardinal sin of Wireless Application Development is explained by the authors&#8217; themselves in the very introduction:</p>
<p style="padding-left: 30px;"><em>&#8220;This book was written for several audiences:&#8221;</em></p>
<p>It goes on to list software developers, quality assurance, project managers and <em>&#8220;Other audiences&#8221;</em>. I figure you can write a book for several audiences, but you cannot write a _great_ book which is suited for several audiences.</p>
<p>The tech books which have affected me the most, the ones which were of most educational value to me, have all had focus. They tended to a narrow audience which I was a part of.</p>
<p>In Android Wireless Application Development I found maybe 3 chapters out of 29 completely irrelevant; which isn&#8217;t that bad actually.</p>
<h4>The Good</h4>
<p>Then again this is a reference book first. Every chapter can be read independently of each other. There is no common thread from beginning to end; so you can just pick the chapters which interest you and read them; and this is definitely the way you should read this book. Thankfully most chapters jump straight into code examples which mostly get straight to the point.</p>
<p>It doesn&#8217;t go very much in depth into the more advanced subjects, but nor should it. It scratches the surface and lets the reader go online if it interests him further.<br />
With 29 chapters this is certainly the way to go; although I myself would&#8217;ve maybe dropped some of those chapters, but at least it doesn&#8217;t leave any major subject unscratched.<br />
It&#8217;s all in there.</p>
<p>&nbsp;</p>
<p><a href="http://www.amazon.com/gp/product/0321743016/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;tag=kerebus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321743016"><img class="aligncenter size-full wp-image-510" title="Android Wireless Application Development" src="http://kerebus.com/wp-content/uploads/2011/10/android_wireless_app_dev.png" alt="" width="350" height="451" /></a></p>
<h4>The Judgement</h4>
<p>I used this book as a head rest while camping for a week in Iceland; and at 791 pages it certainly worked well for that; but you&#8217;ll learn a whole lot more if you actually read some of it. Good for the non-beginner Java dev wanting to learn Android development but also for intermediate Android developers who just need a reference book.</p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2011/10/analyzing-a-tech-book-android-wireless-application-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Book Review: The Clean Coder</title>
		<link>http://kerebus.com/2011/07/book-review-the-clean-coder/</link>
		<comments>http://kerebus.com/2011/07/book-review-the-clean-coder/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 15:49:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=478</guid>
		<description><![CDATA[Just finished The Clean Coder by Robert C. Martin. The predecessor, Clean Code, was one of the best books on programming I&#8217;ve ever read so the expectations for this book were high. Does it deliver? Yep. It might not be &#8230; <a href="http://kerebus.com/2011/07/book-review-the-clean-coder/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} -->Just finished <strong><a href="http://www.amazon.com/gp/product/0137081073/ref=as_li_tf_tl?ie=UTF8&amp;tag=kerebus-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=0137081073">The Clean Coder</a></strong> <img style="border: none !important; margin: 0px !important; display: inline !important;" src="http://www.assoc-amazon.com/e/ir?t=kerebus-20&amp;l=as2&amp;o=1&amp;a=0137081073&amp;camp=217145&amp;creative=399373" alt="" width="1" height="1" border="0" /> by Robert C. Martin. The predecessor, <strong><a href="http://www.amazon.com/gp/product/0132350882/ref=as_li_tf_tl?ie=UTF8&amp;tag=kerebus-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399377&amp;creativeASIN=0132350882">Clean Code</a></strong><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=kerebus-20&amp;l=as2&amp;o=1&amp;a=0132350882&amp;camp=217145&amp;creative=399377" alt="" width="1" height="1" border="0" />, was one of the best books on programming I&#8217;ve ever read so the expectations for this book were high.</p>
<p>Does it deliver? Yep. It might not be Clean Code good but still pretty damn good.</p>
<p>This book doesn&#8217;t really cover code at all but focuses on the coder, his behavior and on his  methodologies. It tackles very many difficult issues in very few pages in a clear and concise way. To cover the ground Bob does in about 200 pages is a major feat; especially when he manages to sprinkle in a fair amount of amusing anecdotes from his programming career to support his arguments.</p>
<p>I may disagree on some points but in overall agree with more than 95% of the stuff anyway so I&#8217;m not going to nitpick. This is an easily approachable book and won&#8217;t last you many evenings. This should be on any apprentice, journeyman and master programmer&#8217;s must-read-list.</p>
<div id="attachment_482" class="wp-caption aligncenter" style="width: 241px"><a href="http://www.amazon.com/gp/product/0137081073/ref=as_li_tf_tl?ie=UTF8&amp;tag=kerebus-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=0137081073"><img class="size-full wp-image-482" title="The Clean Coder" src="http://kerebus.com/wp-content/uploads/2011/07/cleanCoder.jpg" alt="" width="231" height="300" /></a><p class="wp-caption-text">A Code of Conduct for Professional Programmers</p></div>
<p>Short description of each chapter:</p>
<p><strong>Chapter 1:</strong> <em>Professionalism</em> &#8211; How to act like a professional. Surprisingly few coders know how to do this.</p>
<p><strong>Chapter 2: </strong><em>Saying No</em> &#8211; Say no to stuff you can&#8217;t promise 100% as trying and failing will just make people distrust you.</p>
<p><strong>Chapter 3:</strong> <em>Saying Yes</em> &#8211; When you say yes you should mean it. Commit to the stuff and don&#8217;t give vague promises.</p>
<p><strong>Chapter 4:</strong> <em>Coding</em> &#8211; When you should code, for how long and what to do about external forces affecting your coding ability.</p>
<p><strong>Chapter 5:</strong> <em>Test Driven Development </em>- Arguments for TDD.</p>
<p><strong>Chapter 6: </strong><em>Practicing</em> &#8211; Tips on how to practice and keep up with your craft.</p>
<p><strong>Chapter 7:</strong> <em>Acceptance Testing</em> &#8211; How to do acceptance testing.</p>
<p><strong>Chapter 8: </strong><em>Testing Strategies </em>- Explains how and what to test on different levels. The levels being depicted in a pyramid from the lowest layer to the top like this: Unit Tests, Component Tests, Integration Tests, System Tests and Manual Exploratory Testing.</p>
<p><strong>Chapter 9: </strong><em>Time Management</em> &#8211; How to get stuff done and how to deal with interferences and time thieves.</p>
<p><strong>Chapter 10: </strong><em>Estimation</em> &#8211; Arguments that estimates are always uncertain and should be communicated that way. Proposes several methods of doing agile estimation.</p>
<p><strong>Chapter 11: </strong><em>Pressure</em> &#8211; Keeping your cool and staying clean under pressure.</p>
<p><strong>Chapter 12: </strong><em>Collaboration </em>- The most common collaboration anti-patterns you might be guilty of.</p>
<p><strong>Chapter 13:</strong> <em>Teams and Projects</em> &#8211; Arguments for that teams shouldn&#8217;t be split up after projects.</p>
<p><strong>Chapter 14:</strong> <em>Mentoring, Apprenticeship, and Craftsmanship </em>- How apprentices should be mentored into journeymen.</p>
<p><strong>Appendix A: </strong><em>Tooling</em> &#8211; The minimum tool set you should at least have in use if you wish to call yourself a Professional.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2011/07/book-review-the-clean-coder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Amateur Android Game Development Tips</title>
		<link>http://kerebus.com/2011/06/amateur-android-game-development-tips/</link>
		<comments>http://kerebus.com/2011/06/amateur-android-game-development-tips/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 21:03:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=386</guid>
		<description><![CDATA[I&#8217;ve been meaning to write a summary about the feedback I got to my post about being an amateur Android game developer. It was mostly collected from reddit comments, hacker news comments, and comments on the blog post. If anyone &#8230; <a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been meaning to write a summary about the feedback I got to <a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/">my post about being an amateur Android game developer</a>. It was mostly collected from <a href="http://www.reddit.com/search?q=amateur+android+developer">reddit comments</a>, <a href="http://news.ycombinator.com/item?id=2368077">hacker news comments</a>, and <a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/#comments">comments on the blog post</a>.</p>
<p>If anyone was wondering if the post had any effect on downloads the answer is yes. It was the only marketing which clearly affected the download stats. However, as with traffic to the blog post, the effect was temporary. I guess if you manage to write interesting content regularly you could ride that wave better than I did.</p>
<p>So here are some points collected from the feedback, and some of my own subjective opinions reiterated from the last post now condensed in this handy list.</p>
<h1></h1>
<h4>Have an appropriate amount of polish.</h4>
<p>Great game concepts can be ruined by crappy presentation or bad user experience. If you don&#8217;t have artistic talent consider getting a guy to do the graphics for you. Ditto for musical talent.</p>
<div id="attachment_392" class="wp-caption alignnone" style="width: 599px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/ugly_gfx/" rel="attachment wp-att-392"><img class="size-full wp-image-392 " title="Amazing Polish" src="http://kerebus.com/wp-content/uploads/2011/06/ugly_gfx.png" alt="" width="589" height="332" /></a><p class="wp-caption-text">You can really immerse yourself and feel the seriousness of those orders when they&#39;re given by Mr. Potato head.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Don&#8217;t do ad-based marketing.</h4>
<p>Your game probably only costs a buck or so, so you&#8217;ll probably end up paying $10 to make a $1 in sales. It&#8217;s ok to do do cross-marketing however, e.g. between your games, which doesn&#8217;t cost you a dime.</p>
<div id="attachment_407" class="wp-caption alignnone" style="width: 655px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/cpc/" rel="attachment wp-att-407"><img class="size-full wp-image-407" title="cpc" src="http://kerebus.com/wp-content/uploads/2011/06/cpc.png" alt="" width="645" height="110" /></a><p class="wp-caption-text">On the 8th of October I paid 5.29e for 23 clicks. You&#39;re going to need some crazy conversion rate and a product which costs more than $1 if you&#39;re going to make that marketing money back</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>In-game ads make for a poor income unless you have hundreds of thousands of players</h4>
<p>You want to risk annoying your players for a few measly cents? You can annoy them when you can afford loosing some of your player base.</p>
<div id="attachment_395" class="wp-caption alignnone" style="width: 634px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/ad_revenue/" rel="attachment wp-att-395"><img class="size-full wp-image-395" title="Theseus Ad Revenue" src="http://kerebus.com/wp-content/uploads/2011/06/ad_revenue.png" alt="" width="624" height="222" /></a><p class="wp-caption-text">That&#39;s a YEAR&#39;S WORTH OF AD REVENUE from Theseus. It&#39;s all gonna go to finance my extravagant lifestyle.
 I&#39;m practically rolling in moolah.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>A proven concept on platform X doesn&#8217;t mean it&#8217;s going to be a hit on platform Y</h4>
<p>Sometimes it&#8217;s just how the stars are aligned. Sometimes your version just sucks.</p>
<div id="attachment_404" class="wp-caption alignnone" style="width: 599px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/pacman/" rel="attachment wp-att-404"><img class="size-full wp-image-404" title="pacman" src="http://kerebus.com/wp-content/uploads/2011/06/pacman.jpg" alt="" width="589" height="332" /></a><p class="wp-caption-text">You may have the first pacman on some device, it still might not make a difference.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Updating each week will boost your downloads temporarily</h4>
<p>I have simply not found any other easy marketing technique to be as effective.</p>
<div id="attachment_410" class="wp-caption alignnone" style="width: 619px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/peaks/" rel="attachment wp-att-410"><img class="size-full wp-image-410" title="peaks" src="http://kerebus.com/wp-content/uploads/2011/06/peaks.png" alt="" width="609" height="128" /></a><p class="wp-caption-text">Visitors to Theseus. Each one of those peaks coincide with an update to the game.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Do it for fun</h4>
<p>Chances are it will never make any substantial sales, so treat it as a hobby. Those cinderella stories about devs striking it rich are just that &#8211; cinderella stories.</p>
<div id="attachment_413" class="wp-caption alignnone" style="width: 364px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/fun/" rel="attachment wp-att-413"><img class="size-full wp-image-413" title="fun" src="http://kerebus.com/wp-content/uploads/2011/06/fun.jpg" alt="" width="354" height="234" /></a><p class="wp-caption-text">Just me and my computer on a Saturday night hacking away. Fun.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Don&#8217;t re-invent the wheel, or the game engine.</h4>
<p>Check out <a href="http://www.andengine.org/">AndEngine</a> for instance. You&#8217;ll save a bunch of time.</p>
<div id="attachment_416" class="wp-caption alignnone" style="width: 428px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/clippy/" rel="attachment wp-att-416"><img class="size-full wp-image-416" title="clippy" src="http://kerebus.com/wp-content/uploads/2011/06/clippy.png" alt="" width="418" height="163" /></a><p class="wp-caption-text">Thanks Clippy!</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Pimp out your game whenever you can</h4>
<p>It&#8217;s not going to make much of a difference but people who don&#8217;t know about your game can&#8217;t buy your game. Btw. <a href="https://market.android.com/details?id=com.kerebus.mazelite">download Theseus and the Minotaur</a>.</p>
<div id="attachment_419" class="wp-caption alignnone" style="width: 360px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/pimp/" rel="attachment wp-att-419"><img class="size-full wp-image-419" title="pimp" src="http://kerebus.com/wp-content/uploads/2011/06/pimp.jpg" alt="" width="350" height="505" /></a><p class="wp-caption-text">Poor applications working for their pimpin&#39; developers.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Use in-game analytics</h4>
<p>You&#8217;ll want statistics about your game usage.</p>
<div id="attachment_439" class="wp-caption alignnone" style="width: 510px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/black_box/" rel="attachment wp-att-439"><img class="size-full wp-image-439" title="black_box" src="http://kerebus.com/wp-content/uploads/2011/06/black_box.png" alt="" width="500" height="300" /></a><p class="wp-caption-text">That&#39;s a black box. That&#39;s how much insight you&#39;ll have about your game usage without in-game analytics.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Retention matters</h4>
<p>Old players of your game are your best source for word-of-mouth marketing. You can achieve better retention by for example adding new levels regularly. In free versions if you don&#8217;t want to add more levels you could for example switch which levels are available for free to re-activate old potential customers.</p>
<div id="attachment_448" class="wp-caption alignnone" style="width: 508px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/retention-2/" rel="attachment wp-att-448"><img class="size-full wp-image-448" title="retention" src="http://kerebus.com/wp-content/uploads/2011/06/retention.jpg" alt="" width="498" height="437" /></a><p class="wp-caption-text">Word of mouth marketing in action. The tobacco industry has great retention among its consumers.</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>It doesn&#8217;t hurt to have lovable characters</h4>
<p>If your game doesn&#8217;t have characters consider adding some and make sure they have some personality and are memorable.</p>
<div id="attachment_422" class="wp-caption alignnone" style="width: 308px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/pikachu/" rel="attachment wp-att-422"><img class="size-full wp-image-422" title="pikachu" src="http://kerebus.com/wp-content/uploads/2011/06/pikachu.png" alt="" width="298" height="272" /></a><p class="wp-caption-text">The marketing-droids at Nintendo knew what they were doing when they unleashed this yellow cretin upon the world</p></div>
<p>&nbsp;</p>
<h1></h1>
<h4>Cram out several games</h4>
<p>Your first game is probably gonna be a dud. If your game doesn&#8217;t seem to be picking up and developing it is become a chore, then just cut your losses and move on to the next project. The more games you make the better, faster, leaner and meaner you will get.</p>
<div id="attachment_431" class="wp-caption alignnone" style="width: 610px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/conveyor_belt/" rel="attachment wp-att-431"><img class="size-full wp-image-431" title="conveyor_belt" src="http://kerebus.com/wp-content/uploads/2011/06/conveyor_belt.jpg" alt="" width="600" height="358" /></a><p class="wp-caption-text">It&#39;s the episode of Lucy when she was working in the android app factory.</p></div>
<h1></h1>
<h1></h1>
<h4>Prefer game concepts which have a fast development time</h4>
<p>A role playing game is going to need a lot of story and a lot of graphics, and a lot of your time. A game in which the player tries to beat his own high score won&#8217;t be infinitely time consuming and might still be a bigger hit.</p>
<div id="attachment_434" class="wp-caption alignnone" style="width: 613px"><a href="http://kerebus.com/2011/06/amateur-android-game-development-tips/rpg_vs_whackamole/" rel="attachment wp-att-434"><img class="size-full wp-image-434" title="rpg_vs_whackamole" src="http://kerebus.com/wp-content/uploads/2011/06/rpg_vs_whackamole.png" alt="" width="603" height="278" /></a><p class="wp-caption-text">Developer, choose your fate!</p></div>
<p>&nbsp;</p>
<p>Thoughts? Go ahead and comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2011/06/amateur-android-game-development-tips/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>My Year as an Amateur Android Game Developer</title>
		<link>http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/</link>
		<comments>http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 19:29:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[theseus]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=194</guid>
		<description><![CDATA[Back in February of 2010 I was coding in the offices of our customer &#8211; a semi-big Finnish company. It was interesting from a technical perspective, but the project had changed directions about half a dozen times in the past &#8230; <a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>Back in February of 2010 I was coding in the offices of our customer &#8211; a semi-big Finnish company. It was interesting from a technical perspective, but the project had changed directions about half a dozen times in the past 6 months. I guess it lacked someone with some backbone to lead it according to one vision. Instead they were bending over to anyone with an opinion and we had a veritable software Frankenstein on our hands. Despite being a neat programming challenge the product itself was a mismanaged collection of random features in which my own faith was close to zero. It&#8217;s at times like these you start looking elsewhere for something that would bear more meaning.</p>
<p>I&#8217;ve done my own random software projects now and then and the last few years my interest had shifted to products that could make some dough. I had often taken ideas to the implementation stage, but most of these projects ended up fizzling out due to lack of motivation, becoming cute tech demos in the corner of my hard drive or in a forgotten code repository. In spite of that I was getting that urge to create something of my own again.</p>
<h4>A MOBILE FUTURE NOT TOO DISTANT</h4>
<p>I had read about the fortunes some lucky developers had managed to make on the AppStore, but the real gold rush seemed mostly over. On the other hand the Android platform was gaining traction and it had a serious lack of fart applications; and I reckoned those fart applications needed developers. I had a crappy old Symbian based Nokia phone and thought it might be time to get one of those new fangled smarty phones. The iPhone was only available from one operator (not mine), and developing for it required a Mac, which was an even steeper investment. This made me hop on the Android bandwagon. I ended up scouring an auctioning site for an HTC Hero and on the 28:th of February 2010, I had the winning bid on a white HTC Hero. In the beginning of March a package of used mobile electronics had arrived much to the glee of a new owner.</p>
<div id="attachment_191" class="wp-caption alignleft" style="width: 220px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/htc_horse_black/" rel="attachment wp-att-191"><img class="size-full wp-image-191 " title="Htc Horse" src="http://kerebus.com/wp-content/uploads/2011/03/htc_horse_black.png" alt="" width="210" height="176" /></a><p class="wp-caption-text">The horse sticker wasn&#39;t included. I had to accessorize it myself.</p></div>
<div id="attachment_201" class="wp-caption alignright" style="width: 190px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/mobile_future/" rel="attachment wp-att-201"><img class="size-full wp-image-201 " title="The Future of Mobile" src="http://kerebus.com/wp-content/uploads/2011/03/mobile_future.jpg" alt="" width="180" height="204" /></a><p class="wp-caption-text">Soon even your grandma will be ruled by a smart phone overlord</p></div>
<p>I played around with the Hero &#8211; and compared to my Nokia it was night and day. I came to the conclusion that these smart phones were going to be our overlords very soon. We&#8217;d be fiddling with these buggers updating our tweetbooks, fouring our facesquare, reading, chatting and playing on the go. In fact I concluded the gold rush was far from over, it was merely beginning. It wouldn&#8217;t be over until most people were conducting most of their online time on their phones. I don&#8217;t know where we&#8217;re now, but if we&#8217;re not there yet I think it&#8217;s pretty safe to say we&#8217;re getting closer.<br />
<span id="more-194"></span></p>
<h4>LOSING MY MOBILE DEVELOPMENT VIRGINITY</h4>
<p>All hyped up about mobile development and with an old-new android phone I was ready to jump in. First off was the perpetual &#8220;hello world&#8221; application. This was a crucial moment in determining if I was going to develop anything at all for Android. Any hiccups in the install and setup of the sdk, or the deployment of the first application which would require hours of troubleshooting is usually a decisive motivation killer. Surprisingly I had none of those problems. It was an easy setup and painless to get that &#8220;Hello World&#8221; application running on the phone. This first hurdle was a breeze.</p>
<div id="attachment_188" class="wp-caption alignleft" style="width: 254px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/three_tier_architecture/" rel="attachment wp-att-188"><img class="size-full wp-image-188  " title="Snake vs. Three Tier Architecture" src="http://kerebus.com/wp-content/uploads/2011/03/three_tier_architecture.png" alt="" width="244" height="128" /></a><p class="wp-caption-text">On the left: Snake. On the right: What puts bread and butter on the table - the three tier architecture.</p></div>
<p>I started playing around with the example projects. There was a Snake game which had a tile based graphics engine. It was simple enough for me to comprehend. I say simple enough for me comprehend due to the fact that I almost exclusively do &#8220;enterprise&#8221; software. That means a lot of backend java and some not so snazzy web-based or desktop-based front-ends. Many of my spare time projects were graphical in nature, but it paled in comparison to the pile of experience I had in database based applications and the likes.</p>
<p>So I picked the game engine for Snake apart and for the heck of it started making a turn based puzzle game I had played many years ago. I chose it since its logic was easy enough to be a suitable programming challenge. In a couple of evenings I had a rough playable prototype. To move my character on the screen I had to use the trackball. It moved without animation one tile at a time, and the game only had one level. It lacked a touch interface, animation, graphics and generally a lot of work, but it was playable and that really motivated me. I figured this might as well be the thing I develop since I liked the game and I had made it this far already, but it wasn&#8217;t an original game and I didn&#8217;t have a clue about licensing and such.</p>
<div id="attachment_272" class="wp-caption alignleft" style="width: 190px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/java_applet/" rel="attachment wp-att-272"><img class="size-full wp-image-272" title="Java Applet of Theseus" src="http://kerebus.com/wp-content/uploads/2011/03/java_applet.png" alt="" width="180" height="235" /></a><p class="wp-caption-text">The Java applet of Theseus I had played years ago</p></div>
<h4>SEEKING OUT THE DESIGNER</h4>
<p>The name of the original game was Theseus and the Minotaur. I had played a java applet based version years ago during my studies. I remember stumbling upon it when I was searching for algorithms on maze generation, which I probably had some fine reason to do. I remembered that the original designer had a web page about puzzle games of some sorts and it was pretty easy to find it &#8211; Robert Abbott&#8217;s page about <a href="http://www.logicmazes.com/">logic mazes</a>. I think he had created the game back in the 80s when it was played with pen and paper.</p>
<div id="attachment_190" class="wp-caption alignright" style="width: 134px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/pen_and_paper/" rel="attachment wp-att-190"><img class="size-medium wp-image-190 " title="Pen and Paper" src="http://kerebus.com/wp-content/uploads/2011/03/pen_and_paper-206x300.jpg" alt="" width="124" height="180" /></a><p class="wp-caption-text">Yesteryears gaming device</p></div>
<div id="attachment_275" class="wp-caption alignleft" style="width: 310px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/mummy_maze/" rel="attachment wp-att-275"><img class="size-medium wp-image-275" title="PopCap's Mummy Maze" src="http://kerebus.com/wp-content/uploads/2011/03/mummy_maze-300x225.png" alt="" width="300" height="225" /></a><p class="wp-caption-text">PopCap&#39;s take on Theseus and the Minotaur: Mummy Maze</p></div>
<p>The web page had a section of different implementations of Theseus. Here I noticed someone had already made the game for the iPhone among other platforms. Then it dawned on me that I hadn&#8217;t even checked if it existed for the Android. It didn&#8217;t, not by the same name at least. I googled around and turns out the game was more popularly known as the Mummy Maze. A game popularized by PopCap. I was a bit discouraged at first since I wasn&#8217;t about to be the first to rekindle this old puzzle. A lot of people had beaten me to the punch, a bunch of times, on a bunch of different platforms. The iPhone version had been a success though, and the Mummy Maze seems to have been quite successful as well. That meant that I wasn&#8217;t the only one liking the game and if I could make it for the Android I&#8217;d have a proven concept for that platform.</p>
<p>I e-mailed Robert on the 13:th of March and asked him if it&#8217;d be ok to create a version of Theseus on the Android. A few days later he replied that he&#8217;s been waiting for someone to bring it to the platform. We agreed on some license fee based on sales and I was happy to have the support of the original designer.</p>
<p>I had a successful formula and the exclusive rights for bringing it to the Android. This was promising.</p>
<h4>YOU WILL PROBABLY FAIL</h4>
<div id="attachment_219" class="wp-caption alignright" style="width: 310px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/desert_market/" rel="attachment wp-att-219"><img class="size-full wp-image-219" title="Android Market" src="http://kerebus.com/wp-content/uploads/2011/03/desert_market.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">A picture of Android&#39;s thriving market back in 2010. The tumbleweed there is probably a free low quality application. Worst analogy ever but I&#39;m not giving it up</p></div>
<p>Searching for information I found a lot of foreboding warnings of how nobody was making money on Android Market. There were no paying customers and a majority of applications were free.</p>
<p>It didn&#8217;t really detract me. Nobody was making money now but by the time I was about to release it might be gold rush time. Besides, most of the apps seemed of really low quality and I wouldn&#8217;t have paid for them myself. I was going to deliver something more polished than the standard fare.</p>
<h4>THE BRUSH STROKES OF A LESSER ARTIST</h4>
<div id="attachment_220" class="wp-caption alignleft" style="width: 171px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/iphone_theseus/" rel="attachment wp-att-220"><img class="size-full wp-image-220" title="iPhone Theseus" src="http://kerebus.com/wp-content/uploads/2011/03/iphone_theseus.png" alt="" width="161" height="165" /></a><p class="wp-caption-text">iPhone Theseus. This is either some obscure reference to greek mythology or two marbles on a chessboard covered in matches</p></div>
<p>The game&#8217;s mechanics were so simple it didn&#8217;t take me too long to get the first rough prototype ready. Thus far I had been using the same tiles as in the Snake example that came with the Android SDK. For inspiration for my own graphics I was lucky to be able to sneak peek at what the iPhone developer, Jason Fieldman, had done for his iPhone version of the game. He simply had some pretty looking marbles on a checkered board, so I went the same route. It seemed smart &#8211; simple and suited for a small screen.</p>
<div id="attachment_243" class="wp-caption alignright" style="width: 210px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/original_graphics/" rel="attachment wp-att-243"><img class="size-medium wp-image-243" title="Theseus and the Minotaur" src="http://kerebus.com/wp-content/uploads/2011/03/original_graphics-200x300.png" alt="" width="200" height="300" /></a><p class="wp-caption-text">Theseus on the Android. Admittedly not as pretty as its iPhone sibling</p></div>
<p>I like drawing with pen and paper but doing it on a computer is not my forte. Regardless of that I downloaded a trial of Photoshop and followed an on-line tutorial on how to make a glass ball. It looked like shit. Frustrated and tired I gave up on Photoshop. A couple of days later I downloaded an Illustrator trial &#8211; and by editing some pre-made symbol of a blue marble I made the blue ball that became Theseus. I copy/pasted this and made another red one with horns representing the Minotaur. Then I made different color squares with gradients to use as the checkered board. This took me the better part of a whole evening of which most of the time went to learning Illustrator. However, I would tweak the graphics several times later on; obsessing over the right shade of blue, if it&#8217;s the correct size, if it&#8217;s too shiny or if the Minotaur should have straight or curved horns.</p>
<p>At some point I stopped and decided to be content with the graphics. The unnecessary gradients on the squares were probably distracting and the color choices might&#8217;ve not been the best but I didn&#8217;t see major improvements to make. I decided they were good enough for a puzzle game.</p>
<p>What turned out to be the darker side of graphics productions was to convert the vectors into correctly sized bitmaps, create two or three different resolutions of each image and save them as PNGs in your project&#8217;s resource folder. That&#8217;s stuff you should automate if possible; and I never did. This conversion was so tedious and boring it became the biggest hurdle to improving the graphics.</p>
<h4>RESOLUTION INDEPENDANCE</h4>
<p>Android phones come with different resolutions, so I made sure the graphics scaled to maximize the usage of the screen, which is why I needed different resolutions for my graphics. If I programmatically scaled an image too far away from its original dimensions it&#8217;d end up looking all jagged and crappy. In addition to that some levels were wider than taller so I wanted it to be possible to put the game in landscape mode. This would play well with my auto-scaling graphics that would just re-scale itself whenever you flipped the phone. On-screen controls seemed like they&#8217;d waste valuable screen real estate so I skipped them, which spared me having to worry about how to lay them out according to level size, resolution, portrait and landscape mode.</p>
<h4>THE INTERFACE AND HOW TO USE IT</h4>
<p>Without on-screen controls the game only offered trackball and touch screen swipes as input methods. This made for a more challenging learning curve since there wouldn&#8217;t be any obvious buttons to press on the screen.</p>
<div id="attachment_269" class="wp-caption alignright" style="width: 303px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/stupid_as_a_fox/" rel="attachment wp-att-269"><img class="size-full wp-image-269" title="Stupid Like a Fox" src="http://kerebus.com/wp-content/uploads/2011/03/stupid_as_a_fox.png" alt="" width="293" height="258" /></a><p class="wp-caption-text">Design your UI so even someone with the attention span of Homer could play it.</p></div>
<p>Whilst play testing the game with friends I got fed up with having to explain how to play the game, so I realized I had to put some effort into making a good tutorial. First I mistakenly used the &#8220;wall of text&#8221; method. I had a tutorial level where the player who walked through it got long click-through instructions. A minority of the players read them and the rest just clicked them away, ignoring any instructions, and subsequently getting stuck. To them it just seemed like a click-through EULA.</p>
<p>So I ended up splitting the instructions up and made sure the texts were as short as possible. That helped a bit, but what really made the difference was putting a colorful picture beside the text. I guess the pictures made the instructions more inviting.</p>
<div id="attachment_349" class="wp-caption alignright" style="width: 610px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/tutorial_text-2/" rel="attachment wp-att-349"><img class="size-full wp-image-349" title="Wall of Text vs. Short Illustrated Instruction" src="http://kerebus.com/wp-content/uploads/2011/03/tutorial_text1.png" alt="" width="600" height="214" /></a><p class="wp-caption-text">Left: Wall of Text == Bad. Right: Short Illustrated Text == Good</p></div>
<h4>KEREBUS &#8211; THE FACE OF MY IT-VENTURES</h4>
<div id="attachment_192" class="wp-caption alignright" style="width: 207px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/bargain_radio/" rel="attachment wp-att-192"><img class="size-full wp-image-192 " title="Bargain Radio" src="http://kerebus.com/wp-content/uploads/2011/03/bargain_radio.jpg" alt="" width="197" height="219" /></a><p class="wp-caption-text">My startup advisor was an avid collector of bargain radios</p></div>
<p>I was well under way with development and was seeing light at the end of the tunnel already in April, which I happily told Robert as well. I hadn&#8217;t figured out what I had to do to be able to sell the game though. There were two big question marks. Did I need to register a company &#8211; and how was I going to sell the game; since selling applications hadn&#8217;t been enabled for Finnish citizens yet.</p>
<p>In Finland you better have registered a company if you were going to make over 8500€ in sales a year since you are then required to pay VAT on sales. Well I figured there might be a small chance I&#8217;d make that dough in 2010 so I concluded that I better register a company before releasing the game. I went to some informative meeting here in Helsinki on founding a company that was ok, but it didn&#8217;t answer many of my questions. I was able to reserve a one-hour session with a free startup advisor of whom I had planned to ask about contracts and taxation. The advisor was a gentleman at least 60 years old, and I guess he did these advising gigs on the side of retirement. I think in the one-hour session I had with the advisor I got 15 minutes of useful information, which was mostly about how to fill my form for founding the company. On the tax and contractual issues he couldn&#8217;t answer anything but refer me to some random lawyers, neither who seemed like experts in the subject matter. The rest of the time he spoke about his hobby of collecting radios. That&#8217;s a good 45 minutes talking about radios. They weren&#8217;t antique radios or rare in any way. They were just radios he&#8217;d gotten at a bargain price. In fact it was the bargains he was actually collecting. All in all I think I got my money&#8217;s worth from this advisor since it was free, and he got to talk about his radios.</p>
<p>At the end of May I paid a 70€ registration fee and submitted the form for founding my company- Kerebus.</p>
<h4>THE INTRICACIES OF INTERNATIONAL TAX LAW</h4>
<div id="attachment_221" class="wp-caption alignright" style="width: 145px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/laprohaig/" rel="attachment wp-att-221"><img class="size-medium wp-image-221 " title="Laprohaig" src="http://kerebus.com/wp-content/uploads/2011/03/laprohaig-225x300.jpg" alt="" width="135" height="180" /></a><p class="wp-caption-text">Laprohaig. Relatives, this buys you the best IT support</p></div>
<p>During learning about starting up a company I was also investigating the issues with selling the app. Since I wasn&#8217;t able to sell apps on Android Market as a Finnish citizen back then, I had to have someone outside of Finland sell it for me. Plan A was to sell the game through a friend in Germany where Google had enabled commerce. I probably spent a month on figuring out tax law and how I should bill the reseller of my game. I gathered I could look stuff up in books as well as any lawyer or accountant. I did end up uncovering most mysteries by myself but without being able to reaffirm my conclusions I felt like I was on pretty shaky ground. Finally I remembered that my uncle, whom I had helped with computer troubles in past years, was in the accounting biz. He usually gave bottles of whiskey for the computer help but I figured he owed me anyway since it wasn&#8217;t single malt. He didn&#8217;t know the answers himself but asked some of his accounting friends who emailed me the answers.</p>
<p>One of the peculiarities was that for the license fee I was going to pay Robert I had to pay 23% inverse VAT to the Finnish government. It all seemed bizarre and utterly demotivating. Tax law had been one of the most uninspiring subjects I had ever studied and I&#8217;m happy to forget anything I learned. I&#8217;ll refer to an Einstein quote, &#8220;Never memorize what you can look up in books&#8221;, either that or get someone else to do this soulless work for you.</p>
<div id="attachment_189" class="wp-caption alignleft" style="width: 168px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/tax_law/" rel="attachment wp-att-189"><img class="size-full wp-image-189 " title="Tax Lawyer" src="http://kerebus.com/wp-content/uploads/2011/03/tax_law.png" alt="" width="158" height="170" /></a><p class="wp-caption-text">Tax Law - that&#39;s why I look this awesome.</p></div>
<p>Anyway. It turned out my friend in Germany was to move back to Finland so I had to go with Plan B &#8211; sell through one of Robert&#8217;s acquaintances, Yann, in the US. This turned out to be favorable decision since the taxes in the US are more straightforward and considerably lighter compared to Finland or Germany. I could also organize for him to do the license payment straight to Robert within the US so I didn&#8217;t have to pay the inverse VAT.</p>
<h4>THERE&#8217;S NO GAME WITHOUT LEVELS</h4>
<p>With the boring issues of company and reselling resolved I could concentrate fully on development again. I was getting close to ready but was lacking levels. The other versions of the game had 87 levels, all of which were designed by Robert and some other guys I gathered to be some hard core puzzle aficionados. It was agreed that I could reuse the original 87 levels &#8211; this way I didn&#8217;t need to design any new levels for the initial release of the game. I had a text-based format for defining the levels. I painstakingly defined a couple of levels by writing wall coordinates by hand into a text file before deciding I had to make a level editor.</p>
<p>Making a level editor was easier than I thought, well worth the time put into it. I coded the first working revision of it during a 4-hour train ride from Helsinki to Vaasa. I made it a Swing/Java app. I hadn&#8217;t used Swing for some years but turned out it was just like riding a bicycle &#8211; a really ugly bicycle.</p>
<div id="attachment_310" class="wp-caption aligncenter" style="width: 586px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/level_editor/" rel="attachment wp-att-310"><img class="size-full wp-image-310" title="Level Editor" src="http://kerebus.com/wp-content/uploads/2011/03/level_editor.png" alt="" width="576" height="240" /></a><p class="wp-caption-text">The level editor. Ugly but gets the job done.</p></div>
<p>So what I did for the original levels was to draw them in my level editor and export them into my text format. I also made a couple of my own levels so I could be among the level designers.</p>
<h4>SIGN YOUR NAME IN E-BLOOD HERE, HERE AND HERE</h4>
<p>For any contracts I was recommended to get a lawyer by our good startup advisors in Helsinki. So as usual I disregarded the sound advice of Mr. Bargain Radio and skimped on the lawyers. Instead I used one of Robert&#8217;s old contracts, which he had signed with some Spanish dude who had released a board game in Spain based on one of his designs. I used it as a template and just changed the names and tweaked the text to suit our situation. Afterwards I emailed this to all signing parties and defined that by replying &#8220;I AGREE&#8221; to the email they&#8217;d agree to the terms. Emails are considered binding contracts in most European countries and the U.S.</p>
<h4>OH YEAH, I WAS SUPPOSED TO RELEASE SOME SORT OF GAME</h4>
<p>Initially I had told Robert I&#8217;d probably release in April. If I started in mid March that means that I would&#8217;ve made it from inception to release in about a month and a half. It was now August, which meant I had blown up the original time budget by a considerable amount. The development probably took a bit longer than expected, but my insistence on founding a company and figuring out all the tax issues beforehand set me back significantly. I also had my month long summer vacation, during which I was supposed to code, but I ended up enjoying the summer instead. Good for me.</p>
<p>So on the 14:th of August the game got released. The release itself was fairly uneventful. Straight after release I got a pre-paid UK sim card from Ebay, luring Android market into thinking I was a UK citizen, so I could buy my own game. According to Yann (the reseller) I wasn&#8217;t even the first buyer, someone else in Massachusetts had paid top dollar to buy my game before me. The free demo version, which I released simultaneously, was getting 10, even 20 downloads a day. It was all rather exciting.</p>
<p>The excitement faltered when I realized the amount of downloads was always 10 to 20 a day. I couldn&#8217;t follow the exact download count of the pay version since Yann was publishing it, and I didn&#8217;t want to bother him with update requests too often. The download count on Android market stayed below the &#8221;</p>
<h4>GUERILLA MARKETING</h4>
<p>To boost downloads of the game I thought I&#8217;d do some guerilla marketing. I tried mentioning the game in the comments of some blogs and game sites, but it didn&#8217;t do much except make me feel like an idiot.</p>
<blockquote><p>&#8220;Have you checked this super puzzle on android. It&#8217;s called Theseus and the Minotaur!&#8221;</p></blockquote>
<p>I don&#8217;t know if that&#8217;s the kind of stuff other guerilla marketers do, but to me it seemed moronic.</p>
<p>The alternative app markets at the time had a low number of users. SlideMe was the only one where I got any significant downloads of the ones I tried. GetJar is supposedly a bit bigger too but I managed to miss that one. I did try to submit the game to some review sites; but no one picked up on it. My negligible marketing effort didn&#8217;t have any effect as far as I could tell. I knew I had to get my app out there somehow but I preferred to do coding. I read somewhere that when a programmer has a problem he tries to solve it with more programming. I feel I fell into this category. I knew I had a marketing problem but instead I preferred to refractor my code, tweaking features X and Y, and adding feature Z. I knew this wasn&#8217;t addressing my main problem but I did it anyway.</p>
<h4>MY TIME AS MICHAEL WINSLOW</h4>
<p>So the game was out. I had released much later than planned but I still considered it an early release since it lacked a lot of features, like sound.</p>
<div id="attachment_206" class="wp-caption alignright" style="width: 198px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/michael_winslow/" rel="attachment wp-att-206"><img class="size-full wp-image-206" title="Michael Winslow" src="http://kerebus.com/wp-content/uploads/2011/03/michael_winslow.jpg" alt="" width="188" height="189" /></a><p class="wp-caption-text">Michael Winslow of Police Academy</p></div>
<p>Sound seemed like the least important feature in a turn based puzzle game. It&#8217;s almost always the first thing I go turn off from an options menu, but a couple of people had asked for it; and I wasn&#8217;t getting much feedback. So I made sound effects that I felt would improve the user experience. Something distinct when you die, escape, wait a turn and so on. First I tried some free online sound libraries, but they didn&#8217;t have anything fitting my purposes. I ended up recording all of these sounds myself with my own voice. I used Audacity for the recording and post processing of my sound clips. A bunch of &#8220;Whee!&#8221;, &#8220;Munch munch munch&#8221; and *Click*.</p>
<p><a href="http://kerebus.com/audio/whee.mp3">Whee!</a></p>
<p>Sound did make the game experience more engaging; and I could probably add more of it and maybe even some sort of optional music in the title screen.</p>
<h4>&#8220;JUST IN&#8221; MARKETING</h4>
<p>It didn&#8217;t take me long to discover that updating the app lead to a spike in downloads because you got to the top of the &#8220;Just In&#8221; list. However, you could only jump up to the top if it had been a week since your last visit there. With an unknown app you&#8217;d get 90% of your downloads from being in the &#8220;Just In&#8221; list once a week. So in the early weeks and months I kept upgrading the game actively. Later on I just kept churning out a couple of levels each week.</p>
<p>The effect of being in the &#8220;Just In&#8221; list is of course a well know fact which the developers of Sex Tips, Trivia Games, Sexy Girl Wallpapers and so on know very well. Curiously these guys find some meaningful update to do every week in their dozens of template-based applications.</p>
<div id="attachment_234" class="wp-caption aligncenter" style="width: 202px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/sex_tips_app/" rel="attachment wp-att-234"><img class="size-full wp-image-234 " title="Sex Tips" src="http://kerebus.com/wp-content/uploads/2011/03/sex_tips_app.jpg" alt="" width="192" height="288" /></a><p class="wp-caption-text">I can&#39;t wait to see what the next update to Sex Tips holds</p></div>
<p>The optimal time to be in the &#8220;Just In&#8221; list seemed to be during Sunday evenings. That time slot will give you double the amount of downloads compared to a weekday. I don&#8217;t know if this is because the Sex Tips developer and others only do releases during weekdays and don&#8217;t spam out other apps or because people like to play games on Sunday evenings. Might be both.</p>
<p>The amount of downloads you get by being in the &#8220;Just In&#8221; list has decreased remarkably since August 2010. I guess the competition is getting tougher.</p>
<h4>CLOSING THE FEEDBACK LOOP</h4>
<p>I was following the download stats daily and updating the game in response to the little feedback that I got, but I didn&#8217;t really know if my changes had any effect. The download stats don&#8217;t really give you much insight. You know that someone downloaded it but don&#8217;t know if they even played, for how long or which level they spend most time on. You don&#8217;t know if you&#8217;re retaining users. I stumbled upon Google Analytics for Android and integrated it with the game. I also noticed Flurry later on and I might&#8217;ve chosen that instead had I known about it.</p>
<div id="attachment_114" class="wp-caption aligncenter" style="width: 640px"><a href="http://kerebus.com/2011/01/stats-analysis-reaction-result/visitor_stats/" rel="attachment wp-att-114"><img class="size-full wp-image-114" title="Visitor Stats" src="http://kerebus.com/wp-content/uploads/2011/01/visitor_stats.png" alt="Theseus Visitors 2010-12-05 to 2011-01-08" width="630" height="270" /></a><p class="wp-caption-text">Visitor statistics. The peaks occur right after updates to the game.</p></div>
<p>You can program your app to collect events and it&#8217;ll send them back to Google Analytics at a set time interval. I was able to see which levels were the most played, what functions the players used the most (e.g. restart and hint), how many minutes or seconds they spent in the game in average, resolutions of their phones, bounce rates etc. All kinds of stats which you can overanalyze, but at least you have something to go on.</p>
<p>It made the game development sort of a game in itself where the aim was to improve the right numbers.</p>
<h4>NOW A BLURB ON PAID MARKETING</h4>
<p>At some point I got a 75€ voucher for Google AdWords so I decided to try it out to market my game. I might&#8217;ve screwed it up somehow, but targeting only android platforms and doing display and sponsored search results had no effect at all. The Cost per Click ended up being something like $5 which is way more than what the pay version costs. I suspect AdMob might be more effective (but I haven&#8217;t received a voucher for this yet *hint* *hint*).</p>
<h4>RETENTION</h4>
<p>I kept adding levels to get into the &#8220;Just In&#8221; list, but I had mistakenly also helped retention &#8211; i.e. the game&#8217;s ability to keep old players interested. I realized this when I read <a href="http://googleblog.blogspot.com/2010/12/great-advice-from-industry-experts-on.html">this blog post</a> which included a video with some Angry Bird guy. He was saying they keep updating Angry Birds to keep the old players interested. I made it a point to include new levels in updates for both the pay and free versions of the game regularly since.</p>
<h4>PUTTING CHARACTER INTO MY CHARACTERS</h4>
<div id="attachment_230" class="wp-caption alignleft" style="width: 190px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/angrybird-2/" rel="attachment wp-att-230"><img class="size-full wp-image-230 " title="angrybird" src="http://kerebus.com/wp-content/uploads/2011/03/angrybird1.jpg" alt="" width="180" height="180" /></a><p class="wp-caption-text">This angry bird made me want to make my minotaur angry too</p></div>
<p>2010 rolled into 2011 and the game hadn&#8217;t really taken off. I had developed all the features I believed would make a difference already and was mostly adding levels now. The one thing that bugged me the most was the graphics but I didn&#8217;t know in what direction to take it. Not until I was watching another video with some Angry Bird guy again explaining how they built their game around their characters. I decided that was what my game lacked the most. My characters were glassy balls and nobody could relate to such inanimate objects.</p>
<p>I fired up Illustrator again. This time around it wasn&#8217;t that painful to create stuff since I knew how to use the tools. I still wanted my graphics to be simple so I still went with circles for characters, but this time I gave them eyes. I also wanted the graphics to look cleaner so I got rid of some gradients, which in my opinion improved it considerably.</p>
<div id="attachment_231" class="wp-caption alignright" style="width: 190px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/promo/" rel="attachment wp-att-231"><img class="size-full wp-image-231" title="Theseus and the Minotaur" src="http://kerebus.com/wp-content/uploads/2011/03/promo.png" alt="" width="180" height="120" /></a><p class="wp-caption-text">The minotaur got meaner and Theseus gained eyes.</p></div>
<p>Since Theseus now had eyes I added some minor sprite animations to Theseus so he could blink and fall asleep. Making changes to the graphics, which there is much more of now, is as tedious as ever.</p>
<h4>THE STATE OF THE MINOTAUR</h4>
<p>So it&#8217;s over half a year since the first release, and over a year since I started this venture.</p>
<p>The free version of the game has 17556 downloads right now, 4378 of which are still installed (24%). The pay version has been bought somewhere in between 100 and 200 times, although most certainly closer to 100. The price is at $2.55 currently.</p>
<p>I estimate that less than 1% of the people who download the free version will end up buying the game. 163 people have rated the free version of the game on Android Market, which is also about 1% of the people who downloaded it. Currently it has 4.23 stars out of 5.</p>
<div id="attachment_333" class="wp-caption alignright" style="width: 330px"><a href="http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/screenshot_level3/" rel="attachment wp-att-333"><img class="size-full wp-image-333" title="Theseus sleeping on Level 3" src="http://kerebus.com/wp-content/uploads/2011/03/screenshot_level3.png" alt="" width="320" height="480" /></a><p class="wp-caption-text">Sleep tight</p></div>
<p>The AdMob ads in the free version, which have been there for 4 months, have yet to make $10. The total revenue of the paid version should be between 250 and 350 dollars, of which Google takes 30%, and Robert and Yann get their shares. The rest is subject to Finnish income tax. Not that it matters with these sums. But it&#8217;s safe to say that reaching the 8500€ (about $12000 currently) for which I had to register my company was a pipe dream.</p>
<p>The game has received 18 updates after the initial release including bug fixes, tweaks, sound, hints, animations, new graphics and 56 new levels.</p>
<p>This isn&#8217;t meant to detract anyone from creating apps. This might be a commercial failure but I wouldn&#8217;t have kept this up if I didn&#8217;t enjoy doing it. As for any problems you encounter you just shoot them down one at a time and go forward.</p>
<h4>WHAT&#8217;S NEXT</h4>
<p>What now? I don&#8217;t know. I&#8217;ll probably keep on adding levels. I have some improvement ideas but they probably won&#8217;t result in any tipping point. I could have another jab at marketing though &#8211; like writing a blog post about my experiences developing the game. It&#8217;s worth a shot.</p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2011/03/my-year-as-an-amateur-android-game-developer/feed/</wfw:commentRss>
		<slash:comments>109</slash:comments>
<enclosure url="http://kerebus.com/audio/whee.mp3" length="15463" type="audio/mpeg" />
		</item>
		<item>
		<title>Android Market Publisher Console Now Comes With Stats</title>
		<link>http://kerebus.com/2011/03/android-market-publisher-console-now-comes-with-stats/</link>
		<comments>http://kerebus.com/2011/03/android-market-publisher-console-now-comes-with-stats/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 08:38:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[theseus]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=180</guid>
		<description><![CDATA[Google has enabled more detailed statistics for all android applications. There&#8217;s a Statistics link just below the download and active installs numbers which will open up a more detailed statistics view. Seems like they started collecting data after mid-december because &#8230; <a href="http://kerebus.com/2011/03/android-market-publisher-console-now-comes-with-stats/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>Google has enabled more detailed statistics for all android applications.</p>
<p>There&#8217;s a <em>Statistics</em> link just below the download and active installs numbers which will open up a more detailed statistics view. </p>
<p>Seems like they started collecting data after mid-december because that&#8217;s how far back the statistics for Theseus goes.</p>
<p><a href="http://kerebus.com/2011/03/android-market-publisher-console-now-comes-with-stats/market_builtin/" rel="attachment wp-att-181"><img src="http://kerebus.com/wp-content/uploads/2011/03/market_builtin-300x296.png" alt="" title="Android Market&#039;s Built-In Statistics" width="300" height="296" class="aligncenter size-medium wp-image-181" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2011/03/android-market-publisher-console-now-comes-with-stats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Theseus&#8217; new graphics</title>
		<link>http://kerebus.com/2011/03/theseus-new-graphics/</link>
		<comments>http://kerebus.com/2011/03/theseus-new-graphics/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 14:19:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[theseus]]></category>

		<guid isPermaLink="false">http://kerebus.com/?p=170</guid>
		<description><![CDATA[So a week back I released a major upgrade of Theseus with new graphics. The hypothesis was that the old &#8220;characters&#8221; didn&#8217;t have enough character, so players couldn&#8217;t relate to them in any meaningful way, and that the new more &#8230; <a href="http://kerebus.com/2011/03/theseus-new-graphics/"><em>Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></em></a>]]></description>
			<content:encoded><![CDATA[<p>So a week back I released a major upgrade of Theseus with new graphics. The hypothesis was that the old &#8220;characters&#8221; didn&#8217;t have enough character, so players couldn&#8217;t relate to them in any meaningful way, and that the new more lovable Theseus and the now meaner looking Minotaur would engage the player more.</p>
<p>I never really figured I needed characters, since I classified this game in the same genre as chess or some such. Chess usually doesn&#8217;t have real characters (which laugh or cry). Then again Theseus is a bit less known than chess (just a hint). Having good characters shouldn&#8217;t at least take away from the game. </p>
<p>After a week I haven&#8217;t seen any difference in downloads, but maybe a slight decrease in bounce rate. The people I asked liked the direction of the new graphics and no one has complained thus far.</p>
<div id="attachment_171" class="wp-caption aligncenter" style="width: 160px"><a href="http://kerebus.com/2011/03/theseus-new-graphics/old_theseus_icon/" rel="attachment wp-att-171"><img src="http://kerebus.com/wp-content/uploads/2011/03/old_theseus_icon-150x150.png" alt="" title="Old Theseus" width="150" height="150" class="size-thumbnail wp-image-171" /></a><p class="wp-caption-text">Old</p></div>
<div id="attachment_172" class="wp-caption aligncenter" style="width: 160px"><a href="http://kerebus.com/2011/03/theseus-new-graphics/icon_512/" rel="attachment wp-att-172"><img src="http://kerebus.com/wp-content/uploads/2011/03/icon_512-150x150.png" alt="" title="New" width="150" height="150" class="size-thumbnail wp-image-172" /></a><p class="wp-caption-text">New</p></div>
<p>To see more just check the screenshots on <a href="https://market.android.com/details?id=com.kerebus.mazelite&#038;feature=search_result">android market</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kerebus.com/2011/03/theseus-new-graphics/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
