<?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>Kian Ryan</title>
	<atom:link href="http://www.kianryan.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kianryan.co.uk</link>
	<description>.NET, Android, Geekery</description>
	<lastBuildDate>Wed, 09 May 2012 14:54:51 +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>Let&#8217;s Do The Timewarp Again &#8211; Back To Vim</title>
		<link>http://www.kianryan.co.uk/2012/05/back-to-vim/</link>
		<comments>http://www.kianryan.co.uk/2012/05/back-to-vim/#comments</comments>
		<pubDate>Wed, 09 May 2012 14:53:53 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=751</guid>
		<description><![CDATA[It is a truth universally acknowledged that a developer, with a job to do must be in want of a good text editor. Text editors are a topic which will be argued over until the end of time. Classic arguments start as Vim v Emacs, move towards Textmate and recently steer close to Sublime. Note [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kianryan.co.uk/2012/05/back-to-vim/capture2/" rel="attachment wp-att-755"><img src="http://www.kianryan.co.uk/wp-content/uploads/2012/05/Capture2-300x187.jpg" alt="" title="Capture2" width="300" height="187" class="alignnone size-medium wp-image-755" /></a></p>

<p>It is a truth universally acknowledged that a developer, with a job to do must be in want of a good text editor.</p>

<p>Text editors are a topic which will be argued over until the end of time.  Classic arguments start as <a href="http://en.wikipedia.org/wiki/Editor_war">Vim v Emacs</a>, move towards <a href="http://macromates.com/">Textmate</a> and recently steer close to <a href="http://www.sublimetext.com/">Sublime</a>.  Note here, I&#8217;m not talking IDEs &#8211; IDEs are often toolchain specific and have their own set of arguments.  Text editors are religions unto themselves, and there are thousands of blog posts already devoted to their own relative merits.</p>

<p>After spending lots of time with various editors, and some time spent with a particular friend, I&#8217;ve come back to the venerable Vim.  Vim does not make learning easy, but it&#8217;s operating language and grammar are very flexible and (to me) a joy to use.</p>

<p>Vim does not make the beginner&#8217;s life easy.  The learning curve is notoriously steep before you really feel the benefits of it.  Below are some of my own tips which will hopefully help you make the jump, should you be willing.</p>

<p>In a future blog post, I&#8217;ll discuss editing C# and .NET with VIM.</p>

<h2>Learning Vim</h2>

<p>Vimtutor is a built in system designed to make learning the Vim basics simple.  Personally, I found it a waste of space and frustrating.</p>

<p>First let us accept that Vim does not like beginners.  For those not familar with modal editing (and who the hell is?), it&#8217;s confusing, archaic, and really slow to do simple things.  Once you&#8217;ve learned the syntax, the grammar, the why, and how it all fits together, then it becomes a thing of beauty.  So put down those one page blog tutorials and pick up <a href="http://shop.oreilly.com/product/9780596529833.do">&#8220;Learning the vi and Vim Editors&#8221;</a> from O&#8217;Reilly.   Read it cover to cover (it&#8217;s okay to skip the sections on other vi clones).  It&#8217;s well written, and gives you a truly thorough understanding of vi, vim and ex. Read the book, make notes, go play.  Learn.</p>

<h2>Plain Text File Configuration</h2>

<p>Vim configuration files come in plain text.  Developers love plain text.  It stores nicely in version control, and vim&#8217;s configurations are portable between platforms (you can even stick in statements for platform specific configuration).  This makes them easy to dump in a git repository and deploy on to any working environment.  Mine are available here:</p>

<p><a href="https://github.com/kianryan/.vim">https://github.com/kianryan/.vim</a></p>

<p>If you&#8217;re working in more than one graphical environment, have a look at /rc/.gvimrc for setting platform specific options.</p>

<h2>Pathogen</h2>

<p>Vim plugins are traditionally a bit of a mess.  By default, Vim expects all plugins to be stored in a single folder, all doc files to be stored in another folder, etc.  This makes separation of different plugins a bit tricky, and ongoing updates quite hard.  <a href="https://github.com/tpope/vim-pathogen">Pathogen</a> allows each plugin to be stored in a separate folder, and as such each plugin can be managed independently.</p>

<p>Git also allows you to add other repositories as submodules.  With Pathogen and Git, plugin repositories (and most useful ones are now stored in git) can be added as submodules to your git repo.  Setting up on a new platform becomes git clone, git submodule init.  Updating all your plugins simply means fast-forwarding the plugin versions to head.</p>

<h2>Plugins</h2>

<p>Vim is a veritable candy-shop when it comes to plugins.  There are plugins to cope with almost any language, any environment and idea you&#8217;ve possibly had. Most plugins happily co-exist with each other (see Pathogen).
  There is nothing wrong with using an army of plugins, when you understand what&#8217;s going on underneath the hood.  Spend some time with the vanilla editor before jumping in to plugins, so you&#8217;re using them as extensions, not crutches.  With that warning, here&#8217;s the list of plugins I&#8217;m currently using:</p>

<ul>
<li><em>Navigation</em> &#8211; <a href="https://github.com/scrooloose/nerdtree">NERDTree</a> (Folder view in a buffer) and <a href="https://github.com/wincent/Command-T">Command-T</a> (Search and open files)</li>
<li><em>Colour Schemes</em> &#8211; <a href="https://github.com/godlygeek/csapprox">CSApprox</a> (Approximates full colour schemes to 88 and 256 colours)</li>
<li><em>Comments</em> &#8211; <a href="https://github.com/scrooloose/nerdcommenter">NERDComment</a> (Easy comment management)</li>
<li><em>Brackets and Closing Things</em> &#8211; <a href="http://www.vim.org/scripts/script.php?script_id=39">MatchIt</a> (Advanced paren matching), <a href="https://github.com/Raimondi/delimitMate">delimitMate</a> (Auto closing brackets), <a href="https://github.com/tpope/vim-surround">Vim-Surround</a> (Change surrounding quotes and xml tags), CloseTag (auto tag closing).</li>
<li><em>Snippets</em> &#8211; <a href="https://github.com/msanders/snipmate.vim">SnipMate</a> (Snippet management)</li>
</ul>

<h2>Vim Fullscreen</h2>

<p>Not a plugin per-se, but a <a href="https://github.com/derekmcloughlin/gvimfullscreen_win32">DLL extension for Win32 gVim</a> which allows you to run gVim full screen.  Map it to leader command and you&#8217;ve got a few keystrokes to toggle in and out full screen.  This makes for a great, immersive environment.</p>

<p>I&#8217;m currently editing this blog post in the following session:</p>

<p><a href="http://www.kianryan.co.uk/2012/05/back-to-vim/capture/" rel="attachment wp-att-754"><img src="http://www.kianryan.co.uk/wp-content/uploads/2012/05/Capture-300x187.jpg" alt="" title="Capture" width="300" height="187" class="alignnone size-medium wp-image-754" /></a></p>

<p><em>(Notes: gvim for Windows.  No buttons, scroll bars or chroming.  Vim fullscreen.  Three windows, left and right showing the same empty buffer, middle showing the blog post with the vim-markdown plugin)</em></p>

<h2>Tinker</h2>

<p>Vim is highly configurable and extensible.  That is one of its beauties and downfalls.  You will find yourself spending a lot of time tinkering to make the environment what you want it to be.  Color schemes, UI options, key mappings, your configs will mature and age with time.  This tinker time may feel like a time-sink (and the initial setup probably will be), but you&#8217;ll reap the overall benefits later on.  Spend the time making your Vim setup what you want it to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/05/back-to-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Name The Kitten</title>
		<link>http://www.kianryan.co.uk/2012/05/name-the-kitten/</link>
		<comments>http://www.kianryan.co.uk/2012/05/name-the-kitten/#comments</comments>
		<pubDate>Wed, 09 May 2012 14:29:17 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[LifeTrack]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=742</guid>
		<description><![CDATA[Today we go and pick up a new ball of fluff &#8211; notably, this ball of fluff: The ball of fluff is currently named &#8220;Fay&#8221;, which is probably not going to stick around here. Our other fuzzballs have been/are named: Henery, Seti, Hathor, Apollo, Hannah, Walnut, Zaphod, Chicken For once, we&#8217;re a little stumped with [...]]]></description>
			<content:encoded><![CDATA[<p>Today we go and pick up a new ball of fluff &#8211; notably, this ball of fluff:</p>

<p><a href="http://www.kianryan.co.uk/2012/05/name-the-kitten/kitten/" rel="attachment wp-att-744"><img src="http://www.kianryan.co.uk/wp-content/uploads/2012/05/kitten.jpg" alt="" title="kitten" width="300" height="400" class="alignnone size-full wp-image-744" /></a></p>

<p>The ball of fluff is currently named &#8220;Fay&#8221;, which is probably not going to stick around here.  Our other fuzzballs have been/are named:</p>

<ul>
<li>Henery,</li>
<li>Seti,</li>
<li>Hathor,</li>
<li>Apollo,</li>
<li>Hannah,</li>
<li>Walnut,</li>
<li>Zaphod,</li>
<li>Chicken</li>
</ul>

<p>For once, we&#8217;re a little stumped with this one.  My usual suggestions of &#8220;Satan&#8221; and &#8220;Lucifer&#8221; have been rejected, so I&#8217;m throwing it open to you, my loyal readers.  All suggestions are welcome, although we reserve the right to completely reject all your suggestions and come up with one of our own.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/05/name-the-kitten/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>An Open Letter To Lenovo</title>
		<link>http://www.kianryan.co.uk/2012/05/an-open-letter-to-lenovo/</link>
		<comments>http://www.kianryan.co.uk/2012/05/an-open-letter-to-lenovo/#comments</comments>
		<pubDate>Wed, 09 May 2012 14:23:49 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Comment]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=734</guid>
		<description><![CDATA[I&#8217;ve emailed the following to Lenovo customer support, since I&#8217;m currently interested in Lenovo laptops, but this applies across the board: Dear Sir, As a developer, my laptop is one of the most important tools I own. I spend on average ten hours a day in front of my laptop, and there are days when [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve emailed the following to Lenovo customer support, since I&#8217;m currently interested in Lenovo laptops, but this applies across the board:</p>

<p>Dear Sir,</p>

<p>As a developer, my laptop is one of the most important tools I own.  I spend on average ten hours a day in front of my laptop, and there are days when I spend more time with my laptop than with my partner.  As such, the purchase of a new laptop is a serious and important thing, and before I make any such decision I want as much information as I can put my hands on.</p>

<p>The introduction of Ultrabooks in the past year has piqued my interest.  Getting a full laptop in a lightweight package is a boon to my heavily abused back.  I regularly travel to client sites, attend hack days and Barcamps, and sometimes just enjoy coding in away from home, office or a power socket.  To this, I&#8217;ve been interested in spending some time with a Lenovo Ideapad U300s and Thinkpad X220.</p>

<p>And here I&#8217;ve come across a problem.  I am currently a Macbook Pro user, and the ability for me to walk in to an Apple store, pick up a Macbook feel the weight, handling and keyboard before I committed to buying it made a significant impact on my decision to buy.  Unfortunately, I can not get this same experience with the majority of Lenovo laptops.  I&#8217;ve tried a few PC Worlds, but the best I could find were a few mid-range consumer laptops.  As far as I can tell, there&#8217;s no way for me to spend time with a Lenovo Ultrabook or Thinkpad prior to purchasing one.</p>

<p>As such, I would be curious to see what you suggest.  To users such as myself, hands on time is essential to making an informed purchase.  Where would you suggest I can go to spend time with your products? (I live near Manchester)</p>

<p>Yours Faithfully,<br />
Kian Ryan</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/05/an-open-letter-to-lenovo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Commandments</title>
		<link>http://www.kianryan.co.uk/2012/04/developer-commandments/</link>
		<comments>http://www.kianryan.co.uk/2012/04/developer-commandments/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 12:42:59 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=726</guid>
		<description><![CDATA[I just came across an old e-mail I sent back in 2010. The tooling may have changed a bit, but the ideas still hold true: 1. Thou shalt not break the build. 1a. If thoust breakith the build, thoust better bloody well fix the build. 1b. If thoust not fixith the build, I will come [...]]]></description>
			<content:encoded><![CDATA[<p>I just came across an old e-mail I sent back in 2010.  The tooling may have changed a bit, but the ideas still hold true:</p>

<blockquote>

1. Thou shalt not break the build.<br />
1a. If thoust breakith the build, thoust better bloody well fix the build.<br />
1b. If thoust not fixith the build, I will come after ye with Matilda.<br />
1c. Thou does not want to find out what Matilda is.<br />
2. Thou shalt not bypass the build process.<br />
(no good ever comes of it, and it *never* saves time in the long run)<br />
3. Thou shalt start, stop and resolve thy JIRA tickets in a timely manner.<br />
4. Thou shalt not put up front-end code that hath not passed the HTML/XHTML validator.<br />
5. Thou shalt not put CSS or Javascript inline.<br />
5a. Evar.<br />
6. Thou shalt not reinvent the wheel.<br />
6a. Even if your reinvented wheel floats in the air.  Some poor bugger has to maintain it.<br />
7. Thou shalt put thy faith (and all new projects) into the Holy Trinity (Subversion, CruiseControl.NET, JIRA).<br />
7a. Without exception.<br />
7b. Unless you&#8217;ve got a very, *very*, *VERY* persuasive argument you can communicate effectively whilst being nibbled alive by rabid gerbils.<br />
8. Thou shalt commit thy code (at least) daily.<br />
9. Thou shalt not worship false backup files (.bak, _old, .bak.old).<br />
9a. Thou shalt verily never commit backup files, data files or SVN metadata files into thine repository.<br />
9b. Because I then have to spend two hours picking them back out.  And that really peeves me off (see 7b for suitable punishment).<br />
10. If in doubt, thy should ask.  It&#8217;s good to talk[TM]<br />
<br />
If in doubt remember the eleventh commandment:<br />
11. Code as if the next guy to maintain your code is a homicidal maniac who knows where you live.<br />
</blockquote>

<p>I admit plagiarism for number 11.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/04/developer-commandments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppsLib &#8211; Rather Rude&#8230;</title>
		<link>http://www.kianryan.co.uk/2012/04/appslib-rather-rude/</link>
		<comments>http://www.kianryan.co.uk/2012/04/appslib-rather-rude/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 16:45:27 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=719</guid>
		<description><![CDATA[Back in 2009, I developed a version of &#8220;The Massive Dev Chart&#8221; for Android under license by the original owners of the IP, &#8220;Digital Truth&#8221;. Last year they released their own version of the application and politely asked me to withdraw mine, to which I agreed (these had been the standard arrangements agreed to in [...]]]></description>
			<content:encoded><![CDATA[<p>Back in 2009, I developed a version of &#8220;The Massive Dev Chart&#8221; for Android under license by the original owners of the IP, &#8220;Digital Truth&#8221;.  Last year they released their own version of the application and politely asked me to withdraw mine, to which I agreed (these had been the standard arrangements agreed to in 2009).  No problems there.</p>

<p>AppsLib had grabbed copies of my &#8220;free&#8221; applications and posted them to their own library, without my consent.  They then sent me the following mail:</p>

<blockquote>
Hello,<br /><br />
 
I have found your app ‘The Massive Dev Chart’ on the web and it runs properly on Archos Tablets.<br /><br />
 
Your application is well done.<br /><br />
             
Appslib provides a dedicated area for Android tablets users to download apps suited to their devices. You could find more info at www.appslib.com<br /><br />
 
We have created an Account for you on Appslib with the following login and password:<br />
http://appslib.com/developers/index.html<br />
Login: [REDACTED]<br />
Password: [REDACTED]<br />
 
You can manage your app, follow your statistics and removed your app at any time. You can also publish some other apps and it is totally free.<br /><br />
 
We have pre-uploaded your app and we are waiting for your confirmation to publish it on AppsLib.<br /><br />
 
I hope to talk to you soon.<br /><br />
 
Best regards<br /><br />
 
The AppsLib Team
</blockquote>

<p>Back in 2009, this wasn&#8217;t a problem, so I let it lie.  Fast forward to 2012, and I receive the following e-mail:</p>

<blockquote>
Hello Android app developer,<br /><br />

Just a reminder that your application is now posted on AppsLib.<br />
There are all the details to manage your developer account on appslib.com below.<br />
Please let me know if you see any problems.<br /><br />

Thanks<br /><br />

Belinda Sherlos<br />
The AppsLib Team
</blockquote>

<p>Remembering they have a copy of &#8220;The Massive Dev Chart&#8221;, I look to find a way to remove my account.  Couldn&#8217;t find anything anywhere, just some publish/unpublish options for individual applications.  Not too happy about this (I didn&#8217;t ask for an appslib account in the <em>first</em> place) I fired the following e-mail over:</p>

<blockquote>
Hello,<br /><br />

I wish to remove my account ([REDACTED]), and all applications you hold for our company.<br /><br />

I can not see a way to do this through your portal.  Please advise how to do this.<br /><br />


Thanks,
</blockquote>

<p>Simple, straightforward and to the point.  You hold applications I no longer have the right to distribute on an account I didn&#8217;t ask for.  I want to remove my account and those applications.  I was expecting to need to do a little hoop-jumping, possibly fire over some form of authorisation, since I was sending this mail from a different e-mail address to the one registered.  In reply, I received the following e-mail:</p>

<blockquote>
Hello,<br /><br />

Thank you for your email.<br />
As per your request your applications have been deleted from appslib. They are now no longer visible or downloadable by the 2 million appslib users who, as they have non google certified devices without access to Android Market, now have no possible method of downloading your applications.<br /><br />

Thank you again<br /><br />

Belinda
</blockquote>

<p>Ouch.  That stings a little, not really a particularly good bit of developer relations&#8230; I take problem with the phrase &#8220;now have no possible method of downloading your applications&#8221;.  No?  Are you saying that you, AppsLib, are the only alternative to Google Play?  REALLY?</p>

<p>So how about:</p>

<ul>
<li>Direct download of APK from the developers website?</li>
<li>The <a href="http://www.amazon.com/b?node=2350149011">Amazon App Store</a>?</li>
<li><a href="https://www.andapponline.com/">AndAppOnline</a>?</li>
<li><a href="http://apps.opera.com/gb/">Opera App Store</a>?</li>
<li>The Venerable <a href="http://www.getjar.com/">GetJar</a>?</li>
<li>And <a href="http://www.handango.com/homepage/Homepage.jsp?deviceId=2433">Handango</a> is still going as well</li>
</ul>

<p>Funnily enough, the most I&#8217;ve had from any of these (and I&#8217;ve had a few contacts) are introductory e-mails, some offers and details about the services they offer.  At no point have any of these opened an account for me, uploaded my applications, nor derided my decision to no longer user their services.  In short, at any point in the future I will be more willing to deal with anyone else other than you.</p>

<p>&#8220;Thank you again&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/04/appslib-rather-rude/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An aside &#8211; Fonts on EInk Readers</title>
		<link>http://www.kianryan.co.uk/2012/03/an-aside-fonts-on-eink-readers/</link>
		<comments>http://www.kianryan.co.uk/2012/03/an-aside-fonts-on-eink-readers/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 14:59:36 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Comment]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=716</guid>
		<description><![CDATA[For those that haven&#8217;t yet got the hint, I have a lot of love for my Kobo. The screen fascinates me the most about the device. I can read on it for hours with no fatigue, which sets it apart from LCD screens and their ilk. Because of the static nature of the screens, reading [...]]]></description>
			<content:encoded><![CDATA[<p>For those that haven&#8217;t yet got the hint, I have a lot of love for my Kobo.</p>

<p>The screen fascinates me the most about the device.  I can read on it for hours with no fatigue, which sets it apart from LCD screens and their ilk.  Because of the static nature of the screens, reading on them is truly closer to reading on paper than a traditional active screen.</p>

<p>Most e-readers come with some choice of fonts, and some come with the ability to side-load fonts.  The Kindle by default uses Caecilia, which is a heavy font, quite similar to Rockwell.  It also comes with a Times-type font and a Helvetica-esque sans-serif font.  The Kobo by default comes with quite a selection: Amasis, Avenir, Delima, Felbrige, Georgia, Gill Sans and Rockwell.</p>

<p>I spend (spent is possibly now more accurate) a lot of time reading Sci-Fi paperbacks; some modern, some from the 60s and 70s.  Some of these books contain typeface information (although not as many as I would like), and four fonts kept recurring: Times, Palatine, Plantin and Sabon.  Times in it&#8217;s various forms was adopted for being able to squeeze more letters on paper.  Palatine is one of the pre-cursors to the legend that is Palatino.  Plantin appears to have been designed to work well on both coarse and smooth paper, and adapts well to E-Ink screens.  Sabon was designed so that bold and italic versions would occupy the same physical space as normal roman characters.  This could prove useful with some e-readers that &#8220;crash&#8221; italic characters together when combined with normal roman characters.</p>

<p>I&#8217;ve been reading with Palatine for some time now, and although I have flirted with the other fonts, I keep going back to Palatine.  It&#8217;s weighted slightly heavier than the others, which makes it very suitable for reading on E-Ink and give me the sensation of reading a paperback.  I would not be surprised if this is having a dopamine-releasing effect on me, it&#8217;s that pleasing.  Reading a font like Rockwell is not a pleasant sensation, my brain feels a stabbing sensation in the side of my head as I&#8217;m reminded this isn&#8217;t <em>real</em> paper, and I&#8217;m a traitor to dead-trees.  I suspect this kind of psychological hangover, a ghosting effect of 20-plus years of reading culture will effect the younger generation less as time goes on.</p>

<p>So what fonts do you lot use to read with?  And yes, I did side-load Comic Sans, for the lulz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/03/an-aside-fonts-on-eink-readers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Grimm Testing Story</title>
		<link>http://www.kianryan.co.uk/2012/02/a-grimm-testing-story/</link>
		<comments>http://www.kianryan.co.uk/2012/02/a-grimm-testing-story/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 14:43:12 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Comment]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=691</guid>
		<description><![CDATA[Sit down children, and let me tell you a story. Once upon a time, in a land far, far, away, where computers were made of gingerbread and circuits made from carefully laid 20nm icing, there existed a city of programmer fairies, ruled by a reasonable king and several queens. The fairies used to write software [...]]]></description>
			<content:encoded><![CDATA[<p>Sit down children, and let me tell you a story.</p>

<p>Once upon a time, in a land far, far, away, where computers were made of gingerbread and circuits made from carefully laid 20nm icing, there existed a city of programmer fairies, ruled by a reasonable king and several queens.  The fairies used to write software for their king and queens, who in turn exchanged it with other kingdoms for pizza and caffeine based drinks.  The fairies coded by the age honoured techniques of old: they wrote some code, then ran it, tested it by hammering away at the ui and then, when it broke, wrote changes to fix the problem.  The fairies did this day in and day out, and the amount of time they spent actually writing any code was dwarfed by the amount of time they spent hammering at the UI to check that what they wrote work.  The kingdom was doing well enough, and most of the fairies had enough pizza, and almost enough caffeine.</p>

<p>But the fairies were unhappy.  Some of them even sang a little minor-key song about how unhappy they were.  The work was tedious and dull, and the fairies wanted nothing more than to get on with actually solving problems rather than having to test their code all the time.</p>

<p>Then one day, an especially bright fairy (who for the sake of social-justice, came from a poor family with birth-control problems) decided that they could take away some of the tedium of testing little bits of their software by writing other bits of code which would test the bits for them.  With a few of these &#8220;tests&#8221;, they no longer had to worry how these bits behaved.  If it broke, they were told by the test runner goblin, who was fast, efficient, and could run multiple tests at once.  It took the fairies time to learn these new &#8220;tests&#8221;, and it was slow at first (slower than the old method), but the developers felt freer, and were better able to handle the change requests sent down by the king and queens.</p>

<p>Some of the fairies resisted the new ideas, and didn&#8217;t trust code to test other code or didn&#8217;t trust the goblins to run the code correctly and blankly refused to use the new idea.  They believed in their old techniques, and carried on coding and testing by hand.  &#8220;It had worked for so long, so why change it now?&#8221;, they told themselves.  When the change requests came down from the king and queens, they found their code brittle, and worked longer hours to fix it.  They became embittered and resented the enlightened fairies.  They took to the dark, fearing the daylight and all it implied.  Some became system administrators.</p>

<p>Then an epiphany came to an especially clever fairy (who for the sake of fairy-tale narrative, may have aspirations towards one of the kingdom&#8217;s princessess).  They decided that as well as testing individual bits of the software, they could also test overall behaviours of their software.  This felt like magic, as now once they had written about the behaviour of a bit of their software, they didn&#8217;t have to perform those actions again &#8211; the magic did the heavy lifting for them.  This was even better, and the kingdom ran even more smoothly!  The king and queen were elated, as changes were handled for customers quickly, and the kingdom ended up stockpiling pizza and trading it on the open market.</p>

<p>But the reclusive developers became embittered, and left the kingdom.  They hid under bridges and shied away from the light and other developers.  They didn&#8217;t want to share, they didn&#8217;t want to learn, and their bodies became twisted and grey, they lost their wings, and their eyes became bigger, and could no longer look at the light.  They became trolls, and cursed the kingdom for what they had become, despite their fate being by their own hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/02/a-grimm-testing-story/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sql Server 2008 R2 Reporting Services &#8211; 503 Error</title>
		<link>http://www.kianryan.co.uk/2012/02/sql-server-2008-r2-reporting-services-503-error/</link>
		<comments>http://www.kianryan.co.uk/2012/02/sql-server-2008-r2-reporting-services-503-error/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 13:56:51 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=690</guid>
		<description><![CDATA[I was up til 2am on this one. A client&#8217;s relatively shiny-new SQL Server 2008 R2 Reporting Services Express install was failing to start. Pinging the relevant URLs: http://server/reports http://server/reportserver Was continually responding with a 503 error. No further detail, just a HTTP 503 response, which translates to &#8220;Service unavailable&#8221;. The Windows &#8220;Report Server&#8221; service [...]]]></description>
			<content:encoded><![CDATA[<p>I was up til 2am on this one.</p>

<p>A client&#8217;s relatively shiny-new SQL Server 2008 R2 Reporting Services Express install was failing to start.  Pinging the relevant URLs:
<pre>

http://server/reports


http://server/reportserver

</pre>
Was continually responding with a 503 error.  No further detail, just a HTTP 503 response, which translates to &#8220;Service unavailable&#8221;.  The Windows &#8220;Report Server&#8221; service was running, and started/stopped just fine.  My normal response to this kind of problem is to start looking at logs &#8211; Windows logs were all clear.  I <a href="http://www.google.co.uk/?q=503+http+reporting+services#hl=en&#038;safe=off&#038;output=search&#038;sclient=psy-ab&#038;q=503+http+reporting+services&#038;pbx=1&#038;oq=&#038;aq=&#038;aqi=&#038;aql=&#038;gs_sm=&#038;gs_upl=&#038;bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&#038;fp=3348566163251111&#038;biw=1160&#038;bih=723">googled around the subject</a>, which gave several &#8220;poke and pray&#8221; solutions, not too helpful.</p>

<p>To fix a problem like this, you need logs.  Every <em>single</em> StackOverflow, or forum response to this problem should read &#8220;check what&#8217;s going on in your logs&#8221;.  You don&#8217;t diagnose a medical condition without some evidence to back it up.  You need data.</p>

<p>A few responses pointed to this <a href="http://msdn.microsoft.com/en-us/library/ms159778.aspx">MSDN article</a> which gives you details for turning on HTTP event logging.  Genius!  Except that all you get is a line which reads:</p>

<p><pre>
2012-02-17 17:51:38 192.168.23.204 1222 192.168.23.240 80 HTTP/1.1 GET /Reports 503 - N/A -
</pre></p>

<p>Not very helpful.  Eventually, after ingesting far too much caffine and having to dig around in Reporting Services textbooks, I found a reference to the Reporting Services log files, in this case located here:</p>

<p><pre>
C:\Program Files\Microsoft SQL Server\MSRS10_50.SQLEXPRESS\Reporting Services\LogFiles
</pre></p>

<p>From there I was able to diagnose the problem as relatively trivial and fix the configuration problem.  In my case (yours will most likely be different), the problem was related to an empty RSWindowsExtendedProtectionlevel XML tag in the rsreportserver.config file.  For your own individual problem &#8211; <b>READ YOUR LOGS</b>.</p>

<p>Today I feel it is appropriate to finish with:</p>

<p><a href="http://www.kianryan.co.uk/2012/02/sql-server-2008-r2-reporting-services-503-error/jacoj/" rel="attachment wp-att-694"><img src="http://www.kianryan.co.uk/wp-content/uploads/2012/02/jacoj.jpeg" alt="" title="jacoj" width="317" height="451" class="alignnone size-full wp-image-694" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/02/sql-server-2008-r2-reporting-services-503-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Game of Life</title>
		<link>http://www.kianryan.co.uk/2012/02/ruby-game-of-life/</link>
		<comments>http://www.kianryan.co.uk/2012/02/ruby-game-of-life/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 19:59:45 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=681</guid>
		<description><![CDATA[I am learning Ruby and Vim. I&#8217;m also attending the Preston Codejo hosted by Magma Digital, where were using Ruby as the driver. As I am wont when learning a new platform (or new techniques on a new platform), there is a build of Conway&#8217;s Game of Life on GitHub: https://github.com/kianryan/RubyGameLife This is a curses [...]]]></description>
			<content:encoded><![CDATA[<p>I am learning Ruby and Vim.  I&#8217;m also attending the <a href="http://www.magmadigital.co.uk/2012/preston-codejo/">Preston Codejo</a> hosted by <a href="http://www.magmadigital.co.uk/">Magma Digital</a>, where were using Ruby as the driver.</p>

<p>As I am wont when learning a new platform (or new techniques on a new platform), there is a build of Conway&#8217;s Game of Life on GitHub:<br />
<a href="https://github.com/kianryan/RubyGameLife">https://github.com/kianryan/RubyGameLife</a></p>

<p>This is a curses based implementation which can run with either the defaults, or run with parameters:</p>

<p><pre class="brush: bash; title: ; notranslate">
ruby life.rb [rows] [cols] [num_pos]
where:
rows - Number of rows to display
cols - Number of cols to display
num_pos - Number of initial positions to set.  This is done randomly, so you are likely to get less positions than specified.
</pre></p>

<p>Press q to quit when you&#8217;re bored.  Feel free to fork, make changes, ideas, pulls, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/02/ruby-game-of-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s All Aquarion&#8217;s Fault</title>
		<link>http://www.kianryan.co.uk/2012/02/its-all-aquarions-fault/</link>
		<comments>http://www.kianryan.co.uk/2012/02/its-all-aquarions-fault/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 12:42:36 +0000</pubDate>
		<dc:creator>kianryan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kianryan.co.uk/?p=639</guid>
		<description><![CDATA[It&#8217;s all Aquarion&#8217;s fault. While down in London last, Mr Aquarion introduced me to Tiny Towers, a tower building game. I played it for a few hours and decided what I really wanted to play was Sim Tower. Running OS X, and Sim Tower being &#8220;of an age&#8221;, this left me with a platform challenge [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s all <a href="http://www.aquarionics.com/">Aquarion&#8217;s</a> fault</a>.</p>

<p><a href="http://www.kianryan.co.uk/2012/02/its-all-aquarions-fault/mzl-qwulwwsa/" rel="attachment wp-att-641"><img src="http://www.kianryan.co.uk/wp-content/uploads/2012/02/mzl.qwulwwsa.jpg" alt="" title="mzl.qwulwwsa" width="160" height="240" class="alignleft size-full wp-image-641" /></a></p>

<p>While down in London last, Mr Aquarion introduced me to <a href="http://tinytowerwiki.com/Main_Page">Tiny Towers</a>, a tower building game.  I played it for a few hours and decided what I <em>really</em> wanted to play was <a href="http://en.wikipedia.org/wiki/SimTower">Sim Tower</a>.  Running OS X, and Sim Tower being &#8220;of an age&#8221;, this left me with a platform challenge to overcome.</p>

<p>Despite running Windows VMs for work, I didn&#8217;t fancy running a Windows VM for play, so my first attempt was to run the game using WINE.  This failed miserably, with my machine turning in to a scorching, flaming, fireball of pain (ow hot, ow hot).  For a game involving 2D graphics released in 1994, not the best of success.</p>

<p>My second attempt involved finding a port of Sim Tower built and tweaked against WINE libraries as a nice and tidy application package.  I&#8217;m usually a fan of this approach &#8211; it makes life easy-ish for the user and most of the hard work has already been done by other developers.  Same problem again &#8211; aircraft carriers ahoy, burning lap syndrome and a battery with less staying power than Usain Bolt running a marathon.</p>

<p>At this point, I fell in to an air of despair.  Here was a game from my childhood, the only Sim-type game I truly enjoyed, and nothing (sensible) would work (I&#8217;m <em>still</em> not building a Windows 98 VM).  I then remembered that Maxis were developers of Awesome, and lots of their games worked on both MacOS Classic and Windows.  Indeed, the SimTower CD works for both platforms &#8211; FANTASTIC.  All I need is a Mac Classic environment running on top of OS X.  In comes <a href="http://sheepshaver.cebix.net/">SheepSaver</a> a MacOS emulator.  A bit of juggling to find compatible ROM images and a copy of MacOS 9 and I had a working Mac Classic environment.  To boot, it only takes a few second to &#8230; boot.  From there, SimTower took the whole of 2 minutes to get up and running.</p>

<p>Once I decided I was switching to running on MacOS, I was surprised how easy it was.  Back in the day, I didn&#8217;t own a Mac, I spent too long hacking around with Windows in its various flavours (and a few flavours of Linux).  Installing SimTower consisted of dragging a package to the hard disk and running it.  No, &#8220;missing DLL&#8221; errors, no &#8220;incompatible DirectX&#8221; malarky, no &#8220;where&#8217;s DOS 6.22?&#8221;, the bugger just worked.  There are days when I wonder how the smurf Windows ever managed to get a stranglehold on the market (yes, I know) when the alternatives were so much easier to use.</p>

<p>Oh look &#8211; 4 Stars!</p>

<p><a href="http://www.kianryan.co.uk/2012/02/its-all-aquarions-fault/simtower/" rel="attachment wp-att-640"><img src="http://www.kianryan.co.uk/wp-content/uploads/2012/02/SimTower.jpg" alt="" title="SimTower" width="412" height="318" class="size-full wp-image-640" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kianryan.co.uk/2012/02/its-all-aquarions-fault/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
