Never work under a dumb boss

September 1st, 2008

I am sure all those working normal jobs have at some point cribbed about how dumb there bosses are. No boss can be dumber than one who wastes the time of his team. There are several ways to waste time. I will not elaborate on those here. If you get a dumb boss, move on. Smart people are hard to find, but they are always good to work with. Hunt such smart people and work with them. Forget the rest. Respect your time. Someone who doesn’t respect his own time, and doesn’t care about yours; is wasting your life.

It is just your very immediate boss that matters. How do you know if you are working under someone dumb? Well, I am sure most of you can tell, but still: someone who wastes you time in needless tasks, isn’t confident in the skills of their team, takes all credit for things that go right, and blames the team for everything that goes wrong. The easiest way to find someone unfit as a boss is if the person doesn’t take responsibility for his team.

All hail John Resig

August 19th, 2008

John Resig is the creater of jQuery. jQuery is java-script library. What makes it really wonderful is that it lets you do a lot of dom modification is just a few lines. Additionally most of the cross browsers issues are taken care of by the library. That means you spend more time doing what you want.

No. This site does not use jQuery. But I use it at work, and find it awesome. If I am to redesign nunespascal.com jQuery will surely come handy.

Keep meetings short

July 4th, 2008

“Meetings are the best way to kill productivity and crush creativity so keep ‘em short.”

I read this on a blog post today, and couldn’t agree more. Why? Well I have wasted a lot of time in unproductive meetings lately. They have wasted my time, wasted a lot of energy and as for creativity; as a result of those last few meetings I have come to believe that: The creativity of a group in a  meeting comes down to that of the least creative amoung the group, maybe even lower…

Sadly meetings cannot be totally done away with. You will surely find a lot of sites that will give you a lot of good ways to conduct meetings. But I prefer them short. Set a finite time so that you don’t get carried on. Communicate what you need to. If something needs to be talked out, and you run out of time, schedule another meeting, the next day if possible. This will give everyone involved a lot of time to think about what they have to say. Should avoid beating around the bush. Ranting away your thoughts in a meeting will very often waste the time of everyone involved.

Yes I know that short meetings and rescheduling is not always possible. But when possible, it will help a lot by increasing the intellectual thought put into the ideas to be discussed in the meeting.

Everyone should know programming…

June 17th, 2008

Since computers first appeared, they have gone on to make human life better and easier. What troubles me is that still only a handful of people can really tell a computer what to do. Yes we are way better than a few years ago; but still a lot of people don’t know how to harness the power of a machine to solve their problems. Make their day to day life easier.

There will always be those who know tools better, and can solve problems faster. But if the commoner was able to instruct a computer how to solve a problem, we would be much better off. What keeps the commoner away? Computers still cannot understand natural language. We can reasonably state that it will be a long time before they can understand natural language instructions and code for themselves. However as languages improve and allow people to specify instructions at a much higher level, giving the instructions should be easier. I hope this enables more people to program.

The other remedy to the situation is that we learn to speak the language of computers. Fundamental programming logic should be a part of school education. Just as kids learn languages to talk to other humans, it is necessary that they know how to talk to computers too. What do I mean by fundamental programming logic? Anyone who understands programming in one language, understands how to communicate with a computer. It is then no big deal to learn programming in another language. Just a matter of picking up the syntax.

Why is this knowledge needed? Machines are better at solving certain types of problems. Excellent candidates to carry out repetitive tasks. But people who are oblivious to the world of computers and programming, often don’t realize the many ways in which these machines can help them. As a result a lot of things that can be automated are still waiting for someone who understands both the task and computers to automate the process. Tell the machines how to do it once… and no one will have to waste their time doing it in future. To make that future happen, everyone should know some programming.

And I am back!

June 16th, 2008

Yes, I have been gone long. Given how the web works, I doubt if ppl are still reading this site. So for the blog, this is a new start. I love expressing my ideas in words, and will always do so, talking to a friend, chatting on some IM or here.

Q: Where have I been?
A: A lot of places. Amsterdam, Antwerp, Brugge, Brussels, Cologne, Dinant, Paris.

Q: Was that a vacation?
A: No. I was working in Antwerp, for AXA. It was a nice place to work.

Q: Did I learn dutch or french?
A: I did not. Most of the people of Antwerp speak english, so I managed just fine. I did learn a few words and phrases though.

Q: Will I be going again?
A: No. I quit that job. Joined a startup Finacus, that makes financial products. Learn’t C# there; using it to develop a RAD framework. Its fun to be working with friends here.

There will be a lot more blogs, rants, cribs here soon…

The more problems you face, the more you learn

August 3rd, 2007

Yesterday was one of those days when a lot of things went wrong. An investigation into the exact cause of what caused the trobule taught me a lot of things I was not aware of earlier.

Often when things run the way they are supposed to, no one is bothered about how they run.
When you flick a light switch you expect the room to be lit. No even thinks at that moment the number of things in the background that need to be just right for it to turn on.
You need to have power-supply. There needs to be a particular minimum voltage. Your bulb needs to have a proper filment… if you really want to think more… the bulb needs to have an inert gas in it and all..Do we even have the time to think of all this every time we put on a switch?!

You know what the problem with problems is?! Some people learn from their problems, some people just don’t. You can solve your problems yourself. Or you can look for an easy way out. Lets take the same example: The bulb in your room does not turn on. You would probably check your power supply(I am assuming any human would do this basic check before accepting that the bulb does not work). Now you have a choice, you can find why there is no power… or you can take the easy way out; just call an electrician, and he will do it for you. If you call an electrician you learn nothing. Then there are those times when you are left without much of a choice, like my case. When the electrician is just not available. You could live without the bulb, which would be really messy. Or you could call it a bad day and get down to solving your own problems. In the process you learn what an electrician does.

