Tuesday, September 23, 2008
kernel summit 2008 photo on LWN.net
Saturday, September 06, 2008
Why I have not blogged in a while
I am not carrying a camera this time around, I intend to buy a good cheap camera, that can obsolete itself without making me worry about spending too much money on it. Conferences are usually a great time to get a lot of work done, lets see what this trip does to my productivity :)
Monday, July 14, 2008
Quote of the day
Tuesday, May 27, 2008
Fedora 9 and packaging
Hibernate request refused, the package manager prevented the hibernate operation since it was in the middle on an uninterruptible operation or something similar. I had to manually kill all the packagekit processes and yum before I got the laptop to resume.
I should start filing the BUGS I find into bugzilla soon.
Friday, May 16, 2008
Upgraded to Fedora 9
I often ask myself, why did I upgrade so quickly - as an after thought. The answer is that I like to try new stuff, I am excited by change, new features, the possibility of getting something better quickly. I think that's the open source philosophy as well "Release early, Release often"
The new features do come at a cost though. I had to spend a few hours trying to bring up my X. Nvidia is not supported as an in kernel driver, there is a proprietary driver for it. Here's what I tried
- I used the VESA driver, but I was not happy about the missing graphics acceleration and open GL support
- I tried the nvdia driver from livna, but that had other problems - including complaints about ABI not matching. I tried the trick of starting X with -ignoreABI and setting the option in xorg.conf
- I wanted to try the driver directly from nvidia, but the kernel compile failed. I got patches from nvidia for 2.6.25 and ran into the same ABI issue. Ignoring ABI was not an option, since the shared library module for the nvidia driver uses a symbol that is now missing with the new X that comes bundled with Fedora 9
While configuring the X server, I remembered my first X install (Slackware, around 1999 or 2000). It came with a utility called xf86config, that asked a set of questions and generated a XFree86 configuration file, with a warning that getting the vertical and horizontal frequencies incorrect could fry the video card. Life is much better with Fedora 9, but not all that easy.
Although, I am beginning to like Fedora better than Ubuntu, Fedora's GUI package management sucks. Yumex is the closest thing it has for sane package management, the gnome based pirut, pacakgeit, etc all leave a user wondering what is going on in the background. I would highly recommend installing yumex and using it as the package manager
Fedora 9 comes with a bunch of kernel features - cgroups, cpu controller, cpu accounting controller and the namespace controller. I had a hand in some of these controllers, but unfortunately the memory controller has been disabled.
Fedora 9 comes bundled with FireFox 3 beta 5 (same as Ubuntu Hardy), FireFox 3 seems pretty cool in terms of user friendliness and stability. Downloading updates can be quite painful, unless you happen to know a very good and fast mirror. Most of the times I've tried to download updates, I get an error stating that the mirror is down or "no such file or directory" or "too many users". I guess that is expected since the whole Linux world is trying to get their hands on Fedora 9.
I found printing to be friendlier and more intuitive. I got errors correctly, stating that my printer was running low on ink or there was a paper jam. The print UI seemed quite robust and stable.
I tried KDE4, only to be a little disappointed. KDE4 on Fedora 9 is definitely much better than it is on kubuntu. Settings are well integrated and one has control over KDE4, unlike kubuntu where the controls are still for KDE3. The reason, I was disppointed with KDE was the interactiveness and latency in terms of response. The new UI is flashy, but most of my widgets failed to work (the comic widget and the dictionary widget, for example). The rendering of gtk based applications is quite poor. Most GUI on Linux seems to use the gtk widget library and some use Qt4. Firefox, eclipse, emacs, etc do not look very nice under KDE. These are still early days for KDE4, I hope it will mature soon into something I would want to use.
OpenOffice 2.4 was pleasantly surprising. As always, they seemed to have improved integration with documents and the generated pdf's look really nice. Usability is much nicer and so is the rendering and interactiveness. I would like to give them a thumbs up for this release. The major difference I saw with respect to Ubuntu's Hardy release was that there was no Sun Logo embedded in the splash screen of OpenOffice. I need to see why Hardy has the Sun Logo embedded.
I am glad to see (this was some time back as well) that Adobe and Google now have Fedora yum repositories, which is a very good sign. I wish nvidia would provide similar repositories.
I've just started using Fedora 9, I'll blog more on it, as I experiment and play with it.
Sunday, April 27, 2008
Knuth's recent interview
"The success of open source code is perhaps the only thing in the computer field that hasn’t surprised me during the past several decades. But it still hasn’t reached its full potential; I believe that open-source programs will begin to be completely dominant as the economy moves more and more from products towards services, and as more and more volunteers arise to improve the code
For example, open-source code can produce thousands of binaries, tuned perfectly to the configurations of individual users, whereas commercial software usually will exist in only a few versions. A generic binary executable file must include things like inefficient "sync" instructions that are totally inappropriate for many installations; such wastage goes away when the source code is highly configurable. This should be a huge win for open source.
Yet I think that a few programs, such as Adobe Photoshop, will always be superior to competitors like the Gimp—for some reason, I really don’t know why! I’m quite willing to pay good money for really good software, if I believe that it has been produced by the best programmers."
"I might as well flame a bit about my personal unhappiness with the current trend toward multicore architecture. To me, it looks more or less like the hardware designers have run out of ideas, and that they’re trying to pass the blame for the future demise of Moore’s Law to the software writers by giving us machines that work faster only on a few key benchmarks! I won’t be surprised at all if the whole multithreading idea turns out to be a flop, worse than the "Titanium" approach that was supposed to be so terrific—until it turned out that the wished-for compilers were basically impossible to write."
"The machine I use today has dual processors. I get to use them both only when I’m running two independent jobs at the same time; that’s nice, but it happens only a few minutes every week. If I had four processors, or eight, or more, I still wouldn’t be any better off, considering the kind of work I do—even though I’m using my computer almost every day during most of the day.
So why should I be so happy about the future that hardware vendors promise? They think a magic bullet will come along to make multicores speed up my kind of work; I think it’s a pipe dream. (No—that’s the wrong metaphor! "Pipelines" actually work for me, but threads don’t. Maybe the word I want is "bubble.") From the opposite point of view, I do grant that web browsing probably will get better with multicores"
"On a positive note, I’ve been pleased to discover that the conventions of CWEB are already standard equipment within preinstalled software such as Makefiles, when I get off-the-shelf Linux these days.""I currently use Ubuntu Linux, on a standalone laptop—it has no Internet connection. I occasionally carry flash memory drives between this machine and the Macs that I use for network surfing and graphics; but I trust my family jewels only to Linux. Incidentally, with Linux I much prefer the keyboard focus that I can get with classic FVWM to the GNOME and KDE environments that other people seem to like better. To each his own."
"let me just say that almost everything I’ve ever heard associated with the term "extreme programming" sounds like exactly the wrong way to go...with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me."
"I also must confess to a strong bias against the fashion for reusable code. To me, "re-editable code" is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace."
Saturday, April 12, 2008
Atomic access
"If you access 64 bit data on a 32 bit machine, what part of the access is atomic?". One would assume that with per-CPU data, it is safe to read the data from a different CPU". The answer lies hidden in the processor architecture. Several RISC architectures require certain types of data to be aligned to specific boundaries (this in turn ensures that the access is atomic). Usually processor manuals suggest that data that is contained within a single cache line is likely to be fetched atomically. Ideally, it is recommended that the data be aligned to the boundary of it's size, so that access is atomic. To explain that further
16 bit data be aligned to a 16 bit boundary
32 bit data be aligned to a 32 bit boundary
64 bit data be aligned to a 64 bit boundary
So the next time you think of atomic access, data sizes, per CPU data, look at your processor manual and determine if the data needs to be protected when accessed from a different CPU.
Wednesday, April 02, 2008
RSS feed is fixed
Feeling left out of the software world
In retrospect, I've been working on concepts that were quite well understood in the 60's and 70's - Virtualization, Resource Management, Processes, Threads, etc. Concurrency is very interesting, specially due to multi-core now being ubiquitous. My TODO list looks very dull - Python, Algorithms, Architecture of so and so processor, etc.
It seems like there is a hard barrier that prevents people stuck in systems from working in the layer above. I feel left and cut-out from the innovation in the application space. While, I am still finishing up on the basic design patterns, the world has already moved on to domain specific patterns. I do feel lost, but there is hope. Hope that someday, I'll take a look on the other side, where the grass seems greener; jump the fence; make sense of the new world; the world that seems to be moving at a rapid pace.
Wednesday, March 19, 2008
Doing my time outside of systems programming
I've just started reading Web Services Essentials. I finished chapter 1, it seemed quite well written and was easily understandable. Unfortunately, the websites listed in the book are no longer accessible. That is quite understandable given that the book was written in 2002.

