So, I've been an absentee blogger for a while -- shocking, I know. Part of the reason is that I'm just a lazy, lazy punk, but part of the reason is that you might start seeing my name on one of the major news sites for the enterprise software community. If the arrangement works out, I'll spill the beans.
Lesson for today: whenever you need to calculate monetary refunds for a user, especially when 'percentage-off' coupons are involved, be extremely sure that you know all of the business rules BEFORE creating your estimate!
The Richmond CodeCamp was good. This post is just a quick braindump of topics and people I want to remember:
F# / Amanda Laucher / Don Symes
Spec#
XC#
Ninject / Justin Etheredge
Workflow Foundation testability
Watin / ultiswat / Jonathan Cogley (Thycotic founder)
Despite having a terrifying amount of code to write in the next week, I'm going to the Richmond CodeCamp this weekend. I was really looking forward to it as a good opportunity to get introduced to a few new technologies and further some fledgling relationships/friendships I've been developing with the Richmond software community leaders. Since I've been working very long hours lately (which rarely happens at my company) and will probably be working much of the weekend, I'm less excited about losing an entire day that I could spend doing work or just rejuvinating. Anyway, I'm sure it will be a decent experience, and one of the recent additions to DDig, Tim Yagla, will be presenting an entertaining talk on Windows Home Server.
I recently set up Google Analytics. I'll post about it in the future probably, because this is my first experience with it. It's incredibly powerful. My point now is just that Google tells me absolutely nobody is reading this blog. I'm OK with that; I've made literally zero effort to publicize it. I haven't even told coworkers about it, YET. I'm taking the Field of Dreams approach for now. I'll build it and try to fill it with worthwhile content, and with luck, readers will come. I actually have a fair amount of content that I want to post. I've just been so busy lately that I haven't had time to post longer entries with code snippets.
I just added those nifty Amazon product preview fly-outs
. Yes, if you buy a book through the link, it will give me a miniscule referral fee, but I don't expect that I'll ever have enough visitors to make that meaningful. I added them, because I would appreciate them. The first thing I do when somebody mentions a new book is look it up on Amazon. I'm just trying to make that process a bit easier for you, my nonexistent reader, and the Amazon Associate referral program seemed the most straightforward way to add this functionality.
And you know what, reviewing and discussing books will probably comprise a lot of my posts; so if somebody buys a book based on my recommendation, why shouldn't I earn 70 cents!
I started reading xUnit Test Patterns
by Gerard Meszaros over the weekend, and I've been really impressed with it so far. I'm having a very similar experience to when I first read Patterns of Enterprise Application Architecture
by Martin Fowler. It's the sudden realization that other people have had to face your exact same problems, and they've come up some pretty elegant solutions.
Also similar to PEA, xUnit Test Patterns is valuable for experienced development teams in that it names patterns you've been using for a while. Instead of saying, "Remember how we had that setup SQL script for that big search test on that one project," you can say, "Let's use the Back Door Manipulation pattern to setup our data."
I'm only about 100 pages in; I'll try to provide a full review when I finish/decide I've read enough.
Last night, I had a couple of those experiences that make you remember just how fantastic the Internet is -- specifically how much easier it is now to communicate with people and corporations.
I ordered a couple of books from Amazon (Domain-Driven Design: Tackling Complexity in the Heart of Software
and Applying Domain-Driven Design and Patterns: With Examples in C# and .NET
-- I'll post about them later), and I didn't realize that the shipping address was wrong until I received the 'order has been shipped' email. Because the items were on my wishlist, the default shipping address was set to an obsolete address associated with that wishlist, instead of my default click-once address. It was entirely my fault for not double-checking the shipping address. The old shipping address is about 900 miles from my current home, and I couldn't make any progress with the shipper.
Thus, without much hope, I tried explaining my predicament to an Amazon customer service rep via email. A few hours later, I received an email from a nice Indian fellow who had completely resolved the situation. He had contacted the shipper, canceled the first order, and created a new order completely free of charge. He even upgraded the shipping to overnight. I have their Prime membership and spend a significant amount of money on their site. But that level of service far surpasses anything I've received elsewhere. I would never expect a giant company like Amazon to go to such lengths to make an average joe consumer avoid some inconvenience.
The other event is that I contacted Jon Skeet (the author of C# in Depth: What you need to master C# 2 and 3
and community mentor) to share some code I wrote that was based on some of his examples. I also asked him a question about CLR internals. He answered me the same night, despite this being his first week at a new job with Google. He was extremely nice and thoughtful. It shouldn't surprise me, I guess, but it always does. BTW, congratulations on the new move, Jon; I'm sure it's going to be exciting.
So, I've done it: I've finally reached the point where I think my ruminations could benefit others. I remain doubtful that I'll actually post good content regularly enough to make reading worthwhile, but stranger things have happened.