<M <Y
Y> M>

World Famous Leonard: After much persistent effort, Sumana has gotten her article about cooking shows published in Salon. The article turns out to feature me and my weird recipes to an alarming extent, which is a little embarrassing, but I guess I can't complain. Congrats to Sumana!

[Comments] (2) : Finished The System of the World last night. I found the ending quite satisfactory; almost conventional. A good show all around, though my mother would probably feel a compulsion to edit huge chunks out of the Baroque Cycle the way she does Lord of the Rings.

[Comments] (1) : While I'm talking about books I should mention that I also read The Crying of Lot 49, which is about as good as everyone says it is, but in retrospect they weren't saying it was as good as you thought they were saying it was. Still great. I had no idea that Yoyodyne in Buckaroo Banzai was a reference to Pynchon.

[Comments] (1) : Awesome. For a while I've been telling anyone who would listen that 1) books often make machine-parsable references to other books, and 2) there's no not-obviously-lame reason for the copyright owner of a book to get mad over people republishing their book's bibliography, leading to 3) the inevitable emergence of a utopian world in which cool and useful graphs of books that reference each other can be made. That despite this, I continued, of the online services (ie. Google and Amazon) that make selected portions of books available to the public like fish dangled above the heads of eager penguins, none have seen fit to provide automatic cross-referencing of books' bibliographies.

It turns out that Amazon recently introduced that exact feature, so good for them. Unfortunately since it's part of their Search Inside The Dang Book initiative I doubt there will ever be API support for it. "You let hackers Search Inside My Dang Book automatically?"

[Comments] (3) Vaguely Remembered Mashed Sweet Potatoes: I guess I should post this since I already got a request for it. This is the recipe for mashed sweet potatoes mentioned in the Salon article. It's based on an ATK recipe but the requestor couldn't find the recipe on the ATK site for whatever reason, and mine's a little different anyway. It's really simple, so here it is in 1-2-3-4 form:

Dump everything in a pot. Cover and cook for about 30 minutes, stirring frequently. Mash and serve with pepper.

I have a nonstick pot, so even though I was lazy about stirring and some of the potato slices got burned on the surface, it just enhanced the flavor with Maillard reaction products. Laziness wins again!

I remember the ATK recipe using white sugar instead of brown. I'm sure they tested it both ways but using white sugar with sweet potatoes just seems wrong to me.

[Comments] (3) Brownie Mania: More generally, recipe mania. Sumana asked me to type up this recipe for a friend at work, so I might as well share it with you. This is my the brownie recipe that lives in my head and makes pretty good brownies. In its composition it is based on recipes on the backs of baking chocolate boxes and in my box of family recipes. The procedure for baking them so you don't have to cut them in the pan comes from Alton Brown. In its combination of disparate parts it is my own invention.

Ingredients

Procedure

Preheat the oven to 350 degrees. Cut some parchment paper to fix a 9x13 pan including up the sides. Put the parchment paper inside the pan; I use butter spray on the pan to make the paper stick.

Sift together the dry ingredients and set them aside.

In a large bowl over a pot of boiling water (double boiler style), melt the butter and baking chocolate. Once it's melted, remove from the heat and stir in the sugars. Stir in the eggs, one at a time, then the vanilla and the mystery ingredient (about which more anon).

Finally, fold in the dry ingredients. Add a batch of half to a third of the dry ingredients to the batter, and mix to combine. Repeat until it's all in there. Don't stir this more than you have to or the flour will get glutinous and you'll have a cake. If you want nuts, put them in now.