The other favourite book these days is "C# Precisely". It's a well written compact book. The book consists of 30 sections and you get the feeling that you are learning C# with the least possible time investment. I look forward to putting Mono through the C# precisely test
There are also some other things on my plate that I hope to finish up quickly. I suspect that going through this exercise will give me more debating power to argue for/against technology with my friends and colleagues and also help me appreciate what lies on the other side.
Saturday, March 15, 2008
Ups and Downs from India's Australian Cricket Tour
Up
- India did well without their seniors in the ODIs
- Tendulkar helped India win two finals
- Dhoni led from the front
- Harbhajan Singh managed to dodge charges leveled against him without evidence
- India let Brag Hogg go, even though he used abusive words against the Indian captain
- Bad umpiring was penalized. Steve Bucknor got his well deserved punishment for bad umpiring (long due, he seemed biased against India)
- Hayden was reprimanded for denigrating an Indian player
- Australian public criticized the spirit of the Australian Cricket team for unfair play
Down
- Adam Gilchrist, a well respected cricketer retired
- Michael Clarke got away, even though he tackled Tendulkar in the finals
- Symonds seemed out of form
- Ricky Ponting seemed out of form
- Australian players got away by claiming catches that they really failed to hold on to
- Australian media for looking foolish after every charge they leveled against the Indian team players were waved off
Thursday, February 14, 2008
Linux 2.6.25-rc1 (new features)
A list of features is mentioned in the LWN article about the merge window for 2.6.25-rc1. This includes the memory controller (now called memory resource controller). Check out http://lwn.net/Articles/268937/ as well. We also got fake NUMA nodes for PowerPC and many other small fixes.
I have a new favorite website for git changelogs http://tree.celinuxforum.org/gitstat/index.php
Check out some of the cool graphs from that website
Monday, February 04, 2008
Linux.conf.au (presentations available)
They also have the talks in .spx format, wonderful!
Sunday, February 03, 2008
Wednesday, January 09, 2008
Favourite Quote for the Day
Monday, January 07, 2008
Crazy mathematics
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
HAVE A GREAT NEW YEAR and make every day count
Saturday, December 29, 2007
Rusting Knowledge
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)
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
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.
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...
-
I received my MS degree from BITS Pilani today. Wow! I am now qualified to do more, I feel so energized. As I am writing this blog, I look ...
-
I reviewed a chapter of Computer Organization & Architecture, Designing for Performance. This is the last of my reviews for a long time ...
-
I still remember meeting a great architect at a place I worked. He was very humble and so good that he was a role model. Basically whether w...


