Archive

Archive for the ‘Uncategorized’ Category

Last day with Credit Suisse

March 4th, 2010 Arun Manivannan No comments

I recently read a quote about writers – Writers don’t write because they have to say something. It’s because they have something to say.   That was exactly what went through my mind when I was asked to give a speech today in my farewell lunch. I have a lot of things to say but I just cant say anything, leave alone something.  I always used to wonder during the farewell lunches, “How is that these guys who leave are not thankful for the days they spent here. How come they dont speak a word” and as always my immediate thought would be “Nah.. I will just give that movie-like pep talk”.  ”I am awesome”.  “I can do more than that”.   Interestingly, I was no better than anybody else. 

It is saddening to leave CS.  Thankfully, it is not the “invariably saddening” kind.  I have nothing to repent.  In fact, the past couple of years taught a lot about confidence, communication, trust and that there is a time for everything.  CS is really a wonderful place to work.  Peaceful, organized and balanced. 

Two years ago, I came here as a lonely man. Nobody to talk to.  But today, It is a wonderful feeling to see that all my friends came together to host a farewell lunch for me.   What did i do to them? Nothing.   You bet, I will miss all of them.   From Monday, I can’t meet them personally too often as I do today but then I learnt from life that long distance relationship don’t work, unless the relationship is friendship.

See you around.

Categories: Uncategorized Tags:

Tips for a good resume

February 18th, 2010 Arun Manivannan 1 comment

I am no guru in this and I am sure you could find a lot of resources  about how to write a perfect resume.  Recently, a friend of mine passed me a resume and asked me to suggest improvements and the technology he needs to update.  To my shock and dismay,  the resume was a total disaster.  Some things, which we take for granted, turn out to be the most important ones.   I just happen to sum up my personal thoughts in building a decent looking profile :

1)    Keep an uniform font for the resume. I see a lot of profiles with different fonts spilled all over. Using italics and bold to highlight is fine but different fonts irritate the eyes.

2)    Tabulate the professional experience, education and skillsets.  I understand that it is a bad idea to tabulate when you wanted to pass the profile as plain text.  But AFAIK, doc and pdf are the standard formats i have circulated my CV as (I am a big fan of Pareto).

You will be shocked to know that the consultants take no more than 5-10 seconds to process your resume for a position (i saw it myself). Nobody except you is interested in reading the entire profile.

3)    Highlight your prominent skillsets and be precise. You are trying to sell your profile to a technical person and he will be interested in knowing the version of software you are experienced in. Spring and Java doesnt convey anything. How about Spring 2.0 or Java 1.5 or even better Concurrency API in Java 1.5?

4)    Trust me, this is not going to help —

Responsible for: Team Management, Project Management, Co-ordination with clients and Production Support.

Explain in detail your role in the project. Highlight your achievements. something like… “being a co-developer and team manager, i was involved in full development of the case folder module”.. or whatever. Please don’t lie. Sooner of later, they will find out. Just be more detailed in what exactly you did.

Highlight your expertise. If you are a developer, highlight your development experience. Highlight the various technologies you have worked in. Show the depth of your experience.  Having a tabulated list of the technology against the experience (in months) is not a bad idea.


Tally your years of experience with your expertise.
Mentioning that you are into team leading and project management and have lost touch of development when you have less than 5 years experience makes no sense at all. If you are applying for a programmer role, let your resume show it.

5)    Put in an “Achievement” section and highlight only the relevant achievements – both academic and work related. People will be very much interested in looking at it.

6)    Update your skillset. Resolve to learn at least one new technology (or get expert knowledge in the known one) every couple of months. Learn a new language every year.  Not all technologies and languages will suit your taste. And you can’t develop a taste for something which you have never tried even once.

Choose essential and related skill sets: Come on, you and I know that VSS doesnt tally well with a Java developer. Gain experience in SVN at the minimum and  a DVCS (git for example) going forward. Knowledge of the automated testing frameworks (JUnit to start with) is a must.

7)    Read a lot of books or atleast the minimum needed, have a pet project (even better, involve in an open source project) and highlight it on your resume. It shows that you have lots of passion for your work.

Feel free to drop in a comment if you feel the need to add more to the list.

Categories: Uncategorized Tags: ,

2010 – Resuming the personal projects

February 5th, 2010 Arun Manivannan 1 comment

