Wednesday, February 28, 2007
Kevin Barnes has an intersting article that talks about Why great coders get paid far too little.  My new career goal is to strive for greatness and land a $3M contract, I probably shouldn't hold me breath :)

Wednesday, February 28, 2007 2:12:32 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, February 25, 2007
I'm always amazed by the editable grid.  Everyone wants it, everyone loves it, why wouldn't they....it's just like Excel!  I don't know why, but I always have and always will hate the editable grid.  Grid's are good at displaying information, not editing.  Checkout Chris Stevenson post, "The Editable Grid Antipattern" for reasons why you should always ask 5 why's when someone asks for an editable grid.  Here's to hoping I never see another one in the UI designs for the apps I work on! :)

Monday, February 26, 2007 2:26:36 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [3]  |  Trackback
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
 Saturday, February 24, 2007
Sam is getting to have all the fun at work exploring Windows Workflow :(  It looks like he's making some good progress so perhaps I'll get a chance to experiment some in the near future as we look to find ways to incorporate it into our application. 

While I've done very little real work with Windows Workflow I have read Essential Windows Workflow Foundation and Presenting Windows Workflow Foundation to give me a good background for what it includes.  I certainly see a lot of potential uses for workflow within our application so now it's just a matter of figuring out how to incorporate it into our architecture and frameworks.  Since it doesn't exactly plugin right out of the box, we have a good amount of work ahead of us.  As I said in my "The the right time for a new technology" post, I'm about ready for something new anyway so it should be fun!
Saturday, February 24, 2007 7:56:26 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, February 23, 2007
While installing Rails and friends using something like MacPorts may prove to be a little less time consuming and less error prone, I think installing from source is the way to go.  Dan Benjamin, over on Hivelogic, has an excellent tutorial that steps you through all the steps to pull down and compile the source for Ruby, Rails, MySQL, Subversion, and Mongrel.  Over the last couple hours, in between a bunch of other things I've been doing, I walked through Dan's install guide and I'm happy to report everything went very smooth!  If you do decide to go the MacPorts route, I've been told, that James Duncan Davidson's tutorial is where to go.

Saturday, February 24, 2007 3:11:46 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, February 21, 2007
In addition to being reminded that readability is more important than "clean well factored code" in unit tests, I've also recently been reminded how wonderful small, focused classes can be.  As designs evolve, classes tend to grow.  If you don't keep a close eye, they can grow out of control and take on way too many responsibilities.  As classes grow, they become harder and harder to manage.  All the sudden, it becomes harder to find things, and harder to figure out what the code is intended to accomplish.  By breaking classes apart into small, focused classes it's much easier to understand the things that each class is responsible for.  Rather than taking on a handful of different responsibilities, your classes should have a single responsibility. This will help keep them focused on doing one thing, and doing it well. 

Thursday, February 22, 2007 4:05:09 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
On the train ride to and from work today I read RESTful Rails Development.  I've already done a fair bit of reading on REST and I've worked with several RESTful APIs lately (Amazon, Flickr), however, I found the RESTful Rails Development article a good introduction to what is at the heart of REST API's.  Namely, the idea of resources, and more specifically URI addressable resources.  The support for REST within Rails 1.2 adds a lot of nice features, and looks like a great way to support multiple output formats (html, xml, javascript, rss/atom, etc.) for applications that are oriented around resources.  Anyway, if your interested in REST or Rails, it's worth a read.

 | 
Thursday, February 22, 2007 1:36:50 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, February 20, 2007
I've been thinking recently that I need to learn something new. Whether it be a new technology on the .NET side of the house, or a new language, or a new web framework. I'm not sure what, but, I definitely feel like I need something new that will cause me to stretch my mind a bit.

I've had the itch to dive into WPF for a while, but don't have a whole lot of time at the moment to do anything on that front.  While I do have several ideas for little WPF apps I'd like to see built for myself I have concerns it'd be a wasted effort since my design/UI skills have diminished over the years, and what sense is building a WPF app if you can make it look slick as all get out? 

I've also been thinking a bit about trying my hand with a new language.  The top contenders would be Ruby, via Rails, or Python (with IronPython).  I'm leaning more towards the Ruby/Rails track since it would involve me stepping almost completely out of my comfort zone. 

I have a few things on my plate that I could choose to do using non .NET technologies.  Of course the problem is that I could undoubtedly do them much faster using my bread and butter technologies.  The benefit of the .NET appraoch would be that I could get more things done and perhaps have extra spending money due to being able to do more of the little projects I've been asked by peeps to lend a hand on.  The downside is that I'd still feel like I need to learn something new, and stretch my brain a bit.  I've run into this same scenario many many times in the past, and always went with the approach that would get things done the fastest since I never seem to have enough time available for anything else.  The problem, of course, is one of the main reasons for doing little side projects outside of work is to stretch yourself in ways that you might not be able to otherwise.

When confronted with such dilema's how do you choose?  Do you go safe, and stick with what you know, or do go with the more difficult, and potentially more rewarding path of trying something completely new?

 | 
Wednesday, February 21, 2007 3:52:49 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [9]  |  Trackback
I'm sure Linux users across the world are going crazy about the fact that they can now run Visual Basic .NET, courtesy of Mono!  Or not.

In all seriousness, it is pretty cool that the folks on the Mono project have added support for Visual Basic.  I wonder how good the WinForms story is these days on Linux.  I know the last time I checked it out for the Mac, it wasn't a pretty picture.

Wednesday, February 21, 2007 3:34:47 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Monday, February 19, 2007
We've had several internal discussions about how we should allow our customers to extend and customize their data.  We considered a lot of different options and thought about a lot of the tradeoffs that need to be made for each approach.  It's because of this that I'm very interested in people's opinions, and as such would like to direct you to Jeremy Miller's "How do you extend and customize a database" post.  Please go and drop him a comment describing what approach has worked best for you so that we can all learn from your experiences! :)

Monday, February 19, 2007 9:57:30 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, February 18, 2007
I'm sure you all know about RESTful web services by now, but what about RESTful databases?  Gary Bernhardt's "wildly ambitious database project" currently named RESTDB is "a database server and client implemented as a RESTful HTTP service in Python".


Monday, February 19, 2007 2:11:23 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [2]  |  Trackback
This past week, while working on a couple updates to some existing code I had to update the corresponding unit tests to ensure the stuff I added didn't cause massive problems.  As I started exploring the unit tests for the existing functionality my head started to spin.  Either I was going nuts, or the tests were less than ideal.  After examining the code for a little while I started to see why my brain wasn't working so well when it came to examining this particular chunk of code.  While the tests were testing the functionlality that they needed to, they weren't nearly as readable as they could have been.  Some of this is a result of attempting to reduce the amount of duplication within the test class.  You see, several things needed to assert the same things, so they were seperated out into a method that you could pass some stuff to, and it would magically assert everything that you could ever want asserted upon the so said "stuff".  While nice in concept, it led to code that was very hard to follow.  In order to see what an individual test was doing I needed to jump around to 3 or 4 methods that contained the asserts.  Once I finally tracked down the asserts that were being used I was able to see what was expected.  It just so happens that I could also see that we were testing the same thing 3 or 4 different times in an individual test.  For good measure, we also appeared to test the same exact logic in multiple tests!  All of this has led me to the following conclusions:
  • You should prefer readability over well factored code for unit tests.  If you need to jump all around to figure out what you're testing something's wrong.  If duplication helps with readability, duplicate away!
  • Make sure your unit tests are only testing one thing. 
  • Make sure you don't re-test the same thing over and over and over again.  Taken with the above point, you should begin to see that you shouldn't have that many tests that need to assert the same thing, if you do, you probably have multiple tests testing the same thing.
  • Only tests one class per unit test class.  If you're testing ClassA and it leverages logic within ClassB and ClassC, don't test ClassB and ClassC's logic within your test for ClassA.  Create seperate classes for ClassB and ClassC.  Trying to test them all in one place will lead to unit tests that are too hard to read and doing too much.  This is particularly hard to keep in mind since often times as part of the process of doing test driven development ClassB and ClassC might be created.  It's tempting to leave the existing tests that test the logic that used to be in ClassA but has since been moved to ClassB and ClassC within ClassA's tests.  Don't do it, move the tests to the suite of tests that you're creating for ClassB and ClassC.  You'll thank yourself when you come back to change that logic, since it will be where you expect, rather than in a test class for a related class.
I've gotten distracted by Lilo and Stitch so I'm going to stop with my conclusions there, and go play some indoor basketball with my son who is throwing a basketball all over our house. :)

