What is in a name?

Thursday, September 30, 2004

Have you ever used iterative problem solving? If you don't know the term, you just did.Iterative problem solving is an amazing process to breakdown unknowns into known chunks and repeatedly connect them with known chunks to understand and solve the initial unknown.

Here's an example:
What does a "trash can" do?
A Can is a known object. Cans are usually metal objects, similar to bowls, with a lid.
Bowls are objects made to contain items. Like plates with the edges turned up.
Plates are... and so on.
Trash is also a known idea. Trash is a term which denotes another object as undesirable.
So, a "trash can" contains or holds undesirable objects. Simple.

What about a "Firefox", what does it do?
The software industry is notorious for marketing geniuses obsessed with cleaver and abstract software names. (Nero, Trillian, ABC, Fiddler, etc.) Names that seem independent from the function of the tool they are hawking. And I say tool because that is what software is. Software is written to help facilitate other actions. Nothing more.

Naming software is very important. Sales depend on your choice.
A simple, but effective, way to gauge the quality of a name is to look at it from the point-of-views of different levels of users. Does the name communicate the purpose of your tool to different levels of users?

Scenario 1) I don't use computers. So, I don't care what you nerds are cooking up to produce your porn. (This guy usually doesn't matter, but he maybe connected to people who do use software.)
Scenario 2) I am an average computer user and I don't know what it is. Using iterative problem solving, to break down the unknown name, it reveals XML and Spy. I don't know what xml is and I can't break it down any further, but it's a TLA so it must be a computer term. Since I've seen James Bond, I know what a spy does. So, my conclusion is XMLSpy goes out and spies on other people's xml, and maybe if I get the professional version it will sabotage those evil-doers using xml. Because, by the iterative process, xml is evil and must monitored, controlled, and stopped at all cost.
Scenario 3) I am a computer tech trained to help other users and I don't know what it is. Again, I break it down into XML and Spy. I know what xml is, but I have no idea what it is used for. So, I don't see a reason to have to spy on it. But, if the paycheck says it's important to spy on xml they must have their reasons.
Scenario 4) I am a developer and I don't know what it is. I break it down into XML and Spy. I use xml, and understand why it needs to be protected, and I've heard, or used, programs that "spy" on computer usage. Thus, my conclusion would be this piece of software monitors the use and modification of a company's xml data.
Scenario 5) I know the product and must spend a good chunk of time explaining, to someone else, how XMLSpy does not spy or your xml data.

In 5 out of 5 scenarios the name XMLSpy is ineffective in communicating the purpose of the software. Even if you are targeting developers and known users (Scenario 4 and 5), the lower levels serve a disseminating role. I found winamp through a football player. (You can't fight the six degrees of separation.)
Additionally, a good name should follow these rules for broader marketing reasons: http://www.abcnamebank.com/GoldenRules.html

Bad Examples:
Acrobat Pro
Aimster, Madster, Sigster, Sexter, NeoNapster, Grokster, and Napster
Alcohol 120%
BlackIce (This one is running right now, and I know it's important, but for the life of me I can't remember what it does.)
The whole Macromedia line minus Freehand (http://www.macromedia.com/)

Take a moment and read over those names. Can you figure out what any of them do without running them first? Without someone out right telling you what each one does?

This is why I like to say, "Name Everything Like A Kitchen Appliance". It toasts things, so it's a Toaster. It mixes stuff, so it's a Mixer. Use iterative problem solving on "Dish Washer" and you get exactly what the tool does. No ambiguity. The name might not be trendy, and may sound funny, but the user will know exactly what your product does before he or she buys it. And that means higher sales and free user experience points.

So, what is in a name? Your future.

Eliminating Manifest Files

Friday, September 24, 2004

If you have done anything with .Net and Windows XP you know the burden of the .Manifest file. Visual Styles support is essential for a professional looking application. But a manifest is nothing more than a text file filled with XML. An application's dependence on a manifest file creates a weak point in your application. Loss of this file will change how the program looks and reacts to the user. But, ninety-nine percent of the time I'm just irked because it's there when it shouldn't have to be. Why have two files to do the job of one?

Thankfully Visual Studio .Net 2003 gave developers a shortcut, allowing for the enabling of Visual Styles through the Application object. (C# example: Application.EnableVisualStyles();) This covers all the controls you use, but leaves out a few things. For starters, XP icons in listviews. The only way to get an icon to showup, in a listview, is to use a manifest file. There is absolutely no way around it. (I'm still not sure why MS decided not to support embedding of manifests in the VS IDE. It seems so logical.)

But there is a solution. You can inject a manifest file into an existing .Net executable. Now the world can be free of married manifest files. Long live the single EXE files with visual styles support. Thank you Acoustic, whoever you are.

The Quest For Completion

Monday, September 20, 2004

My name is Jared and I suffer from Leonardo Da Vinci Syndrome. (Now where are the free drinks?) You might ask how this could be. I completed High School and College like many people. Sounds like I completed something doesn't it. In reality you just wait long enough and school throws you out with a piece of paper. I'm not quite sure why you hear about so many dropouts. Perhaps they only see the expectations and not the reality. Back to my point.

Half-completed projects and unfinished designs are everywhere. (I can no longer make out my desktop wallpaper because of all the icons.) This is a problem no employer will look kindly upon. So, I have designed a personalized solution.

Note: This solution will not work for everyone. "Leonardo Da Vinci
Syndrome" is a psychological issue whose solution must be tailored to the person and
problem, to build on his or her personal strengths. If your issue was not
completing sex, programming may not be your answer.

My solution is simple. I will take my inspiration from the one thing I can consistently finish, video games. It's ingenious how a video game can pit one man versus an entire planet of identical monsters and have you still wanting to play after 10 mins. By breaking down a large task into smaller levels or tasks with finite completion points, anyone can conquer the world. (Actually, this is a proven technique for problem solving, but, like all things, it requires laborious practice.)

Step One
Major Goal: Complete Projects.
Programming projects lend themselves to my talents, interests, and future job, so I will choose programming projects.

Step Two
Arbitrary Breakdown: 5 military style ranks, right out of a game, consisting of 2 projects each.
I use five ranks instead of ten for the same reasons different pricing levels increase profits.

Step Three
Start Programming.

My first success was the program I use to track my progress. Boy was I wrong when I laughed at myself.

Private Jared

The Beginning

Saturday, September 18, 2004

In classic Red Dwarf I will begin this weblog with the destruction of my old weblog.