Learning from other problems is like studying history. Its really good to know it… I don’t dispute that. But it is so damn boring. But solving your problems… your own way; is fun! It feels great when you pull yourself out of a mess. Now historians will tell you, you could have stayed out of the mess in the first place. But when you goof around, you put yourself in a bigger mess… you learn more. The bigger a mess you are able to pull yourself out of, the better you feel.

Be goofy! Learn more!!

Crazy code

June 19th, 2007

Programming, as I understand it, is something that needs one to solve problems by analytical thinking. But one thing that I have noticed recently reviewing code is that a lot of people code in a pretty haphazard, “just finish it” kind of way. What happens due to this is that, you end up with a lot of crazy code. Crazy code?! Oh, this is not code that won’t work. It will work all right… cause that was the objective from the start right? to get it working. What makes it crazy is that, it present to you the work created by a shut-out mind. Sometimes it feels like the person was almost brain dead or highly doped. Yup! I find no traces of the logical work by a thinking mind.

There will always be those who are no good at programming. Who are just doing a job with no love for the programming and logic that goes behind it. I can’t seem to find a way to help them, but what was more shocking was that, a lot of good programmers too wrote crazy code.  Why?! One thing that totally kills the thinking mind are deadlines set by a non thinking mind. When you work in a services company, and have clients who always want the code ready before they thought of developing it you get mindless deadlines. Yes, you can argue; you can get extentions… But whenever there is a deadline, that leave no scope for a programmer to sit there, think about the situation and decide the best solution, you are bound to find crazy code.

Who pays for it?! Before we talk about who pays, lets see what all costs we are talking about here. I have found that you spend more time writing crazy code that writing well thought out code. Yes it may appear that you are just scribbling on paper when you should be programming… but that saves time. So the first cost comes in extra time spent by programmers. The code is inefficient, so system performance is degraded. User experience will be bad and you are bound to loose value. This code is difficult to understand, debug, modify, fix, maintain… they all add to a lot of extra cost. In the end you will hire more programmers, tighten the deadline, mess up the code even more, and come up with a crappy product. Losses losses losses….

If you are a programmer who wants to avoid writing crazy code, I suggest writing a small plan on paper, needn’t be a complex flow chart or something, but just a few lines of step by step documentation of how you plan to solve the problem at hand. Before this is ready, don’t even start coding. You are bound to miss out a lot of things. This plan is not foolproof, but avoid a lot of logical errors.

If you are someone who sets deadlines…. GIVE YOUR PROGRAMMERS TIME TO THINK!

Some explanations…

June 5th, 2007

This blog has not had any posts for sometime now.

Where was I? No where far, a bit busy yes.

Didn’t I have any time to write? I did have some time, but I was trying to do something, rather than just blabber for a change.

Did I come up with something cool?! Not everything works out the way you want it. Somethings don’t workout, some take longer than expected… Some just need a little more thought. 

Vague! Keep reading… this place will have more answers. 

Code phata!!

June 5th, 2007

I don’t know where and when this phrase originated, or how it came to be part of the indian IT scene. But a very comman phrase that many must have heard of was “code phata”.. Phata is a hindi word, that literally means tear. Now we all know that compueter programs are not written on paper, and it cannot in the normal sense tear. So when does the Indian IT engineer use it?! It is used when the program crashes or throws exceptions. So when someone yells “code phata”, they have found a bug; that causes an application to crash

When I heard it for the first time, I thought it was something that just my programming team used… one of those phrases that a team develops when the work together for a long time, but later I learned that they all had picked it up from previous work places. Being a little inquisitive, I spoke about this to college friends who are now in IT too. And they all had heard it at their workplaces too.I have not been able to trace down the origins of this phrase, but if you are an Indian IT engineer, chances are very high that you have heard it.

Why am I writing about it?! Well, it is not popular enough yet to be included in a dictionary yet… lets say the dictionary of Indian IT slang! But who knows, one day it may just make it. I guess this is how language develops, borrowing from other languages where there is a confluence  of cultures; coined by groups who need new words and phrases to communicate cause the language does not offer simple alternatives. To catch a jargon in the making would be quite cool, isn’t it!

To all you programmers out there, hope you keeping writing great code, and that you don’t hear ppl yelling “code phata”, around you.

What you cannot do yourself isn’t easy!

April 4th, 2007

If you can’t do something yourself… then it is not easy. And you have to no right to call it an easy or simple task. Does this happen only to me, or do you too find people who call certain task easy? Tasks they know nothing about, and have no means of completing or at times even attempting. I can’t get the logic! If you have never attempted something, how can you know it is easy?

If you are tempted to call a certain task easy, attempt it once by yourself. If you can finish it of quickly and without much effort; then go ahead and call it easy. Before you say, a plumber has it easy, try fixing your own taps. Before you say, a housewife has a great time just sitting at home, try doing all the chores yourself once. If you fail, appreciate the skill of someone who makes a difficult task seem easy.

I have been amazed by all the different skills that humans can achieve. Skilled people make the most difficult tasks seem like an effortlessly natural act. That doesn’t reduce the complexity of the job one bit, but it does give a testimonial to their having mastered the job. To walk up to a person whose job you don’t understand, and to tell him that he has it easy in life; is an insult to that person’s skill. But worse than that; it shows how stupid the person passing the remark is.

The next time you are tempted to call as task easy, think if you can manage it all by yourself.