We come to that time of year when bloggers traditionally (it only takes twice to make a tradition!) indulge in a little self-promotion to drive traffic to under-appreciated by-gone posts. And who am I to dismiss the collective wisdom of bloggers around the sphere? So here it is: The Best of Functional Fun 2008
It's always strange looking back on a year just gone. Coming out of the Church Watchnight Service at 00:00 hours on the 1st January 2008 I had no idea that the coming year would see me start a blog, travel half-way round the world to a conference or undertake the expansion of our family (note to my wife: order of appearance in this list does not indicate order importance).
I launched the blog with a series of posts on Project Euler, publishing solutions for 25 problems so far. According to Google Analytics and Outbrain, the most popular posts in this thread were:
- Project Euler 15: City Grids and Pascal's Triangle
- Project Euler 12 which deals with the triangle numbers and explains my idea of Lazy Aggregation
- Project Euler 17: Converting numbers to words, along with the associated Silverlight Application
- Project Euler Problem 16: Calculating Large Powers of Two
It wasn't long before I diversified. I felt the need to try my hand at more meaty topics, so I tackled the subject of tail-recursion and trampolining (a cunningly placed Wikipedia link keeps this article in the top five!). Just thinking about such energetic-sounding subjects tired me out, so I wrote a follow up article, adding the term Lazy Trampolining to the lexicon.
LINQ has proved a great source of inspiration. Early on, I hitched a rid on the LINQ-to-* bandwagon with my articles on LINQ-to-Console and LINQ-to-Reflection. A few months later, my two-parter on Reporting Progress during LINQ queries and Cancelling Long-running LINQ queries proved very popular, even appearing briefly on the Amazon.com site when Marco Russo linked to it on the blog for his Introducing LINQ book.
Given my love for things new and shiny, it is inevitable that the the W*Fs made an appearance. The second-most popular article on the site is my walk-through of how to set up a test X.509 (alias SSL) certificate for WCF - a procedure that isn't as obvious as something that important ought to be. Interestingly, the top article on my blog is a helper class I wrote to work around a limitation in WPF's PasswordBox (Microsoft take note!): I show how to Databind to its Password property. Also popular (ranking #3) is my post kicking off what I warned would be a sporadic series on How to Create a Gantt Control in WPF; so sporadic that in four months only Part 2 has appeared!
As unpleasant as the realisation is, I often have to remind myself that my job isn't all about programming. We actually have to make money working by solving customers problems (I wrote about some of my projects back in July). Project Management is what programmers need to make them profitable, and in the last year I've come to think that Agile techniques (see my take on Agile) are the sugar needed to make the Project Management medicine go down. The post where I described how we're doing Agile planning generated the biggest spike in my traffic stats (thanks to a link from DZone) and the most nagging about when I'd follow it up with a post about how the theory plays out in practice (I'll get there soon Rob!).
And what would a blog be without a little gentle humour? Some may suggest that you look at this site to find out - but I tried as hard as my geeky sense of humour permitted:
With that, it just remains for me to wish all my readers a prosperous and Functional new year, and to thank you all for the encouragement by way of ratings, comments and emails. Happy New Year!