Older blog entries for rmathew (starting at number 89)

Havoc in Bangalore
The past week was terrible for people in Bangalore. Almost every day of the week, the weather would follow the same pattern - it would get very hot during the day and then the evening would arrive with very strong winds, heavy rain and lots of lightning and thunder. Apart from the usual flooding of roads as well as the houses of some unfortunate folks and consequent traffic snarls, this time many more (at least 150, by most estimates) than the usual number of trees were uprooted. Most of these were Gulmohar ( Royal Poinciana ) trees that line many of Bangalore's roads and that look beautiful when in bloom. These trees seem to have awfully shallow roots for their size and they fell over electric wires, telephone wires, cable TV wires, vehicles, houses, etc.

So we have had intermittent power, noisy telephone lines, now you see it, now you don't cable TV, no internet connectivity, etc. in our house. Many people were much worse off. I hope this week would bring better weather.

As if this was not enough, the software engineers of Bangalore now have their lives made even worse by robbers. In the last few months, quite a few techies have been increasingly becoming the targets of robbers and muggers who perceive them to be "soft targets" with loads of money and offering little by way of resistance. In the last month alone, two people from my office were mugged in two separate incidents in the vicinity of our building in the night. Call centre and BPO workers have also been hit similarly. To make matters worse, the police commisioner thinks Bangalore has actually become safer in the last few years and quotes some questionable statistics to prove his point. We have already given up on our government which seems more eager to cling on to power by appeasing its coalition partners than bother to develop the state and the city.

Sort Your Environment Variables for Win32
It seems that the CreateProcess() Win32 API expects the explicitly-passed environment variables, if any, to be in alphabetically sorted order. It is documented in passing in the API description, but you have to really look out for it to notice it. Without doing this, you might find that the spawned process is not able to retrieve some of the environment variables you are passing to it. This also seems to affect programs spawned using Runtime.exec() in Java, so even if you do not work on Windows yourself, you might want to keep this in mind for your hapless users.

Thanks to Saju for the explanation and to Rahul for bringing it to my attention.

"How to Solve it"
I found this classic book on problem-solving by G. Polya to be worthy of every praise that has been heaped on it by generations of budding mathematicians and programmers. It requires a bit of perseverance and suspension of cynicism to fully benefit from this book. As with most self-help books (if I may use the term), the basic approach and the given heuristics are rather simple and "obvious", but the real benefit for the reader lies in appreciating their significance and in applying them consistently to solving problems. Very highly recommended.
gmane.comp.java.harmony.devel
Some kind soul has helped the Harmony mailing list be available on Gmane as the newsgroup "gmane.comp.java.harmony.devel". Thank you!

As was also observed by someone else, I find it rather amusing, and sad, that several years of effort on GCJ, Kaffe and Classpath did not seem to generate as much buzz as a single announcement of an intention by the ASF to create a J2SE 5 implementation.

"Technology and Courage"
"Technology and Courage" (PDF) by Ivan Sutherland. (Thanks Prakash!)

Harmony: Quo Vadis?
The announcement of the Harmony project which aims to create a Free reimplementation of J2SE 5 under the umbrella of the Apache Software Foundation (ASF) seems weird to a lot of people (including yours truly). The initial FAQ does not help much either.

My personal opinion is that if you need Free (as in liberty) Java you have either Kaffe or GCJ depending on whether you prefer the traditional Java execution model or ahead-of-time compilation, respectively, not to mention many other VMs. Both depend on GNU Classpath to provide an implementation of the humongous and unwieldy "core" Java runtime class libraries. Without any elaboration, the "All of these efforts provide a diversity of solutions, which is healthy, but barriers exist which prevent these efforts from reaching a greater potential" from the announcement seems hollow and a serious case of the NIH syndrome.

Lastly, Java isn't even that great a language or has a great runtime that so many talented hackers should be wasting their time on it. Isn't there anyone who can come up with a good general purpose programming language with a good and minimal standard runtime environment and a Free language and runtime specification? I am talking of an imperative language with the ability to easily do OO-programming but where OO is not sickeningly mandated.

IITs
(Disclaimer: I am an alumnus [B.Tech.] of IIT Kanpur with Computer Science as my major, so read the following rant with this fact in mind and your preferred measure of salt.)

