Wednesday, March 26, 2008
A couple nights ago I was up reading blogs and browsing the web.  I had made my way through all my unread items and was contemplating hitting the sack when I decided to do one more "r" within google reader to see if anything new was available.  Surprisingly one new item appeared.  The one new item was from Jean-Paul Boodhoo, and was entitled "The Dream Giver".

After reading JP's post I figured I'd drop him a comment since I like reading, and I like free stuff.  As I went to bed I figured I had a strong chance of being one of the first three to contact him since I'm pretty sure I was reading his post while his mouse button was still pressed on the "post" button.  As I thought about it some more, I realized that I'd actually prefer NOT to win since I would have picked up the book anyway, and I figured there might be some others who responded who wouldn't purchase the book if they didn't win a copy from JP.  Not surprisingly the next day I received a Amazon Gift Certificate from JP to cover the cost of the book.

When I got home that night I mentioned the above to my wife, and told her that I felt bad accepting the gift certificate from JP given the circumstances.  She said I should accept his charity, so that's just what I did.

Over the last two days I made my way through The Dream Giver by Bruce Wilkinson.  The book starts with a parable about an Ordinary guy living in a Familiar place who realizes he has a Big Dream.  As this Ordinary guy thinks about his Big Dream he realizes that he doesn't want to ignore it any longer.  Thus begins his journey.  

As I read The Dream Giver I started to think a lot about my dreams.  As life goes by we often lose sight of our dreams, and get caught up in the comforts of life.  The Dream Giver has me thinking about my dreams again.  I found the story of Ordinary following his dream, as well as the encouraging words and advice offered by the author inspiring.  Life is full of obstacles, roadblocks, naysayers, and will provide you with endless reasons not to follow your dreams.  The Dream Giver offers hope, encouragement, and guidance.  Following a dream isn't easy. You can't do it alone.  However, the journey can make you stronger, happier, and more fulfilled.

Are you ready to begin your journey?

Following in JP's footsteps....the first 3 people to email me with interest in this book will receive an amazon gift certificate in the amount required to purchase the book.

Note: you can email me by clicking on the little envelope in the right hand navigation of my site.

Sorry they are all gone!

Thursday, March 27, 2008 2:03:14 AM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Wednesday, March 19, 2008
Tonight I was...well....I actually don't remember what I was doing, but somehow I ended up on 22books.com.  For those of you unfamiliar with 22books.com here's a little snippet from the homepage:
22books is dedicated to the creating, sharing, and viewing of book lists. Start out by browsing some of the featured lists to the left and then open a free account and start creating lists of your own.

I created a couple books lists on 22books that contain many of my favorite books on software development.  The lists have a lot of overlap but I broke them up as follows:


All time Favorite Software books

Agile Books

.NET Books

Architecture / Design

Ruby and Rails
I think 22books.com has the potential to become a really great place to share books lists.  I really enjoy reading and have relied on many of the books in the above lists to help me progress as a software developer.  I'll probably spend a little more time refining the above lists and adding books that I didn't think of during my first pass. 

Thursday, March 20, 2008 2:34:46 AM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [5]  |  Trackback
 Monday, January 21, 2008
After many, many, many long months of work, LINQ in Action is finally done!  Fabrice, Jim, and I are very proud of the final product and really hope you enjoy it.  We've already heard a lot of positive feedback from those who purchased the Early Access Preview from Manning, and are hopefull that LINQ in Action will be a valuable resource for everyone who is trying to add LINQ to their development toolbox.  My favorite quote thus far is from Ben Hayat on the LINQ in Action forums where he said "I had gotten other books on Linq, and this book is simply the BEST!".  Now for those of you who don't know Ben, it should be very clear that he's extremely smart and intelligent and you should believe everything he says, especially when it comes to what the best LINQ book is! :D 

Since the book is on the printers as we speak, it isn't yet available on Amazon for immediate shipping, however, I've been told it should make it's way over there in the next couple of weeks.  Given that, now is a great time to head over and pre-order it!  If you want the book sooner rather than later the best way to get it is directly via Manning's website.

To keep updated on the status of the book, including errata, code samples, or to ask Fabrice, Jim, or I any questions about our LINQ book you should drop by the LINQ in Action website or the author forums on the Manning website.

Monday, January 21, 2008 2:32:52 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Thursday, August 30, 2007
A while back I posted an example of how to convert a comma seperated file (CSV) to XML using LINQ to XML and functional construction.  We're in the final push to get LINQ in Action to production and as such I've been spending a lot of time going back through the chapters cleaning things up, as well as making sure both a C# and VB.NET example is provided for every code sample presented in the book.  Tonight I was converting a code sample from Chapter 12 that shows how to convert a CSV file to XML using LINQ to XML.  While the C# code is very nice, I like the VB version that is shown below even better.

Imports System.IO
Imports System.Xml.Linq