[Disclaimer: It should be noted that I'm pretty sure the code I was looking at was code I wrote...whoops :(]

Sunday, February 18, 2007 4:45:26 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [6]  |  Trackback
 Friday, February 16, 2007
Lonely PupLonely Pup Hosted on Zooomr

One of my favorite classes in college was Photography. I enjoyed learning about how to operate an old 35mm manual camera, as well as learning about the various factors that go into controlling how the "scene" you've framed in the viewfinder becomes a photograph.  While I don't get to "shoot" much, I do enjoy the opportunity when it arises. 

I've recently been looking into the various photo sharing sites that are out there.  Everyone knows Flickr, but some not so known alternatives have caught my eye as well...most notably Zooomr and SmugMug.  I haven't done an in depth evaluation of the three services I'm considering thus far, but I've explored them enough to know what I do and don't like about each. This post is an attempt to get me closer to figuring out which one I want to go with.

Flickr
Flickr has a ton of users, and as such a very strong community.  I'm a big fan of their interestingness feature, and more so FlickrLeech which allows you to see all the interesting photos in one page without having to page endlessly.  There has been a lot of noise made lately about the various changes that are going on as Yahoo tries to integrate Flickr into their other web properties and vice versa.  While there are advantages to having someone as big as Yahoo behind you, it also can be a drawback.  I wonder if Flickr still has the passion and innovation it had when it first started. As I've explored some of the other sites I've felt like they were more innovative and forward thinking in their approach.  At $25/year for a Pro account their pricing seems very reasonable.  For more details on what that $25/year gets you checkout the Flickr upgrade page.

SmugMug
Ironically, what drew me to SmugMug wasn't their kick ass product, but their CEO/Chief Geek Don MacAskill who has blogged some interesting details about how they're using Amazon S3 to save lots of money.  In addition to having a very interesting CEO who blogs about cool technology, SmugMug also happens to have the nicest interface I've seen thus far for browsing photos.  They recently released an update that is flowing with magical Ajax love, which results in a very nice photo browsing experience.

In addition to having a killer product, SmugMug also is right up my alley as far as companies.  From what I've read, we share many of the same philosophies on how to run a business. Additionally, I like their company story.

SmugMug is slightly more expensive than Flickr at $39.99/year.  To get the scoop on what they include checkout the details on their website.

Zooomr
I was introduced to Zooomr through Scoble's Photowalking series with Thomas Hawk.  Zooomr has some unique features that I haven't seen in other photo sharing sites.  One of the more interesting features is portals, which let you link photos together and provide interesting ways to navigate between the linked photos.  Zooomr is/was (?) also giving away free Pro accounts to bloggers, which is actually why I have that photo at the top of this post.  Zooomr has some nice Ajaxy photo viewing features, that while not as nice as SmugMug's are towards the top of my list.  I'm hoping that some of the things I've wanted from their interface will be coming in Mark III, which is supposed to drop in early March.

I've never been able to find out what a Pro account costs on Zooomr.  Perhaps they just give all their accounts away to bloggers and don't change a thing? :)

