Serial and Windows Subsystem For Linux (WSL)

Post thumbnail
Post thumbnail
Windows Subsystem for Linux provides an abstraction layer to allow the execution of Linux distributions directly on Windows. WSL comes in two flavours: WSL1 is a set of interfacing libraries where WSL2 uses Hyper-V, and works alongside a VM. Unfortunately, the newer WSL2 does not support serial devices, which means... [Read More]
Tags: retro z80 serial
Categories: Code

Getting Markdown Out of the Psion

The Psion 5MX makes a great little portable writing tool, but getting files off takes a little more effort. The word processor handles plain text and it’s own proprietary binary format. Plain text is fine, but I’d like to do something with the formatted content. [Read More]
Categories: Making Code

Vim-Csharp Updated

I’ve updated Vim-CSharp with a few new features. The original aim of this project was to eventually provide autocomplete support for .NET projects. Omnisharp does this so well, there’s no point in duplicating effort. Vim-Csharp is now focussed on increasing developer productivity through better syntax highlighting, snippet completion, and any... [Read More]
Tags: code
Categories: Code

Configuring Postfix For Local Development

Whilst working through “Agile Web Development With Rails 4”, I was genuinely surprised to find the author advocating configuring your local development environment to send e-mail via an external SMTP server. To me, this is a bad idea, since there’s a real risk of unintentionally delivering mail to real accounts.... [Read More]
Categories: Code

7 Languages in 7 Weeks… Or Maybe A Bit Longer

Technical writing can be broadly categorised three ways – introductory, reference and developmental. Introductory writing is about introducing the reader to a new subject, hand holding them through the initial steps, and generally taking some of the pressure off learning a new skill. Reference writing is an in-depth look on... [Read More]
Categories: Code

Google Maps Geocoding API v2

Google have “turned down” v2 of their Geocoding API as of the 9th of September. For “turned down”, read “turned off”, making some interesting breakages for sites that rely on this API. Information available here: [Read More]
Categories: Code

Project Types – MVC 2 and MVC 3

Visual Studio ends up having a bit of a hissy fit if the project file has the incorrect project type. This appears to be especially common between MVC 2 and MVC3, where your project may have MVC3 binaries, but the MVC2 project type. Visual Studio 11 simply refuses to open... [Read More]
Categories: Code

SSH on Android

There are a few SSH clients out there for Android, ConnectBot being the most popular and BTEP also proving popular. Both of these provide good front end interfaces, but suck on keyboard support. There’s nothing more frustrating than pressing Ctrl on a bluetooth keyboard, only for it to behave entirely... [Read More]
Tags: android ssh
Categories: Code

A Quick Introduction To Screen

By popular request, I’ve been asked to write a quick introduction to screen. Screen is a terminal window manager, that allows you to run multiple shell windows concurrently from a single connection. In summary, you can do this: [Read More]
Categories: Code

gVim on Ubuntu – Running in Fullscreen

I admit, I am a fan of working in full-screen. Whilst coding, or writing I don’t want to see anything else unless I explicitly ask for it. If I want the time, or to see the screaming requests of clients I will make the point of switching to that information.... [Read More]
Categories: Code

Ruby Game of Life

I am learning Ruby and Vim. I’m also attending the Preston Codejo hosted by Magma Digital, where were using Ruby as the driver. [Read More]
Categories: Code

Conway’s Game of Life

This weekend saw the global Coderetreat happen, where developers all around the world worked in regional groups to improve their coding techniques, and to try out new ideas/languages. [Read More]
Categories: Code

Leeds Hack 2011, Or That Was The Hack That Was

LeedsHack 2011 has been and gone, and again was the flurry of excitement and frustration we’ve come to expect from the event.  @the_hodge, @heathervamp and the rest of the team managed to organise an excellent venue, a world class pic ‘n’ mix and the world’s largest simultaneous takeaway order –... [Read More]
Categories: LifeTrack Code

