Archive

Posts Tagged ‘programming’

Lunarcodes – Coding when the moon goes up

December 9th, 2009 Arun Manivannan No comments
After a lot of thought over the weekend, I decided to rewrite Fetch2Me in Java. Not that Python is bad. Python is brilliant. However, i felt that my code quality in Java (from where i come) is not yet production standard. Over the past year, i had the opportunity to open up a lot of open source projects and realised that my code quality is horrible. HORRIBLE !!!
So, this is the plan i came up with.  Bring together our old NIIT gang and –

1)    Rewrite Fetch2Me in Java using HttpUnit and Java Mail API
2)    Expose the core functionality of Fetch2Me as a REST service
3)    Write a front end for web access to the REST service. Typically we should be writing a Inbox like web page for checking gmail (or any mail for that case), sending mails (with and without attachments). This front end will be written using GWT and Guice.
4)    Write a Firefox plugin similar to the requirement in (3)
5)    SMS service should also be exposed as REST service.

Use Maven for build purposes and Git for source control.  Optionally use Hudson for continuous integration and come up with an Eclipse plugin. Write lots and lots of of JUnit test cases.  My gut feeling is that this should take at least a few months development time.
I am sure there are a million products out there which does the same thing but there are two important highlights in this effort.
1)  We get to learn a lot of new things, open up the source code of lot of other open source projects, started reading PHP, ASP.net, C#, Ruby, Python (and convert them to Java) — all those which we wouldnt have done in our day job. I thought we could learn by mistakes – both development and design, we could refactor the code as much as we want at any point of time in the project (we understand that optimizing early is a crime).
and
2)  Soon after we are done with increments in the project, we’ll open source it. People can just pick our code and host it in their domain and call it a day. I am sure many will find interest in our work and hopefully start using it.

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: ,

Stories for Programmer

July 8th, 2009 Arun Manivannan No comments

I compiled few interesting problem solving stories for a training today in my office.
Thought you might be interested. I am sure every story will be helpful.

Programmer Stories.ppt

Immediate sources for the stories :
The Holy Bible
The Pragmatic Programmer – Andrew Hunt & David Thomas
How To Think Like a Programmer: Problem-solving for the Bewildered – Paul Vicker
The Mythical Man Month  – Frederick Brooks Jr.

Categories: Uncategorized Tags: ,

What’s the pride in being a Programmer?

June 4th, 2008 Arun Manivannan No comments

I almost cried.

http://www.jpboodhoo.com/blog/StayingHumble.aspx

I went through the whole paper provided in the blog link. Never could believe that it was written in 1972.  I am really made humble.