Friday, April 18, 2008

On Demand

We are moving towards a world in which every movie, song or book is available to you on demand, instantly and at a reasonable price. In such a world, the biggest question for you is "what should I demand next"?

This is where the magic word "social" comes in, in most cases meaning just your good old friends. I know many people theses days that shun this word, staying off the mass market social networks as well as niche communities. In most cases these people state that they have nothing to gain from the lame online social interaction and they are way better off in the old fashioned, dark and dusty whiskey bars.

And I heartily agree, but...

In the 'on demand' world, social networks, in the wide sense, are the main demand drivers using a wide arsenal of technologies and methods to help you determine what you should demand next. I would like to talk about two methods that are used either separately or together I will call "recommendations" and "activity" based social demand models.

The "recommendations" model allows you to actively recommend someone you consider a friend some product or service and waits for the friend to pick it up counting on existing level of trust between you. Do not mix this with anonymous statistical recommendations (also sometimes effective) that are used in the likes of Amazon and Netflix and typically having the form of: "people who bought X also bought Y". I am not talking about those, though they undoubtedly have their place under the sun.

The "activity" model is based on your ability to watch your friends actions and find interesting things that they have done lately to follow on. Though it might seem like this has anything to do with the latest advancements in web technologies that allow and encourage everyone to open their life to the web, it is something that has been going on forever. Effectively, every time you tell your friends about something you did ("I went to the Zoo last Monday") and you express your opinion about it ("I loved it, the zebras are so cute"), you provide an opportunity for your friends to perform the same activity and build up their expectations for it.

The main difference between the models is that the first demands an action to come from the side of the recommender and the second uses the nosiness of the potential recommendees. Both models can be used together as they indeed are in Facebook and Boxee, the social media center. The latest success of follower based services such as the Twitter, as well as the good old blogs and live journals are all points to the case.

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.