Which way?
A quick reminder to set your direction with NB.
A quick reminder to set your direction with NB.
This is just a quick hat tip to The Last of Us on the PS4. I've been playing this game for the last few weeks and after playing a series of disappointing games like Destiny and Call of Duty: Advanced Warfare, it's great to see gaming being taken in a different direction. The game itself was brilliant, but not only that it was backed by a great story, believeable characters and a game that didn't rely on an arsenal of weaponry.
Highly recommended.
I had been putting it off for weeks, probably months in fact. My desk was slowly becoming a paper-based version of Smaug's hoard of gold . It was time for a de-clutter.
We don't have a huge house but it's big enough for us. My workspace is located in the back of sitting room where my sons tend to congregate in the evening and at the weekend. I've got a desk, bigger than probably most people have in their homes but with it being my workspace for the whole day it needs to have space to allow me to be comfortable.
Over the weekend I started organising the top of my desk and moving things about to give myself more room. It took a few iterations but I'm seeing a benefit of the change now as I write this. I have more space on my desk almost all cables are out of sight. Having got this sorted I turned towards the tower of books, magazines, papers and other dead-wood that was accumulating under my desk.
I was glad to see that I managed to get rid of a few programming books that were aimed at more of a novice level. I've kept some of these books for years, but having not read one of them in the last year, it was definitely time for them to go. Never a bad thing to throw away the books you have learned from and moved on. Old magazines for healthcare and programming were consigned to the recycle box with a vow to keep only the last month's magazine.
Lastly it was the turn off the paper. With reams of paper cluttering under my desk, it was time to keep the stuff that needed to be processed and shred the rest.
The de-cluttered desk is now ready for some productive work. It's amazing the difference that an exercise like this does for your motivation.
Lambeau Field is over 3500 miles away. No distance is too great though to root for the team you love.