Pour the batter into the paper-lined pan, spread it out, and bake it for 30 minutes (use toothpick test to see when it's done). Once it's done you can grab the parchment paper and just pull it out of the pan and put it on a cooling rack. Once it cools you can cut it up with a knife or pizza cutter, without having to worry about cutting within the pan.

These are good as is, but if you like marshmallows you can do what Alison wrote about, and put mini marshmallows on top of a brownie, then broil it for a minute or two.

So, about the mystery ingredient. This is where you can turn "brownies" into "x brownies" by adding to the batter a small amount of something strongly flavored. I like a teaspoon of mint extract, or a couple tablespoons of peanut butter warmed in the microwave, or some espresso powder. When I was much younger I liked to put chocolate chips in the brownies I made, but now that seems kind of gauche.

[Comments] (3) Melon Baller Melon Balls: More dang recipes. Why not? I just got a melon baller from Sur La Table thanks to a gift card I got for my birthday (thanks, Andrew/Claudia) and it's great. Now, no melon is safe from my circular scalpel. I made the following recipe and tried to sell them to Sumana as "fake Dippin' Dots". She didn't buy it, but the liked the results. It is a simple yet ritzy appetizer, at least if my notions as to what is 'ritzy' are accurate, which they probably aren't.

Ingredients

Procedure

Cut the canteloupe in half, remove the seeds, and take the melon baller to it. Whee! Put the canteloupe balls on a cooling rack and put the cooling rack on a parchment-paper-lined sheet pan. Sprinkle sugar over them and put the sheet pan in the freezer for at least half an hour. (Note: the cooling rack and sheet pan are just a thing I made up so the canteloupe balls won't come out embedded in frozen canteloupe juice. You can just put them in a bowl but it'll get a little messy. Maybe you could set something up with a strainer over a bowl.)

So flavor #1 is the canteloupe. Flavor #2 is the pepper and flavor #3 is the balsamic vinegar. The important events in the life of any given canteloupe ball are a) being formed from the primordial canteloupe; b) having a toothpick jabbed into it; c) being frozen; d) being rolled in pepper; e) being dipped in balsamic vinegar; f) being eaten. How exactly you put them together depends on the scenario. The constraints are that you want the canteloupe to be as cold as possible when eaten, and that I don't think balsamic vinegar will freeze well.

For a party scenario you might do it a-b-d-c-e-f, providing a dish of vinegar for people to dip the canteloupe in. Or if it turns out balsamic vinegar freezes well, you could do it a-b-e-d-c-f and omit the need for a separate dish of vinegar.

The way I eat it is a-c-b-d-e-f, reusing the same toothpick for every canteloupe ball. Also, I'm usually standing over the kitchen counter while I'm doing it. Even though I got good at cooking, I'm still a slob.

This is a controversial recipe, and not all people accept it. Sumana does not like the cracked pepper, and thinks it should be omitted from the recipe. This might argue for a party-time preparation of a-b-c-d-e-f, providing a dish of cracked pepper as well as one of vinegar, so as to satisfy picky people like her.

Note about balsamic vinegar: the best kind is the generic brand sold at Whole Foods, which is really good and really cheap. Also, you can make balsamic vinegar taste twice as expensive by putting it in a saucepan and reducing it by half. I learn things from cooking shows and give you the important bits.

[Comments] (14) Addicted to Nethack: Actually, addicted to Slash'EM, the Nethack variant. There are two main reasons. The first is that Slash'EM doesn't have nearly as much of Nethack's insane, dull near-endgame slog through the mazes of hell (literally). The second is the Doppleganger, a wondrous player-choosable species which has the ability to (expensively) self-polymorph at will and which gets intrinsic polymorph control at level 9. Thus making it more or less affordable for me to live out my ultimate Nethack fantasy of spending most of the game polymorphed into a xorn. "Walls? Where we're going we won't need... walls." Wheeeee!

Slash'Em also has a basilisk, which is a dream self-polymorph animal because it has the stoning powers of a cockatrice but it can also carry things. I don't know how they justify having a "basilisk" and a "cockatrice" be two different things, but I'm not complaining. There are other changes made to Slash'EM to balance out the ability to turn into a powerful monster more or less whenever you want, but I can deal with them. My point is, Slash'EM is a lot of fun.

I realize that I have two disjoint readerships of my weblog and that this entry makes absolutely no sense to one of them. Sorry.

[Comments] (4) Booze: Some people bring over a bottle of wine as a gift when they come to my place for dinner. While I appreciate the gesture, I don't drink wine and I don't do enough deglazing to be able to use it up as fast as I get it. I've got five bottles of wine now. So I humbly ask you to, when coming over, in lieu of wine bring payment in South African Krugerrands. Or, if you must bring booze, bring a little bottle of some weird liqueur so I can make some bizarre Bananas Foster dish or something. My cupboard will thank you.

[Comments] (3) You May End Your Turn Early!: The supermarket is selling gift cards (I guess this is the most generic gift idea ever.) and advertising them in the checkout lanes. In big letters where other advertising campaigns would have some catchy slogan, this advertising campaign boldly announces "Cards Have No Value Until Activated". I guess to keep people from swiping them, but it makes me wonder if that's a selling point to someone. "I don't know anything about you, but everyone has to eat food, so here you go. Why are you looking at me like that? Don't you realize that this sucker has been activated?!"

CodeCon CodeCon Redux: My project has been accepted as a CodeCon presentation! I was thinking of sending it to PyCon but that's all the way in DC, and CodeCon is just across town. I've given up on the idea of making money from the project, but maybe once I release it and it gets publicity people will stop saying "Oh, it sure would be nice if this existed" and take the idea away from me and start improving it. The only question is, will my army of androids be ready in time?

[Comments] (2) : Doin' okay, even though I'm sick. I'm making slow but steady progress on my short story, and my Christmas presents are almost finished.

When I read stories in which the characters have software companies (which is not that often) I wonder why the author doesn't just start that software company themselves if it's such a great idea. I hoped I'd get insight into the question with the company in my story, but I honestly don't know why I don't start it myself; it seems like there's about a five-year window coming up where it'd be pretty profitable. Maybe there's not as much of a market for the product in the real world. Also, as we've established, I'm just not a company-starter, which is a shame as I've decided that's the only way to really get rich.

Beautiful Soup Users Do The Darnedest Things: Like make RSS feeds for MP3 files of the day's news, spoken slowly, in German. How long until a Nuntii Latini feed?

[Comments] (3) Aw, How Cute: After a year of paranoia I got a cute widdle comment spam. Probably the result of a random form-submitting robot rather than a NewsBruiser-spamming robot. I'm leaving it up to remind me to fix the NewsBruiser bug it exposed; NewsBruiser shouldn't have accepted a comment on such an old entry. Not sure why only that entry was spammed. At last, I can start training the Bayesian filter!

Update: Actually, judging from the accesses from that IP on that date, it looks like someone went poking around NYCB with a web browser and posted spam on two specific entries. Weird.

Update again: The bug is fixed and the spam is gone.

[Comments] (6) Come Out With Your Game Roundup: I don't know if you've noticed this, but the Game Roundups are a lot more fun than the Software Roundups, which is why I've been doing GR after GR with nary an SR in sight. In that spirit, here's yet another Game Roundup. Yee-haw!

[Comments] (4) Sickbed Soup: This is an incredibly easy soup that you can make when you're sick. I made it up when Sumana was sick and then tried it myself when I was sick earlier this week. The general idea comes from my mother. It's actually cheaper than most canned soup nowadays.

Ingredients

Procedure

Dump everything except the lime/hot stuff into a pot and heat until it boils. Simmer until the noodles are soft. Pour into a bowl and add lime/hot stuff until it's hot enough to clear your sinuses. The microorganisms won't know what hit them!

If you're not sick you might be able to think about adding some other stuff, like chopped parsley or random spices.

[Comments] (10) : Is this valid HTML?

<!  DOCTYPE HTML PUBLIC...

That is, as opposed to:

<!DOCTYPE HTML PUBLIC...

More generally, is it okay to have whitespace between the <! that begins a declaration and the actual name of the declaration? The W3C validator says it's fine, and I couldn't find anything in the standard about it, and the general SGML-based-language attitude towards whitespace is "whitespace is all in your head, maaaaan." However, there are intimations on various webpages that it's invalid, and the Python HTML parser chokes on it (this is a leading cause of complaints against Beautiful Soup). I have a fix for the Python HTML parser but before I put all the effort into making sure it doesn't break anything else I'd like to know if it's even something that's "supposed" to work.

[Comments] (1) Curry: I went to Bakersfield this weekend to drop off my uncle Robert and got sick again. Coming back, I made a curry with broccoli, cauliflower, and potatoes which Sumana deemed okay. It wasn't hot enough though. I can still feel my inflamed sinuses.

I hope I'm better by the time my mother comes up. We plan to go to Greens and the Exploratorium.

Gaiiiiiius...: Here's a pitch for a TV show. A remake of Mr. Ed, set in imperial Rome, during the time when Caligula appoints his horse (Mr. Ed) to the Senate. Mr. Ed can talk, but only the emperor can hear him. In the final episode it is revealed that this is because Caligula is completely insane.

: New NewsBruiser coming tonight, hopefully. First I gotta test some comment mail stuff.

How Do Ya Like Them Aardvarks?: It's up. I fixed all the stuff people were complaining about in the earlier entry, probably at the expense of stuff people sent me email complaining about much earlier than that. The two new things that have affected my NewsBruiser life the most are the comments-via-email thing and the better editing workflow.

[Comments] (1) Boring Dream: I dreamed I was escaping from somewhere with some other people in a miniscule submarine. It was dark and so cramped I couldn't move. It was effectively like dreaming about being asleep. Then it started over again, except the submarine was even smaller. As though I'd beaten the first level of Submarine Escape and there was nothing for it but to repeat the experience on a higher difficulty setting.

[Comments] (6) Spam Will Eat Itself: The NewsBruiser wiki has been defaced with wiki spam for a while. Recently I decided to do something about it, so I examined the patterns and found some bizarre features unique to wiki spam.

First, the spam I was getting seemed to be manually entered. There were long (by web bot standards) and irregular pauses between hits from spammers, and slightly differing spam methodologies. Sometimes the log message for a spammy change had a solitary "d" or "df" in it, the mark of a person used to scribbling crap data into web forms. It was kind of sad to imagine the people whose job it is to manually spam wikis, like an email spammer who must manually type in SMTP commands. Maybe I'm missing all the bot-based attacks because I use a relatively unpopular wiki software (just as the only comment spam I've ever seen on NewsBruiser was manually entered)

