Feb 27, 2007 - Garden Show

Last weekend we went to the Portland Yard, Garden and Patio Show. This was a convention center of displays and vendors that had anything to do with gardening (and some not – there was a booth selling just socks!!??). Some companies brought in a phenominal amount of plants and stones to create their display areas. But, in the end, it was a little disappointing. Everyone was selling something. Even the designers seems to want to build walls and stone walkways. In some sense, it wasn’t very gardeny. It seems artificial. The only real garden people (and they seemed happy about it) were the booths selling bulbs and plants – they were selling the beauty and fun of gardening. Most of the other companies were selling the details of gardening.

Feb 24, 2007 - Strongly Typed

Because my job is changing, I’ve been spending some time learning some other languages since I’ve been focused on Java and XML tools for the last few years. So, I’m refreshing my skills in C++ and PERL and trying out JavaScript and LSL.

All my Java programming has been done in Eclipse which does a wonderful job of flagging errors as you type. That is, the development cycle of “write, compile, fix compile errors, compile, …, run” because if Eclipse doesn’t show any errors while you’re typing, it’s sure to compile.

So, what does this have to do with C++, JavaScript and most of the XML tools? After Java and Eclipse, I feel like I’m being thrown back 20 years to using Lint with my C programs. And this leads me to the topic of ‘strongly typed’ languages. One of features of Java is it’s ‘strong typing’. I don’t care about the JVM runtime checking (since code has to be robust and recover from all errors, the overhead of checking rather than just doing and faulting is questionable) but I care about the compiler and, in this case, the editor knowing what I want to happen – if I say itemCount is a string but then I add one to it something should be flagged; if I define a variable named height and then reference a variable named heigth something should ask me what I was thinking. This feature of the programmer defining something and then the compiler or editor being able to check the implications of that definition.

But, now it is 2007, and Douglas Crockford (in his excellent JavaScript video lectures) recommends style conventions which allow running JSLint to save yourself from wasting time finding problems at runtime. Well, duh. He does mention that this capability is being added to the Eclipse JavaScript plugin, but, after all these years of computer science, couldn’t anyone see the language had problems?

I have the same arguement with PERL and most of the XML languages (a typo in an XPath expression silently select nothing with know why to debug why, for instance). CSS is hard to get right on web pages because there is no check if the HTML being styled fits the formatting model that the CSS operates on. C++ lets you override methods in subclasses with no checking for the matching semantics. PERL, well, don’t get me started on PERL.

My frustration is that, after 40 years of computer language design, this still isn’t obvious. Any language design should have a non-onerious method for the programmer to state his or her intentions and those intentions can be verified before you actually try executing the bits. Our focus should be on finding light-weight methods for expression of complex intentions not in making the latest light-weight language that has the problems of it’s predecessors.

Feb 17, 2007 - Valentine's Day in the World

Valentine’s Day found us in DisneyWorld celebrating our wedding anniversary and enjoying the themed ambiance of Walt’s lands. One of the neat things, since it was our wedding anniversary, they gave us buttons and all the cast members said “Happy Anniversary” and the restaurants gave us special attention and desserts. Special and yummy.

Jan 17, 2007 - I wasn't fooled

Here is a spam I received today.

From: Tech@PayPal.com Subject: PayPal Message ID 79674 - PayPal Security Service Notification kind customer we inform it that for emergency issues it must renter its personal data and change password. It can make it this address http://paysecurity.servehttp.com sincerely yours the direction paypal

I wasn’t fooled

Jan 16, 2007 - Snow in the morning

Woke up this morning to white stuff on the ground. It’s always iffy whether the weather report will be correct – too often they predict but the snow doesn’t come. The temperature is expected to get up to 40 this afternoon, so the snow will only stick around long enough to mess up the commute. This evening, though, it will get back down below freezing. I might have to work from home today.