Archive for November, 2006

Ah, Blessed Days of Subversion

Thursday, November 30th, 2006

… are over, because we moved our source code to Team Foundation.

Team Foundation Inaction

Yea, verily I say unto thee, that is a modal dialog box.

So my Visual Studio is locked up — completely — until somebody gives the server the kick it deserves.

I did try clicking cancel — but, of course, the cancel operation hangs too.

This costs thousands of dollars. Thousands! The usability is less grievous than SourceSafe (and that’s not saying much) — but the reliability, at least in my experience here, is worse. Fancy that.

I miss my Subversion.

Smart Client Software Factory productivity

Thursday, November 16th, 2006

Here’s a completely unfair, unfounded, superficial and silly observation on productivity when working with Microsoft’s Smart Client Software Factory.

I came across this “Where to start” page, and impaled my eyes on this heading:

Creating the HelloWorld (2 hours or more)

That sounds … not very promising. :-)

Code in the Dark Ages

Thursday, November 9th, 2006

When you find yourself generating N lines of code looking like this:

case "str_PhoneNumber":
	return "PhoneNumber";
case "str_AddressLine1":
	return "AddressLine";
case "str_AddressLine2":
	return "AddressLine2";

then you may think you have a great tool. I say you have a problem.

That kind of code burns the soul and blackens the skies. And, going through the Service Factory hands-on lab at and finding myself under those ominous skies, I couldn’t help thinking “This is an abomination. There must be a better way.”

And then I went to Hejlsberg’s LINQ overview.

Oh, the neatness, the directness, the sheer design beauty.

Just as we now look back with disbelief to the days when we used to have open sewage canals in the cities, public stonings on Tuesdays, organized religions with enormous political influence and indoctrination of the masses from birth (wait, oops, we still have that), ruthless state oppression, and ubiquitous slavery sanctioned by church and state, we will one day look back to case "str_PhoneNumber": return "PhoneNumber"; and think “wow, it really used to be that way.”

Hejlsberg’s Little Chuckle

Thursday, November 9th, 2006

I’m at the conference in Barcelona. In addition to just the enjoyment of being in Barcelona, I’ve enjoyed several things particularly:

  • sessions on testing and continuous integration with Roy Osherove. These were lively and fun, and obviously he is an authority on the subject. His pre-conference sessions each ended with short songs. These should have been still shorter. But his advice on testing is spot on.
  • an excellent presentation by one Brian Long on alternative debugging tools for .Net production debugging. Long is a sharp Briton with a delightful flair for erudite, witty language, but he also knows his way around WinDbg and SOS.dll.
  • the TV monitors in the hallways, which feature a video on a repeat loop of hardly more than a minute or two, much of which is Microsoft CEO Steve Ballmer inflicting some marketing on innocent viewers. The combination of Ballmer’s slightly-too-wide-open eyes and the slightly-too-loud volume setting and the more-than-slightly-brainwashy marketing message, imparts a delightful 1984 feeling.
  • Anders Hejlsberg’s sessions on the LINQ framework and other language extensions in C# 3.0. Hejlsberg has designed a major programming language (C#), yet he has neither a large beard nor long hair, and is socially capable and an excellent presenter. And LINQ is really, really cool (not many code demos inspire spontaneous applause). All this comes adorned with an agreeably slight Danish accent, and a frequent “hahah” that I will call Hejlsberg’s Little Chuckle.

I am dying to use LINQ, though I guess I won’t get to do that at work for a while. I do get to be agile though … and I don’t doubt I’ll continue to have occasion to use a debugger as well. So it’s only the Ballmer bit that’s pure, unadulterated entertainment.

Stack overflow in line: 0

Thursday, November 2nd, 2006

IE6 started to throw this JScript error in my face, “Stack overflow in line: 0″, in a mildly involved bundle of one-off Javascript I was cobbling together.

It was a series of calculations trickling down from an initial textbox change through cascading onchange events and homemade callbacks, and it worked, that’s not the problem — but once it was done this error message popped up each time. It didn’t happen during the calculations, it happened outside my code. I did not have any infinite recursion anywhere. Firefox showed no problems.

When I disabled the deepest part of the calculations (where the execution stack went deepest), this didn’t occur at the end. I could pinpoint just where I had to stop such that this wouldn’t happen at the end. This was around 10 stack frames, if I recall correctly.

Googling turned up nothing in the way of an explanation or a fix.

I finally worked around it by wrapping one call in setTimeout(function() { call(); }, 0); to put the rest of the execution on a fresh stack.

That worked around the spurious error dialog … but I still don’t know what was going wrong. Can’t stand that!