Older blog entries for ncm (starting at number 345)

15 Sep 2009 (updated 15 Sep 2009 at 08:58 UTC) »

There's this blog posting by one of the original Java Hotspot coders, Cliff Click Jr., talking about performance of Java compared to what he earnestly calls "C/C++". I posted a comment, and he censored it for its "highly insulting tone" and "blatant factual errors" (which he has not identified). No matter. You might not have seen it, there, but you can see it here:

Each posting or comment that uses the construction "C/C++" invalidates itself. C and C++ are different languages with very different performance characteristics. It used to be that scientists and engineers used Fortran for serious calculations because their Fortran programs and libraries ran much faster than C programs. Nowadays, serious work is done in C++ because it's notably faster than Fortran. This is not because Fortran got slower.

For similar reasons, we may also dispose of comparisons with C. A Java (or Lisp) program "as fast as C" or "faster than C" has achieved little. That this is seen, instead, as a major achievement is telling. "As fast as C" is a low bar. (Those of you convinced that C++ is just a preprocessor for C are sadly delusional; I'm sorry to be the one to break the news to you at this late date.)

Those of you promoting GC as a major, fundamental advantage over "malloc/free" or "new/delete" are also sadly misled. It's common for a competent C++ programmer to go for years without ever coding a call to free() or delete.

Those of you dismissing storage pools as "poor man's GC" are similarly misled, and have much to learn about locality and cache effects. Controlling your memory footprint can routinely result in 5x speed differences. Java, sadly, does not offer that kind of control.

There are lots of slow programs in every language. That might help you to feel better about yours, but it's pointless to compare one badly coded program to another. The meaningful comparisons are between well-written programs.

It's not surprising to find these sorts of misunderstandings promoted on a Java forum. People who are serious about performance aren't using Java, and people who are using Java are, perforce, not serious about performance. If you would like to be serious about performance, you will need to look elsewhere.

I'm obliged to concede that the above might seem a smidge inflammatory, but considering the context over there, it's really not inflammatory enough.
11 Sep 2009 (updated 11 Sep 2009 at 20:58 UTC) »

Today is the day to remind ourselves of Americans' mass cowardice in response to a poke, in 2001, by a raggedy band of desert thugs. Is it the most shameful episode in U.S. history? You would need to know a lot of history to decide. In living memory we have Katrina, but we didn't allow ourselves to be lied into a war over Katrina.

1 Sep 2009 (updated 1 Sep 2009 at 02:22 UTC) »

A no-moving-parts windmill is much easier to construct than I had at first thought. Build a chain-link fence insulated from the ground. Mount, on the fence, a mist sprayer (like an ultrasonic humidifier) operated at a voltage differential from the fence, so it extracts electrons from the fence and puts them on the water droplets. In the absence of wind, the droplets are drawn back to the fence, neutralizing the charge. Wind blows the droplets away from the fence, which becomes, thereby, increasingly positively charged. A current from the ground to the fence can do work, such as charging a battery. The more wind you have, the more charged mist it can carry away, and the more current the fence will draw through your battery.

Nothing in this description depends on the size. The fence may be as big as the underside of the Golden Gate bridge, or the space between a pair of skyscrapers. The power available is limited only by the amount of wind that goes through. (The mist is optional, it just adds friction; you could ionize air particles instead.)

Other energy notes: (1), (2), (3).

Avery: So, what you're saying is that you're dropping out of Free Software? That's allowed too.
23 Jul 2009 (updated 23 Jul 2009 at 21:44 UTC) »

I had my first crash of gnome-settings-daemon recently. I only noticed when iceweasel came back up (after its own crash) with ugly fonts and dumb (i.e. non-emacs) edit key bindings. I don't know how to get gnome-settings-daemon running again (is it enough just to run it on the command line? who can tell?) so I logged out and back in, losing my Emacs state. The whole experience felt very Windowsy.

Is "Windowsy" a word? I guess it is now. It means impotently infuriating, but with all kinds of bells and whistles thrown in, some of which actually work, just not the ones that matter.

13 Jul 2009 (updated 13 Jul 2009 at 21:01 UTC) »
Joey: Nice yurt!

For those of you who don't know, the most essential component of a yurt is identical to that of a suspension bridge: the cable. On a yurt, it runs around the top of the wall. Snip it, and the whole yurt drops flat, ready to pack and carry away, although you probably want to fold the latticework the other way.

10 Jul 2009 (updated 10 Jul 2009 at 05:35 UTC) »

This Nvidia 9400 GT v1.1 (PCI 10de:065b) thing they gave me at the office works OK since I put in the new Xorg nv driver (drv_nv.so), version 2.1.14, just released this week. (Thanks Aaron!) I had to build from source, which is much easier than it once was (thank you, somebody); not quite "apt-get source xserver-xorg-video-nv; dpkg-buildpackage -b", but close. Now my GL programs run uselessly slowly, but I assume the 600MB/s load on my main-memory bus is gone, and I'm driving the monitor with HDMI instead of analog. It's really astonishing how little difference that last makes.

Why is it that when I resume Epiphany-browser after a crash (which most typically is because somebody used it to look at Ebay), it makes all the windows full-screen? That had been fixed for a while, and now it's back again.

And, why does running lspci in a regular user account make my Debian Sid laptop unable to fork new processes, or, maybe, unable to read the disk?

9 Jul 2009 (updated 14 Jul 2009 at 06:08 UTC) »

President Obama's stacking of the Justice Department with lawyers drawn from the RIAA had left me mystified. What does he need the most experienced hirable extortionists on the planet for? His continuing failure to prosecute the torturing murderers from the previous administration had left me similarly mystified.

All I can conclude is that the torturing murderers have some means to sabotage Obama's administration, and it is only by holding out the threat of prosecution that he is able to control them. The extortionist lawyers, then, are being kept busy preparing airtight cases against the torturers to threaten them with. Since there's no statute of limitations on murder (many of the tortured were actually tortured to death), the cases may be used any time in the future. At least I hope that's what's going on. Maybe, instead, the spooks are extorting Obama with the threat of such sabotage, and have forced him to hire their extortionist pals and to abjure prosecution. The public evidence supports either scenario.

On a happier note, the best implementation on Youtube, since the original, of Daft Bodies is at -_q8ojxtVB4. It's curiously difficult to find this one by searching. To do Daft Bodies well must be much harder than it seems, seeing how frequently it's done badly (and posted), and seeing just how badly it's done.

7 Jul 2009 (updated 8 Jul 2009 at 07:35 UTC) »

I wonder if the real purpose of Youtube, which costs Google at least a half-billion dollars each year, is really to take load off the Gmail system. Imagine everybody e-mailing those videos around to one another! In principle, Google could share storage for attachments that match, but it would be expensive just to determine that they match, and people would be tempted to alter them enough to reduce such a benefit, e.g. with annotations. With Youtube, there's just one copy, and no scanning.

I tried installing an Nvidia 9400GT video card ($70). The current X.org nv driver claimed to support that model number, but didn't recognize the card; evidently "ver1.1" is different. It's curiously difficult to get the nouveau driver installed in Debian Sid with a new kernel. With no assurance it would know the card, I gave up and went back to the old motherboard i945, which I estimate consumes maybe 10% of available memory bandwidth.

Each time Firefox crashes, when I restart it I have to turn off my network interface so it doesn't eat my machine reloading all the pages. Couldn't there be a mode to leave those pages unloaded until I'm ready to look at them?

21 Jun 2009 (updated 21 Jun 2009 at 05:52 UTC) »

For anybody who thinks the US "stimulus" was enough, check out this unemployment projection :

336 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!