Anyway that's about it for my very unofficial run down of the sites I'm considering.  Let me know if you have any recommendations.
Saturday, February 17, 2007 3:14:26 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [5]  |  Trackback
Let's face it, .NET is meant to rule the world. :)  With that out of the way let's get onto business.  Will someone from Apple please talk to the folks that run the engineering team and get them to dedicate some peeps to work on Cocoa#, or perhaps something completely Apple'ish such as iDotNet.  While Mono has made some great strides on the Linux and Windows sides of the world, it's still severely lacking when it comes to the Mac.  More specifically, Mac GUI's.  As Uncle Mac points out, running GUI applications on the Mac simply doesn't feel right.  Everything is very polished on a Mac, and X11 apps just aren't cutting it.  Since I'm asking for things I want that I have more or less no shot of getting, I might as well add this onto my list right?

 | 
Friday, February 16, 2007 6:03:18 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
I'm with Mike, C# 3.0 needs the Visual Basic 9 XML Syntax.  Maybe "needs" is a strong word, since the functional construction model used for building XML with LINQ to XML is head and shoulders above what we have available in today's XML API's, but it sure would be nice!  Since the VB guys already have it done it should be a piece of cake to move over.  Those Microsoft guys have mad skills, I expect it to be in the next CTP! :)

Friday, February 16, 2007 1:36:33 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [9]  |  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
One of the things that draws me to Ruby on Rails is the passion that I see from those who use it day in and day out.  Ryan McMinn from Unspace, falls squarely in the passionate for Rails camp. He recently gave a short talk about the approach that Unspace uses to build software.  They don't do specs, they don't do contracts, and they don't "conform".

