Older blog entries for ncm (starting at number 432)

3 Jun 2012 (updated 3 Jun 2012 at 17:30 UTC) »

Congratulations to Chris Granger on his successful Light Table IDE Kickstarter project proposal. It is inspirational. I find myself inordinately pleased that he didn't call it LightTable.

Unfortunately, it does not appear that it will be very useful for me or for people like me, programming in type-enabled languages like C++ and (one can hope) Clay, or even C, any time soon. Furthermore, the Java-world heritage implies a tolerance for the slow and stupid (e.g. Eclipse). There ought to be room for a complementary project tuned for those of us working with C++. To that end, I have registered luxmensa.org. (I suffer a fond delusion that Latin-geeks will admire the attempted pun.) The name is meant to imply a spin of the Light Table idea for Real Programmers. I'll hand the name over to anybody who can use it better than I can.

The problem, of course, is that your typical IDE is intolerable for anybody serious about working on code. Tiled windows? Mouse-based editing? Please. We need interaction with shell pipes, embedded editors including real emacs and vim, a deep awareness of git semantics, maybe auto-generating and auto-running of tests and micro-benchmarks of code fragments during editing. The useful features are those that make hard things easier, not those that make easy things mindless, or that automate what would best not be done at all.

Firefox still crashes regularly, but now less predictably. I sometimes wonder if it is AdBlock or NoScript that is responsible for the worst leaks, but I recover my wits quickly.

24 Apr 2012 (updated 24 Apr 2012 at 10:18 UTC) »

I have been running Gnome since 1998. In response to a need for a current version of Libreoffice, of all things, I finally "upgraded" to Gnome 3, and immediately switched over to Xfce. The result has not been entirely satisfactory. Loss of emacs edit key bindings turned out to be fixable with a cheesy bash command. I'm not yet certain that middle-button emulation will be as easy to restore -- I'll have to restart X to find out. The Gnome battery-condition indicator was better than Xfce's, and I miss Gnome 2's performance-graph panel applet. I'm half-tempted to give Gnome "fallback mode" a try, but then I remind myself Gnome can only get worse, while Xfce might actually get better. And who knows? I have yet to try Lxde, E17, and KDE. This feels a lot like the old days.

Firefox still crashes weekly when quiescent, most typically in GC cycle detection. I tried running with ulimit 2G, and it crashed immediately. With 3G it runs for a day or two. It's hard for me to contemplate how absurd this is.

The first functional language that does not depend on GC might well take over the world

8 Feb 2012 (updated 8 Feb 2012 at 11:54 UTC) »

I thought the potentially very interesting Clay language was dead when its web site and mailing list disappeared, but in fact it just moved. It turns out, in the meantime, that they have just released a version 0.1 compiler, a front end for llvm.

When Magellan got to Tierra del Fuego at the southern tip of South America, the people he found there wore no clothes, and would lie down on a snowbank to sleep. If they could do it, why can't we? The answer, as usual, is practice. I determined to raise my base metabolic rate, initially by sleeping with one arm out on top of the blankets. In an astonishingly short time -- a couple of months -- I was finding any sort of blanket too hot, and now a sheet is plenty cozy at 60°F/15°C/298K. I still have a way to go before sleeping in a snowbank, but I have not needed a coat this winter.

Upgraded to firefox 10. Now it crashes unattended, again. 8 and before usually crashed in GC cycle detection. 9 didn't crash unattended, but crashed in regular use, somewhat less often. Now, the 10 crashes seem to have something to do with timer expiration. (Recall this is 32-bit ff running on 64-bit linux.) Maybe now it's just not fooling around for as long after it's gone corrupt. I count this as progress. [I spoke too soon. It crashes attended, too, and in the cycle collector; this time after barely 16 hours running; VSZ 3359988, RSS 2457468.]

Firefox 9 has survived a second week and, more wonderfully, another totally quiescent weekend without crashing. Will wonders never cease?

4 Jan 2012 (updated 4 Jan 2012 at 04:13 UTC) »

Firefox 9, astonishingly enough, survived the weekend sitting totally quiescent on my office machine. Release 8 achieved this very rarely, and crashed shortly after anyway. Congratulations to somebody. Its VSZ is almost 2G, and its RSS is 1.5G, but I don't care -- I have 16G here! But I do wonder what it needs all that RSS for. On my laptop running the amd64 build, it blows right past 2G (at VSZ 2.8G, RSS 1G atm) and thrashes abominably.

