May 2007


So I thought I’d start writing a little bit about books that I am reading on a semi periodic basis :)

Just yesterday I picked up a book titled “RESTful Web Services.”  Yes it’s a technical book but it’s actually pretty interesting so far and has direct relevance to the project I am working on at work. 

The premise of the book (so far) points out that there is a fundamental flaw with Web services today (and I agree).  If you think back to why web services gained popularity, it centers around the fact that COM and CORBA weren’t cutting it for Distributed system interaction.  If you were a developer that was producing a service for “general” consumption, you found that COM and CORBA guided you to a place where you created an Interface that represented the contract you fufilled for consumers of your services.  This contract looked very much like a collection of methods taking typed arguments.   This is essentially RPC (Remote Procedure calls).

There were a couple of advantages to this approach:  

  1. Consumers in general understood the interface because it was pretty close to what you usually do when you program.  (It looked like objects and methods)
  2. Toolkits helped you get up and running pretty quickly.

As with all things you were trading this off for the following disadvantages:

  1. Versioning – The more people that adopted your interface the harder it was to change your interface.  You couldn’t just “swap out” parameters of an interface if people were using it.
  2. Portability – the transport stream underneath the hood of COM and CORBA was TCP based and binary data.  Crossing the internet became difficult.
  3. Stateful – the state of invocation (you should call method a before b etc) was implied or needed to be documented.

disadvantages 1 and 2 led to the rise of Web Services.  It introduced the potential for using HTTP as the transport mechanism and XML as the means of defining the interface and data that that is passed via the interface.   HTTP/XML allows us to overcome the transport problems, and helps with versioning (but we have to be careful).  There is also potential to help with statefulness.   However, going down this road… the toolkits ended up guiding us back towards an RPC approach.  (Don’t get me wrong… RPC is fine but really only if you control both sides of the network so that you can version client and server at the same time.

Enter REST.  The basic premise (for this discussion) is … The internet at large is really just a SMALL subset of messages.  (HTTP : Get/Post/Delete).  This approach essentially NARROWs all interfaces (you support a Get and the url describes what you are interested in GETting) to the HTTP command set.  You also use URLs to manage the versioning problem (when you have to create a new version of your interface you can create a new URL).  And we are stateless.  We can pass back URLs to indicate where the invoker should go next (and it could even be outside our system). 

 This book offers guidance on building systems using this REST approach.  I’ll let you know how the reading goes :)

For more information on REST I’d encourage you to take a peak at Tim Ewald’s blog. I work with him and he’s the one opening my eyes to building Scalable and distributed systems.

So I thought I’d post a picture of my girls here. I’m playing with a feature of Flickr that allows me to cross post to my blog. This picture it taken outside my mom’s house. It’s some kind of fruit bearing tree I think, and the girls were loving climbing in it.

So I just signed up for a Flickr account and have started posting photos there of my family mostly.  Right now they are private pictures… I’m trying to decide if I want to make them public or some of them public.  But if you have a Flickr account and want to add me as a contact… My flickr name is “hooligan495″

So as you may have read here a few weeks ago, our washer went and our dryer was on the way out.  So being fine upstanding Americans we went out and bought new ones.  Having bought our dishwasher at Sears and getting recommendations from friends on Washers and Dryers… off to Sears we went. 

There was a sale going on and we got 15% off if we signed up for a Sears credit card.  So, being out a boat load of cash 1hr later we had scheduled the deliveries (washer and dryer had different availabilities).  Being “Eco conscious” we decided to go with the front loading washer and dryer pair.  (the kenmore HE3 adn HE3t).  So 4 days after our order our washer arrives… Everything went smoothly, and Heather was enjoying being able to do laundry again (I’m not sure I understand that last part… Is there something theraputic about doing laundry for some people?).

