On Usability

March 2, 2012

It’s spring, when many US citizens not only have to cope with figuring out their income taxes, but if they have college-bound or college-age children, learn that there are things worse — far worse — than the dreaded Form 1040. I’m speaking of FAFSA and related “now you have to dance for your money” applications […]

Read the full article →

On Intuition

February 28, 2012

We techno-geeks like to think that we make all our decisions based on dispassionate evaluation of empirical facts, but there are times when things just don’t pass the sniff test. I’ve been in this game for nearly 30 years and my sniffer sometimes smells that “off” quality of the air in the IT fridge in […]

Read the full article →

Fixing an OutOfMemoryException on a DataTable.NewRow() Call

October 12, 2011

Few things were less expected by me yesterday than the out of memory exception that was suddenly being thrown by very mature code that had functioned pretty much unchanged for about five years.  Especially when the offending line of code simply created an empty DataRow with less than two dozen columns.  What, I thought, could […]

Read the full article →

SQL Server INSTEAD OF Trigger “Gotchas” Revealed

May 26, 2011

I just finished implementing a schema change on a table that is central to a public-facing database.  The objective was to normalize the table, and this required that the original table be broken down into five tables.  This will allow my client a lot more flexibility, but it also means that hundreds of thousands of […]

Read the full article →

When is a Routine Too Big?

March 14, 2011

I’m thinking — and not for the first time — of slimming down a monster method that has grown beyond the size any “well-written” routine is “supposed” to be.  Depending on who you’re listening to, no routine should exceed a hundred or so lines of code, or two or three screen’s worth.  And almost universally, […]

Read the full article →

Sql Server Management Studio Epic Fail: User Canceled (NOT!)

March 1, 2011

I just spent 10 minutes of my life that I’ll never get back.  I defined a complex view with a bunch of join conditions and field aliases and such, saved and named it.  Then I was informed of an error (despite the fact that the query parsed fine in the UI) and was told that […]

Read the full article →

Sql Server’s Secret Unit of Measure for Subtree Cost

March 1, 2011

Yesterday I was looking at execution plans on a troublesome inner join condition and once again was moved to wonder about the “estimated subtree cost” of “243.872”.  I Googled around for this and found only circular definitions of the form, “the estimated subtree cost is the estimated cost of executing the specified portion of the […]

Read the full article →

Code “Re-Use” in SQL Server .NET Stored Procedures is Overrated

February 7, 2011

When it became possible, beginning with the release of SQL Server 2005, to write stored procedures, user-defined functions and similar database objects using .NET CLR-hosted languages like C# and VB.NET, I thought it was interesting but somewhat of a yawn.  After all, Microsoft still was selling T-SQL as the language of choice for most such […]

Read the full article →

To Unicode or Not To Unicode

April 9, 2010

In another post, I discussed some issues surrounding proper coding of country and state names and design of database schemas to support global names and addresses.  I mentioned that text data types for name and address elements should consider supporting accented characters — another way of saying “Unicode characters”. In terms of SQL Server this […]

Read the full article →

State Secrets: Place Names in Databases, News Story Bylines, and Elsewhere

April 9, 2010

A friend turned me on to this post which heralds a very significant change to The AP StyleBook that has editors and reporters atwitter today.  It impacts datelines and article body text starting May 15. Formerly, with some important exceptions, US place names in writing that follows AP style were followed by a state abbreviation […]

Read the full article →