Blog: 2007-02

Latest  2010  2009  2008  2007  2006  2005  2004  2003  2002  2001
-12  -11  -10  -09  -08  -07  -06  -05  -04  -03  -02  -01

erin.el 0.4

erin.el version 0.4 adds heading renumbering.

Sure Foot Get-a-Grip Ultra Review

On the recommendation of a coworker, I picked up some Sure Foot Get-a-Grip Ultra at Walgreens in Central Square (Cambridge, MA, USA) today. They're elastic shoe attachments with little tungsten carbide spikes for walking on ice and snow. They work very well.

After I bought my pair at lunchtime today, the Walgreens had 3 pairs each of the 2 sizes. $14.99 is cheap protection against a wrecked knee, strained back, broken hip, or bounced brain.

erin.el for Editing TWiki Pages in Emacs

I just released the first version of erin.el, an Emacs add-on for editing TWiki pages.

There are several more easy features I want to add, but I've released it this early morning since I want to use it at my employer's later today.

Memtest-86

The other day, while talking about bizarre problems when plugging the new UPS's USB interface into my home server, I alluded to a possible RAM problem (2007-02-05). Last night, I had an Emacs segfault and a bad MD5sum on a Debian index update, so I downloaded and ran Memtest86. Sure enough, I had a bad stick of SDRAM. It was the one emblazoned "LIFETIME MEMORY PRODUCTS. I pulled it, pulled out my Box-o'-DIMMs, and, from among the dozens available, selected the one with a holographic decal that said "Made in USA."

Not out of any wacko nationalism urge. Although, when Memtest86 appeared to be running clean with the new DIMM, I may have hummed a few bars of the "Team America" theme song.

Scheme and Recursive Functions

It was about ten years ago, as a grad student at Brown University, when I was first exposed to the idea of programming using recursive functions whenever possible rather than only when manually unrolling any recursion is impractical. The wonderful Leslie Kaelbling (this was before she downgraded from Brown to MIT) was telling us that recursion was the Lisp way. Much as I liked and respected LPK, I was skeptical. I'd had a decade of experience otherwise. I'd once found a way to refactor a (non-tail) recursive algorithm of my hotshot mentor's that was overflowing the stack... into an iteration in constant space. I was proud, I was invested, and I had no reason to embrace this a recursion religion.

When I decided to really learn Scheme years later, it wasn't long before I started trying to code my algorithms in tail-recursive functions or closures. (Sadly, my most popular Scheme library, HtmlPrag, was written before then.) I think at the time I was probably trying recursion to get rid of mutations, solely in the interests of speed optimization. A blog quote from my performance-crazed Scheme period:

Been laptopping around town and hacking on Internet agent stuff in Guile. One of the few drawbacks I'm finding to Scheme hacking is that I'm painfully conscious of performance issues when writing reusable modules, but the low-level execution model of a particular Scheme implementation is much more opaque than that of a C compiler. For most rapid-prototyping application work, Scheme is a big win, but I find myself cringing those few times when I'm struggling with how to do something efficiently in Scheme and happen to think of an elegant and super-fast C implementation. For some reason, this bothers me more in Scheme than it has in other high-level languages. Perhaps, with languages like Java, I've already taken a fatalist attitude that the implementation is going to suck by definition. With Scheme, I'd like to achieve a sufficient echelon of Scheme Zen so that I can make it work beautifully and then build greater things than I've been able to in the past. Also, I have the luxury of a few weeks of discretionary hacking time without the burden of work deadlines.

2001-04-28

With a little practice, and heavy use of Scheme's named-let, I got good enough with recursive functions that it seemed the most natural way for me to decompose algorithms.

Last weekend, after some time away from Scheme, I was hacking something in Emacs Lisp, and I found myself reluctantly introducing a flag variable to exit a loop. A tail-recursive form would've been so elegant and readable. Only way to fly.

APC Back-UPS 725

Recently, we had a power outage and my old Belkin UPS lasted only a few seconds. Then we had three more outages within the course of a week.

This weekend, I replaced the UPS with a beefier APC Back-UPS ES 725 that I bought at MicroCenter.

Two disconcerting things...

(1) Although the APC was in a manufacturer-sealed retail box, the unit had noticeable nicks on the bottom and a suspicious-looking QA checklist taped to the side, which made me wonder whether it was remanufactured/recertified. Probably not, but nicks do not inspire confidence in quality.

(2) When I booted up the server with the APC's USB monitoring cable plugged in, I got a couple of what could be memory errors, with Emacs complaining of a corrupt shared library and Firefox repeatedly crashing. When rebooted without the USB cable plugged in, the server behaved fine, and I did not test further. I suppose it's possible that the USB cable was introducing some kind of interference with, say, RAM. (The server's motherboard won't accept ECC RAM, which makes it not great as a server.)

My to-buy list grows: new ThinkPad, sofa, 1U colo server... new home server.

Bush Doesn't Play in Peoria

That's the headline they should've had.

I don't have much patience for Bush articles lately, but this one was amusing:

"Sorry to interrupt you," Bush said to a group of women, who were sitting in a booth [of Sterling Family Restaurant, Peoria, IL] with their young kids. "How's the service?" As Bush signed a few autographs and shook hands, a man sitting at the counter lit a cigarette and asked for more coffee. Another woman, eyeing Bush and his entourage, sighed heavily and went back to her paper. She was reading the obituaries. "Sorry to interrupt your breakfast," a White House aide told her. "No problem," she huffed, in a not-so-friendly way. "Life goes on, I guess."

—Richard Wolffe and Holly Bailey, "The 'Lame Duck' Label," Newsweek, 2007-01-31

Give Bush another six months, and maybe he'll start sending those unpatriotic dissidents to Gitmo for reeducation.

Earlier to... 2007-01

© Copyright Neil Van Dyke      Contact