About 1 week later our dryer arrived and that delivery went off without a hitch… until (You knew there was an until coming, right?)  we went to dry our second load of laundry.  The bugger wouldn’t start!  Not matter what we tried.  So off to the phone Heather went (I wasn’t home at the time).  After 20 minutes of trying different things the Person at the other end says “I need to send out a technician, they’ll be there sometime on Friday, we’ll call you the nite before to give you a time window.”  I can’t remember if they called the nite before but anyway friday morning the repairman shows up and after about 20 minutes… he says it’s the control board on the Dryer.  It’ll take 2-4 weeks to get a new control board or we can get you a new dryer next week.  New dryer was our choice.  So he gets us on the phone with someone at Sears, after we get her to agree to get us a new dryer she says that someone will call within 24-48 hours with a delivery date for next week.  So Sunday afternoon comes and we are over the 48 hour limit and no call.  So we call them… Lo and behold there is no record of this in the system!!!  We are annoyed and have to call the local store (Nashua NH) and get in touch with someone there and we did… the store manager there said he’d look into it and get back in touch.  He calls the next day and says that wednesday is the soonest they could get it to us.  We were hoping for sooner but we had to deal with the cards we were dealt. 

So wednesday comes and the dryer arrives (I was at work), when I got home, I looked at the installation and realized they did a bad job installing it.  They broke the outlet cover for the 220 plug that my dryer plugs into (admittedly a 90 cent piece to replace) and they managed to pull the dryer vent tube that connects the vent hood to the dryer exhaust ductwork  (The tube is like 1.5 feet long and goes into the wall) clean out of the wall when they changed the dryers (I don’t think they disconnected the ducting from the tube).   Then they just haphazardly put it back in so that instead of part of the tube sticking out of the wall straight it was tilted at a 45 degree angle!  Thus the dryer would vent into the insulation of my wall and not to the outside world.  I was pretty annoyed so on the phone I get and get in touch with someone from sears.  After explaining the situation, she says someone will be out friday to fix it.  So thursday nite comes and no phone call with a time window estimate.  So I call again… and lo and behold… the person I talk to says there is no record of this and that there is no way someone could come out friday.  So after voicing my displeasure, I get my delivery fee refunded and a giftcard for 70$.   So friday nite comes and I call and get the same treatment!  and there is no record of the gift card and refund and now they can’t get a repairman out until sunday! So saturday comes and I fixed the exhaust tube myself.  We called the manager at Sears to let him know our whole story and wanted to ensure that our “refund/gift card” wasn’t forgotten about.  After a week of him not returning our calls our refunds came in the mail.  Then he called to say they were in the mail. 

Thanks Sears… you’ll not be seeing my money ever again!

So my 2 daughters and I went fishing last weekend.  It was a beautiful saturday morning and my friend Al who lives over on Nabnasset lake in Westford let us come over and cast off his dock.  He even supplied the rods, hooks and worms.  After spearing some worms onto the hooks we helped the girls cast away.  After about an hour we had caught and released 7 fish!  It was quite fun.  Shannon caught a blue gill (sunfish), and a perch, while Mary Anna caught 5 fish, 4 bluegills, a Black Crappie (or calico bass).  It was great fun.  Then Al took us on his boat and we tooled around the lake for a little bit.

The most fun part of the morning for the girls was digging the worms out of their container :)  

I gotta invest in a mobile phone with a good camera….

So I’ve recently started doing more and more test driven development and I must say I’m hooked.  What is test driven development you ask?  Google surfaces all kinds of definitions but the general gist is… before you write a line of “production” code, you should write test code that exercises that production code.  I’ve been to a couple of presentations at the Boston .Net Architecture Group given by the Robert, RJ, and Steve over at Thoughshapes.com.  They are very good at explaining it.

From my point of view unit testing and test driven development has been extremely helpful on my current project for 2 big reasons. 

  1. Easy Integration our Demo integration was literally 4hrs worth of work before we had it running.
  2. Development “Velocity”

