Video of modern redux “Victory Over the Sun”

This is so awesome: http://max.mmlc.northwestern.edu/~mdenner/Drama/plays/victory/avant.mov (no audio, Quicktime)

When I was in college, I became obsessed with Russian art history thanks to an incredible professor. One of the difficult things to imagine during that class was what Vladmir Malevich’s costume designs for Victory Over the Sun looked like. Can you imagine seeing this in the Russian theater in 1913? Amazing.

I’m so impressed that a group reproduced this, and even more glad that someone posted it to the net.

Using Sub-Selects to avoid FROM-clause inefficiencies in SQL

While i’m on perl.com, here’s an interesting article that probably relates to my recent MySQL (>4.1) projects:

Stéphane Faroult’s article, “How to Misuse SQL’s FROM Clause”. The problem queries involve using the FROM clause to list tables from which no data is returned. These examples can be spotted by the use of DISTINCT to un-join the result set.

While MySQL just recently started supporting sub-select syntax, this detailed description of correlated vs. uncorrelated sub-selects is good material for troublesome SQL queries.

Krang’s KDS tar-based XML transport system

Sam Tregar of Primedia (who wrote the Bricolage SOAP interface years ago) writes an article on perl.com describing the Krang Data Set, an alternative to SOAP he developed after discovering the many pitfalls of relying on SOAP for large amounts of network traffic.

I’ve personally administered, debugged, and generally become pissed off at SOAP-based information transports, for a number of the reasons he’s mentioned. Trying to send useful XML documents en masse over SOAP is like trying to send christmas gifts via USPS. It takes forever to wait in line (that is, if you’re lucky enough to be delivering to a decent messaging server), has stringent packing requirements, is often late, and also sometimes never even reaches the destination intact.

If a KDS sneakernet (or scp-net) is faster and more reliable alternative to SOAP with large XML documents, i’m interested.

A few thoughts about RSS Feed Readers

For some feeds (or categories of feeds), i’d rather have it NOT notify me when there’s new content. Such as humor or gadget news. It’s not urgent, and I don’t want to be bothered. However, other feed categories, such as hot deals, need to be acted on immediately, and should notify me and perhaps be tuned to a more frequent RSS check. If there are server bandwidth concerns, maybe these can operate like stock ticker services, where an extremely high refresh rate or instant access can be for paid users, whereas free users get a 15 minute delay. The feed-level alert and timing issues are present in sharpreader, as i’ve just discovered.

It would be great if this could reflect in the interface more nicely. I’ll do some more thinking about what i’d want to see and write more.

Then, for feed groupings that mostly don’t have original content, it should perform meme-tracking and aggregation among those light blogs or link blogs. Memes tend to go crazy if you’re tracking multiple link blogs.

Confessions of a Car Salesman – Edmunds.com

http://www.edmunds.com/advice/buying/articles/42962/article.html?tid=edmunds.a.landing.feature..3.*

Simply one of the most interesting undercover investigations that could have possibly been done. Edmunds.com hires a ghostwriter of automobile buying guides to go undercover and report back on the other side of the car salesman industry. What you end up with is a humanizing and engrossing look at the lives of people that we love to hate.

As it was also comissioned by Edmunds, it’s also very practical to know if you’re into walking up to car dealers.

Gaming history

So someone asked me for my gaming resume tonight, but since my old quake clan’s website is now out of commission, it was really tough to find this old interview that Jody did with me years ago: http://www.caligirl.net/interviews/q3w/gloucester.html

It has the most complete tournament listing i’ve seen around. One of these days i’ll put up a little gaming history page with some of my old (old fart, that is) stories, pictures, and scans. Hopefully one day i’ll find a free weekend, find my old q2, and record some of my old demos in divx.

Interesting technologies of note

Prevayler – a completely in-memory data store, which operates extremely fast because it avoids object instantiation within J2EE. I had run across this last year at some point, but chalked it up as nonsense. Now that I hear Jot is running with it, it looks like i’ll have to take another look.

Laszlo, an XML-based schema et. al, for developing browser-based rich clients, has been open sourced under the GPL. Interesting stuff.

DropCash COM Object

Here’s something you might find handy: as a C# programming project, I made a donationware-based Windows Component Library for DropCash. Details are at the page. Basically, if you’d like to integrate a DropCash campaign into your existing .NET codebase, this makes it about as easy as can be.

Here’s the DropCash campaign that i’m running along with this project. If it hits my goal, i’ll open source (license undecided) the COM Object so that people can make their own interface styles.

Apache/PHP: $_FILES Array mysteriously empty

Frustrating moment of the day:

A file upload form that’s been working for a long time, suddenly fails. No file uploads work on the entire apache installation. Checking the drive space in the /tmp folder, even though 85MB are left, freeing up space reveals that if there isn’t a lot of free space left for /tmp, the $_FILES array just goes empty without further explanation. No useful error messages, or anything.

Freeing up space for /tmp solves the problem effectively.

Update: Since so many commenters have posted other problems that cause similar effects, here is a quick summary of potential issues that you should check:

  1. Check php.ini for file_uploads = On, post_max_size, and upload_max_file_size. Make sure you’re editing the correct php.ini – use phpinfo() to verify your settings. Make sure you don’t mispell the directives as 8MB instead of the expected 8M!
  2. Make sure your FORM tag has the enctype="multipart/form-data" attribute. No other tag will work, it has to be your FORM tag. Double check that multipart/form-data is surrounded by STRAIGHT QUOTES, not smart quotes pasted in from Word OR from a website blog (WordPress converts straight quotes to angle quotes!). If you have multiple forms on the page, make sure they both have this attribute. Type them in manually, or try straight single quotes typed in manually.
  3. Do not use javascript to disable your form file input field on form submission!

  4. Make sure your directory has read+write permissions set for the tmp and upload directories.
  5. Make sure your FORM tag has method="POST". GET requests do not support multipart/form-data uploads.
  6. Make sure your file destination and tmp/upload directories do not have spaces in them.
  7. Make sure all FORMs on your page have /FORM close tags.
  8. Make sure your file input tag has a NAME attribute. An ID attribute is NOT sufficient! ID attributes are for use in the DOM, not for POST payloads.