December 2005 Archives

Stéphane Faroult

AddThis Social Bookmark Button

It seems that developers are more likely to take advantage of new
database features in new applications than they are while maintaining
and upgrading old applications. It is a pity, because there are
very significant gains to be obtained at a low cost. I’ll take a simple
example: a few years ago, I had to improve a program that had to display
on the user’s screen both the first rows returned by a query and the
total number of rows found. The query was dynamically built, and was
executed twice: once to return the data, and once to count the rows, by
the mere substitution of a COUNT(*) to the select list. I significantly
improved performance by reworking the count queries and narrowing them
to the tables and conditions that were truly identifying the result set,
as opposed to the numerous joins that were required to return
complementary information. As a result, this query was taking a fraction
of the time of the “real” query, instead of doubling the execution time.

That was the best that could be done at that time.


I have met very recently something quite similar in a JDBC program. But
today, many DBMS products implement window (sometimes known as
analytical or OLAP) functions. Append something such as COUNT(*) OVER ()
to your select list, and your query will magically return the data AND
the total count in each row, at almost no cost if the query already
contains an ORDER BY clause. Any ordering requires to identify the full
result set before returning the data, counting the rows comes free. The
application code is simpler, and the database is queried once were it
was queried twice.
That’s a cheap way to make a query almost twice as
fast as before.

Jonathan Gennick

AddThis Social Bookmark Button

Related link: http://www.xyzcomputing.com/index.php?option=content&task=view&id=503

Sal Cangeloso’s brief article on Linux application names caught my eye yesterday morning. Having just come away from a struggle with cryptic Linux/Unix command names the evening before, I was in the mood to reflect on the importance of giving a name. I’ll come back to my struggle. First I want to talk about cars.

If there’s one industry that’s given a tremendous amount of thought to naming, surely it is the automotive industry. Auto makers don’t choose names that directly describe their products (else I would be driving a “Geo Small Slow Car” rather than a “Geo Metro”). Auto makers, at least from my observation, carefully choose names for their visceral, emotional appeal, and then they carefully build a brand around each name to reinforce their choosen image. The Ford Mustang is a good example. Ford carefully associates “Mustang” with wild horses, freedom of the open range, youth, vitality, strength, speed(!). And then the car itself is marketed to a demographic that wishes they had all those things. Customers don’t buy a car, they buy an image. The key is that the name is consistently reinforced by images, by logos, by a product that can be emotionally associated with the name, and so forth. Ford Mustang is a well-known and successfull brand.

In the open source world, I see similar success in the names of Mozilla’s flagship products: Firefox and Thunderbird. It used to be that when you said “Thunderbird”, that I thought of the car. Now my first thought is of email. Mozilla has taken common, easy to pronounce words such as “fire” and “fox”, “thunder” and “bird”, and combined them into colorful and easily pronouncible product names. And Mozilla has backed those names up with advertising, with promotition, and with colorful logos. (And don’t underestimate the value of those great logos)

(As a side note here, I often wonder about all the “K-names” for KDE applications. KDE is too locked into the cute, K thing. Gnome has the advantage here, I think, in that Gnome developers are more free to choose colorful names. No one had to worry about slipping a “G” into Mozilla’s product names.)

So I disagree somewhat with the argument in Sal’s article that application names need to be somehow descriptive of what the applications do. Firefox would be less successful, at least less memorable, were it to be called “Web Browser”. Firefox is memorable because of the colorful name backed up by a good logo and consistent marketing. Acrobat is memorable for the same reason. Even “Gimp” can be a successful name with the right marketing effort.

But I do agree that Linux command and application names, and especially command names, are often cryptic, confounding, and a stumbling block. That struggle I had the other evening? It involved the command needed to format a hard drive. I was using Knoppix to help a neighbor rescue some files from a Windows machine gone bad. We were intending to copy the files to a second hard drive that I’d just installed. Trouble was, I needed to format that drive, and the GUI didn’t seem to offer an option to do that, so it was off to the command-line for a solution. Some Googling led me to the mkfs command. Mkfs for format? My neighbor was completely confounded by that, and, frankly, so was I. (At least the command worked, and the files were saved) It wasn’t until the next morning, just before reading Sal’s article, that the probable association between “mkfs” and “make filesystem” occurred to me. Sure it makes sense now, but it is not intuitive to associate “mkfs” with “format”. And “mkfs” is not even a pronouncible word, something I feel is very important in making a command memorable and useable.

