Friday, April 18, 2008

On Software And Other Animals

Just wanted to bring to your attention that Amir Kirsh has just started a new blog called "On Software And Other Animals". The first post deals with the role of API in quality code. With Amir's experience and talent I really hope he finds the time to write often.

Wednesday, April 16, 2008

What the Mac?

Mac is full of surprises, just found out that Mac OS X file system is not case sensitive. It is case preserving, meaning that if you create a file calle MyFile.txt it will show it that way, but you can not put a file called MYFILE.txt in the same folder.

As usual I found out the hard way, when trying to check out an SVN repository that originated from Linux, which, as we know, is case sensitive . The error message that I have received was hardly useful. I really owe it to this post for the solution.

You live, you learn.

Saturday, April 12, 2008

Adjective Driven Development

A good friend of mine decided he wanted to try developing applications for the iPhone. So he got one and downloaded the 1.3 gigabyte SDK . Since he does not actually own a Mac machine at this point, he phoned me up to join him and try to get the feel of it. It sounded interesting so I packed my trusty MacBook, drove up to him and we settled down to watch the introductory videos.

We did not do any coding that evening since the SDK required a Leopard while all I got was a Tiger. We did however watch some videos, and boy what an annoying experience that was.

You remember the time when during the installation the program (Windows, or some other) would tell you how great it is and how it has got so many new features. It always seemed kinda unnecessary to me, I mean, I already bought the damn thing. That might have been OK back in the day, but those Apple guys, they really got over the limit, big time.

When you are talking to developers, especially those who are eager to start working on something new and cool, you should get to the point and take it easy on the adjectives and superlatives. Most of your audience will not even start really listening before they see some code in front of their eyes anyway, some Hello World application, something. They will not really get it until they get some hands on, that's where you should start and finish. Right there.

Here are some transcripts from those films, just to give you the sense of it:

"The iPhone SDK includes everything you need to build a next generation of innovative mobile applications for the iPhone. And with access to the rich set of APIs you can create applications with amazing user interfaces that leverage ground breaking multi touch and animation technologies available only on iPhone". "iPhone is running the most advanced mobile operating system in the world" and so on...

In Wikipedia articles those are called peacock terms. They are useless and usually sound phony. Especially when coming from an engineer.

Wednesday, April 9, 2008

Obvious

I have recently read a post by Seth Godin, whom I like very much. I thought it was good so I dropped a link to a friend of mine. In response, my friend told me that in his opinion the post was "nice, but obvious".

Indeed, some, or you could say most of Seth's posts are rather obvious, this is true however, somehow he manages to put things in the right words, that simplify some thinking you do about them later. You could say that also about his books. Obviously, you should only make products that are remarkable and quit when your career is really stuck, of course you should. Isn't this obvious?

In my childhood, books of Dale Carnegie were very popular. He gave some very useful advice too. For example: "always tell people what they want to hear". Ah, OK, I will. Wait, but what if I need to tell them something they don't want to hear. I guess I have a problem then. Or, "always prepare for your lectures, know your material". No shit.

Despite the fact that those books and ideas are mostly rather obvious I sometimes find them cool for their entertainment and motivational value.

When I read "The Dip", I was very excited. I was in the middle of some career moves in my life, so I felt inclined to apply some of the preachings that appear in it to myself. I had, however, hard time explaining the value of this book to my parents who thought that it was obvious that you had to overcome hardships in order to get somewhere and if you quit in the middle you get nothing but wasted time. It was plain obvious to them. After all, it's not that the book tells you how to distinguish between the times when you are hopelessly stuck in your job and should quit as soon as possible, and the times when you should just bite your lip and push like crazy. This you have to figure out all by yourself. Obviously.

Surprise me, on demand

Beautiful, simple and entertaining. A service is called Muxtape, and it just allows anyone to upload a bunch of tracks and create their own unique audio mix in seconds. No search, no ratings, no guessing your taste, nothing. You just pick up an name and you listen.

Saturday, March 22, 2008

Back To Backup

While browsing through the paper few days ago I saw an article by David Pogue praising the online backup service called SugarSync (see interview here). While it looks like a very nice service indeed (at least for countries where upload is not a problem), the article itself sounded really strange, really old, like it belonged to a fifteen year old PC magazine. It was not only the language that made it sound old, though names like "Magic Briefcase" do bring back some memories. It was the topic itself of keeping your data safe and synchronized that sounded like it belonged to the past.

With that feeling, I have picked up a 1993 PC Magazine I happen to have on my shelf, and looked for reviews of backup solutions from back then. To my surprise, I have found none. It was a Perfect PC 93' Edition and the recommended hard drives ranged between 200 and 350 megabytes. I did not find, however, any references on how to make your data safe while using them.

