I finally installed spamassassin. My email address survived pretty well for two years, but I've started to get 5 or more emails per day now.

In the spamassassin docs it mentions that you can use your old email addresses as a source for spam. This makes me wonder if distributed spam-finding systems involve disseminating email addresses for spammers to find. Has this been done?

I learned about tsort today. It's a UNIX utility that takes as input partial orderings and returns sorted output. This can be used to determine if a directed graph has cycles since it prints to STDERR if it finds one.

It would be nice if /dev/null/* could be written to. For example echo "foo" > /dev/null/foo gives an error, but really, why should it? (In that same discussion the facetious idea for subdirectories of /dev/random came up. For example /dev/random/even, /dev/random/prime, and /dev/random/gaussian.)

I recently found a new use for my digital camera. I was hiking in a park in Portland and needed a map. There were no paper maps available, just one big plywood one. One snap later and I had a great 4MP map of the park ready for me to zoom in and scroll around on.

It would be really cool if digital cameras could digitally sign the pictures they take. I'm not sure how feasable this is to do securely since the private key for the camera would have to live in some form on the camera. Even if hardware modifications would be needed to extract the key, that would probably be enough for most use if the camera were tamper-evident.

This might improve the admissability of digital photos in the courtroom. It might also make it easy for editors to avoid the recent LA Times photo that was doctored. For photojournalists one would probably want a wrapper format that included the full, signed image, along with cropping and color correction information.

I'm quite impressed with MichaelCrawford's Living with Schizoaffective Disorder article. I have had some experience around someone who was mentally ill; seeing someone smart and rational discuss these issues publicly is a great step towards destigmatizing this class of illness.

To me metadata is one of the coolest things about digital cameras. I would love to see GPS data included as well. I'm sure it won't be too long. Either way, having my Gallery pictures say things like “2/25/2003 17:33:54 146mm 1/30 f/3.0” under them is very cool.

I had some harsh words for Snapfish in a recent diary entry. I since heard back from them that the color distortion I experienced was a fluke. I may try them again, but so far I've had great luck with Snapfish. Their customer service has returned my emails quickly and competently and the image quality is great.

I implemented Monte Carlo Localization for my Robotics class. It's a great example of a simple idea that works really well. In the process of that I discovered that math.h includes the gaussian error function. Also, I learned that Maple can generate C code. Look at Maple's codegen page for details.

Last week I attended a LinuxMovies meeting, which was interesting. It was interesting to hear about CinePaint and it's forking from the GIMP. While it's too bad that the projects are diverging, it really sounds like the tools want to be too different. Perhaps low-level things technically could be shared, but doing so probably isn't in the best interest of the projects as a whole.

I got digital prints from Shutterfly today and found them to be massivly better than prints from Snapfish.

I found my prints from Snapfish to be washed out, and to have color distortion around edges. I haven't tried the default Shutterfly settings, but they do let you turn off all pre-processing, which is what I did.

As part of a web database project, I've started to wonder what the “correct” way is to enter data into a database. It seems to me that having python scripts call SQL insert statements directly isn't good encapsulation, since changes to the database structure would break it. We have been using database functions for this, however they are limited to 16 arguments which isn't great when you are trying to input every possible address field, for example.

How is this done in real life? It seems like there should be something comperable to a view, but for doing insertion.

I set up a gallery (gallery.sf.net) for my photos. I'll try to set it up so it shows the technical information about all of the pictures, but at the moment jhead, the EXIF reader that Gallery supports, doesn't seem to want to show as much metadata as metacam does.

Someone (with too much power) decided that my school is not prepared for terrorism and now all but the "front" door to every building is locked douring business hours. One of my professors posted on a chat list that this measure was tantimount to wearing a tinfoil hat to protect from fallout. To make his point, he has been wearing a tinfoil hat.

I really hate how fast food places think sextuple-thick milikshakes are desireable. I only get milkshakes at places like that when I'm on a driving trip, but really, who wants to suck icecream through a straw. (I wonder what the dynamic viscosity of a triple-thick milkshake is.)

I went flying yesterday and had a great time. The fact that I have a lot of sailing background was helpful for feeling comfortable. Here's a picture of the Mudd campus. (Yes, that really is basically the entire campus and yes, it was a smoggy day.)

I went to a wine tasting today. I had no idea white desert wines existed. They are hardly wine. One could say they are just candy, but at the same time, I quite like them. I'm impressed.

I watched AI for the first time last night and really liked it. Like many I'd heard mixed reviews and didn't watch it in theaters. I still don't completely know what to think, other than that it's interesting. It did make me feel deeply sad, though, more than any movie I can remember.

In robotics, my group has droped the Palm Pilot Robot made by Acroname in favor of a Handy Board powering a Lego robot. It amazes me how difficult the Acroname robot was to work with. Granted we were using GCC which is unsupported, but their API really seemed hackish, complete with #define-ing blocks of code to create cross-platform compatability. Yuck.

The Handy Board worked great the first time, complete with awsome step-by-step photo instructions included in the Linux Wizard we used. If you are writing a wizard fore configuring hardware, try using real photos, it really increases your “it worked for me” credability, if nothing else.