What is new and interesting, though, is the way the wiki spammers locate wikis to spam. To get things started there must be some bots that can spam SubWiki, or particularly persistent manual wiki spammers. But once there is any spam at all in a wiki, a pheremone trail has been laid down and the hordes close in.

You see, the majority of manual wiki spammers seem to be free riders who use search engines to find wikis that have already been spammed, then go in and replace the preexisting spam with their spam. The internicene warfare rages without end, as spammers destroy each others' contributions to the wikispamosphere while making a mockery of the work of the original spammer who went through all the trouble of finding that wiki in the first place, or writing a bot that could spam SubWiki. For shame!

There are a variety of engines and sub-techniques in use, but the most common one is to search for "wiki" plus the name of a site to which wiki spam points. Then, for each hit, go into the wiki and replace the (spam) text of the page with your own spam text. This anti-wiki-spam organization has documented this behavior, but not its comical implication.

Until I can figure out a better solution which hopefully doesn't involve me doing a whole lot of SubWiki development or switching wiki software, I am going to do a little free riding of my own. I've implemented a couple solutions that protect the NewsBruiser wiki only because it's not worth five seconds of a spammer's time to figure out what's going on, when there are so many other wikis they could be spamming.

[Comments] (2) Broken Tom Swifties: From IRC chatter at work:

