Bad Smells

October 24th, 2008

We were working on some refactored code today that wasn’t refactored properly. The tests had been changed to make the refactored code pass. My colleague said that I should write-up my “profound” comment on the situation:

If you’re performing a refactoring and you find yourself changing asserts in existing unit tests, something should smell bad. You’ve probably done something more than refactor the code.

T-Mobile G1/Google Android

October 24th, 2008

I got a G1 on Wednesday and I’m liking it. I’ve had an iPod Touch for over a year now and I’ve liked that, except for the keyboard. The introduction of Apple’s App Store and the revocation of apps from it concerns me.

On the G1, I definitely like the keyboard and its ability to switch seamlessly between Wi-Fi, T-Mobile Hotspots (included with the data plan), 3G, and Edge. It’s also a 4-mode phone which means you can take it pretty much anywhere in the world. I think Android has a lot of potential. It’s got some rough edges right now, but I’m sure it will get better. I also like the call audio quality and signal strength. Much better than Verizon so far.

It comes with a 1GB SD card – I just ordered a 8GB microSD card today for $20 (

I didn’t like the fact that they didn’t launch with accessories – like a holster (!). I was also told that it shipped with a USB/headphone  adapter. It doesn’t. It is a USB/earphones/microphone and the earphones suck for music. I have some nice Bose headphones I’d like to use, but no accessory to be found. I’m breaking out the soldering iron this weekend!

The apps so far are free and pretty decent. Shazam has an app too. I never used Shazam before. It is cool. Riding in your car listening to a tune and want to know what song it is? Shazam listens to the music for 20-30 seconds and very reliably (hitting 100% for me) identifies the song. It then provides links to buy it on Amazon’s mp3 store and to YouTube.
I’ll keep you posted as I gain more experience with it.

Ubiquitous Ubiquity

August 27th, 2008

If you haven’t got it yet, go get the Ubiquity plugin for Firefox. This is one of the coolest things I’ve seen in a long time. I think applications should have this kind of feature. Instead of navigating menus, etc. have a shortcut that takes you where you want to go or helps you do a task.

Wicket Web Beans 2.0 Features

August 7th, 2008

One of the ideas I have for WWB 2.0 is to allow Apache JXPath expressions for instead of straight bean properties. Also, you’ll be able to specify the same kind of expressions for parameter values. This makes all parameter values dynamic – unlike most of the parameters in WWB 1.x.

JXPath functions can be implemented in Java. This would allow for a great deal of flexibility. For example, this would let you call a function for a parameter’s value and have some complex logic behind it.

I Will Make You Rich, Allow You to Travel the World, and You Don’t Have to Do Anything!

August 6th, 2008

A colleague recommended The 4 Hour Work Week by Timothy Ferriss the other day. I bit and bought the book to read on vacation.  I got a little more than half way through the book when I had to take Tim’s advice and stop wasting time reading it.

I’ll start by being objective. Tim makes a bunch of claims that cannot be backed up. How do we know he makes $40K-$80K a month with BrainQuicken? It’s a private company – no way to verify the sales, profit, or loss. How do we know he only works 4 hours a week? How do we know any of what he says really works? How do we know that BrainQuicken (the only business he talks about ever owning) isn’t a sink hole? He even admits in his book that he shouldn’t have chosen to sell this product because it requires too much interaction with the customer. If this is the only business you run and it’s not the right product, why wouldn’t you change it? Why? Because it doesn’t matter. It’s a front to sell a book.

We do know that he broke the 1 minute World Record for Tango spins on Regis. Something like 41 spins. You can Google for the video. It’s not impressive. I certainly I could have done the same, albeit with less style. ;-) Why on earth would someone do this? Ah wait…self-promotion.

Now allow me to be a bit cynical. In the book, he starts off talking about himself. A lot. Like for the entire book. I started to raise an eyebrow right after the chapter on his “life” history. Then he proceeds to talk about the “New Rich,” which presumably he’s one of. However, the book advocates freeing up time to allow you to accomplish 6 month mini-goals called “Dreamlines” or mini-retirements. The same section tells you how to calculate how much income you’ll need to accomplish these goals. You then proceed to spend all the money you make on your mini-retirements. How does that make one “Rich” in the money sense of the word? Oh wait, this is the “New Rich”…

