Older blog entries for AlanShutko (starting at number 30)

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.

The biggest problem about Code Red so far is the huge amounts of concern it causes among people who run "personal firewalls" and are freaking out about lots of ARPs and failed port 80 hits. Especially those who have ZoneAlarm set to pop up a window every time something tries to connect to port 80. They complain "This is ridiculous, I can't get any work done because I have to keep closing this popup! Make these attacks stop!"


There's little more frustrating than learning new things without the chance to use them.

I've been reading all sorts of guide to good programming. Design Patterns and the like. Unfortunately, I'm currently in a job where nobody's heard of SDLC, nobody has time to apply it, all architectural work was done years ago, and it's a matter of adding a business rule here and a report there. OO? Not even a consideration. We can't even come up with a decent set of internal tools, either because nobody will agree on them, nobody is given time to implement things people agree on, or they are still-born because "you can't teach all [five] of the developers to do that."

Now, while rigorous software design could surely help this company, it's hard to convince other people of that where average projects need to be done in a week and there are vast expanses of code that are so fragile that any attempt to modify them break... even when the person doing the modification has been with the company for >10 years.

This has taught me something: you must keep some distance from customer demands. Part of our problem is that we try to provide extremely short turnaround on customer requests, quoting them a price and due date before getting anything more than a vague request. There are no requirements drawn up, yielding the expected iteration of code, test, deliver, repeat. There's no time for reflection, to think whether the architecture needs to be changed, or how this should be generalized.

Regression testing was attempted and abandoned before I arrived at the company, and internal documentation is of the "Ask Bob" variety.

Combine this with the report that ebizo mentioned, and it amazes me that any software works at all. Where are the companies that follow good practices? (And are any on Long Island hiring?)

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