Friday, February 16, 2007 3:00:29 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, February 14, 2007
With all the talk of being Agile, one has to wonder if anyone cares about shipping.  We focus a lot on the methodologies and practices that go into creating software, but we don't talk all that much about shipping.  Software doesn't exist until it's shipped.  No money is made from a great piece of software that isn't available.  No money is made from having a really kick ass Agile process if you don't ship.  It's not all about money, but without money we don't get to "play another game of pinball".  As Sam reminded me today, it's all about getting that next game.  It's all about shipping.

Those of us living in the world of software need to remember why we're in this business.  It's not about process, it's not about methodology, it's not about how Agile you are. It's about creating kick ass software that users love.  Users can't fall in love with something that isn't shipped.

Thursday, February 15, 2007 1:36:16 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [7]  |  Trackback
 Tuesday, February 13, 2007
In this day and age Agile seems to be where it's at.  If you're Agile, you're good.  If you're Agile, you have no bugs.  If you're Agile, you respond quickly to change.  If you're Agile, you'll build what your customer wants. 

It's easy to say you're Agile.  It's even easy to think you're Agile.  I wonder though, are you really Agile?  Are we Agile?  Am I Agile?  What does it even mean to "be Agile"?  Is it even possible?

What does it take?  Do you have what it takes?

Wednesday, February 14, 2007 3:46:10 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [2]  |  Trackback
Over the last several months I've grown to have an amazing amount of respect for people who write technical books.  It's an amazingly time consuming process that involves a lot of staring at the screen wondering what the heck to write next.  There are an infinite number of ways to phrase every sentence, and your choice has a huge impact on whether or not the reader will get what you're trying to say.  On top of that, for me, writing is nowhere near as interesting as actually using the technology you're writing about.  I can't tell you how many times I've wished I could get the heck out of Word and into Visual Studio.  Layer on top a busy work and family life and you have something that I've found amazingly difficult.  Since I have a full time gig I have to write in the evenings and weekends.  With a wife and two young kids I'm not exactly oozing with tons of free time.  Writing is amazingly difficult. 

Rather than end this post and leave it as a paragraph of me complaining about how hard I'm finding writing, let me leave you with some tips that I've found to help in the writing process.
  • Find someplace quite to work.  Unlike programming (and other tasks) where a little bit of background noise and/or music can be beneficial, writing needs quite and needs thought.  Find someplace you can think.  Don't try and get a little bit of writing done while you try and do something else (such as watch after the kiddos).
  • Start with an outline of what your going to write.  Include the key goals that you have for each section and make sure you address each goal before you finish the section, or chapter.
  • With your first draft don't worry about how terrible things sounds, how rough around the edges your points and/or description are, and how utterly crappy things flow.  Get your thoughts on paper.  Once you get everything out, go back and revise mercilessly until things sounds the way you want.
  • Always think about the reader.  How will they expect to consume the information you're presenting?  What will they arleady know? What might they need to be reminded of?  How can you leverage what they know to help them learn what you're writing about?
  • Don't be boring.  This might sounds obvious but I've found it very hard to present everything you want the reader to learn without having things turn into an unending flow of technical details, which results in boredom.  It's important to remember the reader needs breaks, encouragement, and direction.  And they also need to not be bored.
  • Instead of writing blog posts about how hard writing is and then spewing off a bunch of writing tips (as if you have any clue what you're talking about) stay focused on your book and the deadlines you have....doh! :)
Wednesday, February 14, 2007 3:23:17 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Monday, February 12, 2007

I'm a big believer in Domain Driven Design (DDD).  I have to admit that I've lost a little focus of late, so I think I need to get back to the basics.  As such, I've just printed out a bunch of experience reports from the Domain Driven Design website.  As with anything, DDD takes practice. What better way to get a jump start than by reading about how someone else has used DDD to create better software?

Monday, February 12, 2007 1:41:26 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, February 11, 2007
Over on the XML Team's blog, Avner outlines some VB 9.0 XML changes that will be showing up in the February CTP.   As I've mentioned in the past VB 9's XML features are very compelling, so much so that they have me wanting to write code in VB which I haven't done since I started working with .NET.  The major changes in the February CTP include:

  • Attribute axis property is string
  • Global Xml namespace syntax has changed
  • Added auto-completion
  • Xml names are VB symbols
  • Improved error handling
For the full details checkout Avner's VB 9.0 Xml in Visual Studio "Orcas" February CTP post.

 |  | 
Sunday, February 11, 2007 7:24:44 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, February 06, 2007
If you haven't yet, you will...it's just a matter of time. :)  When you do, Getting good with Google Reader is a very valuable overview of the key keyboard shortcuts that you'll need to make the most of Google Reader.  As with most peeps, these are my keys:

