Older blog entries for ncm (starting at number 96)

18 Feb 2004 (updated 8 May 2006 at 19:55 UTC) »
whytheluckystiff's Ruby book (really, a long article) made me laugh more than anything I've seen in a long time. Chunky bacon!

The Open Source world (or, anyway, the Open Source Initiative, or maybe just ESR) is in pretty sad shape when it finds itself pleading with some rapacious corporation to free a stupidly-designed language created, in the first place, just to attack some other even-more rapacious corporation. Sun is free, and welcome, to make itself irrelevant to Free Software, and the world at large. It would already be forgotten if not for its multi-billion dollar bank account, which (incidentally) feeds OpenOffice and SCO alike. Java itself is already irrelevant to Free Software: Java needs Free Software, but Free Software doesn't need Java. As Sun fades from our minds, so will Java, and good riddance.

It makes me feel better to think that Free Software is not in similarly sad shape. Then I look at the Mono and dotGNU projects. They're not begging anybody, exactly. One might say, rather, that they're asking for it. I'm not sure which is worse. I guess this is what the mainstream is like: fools make themselves irrelevant, the rest of us (or "them", maybe) go about our business, and it all comes out OK, because we're not in the middle of an apocalyptic struggle any more.

Speaking of worse, I just finished the worst book I have read in years -- "Chindi" by Jack McDevitt. It's awful from the very first line: "The Benjamin ... was at the extreme limit of its survey territory". Each chapter is worse than the last, each deft touch reveals it as the more tawdry. Chapters start with quotes from great but dull works of the 23rd century. The ship captain is gorgeous but unfulfilled. Every character is bored with his or her life and life's work. Reading it was like watching a train wreck. Recommended, sort of.

Orkut has got quite boring. The only thing I'm watching for now is when the membership count of the "I hate Java" community passes that of the "[I like] Lisp" community. "I hate Perl" had been tracking "I hate Java" just twelve members behind, but has lately almost stagnated. Of course nobody hates Python, and probably won't until 3.0, when all the "list comprehensions" and Lispy doodads make Python programs incomprehensible. (Meanwhile, membership in "M-x viper-mode" and "I resent Lisp" creep obscurely upward. Ha ha, they have no idea what lies in store!)

Galeon 1.3.12 on my home machine is still leaking zombie processes like a parthogenetic rabbit. I have to shut it down daily when it hits the 206 mark and freezes. Oddly, that doesn't happen at the office, where I never look at eBay; evidently my wife's eBay usage triggers something nasty. Otherwise it's a great browser.

The real fun in Orkut.com is not in pestering people to be your friends. It's in creating what they call "Communities". Some seem to exist only as badges, so the icon shows up on peoples' summary page and helps to define what they're about. Others are a place to meet; e.g. there's one for my home town. I created the "I hate Java" and "I hate Perl" communities, which are both growing with gratifying rapidity, and the "M-x viper-mode" community, which remains (equally gratifyingly) obscure. (These in addition to Ogg and Advogato mentioned earlier.) It was fun constructing the icons. I couldn't see how to draw a diagonal straight line, in Gimp, so I selected and filled a horizontal rectangle and then rotated the whole thing.

Finally read Steve Martin's "Shopgirl". A real pleasure. Re-read Tom Robbins's "Half-Asleep in Frog Pajamas". (I had read it before, I think, but could hardly recall any of it. That and "Skinny Legs and All" are his best work.) Read Terry Pratchett's new "Monstrous Regiment"; not as good as "Wee Free Men", but astonishingly good nonetheless.

I'm seeing geese flying past the window, now, heading east... East?

The latest version of Galeon is out, 1.3.12. I have high, high hopes. It finally has the feature I had most wanted, Emacs edit key bindings: no more wiping out my whole Advogato diary entry with a careless ^W or ^A. With its independence from libbonobo, maybe it will not leak memory or child processes like 1.3.11a did. Evolution 1.4.5 hasn't crashed on me in a long time, gvim running under libbonobo notwithstanding.

I'll congratulate chalst again, because I doubt he was surfing Advogato the first time.

Got invited onto orkut.com, and created Ogg and Advogato interest groups before they shut down. I'm not sure what that sort of site is for, but anyway discovered that Marc Merlin works at Google. Now I know at least two people there. Coincidentally got invited onto linkedin.com, that looks almost the same in some ways, but is full of CEOs and consultants. Weird.

About layered UIs... every program of any complexity has a layered UI, regardless of its designer's intent. The subset of features that are immediately comprehensible to newbies is one. For experts, the top level UI is always hacking, whether via scripting, registry entries, or recompiling the damn program. Talk about layers is really just about adding more of them.

