Friday, October 2, 2009

Wednesday, September 30, 2009

Fiddling and dancing

Whatever you do, do not miss the last minute

Tuesday, September 22, 2009

Sienfeld infographics



Not mine, it is originally here

Tuesday, September 15, 2009

Tuesday, August 18, 2009

The zen of dojo.connect

One of the most used functions, yet least thought of in Dojo is dojo.connect.
Still, this small function is one of the best demonstrations of the power of the dynamical nature of Javascript.
Basically, what this function does is allow its users to call any function in any context, whenever a given function at a given scope was called.

Think of that last sentence again, up till now, if function T needed to be called due to the fact that function S was called, you had to follow the following steps:

1. Hope that the creator of function S provided a notification when function S was called

2. Hope that the creator of the object that holds function S provided an API that allows you to register to that notification, and made that option a public one.

Too much here relies on the API design capabilities of the creator of the function S.

Dojo solved it.

Dojo.connect is all about removing the need for relying on the good design skills of other people but you. Generally speaking this function takes function S, puts it aside and replaces it with a dispatcher, that calls all the T functions after that dispatcher first calls function S.

So where's the glorious dynamical nature of Javascript? function S is part of an object, let's call it O. Prior to calling dojo.connect, O.S was the function that was created by the author of the function S. After the call, O.S is another function, a function that dojo.connect injected there and this function does just I've described previously. Thus the API's of O are not harmed, but now there's no need for hoping whenever you use code that you are not responsible for and cannot be modified by you.

Tuesday, June 16, 2009

Degenerative America

Only in America

Friday, May 8, 2009

Book Review - Web Form Design: Filling in the Blanks

I got the book "Web Form Desing: Filling in the blanks" by Luke Wroblewski a few weeks after it was published and read it several times since, but recently I got to an understanding that this book is much more then a design / UI best practices book.
In its essence this is a book about reducing the entropy as a way to convey proper information. Let me explain this point.
A form is a visual element that usually distracts the user from his main purpose, and thus needs to perform some sort of a context switch in the user's mind, and as with every context switch, it gets more and more costly when the new process needs more information and time to process. Now, a form has a lot of building blocks, part are explicit (like the fields) and part are implicit (like label positioning) and every little thing that is reflected on the design of the form, effects the "price" a user needs to pay in order to process it.
In my mind, Luke had found the right way to minimize a form's noise thus achieving a reduction in the form's entropy, and as any information theorist will tell you, less entropy means more information. Basically, since the brain is the decoder of the visual information, what Luke had discovered is how to properly code the form's information in a way that would result in an optimal signal to noise ratio in the brain.
Moreover, this book combines this information theory concept of getting the information out of the signal while reducing the noise with a zen like approach that states that everything matters, and in order to get to perfection, you can never say "it doesn't matter" on anything, because anything matters. If you think that it doesn't matter, then search deeper for the meaning of the differences between the different choises you confront.
I guess that Luke didn't intend to write a book about information theory and zen, but as I see it, this book is the projection of the combination of these two things on the web forms design axis.

This is an excellent book, for anyone, and especially for those that have a hard time living with mediocor solution when a perfect solution is right around the corner.

Update - this is what Luke wrote me as a response to this entry:

Thanks Yoav, appreciate the review and the lens you took on it. In essence, you hit the nail on the head: minimize the pain of the context shift of the form by not ignoring any details so that you can get people to their real goals :)

Monday, March 23, 2009

Foreign Film Dubbing - Canadian

One of the funniest scenes in one of the funniest TV shows - "who's line is it anyway"`s cast is doing a foreign film dubbing - the audience choose the foreign language to be "Canadian"

Wednesday, March 18, 2009

On religion, science and engineering

Religion revolves around the question "Why things work"
Science revolves around the question "How things work"
Engineering revolves around the question "How to make things work"

Saturday, March 7, 2009

An example of british understatment



...Beckenbauer obviously a bit of a surprise there...

Absolutely brilliant