Hello, Scotland

I know it sounds stupid but i’m absolutely heartbroken about the possibility of a Yes vote. I understand the reasoning behind a yes vote, the UK is marching towards an idiotic trend away from our family in Europe towards an even more idiotic right-wing isolationist movement. I also think that despite a positive word, the Yes campaign is fundamentally pessimistic about the rest of the UK. I have moved throughout the UK: Whitehaven, Thurso, Edinburgh, Livingston, Troon, Maidstone and London. In all those places I felt at home. I have never felt English, I have never felt Scottish. I have always been British. I was born British in England, raised British in England and raised British in Scotland.

I won’t be voting tomorrow. I live in London now, and by the rules, I’m not supposed to vote. It’s probably ok though, i can’t imagine moving back to Scotland at all to be honest. I think it’s hard to get what I want from life in Scotland, my ambitions need a global stage that I never felt were present in Edinburgh or Scotland, maybe a Yes vote would change that, but probably not.

I will say one last thing. To my friends voting yes, if the vote comes out as a no, work hard for devolution, and push your passion that, don’t fight the outcome. To my friends voting no, if the vote comes out as a yes, keep pushing for Scotland to be all it can be as an independent country, don’t fight the outcome.

Super Jupiter IPA

IPAs are undoubtedly one of the best types of beer around. Usually a full rounded aromatic beer, i have found very few i didn’t like. Grapefruits are a delightful breakfast fruit, this is what happens if you combine the two.

Howe Sound Brewing have a knack for catchy labels, and Super Jupiter IPA does not dissapoint. If i was to throw all the breakfast fruit into space, a melon would be the largest, but due to the tendency to eat that in wedges, the biggest spheroid would be a grapefruit. I therefore wholeheartedly agree with the imagery of this beer.

IPA tends to be a very hoppy kind of beer, which inevitably leads to descriptions of it being bitter. I find a hoppy beer a delightful taste, but never had i ever thought to myself “this beer could do with some citric bitterness”, but im glad someone else did. The sharpness the grapefruit gave to this was astounding, it left me wincing like i’d had a near death experience. Refreshed after a sip, i felt like i’d had electro-shock treatment after the bottle. Serve chilled, at 9AM. A breakfast beer.



Megadestroyer Imperial Licorice Stout

Wow. Now this was a drink.

I don’t like licorice. That fact alone probably meant that drinking a massive bottle of stout flavoured with it was a bad idea. But I don’t want to hide behind not liking something. If i never tried anything new, I would stagnate!. I live stout, it is definitely an acquired taste but it’s one i am happy to have acquired. I have tried a variety of porters and stouts, some as strong as this, but never a drink with such an attitude in both flavour and labeling. The labeling was a grand nod to the USSR, a giant hammer and sickle with a name reminiscent of a nuclear device. The flavouring was something else.

I took in a breath of the gas pouring from the bottle like the experiment of a hammer horror scientist. It was strong. It reminded me of an 80% black Absinthe I had tasted (read: inhaled) in the canary islands (that particular drink was alcoholic enough to evaporate on one’s tongue, causing asphyxiation along with intoxication). The beer was definitely a stout; thick, dark and extremely bitter, but the licorice burst through, pushing aside any subtleties. I was overpowered, and the enjoyment was lost. A hint of licorice might have been fine, but it was the only thing i could taste. I am ashamed to say that this is a beer i put back in the fridge after a few sips . “I’ll finish it later,” I told my uncle. We both knew that i wouldn’t. there were plans to use it in a marinade, but that didn’t happen. Beer should taste primarily of beer. Not aniseed.



The Shonk laws of OOP

• Class names should be nouns.
• Actions should be methods on classes. NOT classes or instances thereof.
• ‘Manager’ and ‘Utility’ should only be used to name classes whose purpose is unknown/ambiguous.
• Classes whose purpose is unknown/ambiguous should not be written.

The internet is a crock of shit.