Names are important. And troublesome names are certainly not the exclusive domain of Linux. Good branding can make a name memorable (e.g.: Firefox); Descriptive naming certainly doesn’t hurt (e.g.: Notepad); Pronouncible names help me a lot (Kate is perfectly fine for an editor name). Abbreviations and truncated words often cause me to stumble (e.g.: df and mkfs). Unusual associations can make a name memorable (e.g.: Gimp).

Linux distributions, by the way, have tackled the naming problem by making their menu choices descriptive of what an application does. For example, KDE in Suse 10.0 uses “Media Player (Kaffeine)”. That’s a helpful approach for two reasons: it helps me get started on finding a media player, and it reinforces the association between “Kaffeine” and “media player”. This gets back to branding and marketing. Kaffeine is a perfectly good name (IMHO). It just needs to be backed by enough marketing for people to learn to associate the name with the function. The dual-entry menu name really helps with that.

What do you think? What makes a name work for you? What causes you to stumble?

Stéphane Faroult

AddThis Social Bookmark Button

It’s a slightly provocative question to ask oneself whether the
automation of database administration isn’t taking database
administrators back to the bad old days of panic-mode, reactive behavior
when they have painfully tried to be proactive for years.
For many years, the hallmark of a good DBA was a collection of automated
reports that were warning about storage issues to come, or parameters no
longer adapted to a changing load, and all the intelligence of the work
was in preventing issues. Automated administration certainly means that
one DBA is now able to administer much more databases than before. But
it also means that action will be focused on nasty bugs and generally
speaking everything that shall have slipped through the net of
automation. Let’s hope that vendors’ support will be, well, supportive.

John Adams

AddThis Social Bookmark Button

Related link: http://www.kansas.com/mld/eagle/living/education/13337930.htm

First, here’s some good news:

Two Valley students were the first ever from Arizona to win a national Siemens Westinghouse Competition. They shared the mathematics and science team research award in New York and will split the $100,000 scholarship prize.

Anne Lee, 17, a senior at Phoenix Country Day School, and Albert Shieh, 16, a junior at Scottsdale’s Chaparral High School, are interns at TGen, formally known as Translational Genomics Research Institute in Phoenix.

Isn’t that great? High school kids advancing the state of human knowledge. Cheers me up, warms my heart, makes my day.

Which is useful right now, because this doesn’t:

A professor whose planned course on creationism and intelligent design was canceled after he sent e-mails deriding Christian conservatives was hospitalized Monday after what appeared to be a roadside beating.

University of Kansas religious studies professor Paul Mirecki said that the two men who beat him made references to the class that was to be offered for the first time this spring.

That’s not my idea of how to settle a scientific question. What is? Well, how about this:

Blacklisting is ethically inappropriate in academic contexts. The Foundation believes that proper academic adjudication of important and controversial issues is not by censorship but rather by open scholarly debate and consideration of positions and arguments on the merits or lack thereof. Research scholarship does not proceed by processes of censorship and inhibition of debate. Rather, the best contribution a philanthropic organization can make is to support and promote research and rigorous debate. Consequently, it is true therefore that Templeton Foundation funding support from time-to-time will have been used by some scholars promoting an ID [intelligent design] position whose proposals have passed muster in independently judged review panels. This is entirely appropriate in cases where competitive review panels have found merit in course proposals and have awarded grants. Professors who are winners of Foundation grants are not kept under ideological review for purposes of blacklisting but are free to pursue and debate ideas as they see fit.

They don’t mention not stooping to violence against those with whom one disagrees. I suppose they took that as a given. Is it?

I grew up in that part of the country, just south of Kansas, and have always enjoyed my visits to Lawrence, a real nice town–what the heck is the matter with Kansas, anyway?

Advertisement