You know what they say, though: "If you're not experiencing abominations, are you sure you're alive?"

My great achievement in the final days of 2011 was to replace the motherboard in my son's craigslist-$80 simulator box for $60 plus $11 for a quieter fan, enabling upgrade from a P4 to an old Core2.

2 Jan 2012 (updated 4 Jan 2012 at 04:17 UTC) »

I rented a DVD of Woody Allen's Midnight in Paris and tried to watch it with libdvdread etc. Totem failed, VLC failed, Mplayer failed, but Smplayer succeeded -- for a while. At some point after an hour in, it went a bit crazy and gave up. Apparently many people have been having this problem with certain new movies, lately. I'm guessing SONY has hired somebody to find bugs and too-strict interpretations in Free DVD player software, and provoke them in new movie releases. Anyway, if you want Midnight in Paris, you may get better results by downloading the XVid than buying the disc. To SONY, paying customers are scum.

29 Dec 2011 (updated 29 Dec 2011 at 02:28 UTC) »

My wife had outpatient surgery recently, which involved a nerve block in one shoulder, deadening her arm for the rest of the day. Surprisingly (to me) that was plenty of time to develop phantom limb syndrome, where it feels like there's an invisible arm in place of the real one, that you can't control, and that gets agonizingly knotted and cramped. Vilayanur Ramachandran invented the "mirror box" treatment, where a mirror is held vertically in front of you, perpendicular to your body and between your resting hands. Your good hand is visible only in the mirror, so its image looks like it is the other hand, and that is enough to allow you to control the phantom limb. It worked.

32-bit Firefox 8 running under 64-bit Linux still crashes when left unattended for a couple of days. Running it under gdb, it usually segfaults in an out-of-memory handler while chasing cycles in the Javascript garbage collector.

Running firefox under gdb takes a few steps. You will need the debug symbols, e.g "apt-get install iceweasel-dbg". In gdb,
(gdb) file /usr/lib/iceweasel/firefox-bin
(gdb) handle SIGPIPE noprint nostop
(gdb) maint info sections
(gdb) add-symbol-file /usr/lib/debug/usr/lib/iceweasel/components/libbrowsercomps.so 0x8049480
(gdb) run

The number 0x8049480 above is the first number in the line of output from "main info sections" that contains ".text", and varies from one build to the next.

18 Nov 2011 (updated 18 Nov 2011 at 02:13 UTC) »

Neal Stephenson's newish book REAMDE is classic romp in the Cryptonomicon vein: unpredictable, stuffed with authentic local detail and engaging, slightly larger-than-life characters, and (almost) deadpan send-ups of practically everything, not limited to: jihadists, a junior MI6 agent, Russian mafiosi, Hungarian and Seattlite hackers, Chinese gold farmers, overprolific fantasy authors both trashy and donnish, a palletload of bricks of RMB, leased business jets, an aging Iowan former smuggler and MMO startup founder, a proto-Pak Chechnya veteran, US spooks competent and not, and north Idaho anarchists, among others. The central theme of the book, though, appears to be the adjective "backseat" used as a noun in place of "back seat". He seems to be needling somebody who criticized the usage. "Cooling their heels" figures prominently, too, but it's less obviously deliberate.

I have finally caught Iceweasel in the act of crashing over the weekend when it's unused. Probably Mozilla don't get many reports of this particular failure because I'm running a 32-bit build on a 64-bit kernel. Apparently it runs out of address space during a GC cycle-detection pass. On a regular 32-bit host it would get OOMed long before that point. The 64-bit version happily blows past such arbitrary limits until it takes to thrashing.

13 Sep 2011 (updated 13 Sep 2011 at 10:09 UTC) »

I'm tardy mentioning that this is the time of year when we commemorate the day that the U.S. descended into abject cowardice, bombing thousands who had nothing to do with the event, and shredding every hard-won liberty gifted to us by our forefathers. The number of individuals killed in that event was about equal to the number who died the previous week, and that week, and each week since, of lung cancer. The individuals personally responsible for those drawn-out, painful deaths walk around loose to this day.

On the up side, this was the first Monday in several weeks that Firefox hadn't crashed over the weekend while I was away. I guess this means 6.0.4 is better than 6.0.2.

I re-implemented rsync globbing recently. I think my code is probably better than Tridge's, but I haven't looked yet.

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.

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