The internet is a crock of shit. I pay so much money a month in order to see watch films and tv, to listen to music and audiobooks, to play games talk to people, yet i still can’t get what i want from it. I added up what i pay on online services, and here’s how it breaks down:

spotify £9.99
xbox live £5.99
love film £9.99
audible £7.99
netflix £5.99
now tv £8.99

That’s just under £50 a month. Netflix and lovefilm were awesome at first, but the quality of their catalogue is so poor, that i have been seriously asking myself why i even bother paying for them. Cue Now TV, an offering from sky where i get access to most of the sky movies on demand catalogue, without having sky. This seemed much better than both netflix and lovefilm, but not only is the catalogue also plagued with b-rated movies instead of the films people actually want to watch, but the price of £8.99 grows to £15 after 3 months.

There is NOT a service in the UK that supplies boxset style collections of TV shows like there are in the US. Netflix has a lot of series, but many of them start at season 3, similarly, they have sequels to films without the originals. The US has Hulu and a Netflix with a much better offering. We have Lovefilm over here that has a user interface dragged straight out of the dotcom boom era. The only solution to find the tv shows i want to find is to torrent them. THIS IS INSANE. I am paying £50 a month for entertainment, and i would probably pay more, but i still have to result to bittorrent to get what i want. I can’t even buy the shows on DVD or Bluray, and to watch it on cable/satellite (which i don’t have), i still have to wait months until it is available in the UK.

Let’s set the tv/film services aside. Spotify is awesome. I listen to way more music now, and spend way more money than i ever have, yet still, the content owners refuse to take my money. Some labels have elected to ignore the reach of spotify (record labels, i believe, are a whole other discussion on crocks of shit), and i have to listen to shitty tributes of the music i want to listen to.

Audible, is the one service i dont currently have any gripes with. I hadn’t ever listened to an audiobook until signing up to the one book a month tier, and i have bought others outside my subscription (may boost it to two audiobooks a month!).

Xbox Live Gold is just too expensive. Granted, i don’t use my xbox a lot, but paying just to use netflix is absurd. I wanted to enjoy online multiplayer, but thumbsticks + fps games is another crock.

I pay a large amount of money, and i am not satisfied. Every service i want to use is available, just not in my region. That is the most ridiculous part. Netflix streams the programmes i want to see in the US, yet not here. It’s not netflix’ fault (probably), the content providers are probably breaking balls (the entertainment industry is truly a crooked piece of turd) which means that the video files sit next to each other, but a ridiculously arbitrary selection are blocked for me.

I watched a documentary about Brian Eno once. One of the things he said really got to me. He explained the hope the internet offered. A place where we could bring down borders. A place where we could be who we wanted to be. Day by day, these hopes are dashed by messages such as ‘This content is not available in your region’ and ‘Please enter your REAL name’. These restrictions are placed by the content industries to protect what they call ‘intellectual property’. The anonymity of the internet is being stripped away, reportedly for protecting people; a massive lie, its for tracking and hiding stuff from you. Maybe if the content industry provided content instead of restricting it, they’d start making more money.

I should probably stop paying these companies. They clearly don’t want my money. If Hollywood disappeared, they say that people wouldn’t like that. Can’t get enough of those screens, both big and small. I disagree, maybe if these fucking monsters just disappeared, culture would replace the bollocks of Michael Bay, gangs would be history, stereotypes erased and everyone more well read. Yeah, thats it. Read Dickens. Read Chaucer. Fuck it, read the King James Bible, just don’t watch Battleship, that shit makes you stupid.

Where is my mind?

I write code that is run by thousands of people a day. If I was an author, would that make me a best-seller? I have always believed that programming is an art-form. There are many ways to solve a problem, but the best way is almost always the most elegant.

They say that when a writer puts pen to paper, and explores the characters in their mind, a strange thing happens; that character becomes real. The character starts to live. The author has put her soul down through the leaves of a blank book and into the characters she cares for so much. A programmer is the same, but different.

