Ted’s Rants and Raves by Ted M. Young

April 30, 2007

Test-Driven Development (TDD)

Test-Driven Development or Test-First Programming, or whatever you call it, is a way of programming where you create the test code before the production code. There’s a new push for doing this here at Guidewire, and I’m looking forward to doing more of it and talking about it here. In the meantime, I’m reading the early access of "Test Driven" by Lasse Koskela (you can pre-order it at Amazon). I’m hoping to see more of a focus on the "customer acceptance" part of test driven development, so we’ll see how that works out.

Bad Error Messages Waste Time

Filed under: General Rant

The only thing worse than content-free error messages such as "Error 0" (see The $4,000 Error Message) are those that mislead: telling you that X is wrong when it’s really Y that’s the cause of the problem. At least with "Error 0", you’ll look at everything and think about all of the possible things that could be wrong and either see your mistake or give up and try something completely different.

The evil misleading error message, however, causes you to spend your time and effort on fixing X, until you finally realize (after much cursing and coffee drinking) that there’s no problem with X, X is just fine and works exactly as expected. Only then do you see that Y is the real problem and, even worse, it takes only two seconds to fix it.

This is why programmers should never write error messages. Just like they should never write help text, button labels, menu items, or pretty much any text that the end-user is going to read. That’s the job of the usability/documentation folks: they know how to write. This is also why QA should pay close attention to the error messages (they are testing the error cases, right?) and ensure that they are correct.

Of course, the best solution is to prevent the error conditions in the first place, but that’s another rant. 

April 25, 2007

Existential Ω-Entailment is not explosive

Filed under: General Rant

This should probably be filed under "coolest words I’ve heard/read today", but I can’t think of a catchy yet pithy name for the category, so I’ll just file this generally.

Existential Ω-Entailment is not explosive

At least according to Michael Kassoff, et. al., in PrediCalc: A Logical Spreadsheet Management System.

Why, you might ask, am I reading this? I saw the reference in ACM’s thrice-weekly TechNews about logical spreadsheets (sort of a spreadsheet-based interactive constraint satisfaction problem solver) out of Stanford and figured I’d read more. Alas, I’ve been out of college too long to really understand the paper, but it looks cool.

Tip: Screenshots Should Not Be JPEGs

Filed under: General Rant

I’m amazed at the number of web sites that are selling software (web- or desktop-based) where the screenshots are JPEGs (this rant is courtesy of an interesting requirements gathering product at http://www.gatherspace.com). Screenshots of the software in action are a great way to demonstrate various features and can work as a summary of the features, with the details left for a Flash-based demo. However, when the screenshots are converted to JPEGs, by definition you lose quality (that’s why JPEG is called "lossy"). Viewing screenshots as blurry JPEGs gives a bad impression. PNGs are widely supported these days and the PNG format is lossless, meaning that it still compresses the file, but doesn’t change one pixel from the original.

April 23, 2007

Let Me Use My Feed Reader The Way I Want To

Filed under: General Rant

I’ve been getting much better at reading the blogs that interest me (see the Blogroll on the lower-left here) using Bloglines. I find that I’m much happier reading the blogs in a consistent format and I’m able to read through many of them on a regular basis. What I don’t like are blogs that only put excerpts or just the first sentence into their feed — which is all that I see when reading their blog in a system like Bloglines.  It means that I have to click on their blog link in order to read their posting, forcing me to visit their site. I can understand, maybe, sites where the feed is for the articles from the site, such as The Motley Fool, and not from a blog, so they want you to visit the site to get the "context" of the article. But for blogs, I don’t quite understand it.

Perhaps they want you to visit the site to be exposed to their ads, but Engadget’s blog doesn’t treat me this way — it puts the full blog entries (including pics) into the feed. Sure, they put some ads in between (or at the bottom of) posts, but they’re pretty inocuous (and if I was at all interested in buying a Ford, I might even click on one of them). So if they can do it, why can’t you? If your post is interesting enough to me, I’ll probably visit the site to see what else I’ve missed and/or read (or post to) the comments area.

April 18, 2007

Repeat after me: Bloglines is a feed reader…

Filed under: General Rant

Sorry Bloglines, I love you as a feed reader, but as a blog host you have quite a bit of catching up to do. Yeah, I started my blogging (really, re-re-re-re-re-started my blogging) using Bloglines since I’ve been using it as my new feed reader (no, I don’t care for Google Reader as much and I’ll talk about that some other time), and it was pretty convenient. Alas, it is an extremely basic blog without even comments (let alone drafts, and other editing niceties), so here I am.

Since I have a couple of blog entries on Bloglines, I’m just going to pull them over here and edit the timestamp (but not the content) to make it seem like I’ve been doing it here all along.

Yeah, well, work with me here, ok? :-)  

April 17, 2007

Google’s Purchase of Tonic Systems

Filed under: Web Applications

So here’s something I can’t quite figure out. Google has thousands of smart software engineers, each of whom has 20% time (1 day a week to work on their own cool project), yet out of the three Google Apps (aka Google’s Microsoft Office Killer), only one (the spreadsheet) was created internally. The word processor is Writely (purchased from Upstartle in 2006) and the presentation program will be the just-purchased JavaPoint from Tonic Systems.