It's fun.

: File-sharing is the new encryption.

[Comments] (2) Wiki Is Not A Toy: Despite the fact that I'm a big jerk who laughs when wikis are spammed, I've been thinking about the problem since yesterday. The reason I got all those copycat wiki spammers stepping on each others' toes (and, incidentally, mine) in the NewsBruiser wiki was not because there was spam indexed in the page history, as with some other wikis, but because there was spam right there on the front page. Because I was lazy. My wiki was living in sin. The price of having a wiki is eternal vigilance, and I wasn't taking it seriously.

So in addition to the anti-spam measures I took yesterday, this morning I updated my subwiki installation and started toughening it. I put in robots meta tags similar to those in NewsBruiser, and email notification of changes so it'll poke me if it gets spammed. Unfortunately un-spamming a page in subwiki is pretty difficult, which is why I was so lazy in the first place, so now I need to write a 'revert' function. Then I can have a 'click here to revert' link in the update email like I do with "click here to mark as spam" in the NewsBruiser comment emails.

I wish Bayesian techniques would work well on wikis, but it seems like a just-change-the-links attack would be even easier to do for wiki pages than for weblog comments.

Mindshare: "Instead of writing ad hoc HTML browsers, use Beautiful Soup". AWESOME

Anthony Baxter, who's contributed patches to Beautiful Soup before, sent in a special parser class for dealing with the aggravations particular to SOAP-generated XML. The class name is BeautifulSoap.

