Wednesday, January 09, 2008

Favourite Quote for the Day

Loosely speaking we can think of automata, grammar and computability as the study of what can be done by computers in principle, while complexity addresses what can be done in practice.
Peter Linz

Monday, January 07, 2008

Crazy mathematics

As I was shifting my books from one location to another, I found a big heap of books, I had not even started reading or looked at in detail. Being me, I got distracted by them and decided to at-least give them a chance to fulfill their destiny (to be read cover to cover by their owners or the friends of the owners).

I started with Tom Apostol's Mathematical Analysis. It is a wonderfully terse book and I found myself struggling by the time I reached the topic on "Point Set Topology". I had been through a quick journey of the past - real and complex numbers, sets and cardinality, prime numbers and many more things.

I also ran into the famous Cauchy-Schwarz inequality. I remember having proved the inequality in the exercise of Don Knuth's Art of computer programming volume I, but by now I had forgotten it all -- the sum manipulation, the whole of chapter 1 as hiding somewhere in my memory and seeking it was a hard/impossible task. This time, I found myself taking the help of a symbolic computation package - maxima. My dialog was as follows

(%i2) expand((a1^2 + a2^2)*(b1^2 + b2^2));
(%o2) a2^2*b2^2+a1^2*b2^2+a2^2*b1^2+a1^2*b1^2
(%i4) expand((a1b1 + a2b2)^2);
(%o4) a2b2^2+2*a1b1*a2b2+a1b1^2

(%i31) (a1^2 + a2^2)*(b1^2 + b2^2) - ((a1b1 + a2b2)^2);
(%o31) (a2^2+a1^2)*(b2^2+b1^2)-(a2b2+a1b1)^2
(%i32) expand(%);
(%o32) a2^2*b2^2+a1^2*b2^2+a2^2*b1^2+a1^2*b1^2-a2b2^2-2*a1b1*a2b2-a1b1^2

To cut the long output short, I ended up with Lagrange's inequality.

This is just a small part of the mathematics I have to (re)learn, there is also graph theory, game theory, probability theory, Markov chains and theory of computation.

All the mathematics is very exciting, but time consuming. I have loads of other information to read and digest. Let's see where all this I need to learn this crazy math attitude takes me.

Tuesday, January 01, 2008

Have a fantastic new year 2008

It's that time again, a year has gone by, brought happiness and sad moments, but it's gone! Remember to change the year in your dates, make new year resolutions, start afresh, be more positive, thankful and happy that we have a new chance to do/make things right.

HAVE A GREAT NEW YEAR and make every day count

Saturday, December 29, 2007

Rusting Knowledge

Over a period of time, it seems like a layer of dust covers your deep understanding and knowledge of a subject matter, where in once I was considered an expert. My knowledge is rusting and it's time to re-read some old classics and books I used to learn the subject matter from.

I've been trying to learn C#, Python, etc, but I realize that I need to revisit my C skills and my C99 knowledge base again. In summary, knowledge rusts over a period of time, specially the items not practiced very often.

Get ready to clear away the dust from your rusting areas as well, as I explore well known areas and newer areas with a "I used to know, but forgot" perspective.

Monday, December 24, 2007

Digging out of history (longjmp is bad)

I had this program written out a long time back, it shows why some constructs are valid, but do not apply well today. In the evolution of C++, we've left behind some holes


 1 #include <stdio.h>
 2 #include <setjmp.h>
 3 #include <string.h>
 4
 5 class C {
 6 private:
 7         char *ptr;
 8 public:
 9         C (const char *name) {
10                 ptr = new char[strlen(name)+1];
11                 printf("constructed C\n");
12         }
13
14         ~C () {
15                 delete [] ptr;
16                 printf("destroyed C\n");
17         }
18 };
19
20 void funfunction(jmp_buf env)
21 {
22         C c("Hello");
23         /*
24          * Do something, at the end expect destructor to be
25          * called
26          */
27         longjmp(env, 1);
28 }
29
30 int main(void)
31 {
32         jmp_buf env;
33         int ret;
34
35         ret = setjmp(env);
36         if (ret) {
37                 printf("Looks like we jumped a long way\n");
38                 return ret;
39         }
40
41         funfunction(env);
42         return 0;
43 }


See if you can find the obvious problem with this code

Saturday, December 22, 2007

Sounds in my life

The gentle and shrill sounds in my everyday life, call my attention to them. In earlier days, the only sound that one would hear is of people talking to them, children playing on the street or a baby calling for Mama's attention.

Compare and contrast that with what we hear today; the sound of the TV, the microwave, radio, music player, sound of vehicles zooming on the street, vehicles blowing horns, the telephone, the cell phone trying to tell you someone wants to talk to you (even when you are in the restroom), this someone could be a pre-recorded sales call; the computer buzzing to tell you that someone is trying to reach you through instant chat, the courier person ringing the doorbell, the alarm-clock ringing on my cell phone

How am I supposed to listen to myself and others around me; with these distracting sounds calling for my attention. We have moved into a new era, where we need more sounds to tell us, that we are needed elsewhere. I need to filter these sounds, so that I can hear my heart-beat, the pin-drop and my those around me giggle and laugh.

Thursday, November 22, 2007

Guess what OS Don Knuth runs?

Check out http://www-cs-faculty.stanford.edu/~knuth/news.html

In the section "Wanted: A Name For High-Tech Grief" Knuth states and I quote

"I myself have often cried out for help to colleagues who have generously made house calls, in order to unwedge my highly customized Linux system"

We've known it for a while, looking at the customized fvwm2 configuration on Knuth's website, but it's good to see it in writing.

Some of you must be thinking, he has problems with Linux? We'll look at the keywords -- highly customized. Can't do that with other operating systems without hitting yourself in the head a few times or hitting your head against something. You don't hit yourself because your stupid, you do, because you brought the product :-)