Wow Wow Wow. By God’s grace, this year had a wonderful start. Beginning with Jason’s 1st birthday on 7th and the Merrill interview on the same day, vacation to home and the best of it all – re-joining Merrill. Needless to say that i always enjoyed working in Merrill. Of course, it means less amount of family time but at least at the end of the day, i will have a satisfied heart that i have done something worth.

I fondly remember the first 4 months in ML India when working till 2 AM is almost a daily event. What the heck. I am awake till 2 AM even here in Singapore fighting with the code. I love programming and i’ll do it till death does us apart. That’s right, ML is aggressive but so am I.

Now that everything is settled and I have a definite and promising road in front of me, I am resuming my work on the personal projects – our lunarcodes.

I wanted to write an app which indexes all the ebooks, movies and songs on my machine and use amazon or google or any other webservice to fetch meta information about them – including the cover pictures, popularity, reviews and any other information that could be possibly useful. I seriously dont want a bloated webapp for this. A pretty SWT/Swing would be great. Flex would be brilliant but AFAIK i dont see any good search and index libraries for Flex. Flex and Java would require a server running which I dont want to. Python, on the other hand, has Lucene extensions and has good web service support too but felt that nothing would come close to using the original lucene libraries instead of extensions.

Ah… i really love this year.

Categories: Uncategorized Tags: , ,

Installing Flash without Admin rights

January 6th, 2010 Arun Manivannan No comments

You know why we have the need to install Flash without admin rights….

Here is the link

http://www.varesano.net/blog/fabio/installing+flash+player+plugin+firefox+without+having+administrator+access+or+premissions

Works great with Firefox 3.x

Categories: Uncategorized Tags: ,

Disturbia

December 31st, 2009 Arun Manivannan No comments

It’s a wonderful day, the last day of the year and I was eagerly looking forward to the first new year in Singapore with my family. I was extra happy to leave for office this morning, being a half day on new years eve.

But here comes the spoiler. As i entered the train, i saw one young chinese woman with a very small kid in hand STANDING near the door in front of the priority seat. I was amazed and eager to see who has more priority to sit in the seat if this woman does not. To my shock and dismay i found a young local sitting and doing the “sleep act”. He looked up and saw the woman with the kid and then just continued. I was petrified.

Yes. Curse me all you want. I didnt have the balls to ask him to offer the seat but an Indian woman nearby called him and requested him. The guy was ignoring the first couple of requests and when the Indian woman touched him gently and asked him, the guy was “CANT YOU SEE THAT I AM A LITTLE BUSY”. WHAT the hell??? BUSY? really? For God’s sake he is sleeping on a freaking priority seat. I thought the woman had the right to be seated. The North-East line just went a little further to mark the seat as “Reserved Seat” just so that these morons be a little more sensible. I was so shocked and couldnt even read a single line out of my book after that wondering “can somebody be this rude?”.

I can’t now help think of my middle aged aunt in India who underwent uterus removal 5 years ago. Post-surgery she got a tummy which gave her the “pregnant look”. She used to joke telling that everytime she got into a bus she was offered a seat. If you are not aware, Indian buses are jam packed. She also used to say that she gently refuses the offer (and sometimes even shout if they still insist).

I am definitely not blaming the entire singaporean community. I have seen very generous and wonderful human beings here. I have seen middle-aged women offer seats to my wife even when we had our kid on a pram. I have seen lots of young girls and guys promptly offer seats to the elderly. But there are the sleepers too.. who simply cannot be woken up.

I just hope that the discourteous few prevent the contagious coma from spreading. (And i just hope that i can sleep tonight without feeling guilty that i didn’t do anything about it)

Categories: Uncategorized Tags:

Fej2Me – Upcoming tasks

December 15th, 2009 Arun Manivannan No comments

This weekend, i managed to migrate a few core portions of Fetch2Me from Python to Java. It was an amazing experience and a wonderful feeling to be bilingual. Though the Java version looks more elegant (to me), i personally loved my Python. The “the first project in Python” feeling…

So, here are the upcoming tasks in the Java version :

1) SMS Service : SMS service is not a part of the the system right now. Implement SMS service into fej2me through Google Voice account

2) Encryption : The config.xml used in the project has plaintext “mail id and password”.  I was thinking on the lines of AES having an external private key stored in a non-project folder without which the password hash would not make any sense.

3) Use JavaMail instead of Commons Email : I happen to use Apache Commons email instead of for sending mails (SMTP) because it looked simple. But later i realised that we cant attach streams. What i am currently doing is that i am attaching an URL directly to the email like

