Sam who?

Creative Writing: Hovering

A while back in work some colleagues set up a number of creative writing sessions where we would do various exercises and writing prompts and write short stories, and give feedback on longer stories if we so desired.

The following (very) short story is the result of thinking about where big revelations occur in a story: the beginning, the middle, or the end. I wrote one with a big revelation at the very beginning.

Toying With Cryptography: Crib Dragging

Cryptograhpy has become very topical in the UK over the last few years, what with the UK government wanting to do nasty things to it. It also happens to be one of my weakest areas. I don’t know a whole lot about how it works and I probably should. Because of this, I’m reading It’s a book written by lvh and made available for free.

The teaching method in the book is exactly how I love to learn things. It starts at the beginning and works through chronologically, showing how each method is broken and how it was solved at the time, all the way up to the modern day ciphers.

It all begins with an ideal: one-time pad.

Prerequisite knowledge: I’ll be using Ruby to demonstrate things. No knowledge of cryptography is required.

A Beginner's Guide to Money After University

So you’ve graduated or are about to graduate (woo! congrats!), or maybe you’re just interested, and you’ve never had much education on money in the so-called “real world”. At least, this was my situation about 3 years ago. The following is everything I’ve learnt about money in the last 3 years, and the idea is to put you in a strong position to know whether you’re being fairly compensated wherever you end up working.

Note: Being a Brit, this post only really applies to the UK. I don’t know much about compensation or taxation in other countries.

How Does File Copying Work

I’m a big fan of Quora. One of the questions I came across recently concerned how files get copied from one place to another. I wrote an answer that tried to show empirically how files get copied. I thought it would make for a nice blog post, so I’ve cleaned up the original answer and extended the parts that I waffled over to be much more concrete and correct.

Prerequisite knowledge: If you’re not sure what a system call is, this post might confuse you.

Unpopular Opinion: I Like the Whiteboard Interview

Yup. I’m one of those people that actually thinks being stuck in a room with an interviewer, a whiteboard and a programming problem is fun and if I were interviewing someone, I’d probably put them through the same hell.

On Being a World of Warcraft Addict

I started playing World of Warcraft (WoW) way back in 2005, shortly after it was released in February of that year. I would have been 14 at the time. I stopped playing some time in 2007, I don’t remember exactly when. During those two years my real life was put on hold while I created an entirely new life.

Phobias for the Non-Phobic

Today I’ll be interrupting the usual programming to write a little something about phobias, specifically targeted at people that don’t have any. It’s probably going to come across a little killjoy and lecture-y but stick with me, it’s an important topic worth understanding.

The Interweb Isn't Magic

It’s quite easy to get scared by large systems of things that seem like magic. The Internet is pretty remarkable. It’s probably among the largest and most complicated systems ever designed by human beings. All those hundreds of web pages we view each month arrive at our computers unscathed a large percentage of the time. Some of them will have crossed the Pacific! That small percentage of the time we have a page “hang” while loading is often resolved by simply hitting the refresh button. Ace, right?

But how do those pages actually get to us? In this post (and maybe more, I might split them out, we’ll see how it goes) I want to show how these things work with practical examples and real commands that you can run to inspect what’s going on.

Prerequisite knowledge: Basic Ruby should do it. If you’ve built a simple web application with Sinatra or Rails or something similar, you should be able to follow along without much issue.

NOTE: I’m a Mac user. Some of the examples may be Mac specific. I will try, where possible, to give equivalent commands you can run on a Linux machine but I may miss something out. If you spot something that doesn’t work on your platform, get in touch. Windows users: I’m sorry.

Journey: A Story of Compassion in Video Games

Some words on beautiful video games and their affect on humans beings.

Note: If you’ve never played Journey by Thatgamecompany, this post is likely to contain spoilers and other things that may detract from your enjoyment of playing through the game. You have been warned.

From Being Rejected by McDonald's to Working at Google

On the 14th of August 2008 I was rejected for a “Crew Member” position at McDonald’s. On the 12th of May 2014, I started as a Site Reliability Engineer for Google in London. I am very happy about this and want to write some things about it.