I said, well, maybe back in those days people did not really have anything important to store on those drives. Maybe they mostly used the computer at work and the digital photography was not yet that popular. So I skipped forward five years to 1998, again, the Perfect PC edition. Now the drives jumped to the 8GB range but still, no mention of back up software whatsoever.

I found this to be somewhat strange. I mean, what is going on here? We are using personal computer for quite some time now and for many of us it's a most important tool in our life, but we still depend on this tiny, cheap, mechanical device that spins like crazy at 10,000 RPM almost every hour of every day. How could that be?

I think this has happened mainly for historical reasons. During the last thirty years of personal computer evolution, there were never a period of time when investment in quality of personal storage would be profitable, so it just never happened. Large businesses have RAIDs, tape backups, version control software and search appliances. What do you have?

Few years ago, the answer to this question would be - nothing. A typical family usually had one or two computers with a single hard drive and a DVD burner each. The most they were able to do is to burn their documents and digital photos every once in while and write the date on it with a marker. If the hard drive was to fail, it was very hard to even understand what exactly was lost and what was backed up, let alone completely restore it. Backup software was not simple to use and was generally unreliable. The incremental backup options were confusing, and did not work well since they required careful management of recorded volumes and very rigid discipline.

A small example to the point. My father, being an organized person, has stored all the documents he worked with on the D drive, reserved especially for this purpose. Once he had made a backup of his files on a CD and the "DBackup" directory was born. After he upgraded his computer, adding a new hard drive, he copied the directory to the new drive but left the old one as well "just in case". Soon enough, father changed some files in the copied directory and created some new ones. When there came backup time again, he had to backup both directories since they were no longer identical, causing the "DBackup" to reproduce with each hard drive related metamorphosis until it turned into a complete nightmare. It was never safe to delete an old copy for the fear that it might hold something valuable that was no longer available in the new ones. This directory continued to haunt father for years.

Even if you did manage to backup your stuff on CDs in an orderly fashion, you still could not sleep sound at night. As prices of recordable CDs and then DVDs went down, so did the quality and the reflective layer often deteriorated leaving you with a nice coaster with unrecoverable remains of your precious data in less than a year. You could purchase a tape recorder but, in most cases, no regular household could afford the price.

That was few years ago, since then we have seen that well known slope in price per gigabyte chart which changed the situation significantly. Drives grew larger and became cheaper. Every time you bought a new drive it was a double, triple and quadruple the size of the previous one. They were cheap too. One would think that keeping your data safe would now be easy as a feather. Mmm, no, it just meant that more data was lost every time the drive snapped, taking with it more photos, documents and home movies than ever before.

So finally, today, mid 2008, we have got a backup service David Pogue would consider useful. Only today, the latest edition of what aspires to be the most advanced operating system, the Mac OS X, would include such a basic feature as the TimeMachine, and couple it with the network hard drive. Only today we are starting to see the beginning of truly useful integrated back up solutions for home users that do not require superior technical knowledge and extreme discipline to use.

Well, it's about time.

Friday, February 15, 2008

Equality and Usability

I might have called this one Symmetry and Usability, but I think equality is a better, term for what I am about to describe. We all know that when desigining anything that has to do with human interaction we have to highlight the more important parts and hide the less important things that are only used occasionally and infrequently. Here are several examples of severe violations of this important principle.

Very recently, I was told about a very cute site called the "Songza". It's a very nice service that allows you to listen to the music via YouTube. As we know, there are quite a few music videos on YouTube, which are mostly of poor quality and rather annoying to play. The sound is generally good though, so the Songza only play the audio from the song, turning it into an on demand music channel, clearly one of those ideas I wish I thought of first.

The site is nice too except for one thing. When choosing a song to play from the list, it presents this strange on screen selector that allows you to either play the song, rate it, recommend or add to play list. All of those functions are indeed cool and necessary, however, I bet in most cases I would want to play the song, so having to "click - select - click" every time would be most annoying.



And indeed it is.

The play function is clearly the most important one here. You have tons of free space, why dont just put it right there and move the less important buttons somewhere else.

Another great example comes from the manufacturers of cheap mp3 players, oh, those never cease to amaze me. I got this one a few month ago, cause I needed a simple player for something, and it is absolutely and remarkably annoying to use.
If you look at the picture carefully, you will see that play and record buttons are exactly the same (small) size, side by side and almost completely equal.

Now guess how often do I want to record something with this thing?

You are right.

Never.