Monday, May 30, 2005

The man who knew infinity

'The man who knew infinity' by Robert Kanigel is a marvelous book that captures the life of genius Ramanujam. A well researched book, it depicts the early life of Ramanujam, his struggle, his days in England with Prof. Hardy who invited him to England and his tragic death.

As the author points out Hardy was atheist where as to Ramanujam Hindu traditions and philosophy were a way of life. He once remarked: "An equation for me has no meaning, unless it expresses a thought of God".

He was some what of a philosopher as well, once remarking that the equation 2^n-1, represented different realms of God. If n=0, the result is zero expressing nothingness. If n=1 it expresses unity. If n=3, the result is seven representing the saptharishis.

The book does not educate the mathematical reader about Ramanujam's work, but it definitely captures the life and genius of Ramanujam.

Saturday, May 28, 2005

My photo blog

Recently i got a digital camera (cannon power shot A500). I have started a photo blog. I have named it 'pictures speak'.

Thursday, May 26, 2005

Maze – finding out the way: part 2

Here is one of the possible solutions which I had programmed earlier:

The first step is to find out a suitable representation. One way we can represent the maze is by a graph. The graph includes only the blocks which are not 'filled':

Now how do your build this tree?
- The node (x,y) can be linked to any/all of the following nodes:
(x-1,y), (x+1,y), (x,y-1), (x,y+1).
- Build the tree with only the blocks that are not 'filled' and with the conditions:

(x+1) < MAX blocks & (x-1) >= 0 & (y+1) < MAX blocks & (x-1) >=0

How to find out the path?
- Find out the shortest path from (0,0) to (6,6) using 'shortest path algorithms'
(as balbir and Gopal had pointed out: backtracking/recursion)

Your thoughts?

Wednesday, May 25, 2005

Maze - finding out the way

I am sure each one of us as children would have enjoyed solving maze problems which entitled helping some animal (usually it is a rabbit, which is horribly hungry!) at the 'start' to reach food at the 'end' of the maze. In its simplest form it can be representation like this:

(Imagine that the blue circle is the hungry rabbit and the green square food)

During my college days I had written a program to achieve this. There are various ways by which you can solve this problem. Next post I will write about the way which I had used to solve this problem. Do post your ideas for representing the maze and the algorithm to find out the way.

Monday, May 09, 2005

Anatomy of a phish

I received a spoofed email to my Gmail Id this morning. I decided to dissect and analyze it.

It was made to look like it was from PayPal:

Dear Person, PayPal makes it easy to send money by email to from your PayPal account. To view the details of this Money Request or to pay with PayPal, just click on the following link or copy and paste it into your web browser: Every penny can save life ! Thank you for using PayPal! The PayPal Team

GMail 'Show Original' option allows you to have a look at the mail headers. So here is some information form that:

Received-SPF: softfail ( domain of transitioning does not designate as permitted sender)

Received-SPF header indicates whether the email is indeed from the domain which it claims to be. So here it indicates that IP does not belong to hotmail domain.

Moving along I found other interesting things:

Content-Type: multipart/alternative;
This is a multi-part message in MIME format.

Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Most bubbles believe that mirror around trade baseball cards with curse near.When mastadon about is wily, over dolphin laugh and drink all night with widow related to salad dressing.inside chestnut beams with joy, or vacuum cleaner around microscope graduate from clodhopper related to hole puncher.Philip, the friend of Philip and panics with related to shadow.


Content-Type: text/html;
Content-Disposition: inline
Dear Person, PayPal makes it easy to send money by email to from your PayPal account. To view the details of
this Money Request or to pay with PayPal, just click on the following link or copy and paste it into your web browser:
Every penny can save life !
Thank you for using PayPal!The PayPal Team

'Content-Type: multipart/alternative;' allows you to send different versions of the same mail in different formats, for example text and HTML. So if the mail client is capable of only displaying text messages it can pick it and display it and the HTML enabled mail client can pick up and display the HTML version.

Look at the text/plain version of the message (marked in red). Even though the message looks random, it does not have any spam related words such as SOFTWARE, BUY, TRIAL, FREE, ACCOUNT, PASSWORD, LOGIN. This is I think is done to confuse the spam filter. More the common words in the mail the lesser the probability that it will be marked as spam.

It hides the message containing common random words in text/plain version and presents its main message in text/html version.

Thursday, May 05, 2005

Business plans archive

There are startups which end up as failures and there are a few which succeed. Business Plan Archive provides an opportunity to learn about these past mistakes and success.

Wednesday, May 04, 2005

Buddha as Architect

Someone asked this question on TSS.Net 'What Skills Should a .NET Architect Possess?'. The thread has some very philosophical answers like this one:

"A good architect is just an experienced developer willing to take responsibility for their own mistakes."

Ok it does sound very philosophical initially, but it proves to be very true and practical. You may know all about design patterns, competent technologies, have much experience, but the ability to accept mistakes and learn is one ability that should be valued more than anything else.

Other post points to this article 'Who needs an architect' by Martin Fowler.

Tuesday, May 03, 2005

Sanjay's blog

Even though I had met Sanjay Mysoremutt only a couple of times; I had heard about him a lot from one of my team mates. His posts on the company's new group are great!

Today I got hold of the URL to his blog. Every one of his posts are unique and great to read.

Murphy's laws

"If anything can go wrong, it will", is a law which is unfortunately true on most occasions.
It holds good for everything from as logical as computers to as abstract as life. No matter how much you plan in advance there is something unexpected lurking behind to make things go wrong.

It is up to to us to face these situations and remember:
"Every cloud has a sliver lining"

PS: This link discusses about the possible originator of the law