Please do not say or write "Mr Foo Bar" on first mention - just say "Foo Bar" the first time you refer to a person - after that, you can call him "Mr Bar".
The Economist's Style Guide spells it out nicely. In fact, the "Mr Foo Bar" form is not proper at all, but is sadly used almost universally by (at least) English speaking Indians - just use the surnames with "Mr/Mrs/Miss" as in "Mr Bar".
This is not to say that I speak/write perfect English (I
strive to, but mostly fail), but there are some things that irritate me more than others and this is one of them.
(Originally posted on Advogato.)
2004-04-07
Garbage Collection
Tom quotes Stephan T. Lavavej:"Garbage collection is a morally bankrupt idea".
In my opinion, most developers seem to naively think that Garbage Collection is bad and expensive. They assert that nothing can beat malloc( )/free( ) based explicit (or implicit, via destructors invoked on leaving a scope) resource management. In fact, unless it is a good implementation of malloc( )/free( ), how can you even be sure that these functions will return in a "reasonable" amount of time, every time? You can have sudden stalls under heavy conditions even with these, just as with a garbage collector.
Many nice articles and eye-openers on Garbage Collection can be found at Hans Boehm's site. This article is particularly relevant.
(Originally posted on Advogato.)
In my opinion, most developers seem to naively think that Garbage Collection is bad and expensive. They assert that nothing can beat malloc( )/free( ) based explicit (or implicit, via destructors invoked on leaving a scope) resource management. In fact, unless it is a good implementation of malloc( )/free( ), how can you even be sure that these functions will return in a "reasonable" amount of time, every time? You can have sudden stalls under heavy conditions even with these, just as with a garbage collector.
Many nice articles and eye-openers on Garbage Collection can be found at Hans Boehm's site. This article is particularly relevant.
(Originally posted on Advogato.)
Labels:
advogato diary,
programming
CVS over SSH
Sean Middleditch points out that I should ask SSH to compress the transmitted data by using the "-C" flag. The SSH manual says that I can also set the variables "Compression" and "CompressionLevel" to achieve the same effect. Thanks a lot Sean!
(Originally posted on Advogato.)
(Originally posted on Advogato.)
Labels:
advogato diary
2004-04-06
GCC
Baby's first GCC CVS commit.
"cvs update" over SSH is so slow! Why? Is there anything I can do to help matters?
(Originally posted on Advogato.)
"cvs update" over SSH is so slow! Why? Is there anything I can do to help matters?
(Originally posted on Advogato.)
Labels:
advogato diary,
gcc
GDB 6.1
GDB 6.1 has
finally been released. This is the only version that works
properly with the current GCC CVS without crashing out on the DWARF-2 location lists generated by GCC (that can be disabled by using "-fno-var-tracking").
(Originally posted on Advogato.)
finally been released. This is the only version that works
properly with the current GCC CVS without crashing out on the DWARF-2 location lists generated by GCC (that can be disabled by using "-fno-var-tracking").
(Originally posted on Advogato.)
Labels:
advogato diary
2004-04-05
Bootstrap
In one of those now rare moods that used to be so common when I was new to Linux, I spent most of my week simply updating almost every package on my system to the latest stable release by compiling from source, including glibc! Much of it was a breeze (yes, even glibc), but Qt and KDE gave me the most grief - for some reason, uic from Qt simply omits the KDE headers required to access custom KDE widgets from KDE applications, causing the builds to irritatingly break every now and then. I think it is the fault of the ".ui" files in the KDE distribution, but wouldn't they have built and tested the distribution before release? I am confused, but I haven't found any answers via Google yet. >:-(
GCC keeps regressing in compile speed, especially for C++ code, with the result that Qt/KDE took an enormous amount of time to build with GCC 3.3.3 - I felt like going with Gtk+/GNOME just for this reason! But for some strange, possibly idiotic, reason, I persisted and the result is I must say quite pretty - KDE 3.2.1 feels much faster and is so gorgeous to look at! (For some reason, my display wallpaper change does not take effect at all, though Konqueror is able to display all these wallpapers just fine - does anyone have an idea why?)
An awesome side-effect is that everything is now rendered in TrueType fonts, albeit with so much weird anti-aliasing that it becomes difficult to read text for long. (A few years ago, I wouldn't have believed that this is going to be my primary complaint with my Linux desktop. :-) Who says we haven't made progress here?)
(Originally posted on Advogato.)
GCC keeps regressing in compile speed, especially for C++ code, with the result that Qt/KDE took an enormous amount of time to build with GCC 3.3.3 - I felt like going with Gtk+/GNOME just for this reason! But for some strange, possibly idiotic, reason, I persisted and the result is I must say quite pretty - KDE 3.2.1 feels much faster and is so gorgeous to look at! (For some reason, my display wallpaper change does not take effect at all, though Konqueror is able to display all these wallpapers just fine - does anyone have an idea why?)
An awesome side-effect is that everything is now rendered in TrueType fonts, albeit with so much weird anti-aliasing that it becomes difficult to read text for long. (A few years ago, I wouldn't have believed that this is going to be my primary complaint with my Linux desktop. :-) Who says we haven't made progress here?)
(Originally posted on Advogato.)
Labels:
advogato diary
GCC
Since there is no way my hopelessly unreliable dial-up link at home is going to let me synchronise with the GCC CVS repository (which is around 234MB of checked out files), I checked it out elsewhere(?), archived it and brought it home - from that point, checking out differential updates became possible even on my otherwise useless link. Now I finally have a CVS checkout of GCC that can be kept as updated as I wish.
What took me so long to implement this was the time taken to figure out a way of using TCP/IP over HTTP behind a proxy server so that CVS could be used, a way of carrying large amounts of data back home and the time taken to move my glutius maximus.
So I applied for, and got, write access to the GCC CVS this week, albeit not without problems (why do I always run into such things?).
(Originally posted on Advogato.)
What took me so long to implement this was the time taken to figure out a way of using TCP/IP over HTTP behind a proxy server so that CVS could be used, a way of carrying large amounts of data back home and the time taken to move my glutius maximus.
So I applied for, and got, write access to the GCC CVS this week, albeit not without problems (why do I always run into such things?).
(Originally posted on Advogato.)
Labels:
advogato diary,
gcc
2004-03-29
History of GCJ
Some time back, I stumbled upon "Cygnus Foundry Java Edition - Architecture and Design Manual". This document is somewhat dated and describes the plans more than what really has been implemented in GCJ, but it is still a good read and I would highly recommend it to anyone trying to understand GCJ.
I had my "Aaaahhhh!!" moments of comprehension reading this document, especially with the "Stack Slot Compilation", "Class Metadata", "Debugging Interpreted Java", "C/C++ and Compiled Java", etc sections.
Mark Wielaard (mjw) has created "Planet Classpath", a wonderful consolidation of weblogs maintained by GNU Classpath hackers. Kudos to him.
This weekend I spent time reading "The Java Virtual Machine Specification", something that I should have a done a very long time ago. I didn't finish it and I didn't understand everything, but a lot of things have become much clearer, including the meaning of (ID[Ljava/lang/String;)Ljava/lang/Thread;. ;-)
I also played around with Jasmin, an assembler for the JVM.
In 1995-96, when I was in the final year of my undergraduate studies at IIT-K and Java was this new and cool language for creating web animations, most of us learnt this language and played around with it. "HS" was a guy who went beyond the language and used to play with the class file format and raw JVM instructions - he was promptly labelled a "weirdo" and people used to make fun of him behind his back, but were still in awe of him.
I am such a weirdo myself now. :-)
But seriously, the JVM architecture is quite simple and the instruction set is quite high-level and simple - no decent Java programmer will have much difficulty in understanding it. It is worth a dekko.
(Originally posted on Advogato.)
I had my "Aaaahhhh!!" moments of comprehension reading this document, especially with the "Stack Slot Compilation", "Class Metadata", "Debugging Interpreted Java", "C/C++ and Compiled Java", etc sections.
Mark Wielaard (mjw) has created "Planet Classpath", a wonderful consolidation of weblogs maintained by GNU Classpath hackers. Kudos to him.
This weekend I spent time reading "The Java Virtual Machine Specification", something that I should have a done a very long time ago. I didn't finish it and I didn't understand everything, but a lot of things have become much clearer, including the meaning of (ID[Ljava/lang/String;)Ljava/lang/Thread;. ;-)
I also played around with Jasmin, an assembler for the JVM.
In 1995-96, when I was in the final year of my undergraduate studies at IIT-K and Java was this new and cool language for creating web animations, most of us learnt this language and played around with it. "HS" was a guy who went beyond the language and used to play with the class file format and raw JVM instructions - he was promptly labelled a "weirdo" and people used to make fun of him behind his back, but were still in awe of him.
I am such a weirdo myself now. :-)
But seriously, the JVM architecture is quite simple and the instruction set is quite high-level and simple - no decent Java programmer will have much difficulty in understanding it. It is worth a dekko.
(Originally posted on Advogato.)
Labels:
advogato diary,
gcc,
gcj,
iit
Subscribe to:
Comments (Atom)
