Saturday, June 30, 2007

What type are you?

Question: Have you ever got into an argument or witnessed one over how to solve a particular problem.
Answer: Yes, a million times!!!

This excellent blog tries to explain the reasons between such conflicts. It defines two distinct personalities on the basis of techniques used to devise solutions to problems viz. Incrementalists and Completionists.

In my professional career so far i have seen numerous examples of both the types and i have also experienced the conflicts between the two considering i am an incrementalist myself.

Monday, June 25, 2007

Steve Jobs

I must confess I am a big fan of Steve Jobs. Although i don't own a single product made by Apple (yes thats true no macs, no ipods and certainly no iphone) but i totally worship the man. Time and time again he has been criticized for being a salesman, a showman and for his skills of persuasion also dubbed as Reality distortion field. The question here is, which CEO/leader isn't? Look at Steve Ballmer, Bill Gates, Larry Ellison, et al. All these guys are supremely confident about their products and its this confidence which has got them to where they are.

The key to his success is his fighting spirit which is substantiated by his rise despite hitting rock bottom after he was fired from Apple(his own founded company). I guess his background too has contributed to his nature, i mean being put up for adoption just a week after birth by your own blood mother is not the most pleasing thought. This itself would have broken a lot of wills.

His technical capabilities have been under the scanner too. So often i hear people say "Bill Gates at least wrote DOS what did Steve Jobs do?". The way i like to see it is, Apple as a company is still going strong and year after year they churn out quality products (they do have bad days like the safari edition for windows but everyone makes mistakes ;)) The point being, Apple has given us great products and they all have been under the leadership of Steve Jobs, so lets give him some credit for it.


There is an interesting post by Seth Godin on Jobs, look it up. I also like his concept of a 'rifter', makes a lot of sense.

Friday, June 01, 2007

Dual Monitor setup

My background in electronics and lack of cash during my engineering days taught me very important lessons -- never waste hardware and always utilize hardware to the fullest. In fact i am big fan of the google strategy, use cheap and low end hardware but write intelligent software to compensate for the hardware/network deficiencies.

So when i saw this discarded 17th inch CRT monitor lying around in the office (everyone in our office has an LCD monitor along with a docking station, kbd, mouse, etc or they prefer to work on laptops directly) i just couldn't stand it.

My earlier setup comprised of a docking station connected to an LCD monitor using the VGA connector. A little investigation revealed that the LCD monitor also had a DVI-D connector. Since all my hardware is from Dell the docking station too had a supporting DVI-D connector. With the prerequisites validated i sneaked into my IT admins office and dug through heaps of cables to find the correct DVI-D cable to complete the loop. Trust me this was the only challenging task in the whole process. During my search i found all possible conversion connectors but the cable i needed was brilliantly hidden in the furtherest corner of a drawer. Now armed with the cable i connected my LCD monitor to the docking station via the DVI and the CRT monitor via the VGA and voila(!!) my dual monitor setup was ready.

One misconception about using dual monitors is that everyone presumes a 2x increase in productivity. Now this is highly impossible since you still have the same input devices (kbd/mouse). Realistically i would assume the increase in productivity to be in the range of 1.25x to 1.5x since you just save on the time required to analyze or sort the output (i.e. content displayed on the screen). Also we forget that the brain still processes data at the same rate, additional monitors don't influence our ability to think they just facilitate better visualization.

Friday, May 25, 2007

Ingoing and Outcoming

Aren't we always on the lookout for new English words. Recently during a team meeting a member blurted out "Ingoing and Outcoming" instead of "outgoing and incoming". Of course we had a good laugh at his expense but then i wondered if we could some how incorporate this in the English language. How would its usage be? After some thought this is what i came up with:

1. Ingoing:

Imagine you are talking to someone about the changes that need to go into a product version, so you ask him, "Hey what are the ingoing changes?".

2. Outcoming:

Imaging you just missed an important meeting to decide the future of a certain feature from a product, you ask a fellow teammate, "So what were the meeting's outcomings?"