Comment Permalinks: Let me know if you like this solution. In the default theme you can link to a NewsBruiser comment by referencing the time it was posted: here's one of Zack's posts. Older entries don't have this feature in the static files because I haven't rewritten the static files yet.

I have no idea why I tried this before and found it really difficult. Either I fixed the problem while doing something else, or I was trying to have the permalink be the ordinal of the comment (which might change if comments get deleted) instead of the post time. I'd rather have a human-recognizable anchor than one that would be ambiguous if two people should happen to post comments in the same second.

: Oh yeah, today I took the day off and my mother and I went places. We went to the pirate store and next-door Paxton Gate (both closed because we got there too early), then to Greens for lunch and then to the zoo. Now I'm working on NewsBruiser even though I should be working on my CodeCon demo.

[Comments] (1) Amazing!: Python shipped with DVD player! Uh, don't read the rest of that headline.

[Comments] (1) : Last year I told you about a Japanese anti-quiz show where panelists register how much they are surprised by particular facts. Well, it's made it across the ocean in the form of Spike TV's Hey! Spring of Trivia, which has been dubbed in often-facetious Spike TV manner but is otherwise fun. I recommend it, even though they keep driving the point home again and again in a way that doesn't translate well, and so it takes half an hour for them to get through five pieces of trivia. That's what Tivo is for.

Once I watched an episode, I figured out where the element of competition comes in. It's not a competition between the panelists but between the pieces of trivia themselves (and, implicitly, between the viewers who send in the trivia). There's also a fun bit called "seed of trivia" where the show takes viewer questions and does experiments to find the answers, thus giving birth to new pieces of trivia.

There is here a life-cycle metaphor for trivia, a competition between pieces of trivia, the idea of rating their fitness by how surprising they are. Why not go all the way and, Dog Bites Dog-style, breed champion pieces of trivia from each week's winners? Surely these would be the most unbelievable pieces of trivia ever to pass human lips.

PS: On the Japanese channel in SF there is a show called Hey! Hey! Hey! which I took to be the original version of Hey! Spring of Trivia, but it is some sort of variety show spin-off, or maybe it just has a similar name and the animation is done by the same production company. Also, they stopped showing Project X, which sucks.

: Recommended: Mega Mouth Burgers and Beers (also referred to as Big Mouth Burgers &c.) at 24th and Valencia. They have the best duplicate of my Little Rock comfort food (bleu cheese hamburger and chocolate malt from the Purple Cow) I have encountered outside of my own kitchen, and it costs only slightly more than it did in Little Rock. Plus, it is called MEGA MOUTH. Sumana likes it too, but I'm not sure why given the vegetarian options are 1) Garden Burger (tm), 2) burger with no meat but a lot of cheese, 3) just eating fries or just drinking milkshake. No grilled portobellos or anything.

[Comments] (2) : Jake, you need to see this: new Christmas music synthesized from old. Like that survey-driven songwriting thing which turns out to be the most difficult thing in the world to search for. How come people keep writing enormous numbers of new Christmas songs every year, but the most recent addition to the canon is from the 1950s? Answer: because in general, Christmas songs are pretty bad.

[Comments] (1) Creatures of Habit: Today's Achewood is great.

[Comments] (2) : Check out Medieval Demographics Made Easy for some fun facts and RPG-oriented tables. Among said fun facts is the surprising-to-me one that medieval villages were basically crammed as close together as possible. I guess FreeCiv is more historically accurate than I thought.

[Comments] (3) Demolition Derby: Someone smashed the casing of the left-hand mirror on my car. Hopefully I can get it fixed tomorrow, because otherwise Christmas is ruined. So aggravating!

[Comments] (1) : Day off work. Lots of reading. Finished my post-Baroque Cycle rereading of Cryptonomicon. There's nowhere I can find on the web that lists all the obvious-in-retrospect Baroque Cycle references in Cryptonomicon. This weblog entry and its comments list most of the ones I found but not all. I guess I should put such ramblings in a separate entry.

Also today finished The Flying Inn which was not nearly as good as the description made it sound. I guess I was suckered by how cool I think those big rounds of cheese are. There's lots of Chesterton available online, thanks to your friend the public domain, including all the good stuff except The Napoleon of Notting Hill. Something to read if you're on vacation and bored. I definitely recommend The Man Who Was Thursday, but longtime NYCB readers already know this.

No one will fix my car, so I fixed it myself. With duct tape.

: Weird stuff on the XM on the way to Bakersfield: on the "old tyme rydio" station there was an old Christmas melodrama about Handel which as far as I know was just totally made up because it fits with none of the things I know about Handel. Ol' G.F. and his family and everyone else had whitebread American accents and it was a heartwarming pre-Capra tale about Handel's struggle with religious belief which culminated in him writing the Messiah. The best part was where Handel turns away from music and his dad tells him how his music reflects God's glory. Handel: "I have no god, father." Beat. Beat. "Merry Christmas." End of scene. Genius.

Sumana says that maybe Handel was the father and he had a wayward son. The world may never know. It's still funny.

[Comments] (3) Things I Keep Meaning To Tell You #8: There were a couple pizza restaurants that played a good-sized role in my childhood: Bear Mountain Pizza in Arvin, which was good and could have its own entry except that entry wouldn't be that interesting; and a Shakey's in Bakersfield. Bear Mountain is presumably still there, and so is the Shakey's, but the latter has been cut off from its parent chain, cast out into darkness, and is now going solo with the exact same menu as before. Only now it's called Sharkey's Pizza. I don't want to go in because doing so will ruin my pleasant fantasy that Saruman the White has opened a pizza restaurant.

[Comments] (3) Filks For The Lazy: Take "Paperback Writer" and just replace every instance of the title with "Checkerboard Nightmare". It works pretty well.

[Comments] (1) : For Christmas, Sumana gave me a radio whose battery you can charge by turning the crank, which warms my survival-kit-obsessed heart. It also gets shortwave, but my trawl through the shortwave frequencies revealed the same sort of content you get on AM radio: sports, religious broadcasting, ominous yet monotonous beeping, etc. You'd think something that bounced off the ionosphere would be cooler. I couldn't even find any numbers stations.

Scarred: Seen on restaurant sign: FRY SAUCE JARS MAKE GREAT STOCKING STUFFERS

Excellent place to eat on your way up Utah: the Timberline in Beaver, Utah.

Google Memewatch: "we put the * in *"

[Comments] (5) : I finished Moby-Dick (Why is the title hyphenated? Was Melville planning to register moby-dick.com?) and it's really good but it's not the greatest American novel of all time. Even within the realm of conventional choices for that honor, I think Huckleberry Finn is better.

: The French for Silly String is "serpentine en mousse", which I think sounds a lot cooler than "Silly String".

[Comments] (3) : The cool thing I got people in my family for Christmas was I ran their weblogs (for those with enough content in their weblogs) through BlogBinders and turned them into books with fancy covers. It turns out BlogBinders uses CafePress' print-on-demand system so if you're handy with the text-to-PDF conversion you could use that directly and make the book look exactly like you want, and only get the top skimmed off of your money once.

If members of your family have weblogs and don't read this one, this makes a really good present, even though I can't entirely identify. If I got this present I would think "Great, a hard copy backup!" and not "Yes! Today I am ze author!". On the other hand, the covers I did are awesome (for GIMP novice values of "awesome").

My only complaints about the finished products are that 1) the print-on-demand is too expensive to do a sizable run of books, 2) BlogBinders puts a big garish logo on the back of the book, and 3) the text on the back of the book isn't justified and is in an ugly font and generally looks bad unlike the rest of the book. Oh, and 4) Rachel blabbed about the present on her weblog early enough to taint the surprise for Susanna.

Tomorrow when I get back to San Francisco I'll put up the NewsBruiser plugin that lets you syndicate entries in the format used by BlogBinders; that's what I used to make the books. Better to have it up on the web in a tarball than in my CVS working copy.

Speaking of presents, I once hypothesized to Seth that a sprig of thyme would make an ideal gift, because there's no present like the thyme.

[Comments] (1) : Just as we were settling in and hoping to get something done, a new year approaches like an unwelcome guest. We try to achieve relativistic velocities to delay its onset, but that only makes everything happen faster from our perspective. There's nothing for it but to greet 2005 with desultory toots on our paper noisemakers and hope it leaves the timeline relatively unscathed. Toot!

<M <Y
Y> M>

[Main]

Unless otherwise noted, all content licensed by Leonard Richardson
under a Creative Commons License.