Older blog entries for AlanShutko (starting at number 32)

I've been getting into Common Lisp heavily lately. Working with Emacs Lisp has always been a great change of pace from daily work in C or Java. Things like map, with-*, and the delightful development environment are great, but the biggest reason is that it's a completely different mindset. Lisp doesn't make you bother with declarations, recompile cycles, or loading a separate debugger.

Common Lisp may not have the extremely portable library called Emacs, but it's a lot faster, and has features which make

My play project is a DVD database. Not like the pathetic ones you see on slashdot, which index the movies and may, if you're lucky, link to Amazon. No, I want a database that fully describes my DVD collection. It'll start with the release (the thing you buy at the store), progress down through the case (Monty Python's flying circus has a box with a bunch of keep cases), through the disc (or as I prefer to call it, the shiny thing), describe the main feature, the extras, the audio tracks available for each, etc. The initial use case is to be able to decide if I want to buy a new edition of something, knowing as much as possible about what I have. Right after that is to let my family know what I have so they don't duplicate them during the holidays.

It's just great to experiment and futz around interactively. For example, here's my proof-of-concept Amazon search:

(setf result (xmls:parse (net.aserve.client:do-http-request "http://xml.amazon.com/onca/xml3" :query `(("t" . ,*associate-id*) ("dev-t" . ,*developer-token*) ; ("AsinSearch" . "0439139597") ("KeywordSearch" . "Harry Potter") ("mode" . "books") ("type" . "lite") ("f" . "xml")))))

(assoc "Asin" (cdr (assoc "Details" (cddr result) :test #'equal)) :test #'equal)

This uses xmls to parse the XML and Portable AllegroServe to talk http. CL may not have the huge quantity of libraries that other languages have, but I'm still happy how easy it was to get together!


I'd bet you're running into a stack-size limit. Check ulimit -s to see if you have a limit currently defined. If so, increase the limit or turn it off.

Stack size limits can be a bit tricky to diagnose since the segfault show the line where the variable was defined.

I think people concerned about perfectly duplicating Word's layout should realize a few facts.

Word's layout has changed over the years.

Word's layout depends on the specific metrics of the fonts involved. I believe that the metrics of the usual fonts may have changed slightly over the years.

Word's layout depends on the specific printer driver you are using, since it modifies the font metrics depending on the printer driver. (ISTR there's a way to turn this off recently, so add this to the above.)

Word users exchanging Word documents between each other can't depend on the document looking the same way on each machine. This has been a problem for Word users for years. Since these problems are inherent to the design of Word. A Linux project to exactly duplicate Word's rendering engine will still have problems with a document looking different than it looks to the person who wrote it using Word. That's why I think that it's more important for a Word formatter to try to format things well, rather than try to match a target's evasive maneuvers.

There is a place for a formatter which always makes a document the same way. Word users have been asking about this for years. (WP users too, once it started using Windows, I think.) This is the same reason that Knuth went through such pains to make TeX's output the same wherever, on whatever. But a formatter can't do this and match Word's erratic output.

Ah, the simple joys of free software.

With all the Gnome/KDE/Openoffice/Mozilla megaproject work going on, it's easy to lose track of the real point of the movement. Open source isn't just so huge groups of developers can erect major edifices. That's great! But after the glamorous work is done, free software keeps helping people.

I'm saying this, even though you all know it, because this week has been a good reminder in why I use (as opposed to write) free software.

I recently abandoned my Palm III and switched back to Emacs's diary for my calendrical needs. It's nice, but I found that since the calender view didn't distinguish types of events, I couldn't look at a month and see what's going on in a glance. I fixed that by allowing sexp entries to specify a face, so that I could tell at a glance when I was on-call during a holiday that coincided with someone's birthday. Patch mailed off.

I discovered someone had finally written an Emacs Lisp Z-code interpreter called Malyon. (It's been out a couple years, I must have missed its release.) But it had some problems under Emacs 21. Easily fixed and another patch sent.

This basic plot repeated itself for some more elisp and some other utilities. None of the patches have seen a released version yet, but they've been pretty well received so far. The important thing is there are now some problems that I don't have anymore.

Not much been happening recently. Work's been busy and my free time has mostly been spent setting up our new 5.1 speakers. That, of course, involved moving all of our furniture around again.

Since I've recently been doing lots of research and futzing with speakers, I'd have to disagree with chipx86 about the merits of using "computer" vs. "tv" speakers. Generally, all computer speakers are are a set of small, not entirely great speakers with a built-in amp somewhere. If you want better sound, better speakers are in order. I've got a set of 5 Polk Audio speakers. Certainly not the best, but we liked their sound and they were in our price range.

As chipx86 said, you can't hook these directly up to a computer. I'd recommend hooking the computer into a receiver via a digital connection. I've got some experience with this, running an MP3 jukebox for our home over a digital connection to our receiver. I picked up a cheap es1373 card at a garage sale, and found a web page telling how to use the undocumented digital out it had.

Why digital out? It'll give you much better sound. I tried both a normal analog out and the digital output from my card, the digital was a lot better. The computer is a very noisy environment (electrically) and I think my receiver probably has a better DAC than the cheap sound card.

But back to the speakers, I don't imagine there will be much of a benefit to computer speakers over a set of normal speakers, provided you have the right equipment to drive them. Computer speakers would be easier to set up, and probaby equivalent to a set of small satellites from a TV system, but you can definitely get better speakers than are sold for dedicated computer work.

No time for free software today... I got my GBA Afterburner yesterday and now I can dig out the soldering iron and install it.

Not much up here. Layoffs at work, everything busy.

The main reason for this diary entry is that I decided I needed a new ghostscript, and went to get the source. Picked up the GPLed 7.05 and went to compile.

It's been a while since I've compiled GS. Mostly because I remember all the hassle I had to go through to get everything right. They've fixed all that. ./configure && make && make install and I'm looking at a shell prompt thinking "It's done?!"

Great work, GS crew.

welisc: Having been forced to figure out some of Lincoln's code, I wish he would have tried to learn a new paradigm... I've found that scientists who look at programming as "just another skill" are more likely to produce bad software than those who try to learn more about the discipline. Their software may work for their purposes, but is often wasteful and fragile. (Why should I need a gig of swap to read in a 30MB sequence, huh?)

In other news, clients playing yoyo with the schedule. No time to work on anything personal.

Work continues on Preview-Latex. David Kastrup does all the heavy lifting, but I'm keeping up on the build-related stuff. I haven't had a chance to do the mega-gs stuff (allowing configure to choose the best image type supported by both Emacs and gs, and checking if the installed gs supports antialiasing) but the more critical things are getting done. Nice to work on.

I'm doing more LaTeX stuff myself right now, but since it's a cookbook [currently] without pictures, I don't have anything for preview to preview.


The basic "configure;make;sudo make install" does work in most cases. It works perfectly for me, on a basic Linux box, and has for at least 6 years.

If it's not working for you, it's a bug the maintainers would really like to hear about.

First, a few specific suggestions:

  • make bootstrap is not required if you get the source tarballs, only if you download to CVS. If you don't know much about futzing with Emacs source, you should probably start with the source tarball, even if (at the moment) it's hard to get at. (It sounds as if you did have the tarballs, but some people on gnu.help.emacs got CVS and wondered why it didn't work.)
  • If you aren't getting happy X things, it's likely that you don't have all the development packages installed. The configure script gave a nice list at the bottom of what it thinks you do and don't have. You probably need to install the -dev or -devel versions of the relevant packages, then rm config.cache and rerun configure. Emacs can't list the required packages for all Linux distributions, because they all have different names, but if you can come up with text in the INSTALL which would have helped you come to the right conclusion, submit it as a bug.
  • If you still have problems, send as much detail as you have to bug-gnu-emacs@gnu.org. If you have a working emacs of any version, M-x report-emacs-bug will set things up for you.

I don't really know what your specific problems are, since ./configure && make && make install have worked for me on all boxes I've tried (Linux and HPUX), unless they didn't have the development packages installed. If you can figure it out, report it and they'll fix it. If you can't, try posting to gnu.emacs.help with details.

Doing lots of real work and trying to hack when time permits.

djcb: With a revived love of TeX and Emacs 21, you sound like a perfect tester for preview-latex, which will insert previews of math, figures, and tables directly into your Emacs buffer. It's been the only free software I've had time to help with lately, and it's really neat.

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