Free your time by using Virtual Assistants from India. Seriously? He is helpful by recommending which companies to use.  I’m sure those companies really appreciate his generosity and free advertising (yeah right). I’ve worked with various Indian outsourcers on and off for about 8 years in the software sector (try to confirm that claim). Except for the rare diamond in the rough, the work product that comes back is sub-standard. Usually quite bad. He even talks about his horror story, but continues to recommend them. Have you had a support call with Dell or some other company that uses an India-based call-center? I swear that the people on the phone have only been taught enough english to read the script. Not what I’d want for my customers.

Then he tells you the “secret.” That’s right. Find a good product and sell it. That’s it. Oh, and you don’t want to talk to customers because that might take longer than 4 hours a week. Better let India, Inc. handle that for you. After all, they speak real good english and your customers will absolutely love their politeness and their ability to stick to scripts. It is simple to choose the product – you know – the one that will sell like bananas on a monkey farm and one that no one else can possibly sell. Let someone else make the product, ship the product, handle the phone calls and billing. After all, those selling your product can’t possibly wise-up and see what you’re doing. You only need to check email once a week and watch your bank account grow. Everyone ought to be doing this!

Throughout the book he uses phrases like “…our recommendation…”  Wait.  Who’s “our”? His team in India? He’ll say things that make him sound like he has broad business experience, such as “I recommend only selling products, not services”. Has he ever sold a service? I don’t know, but he doesn’t mention it in the book. He’s 31 years old, a cheesy world-record “breaker” and a Chinese Kickboxing “champion” that didn’t win by kickboxing. Where are the billions? Elon Musk sold Paypal for $1.5 billion when he was 31. I’d much rather listen to baseless claims from someone with a proven track record than a tango twister.

The book often reads like an ad for his website and other businesses. His website is only mentioned a few thousand times. Go there sometime. There’s nothing of substance there. There’s a bunch of unbacked claims and plenty of links to buy his book.

Can you run a $40,000/month business (which isn’t really big – less than $.5M/year) on 4 hours a week? Maybe.  Just don’t expect to have repeat customers or be in business very long. How did Tim Ferriss do it? He wrote a best selling book that everyone desires: Get Rich, Have Fun, and Not Have to Work. He is simply a self-promoter. Save your money and invest it instead. OK, if you really want to waste your money, I’ll sell you a share of my company instead for the same price! ;-)

Starting Work on WWB 2.0

July 23rd, 2008

I’ve got some new ideas and directions for Wicket Web Beans, so I’m starting work on 2.0. I hope to incorporate some of the previous requests and comments in an elegant and cohesive manner. WWB 2.0 work will proceed under branch wwb-2.0. I made a snapshot of the unreleased WWB 1.1 work in SVN under branches/wwb-1.1 prior to the 2.0 branch. WWB 1.1 work will continue on the trunk.

Databinder has been updated to 1.2 on the trunk and the wwb-2.0 branch. The wicketwebbeans-databinder*1.2 modules have now replaced the older wicketwebbeans-databinder* modules.

More on the new features I’m working on for 2.0 later…

Wicket Web Beans 1.0 (final) Released

January 12th, 2008

Wicket Web Beans 1.0 (final) has been released. Major inclusions in this release are the finalizaton of the Databinder integration and Wicket 1.3.0 (final) support.

WicketWebBeans 1.0-rc2 Released

December 3rd, 2007

Wicket Web Beans 1.0-rc2 has been released. Major inclusions in this release are a Java metadata API, annotations, and 18+ new features. 1.0 Final is planned to be released in 10 days if no major issues are found.

SVN Reorganized

November 25th, 2007

The WWB subversion tree has been reorganized in preparation for the 1.0-rc2 release. The trunk now contains the Wicket 1.3.0-rc1 support and the wicket-1.3 branch is gone. The Wicket 1.2.6 support is now in the wicket-1.2.6 branch. In addition, the Java packages have been renamed from wicket.contrib.webbeans to net.sourceforge.wicketwebbeans to be more consistent with Sourceforge projects.

Snapshots Published

October 23rd, 2007

I’ve got snapshots releases posted to our (temporary) Maven repository. For snapshots, it is located at Releases will be located at Once we hit the 1.0-rc2 release, we will have them mirrored in the Maven central repository.