I forgot to do this last year. It completely went out of my head.
Not much has changed since I last wrote about this.
As I mentioned above, the only change I would make at the moment is to replace my Pro with an Air, but with so many rumours flying around about changes to the MacBook line up, I prepared to wait a few months to see what emerges. Other than that, all my hardware is reliable and working well.
This is the software that I use every day. These are the essential applications I need to work. If I had nothing else in terms of software, then these applications would be all I would need.
While I do use the following software every day, these are more like nice to haves rather than essential. Still, they make me more productive every day, so I'm glad I have them.
A web developer's playground. Just a small selection of the many services and products that I use online.
I haven't had any major backup disasters in the last year, but that doesn't mean I can stop backing up my data.
So that's the tools round up for this year. I might do a progress report in the summer with any changes that happened since then. Glad to see that small paid services such as Instapaper and Feedbin are still going strong. Also good to see that I'm not constantly switching tools like I have done in the past. I seem to be reaching a state of 'tools zen' where I know what works for me and what doesn't.
Skipping the TDD cycle isn't always a bad thing to do. After all, sometimes you just want to write code.
Over the holidays I had some free time. An idea has been in my head for most of the year, but I never got round to scheduling anytime to work on it. I decided now was the chance to throw something together to see if this idea was worth exploring. To change things up a bit I decided to not follow my usual practice of TDD. Some might call that laziness and that might have been a minor factor, after all it was the holidays and this was just me trying something out, but the major factor in skipping TDD was that I had the knowledge to build the application quickly. Over the course of a couple of days I put together the first attempt at implementing this idea.
Aside from a couple of typos and minor bugs, the application is working fine and doing its job. The bugs were just oversights made by myself during those two days and they were easy to fix once found. I'm not surprised by the this as it is a simple application comprising of some basic CRUD operations and a single Rake task. Once everything was looking good, I deployed the application so that I could see it running for a few days. After a week it was clear that all was in working order. I've shared the idea with a couple of people who have so far been positive about it.
Now being a good developer I mostly write tests before I write code. It's the TDD way. This time though I skipped the tests in favour of getting something basic up and running. I had the knowledge and I ran with it. It was supposed to be just a prototype after all.
In the past I've stuck with using TDD when building even the smallest of products. At that point in my career however I was a less experienced developer. I was still figuring things out. The tests made sure that everything was working as I stumbled through different parts of the product. Now though, I have the knowledge and confidence to throw small web applications together without writing tests to in order to explore simple ideas for web applications.
Is it still a prototype then now that it has been shipped and is being used daily? Yes and no. The line between prototype and product is definitely blurred here. I would have to say that until the code itself was backed by a test suite, it's still just a prototype, an idea. So why not trash the code I have at the moment and start again from scratch using TDD?
I could, but I already know what code I need to write. Do I really want to scrap the whole thing knowing that I'm just going to write similar code again? In an ideal world I would probably do this but I knew it would be a while before I got free time like this again. The next obvious step then would be to add tests to the prototype and gradually refactor this code into something more stable. Something ready for the masses.
TDD is still a great practice to follow when writing software, but I think there's a time and a place for it. When writing software as part of your job, for a client, or as a contribution to an open source project, then yes, TDD should be used in these cases, especially if they are expected of you. However, when you are exploring code, ideas and simply playing around then I think it's down to yourself to decide. And if you decided not to TDD, don't sweat it.
TDD might be advantageous when learning a new language or framework but when you have the knowledge to build something quickly then why not. If it's worth pursuing further then start writing tests for the code that you have before things start to get more complicated.
It was a bit of a double win today for me and my son. We each got good news today that have changed how we're viewing the rest of the year. I'm looking forward to seeing what this will end up for both of us. I'm staying tight lipped at the moment on both sets of news but I'll be sharing both of them in due time.
I've been thinking for a couple of week now about learning Rust, but something that's been bugging me has been what to build with it. Rather than focusing on what to build first, I should really be focusing on learning Rust first.
This sketchbook of implemented ideas isn’t a paper book, but a collection of small programs. It could be as simple as a folder full of Python scripts or Erlang modules. It’s not about being right or wrong; many ideas won’t work out, and you’ll learn from them. It’s about exploring your interests on a smaller scale. It’s about playing with code. It’s about having fun. And you might just become an expert in the process.
— A Developer's Sketchbook for the Twenty-First Century by James Hague
Setting a goal for the year is made by many at the start of each year, but people frequently give up or just abandon their goal because it seems too far away. With a little change in tact though, there's a better way of hitting your goals for the year.
Instead of focusing on big goals for the year, what about setting smaller goals for throughout the year? Smaller goals are within easier reach, easier to track and it means that if the goal isn't hit you can try again the next month.
When goals are set for the year, people usually forget to set aside regular checks to ensure they are on the right track. After a few weeks many people simple give up. With smaller goals though, you can set yourself a more manageable and attainable goal that will give you the confidence to succeed on subsequent goals.
The start of the new year is traditionally seen as the only and best chance to start afresh but there's more than one opportunity available in the year to do this. New year, new month, new week or even new day. There's more opportunities to start afresh than you think.
If you set yourself goals for smaller periods of time then you give yourself more chances to achieve that goal. Right okay, you didn't do that bike ride in the time you wanted for January. Could you do it in February though?
The chance to start afresh is there every day, every week and every month. You just need to decide what you can realistically achieve in those periods of time.
... with NB.
Surprise them. Shock them even. Don't even complain once. About having eaten too much, the vacation being too short, the ridiculous queues at Starbucks on New Year's Eve afternoon. Don't let that stuff get to you. It's a little friction in the wheels of life. It may be the first week back. Heck it's the first Monday of the new year.
— Back to Work? by Nicholas Bate
Click through for the reason why you do this.
In this roadmap are many questions. In your journal — whether digital or by hand — you can simply write out the question at the top of the page, and answer as if having a conversation. Don’t worry about formality, how it may sound out loud, grammar, etc. Just write your thoughts. It may seem mundane, but there is a magical quality in writing something down that cannot be fully explained. You just have to trust me and try it out.
— Jumpstart Your Journaling: A 31-Day Challenge by The Art of Manliness
What a terrific idea. A roadmap of journal prompts to build up a journaling habit.
I would have to say that the Jack Ryan reboot was by far my most disappointing movie of 2014.
Chris Pine seems suffocated to be playing the straight-man hero (he is more at home in Stretch and Into the Woods), Kenneth Branagh is really not Russian, and really you just want to weep for Keira Knightley, whom everyone assumed would have a secret role to play in the film but is merely there to have a light bulb shoved in her mouth while she tearfully waits for her man to save her.
— 'Exodus,' 'Maleficent' And The Worst Films Of 2014 by Forbes
My own cinema going experience for 2014 was limited, but I'm glad to see there's a few must-see movies for 2015. Roll on 2015!
Sadly I failed to completely fill a whole notebook this year. Seems like a trivial goal to have, but having a notebook full of notes, ideas, mind maps and lists gives you more book than a notebook only partially filled with notes and other stuff. Armed with these suggestions though I'll have a better chance at finally filling a notebook.
via The Cramped
I was on a roll there for a while, but it's been difficult to get that consistentcy back again. I am working on it, it's just the hovering over the publish button that has frequently held me back.
Software engineers should write because it promotes many of the same skills required in programming. A core skill in both disciplines is an ability to think clearly. The best software engineers are great writers because their prose is as logical and elegant as their code.
— Software engineers should write by Shubhro Saha
Resolutions rarely affect only ourselves when we make them. Patrick makes a good point of getting those around you to help support your resolutions.
And even those things you think are just for you — to exercise more, to eat better, to meditate — may not be able to be successful without our partners actively supporting those efforts and allowing us the time, space, and resources to achieve them. Accountability helps here too. If those around you know them you are more likely to be held to the goal.
— Resolutions don't happen in a vacuum... by Patrick Rhone
Boxing Day: a day where you avoid anything too clever and start by reflecting on (1) identifying the boxes in your life and (2) checking what's inside them.
— Jagged Thoughts for Jagged Times 130 by Nicholas Bate
I already have too many boxes. Perfect timing to de-clutter.
An early Christmas present from Arizona. All you need to know to get things done.
It turns out, 31-year-old me who’s played a handful of sports in adulthood is substantially more coordinated than 17-year-old me who’d played none and was suddenly five inches taller than before.
— Clear Your Mental Cache by Thoughtbot
Is it time you re-visited those things that you think you know about yourself?
Read from the best, read from Nicholas Bate.
Yeah, I know. It's a single-speed. But you can't deny it's a rather fetching bike.

I can't wait for the run-up to Christmas to finish, and for Christmas itself to begin. This frantic running about gets worse every year.
I may take NB's advice this weekend and start bringing the quiet forward.
The different sound components of the Millennium Falcon's hyperdrive failing explained by Ben Burtt. The biplane used was probably more reliable than that hunk of junk.
This morning's topic of conversation in the car to school with the kids was very enlightening.
Where would you go if the zombie apocalypse started?
Some barmy theories were proposed, but perhaps the best one was to hole up in a bike shop.
There's coffee, energy bars, bike tools, plenty of bikes for barricading doors and their reliable as transport.
And they say kids today aren't imaginative!