Opening Mood: I’m back!
Opening Song: Romantic Piano – Chopin
Spent the last week at this place called Kudremukh. It used to be one of Karnataka’s famous mines before the operations were shut down in 2005. So now it is just a nice little place with lots of greenery and very few people to bother an occasional guest. Which was me 🙂
I started from karkala on 4th Feb at 8:00 AM to Kudremukh. I had booked a room for myself at the Sahyadri Bhavan lodge for five days through some family contacts. Reached the place at around 9:30 A.M. The ride was very good, and one could spot a lot of trees and forests on the way. Once you cross the Mala outpost, the weather becomes quite pleasant owing to the trees around.
The room where I was put up was really a big one. It had three beds, a balcony, and an attic! All for an extremely cheap then of Rs 200 per day! The guest house has a small restaurant which serves breakfast, lunch and dinner. Again, at very affordable rates. I liked the food there. But then, I also stayed for four years at NITK Surathkal and survived the mess food. So I really shouldn’t be talking about how good the food at any place is 😛 . The place also has a very nice town park where I used to go in the evenings for a stroll.
The purpose of the vacation was to do stuff which I had always wanted to do, but never got the time. Starting problem you can say 🙂 . Over the past couple of years, I have been accumulating quite a bit of technical stuff to read, and the list was only growing. So I wanted to take some time off and get started on some of those items.
Thus I had five days at a place with very little disturbance and an awesome climate. Really, I couldn’t ask for more. The working style was simple. Start with one work item, when you get bored, move on to the next one. There were no other rules. No hard deadlines to finish this or that by the end of 5 days. Just have fun 🙂
So, in the five days, I read through parts of Linux Memory management. Two years of programming the kernel, and I was still not aware of how Linux manages the memory across the various platforms it supports. So I had to go back to the very basics, starting from the 386 memory management model and then how Linux represents it using a 4 level model. After that, I read up on the Zoned Buddy Allocator, the Slab Allocator and a part of Process address space. I was using “Understanding the Linux Kernel, 3ed” and 2.6.24 kernel code as reference.
Other than that, RB-trees was something I read about and implemented during this time. It reminded me a lot about AVL trees, which we had studied in our data-structures classes. RB-trees was actually easier to implement (atleast the deletion part).
Also, read the first three chapters from Ulrich Drepper’s “What every programmer must know about memory”. The paper is true to it’s name. Especially the chapter on caches. The paper gives a very clear picture of the implications of having different levels of caches, how the cache size matters, through various well designed experiments. It should be read by anyone who is interested in doing any kind of system programming.
Other than these, did a whole bunch of fun stuff, like wrote a ascii visualization tool for trees. One of the problems I had with the Data structures lab assignement was that we had to show the output through an inorder, or a breadth order traversal. And that was not always very easy to visualize. But then I was one of those who did the class assignments when there was only one or two days left for the deadline. So I guess I am doing all the supplemental things now 🙂
Oh yeah, spent a whole evening reverse engineering this obfuscated C Code which prints the poem about the various gifts given by the true love on each day of Christmas. Am planning on writing a small article on that. How recursion was used in place of loops and how the ‘,’ operator was used for statements. It’s a code when you see, you’ll go “This hurts my brain!” . Check it out here.
And when I had time to spare, I read some chapters from Jon Bentley’s “Programming Pearls”. Another book which I would recommend to anyone interested in serious programming. This book sure is fun!
So, now that I am back, the first thing to do would be to catchup with a week of email. Oh well 🙂
Closing Song: Marriage of Figaro – Mozart.
Closing Mood: Anxious to catch up with last week’s happenings.