“I know how to be subtle. That’s when I use chemical explosives instead of nuclear.”

— Sawtooth, master of subtlety, from Freefall

This can't be good


Vegan Soy Jerky:

Really, if you’re going to eat something that isn’t meat, you’ll enjoy the experience a lot more if you don’t extrude it into a pretend-meat product.

Me? I’d rather have the meat. This looks promising…

Dear Younha,


I understand that your musical career has had a great deal of success in Japan as well as your native Korea (as it should; you’re quite talented), but you seem to have picked up a few things from the Japanese that are best avoided.

more...

Dear Amazon Associates Program,


Report-processing FAIL:

You are receiving this email because our reports indicate that you have sent users directly to www.amazon.com, www.amazon.ca or www.endless.com through paid search advertisements that were displayed to users who searched on keywords which you bid upon and purchased in search engine keyword auctions.

Um, no, I haven’t. It would never have occurred to me to try, and I wouldn’t have expected it to work very well. Did you maybe get your report query backwards and send this to all the associates who didn’t pull this trick? Or just to everyone, on the assumption that 94.72% will just ignore it?

Things that suck


  1. 10% packet loss on my DSL line.
  2. Three hours diagnosing the problem so that I could convince tech support it wasn't my equipment. And, yes, I even had a spare DSL modem lying around.
  3. At least four hours spent on the phone with support at various levels, mostly spent listening to Muzak and repeating parts of item #2.
  4. Being told that it will be 11 days before someone can physically come out and check the lines, since resetting the DSLAM didn't fix it.
  5. Discovering that every other service provider in the area (cable, wireless, etc) has at least a 5-day lead time, and juicy up-front costs for the required gear.

Dictionary update


[Update update: I’ve made a small change to add the full JMnedict name dictionary; a lot of things that used to be in Edict/JMdict have been moved over to this much-larger secondary dictionary, and I finally got around to integrating it. The English translations aren’t searchable yet, mostly because I need to rework the form and add the kanji dictionary to Xapian as well, so that I have J↔E, N↔E, and K↔E.]

One downside of moving a lot of stuff onto my new shared-hosting account is that I have to give up a lot of control over what’s running. Not only do I have to work through an Apache .htaccess file instead of reconfiguring the server directly, but I can’t run my own servers on their machine.

So, goodbye Sphinx search engine, hello Xapian (thanks, Pixy). While it suffers from a lack of documentation between “baby’s first search” and “211-page C++ API document”, it has a lot to offer, and doesn’t require a server. One thing it has is a full-featured query parser, so you can create searches like “pos:noun usage:common lunch -keyword:vulgar” to get common lunch-related nouns that don’t include sexual slang (such as the poorly-attributed usage of ekiben as a sexual position). That allows me to use the same tagging for the E-J searches that I use in Sqlite for the J-E searches. [note: everything’s just filed under “keyword:” in this first pass, and the valid values are the same as the advanced-search checkboxes]

I need a full-text search to do English-Japanese, because the JMdict data isn’t really designed for it. There are hooks in the XML schema, but they’re not used yet. As a result, my search results are a bit half-assed, which makes the new query support useful for refining the results. I can also split out the French, German, and Russian glosses into their own correctly-stemmed searches; with Sphinx, there was one primary body field to search, so all the glosses were lumped together. With a small code change, I can tag each gloss with the correct ISO language code and index them correctly.

The new version is now live on jgreely.net/dict, which means I should be able to move that domain over to the shared-hosting account soon.

Once I figured out how to use Xapian (through the Search::Xapian Perl module, of course), replacing Sphinx and adding the keyword support took a few minutes and maybe half a page of code, total. In theory, I could use it for the J-E searches as well, but I’d lose the ability to put wildcards anywhere in the search string, which comes in handy when I’m trying to track down obscure or obsolete words.

One thing I haven’t figured out is why I can’t use add_term with kanji arguments; both Xapian and Perl are working entirely in Unicode, but passing non-ASCII arguments to add_term throws an error. The workaround is to set the stemmer to “none” and use index_text, and that’s fast enough that I don’t need to worry about it right now.

The most annoying thing about the Xapian documentation is how well-hidden the prefix support is. The details aren’t in the API at all; you can learn how to add them to a term generator or query parser, but the really useful explanation is over in the Omega docs.

We're FERCed


Jon Wellinghoff, Chairman, Federal Energy Regulatory Commission, “Earth Day” 2009:

I think baseload capacity is going to become an anachronism. Baseload capacity really used to only mean in an economic dispatch, which you dispatch first, what would be the cheapest thing to do. Well, ultimately wind's going to be the cheapest thing to do, so you'll dispatch that first. People talk about, 'Oh, we need baseload.' It's like people saying we need more computing power, we need mainframes. We don't need mainframes, we have distributed computing.

(via The National Review)

Hello!Project Sing-along Project


Kusumi: “…and I’m too sexy for my hat, Too sexy for my hat, what do you think about that?”

more...

Proof my email works again


In the past seven hours, I have received 490 pieces of spam. One made it to my inbox. One almost made it to my inbox. The rest were caught by SpamSieve, with no false positives.

So, yes, I’m pretty sure that the catchall mailbox at jgreely.com is working again. :-)

I moved one of my parked domains to a new account at Pair, the hosting side of domain registrar PairNIC. They offer clean multiple-domain support with catchall mailboxes and sophisticated filtering, secure IMAP and SMTP, and a full range of scripting languages and libraries under FreeBSD. Once I’ve tested everything out with that domain, I’ll move jgreely.com over, as well as the J-E dictionary I’m currently hosting on jgreely.net.

It will be a while before I can resume the blog upgrade work I started a while back, so dotclue.org won’t move to the Pair account any time soon, and neither will my old high-volume picture site (which survives because of bandwidth-throttling firewall rules). All of the non-blog CGI will probably end up on jgreely.net once that domain is migrated off of the flaky old Shuttle sitting in my closet.

“Need a clue, take a clue,
 got a clue, leave a clue”