Fixie Friday - Sparkle Pony Holeshot Disc SS

Yeah, I know. It’s a single-speed. But you can’t deny it’s a rather fetching bike.

via PEDAL Consumption

Christmas Quiet

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.

What a Hunk of Junk

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.

School Run Topics

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!

Goodbye Dr Dobb's

I haven’t been reading the Dr Dobb’s site for a while but back in my days as a .NET developer, it was a regular place to visit. Still, it’s a shame to see there won’t be any new content after the end of the year.

No amount of analysis and explanation can mask the deep, personal sadness I feel at writing about this decision. Like many of you, I grew up reading Dr. Dobb’s. For me, as I suspect it was for many of you, Dr. Dobb’s Journal was the lifeline to a thorough understanding of programming. I recall that when the magazine appeared in my mailbox, all other activity for the day came to a sudden stop and the remaining hours were spent blissfully poring over article after article, soaking in the information. I learned C from Allen Holub’s C Chest column, operating systems from the 18-part series on 386BSD, video programming from Michael Abrash’s Black Book, and data compression from Mark Nelson. And so on — each month brought new, enabling insights and explanations of often arcane topics.

Feedbin's New Updated Section

Feedbin has been my goto RSS Reader ever since Google Reader closed. I’m glad to see that development is continuing at a good pace with new features being added regularly, including the new Updated section that includes articles that have been updated after being published.

Excellent for keeping track of changes to articles.

Custom Assertions with Minitest

In the last few weeks I’ve been working on a Rails 3 application for a client. The test suite doesn’t cover the whole application, so along with features being added for the client, I’ve been gradually expanding the test suite to cover the entire application.

The test suite itself uses Minitest and the test syntax. So far I’ve had an enjoyable experience in adding tests for each part of the application. This week though I faced an issue of duplication in my tests. The application includes a number of mailers. Each mailer has an erb and plain text template. In my first pass at testing this mailer I had some duplication going on with the different templates for each mailer.

assert_match(/Hi there #{person.first_name}/, mail.text_part.to_s)
assert_match(/Hi there #{person.first_name}/, mail.html_part.to_s)

This is just one of many lines in the tests that assert that the two mailer types include the right content. Wouldn’t it be nice to wrap these two assertions into one?

Minitest allows you to define your own assertions but up until this time I made do with Minitest and Rails’ own assertions. Turns out that adding your own assertions to Minitest is easily done. I included the following assertion in my test_helper file but you can include your own assertions in a seperate file if you want to and then include that in your test_helper file using require.

module Minitest::Assertions
  def assert_mail_match(expected, actual)
    ["text","html"].each do |mail_part|
      assert_match(expected, actual.send("#{mail_part}_part").to_s)
    end
  end
end

What we’re doing is adding a wrapper around Mintest’s assert_match method and pass in our expected value and the actual value. The method will iterate over the two mail parts in the mailer and assert that each format has the correct corresponding content.

We can now call the new assertion in our tests:

assert_mail_match(/Hi there #{person.first_name}/, mail)

Wrapping these two assertions into one makes sense. The template formats for the mailers is unlikely to change and the two different formats have the same content albeit with different formatting.

After a couple of years of using RSpec, Minitest has been a nice change to how I test the Rails applications I’m working on. Its syntax and single way of doing things means that I find it easier to write tests. Hopefully, I’ll be able to share more insights into using Minitest in the future.

This Will Help

A little self promotion. My latest book, This Could Help, is now officially available on all platforms. It’s a collection of essays and asides, all of which could potentially help you in some way. Each one is purposely written to land hard and make an impact that matters.

Patrick’s latest book will help many people. Not too late to buy as a stocking filler!

Measurable Goals

It’s that time of year where you should be thinking about goals and plans for next year. Here’s a little tip. Try measurable goals.

2015 is just around corner. Just over two weeks in fact. For many the setting of goals and plans for next year won’t begin until that period between Christmas and New Year. Right about that time where the over-indulgence of food will probably lead to a planned diet for the length of next year but will most likely only be until the second week of January. I learned a long time ago that setting such goals and plans on the eve of the New Year rarely last beyond January.

Such goals often fall apart simply due to them being set in such a short period of time with little thought to making actual plans to achieving those goals. They also rarely succeed due to the fact that there’s no clear end goal in mind. If your goals are financially related, why not think about the amount of savings you have just now. How much more would you like to have in savings by the end of next year? If your goals are health related, think in terms of improving the numbers you have now. What’s your time for a five minute mile now? How many seconds do you reckon you can take off by the end of next year?

At the end of last year I set myself a few goals. One of them was the total amount of income I wanted from my freelance work. I had a figure in mind that was more than the previous year. A good 25% more in fact. I managed to hit that goal this year with a steady stream of work coming in. Next year I’m increasing that figure again by a further 25%. With the projected work I have for next year, that figure can’t be gained by invoicing clients alone, it will require me to start thinking about income from products and services as well as perhaps re-negotiating my rates before the start of the new financial year in April.

A measurable goal is much more achievable when you define the figure you have now and the figure you want to achieve. It doesn’t need to be a goal for the whole of next year either, it could be a attainable in nine months, maybe even six. The point is that a measurable goal is an attainable goal.

Faster Golf

Rory McIlroy reckons a faster version of the game is required to get more kids interested in the game again.

Everything’s so instant now and everyone doesn’t have as much time as they used to,

Having watched Ethan and the rest of his friends develop in the junior section over this year I would have to say that the pace of the game isn’t the main problem. There’s plenty of enthusiasm from kids to play and professionals and golf clubs are trying to provide facilities for even the youngest of aspiring golfers.

Facililties and equipment for these young kids might be more of an issue. Golf is an expensive sport (even for kids) and there’s still a lack of accessible facilities that allow kids to simply go out and play when they want.