JsonRequestBehaviour.AllowGet & Visual Studio Regex

Nice quick win – currently upgrading a client Intranet project from ASP.NET MVC1 to MVC2. Microsoft changed how get requests are handled in this release and disallowed GET JSON requests by default. Before going any further, note that there are security implications in allowing JSON get requests. [Read More]
Categories: Code

Parcelable, AIDL and IntelliJ

If you’re using IntelliJ IDEA to build your Android apps (as moi does), and you try to create AIDL files to sit beside your classes (specifically for the Parcelable interface), you may notice your own classes magically disappearing at compile time. [Read More]
Categories: Code

Application, Service and AIDL

Our demonstration Android application for Leedshack came in two parts – a user-facing application which the user could use to drop “markers” (points used to attach triggers to) and a background process which checked a remote web service to look for any triggers to fire. [Read More]
Categories: Code

Fizz Buzz

I just read “Why Can’t Programmer’s Program” over on Coding Horror. Out of sheer curiosity, I googled “Fizz Buzz C#” just to see what some people had engineered. The idea of the “Fizz Buzz” test is to provide a starting point to prove you can write working code. Nothing complicated,... [Read More]
Categories: Code

Fiddler 2 and MVC Forms

I’ve been using ASP.NET MVC for a couple of projects now, and so far my assessment is lukewarm. I like it in that it lets me play with raw data and is increadibly powerful, extensible and testable. It does take quite a while to spin things up though, and you... [Read More]
Categories: Code

Internet Explorer User-Agent Strings

Internet Explorer can be a right PITA when it wants to be. I’m using Thickbox to render on page dialogues in one of my projects. Thickbox relies on testing $jquery.browser.version for determining the version number of Internet Explorer. [Read More]
Categories: Code

Log Parser Is My New Best Friend

SEO may be something of a dark art, but even if we don’t practice it, as web developers we’re usually responsible for putting into place the mechanisms that allow the Mouldy-morts to practice their forbidden forms. Recently, that usually consists of dropping analytics code onto a page to track your... [Read More]
Categories: Code

Because Good (Free) Fonts Are So Hard To Find

Those who have to dip their toes into the life of a designer once every so often understand the importance of typography. One of the hard parts of typography is finding the right typeface that isn’t going to break your piggy bank (or your client’s piggy bank). [Read More]
Categories: Code

Javascript Intellisense & jQuery.noConflict();

I’ll make no bones about it, VS08 SP1’s Javascript Intellisense saves me from having to dive into the docs every five seconds. Not having that fingertip intelligence to my hand would probably cost me quite a bit of time each day. However, since I often end up using multiple frameworks... [Read More]
Categories: Code

The Massive Dev Chart for Android

Edit: The Orange Tentacle version of the Massive Dev chart has now been unpublished at the request of Digital Truth. Digital Truth now have their own paid version of the application which is availible on the Android Market. [Read More]
Categories: Code Photog

ISO Countries and Their Codes In SQL

Had a headdesk moment as I sat down this morning to write a delivery page for a web site I’m current working on. I needed a table of countries, their ISO numbers and two and three letter codes. I’ve done this once or twice before, but had misplaced the script... [Read More]
Categories: Code

SQL Server Management Studio – Unable to browse databases.

I often end up working in collaborative environments, with SQL Server accounts which only allow me access to one database on any given server. Using the SQL Server 2005 tools, this wasn’t a problem. SQL SMS showed me all the databases available but threw an “access denied” if I tried... [Read More]
Categories: Code

The Venerable “if” Statement

It’s one of the first keywords every programmer is taught, and it’s the first real sense of control you’re given over your programming. It’s translated into almost every language (there is the odd exception, and they are odd) and makes the basis for every conditional statement there-in. [Read More]
Categories: Code

Accessing Session State in Handlers (.ashx)

I use generic handlers (.ashx) quite a bit when working with client side Javascript, they’re a good way of getting data to and from the client. I’ll do an in-depth post at some point showing a nice way of chaining generic handlers, JQuery and JSON in a quick way of... [Read More]
Categories: Code