Module FlatFileToXmlWithXmlLiterals
  Sub Main()
    Dim xml As XElement = <books>
                          <%= From line In File.ReadAllLines("books.txt") _
                          Where Not line.StartsWith("#") _
                          Let items = line.Split(",") _
                          Select _
                          <book>
                            <title><%= items(1) %></title>
                            <authors>
                              <%= From authorFullName In items(2).Split(";") _
                                Let authorNameParts = authorFullName.Split(" ") _
                                Select <author>
                                         <firstName><%= authorNameParts(0) %></firstName>
                                         <lastName><%= authorNameParts(1) %></lastName>
                                       </author> _
                              %>
                            </authors>
                            <publisher><%= items(3) %></publisher>
                            <publicationDate><%= items(4) %></publicationDate>
                            <price><%= items(5) %></price>
                            <isbn><%= items(0) %></isbn>
                          </book> _
                        %>
                      </books>

    Console.WriteLine(xml)
  End Sub
End Module

As an aside, if you've been meaning to learn about LINQ, or if you've already begun your journey, now is a great time to checkout the early access edition of LINQ in Action.  We have every chapter available for download, and will very shortly be making the source code available.  We still have a little ways to go, but we're getting close!

Download the sample project here: Chapter12.FlatFileToXml.Vb.zip (10.09 KB)
Friday, August 31, 2007 1:26:49 AM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, July 11, 2007
As I've stated before, my programming language for the year is Ruby.  I actually planned on learning Python or Ruby last year, but things didn't pan out.  Over the last 6-8 months I've been doing a pretty good job of getting myself on the way to learning Ruby.  As with any language the best way to learn it is to write something using it.  As we all know Rails has done a tremendous job of bringing people to Ruby.  I'm no different.  Over the last 6 months I've worked on two Rails projects and in the last week put one of them into production (well almost).  Since I'm half way through the year I wanted to put some thoughts down here, mostly for myself, but also for others who might be interested in a .NET dudes impressions of Ruby and Rails.

Before writing a book myself, I bought a good number of books on technical topics that I found interesting.  After experiencing what goes into writing a book, I find that I'm much quicker to pull the trigger on books that I think I might find interesting.  The amount of work required to get a book out the door is mind boggling to me.  As such I've purchased, and read, the following books to help me learn Ruby.
As you can see not all the books are strictly Ruby related.  Several are focused on Rails, one is focused on working with Google Maps with Rails, and one is to help me learn to work in my new favorite editor, Textmate.

In addition to reading the above, I've been checking out the source code for a couple of the more popular open source Rails applications as well as some of the more popular plugins.  While all of that has been very valuable, nothing is ever as good as actually writing code.  As such I've done several projects that I would have traditionally done in .NET in Rails instead.