Sunday, May 06, 2007

Python Presentation by Alex Martelli

I recently came across an excellent presentation on Python by Alex Martelli. This presentation was part of the Google Tech Talks series on Google Videos. Check it out!

Saturday, May 05, 2007

world's smallest countries in the world

I always knew that Vatican City was the smallest country in the world both population-wise and area-wise but never did i think of the 2nd and 3rd. Recently someone in my office raised this topic which sparked my curiosity, so here it is.



The most interesting entry there is of Monaco. I never knew it was a separate country considering i am a big F1 Grand Prix fan and the race at Monaco is the most exciting of the season. I always thought it to be part of Italy and thats why i used to wonder why Italy hosted 2 races in a season.



Nways time to explore other countries on the list.





Powered by ScribeFire.

Sunday, April 29, 2007

Which Programming Lanuguage Are You?

I took this quiz which claims to determine which programming language your personality matches with. Mine turned out to be Modula-2 (strangely i had never heard of this language ever before).

You are Modula-2. You enjoy teaching others, but your rigidness tends to make them dislike you.
Which Programming Language are You?



I don't completely agree with this result nor do i agree with some of the descriptions of the other languages but what the heck.....i am killing time anyways.

Saturday, April 28, 2007

Python revision - Book review

Yesterday i found the book 'Learn to Program using Python' by Alan Gauld in the office. Since i had a few hrs to kill i decide to quickly go through the book.

I have been using python for almost a year now but strangely i have never had any sort of formal training and neither have i learnt python in a structured manner. Its mostly been task based which always makes me wonder if my coding style is indeed the correct way to do things. So i was excited about the prospect of reading this book and learning to do things the right way.

So i sat down to read and within an hr i was on page 100 (which is quite significant considering the book has just 270 pages). I realized that my knowledge of "basic" python was quite good, infact what i was really yearning for was indepth understanding of concepts and good practises and the book didn't quite provide this. That said it was wrong on my part to expect such topics from a book meant to be introductory text for python. That said the book in itself i quite good, it has small chapters and simple language and is a must read for early adopters of the language. I wish i knew about this book a year back.

I did come across a few feature i didn't know about, like:

1. dealing with binary streams, esp using struct.pack(...)

2. nested try/except. I had always hated the fact that you cannot use try-except-finally in a single construct but it never occured to me that i could achieve the same by nesting these clauses,eg.

try:
    try:
       ......
    except:
       .......
finally:
       .....

This ineffect gives me the same functionality as,

try:
    ....
except:
    .....
finally:
    ....

NOTE: this is now allowed in python 2.5

3. Another thing i came across (not in this book but i feel this is the right place to record it) is the technique to create a list from another list.

Earlier i used to do the following:

l = [list of objects with method 'id']
k = []
for obj in l:
    k.append(obj.id())

I always thought this was too much code to achieve too little. So after a bit of searching i discovered the following trick:
k = [obj.id() for obj in l]

Now i create new lists in a single line instead of 3, a 3X productivity improvement :D

Monday, April 16, 2007

Back to CODE!!

    Since i have moved to US my job profile and lifestyle has taken a giant leap. I come from an engineering background where the ultimate fantasy in life is to work on some exciting piece of code. Our sense of adventure is limited to trying out a new design pattern or some new framework. We just love sitting in that dingy corner with our giant LCD screen and a powerful PC and churn out line after line of code which we are not even sure if anyone would use it.



    Then i moved to the realm of professional services. Now suddenly i was out of that dark corner and talking directly to customers (i.e. people who actually use the piece of code). It was a earth shattering experience because now i was actually selling what i wrote. This tiny bit of exposure suddenly opened up a lot of doors and answered some questions that i had always wondered about but never found an answer too.



    The biggest pleasure an engineer/developer can ever get is when someone actually uses a feature he/she developed. This takes us to the next question, how does one develop something useful? The answer is customer feedback and this is possible only through customer interaction, direct customer interaction. Strangely a lot of companies do not believe in this concept. Generally the engineering team is fed inputs by a product manager who is supposed to understand customer needs and then translate them in a language engineers understand. Although this sounds promising but there are a lot of dependencies attached to it, like the ability of the PM to correctly capture requirements and then explain the same to the related engineer. Thats expecting a little too much from one person and even if it does work i don't think its a long term solution. Ideally i would like to