murrayc (and everybody else coding C++): When you mention an inherited member in a template function body, you have no choice but to prefix it with "this->", or the compiler might just go find some other object of the same name. The natural coding-style implication of this fact is that all uses of members should be prefixed with "this->". Besides making the code easier to follow, it makes for better error messages, and better error-checking. As a nice side effect, it makes it entirely unnecessary to put dumb prefixes on private member names. (Yes, it effectively adds six characters to each member name, which you might think would be a problem, but in practice it just doesn't cause any trouble.) C++98 really is a different language from pre-standard C++, and it calls for different coding practices.

22 Jan 2004 (updated 30 Jan 2004 at 02:58 UTC) »

Let me be the first to congratulate chalst on his new offspring.

slamb: Apologies for not replying sooner, about cancellation and C++. All the cancellation points defined by POSIX are C calls, which are normally declared "throw()". Built with any existing compiler (except DEC's) and C library, they unwind the stack ignoring catch blocks, thus corrupting the process state. Given a jimmied C library that turns them into exceptions, they throw past code that (either in the runtime or, if the runtime is also jimmied, in the user code) wasn't expecting any exceptions, and so probably corrupt the process state. As ought to be needless to say, a corrupt process state makes a poor execution environment for other threads. A useful response would be just to return -1 and set errno each time a cancellation point is called after cancellation, but POSIX people start shrieking ZERO UPTAKE when you mention it. They see no problem with breaking every existing thread-safe C++ library (which they assert are ALREADY BROKEN), but worry about a few vendors taking them seriously if they countenance a C++ binding that preserves existing libraries by being a little different from the C binding. Of course C++ components (e.g. filebuf) could throw, and finding errno == ETHREADCANCELLED or something ought to be cause to throw something, so cancellations should turn into exceptions pretty easily.

According to a status box posted by flphoto when it saves a rotated version of a JPEG image, it is saving losslessly. It's easy to imagine how it could do this, by rewriting headers and then rotating and transposing individual 8x8-pixel cells. This is an improvement, because I had been using Gimp, before, and it certainly does not load and save losslessly.

freetype: Have you read any Terry Pratchett? He continues to astonish with each new volume. Let me recommend the new Wee Free Men. Ach, Crivens! I wish I'd grown up with his books instead of (e.g.) Heinlein's & Tolkien's.

mallum: I have never yet encountered a dog (never mind a pug!) with palette problems. Painting, as an activity, seems better suited to cats. I can certainly imagine pugs with palate problems, though. IMHO the tendency should be culled from the breed via the time-honored method.

Is there something peculiar to participation on the GStreamer project that leads to not answering e-mail? Probably it's good, if it means they're writing code instead. E-mail is a time sink.

My birthday present (appropriately, I suppose, given Gollum's obsession) was enough hours free to see the third installment of the Jackson Lord of the Rings. (Most of what I recall from the books comes via the Harvard Lampoon parody, "Bored of the Rings", with its wee protagonists Moxie, Pepsi, Frito, and Spam.) Among the moments where suspension of disbelief failed were Merry (or Pippin?) and Gandalf bouncing instantly back and forth between the lower battlements and the palace on the hill -- with Gandalf abandoning his post just to save the regent's son, whose only evident value was as a future husband to Eowyn; the horses wading into a sea of pikemen without all being skewered in time for lunch; and Eowyn slicing through three feet of dragon neck (bone and all) with one sword stroke. Did anybody else notice that the Rohanners' only actual contribution, ultimately (besides Eowyn's solo, itself unnecessary), was to provide the new (and now redundant) regent a bride, and a job? The ghosts would have mopped the field with or without the cavalry's arrival. (This last reminds me of David Brin's critiques of Star Wars -- the Jedis never really accomplish anything, although they get all the screen time.)

I'm running Evolution with GVim as the message editor now -- A big thank you to Jason Hildebrand, jdhildeb. No crashes lately, but Evo 1.4.5 still seems to leak zombie processes. (That might be GtkHTML or something.)

Galeon 1.3.11a has the disadvantage, vs. certain earlier versions, of leaking both memory and zombie subprocesses. I am back to killing and restarting it every few days to keep my system from thrashing.

Happy Birthday to me. Turning 42 in 2004 feels oddly rectilinear and cartesian.

I finally found a program, flphoto, that does most of what I need for my collection of thousands of digital photos of my kids. (Surprisingly, it's not among the over 13000 packages in the Debian unstable archive, yet.) I needed a program to present thumbnails of a directory of images, and let me point to some of them and have it rotate them 90 degrees and write them out that way. I had thought that gphotocoll might do it, and installed PostgreSQL because it needed that, but it lacks (so far) any kind of touchup feature, although it seems pretty cool for what it does do. (Hint for those new to PostgreSQL: until you fool with permissions and config files, connect to the database with an empty hostname, not "localhost".) If I could point at an eye and click "no red here", there would be nothing left to wish for.

slamb: It's funny to read about you working on thread-cancellation-safety and C++. POSIX thread cancellation is incompatible with C++, and will be for quite some time. Based on the attitudes of the people who get to decide -- non-C++ coders all -- that may mean "forever". (It happened to Ada.) Actually, it's probably more correct to say that thread cancellation is incompatible with C, as well, because it demands coding discipline that C doesn't really support, and that has never been observed outside the Space Shuttle's autopilot. It could be compatible with C++, more or less, and with non-imperative languages (which doesn't include Lisp, but maybe with Lisp anyhow), but POSIX people seem implacably hostile to the variant semantics needed for workable non-C language bindings.

It surprises me to see people ooh-ing and aah-ing, here, over subpixel rendering. Gnome has done that for a long time (and maybe KDE too). I've had subpixel rendering on my laptop ever since I installed and configured libxft, at least in Gnome-y programs (i.e. almost everything but xterm).

All-encompassing thank-yous to murrayc, DV, Bram, bagder, redi, lerdsuwa, and joey, among others.

Galeon 1.3.11a has one new annoyance over 1.3.10: it puts new blank tabs way out at the end of the list, instead of next to the current tab.

22 Dec 2003 (updated 23 Dec 2003 at 00:08 UTC) »
johnnyb: My condolences for your brother's new (and I assume, your ongoing) virus infection. I was infected maybe 27 years ago, but recovered. Perhaps this fascinating article on toxoplasmosis is apropos. (BTW, are you still a spammer?)

chalst: regardless of substance or validity of the Danish Ministry of Science's criticisms of its captive committee, nothing they wrote can reasonably be taken to vindicate Lomborg or his book. I wonder what was the political motivation for quashing the report... clues suggest a turf battle.

My copy of Evolution 1.4.5 hasn't crashed in quite some time. If I could edit with vi I'd be pretty happy with it. I still use Mutt for mailing-list work.

I'm installing Galeon 1.3.11a now. I have high hopes that galeon will stop crashing, too. Maybe someday it will honor my Gnome Prefs request for emacs edit key bindings. (I suppose I can edit in the ones I want. Has anybody done it already?)

18 Dec 2003 (updated 18 Dec 2003 at 05:49 UTC) »

What I find remarkable about the Danish Ministry of Science ruling on the Danish Committees on Scientific Dishonesty's finding remarked upon by chalst is that Iain Murray was himself so dishonest (evidently as much with himself as with us) as to describe it as "vindicating" Lomborg and his dishonest book. If you read the ruling, which Mr. Murray naïvely quotes from, you find that the Danish ministry did no such thing. They chastised the DCSD for what look to me like minor procedural irregularities.

In fact, of course, the ministry wasn't competent to rule on the book itself, and they didn't. Their criticisms of the committees ring pretty hollow, though. Does it really matter if Lomborg's book was published outside Denmark? Does allowing Lomborg's critics to testify really taint the committee? Does having a sub-committee chaired by a health-science professional, rather than a social "scientist", really weaken its ability to evaluate the work? Does having three subcommittees evaluate it, rather than just one, taint the result?

Despite this Iain Murray's carping, it certainly looks from his own quotes as if the ministry's decision was purely political, and that the report they are suppressing was accurate, if perhaps over-enthusiastic. I find it hard to think ill of people who are so appalled at public lying as to raise their own voices.

His remark about "statist environmentalists", I suspect, was just name-calling. "Environmentalists" must not have seemed derisive enough, so he stuck on "statist". Everybody hates statists, whatever they are.

Went around deleting unused packages on my Debian laptop, to free up disk space. To free up dependencies on older versions of libraries, I had to update a lot of other packages so they would use the newer library versions. I ended up with about the same amount of free space, because the newer versions were generally much larger than the old. :-(

Among the unused libraries I deleted were libqt and friends; the only things that depended on them were libarts and friends, and they were used only by gstreamer-plugins.

Condolences to friends of Chema and Ettore.

7 Dec 2003 (updated 7 Dec 2003 at 19:11 UTC) »

Finally got the Gnome panel to display only two rows of pixels, on my laptop, when it auto-hides, instead of six. Using gconf-editor, go to /apps/panel/profiles/default/toplevels/panel_0 and change auto_hide_size to 2. Voilá! (Somebody got a leetle beet overzealous about chopping out config choices!)

The linuxlaptops.com domain now belongs to Werner Heuser, of Tuxmobil (nee Mobilix) fame, and no one could be more deserving. I should have handed it over years ago. (I'm still sorry, Rusty.)

Wrote my first emacs macro, ever, last week. A bit late... but then, I run emacs in viper-mode.

Saw Down by Law for the first time in a decade or two. Tom Waits, John Lurie, and Roberto Benigni in what might be the world's most perfect film, by Jim Jarmusch.

Thank heaven for chalst. And for murrayc, too.

Evolution crashed "only" once in recent weeks. I just discovered why I had had so much trouble with HTML forms in Galeon, lately: somehow my language-preference had magically switched itself (I never touched it, I swear!) to "English with Arabic encoding". That confuses the content-negotiation apparatus of some web servers, including Speakeasy.net's.

3 Nov 2003 (updated 4 Nov 2003 at 04:45 UTC) »
shlomif: I foresee trouble ahead for you.

mbrubeck, bagder: Congratulations on your various releases, both code and offspring. And, thank you.

More about what many liberals think about Republicans: The dupes would like to be toadies, but can't find anybody to pay them for it. The toadies wish they had the courage to be crooks. The crooks have nothing but contempt for the rest. (Disclaimer: I'm not a liberal, myself.) P.s. to berend: The "day-by-day" strip has about as much zing as Mallard Fillmore. You'll find more insight in Garfield.

Evolution crashed for the first time in almost two weeks. I wasn't using it at the time; it must have crashed when it was polling imap.

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