The first application that I got started with (and which I'm still working on) is an application that helps geographically visualize key individuals within a social network.  The data for the individuals in the social network, as well as the data for the connections between individuals, is stored in flat files so I got my first chance to play around with the CSV parsing capabilities of Ruby.  I found the FasterCSV library very useful, and got off to a pretty good start with my first attempt at parsing the CSV files and getting them into my MySql database using my ActiveRecord model objects.  After the file parsing was done, I got a chance to build several administrative pages for the site using Rails, as well as the chance to experiment with some very useful plugins such as:
My second application involved setting up a site with paid membership.  The site has several administrative functions for the owner of the site, as well as a handful of features for those who sign up to be members such as exclusive downloads, advertising opportunities, and a members only forum.  In addition to be able to gain a lot more experience with the inner workings of Rails this project also led me to gain experience with:
So given all of the above, if your still reading, I'm guessing your wondering what I think.  In short, I'm becoming a pretty big fan of Ruby as well as Rails.  While Rails isn't perfect it does a lot of things very well.  Rails Migrations are the best solution that I've come across for migrating the schema of a database.  I can see why large teams run into some trouble with them, but for the projects I've been working on migrations have worked wonderfully.  While I'm a big fan of DDD, I also really like ActiveRecord in the right situations.  Being able to create a migration, run rake db:migrate, and have the column automatically available in my model without having to do anything makes developing with Rails and ActiveRecord very enjoyable.  Rather than dealing with the mundane tasks of writing scripts for adding columns, and then updating the associated data access and model classes, I can focus on the stuff that matters.  In addition to migrations and ActiveRecord I'm also fond of ActionMailer and the way that it allows you to create and send email, its far better than what's available in .NET land.  Next up, is the MVC structure that Rails uses for building the pages that make up the application/site.  I'm a huge fan of MVC/MVP for building UI's so it should be no surprise that I'm also a big fan of Rails implementation of MVC.  I really like having a single controller per model object, and having a nice organization to the views used by the controller.  I also really like the validation story for Rails.

As I learn new technologies I often times hack my way around until I get a good feel for what I'm doing and how things are supposed to work and be put together.  This led to me not writing as many unit tests for certain parts of the applications I was working on.  I did test drive most (if not all) of the logic I put into my model objects, but I slacked off a bit when it came to testing the controllers.  This is partly due to the fact that I was using scaffolding, and partly due to the fact that I was pushing almost everything into my model objects rather than allowing my controllers to get "fat".  As part of the test driving of my model objects I used the built in testing infrastructure, although I still want to checkout rspec.  On my latest project I also began experimenting with mocha which really helps with the testing of objects that have dependencies. 

So given all my recent exposure to Ruby and Rails one has to wonder how I rate it against my native "tongue", .NET.  I have to say I've had a lot of fun working with Ruby and Rails.  This is in part because its something unfamiliar and I really enjoy learning, but its also because both Ruby and Rails have a way of making developing with them very enjoyable.   I haven't enjoyed some of the deployments and such that I've had to deal with, but since I was learning a bit about how to deploy Rails applications on Linux it wasn't as bad as I expected.  I'm nowhere near hanging up my .NET toolbelt, but I am going to continue to do a lot of the work that I would have previously done in .NET in Ruby and/or Rails.

 |  | 
Thursday, July 12, 2007 3:11:07 AM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Thursday, March 01, 2007
As you may have noticed, I spend my mornings and evenings going to and from work on a train.  I usually use this time to read, unless I have a pounding headache in which case I stare out into space until I hear the call for my stop.  Anywho, I recently finished Everyday Scripting with Ruby: For Teams, Testers, and You by Brian Marick

A while back when I was learning about Ruby on Rails Migrations I got a chance to learn a bit of Ruby.  This was mostly due to the fact that the SQL Server adapters for Rails Migrations wasn't exactly up to snuff, and in order to get a proof of concept going Aaron and I needed to write some Ruby code.  The experience gave me a pretty good understanding of Ruby as a language. 

Fast forward a year, and all the sudden there I am forgetting everything that I learned.  That is...until Everyday Scripting with Ruby.  Brian has put together a really nice introduction to the Ruby language that should be approachable for programmers, testers, and anyone else who likes to dabble in scripting.  I don't think I fit exactly within the target audience, but I still found the book a worthwhile read and would recommend it to anyone who would like to learn Ruby.  Along with Programming Ruby you should have all you need to master the Ruby language.  Brian does a good job introducing the Ruby language, as well as offering valuable insight into his world and how he goes about writing scripts.

In summary, Everyday Scripting with Ruby is a great edition to your bookshelf if your interested in learning Ruby.  Those with many years of experience in the industry will likely find parts of it "skippable" or "skimmable", but no matter how much experience you have your bound to find a couple nuggets of wisdom that make it worth the twenty (or so) bucks you'll plop down for it.

I'm not sure what's up next but I just made a mass purchase of books from Amazon.  One of the following will make it into my work "briefcase" shortly.



Anyone care to guess what I've decided about the right time for a new technology? :)
 |  | 
Friday, March 02, 2007 3:37:54 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Sunday, February 25, 2007
Over the last couple of weeks I've been reading Naked Conversations on my train ride to and from work (when I didn't have other things, such as RESTful Rails Development :))  For those of you unfamiliar, Naked Conversations was written by some guy who claims to be some big named blogger.  His pen name is "Robert Scoble".  Scoble's co-author is Shel Israel. 

The two have put together a great book on the business of blogging.  They talk about what does and doesn't work, as well as talk in depth about many of the concerns people have with blogging within corporations.  Throughout the book Scoble and Israel provide examples of those who have done it right, and those that have not.

Naked Conversations encourages companies to use blogs to be more transparent, to engage customers in conversations, and to listen.  While there are a handful of comapnies that seem to "get" blogging, there are countless others who haven't a clue.  As blogs become more and more mainstream we're bound to see the way they're used within corporations change dramatically.  I'm sure we'll see people try and fail, as well as people try and succeed.  We'll also see others who build their entire business with nothing more than a blog.

Monday, February 26, 2007 2:02:00 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, February 15, 2007
I'm a big fan of books.  I love reading about technology and business.  An amazing amout of knowledge can be gained from a good book.  Whether it be how to program in a new language, or how to run a company, books provide an amazing amount of information and experience. 

A while back, after being asked by a colleague for a list of books I recommend, I put together my list of Recommended Reading. A few months ago, I started migrating my recommendations over to an aStore on Amazon.  While I still don't have everything added, I figured I'd share my store in hopes that someone might find a book or two interesting, which in turn might lead to me getting one of the many books on my wish list for a discounted price (since my aStore earns me money, and oh how very much money it is!) 

Anyway, have a look at my list of Recommended Books and let me know if you think I'm missing any!

Friday, February 16, 2007 3:29:39 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [2]  |  Trackback