As the fiction of an author is read, the reader is aware of the craftsmanship. The human element is not lost, but the characters are fictional. A programmer (usually) doesn’t have the luxury of a relatable character, an emotional scene or indeed, the poetic prose to chill and awe, for a programmer will always dwell in logic. Although logic seems on the exterior to be harsh, cold, and unforgiving, but that could not be further from the truth. Everything we do is driven by logic; you might say a stupid thing, you might embarrass yourself while drunk, or indeed emotional. These events seem completely illogical in hindsight, but at the time, if they weren’t logical, you wouldn’t have done them; logic is relative to the situation.

A programmer thinks, feels, and creates in the same capacity that an author might. The difference is, a programmer lays down his thought process, for another to run. In most cases that other is a machine, but other programmers also have to understand.

There is nothing more personal than what is in our heads. Our hopes, dreams and indeed memories we’d rather forget all lie within our thoughts; Indeed, it is these memories that influence our thoughts, more than anything else. When my code is run, you aren’t just reading something I thought up in a coffee shop, you are running my thought processes. What can be more personal than sharing the way I think with thousands of people.

The Pixies once asked ‘where is my mind?’ I don’t know the answer to that, nobody does; but when I put my thought process into an artificial syntax, and let a machine masquerade as me, asking and answering questions in a way that mimics my own mind, that question gets a whole load more complicated.


Javascript is the future of programming education

When I was in school, we had programming lessons. These lessons were taught using Microsoft Visual Basic, which was brilliant at teaching basic techniques. It was simple enough for the kids not interested to type in the code and sort of understand it. Although that wasn’t so long ago, times have changed.

Today, the majority of apps are hosted web-based solutions. And the programmers of tomorrow use the browser a lot more than the command line (how many of them have used the command line at all?). Enter our hero of the hour: JavaScript. As any developer knows, JavaScript is at the heart of the modern web, and has been at least in some part involved for the majority of the lifespan of the web. JavaScript is free, it has a precise way of loading and executing code (hit F5) and is easy to use for at least simple tasks. There are plenty of reasons to not use JavaScript to teach programming. To use JavaScript in a browser context, it requires not only an understanding of HTML but also the DOM model and event system. To teach object oriented programming, it requires teaching prototype based OOP and the differences between that and class-based techniques. The lack of strong types and memory management makes it difficult to teach the lower level aspects of development. But for all these problems, I believe the good to come from it far exceed the bad. The development cycle is immensely fast, errors are immediately obvious. The skills learnt can be used at home, no specialist software is required at all to play with. The best thing is that more and more, industry is taking JS as a first class serious solution for many problems, no longer is it confined to the browser.

The best way to teach a kid programming, the best way to engage a kid with computer science is JavaScript. Imagine the delight an that kid’s face when their little project is alongside Facebook and google. We won’t just be teaching kids a toy like visual basic, we can introduce them to the tools to realise the dreams of their naive-but-brilliant imaginations.

That is 1 way that JavaScript can make the world a better place.

$("#lessonOne").text("Hello World!");

National Express: How not to do eCommerce

Oh dear National express. What a shame. Excellent services for low prices and a quick easy website for purchasing tickets. Unless they are sold out.


Here we enter the world of shonky websites yet again. I wanted to buy a ticket from london to inverness on one of the National Express overnight buses. Despite the fact that the bus journey was only in 48 hours, it was there for all to see on their website for around £30. “Excellent!” I thought, as i proceeded to add the ticket and a return to my basket and went through to the checkout. I typed in my details and followed the instructions getting so far as to authorising the payment through payer authentication. Well, most online stores wouldn’t do that if they ran out of ‘stock,’ like national express had. That’s right; I had run through the complete payment process, only to be told that my journey wasn’t available. Well suffice to say, I didn’t visit the highlands that weekend, and missed a rare opportunity to visit all my group of friends from school in one place.

A CMS/Blog Engine in a week: Day 1

