Books
I've been reading a lot now that I'm working in the city. As such, I'm finding I need to mix things up a little more then I used to. I'm currently reading iWoz. So far it's a pretty good read. I'm always interested in reading about how successful people got to where they are, and Steve Wozniak has definitely had is fair share of success. As a guy who hasn't ever done any hardware related work, I find a lot of the things Steve did when designing his early Apple I and II computers fascinating. To think that he laid out his entire design on paper before building a thing, and then wrote complete programs in machine language once again on paper, is just nuts.
I've also been spending some of my "free time" experimenting with some technologies available for helping visualize social networks. My dad is doing a lot of work in the area, and there is some very interesting technologies out there that do a great job of helping to visually see how people within a network are connected. I've recently been experimenting with Virtual Earth and checking out how it can be used to geo map social networks. I'll likely post some more on my experiences and talk about how fun its been to use Linq on a semi real project.
Anyway to round out my current reading list I picked up a couple books that my good friend Sam highly recommended.

iWoz: From Computer Geek to Cult Icon: How I Invented the Personal Computer, Co-Founded Apple, and Had Fun Doing It

The Hidden Power of Social Networks: Understanding How Work Really Gets Done in Organizations

Essential Windows Workflow Foundation (Microsoft .Net Development Series)

Microsoft Windows Communication Foundation: Hands-on
I never read
Applied Microsoft .NET Framework Programming. That’s right, I put it on my
Recommended Reading list but I never read it. The hands down best .NET book that was out there during the early days never made it to my bookshelf. A sad truth.
A couple weeks ago I picked up Richter’s second edition to Applied .NET, CLR via C#. I’m about half way through and I can see why everyone loved the first edition. Rather then focusing on all the syntactical sugar that the various .NET languages provide he focuses on what’s really important, the CLR. And it just so happens he covers it using my preferred programming language, C#. The book is packed with a ton of great information so if you haven’t picked it up yet, I recommend you get on it.
Since I’m getting on the Subversion bandwagon I figured I should learn how to use it. TortoiseSVN actually makes working with Subversion very easy but I like understanding the underpinnings of things I use so I picked up Pragmatic Version Control Using Subversion.
This afternoon after getting home from lunch at the playground with the kids I picked up my nice new Subversion book to get up to speed. Overall the book is a good one to pick up if your going to start using Subversion. With that said I’m not sure it’s really required. As I already stated Subversion along with TortoiseSVN is very easy to use and doesn’t really consist of that much “meat”.
I did enjoy learning more about how the author recommends organizing things in Subversion as well as how best to manage tagging, braching, and merging source. It was also good to get a solid overview of all the Subversion commands that TortoiseSVN hides behind it’s nice UI.
Overall a good read, especially for those completely unfamiliar with version control and/or Subversion.
As many of you who read my blog regularly know by now I’m a fan of the folks over at 37signals, which is why I was excited to checkout their new book, Getting Real.
Getting Real details the business, design, programming, and marketing principles of 37signals. The book is packed with keep-it-simple insights, contrarian points of view, and unconventional approaches to software design. This is not a technical book or a design tutorial, it's a book of ideas.
Just as my wife and I where heading out to lunch with our kids I jumped over to the http://gettingreal.37signals.com/ site and purchased the “book” (its only available as a PDF as of now). After returning from lunch and some errands I put my son down for a nap, unplugged my Powerbook from the wall and sat down on the couch to figure out if my $19 was worth it or not.
The next thing I knew my battery was down to 4% and I was 160 pages into the 177 page book. Needless to say I enjoyed it. There wasn’t anything absolutely revolutionary in it, just a lot of great advice for building great software, exactly what I was after.
Below are some of my favorite quotes from the book.
Scope down. It's better to make half a product than a half-assed product
The less your app is a chore to build, the better it will be. Keep it small and manageable so you can actually enjoy the process.
Instead of freaking out about these constraints, embrace them. Let them guide you. Constraints drive innovation and force focus. Instead of trying to remove them, use them to your advantage.
If you try to please everyone, you won't please anyone
What you really want to do is build half a product that kicks ass.
Innovation is not about saying yes to everything. It's about saying NO to all but the most crucial features.
Don't expect to get it right the first time. Let the app grow and speak to you. Let it morph and evolve.
If programmers got paid to remove code from software instead of writing new code, software would be a whole lot better.
Don't try to find "tricky" ways to get more cash. Earn it.
http://gettingreal.37signals.com/
I’ve been asked a number of times by a variety people for books that I recommend. Every-time I say, “oh yeah I have a bunch” but then fail to remember what they all are. In an effort to put together a solid list of books that I recommend I’ve written this post. This was a preliminary list that I came up with which I intend to update as my memory improves and/or I come across new books that I think belong. Do you think I’m missing any classics?
Software/Patterns
Agile/XP
Business
.NET Framework
ASP.NET
WinForms
As a software developer I naturally have dreams of one day starting my own software company where I get to build great software day in and day out, and makes loads and loads of money.
A couple weeks ago I picked up Bob Walsh's
Micro-ISV: From Vision to Reality. I think the first paragraph on the back cover sums up who the book is targetted at.
"This book is for every software developer who is fed up
with working for someone else. All over the world, and especially all
over the Internet, developers today are launching self-funded start-up
companies. And they're succeeding like never before."
The book takes the reader through the stages of starting a Micro-ISV, and provides helpful guidance and advice along the way. Each chapter has very valuable side-bars where Bob interviews those who have already done the Micro-ISV "thing". The sidebars were the highlight of the book for me as they provided real world people talking about real world problems that one encounters when starting a Micro-ISV.
Along with the valuable side-bar interviews the book also contains a bunch of helpful information about:
- Deciding on a product and developing your vision for the product.
- How to develop software as a Micro-ISV. I was glad to see talk about using good software development practices such as TDD, Source Control, and a good bug tracking application.
- How to present your product. Topics included getting on the "cluetrain", as well as how to develop a good user experience to customers of your website and online store.
- What type of corporation to start, how to get things done (with some plugs for Bob's MasterList Professional software), and other government related information.
- Focusing on the customer while marketing, supporting, and growing your business.
- Why you should both fear and embrace the 900 lb gorrilla named Microsoft.
The book concluded with a very valuable chapter full of interviews with emerging, successful, and very successful Micro-ISV's. As expected this was my favorite chapter as it talked about a diverse group of Micro-ISV's who were having varying degrees of success building their companies.
All in all I enjoyed the book. Since I had already done a good amout or reading on the topics in the book there wasn't anything earth shattering, however, it did do a very good job of bringing together a lot of the information that would be of interest to those thinking about starting their own Micro-ISV. So if that sounds like you,
go pick it up.
I just added a couple books to my “to be read” stack. I wonder if I’ll ever get to the bottom?

Agile Estimating and Planning (Robert C. Martin Series)

Micro-ISV: From Vision to Reality
Today I made a quick visit to Barnes and Noble to see if they had any books worth picking up on ASP.NET 2.0. While I was there I couldn’t help but notice that they had more books on friggin VB6 then on .NET. What’s up with that? I think we need to figure out how to create self destructing books.
One of my favorite books is Patterns of Enterprise Application Architecture by Martin Fowler. A couple months ago I came across the beginnings of a second volume. To this point Martin has the following patterns:
Narratives: Temporal Patterns, Organizing Presentation Logic
Accounting Patterns: Account, Accounting Entry, Accounting Transaction
Domain Event Patterns: Agreement Dispatcher, Domain Event
Rich Client Patterns: Event Aggregator, Flow Synchronization, Mediated Synchronization, Model View Presenter, Notification, Presentation Chooser, Presentation Model, Window Driver
Temporal Patterns: Audit Log, Effectivity, Snapshot, Temporal Object, Temporal Property
Unclassified Patterns: Range, Time Point
If your interested in patterns keep an eye on Martin’s site for additional updates. If your not interested in patterns…..well….what are you waiting for, get interested. 
Ok so I lied, I'm not really mid-way through
Enterprise Integration Patterns....more like a quarter of the way. So far I've really enjoyed the book. I've been trying to read a couple patterns a night and have been falling asleep while doing so I have to admit it's not a book that will keep you on the edge of your seat wondering what's coming next, but, it is an excellent book for anyone wanting to get up to speed on
messaging. Yeah so this is a lame midway review but I wanna go read some more before going to bed so that's all your getting for now, more to come later...
I'm only about half way through
Domain Driven Design by Eric Evans but I'm thoroughly enjoying what I've covered so far. I think Matin's
PoEEA and Evans DDD should be required reading for all! Look for a more detailed review in a couple weeks when I finish it off...
Last night I finished Guts written by Kevin and Jackie Freiberg. The book takes a look at “companies that blow the doors off business as usual.” The book consists of a series of stories about “gutsy leaders“ who are leading their companies to extraordinary success. Each chapter looks at a characteristic of leaders that could be seen as unconventional, unordinary, and just plane nuts. Rather then following conventional “wisdom“ the leaders highlighted in Guts take a different approach. They value their people, provide them with opportunity for growth and leadership, and provide an atmosphere where employees take ownership and responsibility for everything they do. Leading a successful company, inspiring employees, and delighting customers cannot be done by following the path of those before you, to be truelly successful takes more, as the authors say it takes “Guts.“
- Gutsy Leaders Blow the Doors Off Business as Usual
- Gutsy Leaders Brand Their Cultures
- Gutsy Leaders Create a Sense of Ownership
- Gutsy Leaders Hire People Who Don't Suck
- Gutsy Leaders Lead with Love
- Gutsy Leaders Make Business Heroic
- Gutsy Leaders Inspire Fun
Although the title is a bit corny the book was a very interesting read.
I've heard a lot of really good things about Domain Driven Design so I decided to pick it up today. Maybe it will help me get out of my funk?