involve the respective developer in the requirement gathering process, this way s/he know exactly whats expected out of him/her.



    Well i had such a chance a few days back. As part of services i had to go to a client site, gather requirements , design a solution for them and implement it to. I think this is one opportunity you would kill for. So currently i am quite excited with the turn of events and looking forward to going BACK TO CODE...............





Powered by ScribeFire.

Wednesday, March 28, 2007

Windows service stuck in "starting" mode

   I have come across this scenario quite a few times. When you try to start a service some how windows screws up and comes back with an error saying that the service could not be started and the reason for the failure (as expected) is useless. The worst part is that after failure the service still stays in the 'starting' mode for quite some time and there is nothing that you can do to stop it, i mean there is no option to force stop the service.





   I am still trying to figure out some way to get the service to recover faster but can't seem to find any help, google is not helping me either. So the best solution for the moment is to wait till the service recovers on its own and then restart it or you reboot the OS itself (isn't that the universal fix for any problem on windows. ;))





Powered by ScribeFire.

Saturday, February 17, 2007

Linux on Business Desktop

I have always wanted to setup linux on my Business Desktop but was always scared to do it since there were so many dependencies on Windows systems primarily Outlook Exchange, Microsoft Office, connecting to WLANs and last but not the least .. TIME!

This article talks about similar issues and how this guy got around them. In short a good article to inspire you to take the plunge.

BTW incase you are wondering why one would want to move to Linux don't even bother reading this article.

WL 9 - configure node manager

Good link on how to configure the Weblogic 9 Node Manager.

Sunday, February 04, 2007

Monday, January 15, 2007

My first football game: Patriots Vs Chargers

so i did make it to Boston without much fuss (offcourse ignoring the fact that i missed my connecting flight to Boston from NYC and had to get to LeGuardia on my own and catch the next one) but overall it was fun. Emirates is a good airline with pretty good service.



Anyways i'm not going to go ga-ga about my trip in this blog, infact this blog is gonna be about the game of American football i saw yesterday. Before we start i have a little confession to make, prior to yesterday i had never seen a football game and actually never had cared about one. Now since i am in the USA where football happens to be the most popular sport i thought i might as well get a quick tutorial on it. So we got together at a friends place and he gave me some education about the game. Now time for another confession, once you get the hang of the game it can be very interesting.



