Archive for June, 2008

AdUUp: Lame, Tone-Deaf

Oh, AdUUp, you just don’t get it.

First there was the over-the-top Seattle Tech Startups presentation in May that was a spectacle of spamminess and self-promotion, culminating (in my mind anyway) with the announcement of a supposed exclusive search deal between AdUUp and Flock for the Flock 2.0 browser’s default search engine. Flock, of course, refuted this announcement in no uncertain terms.

Then, last Friday, this sequence of events:

7:59 AM: A comment by “Henry Collerton” was submitted to my blog, stating, among other things:

fleeQ and adUup sure got a lot of haters.
Glad to see that naysayers are very vocal.
Hope the squash you when they make a $100 million dollars sucker!

I’m pretty sure that “Henry Collerton” is a pseudonym (Google the exact name and you’ll see why). Henry lists his website as

8:03 AM: Henry Collerton posts again, four minutes later, calling me a pervert, and comparing me to this guy, who, despite (a) having an interest in SF, and (b) being named “Anthony Stevens”, is not me. This fact escapes Henry Collerton.

10:43 AM: A couple hours later, I get a LinkedIn invitation by Dylan Rosario, in which he says (emphasis mine):

I’d like to invite you to talk about your problem you have with my company and products. I am sure that you just don’t understand what we are doing.

Yes, the problem is all mine.

Not that I feel like talking about AdUUp, but I’m 100% certain I’m not the only one who feels that AdUUp, – how to put it charitably? – lacks that certain something. Do a search for AdUUp on Summize and you’ll get a sense of some other opinions.

So, Dylan, are you Henry Collerton in disguise? Even if it wasn’t you, I would find out who in your company is calling blog critics “perverts” and do something about it. At the very least, try to get some perspective and, instead of blaming the messenger, do some serious introspection. Engage your critics respectfully, don’t attack them.

My already low opinion of AdUUp just got much lower. Is that the result you wanted when you woke up Friday morning?


Unhandled Exception in DEVENV.EXE

Yesterday I combined two separate VS 2008 solutions into one mega-solution with 16 total projects.  It seemed to run fine (and why shouldn’t it?) but this morning, opening the same solution after a reboot, I get the following:

Microsoft Visual Studio has encountered an exception and needs to close.

Clicking through to the debugger, I get:

Unhandled exception at 0x76cab09e in devenv.exe: 0xE0434F4D: 0xe0434f4d.

At first I had flashbacks to the bad old days of overloaded IDEs and started removing projects directly from the .sln file using Notepad.  No luck, even after a reboot.

Then I tried to open individual .csproj projects in the editor.  Strangely, each time I tried, this, the entire .sln would try to reopen, with the same terrible result.

This led a little light to go off in my head – what would tie the .csproj and .sln together from the .csproj side of things?  SOURCE CONTROL.  I’m running TortoiseSVN with the VisualSVN plugin.  I used a nifty registry key hack to recursively delete all the .svn directories, which – voilà – allows me to open the solution just fine.

For the moment I’m off source control, but I can work.  I’ll re-add to source control today when I’m done, but I’m crunching for a deadline tomorrow and need to get some bits behind me.

Do You Grok Grok?

If you can’t name the book and author from which the word “grok” came from, should you really be able to use the word?  I recommend an International Grok Licensing Organization, cruising the interwebs to perform accreditations and hand out citations.

Testing Flock 2.0 Beta

I just downloaded and installed Flock 2.0 beta on my machine and am testing it out.  So far it looks pretty familiar.  I wish I had some performance benchmarks to compare against – maybe I’ll go find some tonight.

For the short term, Flock looks fairly closely related to Flock 1.x browsers.  There are incremental changes to look-and-feel widgets.

How To Eject an ExpressCard

I feel like I just learned how to snap my fingers for the first time.  I just learned how to eject an ExpressCard.  I have a Dell XPS M1330 and today I bought a new Option Wireless GT Ultra Express aircard, which comes in the ExpressCard form factor.

Being used to PCMCIA cards from the good old days, I looked around for the little black button to eject the card.  There was none.  Hm, sez me, how do you get this thing out without damaging it?

It turns out the ExpressCard slots are spring-loaded.  You just give the card a good push IN, then the card pops OUT.  Easy as pie.

AT&T GT Ultra Express Air Card Review

On Tuesday, I purchased an AT&T Sierra Wireless 881 USB Air Card to use in my laptop.  I needed to be more mobile than I already am, what with the fact that the mojitos are usually served outdoors on the patio during the summer months.

Today I returned that steaming hunk of junk.  I spent many hours trying to get it to work, including one on the phone with a mostly clueless AT&T tech who told me at one point that “you know more than me” about the networking troubleshooting.

I couldn’t get to any internet sites; ping barfed with a 1231 error, and zero data packets of any sort were sent or received.  I tried upgrading the AT&T Communication Manager software direct from the AT&T support site, and even tried the Sierra Wireless 3G Watcher software.

So, when I returned the 881U, I got a GT Ultra Express card in its place, for $50 more.  I figured that Sierra Wireless was the culprit here and that moving to a different manufacturer might work out well.

I was right.  The GT Ultra Express works beautifully.  It’s an Express Card card, so it’s much lower profile than the monstrous 881U, and it works like a champ.  Initial bandwidth tests to Speakeasy show a download speed of 1639 kbps and an upload speed of 636 kbps, which is right in the advertised range and definitely acceptable for my needs.

So – for those of you choosing between the Sierra Wireless cards and the Option Wireless cards available from AT&T, definitely consider the Option Wireless ones, particularly the GT Ultra Express.  The difference is night and day!

Diving in to Mock Objects

A new consulting gig I just started last week has a team who is interested in diving deep into Mock Objects as a testing philosophy.  As such, I’ve spent some time reacquainting myself with Mocking after having passed on it several years ago.

My chief complaint, as the doctors say, was that Mocking introduced an unnecessary level of complexity to your testing code.  My secondary complaint was that it broke encapsulation by giving your test code too much insight as to the expected implementation of your classes, what with all the .expect()s and .will()s floating around.  It’s like washing the family car with your Dad hovering over your shoulder, telling you the right way to use the sponge.  As long as it’s clean at the end, who cares?

In a nutshell, this is the argument over state-based vs. behavioral testing.  In state-based testing, you just want Car.IsClean() to return true.  In behavioral testing, you want Sponge.Wipe() to be called 137 times, and Hose.Spray() to be called 22 times.

Call me a keen proponent of state-based testing.

There are a couple areas where Mocking can get around very real weaknesses in state-based testing; for example, anything to do with nondeterministic behavior.  The authors of this paper, “Mock Roles, Not Objects”, conveniently use caching as a way to explore Mocking, and it make sense.  It would be hard to test caching to that level of detail without either (a) Mocks or (b) exposing a lot of guts of the implementation just to hang test hooks off of.

What’s your experience with Mocking?  Any best practices to relate?

TwitterCounter for @anthonyrstevens
Add to Technorati Favorites

RSS Feed

View Anthony Stevens's profile on LinkedIn