Older blog entries for xach (starting at number 97)

Peter Norvig has a nice footnote about Ed Yourdon.

Some dude posted a short CGI handler to comp.lang.lisp a couple weeks ago, and it struck me as so fundamentally wrongheaded that I thought I'd try to do it The Right Way. I've learned a lot in the process, though I can't say I've gotten to The Right Way yet.

Base64 decoding confuses me. The spec says to ignore all input that isn't in the base64 alphabet, but warns that if the input ends on a 3-byte boundary there is no trailing padding. So how can you know when you're done decoding? EOF? Relying on content-length? Ad hoc? It seems to me that if, for example, there were two separate base64-encoded inputs in a file, you would need some external information to figure out where the first one stops and where the second one begins.

Last night, after buying a new hard drive, I added another computer to my home network. That brings the network device total up to:

  • 1 firewall
  • 4 workstations
  • 1 server
  • 1 laptop (with another occasional user)
  • 1 laserjet
  • 1 airport

There are some other random bits of defunct hardware, too, including a very old DEC UDB box.

With that many systems, it was getting annoying to figure out what IP I had given them. Setting up internal DNS with tinydns and dnscache was really easy; dnscache is quite flexible about redirecting queries.

I'd like to get a serious backup strategy going, but DLT media is insanely expensive. I can only afford a few tapes at a time.

Anyway, since the new system is a "server", it will be nice to move things like lpd, tinydns, dhcpd, and samba off my personal workstation.

It's hard to stifle the new hardware urge. I keep thinking "Man, it would only be a hundred bucks to upgrade this thing to a gigahertz athlon. Oh yeah, it would need a new case. Oh yeah, it would need PC2100 memory. Oh yeah..."

I just bought "Common Lisp: The Language" and "Lisp in Small Pieces" from Chapters at a huge discount. The prices, in CAD$, were lower than the prices in USD$, before figuring the huge exchange rate advantage.

jfleck: That quote is on jwz's marginal hacks page. There's also an instance of the perl version in this beautiful rant by Erik Naggum.

Got Metroid Prime, but my Cube is on the fritz. After about 15 minutes it gets "Disc cannot be read" errors repeatedly, for any disc I try. Argh! Despite that, Metroid Prime is a lot of fun so far.

Haven't Lisped much in the past week or so. Been too busy to mess with it.

Going to see George Carlin tonight. Woo!

Just got Norvig's Paradigms of Artificial Intelligence Programming. Rock! I also got a lot done on my Lily bot. I've been hanging around on irc.freenode.net #lisp a bit, and it's pretty interesting, though nobody bit on my question about how to collect and keep track of the various utility functions I'm starting to come up with. And it's also more like #sbcl-hacking sometimes.

7 Nov 2002 (updated 7 Nov 2002 at 03:26 UTC) »

Spent a good amount of time messing around with CMUCL trying to make a bot for a MOO we use at work called Lily. I'm not quite sure how to do I/O multiplexing on a network socket and standard input, but I think I'm making progress. It's fun to actually make a useful program in common Lisp instead of just reading about it. I tried to use dan's DB-SOCKETS package, but I couldn't get it to compile in my CMUCL.

My interest was renewed after reading Erann Gat's old PARCIL code, which implements a simple C evaluator. It didn't look too awful painful, so I figured parsing the Lily protocol wouldn't be impossible.

Also recently learned that Paul Graham's Viaweb setup gave every customer their own Lisp image! That's one way to avoid problems with multiprocessing.

garym: Erik Naggum recently wrote about the "by dummies" thing on comp.lang.lisp. Here's an excerpt:

Never have I seen a book published by a novice for novices, nor heard of such a thing, but that does not mean it does not exist -- the likelihood that I would purchase it or read it is zero, as it would undoubtedly have an off-putting title and cover, probably including the target audience "dummies" or "the complete idiot". I recently reviewed a book in which the author could only be understood to apologize for his lack of mastery of the subject when he chatted endlessly about how hard it was to linearize the material and where he used more promises of what was to come and repetitions of what he had discussed than actual new information in each paragraph, how this and that feature in the topic he discussed "is not easy" to use and understand. It was torture to read and try to lift it to some readable level.

I took a couple pictures to Portland Color to get 8x10s made. The output was a little disappointing; it looks pretty much like a high-quality inkjet print. Which isn't bad, but it's not as nice as the slide. I shouldn't be surprised; I already know that nothing looks as nice as a slide on a light table. I'll have to take some pictures with more vivid colors and interesting subjects, I guess.

I've been working on an interface to Verizon's wholesale order system. Verizon has a website where you can place orders and check their status. Their interface is cumbersome, so a coworker and I wrote a frontend that's much saner and less error-prone. It works acceptably well.

However, Verizon is about to update their web interface, breaking all our software, so I've been looking into alternatives to LWP blasting and HTML scraping. Verizon has an application-to-application interface that uses EDI that looks like it might do the trick. The only downside is wading through literally thousands of pages of "business rules" to find out the small subset we need to work with. It's a scary glimpse into the world of Big Software Projects for Big Companies. It looks like the safe business strategy is to frame programming problems as tedious exercises that can be solved by armies of mediocre drones.

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