Older blog entries for ncm (starting at number 423)

ryuslash: Your dilemma has been hashed over by many, but it's a false dichotomy. There's room for different licenses, for different purposes. People get passionate about the BSD license when they think about writing code at one job and then not being able to use it when they move on to another. People get passionate about GPL when they think about their work being taken by a competitor and used against them. Which of those scenarios bothers you more dictates your choice. Sometimes it's one, sometimes the other, sometimes something else entirely, and you use the license that achieves what you want. Licenses aren't religions, they're just machines.

I just learned that Brendan Kehoe died last night. Sic transit

This is a post in support of the Tau Manifesto, and Tau Day, 6/28. It's silly to memorize an absurd number of digits of pi and then be obliged to double them before they are useful. Calculators need a "tau" τ key. Programming languages need a TAU constant. Where else than in a formula involving pi do you encounter an r² without a ½, or an r³ without a ⅔?

I have discovered that the top of a broiling pan -- the bit with the ripples and slots -- is the perfect place to perch a laptop that (stupidly) depends on cooling air from underneath. Turn the thing upside down, so it doesn't scratch the table when you put it down.

1 Jul 2011 (updated 1 Jul 2011 at 01:50 UTC) »

I just got a DSL line in. In my area, only AT&T can touch the wires, so I had to get an AT&T landline ($17/mo), and then order Sonic.net DSL service ($15/mo, 2.4Mb/s). It took from 22 May to June 11 to get a dial tone, and until the 17th to persuade AT&T to turn on the data service. Sonic.net were very helpful and courteous throughout. I just wonder why they're still running kernel 2.4 on their shell-account box. (Apparently DSLExtreme was good, once, and now isn't.)

The current unstable Debian kernel, linux-image-2.6.39-2-amd64, reliably panics on my boxes. This happens on an old Core2 duo and a new i7 quad. It's hard to be sure, but it appears to fail to mount / ("[: not found, mount: not found" etc.). A bit of googling hints that it's really a problem with old udev versions and initramfs, but updating those and their dependencies and reinstalling the .deb doesn't help. It boots a 2.6.37 kernel from the same respository without complaint.

This i7 quad is new. Astonishingly, it feels faster than the core2 even at the Grub prompt.

19 May 2011 (updated 19 May 2011 at 19:17 UTC) »

I have finally discovered a clue why Metacity sometimes loses its ability to manage windows and pointer focus. It happens when I run a Qt program. I didn't realize this until I ran a second Qt program some time after the first. (The programs were Qgit and Valkyrie.) It doesn't seem to matter whether it's Qt3 or Qt4. It's hard to blame Qt for this, but I find myself avoiding Qt programs anyway. Restarting Metacity doesn't help; it's as if something is messed up in the X server. Maybe I'll switch to a new window manager. Can't switch to a new X server!

12 Apr 2011 (updated 13 Apr 2011 at 05:48 UTC) »

Thanks to new member DRMacIver, I have learnt of a new language called Clay that seems possibly interesting. Indeed, besides details arising from its immaturity, Clay's only readily apparent oddity is that argument passing is strictly by reference. Otherwise, it has proper destructors, supports full-on generic programming cleanly, and lacks what Stepanov called "O-O gook". Is this the fabled Glorious Successor to C++ of song and story? If not, it's the closest approach I have encountered.

6 Apr 2011 (updated 6 Apr 2011 at 19:20 UTC) »

Hating every existing language is the first glimmer of awareness.

The second comes when you have started inventing languages meant to be better, and find that they are all worse, except the ones that are far, far worse. They share almost all the fundamental flaws of the language you hate most, but with extra fundamental flaws of your own. If you are perceptive enough, you discover you have no idea what really makes a language useful.

The third comes when you realize that no one language is right for everything or everybody. You begin to think your only hope is a completely specialized language, such as one uniquely suited for left-handed color-blind cartoonists, or for cats. ("No one could reject a language made just for them!" But they do.) Real problems refuse to confine themselves to what your language is supposed to be best at, and keep washing over into where it is worst. ("But it has first-order functions, and it's case insensitive! Who really needs speed anyway?")

The fourth is when you realize that ideology works no better in language design than in governance, and let real problems constrain the design. Creativity thrives on constraints. Discovering what are the real problems turns out to be way harder, even, than getting a language to help solve them without itself becoming a worse problem. Poisonous complexity emerges at every turn. Formalisms stubbornly refuse to solve problems all by themselves, or prevent them.

Finally you realize that while luck is the lion's share of what makes a language successful, failure can always be traced to fatal flaws the designer was (and usually still is) blind to. First your language has to be good enough, which is nearly impossible, and then it has to be impossibly lucky on top of that. Then you have to work hard, too.

People use a language despite everything about it. Now, as in any quest for enlightenment, we return to the beginning.

1 Apr 2011 (updated 1 Apr 2011 at 12:14 UTC) »

This is the first laptop I have ever had whose battery was good for more than 45 minutes. It says it's good for three or four hours, and seems to be. I know I have mjg59 and arjan to thank for this, among others.

I'm getting increasingly testy toward people who think they know all about radiation exposure, and how many millisieverts they can absorb without worrying. (I'm talking to you, Ryan.) It's not about radiation you can measure with your handy geiger counter or dosimeter. It's about radionuclides, isotopes of common elements that get incorporated into your body, in your lungs or bones or thyroid, and then sit there irradiating one spot day in and day out. An invisibly microscopic speck of plutonium in your lung exposes you to a tiny, tiny dose of radiation -- practically negligible, by Federal standards, but the alveolus where it lodges is where the cancer will start, ten years on.

One of my daughter's chickens was eaten by a "ring-tailed cat", a native Californian predator not closely related to Felis cattus. I had never heard of them, but '49ers were known to have kept them as pets.

Google has finally jumped the shark. They actually hired James Gosling, whose last gig was to drive Sun Microsystems into penury and Oracle. Now, Sun seemed to last as long after he started his campaign, there, as Google likely had left anyhow. But! we now know the instrument of their doom. (Notice how, nowadays, Google Maps often doesn't finish sending its map tiles? Hmm. And they hired Avery, too. Double hmmm.)

This is the place where I complain about Linux Inotify. Would it have been so hard to report the inodes?

Can somebody tell me why Linux distributions continue shipping the terminally ugly Liberation fonts, when Linux Libertine is sitting right there?

22 Mar 2011 (updated 27 Jun 2011 at 22:09 UTC) »

This entry was posted using Chromium as packaged for Debian. Thus far, Chromium has been much, much nicer than Chrome, mainly because Chrome ignores my fontconfig settings (which specify Linux Libertine serif fonts everywhere), while Chromium obeys them. I even have hope that I can make the ^A and ^E text edit keys work right. After that, maybe getting it to render standard ligatures (such as "ffi", "Qu", and "Th", and on my system, "st" and "ct") might even be possible. Firefox does it.

As far as I have been able to determine, Intel Arrandale support (needed for the Dell Latitude e6510 with 1920x1080 display) in the drm-intel-next branch off 2.6.38-rc7 is now fully functional, including suspend/resume, gnome-display-properties, XVideo, GL, and DPMS blanking. Apparently it's all expected to end up in 2.6.39, none too soon. Maybe Sandy Bridge support will be a little more timely. I'm guessing that the reason it's so hard is that the win32 driver writers were able to pester the hardware people when the docs were ambiguous, but by the time the Linux drivers are to be written, they've all moved on to other projects, and anyway can't remember what-all bugs their design shipped with.

I was almost won over by Apenwarr's encomium for Etherpad, and I asked about getting it installed at work to use instead of Google Docs, which is getting increasingly hard to tolerate. Unfortunately, it appears to be implemented in Java and Scala, which (for very good and sound reasons!) they would prefer not to put on their nice clean, well-functioning servers. So, now I'm looking for an Etherpad workalike written in something reasonable, e.g. C++. Then LWN spills the beans on something called "Fossil", an integrated bug-tracker, wiki, and distributed version control system, and I start to think I need that too. But maybe what I really need is a fork of Fossil with an Etherpaddy wiki, a Traccy bug tracker, and a Git back end. In the meantime, I struggle with Review Board's intolerance of Git diffs. Apparently you have to pipe
Git's diff output through

sed \
-e "s/^--- a\/\(.*\)/--- \1 (revision $*)/" \
-e "s/^+++ b\/\(.*\)/+++ \1 (working copy)/" \
-e "s/^diff --git [^[:space:]]* .\//Index: /" \
-e "s/^index.*/===================================================================/"
with $1 the old svn revision number.

Speaking of Avery, I'm mystified why he thinks rigorously defensible parsing of arithmetic expressions is somehow difficult or messy. Just about every yacc or recursive-descent example I've ever seen included a clean and complete arithmetic parser, with nice term-and-factor precedence handling. What am I missing? Am I improperly presuming sanity?

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