Yesterday I decided to embark upon a mission to create a (basic) content management system to use for this blog and for any other project i need. The CMS needs to have the following features:

  • Blog post editor
  • Template Editor
  • Page Content Editor
  • Image Gallery
  • URL Management
  • ACL based authentication + authorisation
A new CMS is the perfect toy project for someone such as myself who has done this professionally for a while now. The point of this project will be to explore more modern techniques for PHP App development. I have chosen to use the following libraries:
  • Symfony HTTPFoundation component
  • Twig Templates
  • Doctrine MongoDB ODM
  • Twitter Bootstrap UI Framework
I have used composer to manage the dependencies for this project, which so far has made installing and loading the libraries remarkably simple.
Ideally, i would like the end result to be plugin-able and portable enough to be the base code for anything i need to do.
Today I shall focus on developing the URL Management and hopefully make a start on the blog. Expect updates :)

A love letter to a Mr Stephen Ritchie

A little under a year a go, I joined a digital agency. My first thoughts were that it had awesome brands as clients and ‘digital agency’ is a preposterous name. That company was drivebusiness.

Many companies have inspired many emotions in me, from the small outfit run by one asshole of an Australian, to the fun I had at drivebusiness.

While at drivebusiness I discovered my love for the web and especially ecommerce. All was not perfect though. After settling into my role, the honeymoon of working on big brands started to wear off as I realised the true extent of problems in the company’s main product. Enrich was an ecommerce platform that didn’t get a chance to evolve at the rate it needed with so many new installations a year. As time went on, code bases fell away from the standard. Each project in its own repository, with incompatible APIs. Enrich wasnt a platform anymore, it was an idea that unified the clients.

When I arrived the damage had already been done, accusations were thrown around of the state of the code, but a solution was merely the elephant in the room. The code needed to be started from scratch, but the current code base needed all the resource just to hold it together. Couple that with demanding clients with (rightly) high expectations for new features and the end result was a team of very busy developers fighting a destiny the ‘shonky’ (drivebusiness is the source of the shonk, it was the inspiration for the shonk manifesto on this site) code had determined for them.

Enrich was not a bad product. Badly written? Yes, but the extensibility offered to those who knew it well is endless. The lack of a cohesive architecture/framework was insane and made consistent code impossible, but it meant that developers weren’t tied to 1 way of doing things. The truth is that most installations/versions/forks (whatever you want to call them) were capable of doing everything a developer needed, which is more than some of the big ecommerce platforms can claim.

The biggest client that drivebusiness ever had was Allsaints Spitalfields. Their enrich took half of the entire drivebusiness development team, until it became more economical to take the code in house and hire a development team to do the work themselves. Allsaints was the success story that drove enrich and drivebusiness to the serious status it deserved.

Bench,Gant UK, Gant Sweden, Reiss, Allsaints, Elvis Jesus, ted baker were just a few of the brands that drivebusiness attracted. These big brands built into me a hunger for working on big brands (one of them currently employs me where I continue to work on a version of enrich), and I owe it all to Mr stephEN RItCHie. Incidentally I have never met him, the company was relatively small, and I believe that there was no excuse for him not to at least say hi (he once sent me a scathing email explaining my work as sloppy, which wasn’t my work at all. Do first impressions count for nothing?).

I think Stephen Ritchie was short sighted, didn’t really understand what his company did, but by all accounts he was a nice guy. I felt like hating him during my time at drivebusiness, but I don’t think I did hate him. I didn’t hate anyone at drive, I think I liked everyone there, at least a little bit. I spent my time arguing and complaining, and I became well known for it, but I felt it constructive. To put it short, I would not be where I am today if it weren’t for the great friends I made at drive, and the awesome work that came with them. To quote an ex-drive developer (they are all ex-drive now :/), “we did the best we could.” the best wasnt perfect but by god we all tried.

Drivebusiness changed my life for the better, and for that reason:

I love you Stephen Ritchie.

Drivebusiness closed down today, but even if they don’t know it, every ecommerce company has been touched by drivebusiness in some way.