emailAttachment.setURL(new URL(http://www.google.com));

which is good for our current needs but will limit our options. Plain JavaMail on the other hand will use a DataSource which will give us a lot of options.

4) Apache HttpClient : As of now, the URL is directly attached to the email. What if the target URL is down or isnt even an URL. We would want to use HttpClient to ping the URL and check whether the status code returned is 200.

5) Search functionality using Google AJAX search and JSON : Google search or Wiki search (idea by Rajesh) is not a part of the system right now. Need to use Google Ajax API and JSON to pull data from Google. Please refer to
http://code.google.com/apis/ajaxsearch/documentation/

You might get some additional ideas on Book search, Movie search from the following URL (Idea by Dinesh)

http://code.google.com/apis/ajax/playground/#hello_world

6) Interactive browsing using Apache HttpUtils (functionality similar to Mechanize/Beautiful soup) : Use HttpUtils/HttpClient to simulate user browsing with Java. This will open a whole world of accessing authenticated systems.

7) Recurring updates using Quartz scheduler : Everybody would like to have recurring updates from sites, say like cricinfo or nseindia. users should be able to set a recurring job with us and get updates. something like.. “between 1 pm and 8 pm, get updates from http://www.cricinfo.com/nzvpak2009/engine/current/match/423780.html” every 1 minute”. we should enable persisted scheduling using a backend database (which is also available with quartz)

8) Multithreaded processing : Currently, the processing and handling of requests is sequential. We have to think about exploiting ThreadPool API to process multiple requests.

9) Quartz scheduler with BigTable/HBase : This is totally optional, but somebody is yet to come up with a Quartz scheduler extension using the backend as HBase. May be… may be… we could think of that. Though, HBase is good for large data, it is still an idea worth considering. Optionally, if we have a need to store large data into our systems, we could consider HBase.. Just for the fun of it.

Categories: Uncategorized Tags: , ,

The Dominoes and the birth of Fetch2Me

October 27th, 2009 Arun Manivannan No comments

Over the past few weeks a lot of things are happening in my life and i feel really guilty of not jotting them down in here. Its amazing how naturally things evolve and looking back you think everything happened so fast.

I was talking to my wife a couple of days back on how all things in my life fell in place naturally, like the neatly arranged dominos, and how much God is great that we can never have the faintest idea of what he thinks and what he has in store for us.

Myself and Rajesh always had the inner fire to do something big and our focus has always been a new “idea” – something which dazzles. And we were pretty sure that no idea falls from the roof. We have to be into a lot of ideas to have a new perspective to see ours. We always felt that it is always not about the money. And, I, for one reason felt that contributing to open source is “the idea” to have something meaningful in your life.

This blog is not about how things went on well and how we achieved the “idea” but how bad things could go and we still have our “dream of the youth” alive and active.

I left for Singapore and a couple of months later Rajesh got laid off from Merrill. Recession hit badly all over and the only thing i could think of is to pray that i retain my job. Simply because i dont want to depend on my parents when my kid is born. Rajesh got his engagement cancelled and was at home for 9 months. If i were him, with my family, i am not sure how my reaction would be. It could either be a “face what may come” or “hibernate for winter”.  Looking back at myself and my reaction to various “things” that happened in my life, I am sure i would have given the situation a cold shoulder. But then there is this new addition to the situation called family. Nevertheless, Rajesh’s situation really scared me a lot. He was unable to find a job despite being one hell of a developer. The calls are simply not coming his way, leave alone interviews.

Singapore is a good place to live but still this is not my home. I wanted to go back and i was unable to. That was when i told to myself that none of things that happened in my life is entirely shaped by me. And i am not going to whine anymore. I decided to take up technical reading more seriously and got the national library membership. Singapore’s NLB has a very limited collection of technical books and that motivated me even more. I resolved that i am going to finish off the entire IT section (except of course, those scary looking System 3 manuals)

I read the truly random books and some recommended ones. Among the many interesting books which gives that wonderful satisfaction at the last page, I had to meekly admit that once in a while, i had to return some books half way to pick another. One amongst the beautiful ones is “Dreaming in code” – the journey of Chandler and its team. It gave a lot of insight into how everybody starts small and everybody makes mistakes. But then, they all had a bigger dream and they were focussed. The grit and the patience of Mitch Kapor all through the project was beautiful. I am yet to see a truly impressive tool like Chandler. Even today, I composed a mail (outlook) to our corporate technical group appreciating their efforts on a recent technical event. I then mentioned in the mail that we should be meeting tomorrow to see what we can do next. Only then i realised i actually needed a meeting request. So, i copied all the contents, composed a new meeting request and pasted the contents and then started typing in the whole “To” list. In Chandler, it is just ONE FREAKING CLICK !!! Your mail is converted to a meeting request.

