How has it come to this?

How is it that the person who wrote one of my favorite blog posts of all time on the issues of positive thinking and positive association, has become the victim of threats that cross all sorts of lines. Whatever the details on this huge controversy are, the bottom line is that I hate to see one of our fellow usability geeks get hurt.

However, the reaction by Kathy and many other bloggers sympathetic to her cause has been to abstain from writing in their blogs in a supposed act of protest and support. I frankly don’t get it. It’s just free speech.

I do not agree with most of Malkin’s political opinions (with the notable exception of certain free speech issues), but there is one thing she said recently in relation to this incident that I do wish to quote here:

My response to this and other endless slurs and threats–most empty, some serious–has been two-fold:

1) Report the serious threats to law enforcement.

2) Keep blogging.

As I have said before: “There is a time to be tolerant and there is a time to draw lines. If you don’t draw those lines, bullies will be emboldened.”

That is my unsolicited advice to those now cowering in the face of anonymous commenters and assorted nutballs who will never go away.

Would I stop blogging as Kathy has done? Hell no. The only thing that stops me from blogging is outright laziness, lackawanna, and deep cases of ennui. My reaction to such hostility and negativity has traditionally been to completely ignore the offensive material and continue forward. In fact I thought twice about posting this issue on my own blog here, because to an extent I am just perpetuating the flame war begun by the trolls that began this mess.

Although maybe the silence is in itself a form of speech. But I think keeping the blogosphere full of positive energy is better than letting silence and negativity rule.

Code for a lake or an ocean? Depends what you’re fishing for.

Recently some colleagues of mine were asked the question:

“Given the (relatively) small percentage of OS X installations today, why would it make sense to write something using Cocoa? Any time you’ve tied yourself to an OS you are in danger of marginalizing yourself.”

This is a good question, worthy of some consideration here. I think that question is best answered by asking oneself who their audience is, and you could indeed be catering to a niche market. Are you dealing with a lot of Mac users? In that case, Cocoa may be the best choice. Personal satisfaction is a factor too – I know some developers who just like working in Cocoa and choose to do so despite the fact that they are OS-tied and marginalized. I don’t think they care one bit.

Sometimes nice markets can thrive. Just make your apps compatible using open standards or supported formats for files and communications so that they integrate. It depends on what you’re fishing for. You can catch some big tuna in the ocean, but there’s plenty of catfish in the pond as well.

Or on the other hand, are you dealing with a bunch of nerdy scientists that insist on using every platform known to mankind including BSD and Solaris on their desks (as I am)? Probably in that case you want a web app, or a Java client, or at the very least a core base of cross-platform C++ code and putting different faces on the thing as needed.

The tradeoff has to be: Do you provide a ‘good enough’ product to the widest possible number of users? Or do you provide the best of breed product to a smaller target that demands it? Of course in most cases the answers will tend towards the widest number of users, but sometimes those niche areas need filling too.

Of course the point is kind of moot for me personally since I only deal with web apps which should, if done properly, be nearly universally accessible to any web browser or related device… πŸ˜‰

A Class of Objects

I was trying to think of a straightforward explanation of the difference between a class and an object (in OOP terms), and came up with this:

Objects are specific instances of classes. When you create a class, you are literally creating “a class of objects.” For instance, let us create a class of double basses. All objects of class “double bass” have certain properties defined: Maker, city, year, varnish, string length, etc. But this particular bass was made by Carlo Testore in Milan in 1710, has a deep reddish varnish and about a 42″ string length. This Testore double bass is an object of the class “double bass.”

Now I just need a bass player to explain OOP to.

Stick a fork in me

I’m done. I was up until 3:30 AM last night finishing up final papers, got three hours of sleep, and woke up and kept at it until just now. I am so done with this quarter. Now on to the task of thinking about absolutely nothing for a day or two. My brain is cooked.

TextMate for SQL

Just going on record as saying TextMate is my best friend right now. Writing SQL with this thing is a snap. Select column of field names with Option key, press backtick, and it snaps the backticks around your field names. Go on – continue typing. Typing is matched for all columns. I have a lot of varchars here – varchar(30) to start with, and the comma. This gigantic table is almost done – just modify my data types as needed, finish up my primary key, and go on to the next task. This was way faster than typing everything out…