So my first game was Patriots Vs Chargers. I being in Boston was supporting New England by default and boy what a game it was. The best part of the game was the 4th quater. The patriots were down 13-21 and from that they equalled the game with the help of a touchdown and 2 bonus points (now thats quite gutsy offcourse they didn't have much choice). The game now was well poised and New England made the first move by scoring a 3, 24-21 in favour of the patriots. Now San Diego on the counter-attack, they make it to 40 yards in quick time. With just 7 secs on the clock its now or never, steps in the Kicker and takes a good looking shot at the ball, it flys high, its going in, oh boy its close and it swings in the air..... and misses by a wisker...its.....out. Oh ......god.........what .........an.......unbelievable......victory for.... the...... patriots!!!!!



I would say an amazing game to start my rendezvous with football. what say??

Friday, December 22, 2006

Reload modules in Python environment

Problem:
You create a module and run it using the python interpreter. Now you modify this module and try to run it again, surprise surprise, the new changes are not reflected.

What really happens:
The python interpreter loads modules as and when they are used in a script. Once these modules are loaded they are cached in memory for reuse later. Now if you modify a pre-loaded module and try to run it, the interpreter does not bother loading it again as it already has a cached copy.

Solution:
One technique that i have used effectively for (indirectly) reloading the modules is to delete the module object from the cache. This forces the interpreter to reload the module when it executes the script again and you can test your new changes easily.

How its done:
The interpreter caches the module objects in a PyDictionary (a map) called the sys.modules. This map stores the module objects in the following format:
key : the fully qualified class/module name
value : the actual module object

The basic trick here is to delete the required object from this map and your jobs done.

Code:

if "<the fully qualified class/module name>" in sys.modules.keys():
    del(sys.modules["
<the fully qualified class/module name>"]

line 1 : test if the module exists in the cache
line 2 : actually remove the module from the map based on its key

eg.
Say, you want remove the module "com.test.testfile" from the cache.

if "com.test.testfile" in sys.modules.keys():
    del(sys.modules["com.test.testfile"]

Put these lines of code after the import statements or before you make a reference to your changed module, this ensures that the module is reloaded before execution.

There may be better ways of reloading modules but i found this most effective when working with a system which contains a lot of scripts.

Tuesday, December 05, 2006

bug tracking tool

right so the last 2 days i have been working on setting up a bug tracking tool for my boss. Some how i knew that one of these days the idea of acting smart was going to backfire. ;) ;) So here was my boss telling me how he was confident that i would help him out with setting up a bug tracking tool for his new project.

nways i got down to the task and did a bit of R&D on the different issue/bug tracking tools and here's what i found:

jira - if you have the cash, the best tool in the market

bugzilla - the king of open source and free tools, its heavily loaded but complex to setup, plus its written in perl

roundup - python based and quite good

But the ones i picked :

mantis - PHP based but simple to work with, its also called the unofficial 'light-weight' bugzilla

JTrac - Java based, not very impressive UI but ideal if your target audience is small. Best part is that its demo version is quite good. It has embedded jetty web-server and HSQLDB at the backend. You can be up and running in minutes, plus maintaining it is quite simple.

i'm sure you guessed what i used to impress my boss. Simple but working is still the flavour of the day. :)

Thursday, November 16, 2006

Wednesday, November 15, 2006

trekking spree over the weekend

My last weekend was quite an adventurous one.



On sat i went to bhimashankar. This was one place which was on my wish list for quite sometime coz i was under the impression that it was a nice place to go to. I mean so many people had spoken about it that i just wanted to check it out for my self. So on sat i did get there along with 2 of my office mates. It turns out that a lot of things said about bhimashankar is plain hype. The place is average considering its attractions viz. the shiva temple, the adjoining forest with its rich wildlife (although all i could see was hordes of butterflies and monkeys, thats it). Overall a nice place for a one day trip/picnic esp. during rainy seasons as the place would be covered with a thick blanket of green.



On sunday, i went trekking to kothaligad. This place is a long way from pune, infact its close to karjat and takes min 2/3 hrs to reach depending on the vehicle used. Since we took a (slow) bus, it took us, adding up all breaks and stops , approx 4 hrs to get there. But thats where the boring part ends. Getting on top of this fort comprises of one of the most amazing and strenous climbs. It takes on a avg 1-2 hrs to get on top of the fort. Excellent if you are trying to get that tummy in. At the end of the 2 hr climb my limbs were crying hoarse. There is not much to see in the for as such since it was just a storage house for food and water but the whole process of getting there is quite amazing. On the whole it was awesome fun and a welcome change from my routing lifestyle.



Looking forward to more trekking weekends from hence forth.

Thursday, September 07, 2006

How to interview?

    A good article on how to interview new candidates. Its much better that the numerous sites which give you a whole list of questions to ask right from whats 1+1 to what is cross-correlation. The basic idea is that you test a persons ability to solve problems,identify his approach, style of work, his eagerness to be discover new things, is he innovative, is he passionate about what he does, etc and not question him on hard facts which can be searched on the web in seconds.

    This article talks on similar lines. We want to recruit good enterprising personalities and not skill sets which will become obsolete in due time.  Its easy to find skill sets but a challenge to find talented people and a bigger challenge is to retain them.

    More on the retaining stuff in a future blog.