I feel that in the last few years the Indian government, irrespective of the party that comes to power, seems hell-bent on killing these awesome engineering institutions which have a largely justified and well-earned reputation worldwide. They started by almost doubling the number of available seats in some departments, notably Computer Science, then by increasing the number of institutes branded "IIT" (from the original 5 to a current target of 11 in total) and finally by making the entrance exams (JEE) much easier for students to crack!

In the short term, they will be able to boast of a much larger number of IIT graduates but will they be able to ensure the quality as well? Are they not killing by dilution the very brand that they wish to exploit? Sheesh!

Worm Bites Hard
Once again, my Hotmail account is being hammered really hard by a burst of spam almost all of it containing the payload for the WORM_SOBER.S worm! Unlike Gmail, Hotmail doesn't show me the IP address from where the message was received unless there is an explicit "X-Originating-IP" header, so I can't trace it to its origins. The irritating thing is that Hotmail already knows that the payload is a worm and thus refuses to let me download the attachment. Why can't they give me an option to tell them to delete such mails immediately upon receipt?

The rate of incoming junk is far higher than previous such bursts and I have to constantly keep cleaning my mailbox. Interestingly, some of the forged sender addresses indicate that someone reading the GCC list has been infected hard - I can't imagine how else the worm would have got hold of the email addresses of such a disproportionately large number of GCC hackers as well as so many CS-related sites.

R.I.P. JumpDrive Secure (16 Sep 2003 - 2 May 2005)
After over 1.5 years of continuous service, my JumpDrive Secure 256MB USB drive has gone dead after I dropped it on hard floor in a moment of unpardonable carelessness yesterday. It was a good buy and it was tremendously useful. On Lexar's site for the JumpDrive Secure, there are incredible testimonials of this drive having survived various ordeals, including being washed with a person's laundry, and emerging unscathed. Alas, no such luck for me!

I even tried to pry it open and see if there was an obviously loose component anywhere that I could set right, but it's literally a couple of chips soldered onto a small PCB connected to a USB plug. As with almost all purely electronic devices, I cannot do anything here. This is rather unlike mechanical or simple electrical devices where I usually can figure out the problem and sometimes rectify the problem.

libtool and libjava Build Times
rth did a few experiments on the libjava build times in the current GCC mainline and found that libtool alone took 2/3 of the total build time for libjava! Very interesting.
Firefox: 50,000,000 Users and Counting
Firefox has been downloaded by at least 50 million users worldwide. Awesome! Congratulations to the Firefox hackers for creating such a wonderful browser loved by so many people.

I hope some ostriches get their heads out of the sand and take a look at the world around them. :-/

GCC Bootstraps
As anyone working on GCC would know, GCC bootstrap times are getting worse. It is so excruciating on some platforms that it is nearly impossible to keep those platforms up-to-date even if people want to. Of course, many more optimisations, new languages and their ever-bloating runtimes, more comprehensive support for language standards, etc. make it inevitable that bootstrap times increase, but does it really have to increase so much?

On my home PC, a "c,c++,java" bootstrap takes more than three hours and a complete testsuite run takes a lot of time as well. Considering that any change to the main compiler needs a complete bootstrap and testsuite run twice over (once without and once with your patch), that too in the best case of no regressions, is it small wonder that many people who might want to otherwise volunteer to help with GCC development just cannot afford to? I have only so much free time left after my job and my family and many a time I feel I am much better off reading a good book or watching a good movie, for example, than literally losing sleep over GCC. Small wonder then that almost all of the prolific contributors to GCC either work on it as a part of their job or on really fast machines with loads of memory (or both).

Perhaps it is not a good idea after all to have a single compiler codebase support so many languages and runtimes at the same time. Perhaps it would be better to start over by creating a well-defined (in terms of the structure and contract) set of language and platform-independent intermediate languages (different avatars of GENERIC and RTL) and have the front-ends and the back-ends as separate projects from the core framework. Of course, if things were this simple people would have done it already, but a man can dream, can't he?

Miscellany
QEMU 0.7.0 is available now.

"Fortress" (PDF) is a new language from Sun. (Yes, courtesy LtU once more.)

80 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!