j - next
p - previous
v - view in window
ga - All Items
SHIFT-n - next folder
SHIFT-o - open folder


I'll definitely be trying to get used to some of the others outlined in the aforementioned article as well.  The gu keyboard shortcut is definitely the snazziest that I didn't know about.  I think Reader is the most Ajax-irific app I've used thus far, how 'bout you?

Wednesday, February 07, 2007 4:31:16 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [2]  |  Trackback
Harry Pierson has an interesting post that outlines how he learned to stop worrying and love WCF. In the post, Harry talks about the concerns that he's had regarding the lack of support for long running services in Indigo, and then discusses how a talk with Shy Cohen helped clarify some of the misunderstandings that he had. The primary of which, is that WCF's solution to long running services is Duplex Channel. In fact, Shy confirmed Harry's feelings that WCF doesn't have a real answer to long running services in v1.0.

I found the post particularly interesting since we've been talking about how best to support long running services within our application. One option that we've considered is Duplex Channels, however, we've had some concerns with whether or not the Security folks at our clients would be ok with us opening up a callback channel from the desktops running our software. At any rate I'm interested in what others think would be the "Reese's Peanut Butter Cup of service messaging". Harry's would be "something that has the programming semantics of SSB and the interoperability of WCF". And you?
Wednesday, February 07, 2007 4:12:59 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Monday, February 05, 2007
As someone who spends most of his time in VS.NET I often times desire a nice lightweight text editor. While VS.NET is very powerful, it also tends to fall over when you have a solution with a reasonable number of projects. As I read about Rails, one of the things I often hear is how much people like working with TextMate. Apparently it's a pretty kick ass text editor. It's one "flaw" is that its an OS X only application. I heard a rumor (I don't remember what blog) that the folks over at Intype are creating a Windows text editor that's inspired by TextMate. If it lives up to the hype, it could replace Notepad2 as my preferred text editor in Windows.
Tuesday, February 06, 2007 12:45:01 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Sunday, February 04, 2007
DomXml has a nice post that breaks down consulting rates in the IT industry. Prior to joining my current company I worked at a consulting company. During my time there I learned a lot about how consulting companies work. In general, as Don points out, they try and get "more affordable" consultants and employees so that the markup that they receive is higher. I must say that the place I worked was probably much much better than most, however, I was often amazed at the rates that we'd end up charging clients knowing who was going to be working on the projects. For some reason everyone always seem to think that having cheaper, more inexperienced, developers is the way to go since they result in higher margins. While in theory that sounds reasonable it always seemed very shortsighted in my mind. Sure you pay less for a more inexperienced developer, but it also takes that inexperienced developer longer to get things done. Often times much longer. The solution developed is also more likely to be "sub-optimal". What often happens in these situations is the senior developers end up cleaning things up, and making sure "shit" doesn't get shipped.

It's my opinion that having a small, experienced team is the way to go. Unfortunately, in the consulting world this often doesn't work. The way consulting companies make money is by increasing head count. As you increase head count it becomes more and more difficult to find good people. As you hire more and more people, who are no longer as good as you probably would like, you end up putting yourself in situations that are destined for failure. I think most people realize that it's important to hire great people but everyone seems to fall into similar traps. All the sudden a big project falls in your lap. Since you don't have the resources to staff it, you hire a bunch of people. Since you need your resources quick, you drop your quality bar and hire whoever you can. Since you've hired more people, you start making more money. You chase more money, and hire more people. Eventually you have a bunch of people, most of which you have no clue if are any good. You do Ok, ship some stuff and have decent success. You get blinded and all the sudden make the same mistake you originally made and hire more people. Afterall, more people means more money. The majority of big consulting companies have a large pool of resources who are inexperienced, inefficient, yet quite good at making your projects going longer than you'd like. It just so happens that longer projects means more money, and potentially more people. We all know what more people means don't we?

Anyway, I've gone off on a bit of a tangent that I didn't intend. The original point of this post was supposed to be to remember that you get what you pay for. While it might seem strange to pay twice as much for something, whether it be a consultant, a product, or a bag of groceries, you most often times get what you pay for. Or do you?
Monday, February 05, 2007 4:19:03 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [4]  |  Trackback
 Friday, February 02, 2007

The LINQ videos seem to be rolling out lately. 

Friday, February 02, 2007 2:29:59 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback

Boooooooooooooo! :)  I'd really like to get a new release that includes everything LINQ related that we saw in the May 2006 CTP so I can start updating all my code samples and use all the new wizz bang features that I'm sure they've added.