There’s plenty of resources on individual frameworks, and whilst it’s not necessarily trivial to learn an individual frameworks (ask anyone who’s done a deep dive in to C), programming as a skill extends beyond that to learning how to approach problems. The following is a list of resources that are focused on thinking rather any any one technical skill.

  • Pragmatic Programmer - I have a habit of hitting juniors around the head with this book. An excellent primer to sensible thinking, there’s very little in here that’s not common sense, but really does need laying out in a book. Will revisit, and occasionally hit myself around the head.
  • Beautiful Code - This book is a collection of essays on different viewpoints of “beautiful code”. This is not for those starting out, but for those who have their feet already wet. It challenges preconceptions, especially if you’re used to thinking from the viewpoint of a single framework and single ideology.
  • Seven Languages In Seven Weeks - Melt your brain. Learn how to learn. This hurt more than I would like to admit. This is an excellent book on learning to be adaptable. There are other books in a similar vein “seven databases in seven weeks”, “seven web frameworks”, the idea is to get used to getting your feet wet often and taking on board new ideas and new viewpoints. Some languages were familiar, some were very much not. This is an excellent way to gain a crash course in how to critically learn new languages, and how to discover new programming paradigms.
  • Don’t Make Me Think - At some point, your code will have to interface with people. Don’t fall in to the trap of declaring “I’m a programmer, UX is someone else’s program”, understand the basics of UX and how to look at usability problems. This covers web and (oh, an update) mobile, but the principles are sound.

A few tools are universal. Learn them once and they stick with you, irrespective of what you’re doing.

  • Modern Vim/Learning the Vi and Vim Editors - I was a a happy Vi person for a long time. I’ve now mostly switched over to Visual Studio Code (with Vi extensions), but the premise still holds, get to know an editor intimately, you’ll live inside it. IDEs come and go, but editors are (almost) for life.
  • Pro Git - Learn git properly. Ideally from the command line so you can get underneath its skin when things go a little pear shaped. Which will happen.
  • LEARN SOME SHELL. Powershell, Bash, whatever suits the OS you’re living in. Learn the glue.

Anything below here is general interest - sometimes it’s just nice to know your history.

  • Fire In The Valley - Well written history of personal computing from the 1970s to the 1990s.
  • Digital Retro - Pretty pictures and history of early computers.


Podcasts exist in two groups here - culture/thinking and technology specific. Both are useful, and sometimes they’ll blur the line. I don’t particularly get on with rambling podcasts, I tend to consume podcasts either in the car or whilst running, so prefer there to be a sharp focus to the content.

Culture/Technology Agnostic

  • Hansleminutes - Possibly the best produced current developer podcast available. Interview and topic led each week, content is delivered in a way that’s accessible to a range of audiences. This is general interest, there’s usually something here to suit everyone.
  • This Developer’s Life - The best produced developer podcast. Unfortunately, currently inactive, but their archive is a goldmine. You’ll find an exploration of developer culture in here, looking at what drives developers.
  • Weekly Dev Tips - Short (5 minute) tip podcast. Direct, often features guests. Little bit sized snippets of pragmatic advice, delivered in a friendly and accessible way.

.NET Specific

  • .NET Core Podcast - Interview led, project focused. Strong look at culture, architecture, uses, integrations of projects. Excellent work. Often come away googling the podcast projects.

I'm Kian Ryan

TLDR; I sport, code, make stuff, and play adventure games.

Stay safe. Go Make. Trans rights are human rights. Still get f-ed Putin. Might need to stock up on milkshakes.

There are no ads on this blog and as far as I can remember, never have been.

☕ If you want to support any of the work done here, or elsewhere, you can buy me a coffee on Ko-Fi.

Our latest ko-fi supporters.

No coffees purchased since we put this little widget live (or in the last two weeks). Others have kindly donated and you can see their donations here.