I am currently the main developer working on the database and database APIs for my project (which is a very cool project btw.  It has to do with User Generate Content and TVs).  This past Sprint I had to revamp pretty much all the DB Apis and schemas that we created for our prototype (big system change).  In order to facilitate this I created a Database API that made use of Interfaces and Factories so that users of the api could ask for a DB administration class and then go off and use it.  My first pass at this was to create the factories (with unit tests) and let them return “fake”, or “mock” classes that represented the connection to the database.  This allowed me to “give out” the DB api to those users that needed it , while I was then free to complete and test the underlying functionality of the DB code.

WOO HOO!

So Bob Metcalfe just came to our company today.  I got the opportunity to give a demo of what I was working on to him, then a group of us got together to ask him some questions.  It was very cool. 

In case you didn’t know, Bob is the real inventor of the internet… well… actually he helped invent Ethernet packet switching, started 3Com, and became a writer and venture capitalist. 

He talked a bit about IPTV and what it was and during that talk he said something pretty compelling… “Words and how we use them shape the future.”  The conversation centered around the differing definitions of IPTV and how most likely that word will fade away.

It was cool to have met Bob.

So as some of you know I changed jobs back in January.  One of the things I needed to do was roll over my 401k from my old job into my IRA account.  My wife and I typically go to a financial advisor.  One of the things he recommended was that I think about rolling my 401k into a variable annuity.

Not knowing much about a variable annuity I asked some questions and they seem like an interesting vehicle to put money in.   As I understand it… a variable annuity is similar to an ira in that you have a set of funds you can invest in and move money around in.  However the fees are higher (by 3-5x … typical IRA fees are .4%ish annuity fees are 1.2-2% per year) yet for this higher fee you get downside market protection.  Meaning if the market falls, you account is guaranteed to not fall below your initial investment amount, plus you get a certain number of years (10-15) of guaranteed increases on the floor amount.  (so if you put 100K in your “guarantee” raises by 5% (for example… it depends on the annuity) each year … or every third year (again it depends on the annuity).  On top of that your money still grows based on the market… so if the market goes up 10% so does the value of your annuity.  Then at the end (ie retirement) you draw on the annuity for the rest of your life (at a set amount per year).

Some downsides… Once you are in if you decided to get out too soon (under 7 years typically but again this varies based on the annuity you choose), you pay a surrender charge.  As I mentioned the fees are higher.

So at first blush this sounds “too good to be true” so I’m a little skeptical.  I asked my financial advisor to give me reasons for and against an annuity and the against reasons weren’t all that clear. 

So I thought I’d throw it out to you all… I’ve been searching the net for information but there is a lot out there and I just can’t seem to find anything useful. 

So I just read this article over at boston.com.   It is about a new pill that helps you lose weight.  But there’s a catch, for it to work you have to eat sensibly and exercise.  The gist is that it will accelerate your weight loss by 50%.  So if you would normally lose 10lbs on a sensible eating plan… This pill would help you lose 15lbs in that same span.  It works by blocking fat absorption.

Now for the interesting side effect…. If you splurge on too much fat you get the following:

People will take Alli three times a day, with meals that contain about 15 grams of fat. (That’s the amount of fat in two tablespoons of peanut butter.) Alli works by blocking fat absorption. Eat too much fat, however, and the drug’s dreadful side effects can kick in: oily gas and such sudden, uncontrolled bowel movements. Glaxo suggests that new Alli users wear dark apparel and have a change of clothes ready.  -Excerpted from the article linked above.

hrmm…. that’s just kind of revolting…

Spring is here!   Woo Hooo!  The weather is warm but not too hot.  Cool at nite but not too cold.  I think Spring is my favorite season of the year.  Sorry I haven’t posted much recently.  I’ve been working pretty hard at work these days.  We are coming to the end of a Sprint and as the Database guy I’m in demand.  So I’m trying to keep ahead of the crowd.  We’ve come up with a pretty good approach that I want to write about in a subsequent post.  Anyway, back to spring… The only think I don’t like about spring is the ticks.  We’ve already found 3 of em on myself and the girls.  UGH.  They are small.  The size of a deer tick but I think they are just regular ticks in the small development stage.  At least I hope so.  They weren’t embedded just walking around so that was good.