Update: I think I misread the post above.  The next Orcas CTP isn't being pushed to March, it's just a bunch of LINQ to SQL stuff that isn't making it into February that will show it's face in March.

 | 
Friday, February 02, 2007 2:14:43 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback

John Rusk left a comment on my Developers ditching Microsoft for Rails post and brought to light the fact that developers might not be leaving because of what Rails is doing right, but instead because of what .NET is doing wrong.  I definitely agree that many of the reasons people leave the .NET world for technologies like Rails is because working in .NET isn't as smooth as it should be.  One of the things that makes Rails so successful is its focus, and the embracing of constraints.  Rather then trying to be everything to everybody, Rails is focused on a specific vision.  As I've said in the past, Rails is opinionated software.

For those looking for Rails-ish frameworks in the .NET world you might want to checkout SubSonic and Castle's ActiveRecord and MonoRail projects.  I just had De-ja-vu.

 | 
Friday, February 02, 2007 2:05:07 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, February 01, 2007
I've been reading a lot of stories lately about developers leaving the friendly confines of .NET Land for Rails and other non-Microsoft technologies.  Perhaps the most notable being Mike Gunderloy of  The Daily Grind fame.  You can read more about Mike's journey over on his A Fresh Cup - Notes from a recovering Microsoft addict blog.  Also of interest is the Forums on the softiesonrails.com site. 

I actually thought about switching my blog engine over to Mephisto to get a little taste of Rails, however, since I'm hosting this on a Windows box the thought was short lived.

 | 
Friday, February 02, 2007 4:26:46 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [4]  |  Trackback
I can't wait for the next CTP of Orcas to drop since it supposed to have feature parity with the ancient May 2006 LINQ Preview I'm still using.

  • Mike has a nice post where he looks to Deconstruct LINQ.  I often find posts like Mike's, where the author is letting what they've learned flow out in a post, the most beneficial.
  • Alex is considering a couple implementations of IQueryable, which he is calling LINQ to Web, that sound very useful.  I've been thinking about writing an implementation of LINQ to Google or LINQ to Live Search myself.  I have a feeling that a bunch of what Alex is after in LINQ to DOM could be handled with a couple extensions on top of LINQ to XML.
  • There is a new video on Channel 9 with Anders Hejlsberg, Herb Sutter, Erik Meijer, Brian Beckman that is bound to be full of interesting topics.  I've been having some iPod video troubles lately and can't seem to find a good WMV to iPod Video Converter that runs on a Mac.  I should probably just do the video conversion in Parallels...ok started...can't wait to check it out.

Friday, February 02, 2007 4:12:14 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback