Older blog entries for ncm (starting at number 444)

I built Rust 0.6. I don't know if it's the Glorious Successor to C++, but at the very least it's the Glorious Successor to Haskell. Probably Git-annex needs to be translated to it. Learning Rust will be worth serious effort: powerful, safe, parallel, link-compatible with C, but faster.

I have solved IKEA. I drive into the parking lot exit directly to the "5 minute" loading zone, park there, roll an abandoned cart into the store exit, past the registers to the "self-service" warehouse racks, load up, pay, and roll out again in five minutes.

I'm going out on a limb, so to speak, to suggest that there is no way your typical sauropod could support its neck extended far from its body. The resulting torque would crush the proximal-most cervical vertebra. They could raise their head to full vertical extent (perhaps with the aid of auxiliary hearts in the throat to keep the blood rising) and lower it to drink, but only with a big, rolling inverted-"U" bend in the neck. Moving its head horizontally away from the shoulders would have been extremely painful.

Why are ideas cheap?

Anybody competent always has far more worthwhile ideas than has while to work on them. Nobody else competent has time to work on them either. Good ideas protect themselves: only the best recognize the best ideas. It takes a great deal of hard work to make any idea valuable. The best ideas just evoke the most work. Mentioning a spare idea, though, might spark another one good enough to make you (or them) drop what you’re doing to pursue it.

There are reasons why more happens where information is shared freely.

An apparently little-known $hack: you can borrow up to half the value of your IRA or 401K account on your own say-so, just by filing a form. You do have to commit to paying it back, on a schedule, with interest, but you pay the interest to yourself.

Upgrading from kernel 3.6.x to 3.7.x on my laptop with i915 graphics chip (Arrandale/Ironlake) resulted in a crazy console screen and reliably locked-up X. This turned out to be a bad interaction with kernel IOMMU activity, which defaults to "y" in the kernel configuration. That particular interaction will probably be fixed (at some cost in performance) in 3.7.10 and 3.8.1, but I have it on good authority that you are much better off not enabling IOMMU unless you really need it. Apparently you only really need it if you are running guest OS images that need access to physical hardware unmediated by the host OS. I.e., you don't need IOMMU. On a distribution kernel, the boot parameter to fix that appears to be "intel_iommu=igfx_off".

I've been using libssh2 at work. It turns out to be remarkably buggy in its flow control, but fixably so. I'm fixing it.

mjg59, Matthew Garrett, is very, very smart. That is a net good, but it makes him uniquely unqualified to judge the merits and failings of Gnome 3. Matthew works under the most grueling conditions, where UI infelicities are among the least of the challenges he overcomes with apparent ease. Our work challenges the rest of us quite enough without additional interference from an opinionated desktop environment.

31 Dec 2012 (updated 31 Dec 2012 at 08:47 UTC) »

Here is the most satisfying function I have written in years:

int init_iovec_from_circular_buffer(
struct iovec* iov, char* buf, size_t size, size_t tail, size_t head)
int count = 0;
if (head < tail) { // wrapped
iov->iov_base = buf + tail;
iov->iov_len = size - tail;
tail = 0; ++iov; count = 1;
if (tail < head) {
iov->iov_base = buf + tail;
iov->iov_len = head - tail;
return count;
It sets an iovec array to point to the occupied part of a circular buffer, ready to pass to writev(). Pass trivially different values for head and tail, and it sets up iov to pass to readv(). If it can be improved upon, I don't know how.

dmarti: Thank you, as always. The Xiph article was especially enlightening. Mims's article wouldn't load, although I didn't try enabling quantserve's javascript.

But Simon Doonan cannot be trusted. He is in thrall to Camille Paglia, whose metier is rhetorical tricks that rely mainly on confirmation bias. Not everything Paglia writes is false; only (1) what disagrees with people equipped to know better, or (2) what seems gratifying to believe. But that's almost everything.

I have installed Cinnamon, and tried both Cinnamon and Cinnamon2d. Both crash frequently, although I have been able, with a bit of cleverness, to get them restarted without logging out. Right at the moment the 2d one is taking, as reported by top(1), 151% of a CPU to do basically nothing. The autohiding panel flutters like an ingenue's eyelashes. Overall, all I can say in its favor is that it's mostly not so bad as Gnome 3. I will be switching back to Mate, but have become curious about E.

My daughter is learning Russian on her own, using memrise.com. The web page construction is kind of clunky, but wow! Learning a language through to basic fluency in 20-30 hours is very appealing. I may actually get to learn Arabic and Khoisan. Khoisan is the oldest language in the world, spoken mainly in the Kalahari now. Linguists seem to agree, to the extent they can agree at all, that Arabic is the most beautiful to listen to.

It is distinctly possible that I may get to live in my house by Christmas.

27 Nov 2012 (updated 30 Nov 2012 at 10:58 UTC) »

Epson has finally released official Linux CUPS and SANE drivers for its Workforce WF-2540 "all-in-one" printer/scanner gadget: (iscan_2.29.1-5~usb0.1.ltdl7_amd64.deb, iscan-data_1.19.0-1_all.deb, epson-inkjet-printer-201211w_1.0.0-1lsb3.2_amd64.deb). The scanner doesn't work over wifi: the scanner grinds for a bit, SANE reports "I/O Error", and the scanner control panel LEDs flash until you power-cycle. It only works with the (old-style) USB cable plugged in, but then it works well. So, don't bother with their iscan-network-nt_1.1.0-2_amd64.deb unless you want to help them debug it.

It's been many weeks since 32-bit Firefox running on my amd64 Linux last crashed in the cycle-reclaimer. Congratulations to somebody! The 32-bit version is nice because it never leaks beyond 4GB :P.

Aphorisms for posterity:

  • Pavement is real, paint is just an opinion
  • Watching a progress bar does not count as working
  • Archaeologists will note freeway ramps as the signature religious edifices of the 20th century

Here's the best idea I've seen in a long time:


There are similar petitions for a bunch of other states, but Texas has more signatures than all the others combined. I'm not Texan, but I signed. The funny thing is, Texas, uniquely, is legally allowed to secede with no say-so from anybody outside Texas. That was one of the conditions Congress agreed to when it took Texas in. Texas controls 36 House seats. Let them take Oklahoma with them, and that's 41 House and 4 Senate seats.

The best thing is, they would immediately declare war.

4 Nov 2012 (updated 4 Nov 2012 at 19:45 UTC) »

I just brought home an "Epson WorkForce WF-2540" "all-in-one" printer/scanner to use via wifi from various Linux and Android machines in the house. Unfortunately, since Apple gave CUPS the heave-ho, specs in CUPS from manufacturers for new printers seem to be lagging. After extended experimentation (misled by anti-clues in macosix drivers), I find that telling CUPs you have an Epson "Workforce WF-845" seems to work OK. This probably is true for the new WF-2530 as well. This seems like a pretty mature device. It has a USB "device" socket and an RJ45 ethernet socket for if you don't have wifi, and a USB host connector, apparently for talking to your camera or USB memory stick. I haven't tried those, or the scanner.

This being the eve of the election, there's just one thing I'd like to hear at a debate: "If you have to lie to make your case, what does that say about your case?"

The best deal on a webcam/mic I've found lately is a "Gear Head" WC740I (or just maybe WC7401) "Plug-n-Play 1.3 MP WebCam for PC" for $15. It worked immediately when I plugged it in, using the standard UVC driver, no fooling around. I don't know how common this is, but it has a mirror ring around the lens so you can tell if it's pointed at you.

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