I’ve decided to try something new and publish professional retrospectives at the end of each month. Each retrospective will provide a summary of what I’ve been up to over the past 30-or-so days along with my plans for the up-coming month. Initially, there will be no rules in place and these posts should be considered experimental at best. Read more about why I selfishly started posting my professional retrospectives.
December was a surprisingly busy month as I successfully deployed two production applications:
Project A: The initial product launch of a .NET web application using jQuery, AJAX, Json and web services. For the second project in a row, I was paired up with a HTML designer. Though code merges aren’t always easy, having a dedicated resource (read: anyone other than me) responsible for page layout, usability, css, and browser testing is a luxury. If you have the means, I highly suggest it. I was additionally spoiled as the web service and data layer was provided by the customer’s development team. Since my web development and their remote web service development was happening concurrently, we agreed on the web service contract and I coded exclusively against mocks until it was time to integrate. It was really exciting when it all came together as it was the first practical experience I had with designing for testability/mockability.
Additional, semi-noteworthy project stuff: Caching and the decorator pattern, cache helper class, session helper classes, jQuery and Json eliminated nearly 100% of my code-behind logic, configuration management, ASP.NET themes, email template with embedded resources and why I didn’t use Master Pages.
Project B: A Phase 2 Release for an multi-piece application which I initially launched in July. This release included .NET web, web services, SQL Server 2005 enhancements along with minor tweaks to the WPF client. We brought in a second developer to help with Phase 2. This was great as it gave me opportunity to validate my work and ensure the application could be transitioned to others if need be. Not so surprisingly, the biggest hurdle in getting the second coder up to speed was the understanding of the domain. After that, a quick run through SubSonic and SSMS Tools Pack was also required.
I also spent some time working on a internal Silverlight application which I won’t comment on here because I’ve already blogged it to death.
I’ve previously posted about Lightning Talks. At my company we actually call them “code brews.” Though are meetings aren’t technically code brews, I am very found on the term as it is made up of two of my favorite things. I’ve committed to doing future talks on Aspect-Oriented Programming (AOP) and Functional Programming with a focus on F# in the near future so I anticipate these two topics will begin to surface on my blog soon.
Speaking of my blog, I’m anything but consistent when it comes to posting content here. However, December was a surprisingly big month for me. I posted 10 articles (many of which included downloadable code) and I couldn’t be more in the posting spirit. My favorite posts last month:
On a side note, we’re ramping up individual blogs at work. More than likely, I’ll start dual-posting to JohnnyCoder and my work account. We evaluated BlogEngine.NET, dasBlog and SubText before settling with SubText. Perhaps I, or a co-worker, will offer up a future post regarding the details of our evaluation. I will say blog aggregation was a big factor and running SubText in IIS7’s Integrated Pipleline Mode is tricky.
I enjoy reading more than ever, but books are expensive. I have been borrowing books from co-workers, but most often I’m paying Barnes & Noble and Amazon for my education. As an alternative, I have started looking into options like Safari Books Online through ACM as well as ethically-questionable Scribd.com. Though I’m not certain my eyes/head can tolerate reading hundreds monitor-hosted pages, I already read a lot online (blogs, code) and I think I’m ready to make the leap. Though I’m sure I’ll eventually be reading complete books online, I feel the most obvious benefit is having the various reference materials immediately available.
We’ll see if the eBook idea pans out, but for now I’m sticking with tangible books. Which bring us to the books I read last month:
- Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister
- Head First C# by Andrew Stellman and Jennifer Greene
- Head First Design Patterns by Elisabeth Freeman, Eric Freeman, Bert Bates and Kathy Sierra
- Reread The One Minute Manager by Kenneth H. Blanchard and Spencer Johnson for the umpteenth time
As well as started last month:
- CLR via C#, Second Edition by Jeffrey Richter
- Agile Software Development with Scrum (Series in Agile Software Development) by Ken Schwaber and Mike Beedle
- Foundations of F# by Robert Pickering
- Some of jQuery in Action by Bear Bibeault and Yehuda Katz
Since books are pretty tough to read while driving, I’ve continued to listen to nearly one podcast per day. The following is a list of December and late November’s Top 10 episodes. They are listed in no particular order although my very favorites are at the top of the list:
- Hanselminutes – Show #138 – Paint.NET with Rick Brewster
- .NET Rocks – Show #402 – Catching up with Oren Eini
- Hanselminutes – Show #139 – Moonlight with Miguel del Icaza and Joseph Hill
- Herding Code – Episode #28/29 – Miguel De Icaza (1) / Miguel De Icaza (2)
- Deep Fried Bytes – Episode #23 – Functional Programming in C# with Oliver Sturm
- Deep Fried Bytes – Episode #21 – Talking Software Performance with Rico Mariani
- .NET Rocks – Show #407 – Ted Neward at Oredev
- Stackoverflow – Podcast #34
- Alt.Net Podcast – Ruby on Rails
- The Thirsty Developer 45 – Visual Studio 2010
The above list is obviously biased toward my current though mercurial interests. I’ve done a lot with .NET client deployment over the last year so the Hanselman’s interview with Rick Brewster was a hands-down #1 choice for me.
Though .NET Rocks was listed only twice, they deserve my best-of-December award. They post consistently and often and Decembers content was really good. It’s hard to not include The State of Silverlight witih Tim Heuer, David Aiken on Azure, or Oslo is Love with Chris Sells.
I should also mentioned Software Engineering Radio. I’ve been listened to a number of older episodes and the podcast definitely has my interest.
I also listen to You Look Nice Today. I wish they posted more shows. Nickelpuss was their latest gem and deserves to be in the top 5 above.
As my podcast and book consumption goes up, the number of blogs I consistently follow goes down. These days I find myself dedicating an entire evening each week to blog-catch-up rather than reading posts as they arrive via FeedDemon. Other than when I read, nothing has really changed in this area. (I think I’ll keep better track of this activity in January.)
That said, though it falls more in the screencast rather than Blog category, I watched an outlandish number of Dimecasts last month. The Dimecast folks have published nearly 75 episodes and I think I watched 50 of them in December alone. Go ahead and quiz me on anything…
And though Stackoverflow doesn’t really fall in the Blog category either, I spent a bit of time on the site. I skim through various tags and unanswered questions, but the bulk of the time Google search or my own questions direct me there. It’s amazing how this site has really taken off. Stackoverflow is anti-subjectivity, but to date, my most popular question is What’s Your Favorite Harmless Computer Practical Joke?
It is fair to call me a casual Twitterer, but I am far from addicted to the service. In fact, I’ve never once complained or even noticed when the site has gone down. That said, I’ve started to recognize Twitter for what it is — a valuable resource for an inquisitive software developer like myself. It’s shocking just how much information can be gathered by merely “listening in” on numerous public conversions/announcements. Though I see little evidence of it yet, I am confident that micro-blogging (and podcasts) will ultimately kill traditional blogging. We’ll see. Anyway, I currently follow a dozen or so folks and I check in with Twitter about 4 times a day. My current desktop client is Witty and I use Twitterific on my iPhone. Again, I’m not addicted.
On a related note, I submitted two patches to the Witty – A Twitter client for Windows Vista and XP powered by WPF – project in late December. To my delight, the patches (Run Witty at Startup and Highlight Terms of Interest) were committed and released on Christmas Day.
It isn’t open source yet, but I also wrote a couple “test” Windows Live Writer Plugins for fun.
As I mentioned in the Profession Retrospective announcement, it is difficult to remember what I did last week never mind yesterday. This was a tough exercise to go back a month in time. I’m sure I missed dozens of things particularly current areas of interest like AOP, Functional Programming, Powershell and ClickOnce to name a few. Again, this is just an experiment. Let’s see what next month brings.