What does this say about Google’s ability to write web applications? Or other software? Let’s go down the list:

  • Google Desktop: internally developed (as far as I know)
  • Google Toolbar: internally developed
  • GWT: purchased from a company in Atlanta in 2006
  • Google Wiki: recently purchased from JotSpot (has yet to become a Google "product")
  • Google Docs: aka Writely, purchased from Upstartle
  • Google Spreadsheets: internally developed
  • Google Presentation: there was "Presently", but that appears to be dead with the purchase of JavaPoint from Tonic Systems.
  • GMail: internally developed
  • Dodgeball: purchased and killed (or at least left to starve), and founders left Google
  • Google Radio Ads: purchased from dMarc in 2005, but dMarc founders left Google
  • Picasa: purchased in 2004
  • Google Earth: purchased from Keyhole in 2004
  • Google SketchUp: purchased in 2006
  • Google Analytics: purchased from Urchin in 2005
  • Google AdSense: purchased from Applied Semantics in 2003

I could probably go on, but you get the picture. It seems to me that Google is very good at purchasing technologies and (sometimes) applying the Google brand to make them popular (or at least more popular). However, Google is not so good about developing products internally and sometimes has trouble keeping the original teams as part of Google.

 

The $4,000 Error Message

Filed under: Using Software

Here at work, for documentation purposes, we want to be able to reverse-engineer the database schema and get a pretty diagram. Since we generate the schema from some XML files, we can’t generate a model from there, so we have to go to the database. Personally, I’d like to generate it straight from the XML, but that’d require some custom work using GraphViz or maybe yWorks. Anyway, one would think that getting a tool to print a pretty diagram of the schema is pretty easy.

This wouldn’t be a blog entry if it was easy…in fact, it’s surprisingly hard to get a good reverse-engineered diagram from any tool, even those costing $4,000.

Hey ERwin, 1993 just called and they want their modeling tool back!

Seriously, I expect a $4,000 tool to be able to do everything and when it comes to reverse engineering, I expect to be able to point it at a database and have it do its magic. Would you believe that CA’s AllFusion ERwin Data Modeler (ugh, what a name) doesn’t know how to speak directly to a SQL Server 2005 database? Oh sure, it gives you that choice when reverse engineering a database, but there doesn’t seem to be any place to set things like username, password, database name, etc. So what happens is I get: "Unable to locate client connectivity software. Check with your database administrator to install the appropriate client software." Well that doesn’t help, since SQL Server 2005 is running on my machine, and on my machine I am the administrator and I have no idea what they’re talking about. If you’re going to display an error message like this, you had better supply a link to a help file that explains what’s wrong and how to fix it. This isn’t some rarely seen database like Paradox, this is Microsoft SQL Server 2005.

I’m betting that a lot of people use database reverse-engineering tools since database schemas are usually the most un[der]documented part of a system. I would expect a $4,000 tool (or even a $400 one) to provide a solid wizard interface for setting up connections to database. If they don’t want to "dumb down" the product with a wizard, then detailed error messages would be fine. Error messages such as "Error 0" are inexcusable in commercial software, let alone ones that are expensive and have been around for so many years. I could understand a 1.0 product having limited help or cryptic error messages, but not a product that’s at version 7.1.2.

Since I couldn’t get the direct-to-SQL Server 2005 connection working, I figured I’d try the ODBC connection and that got me connected to my database. ERwin was finally able to reverse-engineer the tables, though not after some very tedious selecting and unselecting the tables that I wanted. ERwin (and Visio 2007 as well) makes this so hard because if I want to select, say, 100 tables out of a possible 250 tables to reverse engineer, I have to select and click a button for every single table. I can’t multiple-select, or drag-n-drop, or even use a search expression (let alone a regexp).

With the tables and their relationships imported into ERwin, I find that its line layout algorithms are awful (though not nearly as bad as Visual Paradigm’s VPSuite’s routing algorithms, which seem to be non-existent): with all of the crossed lines and dashed line styles, it’s hard to see what connects to what. At least the number of lines crossing the entity shapes are kept to a minimum.

With all of the fancy algorithms that have been around for years (many, many years) to lay out lines with the minimum number of crossings, I guess it’s just another one of those things that few people need. My customized XML to Diagram solution is looking better and better.

April 12, 2007

Here I Go Again

Filed under: General Rant

OK, trying this again.

Hello and welcome to my 6th blog. Where are the other 5? Oh, they’re floating around somewhere with like one or two entries each. So what am I doing here? Well, I’ve started using Bloglines more heavily and it’s reached the tipping point where it has most of what I monitor/read every day: from blogs to deals to news items.

I was going to just have this be where my BlogRoll is, but since I’m on Bloglines a few times a day, I figured it’d be a good reminder for me to write an entry. Let’s see how that goes.

And a hello to my Guidewire Software peers…

 

Get free blog up and running in minutes with Blogsome
Theme designed by Jay of onefinejay.com