Hmmm.... Now, if we can get everyone who has directly or in-directly been benefited from Knuth's work to run Linux, that would be a wonderful starting place. Of-course regular users are more than welcome to adopt and customize Linux.

Linux is a Trademark of Linus Torvalds

Tuesday, November 06, 2007

FOSS.IN delegate registration is open



Register at http://foss.in/2007/register/delegates/

The fee structure has changed this year. Do read the details before registering. This year we have project days and the main conference

Saturday, November 03, 2007

Talk at VTU

I gave a talk on Introduction to Operating Systems via EDUSAT. The lecture was broadcast to several universities via satellite. I had no live audience, but it was fun to speak into a camera. The video has been stored/archived for students to see later.
Here's a link to the slides

New Code in the Linux Kernel

I got some new code included into the mainline linux 2.6.24-rc1 kernel

cgroupstats - Is an infrastructure to allow sending control group statistics to user space using taskstats/genetlink
cpu_acct - CPU accounting subsystem for control groups

Worked on some other miscellaneous stuff as well. Overall, 2.6.24 was an interesting merge cycle, lots of new stuff went it. Check it out! Please do report regressions

A Quick Estimate

I was trying to estimate how long it would take for a timer, measured in nano-seconds using 64 bits would take to roll over. Here's my quick estimate

It would take 2^64/10^9 seconds = 2^64/2^9*5^9

Approximating on all calculations

= 2^55/5^9

5^3 = 125 ~= 2^7
5^9 = 2^21

= 2^55/2^21

= 2^34 seconds

2^34 seconds = 2^34/86500 days ~= 2^34/80*2^10 = 2^24/2^6 days = 2^18 days

1 year = 365 days, 3 years ~= 2^10 days

That leaves us with 2^8 years * 3 years

= 256*3 years before the timer overflows

With a machine, usually one would expect at-least one reboot in 800 years, if so, we would be fine for a long time to come.

See I need no calculator :-)

Saturday, October 27, 2007

FOSS.IN list of talks announced

Check out http://foss.in/2007/shortlist.php

The list of talks looks really good and I know a lot of people presenting at FOSS.IN. I am co-presenting on one topic. I'd say this year FOSS.IN is going to rock, so make sure your there.

Monday, October 08, 2007

India vs Australia (quick analysis)

India won the T20 world cup and became champions! The 50-50 games seem to be a different playing ground for the Indian Team. Have you been wondering why India did not fair so well, so far. Here's a quick layman analysis

  1. India have not been batting first, in all the T20 matches we won, we batted first!
  2. The team has changed and so have the rules. Instead of a powerplay for 20 overs with catch in fielders around, T20 has restrictions for just 4 overs. This makes a big difference to players like Sehwag and Gambhir, who I think are more suited to the field being well spread out (survive longer)

Here's some advice for the Indian Team (given that Dhoni reads cricinfo, you never know if he might read this blog as well :-) )

  1. Convert the 50-50 match to a 20-20 match, by keeping wickets in hand till the 30th over
  2. While batting second, get Dhoni in at #3, followed by Yuvraj at #4
  3. Get Dravid to Open the batting while chasing
  4. Tendulkar should come 4/5 down while chasing (when there is a mandatory ball change)
  5. Don't ever get Yuvraj to Bowl :-)
  6. While bowling first, attack aggressively, even if it means that more runs will be conceded

Friday, October 05, 2007

Memory Ordering (Recommended Reading)

I just finished reading this wonderful report on memory ordering. I highly recommend reading it. If you have anything to do with multi-core, multi-processor, parallel programming, you'll find the paper very insightful.

Other good to read papers/articles on memory ordering from Paul Mckenney are
  1. C++ Data-Dependency Ordering. May 2007.
  2. Overview of Linux-Kernel Reference Counting. January 2007.
  3. A simple and efficient memory model for weakly ordered architectures. Makes case for weakly ordered primitives in programming languages. Updated May 2007.

Wednesday, September 26, 2007

Doing the simple things first

I've always been lost trying to understand and do the complex things. I just realized that I miss out on doing and enjoying the simple things in life. Note to self, remember this and change.

Tuesday, September 25, 2007

India are Twenty20 champs




No one expected it, but secretly hoped for it; and it has happened. India are twenty 20 world cup champions. Boy, has this been a good time for sports. For those of you who do indeed know that hockey is our national game, spare a moment for this picture as well


Spare some time and visit http://www.bharatiyahockey.org/ and http://www.indianhockey.com/.

Now shifting back to twenty20, India beat Pakistan twice and the second win won us the cup. Both matches were close, nail biting (warning: watch your hygiene) finishes. Surprisingly, India got extremely lucky and batted first in almost all their encounters which they won. The statistics show a remarkable quality, that has been missing before, this was a true team effort. Everybody chipped in; in the batting department, we had contributions from Gautham Gambhir, Virendra Sehwag, Robin Uttapa, Yuvraj Singh, M. S. Dhoni, Rohit Sharma (who incidentally is yet to be dismissed in this form of the game). Karthik was a weak spot in the team, but boy did he keep well in the game against South Africa. In the bowling department, R. P. Singh, Irfan Pathan, Harbhajan Singh and Sreesanth were the key contributors.

India's fielding has been quite good, thanks to the absence of Saurav Ganguly, V.V.S. Laxman and Munaf Patel.

I am sure Dhoni is thinking मै तो युहीं चाला था बिना जाने मंज़िल मगर लोग आते गये और कारवाँ बंता गया |

Well done, keep up the good work boys!

privacy

Some of the policy from the app automation refers to https://rclone.org/privacy/ if you are a general blog reader, follow Google's polic...