Latest post

Twinkle twinkle little star is a short musical piece I composed and recorded last evening.

This piece consists of 56 measures. It is 1 minute 52 seconds long. The music is composed of four tracks. This is my second attempt at recording music with multiple tracks. The last such attempt was more than two years ago when I composed and recorded 'A few notes'.

The links to the audio files, sheet music, etc. are provided below. The files reside in my website. In case, my website is down, the YouTube link provided below should still work.

The four tracks in this piece are:

  1. Grand piano
  2. Slow strings
  3. Xenon pad
  4. Music box

This arrangement is based on the popular melody of the nursery rhyme called Twinkle, twinkle, little star. The melody is played with the treble notes of the piano. I wrote the bass notes for the piano and the strings, and the high notes for the pad and the music box to fill the music with emotions of love and happiness. I recorded this after about two hours of practice.

Random post

Today, I was amused to see the following code in an Orkut community.

#include <stdio.h>

#define decode(s,t,u,m,p,e,d) m ## s ## u ## t
#define begin decode(a,n,i,m,a,t,e)


3 years back, when I was in college, I used to run a mailing list called 'ncoders' which had around 150 members. I deleted it last year after the group became inactive and I lost interest in it. We used to discuss programming and Internet protocols in the group. One day we were discussing how we could obfuscate the main() function in C in a manner that the main() function didn't seem to appear in the code. I wrote the above code and posted it to the group. That's why I was amused to see it again on Orkut today. Probably, the code survived in the inboxes of some subscribers even though the community died. I searched the web to see if this code has been posted in other websites as well and indeed I found many occurrences of this code on the web.

Here's an explanation of the code.

Two tokens can be concatenated together in the preprocessed code using ## preprocessor operator. Now, the meaning of the macro f(s,t,u,m,p,e,d) becomes clear.

So, begin() becomes decode(a,n,i,m,a,t,e)(), decode(a,n,i,m,a,t,e)() becomes m ## a ## i ## n(), and m ## a ## i ## n() becomes main().