The “better programmer” link and “Dreaming in code” made me want to learn Python. Meanwhile, Rajesh started doing projects of his own. He fell in love with Rails and became a fan of Ruby. The speed of Python and the quantity of code needed to be written to do something useful was amazing. List comprehensions and slicing had me dumbstuck. After reading “Learning in Python“, I wanted to write something USEFUL. Rajesh got through Tech Mahindra as a contractor and moved to Pune. He didnt have internet access in office. And that was the birth of Fetch2Me – the name fondly given by my wonderfully best friend “Mirth Machine” Gaurav. Fetch2Me was a simple screen scraping application and it had a simple raison d’etre. Use your corporate id and send the url as the subject to fetch2me AT gmail DOT com and it will fetch the page. If the subject could not be resolved to a valid url, respond with the google results of the search string. But then, all my friends wanted more out of the project. I am not saying that this is all I had in mind from the start but I am considering this as a start – to be useful. Stay tuned.

Categories: Uncategorized Tags: , ,

There goes another Bill Gates !!!

August 30th, 2009 Arun Manivannan No comments

The blog says it all.

http://www.code-purity.com/free_developers_that_is_a/

I am sure open source enthusiasts will get reminded of  the infamous Open Letter to Hobbyists  http://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists

Am i a Boiling Frog?

August 29th, 2009 Arun Manivannan No comments
This is some writeup i wrote for our technical forum in Credit Suisse. Thought you’d be interested.
Rephrasing the adage in relation to the vi and the emacs, “Nobody uses two programming languages in a single sentence and gets away without getting involved in a war”.  This article is definitely not supposed to moot a language war or a Babel Tower scene.  This is just a “-verbose” of what is currently running in my mind and i am sure there will be agreements and disagreements to the thought.
Most of us here have been programming primarily in one single language for the past 5~ years and I personally feel that we are giving Larry Wall’s quote a whole different meaning – “The three chief virtues of a programmer are: Laziness, Impatience and Hubris” - We are lazy to do things the right way, we are impatient with deadlines and we are amazingly arrogant of the useless years of experience we have. The quote, not surprisingly, just meant this – http://www.hhhh.org/wiml/virtues.html. Talking about experience, a friend of mine (who had 4 years of IT experience) was asked an interesting question when he took up an interview – “What do you think your experience factor is?  Meaning, Is your experience 4*1 year or 2*2 years or 1*4 years?”.  The interviewer is basically asking him the amount of repetitive work he has done over the past 4 years and how much of new learning is involved.

When was the last time we read a technical book?
Most of us commute by train and I am sure most of us are sick seeing the same old trees and roads. Pick a book, any technical book this month and see the difference in your confidence.

Is our testing process systematic?
Diving into a fully blown Agile methodology or XP (http://en.wikipedia.org/wiki/Extreme_Programming) overnight is a difficult task. However, it is not difficult going for Test Driven Development (http://en.wikipedia.org/wiki/Test-driven_development) or incremental writing of JUnit/NUnit testcases to cover major portion of your code.

Are we writing code which are actually Object oriented or reusable?
This is tricky. We know that just because we use a Object Oriented language doesn’t make our code object oriented.  For example, programming to interface and not implementation is something which was advocated in Gang of Four back in 1995 (http://www.c2.com/cgi/wiki?GangOfFour) but except for the forced coding to interface in EJBs, I personally didn’t see its usage anywhere else. And even more demotivating is our usage of Abstractions.

Do we have a proper code review mechanism?
“Given enough eyeballs, all bugs are shallow”. That was Eric Raymond in “The Cathedral and the Bazaar” (http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/) talking about Linux and the Open Source movement. We definitely can’t/don’t do pair programming to have line-by-line reviews. However, it is always good to have a review, at the least for a major enhancement.

Are we taking the “shortcut” method to fix an issue instead of the “long but right” method?
Is our code a broken window? (http://www.artima.com/intv/fixit2.html).

Lastly, Are we becoming the Boiling Frog? (http://en.wikipedia.org/wiki/Boiling_frog)
What do you think?
Categories: Uncategorized Tags: ,

Torrentz.com – I love the way you think

July 18th, 2009 Arun Manivannan No comments

Hamster

Categories: Uncategorized Tags: