<M <Y
Y> M>

[Comments] (2) : I'm in a bad mood, but at least I made Alyson happy.

[Comments] (3) : Want your life to be a shallow imitation of Jake's? Afraid someone might take seriously your ironically-purchased thrift store t-shirts? Have we got a deal for you. (From cl)

[Comments] (3) : Tonight I reached a NewsBruiser milestone (by popular demand, you can now change the look of the notebook front page with templates), and tried my hand at baklava. I don't like wimpy dry baklava, so I packed it full of walnuts, dates, and shaved chocolate. It turned out pretty well, I think.

[Comments] (6) Nostalgia Theater: Snapshots From Belgium: While wandering around Brussels about a year ago, I went into a video store that had a Shaolin Soccer poster in the window. Since the poster said "Shaolin Soccer" and not "Le Futbol Shao-Lin" or something, I figured I could just ask for "Shaolin Soccer" but phrase the rest of the request in French. My plan was foiled when, like everyone else in Brussels, the video store clerk just started talking to me in English. But unlike everyone else who did this, she was very friendly and chatty--I guess not a lot of tourists come to the video store.

Another departure from the Brussels norm is that, though perfectly fluent in English, she had no idea what I was talking about. I had to show her the poster in the window to convince her that such a movie existed. Thus convinced, she started rooting around in the back and I started scouring the shelves. We talked a little. "My accent is very bad," she said. "My French is very bad," I pointed out.

Finally we found the movie on a shelf behind the cash register. So, that's why I have a Region 2 DVD of Shaolin Soccer dubbed in French. How come Region 1 DVDs all have multilingual subtitles and dubbing, but a DVD from any other region has nothing? I am starting to suspect that certain DVD regions are freeloaders.

Next time I get nostalgic, I'll tell you about the Italian restaurant in Charleroi where I accidentally ordered a salad. Yeah, that should cure my nostalgia.

[Comments] (4) Truth In False Advertising: I got a scam "phishing" email that wanted me to go to a fake PayPal page and give them my password. The URL was (are you ready?): http://[xxx].[yyy].com/trycon/scampage/

"Your honor, my client was never trying to con people with a scam page."

"Objection! May I refer the judge to People's Exhibit A, THE URL TO THE DAMN WEB PAGE."

Did someone unzip a handy prebuilt phishing tarball (The Pocket Phisherman?) into the webserver root and not rename the directories?

Tokyo Damage Report: In the future, guidebooks will only have things you're interested in. (From Sumana).

[Comments] (1) Baklava Brownies: I have reached that annoying (to you) stage of culinary skill where I can kind of make food on the fly, but I can't precisely recreate a recipe after the fact. I just can't envision the quantities. However, the secret of cooking is that recipes are very flexible so long as you're not making a cake or anything. So although the quantities I put down below are estimates, they should come out fine. If you run out of filling, just make more. That's what I did.

With that in mind, here is my baklava recipe. This is not at all like traditional baklava, which I think I've mentioned I don't really like. It's really dry and I can't help but think it is a complete waste of an opportunity to use figs or dates. The consensus from the salon.com tasting lab is that these are like brownies, so I dub them Baklava Brownies. They are probably healthier than fudge brownies, because they're basically made of dates and nuts, the sort of things that if you cornered a doctor and asked if it was healthy to eat a lot of them, the doctor would give sort of an equivocal answer versus a straight "no".

The goal of this recipe is to prepare FILLING, put it between sheets of BUTTERED PHYLLO, and bake it before adding TOPPING. First, preheat the oven to 350 degrees Fahrenheit. Then start assembling the

FILLING

Chop up everything in a food processor. You should have a big sticky mass. This is going to have a browniesh consistency and taste, but it's not going to have any structural integrity. That's why you're going to employ it as filling in a

BUTTERED PHYLLO ASSEMBLY

I'm not going to get into the mechanics of buttering phyllo dough. Suffice to say that you need:

Layer three sheets (actually half-sheets) of dough on the bottom and spread half of the filling on top. Layer three more sheets on top of the filling and put the rest of the filling on top of that. Top with three more sheets. Butter every side of every sheet of phyllo dough.

I built my baklava on a cookie sheet, but it should be small enough and would be more in keeping with the brownie theme to put it in a brownie pan. Anyway, according to some online sources you should cut squares out of the baklava before you bake it--just cut the top layer of dough, don't cut into the filling. I did this and it turned out fine.

You've got a half-sheet of phyllo dough left. Cut it up, butter it, and smush it along the sides of your assemblage so that the filling doesn't run out when you bake it. Then bake it, for about 10 minutes. While it's baking make the

TOPPING

You really shouldn't trust my recipe here, because my topping never reduced and thus didn't turn out too well. But it's equal parts honey and sugar (about 1/4 cup of each), reduced in an equal amount of water with a tablespoon of lemon juice. Spoon it over the baklava when you take it out of the oven.

Like brownies, you can eat this hot or let it cool. It's good either way.

[Comments] (2) Vindication: They mocked my predilections, but I am vindicated by anecdote!

Until 50 years ago, the book's paper wrapper was there to draw attention in a store, and to protect the book until someone actually sat down and read it. At that time it was commonly discarded[.]

In conclusion: ha!

Fundamental Theorem of Felicific Calculus: Utilitarianism: the game!

If a person is very happy, the player can "suck" some of that person's happiness (or sadness) and give it to some unhappy sod by rapidly hitting the circle button.

[Comments] (8) : Does anyone, under any circumstances, wear a top hat anymore? No one I can think of except people pretending to be people from the past.

Update: the consensus is: "People at weddings, sometimes, and also me if they weren't so expensive."

[Comments] (2) The One Time That Little "Under Construction" Icon Would Be Appropriate: I just updated NewsBruiser after a bunch of big Zack-related changes, so who knows what kind of stuff is going to break. Be on the lookout!

Froggy Went A'Measuring: And she did ride, uh-huh. Measure things like air pressure and temperature with a realistic (ie. not cartoonish) frog-shaped Phidget (qv.) named Rita. She has a tadpole-like tail that connects to your serial port.

Sensors also available in "boring box" edition. Maybe it has a compartment for you to hide your house keys in, or something to make up for the fact that it doesn't look like a frog.

Site does some stupid Javascript thing so I can't be bothered to find better links. Produit de France.

No, I Da Snowman!: You know how sometimes you work and work to find the cause of a bug, and after hours of debugging it turns out to need a one-line fix? Well, I just committed a four-line fix. Four times as satisfying!

[Comments] (5) Pesto Myths And Facts: I should be sleeping off my NewsBruiser triumph, but instead I'm writing this because I promised Sumana to demystify pesto tonight. So let me tell you that I made pesto on a whim without ever having made it before and it was great. I made it out of less-than-fresh basil and it was great. I made "Panic Pesto" out of whatever vaguely relevant ingredients I had lying around, and it was great. It's hard to screw up pesto. With that in mind, let me clear up some common misconceptions about pesto and its manufacture.

Myth: Pesto is just olive oil and basil.
Fact: Pesto is also three other things.

To make pesto you combine basil, nuts, cheese, and garlic in a food processor, then, with the food processor on, drizzle in olive oil until the mixture becomes semi-liquid. There should be a lot of basil, the same amount of nuts as cheese, and garlic to taste.

You can add pepper if you want. I wouldn't add salt if I were you. There's plenty of salt in the cheese, and if you are some kind of salt vampire or humanoid deer you should just keep your freakish lifestyle to yourself. There is no room in the blues for your petty sentimentality!

Myth: You must use hand-carved pine nuts.
Fact: That doesn't even make sense.

You can make pesto with any kind of nut. Panic Pesto was made of half pine nuts and half walnuts. Does it make a difference? Sure. In the way it tastes. Not in whether or not it's pesto. It still tastes fine.

Myth: Only Parmesan cheese is acceptable.
Fact: The previous statement is a myth, whereas this one is fact.

Panic Pesto was made of 1/4 Parmesan and 3/4 Jarlsberg fondue leftovers. If Jarlsberg works, then any white hard or semi-soft cheese should work. Maybe bleu cheese would work. Maybe even cheddar would work.

Myth: The non-use of basil in pesto will anger the pesto king.
Fact: The pesto king is an imposter and a fraud. So who cares?

I have only ever made pesto with basil, because both Sumana and I are crazy about basil. But you could make it with parsley instead, or spinach, or anything that's leafy and green with some flavor. You could even make mint pesto, though I wouldn't put it on pasta.

Myth: Blah blah blah.
Fact: Just put whatever you want in pesto. Make it with walnut oil. Substitute some other aromatic for garlic. Make hummus instead. You could probably come up with a combination that is awful, but my feeling is you'd have to ignore some other common-sense rule of cooking to do it.

[Comments] (2) Python Question: Is there a Python library that's like the standard time library, except it can handle dates before 1900? It's not for myself that I ask; it's for a friend. Guido mocks his pain. Can't you help?

[Comments] (1) Missing A Trick: Obviously this tiny LED flashlight should be called the Pak-LED.

[Comments] (5) Fried Green Vanilla: You know how vanilla beans cost four or five dollars apiece? And how you have to slice them open like a biology lab worm and scrape out the vanilla-laden goodness like... the dirt in the digestive tract of a biology lab worm? Well, here's an easier and cheaper way. For the cost of three or four vanilla beans you can buy half a cup of vanilla bean paste. It's basically vanilla extract mixed with pureed vanilla beans. It tastes and looks the same as if you'd done the vanilla bean dance, but it's half as expensive and easier to use.

I made vanilla/coconut/mint ice cream yesterday using the paste, and it was great. More on this later.

[Comments] (3) Shameless Word-Of-Mouth Marketing: Wherever there are petty, disgruntled Moveable Type users there is an audience for my rabble-rousing. Check out my weblog software, NewsBruiser. It probably does what you want; it's easy to install, upgrade, and hack; and it's open source and written in Python. Also, declare yourself emperor while the real emperor is away inspecting the border with Gaul! It's easy and fun!

PS: There must be a more effective way to do this?

[Comments] (10) Coconut Cuisine: Lately I've been making ice cream with coconut milk instead of cow milk. My original plan for such an ice cream was coconut/chocolate, which I still haven't gotten around to because my making of ice cream has slowed to a crawl because of my attempt to stop eating so many desserts, but how could it be bad?

I actually bought a coconut, thinking that the stuff inside was "coconut milk" (the way... well, I can't think of any foods that work that way), then discovered that it's actually "coconut water", and that "coconut milk" is what you get when you simmer coconut meat in water. So I started buying the canned coconut milk with the elephant on the can, since some negligible percentage of the money I spend on the coconut milk goes to an Asian elephant sanctuary. (Incidentally, if you want to eliminate the middleman and give money directly to an elephant sanctuary, check out this one in Tennessee).

So now I have nice coconut-flavored ice cream but I also have a coconut I don't know what to do with. Ideas? I was thinking maybe I could put a lime in it and drink it all up.

[Comments] (8) An Approach To "Twisty Little Passages: An Approach To Interactive Fiction": I've read Twisty Little Passages by Nick Montfort (cf.), and it's not for you and me, faithful readers. Its goal is to convince people in English departments that, despite the occasional presence in interactive fiction of spaceships and dragons, the medium is a legitimate form of aaaaht. Just like hypertext fiction!

Now, it's already received wisdom in parts of acadamé that video games are a form of aaaaht, but I guess not in the English department. Perhaps they resent video games intruding on their turf, so they lash out in anger at the most story-like form of game. This book is intended to soothe them and get them thinking about IF using whatever vocabulary is hot in textual analysis these days.

I, and everyone who expressed interest in this book to me, is in another group: people who self-interestedly stipulate that interactive fiction is a form of aaaaht, and who are interested in figuring out the theoretical underpinnings so they can make better artifacts. This book is not so good for us. I will demonstrate.

Twisty Little Passages starts off promisingly for us by comparing interactive fiction to another folk-art-ish form: the riddle. I recommend reading this part because while I don't think the analogy is complete, I think the comparison is useful; that by examining what makes a good riddle you can get some insight into what makes good interactive fiction.

But unless you want a refresher course in the history of IF I recommend not reading past page 80, where after an interesting take on IF precursors, ELIZA makes her appearance and the book takes a plunge into the canonical. The well-known-to-us history unfolds (Adventure, Zork, Scott Adams, Infocom, Magnetic Scrolls, bust, post-bust independents), with nary a reference to the riddle analogy. You think it'll be used as a lens through which to view the history of IF, but it's not used for anything, really. Over time it becomes clear that the riddle comparison was mainly intended to get the people in English departments to start thinking of IF in terms of other art forms. It's like a skeleton key in a game that only has one locked door; you carry it around to the end wondering why you only used it once.

The book closes with a roundup of references to interactive fiction in non-interactive fiction, hoping to clinch the argument with the awesome power of intertextuality. This section is a little embarrassing, like those late-80s letters to Nintendo Power touting the hand-eye-coordination benefits of video games. But it too is easily explained if you consider the market: antsy English majors who see a new form of writing intruding on their turf and eroding the overall quality of literature. People who will feel a little better if they know that non-interactive authors have sponsored interactive fiction by inclusion in their works, if they see that not all thinking on the subject has been done by dragon-obsessed, spaceship-loving nerds like me.

The best I can say for this book is that it should get more people thinking about interactive fiction, writing the sort of books that will be fodder to the minds of those of us who write interactive fiction. Maybe Nick Montfort will write another book for you and me, a book called Hey, Remember That Riddle Thing? Well, Have I Got Some Ideas For You.

[Comments] (3) Sensible Defaults: I need some feedback on this. I'm adding a feature to NewsBruiser that makes it easy for you to specify a license for what you write on your weblog. There will be the generic full-copyright license, where only 'fair use' is allowed; a public domain license, where everything is allowed; the in-between spectrum of Creative Commons licenses, and a 'custom' license that's whatever you want to type in. Possibly others. There are UI issues with this that I haven't figured out yet, but they needn't concern you. What need concern you is the question of what the default license should be.

The current law is that if you don't do anything special to something you right, it's under the generic copyright license. Therefore, making the generic copyright license the default would be the safest option, but I don't like the current law. I think it's too restrictive, and I don't really want to ratify it by making it the default license for a weblog.

What's more, NewsBruiser already embodies my assumption that anybody who writes a weblog is willing to give more latitude to readers than they'd get from fair use. It makes the full text of entries available in various syndication formats, which is more or less an open invitation for people to cache, archive, and mangle your entries using their own programs. I do this because syndication feeds that aren't full-text feeds are nearly useless. I figure that reasonable people writing weblogs won't mind giving a little more leeway than copyright law in its full scope allows..

My current thinking is to have the default for a public weblog to be the most restrictive Creative Commons license (attribution required, no derivative works, no commercial use), and the default for a private weblog to be regular copyright law. Does this make any sense? My guiding principles are: I don't want to imply to people that full copyright is the best thing for their weblogs (I think it's not). I don't want stuff to be under full copyright when the author wouldn't mind a less restrictive license. I don't want someone to give away something they thought they weren't giving away.

The last two are in conflict, and I feel I must tread carefully lest I become a sort of copyright Opt-Out River Weasel. Looking at that old entry, maybe the way to do it is to "Tell people about [the licensing options]" rather than hoping they go to the configure screen and find them. What do you think?

Update: Man, this entry is a big mess. But people seem to understand what I'm talking about, so it's doing its job.

[Comments] (2) The Online Donation of Constantine: Sumana asked me why, my stupid jokes on the subject notwithstanding, I don't have a little PayPal button on my pages so that people could send me money. It's true that I've considered this. NYCB, NewsBruiser and my various other writings and software cost me nothing but spare time (I've been bumming off of other peoples' hardware and bandwidth for 9 years, and why stop now?). It's not very monetizable, and I don't really need an extra $15 a month, which is the upper limit of what I'd probably get.

At the same time, I'm curious as to how much people are willing to send my way in this post-purchase economy, but that by itself is not a compelling reason to ask for donations. Thus, the brilliant solution: I set up a Paypal or Paypal-like accont, and expose donation buttons all over the place, except that all the money donated actually gets sent to some deserving charity.

How to do this? I can think of four solutions.

  1. The vim/"In lieu of flowers" method: I just say that if you feel the urge to give, you should do such-and-such. Advantages: I don't have to do anything much. Disadvantages: High activity threshhold for donation precludes rash impulse donations. I don't find out how much is actually being donated.
  2. The "money laundering" method. I funnel donations to my own Paypal account and every n months I cut a check for the balance. Disadvantages: I have to cut a check every n months. "The balance" likely to be emberassingly small. If I use Paypal for other purposes it gets all mushed up.
  3. The "cross-site scripting" method. I put up the little Paypal buttons except they don't go to my own Paypal account, they go to some charity's Paypal account. Advantages: Mwah-hah-hah sneaky. Easy to donate. Disadvantages: most charities don't have Paypal accounts. I don't find out how much is being donated.
  4. The "Unix pipes" method. I get an account on some Paypal-like site and specify that all incoming funds be funneled to various other accounts. Advantages: does exactly what I want. Disadvantages: does not exist.

Any others?

[Comments] (5) : The licensing stuff has to wait a little bit, because today I discovered that Movable Type has a data dump format! Well, you know how I love importing entries from other weblog tools. So I had to add a plugin to NewsBruiser that eats up that format and turns it into NewsBruiser entries. Thanks to Josh and Anirvan for sending me example dump files for me to work with. Today's new library is Transfusion, which parses the not-so-great MT data dump files into something you can use.

Incidentally, I've noticed a worrying difference between email spam and weblog spam. With email spam, the spammer can maybe approximate your spam list (after all, even spammers get spam), but they can't see your non-spam list without cracking your email account. On the other hand, with weblog spam no one sees the spam you deleted, but all the non-spam comments are right there for everyone to see and parse. It would be trivial for a comment spammer to post an exact repeat of someone else's comment but with Viagra links all over the place. In the long run, a Bayesean filter for comment spam might degenerate into an IP and URL blacklist. Is there any algorithmic defense against an attacker who has access to everything previously blessed by the algorithm?

Economies Of Scale: Are you in the market for a really big map?

Search Requests Passing In the Night: I think there could be a fruitful meeting between the person who searched for how to get rid of a lazy boyfriend and the one who searched for how to pour a cement pad.

[Comments] (8) Metal Fire!: Sorry, but it's my Constitutional right to shout "Fire!" in a crowded weblog. And what cooler kind of fire to shout than metal fire? Magnesium, uranium, aluminum... they'll all go up in flames. Don't even get me started on nature's deathtrap, sodium.

I guess I knew about metal combustion before, because I'd seen the pretty spectrographic colors metal dust makes when thrown into a fire. And it's not surprising that for metals with nearly-empty outer electron shells, a fine line would divide oxidation from combustion. But never before had I envisioned metals catching fire on their own and wreaking havoc, or conceived of high-tech fires deemed worthy of their own fire class (D) and requiring special fire extinguishers to appease. Even though your aluminum foil isn't going to catch on fire, the idea has a certain cutting-edge cyberpunk allure.

Social Skills: "Your shoe is untied."

CORRECT: "Thanks."

INCORRECT: "I don't need your pity!"

[Comments] (2) Instant Karma Chameleon: This is seriously the best NewsBruiser yet. It's got all the features on Zack's "stuff NewsBruiser can't do" wish list, and you know Zack's a tough customer. You want NewsBruiser to look like the rest of your website, you got it. You want a blogroll, you got it (albeit slightly ugly to manage). The search engine is smarter and much more robust; it's fun to search where before it was kind of a drag, as though your baby had been untrue.

And if you like to import things, you're in luck. Not only can you hook a NewsBruiser weblog up to a Moveable Type weblog and suck down all the entries, comments, and trackbacks; it now comes with a lumbering Tor Johnson of an HTML machete (deserving of its own post, tomorrow) that you can use to exhume weblog entries (and things-that-should-be-weblog-entries) from their nonstandard HTML coffins.

You'll forgive me if all that functionality makes me wax poetic for a bit. Over the past year or so I've been thinking about weblogs, syndication, online communities, information retrieval, the next step in computer-mediated communication... the whole bit. I haven't been talking about it much, because I don't do the grand vision thing well. In my experience, a grand vision is largely a pheremonal advertisement for the person with the vision. I see instead a lot of little strategies and experiments. The world doesn't need another wannabe visionary, but I figure if I can make some incremental improvements and implement some ideas, I can hold my head high with the rest of them.

This ties into NewsBruiser like so: you know how a lot of open source software projects start out with an idea to write a program to do one task, then get it into their heads to do a generalization of that task, and keep integrating the task over some variable and never get anything done? I am fortunate and happy to report that the history of NewsBruiser development has been the good twin of that phenomenon.[0] All this time I've been envisioning and implementing slight tweaks to NewsBruiser concepts that open up new vistas, restricted liftings of restrictions that make it more powerful. Such changes add up, and somewhere during the past year the application became capable of being a platform. Those slight tweaks are becoming more powerful, and my crackpot ideas for fearsome electronic beasts are resolving themselves into simpler and simpler transforms on the NewsBruiser codebase.

But as they say, talk is cheap. I'll let you know when the killer app is done. For now, we've just got a really good weblog system.

[0] The urge to generalize is natural, and it's not hard to generalize without biting off more than you can chew: you start with a working system; you make incremental improvements; you make sure all improvements have a working system as their endpoint; and you try very hard to make the new system as simple to use as the old system, assuming you don't care about the new features. Above all, be patient. It will be better and come faster, and you'll get a better understanding of the problem domain if you don't try to do everything at once. Slow and steady wins the race. A stitch in time saves nine. Neither a borrower nor a lender be.

PS: Zack, Mike, everyone else who's interested: give this version a try. Let me know if you have problems or feature requests.

[Comments] (2) Rewrite Rules: It seems I am, relatively speaking, the master of Apache rewrite rules. If you're setting up NewsBruiser and you want the URLs to look a certain way, send me email letting me know what you want them to look like and I'll come up with some rewrite rules for you to try.

Note that rewriting goes both ways. If you use rewrite rules you also need to create a Python class that rewrites the URLs NewsBruiser generates, so that it outputs the nice URLs that will trigger your rewrite rules. I can help you with this too, if you want.

[Comments] (6) HTML As She Is Spoke: Let me toot a slightly different horn here, if I may. A while ago I put out a call for a Python library that parsed an HTML file into a DOM-like data structure. I needed something that worked on Python 1.5.2 with no external dependencies, something that either fixed or forcibly parsed bad HTML, something that made screen-scraping easy; yea, something that both sliced and diced.

You may be surprised to learn that none of my faithful readers' helpful suggestions met with the approval of my demanding eye, and so I wrote my own library, which I like to call Beautiful Soup and which I mentioned in passing yesterday. It's the HTML parser that just doesn't care. If you give it perfect HTML, it'll give you a perfect data structure, just like the big-name parsers. But other parsers know too much about HTML. They choke on or try to rewrite bad markup. They assume you care about the whole document. A pirate might make you walk the plank, but only a parser would make you walk the whole tree.

Not so with Beautiful Soup. What you wrote is what you get. If the HTML is horrible, so is the data structure you get--but you get something, and if you're screen-scraping, you don't care about the whole data structure. You're not writing a web browser. You want to grab some data and get out. Beautiful Soup hides all the tree traversal behind a couple of methods that let you slurp up all the links, all the headings of a certain class, the specific span that contains the train schedule time, whatever. It's similar in philosophy to Aaron's xmltramp.

If, like Lucy Ricardo, you got some 'scrapin' to do, give it a try. I love it. But then, I love all my children. The ones I designed to go on rampages no less than the ones where it just happens.

PS: Since Beautiful Soup knows very little about HTML, and it's based on SGMLParser, you could probably use it on anything that looks like HTML, eg. XML or your domain language that has the same structure as HTML but different tags.

Pretty Good Hummus: It's been over a week since one promise fed into another. I promised Alyson I'd try to figure out how to make smooth, creamy hummus like they serve in Middle Eastern restaurants. She and I are tired of the grainy stuff you get in a tub from the store. So join me in the Test Kitchen You Can Bruise, as I uncover the secrets of great hummus.

I looked at eight different hummus recipes on the web and tried to factor out the commonalities and tally the differences. I came up with the following generic set of ingredients:

Generic Hummus

Process all ingredients except for olive oil in food processor or blender. Use water or reserved garbanzo liquid to lubricate the hummus if the blade won't catch. Slowly drizzle olive oil (as though making pesto) into the vortex until hummus reaches desired consistency.

Simple enough. Then there were the secret ingredients: cumin, soy sauce (?! But it was in two of the eight recipes!), ground sesame, oregano, paprika, chopped parsley, chopped chilis, coriander, plain yogurt, cayenne, turmeric, and cilantro.

I decided to use yogurt instead of water or reserved liquid, because it would both lubricate the hummus and add the tangy flavor you get at a restaurant. I bought cumin and coriander to put in the hummus, but I am a spice spaz and I couldn't find the coriander. I used marjoram instead, because it smelled nice.

What I got was pretty good. It's smooth (a little too smooth, actually; I used too much yogurt) and tasty. Since I got it pretty close, I think my one experiment entitles me to take a guess at the two secrets to smooth hummus:

  1. Add 2 or 3 tablespoons of plain yogurt to the generic recipe.
  2. Use the blender, not the food processor.

I started the hummus in the food procesor (a teeny 2 cup model that makes me work in stages; wedding gift overflow from an anonymous source), but I wasn't happy with the consistency so I moved it to the blender to finish it. I'm almost certain you could get the exact same result by just dumping everything in the blender.

All the herbs and spices affect the way it tastes, not the consistency. I do not claim to have made the tastiest hummus in the world; just one that has a good creamy consistency. As for flavor, I have not tried this, but adding a tablespoon or two of peanut butter might be good.

You might balk at buying plain yogurt just so you can use a little bit of it in hummus. The solution is to buy a lot of plain yogurt and make tzatziki with the rest; then you've got the complete Pita Fun Pak.

Incidentally, after smelling my post-hummus breath Sumana wants me to make it clear that a little garlic goes a long way in this recipe.

Wait For The Wagon: Profiles In Adequacy:

Millard Fillmore demonstrated that through methodical industry and some competence an uninspiring man could make the American dream come true.

Now that suffices! Maybe there's hope for me yet!

So Rich And Green: Because Beautiful Soup's reception greatly exceeded expectations (I think I tapped a real market need here), I made a cute little web page for it with lots of examples and Tenniel graphics. I finally get to pay tribute to the line from Carroll that made me actually roll around on the floor laughing when I was 9 and my father was reading The Annotated Alice aloud, one chapter a week, complete with all the incomprehensible-to-children annotations.

Hummus Take 2: I made some hummus for Mark's birthday party, which I'm going off to after I post this. It turns out you have to start it in the food processor, unless you have a monster diesel-powered blender. I really do recommend finishing it in the blender, though. I added some sesame seeds and it's got a little different taste from the other batch of hummus. I think that's mainly because I used a different brand of garbanzo bean. Still good, and I managed to get the consistency right.

[Comments] (4) Hummus Corollary: I know this is turning into the hummus weblog (I actually had an interesting entry to post yesterday, but at the last minute I discovered my data was wrong so I have to redo it today), but it transpired that Mark was also making hummus and that, in a corollary to my blender/food processor law of hummus, it turns out that if you have a real food processor instead of a dinky 2-cup "microprocessor", you can make hummus in the processor only. Mark likes his hummus a little chunky, though.

Also, even though it might sound clever, don't bring your hummus to the party in a leftover Trader Joe's hummus container, or people will unintentionally insult your wondrous hummus by thinking it's the grainy Trader Joe's stuff.

[Comments] (6) The Wages of Combinatorics: Trying to figure out the best way to present the licensing interface for NewsBruiser, I decided to see which Creative Commons licenses were the most popular. I ran a Google link: search for all 11 Creative Commons licenses, plus additional CC-provided licenses like the public domain dedication 'license' and the CC-GNU GPL and LGPL. I used the canonical license link: the URL I would link to if I were licensing something. It turns out that only four or five of the 15+ licenses are used by any substantial number of people.

The top five licenses are all Attribution-type licenses, with the most popular being Attribution-NonCommercial with nearly 25,000 hits. The least popular Creative Commons license, with only 13 takers, is the CC-GNU LGPL license.

License Design Implications

It looks like Creative Commons has enough licenses. The core licenses have proven very effective at meeting people's needs, and there's no need to keep minting new ones because as far as I can tell the new ones don't get used. This might indicate that the new licenses are created in response to "You should have such-and-such a license" feedback rather than in response to people who don't like any of the existing Creative Commons licenses.

For instance, consider the Creative Commons "Music Sharing License", which is effectively the same as Attribution-NonCommercial-NoDerivs. It's a lot more popular than its forlorn twin, but here "popularity" means 177 hits on Google instead of 16. It's dwarfed by its own commentary: Googling for "music sharing license" gets you 530 results talking about the latest license from Creative Commons. Compare to a string search for, eg. "Attribution-Noncommercial-Sharealike". You get people actually using the license, not talking about it. Creating a new license gets Creative Commons some buzz, but not much more; it looks like everyone who wants a license already has one they like.

The GNU licenses were probably created on behalf of GPL fanatics who kept bugging the Creative Commons people "why don't you have a GPL license?". Now that they're here, few people use them. My guess is, most people who want to use the GPL are using the actual GPL.

I didn't include them (or Music Sharing) in the survey because they're for music, but the URLs to the Sampling and Sampling Plus licenses are also mentioned almost nowhere on the web. This might be because no one uses them, because they're newer, because they don't get used correctly, or because they get used in ways that Google can't pick up. My methodology isn't as good for licenses not used by web pages (which probably also affects the GPL/LGPL numbers), so I will reserve judgement on these--but again, I searched for links to the URL I'd link to if I were licensing something under that Creative Commons license. The fact that the most popular licenses get tens of thousands of hits indicate that there's not some systemic disconnect where people don't link to the license they're using.

On the flip side, it does look like the CC public domain dedication is getting some good use--it's the sixth most popular license. I think this and the Founders' Copyright license (about which below) feed into a core competency of Creative Commons--being a trusted repository for copyright assignments.

UI Implications

If you want to let someone choose a Creative Commons license (in addition to whatever non-CC licenses), you don't need a bunch of orthogonal sets of radio buttons like the Creative Commons license picker has. You can provide four individual radio buttons and an 'other' field. This will handle 84% of the cases without greatly inconveniencing the other 16% of the people. (You want an 'other' field anyway, since people come up with all kinds of crazy non-CC licenses for their stuff.)

I couldn't measure the success of the Founder's Copyright because I couldn't find one canonical URL for the license. However, it's a good idea and I'm going to make it an option in NewsBruiser. This brings up my other UI design factor: in addition to the four most popular Creative Commons licenses, you can add whatever ones you like and think people should use. They'll be more likely to be used if they're options and not an 'other'.

Data below, if you're interested:
Relative popularity of Creative Commons text licenses
LicenseGoogle hits% of totalFirst result
Attribution-NonCommercial-ShareAlike2490031.63Photographers' and Illustrators' Artist Corners | Creative Commons
Attribution-NoDerivs-NonCommercial2100026.68molly.com
Attribution1030013.08Photographers' and Illustrators' Artist Corners | Creative Commons
Attribution-ShareAlike1010012.83Tools
Attribution-NonCommercial50606.43MSNBC - GlennReynolds.com
Public-Domain30803.91Mike Linksvayer
Attribution-NoDerivs14601.85Among Other Things
ShareAlike10601.35 ACM SIGWEB - Conferences
NonCommercial-ShareAlike7690.98Trademarks, Free Speech, and ChillingEffects.org
NoDerivs-NonCommercial4790.61blog@garogreen.com
NonCommercial3230.41Search Engines Directory
NoDerivs1260.16Browse Top Level > Moving Images > Brick Films > LEGO
CC-GNU-GPL310.04blogkomm: download
Attribution-NonCommercial-NoDerivs160.02Photographers' and Illustrators' Artist Corners | Creative Commons
CC-GNU-LGPL130.02Carlsbad Cubes - Wolf Paulus' Web Journal

[Comments] (4) Beautiful: At last, a solution to the eternal question "Where is your RSS feed?". Admittedly it creates the new question "Why is your RSS feed a big letdown from what I was led to believe by your RSS button?". But isn't that a much more interesting question? (From Sumana)

Leonard Preemptively Gets Results!: Just last night, Creative Commons effectively got rid of many of their least-used licenses by making the (almost always warranted) assumption on their license picker that you want attribution. Check out Mark Linksvayer's comment in my previous entry on the topic for hot new data that is going to make me have to redo my graph tonight.

[Comments] (2) Give Me A Graph With Hair: I redid my graph to do a side-by-side comparison of Yahoo's and Google's allegations as to the relative popularity of Creative Commons licenses (and to get rid of a license which I somehow had in there twice).

The two engines give pretty similar pictures, except that Yahoo says public domain usage and the "Attribution" license are much less popular. Note the following:

Hummus Weblog or Licensing Weblog?: You decide, gentle reader. Tonight I got a lot of good work done on the notebook licensing stuff as well as my usual time spent solving the problems of my new users. The licensing code is one or two hours from being releasable; I just need to tie in the templating code. The release may happen tomorrow or it may happen Tuesday; I'm going to Bakersfield again for the long weekend so there's a kind of narrow window.

It's well-known that typos spawn ideas. Such an idea: the I Want Options library should spawn a knockoff called I Want Potions.

[Comments] (2) Creative Cormorant: And we're back. Kevin did an OS upgrade on this webserver so now we have all sorts of goodies like Apache 2 (which means mod_py (which means mod_py support for NewsBruiser) and a Subversion repository (which means SubWiki (which means a NewsBruiser documentation/fun Wiki)). Yes, it's all about NewsBruiser here. And parentheses. Speaking of the world's premiere news bruising software package, I just released version 2.4.0, "Creative Cormorant". Not only does it have integrated Creative Commons licensing support, it fixes several a couple bugs in the configuration interface that could cause you to lose data, so I definitely recommend upgrading.

[Comments] (4) Everything Is A Design Pattern, Or, Hooray For Bookfinder: A while ago, in the used bookstore in Mountain View, I saw a magical book. It looked to have been published in the 1950s and it was a cookbook, but not just any cookbook. Instead of a list of recipes it laid out these sort of design patterns for food. I thought this was a great idea and I think it's the basic concept you need to easily teach cooking to computer geeks. To cook food you need to have the techniques and you need to have a mental map of food textures and flavors so that you can pick ingredients that go with each other and with the techniques you're using. Patterns work for both skills.

This is, incidentally, the best thing about Alton Brown's style of cooking pedagogy; he shows you the makeup of dishes, how to analyze them, and the connections between them. One of the best examples of this is that in some episode or other of Good Eats he points out that a cheesecake is structurally a custard, not a cake. It needs to be cooked in a hot bath, not just baked in a pan just because it has 'cake' in its name.

Anyway, for some reason I didn't buy that book! It cost $10 and I guess I decided it wasn't worth it. Later I changed my mind, but the last time I went to that bookstore it was gone.

Today I idly searched Bookfinder for "cooking patterns" and I found it! I don't remember the (long, unwieldy) title and I can't search for it anymore because I bought it and there are no other listed copies, but by a fortunate confluence of minds the author put "patterns" in the title so I was able to find it. And at about the same price it was being offered at the used bookstore! The $3.00 extra I'm paying to have it shipped to me I will chalk up as a "lesson learned" surcharge. The relevant lesson, of course, is: never take chances! Buy EVERY BOOK!

If I ever write a cookbook (which I might) it's going to be a synthesis of this cookbook I've got coming to me in the mail and Alton Brown's I'm Just Here For The Food. It'll be organized around the principles of recipe schemas and recipe transformations based on ingredient or technique. If you can make x, you can make y by applying a transformation. You can start slow, gradually build a repertoire you're comfortable with, but always keep experimenting within the bounds of the known if you don't want to learn a whole new skill to make something different.

I think cooking should be more like quantum chemistry and less like high school chemistry. There's always going to be a subjective element, but I think it can be factored out and that you can learn even from reading about transformations that involve stuff you don't like.

Book Update, Updated Book: The book is called (are you ready?): "Cooking Without Recipes: A complete cooking course designed to change beginners and recipe-followers into creative cooks, including 300 recipe patterns and exciting variations." With a baroque title like that you'd expect it to be from the hand of the learned Dr. Johnson, but it is instead from the hand of the learned Helen Worth. There's an updated 1980 version which I should probably get as well if I decide to seriously do this design patterns cookbook thing.

Other cookbooks I found that have similar ideas: "How to Cook without a Book" by Pam Anderson (no, not Pam Samuelson); a completely different "Cooking Without Recipes", by Cheryl Sindell and Joachim Splichal; "The Blue Strawbery Cookbook" [sic], by James Halle. I've ordered them according to my guesses as to where they fall on the continuum that travels from Recipe Refactoring Metropolis to the Random Improvisation Olde Tyme Country Farm.

Honorable mention goes to similarly-named Cooking Without a Kitchen, which, aiming for the MacGuyver wannabe niche market, features gourmet recipes you prepare in the hotel coffeemaker.

[Comments] (6) Spam Microfiction: Man, this is pretty good:

arizona,and he accompanied,audrey,he went down,meadowland,some inexplicable loathing,checkmate,ratslayers mutilated face.

I kind of wish I'd written it.

: In Bakersfield for the weekend. This is one of those rambling entries I write when I'm in Bakersfield and I don't want to miss a day writing in NYCB. Current mood: tired but awake. Thinking about: Bayesian text analysis, capabilities and limits of. Reading: Infinite Jest, which I got for $6 at the used book store by Greens. That's a lot of words for not a lot of money, so merely on the books-by-the-pound scale my purchase was justified. The funny titles of in-book cultural artifacts are just a bonus.

Oh, today we went to a multifamily yard sale where they tried to sell me old Collier's Yearbooks on the pound-for-pound principle; rather the books-by-the-foot principle, claiming that I could impress my friends by filling up yards of empty bookcase space with these old instant-history books. Since this would require getting new, empty bookcases and new, easily impressed friends, I declined. I wonder why they were selling them? Did their friends tell them "You know, those books used to impress us, but the novelty is kind of wearing off."?

I bought two Ian Fleming James Bond novels, and they were kind of pushy about me buying more books. I compromised and bought their ugly 1970s copy of the card game "Pit" that you always find in some distant relative's shelf of games. I guess I'm going to be that distant relative for the next generation.

Oh, I should mention the awesome yard sale (I love yard sales!) Sumana and I went to last weekend. There were lots of antiques, including a player piano, a Polaroid Land Camera, and a lovely 1950s refrigerator ($350, due to its tiny freezer compartment not really practical as your only refrigerator). The woman holding the garage sale said that swarms of antique dealers had descended on her garage sale and that what we saw was merely the carcass they had left.

I bought a hand-made tablecloth and Sumana bought a folding chair. When I'm rich and have my own house I want to do my kitchen in that can-do 1950s industrial aesthetic. To me, "retro" will always mean the 1950s, the first style I can see someone wanting to get back as opposed to just liking because it's old. The same way "modern" art as a term of... art... is stuck in the 1920s.

[Comments] (4) : Oh, hey. Does anyone (like Kevan) remember a book or something that hypothesized wildly about what kinds of creatures would have evolved from current stock one billion years in the future? I mention Kevan because when people were talking about it a year or two ago, the canonical example everyone liked was the Paul Bunyan-esque giant forest squid.

I bring this up because in the odd "randomly placed bookcase" exhibit at the dinosaur museum in Utah, and then in the same used bookstore where I bought Infinite Jest, I found a 1981 book called After Man. It takes the relatively short view of 35 million years in the future, but it's a nice book because it's imaginative, illustrated with watercolored line drawings and written like any other zoological monograph. I can't find any information on this kindred spirit, but I know it exists and it's preventing me from doing a proper NYCB about After Man. Does anyone remember this?

[Comments] (2) Cross-Cultural Hijinx: So, I know all the standard British English and when I went to England a while back I thought I would have no problem communicating with the natives. And for the most part I got along fine. Nobody even tried to confuse me with double-talk about boots and lifts and parliamentary governments. But I did run into some verbal confusion for which no guidebook or web page had prepared me, and these experiences were kind of embarrassing in a that-aggravating-American or a Leonard-suffers-in-silence kind of way. For the benefit of future tourists I will now commence a vocabulary of lesser-known differences between UK and US terminology.

Exhibit A. In the US, when you order an "x salad sandwich" (eg. "chicken salad sandwich"), you get a sandwich made of x salad, which is x mashed up with mayonnaise and celery and other unsavory things. I'd never order any kind of "x salad sandwich" here.

But in the UK "x salad sandwich" means "do you want a sad little slice of tomato and piece of lettuce on your sandwich, or do you just want the bread and cheese and meat and whatever?" And clearly you want the x salad sandwich in preference to the x sandwich, because you need that tomato and vegetable to lubricate the sandwich which is otherwise pretty dry or slathered with some obscure Qwghlmnian sauce.

Exhibit B. I ran into some confusion between "chocolate" meaning a candy bar and meaning an individual, unwrapped piece of chocolate candy and meaning a piece of candy in general. I never did figure this out, and in the end I just went chocolate-less rather than navigate what seemed to be another country's "Want a Coke?" "Sure, I'll have a Sprite" issue. Now that I think about it it's kind of weird that it was easier for me to buy chocolate in French in Belgium than in English in England. Anyway, can anyone clear up this point? It's possible I was merely faced with a surly or inexpert cashier.

Smooth Operators: I can't make this stuff up, but other people can. There are enough Perl operators to make a periodic table. Bizarrely, Perl still lacks most of these vital operators.

<M <Y
Y> M>

[Main]

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