Posts Tagged 'Programming'

Coffee machines & Error messages

Coffee beans

There is a new coffee machine in the office and it looks like a space age gadget.  With the new coffee machine in place the trusted old coffee machine was abondend/retired for a short duration. The old coffee machine made a great come back by engineers popular demand. ( Is there a managements truth here? )

There is a reson why the old coffee machine was so popular among the engineers. It had pretty simple interface and most of all the error messages were clear. So everybody knew what to do when things go bad. For example when the container gets filled with the grounded beans, the old machine says

Empty the drawer

For the same condition the new coffee machine says

Ground beans full

The message “Empty the drawer” is simple and to the point. You have to empty the drawer to get the fresh cup of coffee again but the message “Ground beans full” is not direct and message is not clear and ambiguous. It is not asking the user to empty the drawer. I first thought that the grounded beans are full and I am going to get fresh cup of coffee now, only to wait for eternity.

We humans are designed to understand simple and directed message, I hope programmers/designers understand this and write/design more simple and direct error messages in future.

To be or not to be

To be or not to be… that is the question.”

This question now has an answer and it is 0xff and there is an explanation for this unlike “the ultimate answer 42“.

0x2b | ~0x2b = 0xff

(via : embedded muse)


This is from an ad for Axe.

if ( you == understand.this ) {

A more clean version of the same given by programmers.

if ( you == this.understand ) {
if ( you.understand(this)) {

Are you a good programmer?

Arsenalist make a blanket statement about the programmers from India in his article on outsourcing . Need not get offended by the issue raised. Instead one should ponder if he makes a good programmer or lousy one.

A good programmer will:

  • Read good code and appreciate it.
  • Embrace simplicity.
  • Embrace aesthetics.
  • Embrace review process.
  • No ego.
  • Collaborate and be team player.
  • Communicate properly.
  • Read Code complete, Pragmatic Programmer.
  • Visits slashdot and other tech blogs.
  • Do not have superficial knowledge.
  • Have common sense.
  • Develop a taste for programming.
  • Learn multiple languages.
  • Learn form the masters.
  • Optimal use of meetings.
  • Do not blame on compilers!
  • Fixes the issues at source.
  • Will have meaningful debug sessions.
  • Will be a part of religious war.
  • Will not be a part of religious war.
  • Uses version control effectively
  • Does not repeats himself
  • Will not become a manager!
  • Do not get defensive on review comments.
  • Do not entertain BS.
  • Do not tolerate lousy programmers.
  • Are lazy.
  • Do not live on jargons.
  • Will write test cases.
  • Will comment.
  • Will use correct tool.
  • Will develop tools.
  • and many more….

Project recovery

recovery key

At times we get that sinking feeling that the project is not going the right way and there is need to have course correction. Some projects meander in such a way there is no course correction but to change the destination.

Steve McConnel gives the three fundamental approach to rescue a project that is going wayward.

  1. Cut the size of software so that you can build it with in the time and effort planned
  2. Increase the process productivity by following on short term improvements.
  3. Face the fact that the software will not be ready on time, slip the schedule and proceed with the damage control, possibly including canceling of the project.

Combining the above three we get rule to rescue the doomed project.

Drop a few features, increase productivity and slip the schedule as needed.

Best programmer

July 4th, it is independence time.

Watching the Independence day made a riot of laughter on that day! The hero writes/creates a virus that infects the alien computers. Beautiful. I wonder how he knew the machine architecture, operating systems another other mundane information about the alien computers. This is one amazing piece of artistic liberty.

Meanwhile, I here people are uneasy to believe the logic in Rajini’s Shivaji!

One more bug. One more absurd web interface.


Tried to fill the online application for a home loan at ICICI bank website. I was surprised that I was unable to submit my application thanks to brilliant design/code/interface/ whatever.

As process of submitting my application I had to select the area from drop down menu, but to my surprise I find no entries in the drop down menu (There is a dynamic relationship between the area and city). and this is supposed to be a mandatory field in the application. Amen.

I hate to see untested unmaintained products in the public domain, Mostly they do not have fall back options, no error reporting mechanism, bad interface, not intuitive design. These things make the life of the user suck.

At present all I am thinking is there are no bugs in their security modules.



Thru Lens


View Karthikeyan S's profile on LinkedIn
Alltop, confirmation that we kick ass