Archive for March, 2006

Wanted: Indian Innovators for web 2.0

Thursday, March 23rd, 2006

As more and more companies bring out great products in the web 2.0 arena, it becomes evident that innovation is all around. Except here at home. I was looking at this cool mashup of Google Maps with the physical locations of all web 2.0 companies, and one hting to notice is that there is not a single company from India.

India has more than 50% of global market share for IT sourcing and more than 30% in the ITES sector. Give that fact it is indeed surprising and disappointing that there are very few innovations happening from India, and probably none in the web application area.

Leave a comment if you happen to know any web 2.0 startup from India.

Interrupt Management

Wednesday, March 22nd, 2006

interrupt.PNGIt had taken me the whole of morning yesterday to arrive at the strategy and algorithm we would be using for optimizing the performance of a database intensive application. To be sure that the algorithm will work and perform well under all scenarios, I was just trying to run it through various scenarios, on paper. As I was in the middle of one of the scenarios, someone tapped me on the shoulder and said, “I finished the system architecture document and it is there in the version control system, can you take a look at it when you have time?”. Ah, it was so painful and frustrating to look away from what I was doing. But I managed to smile and say “I will”. And I started to run through that scenario all over again :(

That is a typical interrupt I am talking about. But interrupts can be of all kinds, some are really urgent while some can wait. But most often they tend to be productivity killers, specially in places where concentration and continuity are important. I had attended an interrupt management workshop a few years back. It was enlightening to realize how much we can gain in terms of productivity with proper interrup management protocols.

The most common problem about interrupts is the choice of meduim. Most often people choose to interrupt (or lets say, communicate) through the wrong medium. For example, the person who asked me to review the document wanted me to review it when I got time, but still chose a face-to-face communication over an email that would have been sufficient. The only way out in the long run is to have everyone learn interrupt management. For example, we now have an urgency-status attached to each mode of interrupt. The highest being a verbal face-to-face communication, and the lowest being an email. There would be others in between, like a phone call or an intant message. So before we decide to interrupt someone, evaluating how urgent it is, can help us choose the correct medium.

The other aspect is to allow for less in-your-face interrupts yourself. Like, not having those popup email alerts that say “You have new email”. I assume unless you are waiting for an email or are in a job where each email is super urgent, one does nto need that alert. And in most cases, even synchronizing with the mail server should be put off to every 10-15 minutes only. And if something is very urgent, people will actually call/meet you.

Then there is another thing we had tried, using a DND hour. This typically shows best results when the team is very large. We just defines a couple of hours in the day when you should nto interrupt your colleagues, unless really critical and cannot wait. Of course, each team member had the flexibilityt o decide if they wanted to participate so that nobody interrupts you during the DND hour. And for the large team it paid off, most of the programmers said it increased productivity and allowed better scheduling of discussions. But as always this is really a matter of the work culture you adopt in your organization and whether you see this as a good practice.

Enabling Java support in PHP

Saturday, March 11th, 2006

Note: This article was written after implementing Java (1.4.2_06) support on PHP 5.1.2 (cli) (built: Feb 28 2006 06:21:15)

As written on php.net there are two ways of integrating:

  1. Integrate PHP into Java
  2. Integrate Java into PHP

We will be talking about “Integrating Java into PHP”. This again can be done in two ways

  1. Re-compile php using –with-java=$JAVA_HOME (Ample of documentation availbale on net on how to compile php)
  2. Use php-java-bridge.

Enabling php-java-bridge is fairly easy and recommended as you wont have to compile php which might be already customised.

  • Get source for php-java-bridge from sourceforge
  • Decompress
  • cd to “php-java-bridge” source folder
  • phpize
  • ./configure –with-java=$JAVA_HOME
  • make
  • make install

This will install libraries in some folder eg /usr/lib/20050922 copy JavaBridge.jar java.so libnatcJavaBridge.so to php modules folder eg. /usr/lib/php/modules restart apache (service httpd restart) Look at out of phpinfo() and confirm that you see “java running” You can either write a php file and access it from your browser or quickly type echo ” | php | fgrep java at command prompt

Starting RCP application in your desired locale

Thursday, March 9th, 2006

This tip answers following questions:
1. How do you I start an RCP application in locale of my choice
2. I am starting my application in say ja_JP but still all default widgets (ok, cancel button etc), preference pages, help, update screens etc are coming in English.

Answer to both these questions is pretty simple once you know :)
In order to start an application in your desired locale you can either give a command line option (-nl=locale) or you can specify it in config.ini file (osgi.nl).
For more runtime options search for “Runtime Options” in plugin development guide.

Now answer to second question is “install language pack” and make sure they are included under dependencies of your feature/plugin. for ex to get prefence page or update screens in your language you would need org.eclipse.ui.workbench.nl1 and org.eclipse.update.ui.nl1 fragments.