“Before you speak, listen. Before you write, think. Before you spend, earn. Before you invest, investigate. Before you criticize, wait. Before you pray, forgive. Before you quit, try. Before you retire, save. Before you die, give.”

Saturday, March 26, 2011

"Limitless" and real life

Last Sunday I went to "Limitless" (trailer here) and enjoyed the movie.
Would I like to be in the "zone" all the time ? Completely focused ? Very calm ? see "50 moves" ahead of everybody else ? Win big in the stock market by making accurate predictions ?
Just take a pill :). The only issue ? It will kill you in a few months.
The hero in the movie is enhanced by this pill and finds a solution to create this pill without side effects before the pill kills him. This is what I call a smart investment :).
If only it were that simple ...
Unfortunately it is not that easy in the real world but as well as financial investments (which take time and intelligence as well and know nothing of ;) ) there are educational investments. Things that you learn that can help you learn more things and advance you ..
I recently joined a site called ProjectEuler that is basically giving you some problems (more complicated as you go) and you get to several levels. I am at level 0 with only 8 problems solved but I find the challenges pretty interesting.
Of course you need to write code to solve those issues and I mostly use Ruby .. because it's faster. How long would it take to solve the problems without a computer ? I really don't know and I think just having the "Limitless" pill can tell. Of course you understand the algorithm but your computation skills suck.
So the "Limitless" pill is in my opinion a fast computer and a good programming language you can use to communicate to it (Ruby,Python.Java .. whichever you feel comfortable with). Learning and using A.I. techniques can help your limited algorithm knowledge.

For instance you can solve the famous NP complete problem : traveling salesman path with genetic algoritms (Here is a solution) .

So the computer can find solutions to what your mind can't effectively find.I thought that in order to solve this problem you needed discrete mathemathics knowledge, graph algorithms knowledge and of course complexity evaluation knowledge.
Well you can't actually use it because it's a NP complete problem .. that is it's not possible to actually prove it mathematically.

Last but not least while researching some AI stuff I came across a knowledge tool I like
It's called Wolfram and it is great for finding scientific information about stuff. I really liked it and I think it would be nice to integrate with a commercial site. The applications can be amazing.
Still I want to point out something else. I tried working on difficult solutions before while working in an open space environment with eyes set on my screen from all around me. Now I work in a small office that is very quiet. I am starting to find solutions to problems I could never
find solutions before, seeing patterns , cleaning old rusty code.
Once and for all the actual office environment does matter. No great writer ever wrote with other writers in a open-space office. No great programmer/hacker did it in a bullpen 1 feet from the colleagues. Mental focus is critical to problem solving.
Of course when you are coding another J2EE application that needs to run on a 8 year old server with 2004 technology and which will probably be used just for 1 year and does just CRUD it is hard for any actual programmer to justify having his own office , a quiet environment, books or other educational investments. Been there done that.

Saturday, March 19, 2011

Finally a manager I like

As I already mentioned I am a fan of Joel Spolsky and of Peopleware.
I do believe in getting into the zone and developing quality code without interruptions. I jumped ship to a smaller company in order to actually develop code without doing 1 meeting/day.

My ex-manager used to call 2 meetings /day when things were not going as fast as required.
Then one of the members of my team asked : When are we going to work then ? Things are pretty desperate now .. it will go worse with more meetings . Sadly this guy was the first to be sent home when the time came.
Right now I am doing Scrum and I really enjoy the work from home approach to implement the caves and commons pattern .. when I really need to focus and get things done I stay at home.
The weird part is that more and more managers claim that the more you are interrupted the better the work you deliver ... my opinion is that communication time and "zone" or "flow" time must be balanced carefully and more to the zone time for knowledge workers

Jason Fried from 37 signals pretty much nails it with this video:

Sunday, March 13, 2011

Work from home ... and the laptop alternative.

It has been a long time since I have not posted. Between my busy programmer/engineer life , my fitness schedule and my time spent reading about finances/investment I do not find time to log my thoughts.
So this year I joined a new company a small startup (which will remain nameless for the time being).
One of the benefits was a very expensive state of the art Dell Precision laptop equipped with SSD and 8GB RAM .. something I could not afford to buy with my salary as a software developer and the prices in this city.
The other benefit was working from home (no limit there) . As I am obsessed with "the zone" you can imagine that I took that benefit and took a day off .
My vision on laptops was the following : Very expensive equipments that are only effective for the rich guys to check their emails and do some office work. I could buy my Core i7 computer for about 700 Euro .. a laptop would have been 2200 Euros at least.
Once I was given this laptop I found my self working on company's projects (or personal stuff ) whenever I had time. I developed a user interface while waiting for my car's 10.000 km maintenance ... I coded in restaurants and of course from home.
Well there are some drawback normally : like no dual monitor, no good keyboard mouse , no ergonomic position.
Thankfully at work I have a dual monitor setup with a docking station allowing me to plugin whichever keyboard I want.
So I had a blast working at home one friday .. 12h of uninterrupted productivity.
The only drawback : You can't stop and go home ...you're already there.
Of course Skype contacts and email helps .. and the fact that everybody gets to work from home as they please.