Some Bits: Nelson's weblog

Now with high fructose corn syrup!

For our Christmas breakfast this morning Ken made us a pleasant homey breakfast: hash browns, scrambled eggs with cheese, bacon. And a Bloody Mary. All yummy, except the Bloody Mary was sweet. WTF?

Our mistake was being lazy and buying a mix, Mr. and Mrs. T’s Bold and Spicy. The third ingredient is high fructose corn syrup. At 105 calories per 12 ounces, it’s double the calories of tomato juice and 2/3 the calories in a can of coke.

Why put sugar in a savory drink mix? Because it’s intended for Americans. The bacon had sugar in it too, a terrible idea in a product that is cooked at high temperature. Don’t get me wrong, I like a sweetie bit every once in awhile. But with sugar infecting all processed foods (sandwich bread, anyone?) it’s no wonder Americans are so fat.

Real food tastes better without added sugar.

Goodbye, Google SOAP search API

Man, you leave a company and no one remembers to tell you things. I just learned that two weeks ago Google officially put the SOAP search API on end of life status. That was my first project at Google, as well as one of the last things I worked on before leaving. It looks like the server is still up at least for now, but no new users.

Google also recently shut off Google Answers. It seems like good discipline to me; when your corporate culture has a “go fast, do a lot of things, fail often” approach to product development, you have to do something with the things that succeeded in launching but then failed to make a big impact on the business.

I wonder what will become of the Google search developers now. There’s the AJAX search API, but apparently the terms of use are more restrictive, not allowing you to reorder or mix up the actual results.

See also Brady Forrest’s comments
and my own post on why SOAP sucks

Christmas in California

We may not get winter in California, and so it may not feel much like Christmas. But that just means you can go out to pick your Christmas tree in your convertible and bring it home in the back seat with the top down.

Defcon: Everybody Dies

Remember the awesome movie Wargames, the nuclear war computer game where “the only winning move is not to play”? Someone finally had the clever idea to make a real game like that.
A lot of games that simulate global warfare tend to be heavily strategic, and thus very turn-based and stat heavy. I wanted something that looked like the movie, with vector-lined Soviet subs closing in on the coastline.
Defcon, by Darwinia creators Introversion Software, is at its core a stripped down RTS. You deploy your missile silos, navy fleets, and airbases. Then you have a brief naval and air battle followed by flinging lots of nukes at your enemy. Then it’s all over and whoever has the most megakills wins.
But to be honest, the gameplay itself is not that great. It’s slow, strategic options are limited, there’s a lot of luck. The reason to play this game is that it’s beautiful.
The intention was always to capture the feeling of senseless Armageddon and the claustrophobia of being buried deep underground, trying to win a war that simply cannot be won. Defcon was always meant to be an experiment in the creation of a mood. We wanted to see if we could evoke that vast and terrible detached feeling of genocidal mania.
—Chris Delay, in Dec 2006 Game Developer Magazine
The graphics are abstract and detached. The soundtrack is amazing with ambient creepy angels overdubbed on top of sounds of people coughing. The slow pace of the game increases the horror; launch your nukes at Paris and London and Berlin, then wait five minutes for them to hit. There’s even a mode where the game is played over six hours in the background, while you’re busy doing something else. How creepy is that?

The demo is 60 megs and will let you sample the ambience. If you like it, the full version is $17.50.

Sonic Youth’s first album

I’ve talked before about how Sonic Youth was one of my few contacts with hipness when I was a nerdy high school kid. I was excited to learn that their first album release is finally out on CD. It was caught up in the legal mess of SST records and unavailable for a long time. Now it’s out and only $8.50 on Amazon.

Oh yeah, and it’s still awesome. It’s much less rock than most of their music, more of a droning rush of sound thing going on. The original EP is just five tracks; the rerelease includes a live set from the same year. Haven’t even listened to that yet, just excited to have the album I remember from high school.

The Burning Spear • I Dreamed I Dream • She Is Not Alone • I Don’t Want To Push It • The Good and the Bad

AOL snowball spam

Someone at AOL Instant Messenger decided it’d be OK to send me a promotional email to an address I haven’t used in five years, despite my having chosen every possible opt-out for marketing communications.
Visit AOLMobile.com today and throw a mobile snowball at a friend FREE!* It’s easy! Pick your snowball, enter your friend’s mobile phone number and click ‘Send.’ Snowball A Friend now!
What could be more fun than giving a spammer my friends’ cell phone numbers? I wonder what other Valuable Communications AOL will decide to send them?

Java 6?

What if they had a major release of a software platform and no one noticed? Used to be new versions of Java were hotly anticipated and discussed. Java 6 (Mustang) is out and I didn’t have any idea at all. Did you notice?

Part of my ignorance is because I’m not working in Java right now (and believe me, I don’t miss it). But it seems no one’s really too worked up about the release. The links on Digg are getting no attention. It’s on delicious with a paltry 61 links. There’s a few geeky articles on Google News, but it’s not exactly burning up the wires.

Maybe Sun just is downplaying this release. The list of improvements are not terribly exciting, despite some good stuff in the scripting department. Then again, maybe Java lost its groove. Sure has with me and the people I know.

Wine alcohol content

One thing I miss from France is the more subtle wines. I like big American wines, Zinfandels and Syrahs full of strong flavours. But the fashion in American wine right now is very high alcohol. I drank a 15.5% Zinfandel last night from Peachy Canyon. I didn’t even know you could ferment to that level of alcohol. French wines tend to be more in the 12% to 12.5% range. The flavours are more subtle, they don’t have the hot taste of alcohol.

It’s not good that US wine has 1/3 more alcohol. It’s a bit like the fashion for overoaked Chardonnay of a few years ago. It lacks finesse. Not to mention the effect of drinking that much more intoxicant.

Le Moulin Fleuri

One place we found in France that I don’t want to forget: Le Moulin Fleuri. It’s in the middle of nowhere about 10km south of Tours. It’s the kind of place that can only exist in France: a little place in the country, a beautiful and tranquil view, and a great restaurant with an impressive wine list. It gives the impression of having been a roadhouse for travellers for a hundred years. We bumbled into this with our Michelin guide for lunch one afternoon and got a much better lunch than we were expecting. There’s a little hotel too, I think it’d be wonderful to stay there for a night.

Firefox 2.0 bugs

It’s cool and open source and all, but Firefox 2.0 on Windows has two horrible crippling bugs that have been there since at least version 1.0. And a third new one, too.
  1. Copy/paste focus bug. Ctrl-c copies text or URLs, except when it doesn’t, which is randomly about half the time in Firefox. This bug is three years old. It was marked fixed a few days ago, let’s all pray.
  2. Find dialog opens when typing ’ (apostrophe). Horribly annoying; you’re trying to type a ’ in a text box and it opens some little window instead. Apparently this is a feature that’s enabled when you’re not in a text box, but it’s broken and is enabled when typing text, too.
  3. Window always on top.. A new bug in Firefox 2.0: sometimes a window will randomly become sticky on top. Minimizing and reopening fixes it.
All of these bugs are fundamental usability bugs I run into daily while using Firefox. And they’re all particularly annoying because in each case the app is not listening to user input. Why do they release software in this condition? Why are these kinds of bugs in the app at all? Something is deeply wrong.

Upgrades and migrations, painlessly

I just upgraded to Firefox 2 and was impressed with how seamless it was. Double click the installer, follow the prompt to update a few extensions, and I’m done. My browser looks the same, it still has all my history and stored passwords and remembered forms, it works the same. Little fiddling required. And with Google Browser Sync I’m even able to move between my laptop and desktop and have things follow me around.

Contrast that to FeedDemon, which after an upgrade requires me to go through again and configure it to not act dumb. Or World of Warcraft; today is addon upgrade hell as the new patch comes out. And managing client state between machines? Total pain.

One problem with Firefox 2.0: what’s up with the gradient fill on the tab bar? Hideous to have that embedded in my otherwise flat-coloured chrome.

The Fountain

I went to see Aronofsky’s new movie yesterday (as you would know if you were following me on twitter). I’m glad I went, but it was somewhat disappointing. It suffers the same problem as Kill Bill; lots of formalism, lots of beauty, but ultimately signifying nothing.
I think the biggest problem is that the main characters are so abstracted that we don’t really care about them. Both Pi and Requiem for a Dream were highly stylized and abstract as well, but the lead characters and situation were strong and personal enough to create emotional connection. In this film the characters exist in a bubble of formal beauty, inaccessible to us.

Still it is awfully beautiful, and the music’s great, and there’s some nice symbolism for its own sake. If you’re a film geek it’s worth watching.

Email troubles

Good news: I’m getting less spam. Bad news: I’m getting less mail. Something’s going on at monkey.org that’s causing mail to get delayed and bounced sometimes. If you’ve sent me something important and I haven’t answered, that’s why.

Postcards

There are two kinds of travellers. Those that conscientiously write postcards to friends during their entire trip and mail them promptly. And those that realize on the last day “oh crap, I have to send postcards” and send a stack destined to arrive after the writer has returned home.

Today’s our last day in Paris. Guess which kind of postcard writer I am?

La Truffière

We had a truly excellent dinner the other night at La Truffière in the 5th near Rue Mouffetard. An excellent menu of French classics with some emphasis on truffles, but good broad coverage. The room was great, the staff was friendly, an amazing wine list, everything that goes into a comfortable dinner. Often hard to find in combination in Paris!

The one drawback is the place is very expensive. 110€ per person for the big tasting menu, and precious few bottles under 100€. (Note: this is much higher than listed on the web site. Hmm.) The non-smoking room was about half Japanese tourists and only one French table, I suspect their prices generally keep the locals away. Still, we had a perfect meal, so money well spent.

Paris tour guides

I’ve enjoyed having the time to take tours from English tour guides in France. A good tour guide adds a lot of depth and detail to a place without overwhelming you by boring or irrelevant detail. There are a lot of experts in France if you have the time and patience to find them. I already wrote about my trip to Chartres to have a tour of the cathedral by the amazing Malcolm Miller. There’s good options in Paris, too.

In the cathedral vein, I just finished a very good tour of Sainte Chapelle as guided by Vicki-Marie Petrick. Ms. Petrick is a PhD student of middle ages art with a bit of thespian flair. She did an excellent job of explaining the role of the church and its relics in bolstering Louis IX’s claim to the throne. She also gave a good explanation of the stained glass, in particular the Book of Judith window with its proto-feminist story. Her expertise was generously shared, I definitely suggest you take her tour if you are in Paris.

A good source for walking tours of Paris is Paris Walks. It’s a fairly casual outfit, interesting and entertaining and with a wide menu of possible tours. I took two, one in the Marais and one in the Left Bank. The guide deftly wove together history specific to the streets we were on with a general view of how the neighbourhood fits into modern Paris. Entertaining, a bit bookish, and a very satisfying 90 minutes. If you’re planning on visiting Paris take a look at their schedule and pick a couple that sound interesting. Then just show up and go for a walk, couldn’t be easier.

The lacy crêpe

Crêpes are one of France’s lovely little fast foods. You see them on street corners made to order with some Nutella or butter or the like and they’re pretty satisfying. But crêpes can also be a real meal, a specialty of Bretagne. Jason and I had a great lunch in Rennes during our little trip: ham and cheese crêpe, chocolate crêpe, some cider.

Paris has a zillion crêpe joints, but only a select subset are serious authentic Bretagne places. Like the Crêpe Dentelle, a casual little weekday joint in the 2nd near the charming market street Rue Montorgueil. The delicate buckwheat crêpes were deliciously buttery. The homemade salted caramel made for a delicious dessert crêpe. The cider by the bowl wasn’t my favourite. But for 11€50 you can get a full meal of three crêpes served by smiling pleasant people. What’s not to like?

Minard

I have a French name. I can pass for Minard if I pronounce my name “mee-nahr” with a Clouseau accent rather than the broad Texan “my-ner” my family uses. The silent d makes the name French and apparently common near Bourges. Then again, my name is really Mlinar; my father changed from the Czech spelling some 50 years ago.

Bourges

I keep saying that I like the countryside of France better than Paris. Nothing against Paris, but the country is so relaxed and friendly and restaurants and hotels are particularly pleasant. But not always, as we learned in Bourges.

On a friend’s recommendation we made a special trip to have dinner at l’Abbaye Saint Ambroix, a well regarded restaurant in the restored ruins of an old church. The food was good and the adjoining hotel was fine and I can definitely recommend it to any travellers in the area. But the whole evening felt a bit off. The music was loud and grating. Our drinks were wrong (really, does “mojito” sound at all like “amaretto”?). The food was rushed. Good butter but no butter knives made for awkwardness. The staff noisly started clearing the unused tables before the guests were done. Etc, etc. I’m being picky, but Ken and I enjoy a good restaurant experience so much that we’ve become aware of when it’s just not quite right. Either the Hotel Mercure chain buying the hotel has removed whatever owner took personal pride in the place or else Wednesday night is his night off. Either way it lacked the personal hospitality that can make French places so wonderful. Now I appreciate that personal service all the more.

All that being said, Bourges is a lovely town. It’s about 200km south of Paris, midway between the Loire and Burgundy, an old Roman town that was a wealthy power in the 17th century. It’s still a lively and healthy city. Too many modern buildings to be entirely beautiful, but the old city center is nice and the impressive cathedral has some excellent 13th century stained glass. And we found an excellent lunch at Le Bourbonnoux with the personal service and comfort we enjoy so much.

Rude tourists

Given the number of horrible people milling around inside Paris’ most famous cathedral talking into their cell phones, they ought to rename the place Notre Dame du miracle du téléphone portable.

Reasonable Paris hotels

Finding a good hotel in Paris is expensive and difficult. Many places are small, overpriced, and desperately needing renovation. The guides do help you; for me I find that 3 stars on the sign or 2 pavilions in Michelin mean a comfortable room. More is luxury, and 2 stars/1 pavilion is clean but Super 8 quality.

Here’s a small list of hotels that I know to be agreeable. Rates are very approximate for a basic double room; in Paris demand pricing is practiced with fervor.

Grand Hotel de Champagne
My friend enjoyed staying here and her room seemed nice, if a bit small and dated. It’s in a fantastic location on the right bank in the middle of Paris, maybe 200m from the Pont Neuf. The immediate neighbourhood is good, too; there’s a good cafe, restaurant, etc. 215€.
Hotel Royal St. Michel
Another fantastic location, this time on the left bank at St. Michel. You want the heart of romantic Paris? Here ya go. I haven’t been there, but my friend Jason liked it. He had an inside room off the noisy street; that seems important here. 250€.
Hotel du Louvre
This place is a bit more upscale / business that the ones above. Again with a great location on the right bank. I’ve stayed here a couple of times; if you want something with a serious concierge, an American style bar, and not crazy expensive it’s a good bet. Rooms are a bit old and noisy though. 250€ to 450&euro.
Hotel de Vendome
The best hotel I’ve stayed at in Paris. Rooms are luxuriously furnished and spacious, but the hotel is still small and intimate enough to be comfortable. The location is in the middle of the most chic shopping in Paris. Although as a place to stay, it’s a bit isolated and far from a Metro. If you can get a good deal here it’s well worth it for the comfort. 350€ to 600€.
This list may seem expensive, but so is Paris. It is possible to get reasonable places to sleep in Paris for 100€ but either you’re far from the middle of town or else you’re in a room you can’t wait to leave every day.

A nation of bad websites

It’s amazing that a whole country could have a vernacular of bad web sites, but I think France has managed it. Hotels and restaurants regularly have terrible sites that give the user “an experience”, complete with Flash and music and precious little useful information. For a typical example, see the text-free site of the luxury restaurant La Tour d’Argent. Or try to “enter” the site for the Petite Nice Passedat.

To be fair, a lot of American hotel sites have stupid “experiences” too. But in France even the informational sites are lousy. For example, Mappy, the main French map site (now obsolete, thanks to Google). Marvel at that front page, with 16 separate text entry areas.

But the king of awful websites is the SNCF, the online train booking. The have a site in English, which is awfully nice, only about a third of the links don’t work and give you French error messages. Here’s how to book a train:

  1. Go to the home page and enter your travel plan.
  2. Wait 10-30 seconds for a timetable search.
  3. Choose a train. Hey, that was easy.
  4. Fooled you! Enter your travel plan again.
  5. Wait 10-30 seconds for a seat search.
  6. Choose a train.
  7. Enter name, choose to pick up tickets at a machine.
  8. Enter credit card info and get a confirmation.
  9. Stand in line 30 minutes to get your tickets from a person because the machines don’t accept US credit cards, even just to confirm identity.
My favourite part is the way you get to go through the time tables twice. Mind you, you better do all the web transaction in 5 minutes, because otherwise it times out and you have to do it all again. And don’t try to change anything while in the process, or you have to start over.

I’m sure there are some wonderful French web sites out there, and I personally know some great French web designers. But the examples I keep finding are just awful.

Chartres

As nice as Paris is, my favourite experiences in France are in the smaller towns and countryside. Life outside the big cities in France is still quite sophisticated with excellent food and art and life. But you also get some rusticness and relaxation.

I made a special trip to Chartres for a guided tour from Malcolm Miller. Mr. Miller is something of a legend; he’s made a life’s study of the famous cathedral and has been giving guided tours for nearly fifty years. His book about the cathedral was a revelation for me. It explains in brisk detail the iconography of the stained glass and sculptures. He argues that the cathedral is like a library; now I have a hint of how to read the books. The windows are no longer a blur of red and blue with funny faces to me, I now see the narratives and the artistic imperative. His tour was excellent, a 90 minute sampler of his life’s work interpreting the cathedral delivered with delicious humour.

The tour alone was worth the trip, but Chartres turned out to be a revelation. The river is beautiful, the Saturday market is impressive, and Le Grand Monarque is a great old road hotel with excellent food. All in all a very pleasant overnight excursion from Paris. The train’s only an hour, you could go just for the day. But better to settle in a bit and enjoy the rhythm of Chartres life.

As usual, I took some photos.

Why SOAP sucks

There’s an amusing dialogue floating around about how simple SOAP is. As someone who bears some past responsibility for well used SOAP services (Google’s APIs for search and AdWords) let me say now I’d never choose to use SOAP and WSDL again. I was wrong.

The promise of SOAP and WSDL was removing all the plumbing. When you look at SOAP client examples, they’re two lines of code. “Generate proxy. RPC to proxy.” And for toys, that actually works. But for serious things it doesn’t. I don’t have the space to explain all the problems right now (if you’ve seen my talks at O’Reilly conferences, you know), but they boil down to massive interoperability problems. Good lord, you can’t even pass a number between languages reliably, much less arrays, or dates, or structures that can be null, or... It just doesn’t work. Maybe with enough effort SOAP interop could eventually be made to work. It’s not such a problem if you’re writing both the client and the server. But if you’re publishing a server for others to use? Forget it.

The deeper problem with SOAP is strong typing. WSDL accomplishes its magic via XML Schema and strongly typed messages. But strong typing is a bad choice for loosely coupled distributed systems. The moment you need to change anything, the type signature changes and all the clients that were built to your earlier protocol spec break. And I don’t just mean major semantic changes break things, but cosmetic things like accepting a 64 bit int where you use used to only accept 32 bit ints, or making a parameter optional. SOAP, in practice, is incredibly brittle. If you’re building a web service for the world to use, you need to make it flexible and loose and a bit sloppy. Strong typing is the wrong choice.

The REST / HTTP+POX services typically assume that the clients will be flexible and can make sense of messages, even if they change a bit. And in practice this seems to work pretty well. My favourite API to use is the Flickr API, and my favourite client for it is 48 lines of code. It supports 100+ Flickr API methods. How? Fast and loose. And it works great.

To be fair, SOAP can be forced to work. Using SOAP didn’t really hurt adoption of the APIs I worked on. But it sure didn’t help either. So what’s the alternative? I’m not sure. Right now I’d probably go the HTTP+POX route while trying to name my resources well enough that the REST guys will invite me to their parties. But XML itself is such a disaster and AJAX is starting to show the cracks in HTTP (like, say, the lack of asynchrony).

Truly, none of this protocol fiddling matters. Just do something that works.

I no longer work for Google; these opinions are very much my own.

Le Suffren

I don’t know the area around the Eiffel Tower well. The immediate area is a giant park and tourist hell, and south of there is ugly and inhuman in scale. But it’s also a popular place to live and work. And there are some sympa restaurants there, like Le Suffren.

It’s a straight-up brasserie, lots of closely set tables and a menu with food options from oysters to fresh fish to steak to my pasta with tandoori chicken. Many of the locals were eating seafood, including an enormous fruits de mer platter, so maybe that’s there special thing. The lunchtime crowd is fun, a bunch of Parisians enjoying a good meal without much fuss. And the service and food are a notch above the usual brasserie. Recommended, particularly if you’re in the area and want something truly Parisian.

At their place

Auberge is French for “inn”, traditionally a homely little place where you could get a room for a night and a home cooked meal. There are precious few auberges left anywhere in France, let alone Paris, so the name now implies “restaurant with cozy food”. Such as the Auberge d’Chez Eux, a lovely casual little place near the Eiffel Tower in the 7th.

The southwest cooking is strongly on the “hearty” side, not sophisticated. But it’s delicious and honest, paricularly the homemade charcuterie and desserts. Our dinner last night included an assortment of homemade salads, a fantastic salade gourmande with cured duck breast and foie gras, an impressively rich stew of deer, and a whole pheasant cooked with morels and girolles.

The hazard of this place is they love serving way too much food. My first time there I ordered the charcuterie sampling, which ended up being 12 kinds of dry sausage, 6 kinds of hot sausage, and a little fresh boudin noir to finish it off. That was the appetizer; my main course of two duck legs was to come. This kind of excess is atypical for France, and frankly a bit unwelcome, but it’s done out of a generosity and joy of serving customers good food to make them happy. So you go with it, and just eat what you want, and it works out.

The wine list is surprisingly good; we had a lovely 1995 Madiran. And my friend Richard was crazy enough to finish his meal off with a glass of flaming prune eau-de-vie, a remarkably theatric presentation that ended up nearly burning his lips off. Everyone laughed, we ate a bit more dessert, and enjoyed the pleasure of a friendly auberge. It’s no wonder Chirac took Putin here for dinner.

Vous aussi dites cheese!

It’s not all elegant dining in Paris; today’s lunch was a hamburger, fries, and coke at Restaurant Quick, the French take on McDonalds. It’s expensive by US standards at 5€90 for the basic burger meal. How is it? Nominally a little better than McD’s but nowhere near In-n-Out quality.

But what prompts me to document this ignominious meal is the current “Say Cheese” campaign. Special meals include a hamburger with three slices of cheese, the intense raclette, and some nasty looking goat cheese burrito. Yes, in a land with a fantastic variety of local artisinal cheeses, “now with more goo!” also sells.

Chez Marianne

In the middle of the Marais in Paris there is a Jewish quarter with a complicated 800 year history. These days it’s mostly home to recent Jewish immigrants from the Middle East. It’s a great neighbourhood to find a quick cheap lunch, something different from the usual French food. Felafel, schwarma, bagels, etc.

One of the best known places there is Chez Marianne. It’s an overgrown traiteur; their primary business is selling premade salads, deli foods, etc. But over time it’s evolved into a restaurant with table service and is now quite popular at lunch. My assortment plate had hummus, tzatziki, roasted peppers in oil, feta, and a meatball. And some excellent pita bread. Way too much food, but good.

Au Plaisir Gourmand (Chinon)

The best rating Michelin gives a restaurant is three stars, “worth a special trip”. But three star places are too perfect, highly scripted food temples with extravagantly complex food. They aren’t particularly fun. Which is why I like going to places like Au Plaisir Gourmand, indeed why I made a special second trip to Chinon just to have dinner there again. It ranks one star, which seems about right, but boasts the friendliest staff and most amazing local wine list I’ve had on this trip.

On our first visit to Au Plaisir Gourmand we had no idea what to expect. We had the nicest time. The woman who runs the place has a wicked sense of humour and knows when to use it. The crowning moment was at the end of the meal when she brought out a pat of butter with a birthday candle in it to both honour Ken’s birthday and tease him for asking for extra butter earlier in the evening. That kind of appropriate familiarity makes us very happy. Not to mention the great food, the 1947 Clos de l’Echo, the lovely cheese, or the 1953 Coteaux de Layon dessert wine.

So we made a plan to go back, in part to have a good meal and in part because we heard there was some danger of the restaurant being sold. Jean-Claude Rigollet’s cooking was as good as before; the veal with morels was absolutely perfect, my roast pigeon was excellent, good scallops with zucchini, a lovely lobster salad, etc. All perfectly prepared without being too fussy.

Sadly they were out of the 1947 Chinon, but the sommelier M. Bournand was kind enough to dig in the cellar and find a few bottles of Olga Raffault Chinon for us: a 1955 white, a 1955 red, and a 1959 red. The Loire is not as famous as Burgundy, Bordeaux, or the Rhone. But with expert help you can find excellent wine there. And a 50 year old Chinon wine can still be in great shape. The good aged whites tend to be sweet, coming full round in their age to an intensely mellow, elegant flavour that’s not intense like a Sauternes but more rich like a Burgundy. And the reds hold on remarkably well, more fruit than an old Burgundy or Bordeaux but still with that old books flavour that makes truly old red wine such a pleasure.

The best part of an experience like this is the expertise of the staff. The sommelier at Au Plaisir Gourmand knows more about his wine than pretty much any American sommelier I’ve ever encountered, despite his being well under 30 years old. The wines were in perfect shape, excellently selected, and reasonably priced. All five ~50 year old wines were great; a remarkable event. I’ve given up ordering old Burgundy in a fancy three star restaurant; I can’t enjoy something knowing it’s $20 a sip. But a good restaurant in the Loire, a careful wine list, and friendly staff mean you can enjoy a long fine meal with great wine.

Chinon is a lovely part of the Loire valley, both for its own history (lots of Jeanne d’Arc) and for being in the middle of chateau touring and wine. The Hotel Diderot is a fine inexpensive hotel in town with a charming building and fantastic homemade jams. Or for a luxury experience, my favourite place in France is the Chateau de Marçay;. You can get a cab to take you the 10km into Chinon for Au Plaisir Gourmand, but by all means eat at the Marçay too!

Le Lutetia café

By no means is Le Lutetia worth a special effort for a short term visitor. But if you’re in the neighbourhood of Notre Dame or the Ile St. Louis this little café is a good bet, much better than other nearby options. The folks are friendly, the coffee’s good, and you have a wide selection of little snacks or more serious meals. They make a good American-style hamburger, nice meal-sized salads, and had a good looking onion soup. The staff is also very friendly and there’s even free WiFi. Le Lutetia is our “around the corner” place.

Auberge des Deux Ponts

Paris is expensive. So it’s nice when you find something like the Auberge des Deux Ponts, a casual little restaurant right in the middle of the Ile St. Louis. Despite the location the lunch menu is a low 10€90 for three courses. I had a very good salad with warm goat cheese, a decent paupiette de veau (ground veal, spiced), and some ice cream. Nothing too special, but the staff cares about what they’re doing and the place is good, nearby, and cheap.

Cheese to the rescue!

The Rue Mouffetard is what the Left Bank / Latin Quarter would be if it weren’t overrun by tourists. It starts at the charming Place de la Contrescarpe and runs south a few blocks on the far side of the hill from the Bd. St. Michel nonsense. The street is home to a bunch of student dive bars, “ethnic” restaurants (Greek, Chinese, Indian, ...) and several fondue joints. Some of these places are hideous (like Chez Papa, whose salad was dressed largely by the lettuce washing water), but if you choose carefully you can have a good inexpensive meal in a fun neighbourhood.

It’s been cold, so last night Ken and I went for fondue at Assiette aux Fromages. 15€ gets you more melted cheese than you can eat along with a nice bit of ham and salad. There’s lots of other things on the menu, some even not cheese-themed, but it’s clear you come here for fondue or raclette. And they do fondue well. We’ll go back if we have time.

PS: the blog title comes from an awful marketing campaign by the American Dairy Association. The theme was that any food could be made into a delicious meal just by adding cheese. I can’t think of a more succinct summary of the American approach to food.

Spam has won

Email is now a broken medium for me. For the past three months about 85% of my mail was automatically deleted by spamassassin. All well and good, but then 80% of what got through the spam trap is also spam leaving me with a painful manual filtering process.

My spamassassin setup clearly no longer works. What can I do? I’m currently using spamassassin with the baysean filter, Vipul’s Razor, pyzor, and nightly sa-update runs. Both Thunderbird and Gmail seem to do a better job filtering spam than this setup, so I must have something wrong.

Marseille and Castillon-du-Gard

One of the pleasures of being in Paris for so long is easily taking little trips to other parts of France. Neither Ken nor I had been to Marseille nor much of Provence, so that’s where we went. I took lots of photos, too.

We started in Marseille, the ugliest French city I’ve ever seen. Crazy Mediterranean traffic and nasty 1950s concrete buildings combine to make a beautiful bit of landscape quite unpleasant. It is an interesting old port though, and the Hôtel Passédat - Le Petit Nice was great with a truly fantastic restaurant. We also had a traditional bouillabaisse at Chez Michel, a hardcore fish place. Excellent, even if eating a quart of liquid, 4 fish, and a pint of mayonnaise as a side is perhaps a bit much.

But Ken and I love the countryside more, so we went off north to Castillon du Gard, a tiny restored hilltop town near the Pont du Gard. Ken found us another great hotel / restaurant there, Le Vieux Castillon. Despite the place being only about 5% full (ie: two parties) we were fed and treated very well.

Along the way we visited the 12th century fortress ruins of Les Baux de Provence, the Roman aqueduct of the Pont du Gard and about twenty little Provençal villages. A very pleasant few days, and perfect weather in November.

Gréviculture

I just got back from a lovely trip down to Marseille, punctuated with stress because of a planned train strike. Expensive TGV tickets with mandatory reservations? Too bad, the train may not be running for social reasons. Just show up and hope for the best. Fortunately I got lucky.

There are constant strikes in every non-entrepreneurial industry in France. I’m sympathetic to workers’ rights, but there’s something galling about the persistance of strikes in a country with 35 hour work weeks, relaxed service expectations, significant social programs, and a huge unemployment problem. And for visitors it’s particularly frustrating to randomly find the Louvre is closed because there are no ticket takers or the Pompidou is closed for some mysterious reason. Are museum workers really so oppressed?

Apparently there were 482 strike notices for the French trains in a year. Don’t miss this blog’s sidebar for a list of other upcoming strikes. I hope you’re not having a baby after November 20!

Parisian street art

One remarkable thing in Paris is the quantity and quality of street art. I don’t mean crappy tag vandalism, but thoughtful and beautiful art by folks like Jèrôme Mesnager, L’Atlas and Space Invader. Walking around Paris is fun for all the beautiful old buildings, but look closer at some of the new stuff illicitly stuck to the walls, too.

Flickr is a good place to find images of Parisian street art. The Paris street art group is good, as are the photos of yoyo (and his website), tofz4u, chais, vitostreet and others. But I’m really enjoying stumbling into them myself. Many of the installations are quite big and ambitious; the nights must be quiet.

I’ve been taking photos of street art when I can. I’m particularly taken by the Kufic stylings of L’Atlas; Arabic calligraphy is beautiful, and somewhat provocative in Paris. And I recently stumbled into a beautiful gallery at 23-25 rue Ramponeau in the 20th. There’s an artist workspace nearby, so I imagine this was semi-authorized.

L’Enoteca

A few days ago I had about enough of French food so I went looking for something “ethnic”. Paris is big and there’s all kinds of food here, but Indian, Thai, Mexican, even Greek are all a bit dicey. So we ended up with Italian, at a little place near me in the Marais called L’Enoteca. I’d walked by a dozen times, always impressed by the care of the daily menus and wine choices.

Generally in Paris if you find a place where the staff cares about what they’re doing, you’ll eat well. As it was at L’Enoteca. My strongest memory is of the pasta with duck. Excellent fresh tagliatelle, shreds of duck nicely peppered. Simple, elegant, perfect. The Italian wine list is excellent and modestly priced to match the menus. It’s clear the owner has pride, and that translates to a good experience.

L’Ambassade d’Auvergne

The best eating in France is in the country; in Paris what that means is finding places with regional specialities. L’Ambassade d’Auvergne is a good example, simple food from the Massif Central. But while the food is simple this place near Pompidou is elegant, good staff and nice tables.

I started with the assortment of cured pork; some ham, rillettes, blood sausage, and dry sausage. All excellent, particularly the ham. Ken was happy with his wild boar terrine but the best starter was the simple lentil salad with bits of bacon. Perfectly prepared. For a main corse we had duck breast and sausages, all served with aligot. Aligot is a riffe on mashed potatoes, mixed thoroughly with hard cheese to an elastic consistency. Hearty simple fare, very satisfiying. We’ll be back.

PS: I’ve rolled the food posts back into my normal blog. No need for two feeds anymore.

A real French lesson

Taking the train back from Auxerre the other day I got a live French lesson. Sitting across from us was a young tough guy, about twenty, wearing a permanent sneer and blocking the aisle with his legs. Originally he was sitting across from a pretty young woman, but after he wouldn’t leave her alone she got up and moved.

So we’re cruising along for a few minutes and suddenly the guy lights up a cigarette. French trains have been non-smoking for several years. I’m a non-confrontational wuss, particularly in French, but this pissed me off. Here’s how the conversation went (in French, unless noted).

Excuse me sir, but this is a non-smoking train.
Huh?
This place is non-smoking.
grunt, sneer
(English) What, are you just an ass? You can’t smoke here.
leer. I can’t understand you.
(French) See the sign? Non smoking. Do you understand it?
silence
You cannot smoke here.
storms off, swearing
My accent is so awful it’s immediately obvious I don’t speak much French. I think the game he was playing was to pretend he couldn’t understand me, so the fault was mine. Turning the question around on him fixed that; he could hardly admit he didn’t understand the sign. Either that, or my increasingly loud voice was attracting more attention than he wanted.

Anyway, off he went to smoke somewhere else. Next to a grandma, who also told him off. He jumped off the train at the next stop. And me? Apparently I know enough French to stare down a punk.

Exchange rate fees

One of the more odious US credit card practices is charging “exchange rate fees” or “currency conversion fees” on non-USD transactions. I hadn’t been paying attention but just looked and saw Chase is charging me 3.75% 3% on every purchase I make in France. At least they disclose the fee. American Express hides it, but looking at Euro historical reference rates it’s either 2 or 2.5%.

Mind you, this is on top of all the other fees they charge both me and the merchant. And it’s pure profit; their friction for a Euro denominated transaction is at most 0.1%. Why do they charge it? Because they can.

Surprisingly Wells Fargo is much better on ATM cash withdrawals. There’s a flat $5 fee, so at $1000 an ATM visit I’m paying 0.5% for eurocash. I guess I’m gonna have to start carrying a fat roll.

Thanks to Walter for forwarding me this NYT article. Capital One apparently has a credit card without any stupid conversion fees.

Le Petit Prince

One of my favourite casual places to go on the left bank is Le Petit Prince de Paris, a comfortable and lively restaurant not far from Pantheon. The menu is sort of updated classic French; nothing too inventive, but not dull either. And achievable, with good ingredients and appropriate attention from the kitchen. But I like the place most because it has a good buzz. It’s been a sort of gay restaurant for 20 years; nothing overt, not in a gay neighbourhood, but popular with young Parisian men. Lately it’s been featured in a lot of food guides (including Zagat) so it gets a much broader mix of people. But it remains festive and comfortable and a place I’m happy to know and go back to.

Chez Cécile

My friend Richard booked us into this restaurant near Madeleine the other day. He knew it in its previous incarnation as a Burgundian brasserie, complete with cheap brass plaques commemorating regulars’ favourite tables. It’s morphed into Chez Cécile now, a comfortable restaurant with an ambitious chef. I’m writing this too far after the meal to remember details, but there were a lot of touches of inventiveness on the menu that worked. Meat flavoured with smoked hay. Ravioli with coconut milk and vanilla. Etc. New cooking, not hidebound French tradition, and it worked. We’ll be back.

Benoit

If you look in any guidebook for “authentic Paris bistro” you’re likely to be sent to Benoit. It’s been in Paris forever, was a favourite of politiians, bought by Alain Ducasse’ prestigious company, and has even gotten a star from Michelin. But is it that good? Not really.

I’ve been twice in two separate years now and to be honest, the place suffers too much under the weight of its reputation. The clientele is 90% tourists, sapping the will and joy out of the staff there. The menu is classic bistro, which is to say a bit hackneyed. Everything is prepared well enough but nothing is particularly good. Nothing is bad either, and the service is very good. It’s just uninspiring.

Paris is so full of honest and earnest places that there’s no need to go to someone just making the motions. If you’re looking for a good traditional meal in Paris and you’re not sure how to find a place, by all means go to Benoit. It’s certainly good. But if you want something interesting save the evening for somewhere new.

Le Caveau du Palais

Ken pulled a real gem out of Zagat last weekend; Le Caveau du Palais. Everyone wants to eat at a bistro when they visit Paris, but the truth is most “bistros” are crappy French short order restaurants with the exact same menu. Duck confit. Steak with shallots. Broiled bass. Steak tartare. Roasted chicken.

The difference with Le Caveau is it’s very very good. The food is prepared with great care and excellent ingredients. The terrine du porc was homemade, they just brought out a big casserole and said “cut yourself as much as you want”. My duck confit was one of the best I’ve had in a very long time, with fanastically garlicky and leathery pommes sarladaise. Ken’s chicken breast with cream sauce and morels was perfect as well. Good wine list, too.

It’s rare to find a simple bistro that does so well. Benoit is where most people will be sent, and you’ll do OK, but Le Caveau felt more like the real thing to me. The location is phenomenal as well, in the middle of the touristy Cité island but in a quiet corner on a handsome square. It felt like the kind of place where all the Parisian ministers go for lunch. On a Saturday night it was very quiet.

Le Brasserie de l’Île St. Louis

As pleasant as my apartment is, I live in the middle of tourist hell just behind Notre Dame. So I’m generally suspcious of the restaurants a short walk from my place. But there are a few gems here, including Le Brasserie de l’Île St. Louis. It’s a 135+ year old Alsatian brasserie right on the island, just to the left from the bridge from Cité. And it’s a lovely casual little brasserie, lots of hearty portions of sauerkraut and cured pork and the like. Lunch today was some lovely slices of roast veal served alongside cauliflower au gratin. Nothing subtle, but made with care, cheap, and delicious.

L’Espace non-Americain

Several times I’ve heard American friends complain about how when they go to a restaurant, they’re stuck in a corner with the other Americans in “the bad room”. I’ve had it happen to me too, but I’ve learned that it’s not really hostility at all, it’s the restaurant trying to make me comfortable.

Foremost, the non-smoking room is often the American room. French people don’t seem to ask for l’espace non-fumeur very often, so the folks who want to eat their meal without smelling noxious smoke often end up being Americans. And secondarily, good restaurants often have one waiter who speaks the best English; you’ll be assigned to his room as a matter of course. No insult intended, they’re just trying to make you (and themselves) happy.

So go with it. And when the table next to you starts bleating loudly about their diets and stock portfolios, enjoy the pleasure that they can overhear you commenting nastily about them.

Le Reminet

Do you dream of going to Paris and eating in a little crowded hip bistro, inventive menu and a buzz? If so, Le Reminent is the place for you. Except one thing; it’s bad.

Everytime we’ve walked by this place it was crowded with happy people. And the menu looked good. So tonight we went in and found a disaster in action. Ten minute wait to have anyone ask us about drinks or food. So we ordered food, asked for the wine list, then five minutes later are asked by the same person for our food order again. Lots of grumpy people sitting around demanding checks, service, etc. Clearly things were not going well.

The menu was ambitious but disappointing. My cod salad with capers was pleasant enough, Ken’s croustillant of chevre was unimpressive. And both of us were served salad out of a bag. Partridge was a welcome item on the menu but came out overcooked and in a muddy brown sauce. Ken’s steak was good meat, but again with the mud sauce. Desserts equally uninspired. Good? Earl grey tea flavoured creme. Bad? No other flavour.

The restaurant was packed with English speaking tourists, all smugly happy they’d found a sophisticated experience. The British forty-something gals across from us were drunk and taking two flash photos a minute. And the culmination of the meal service? The woman running the restaurant sat at a table in the middle of the dining room, patrons still having their meals, and proceeded to eat her own dinner and read a magazine. Shocking, unacceptable, and a good reason not to go back.

Sadly, about half the restaurants we go to in Paris seem to have similar lapses. I’ll endeavour to write more about the good half.

Paris, just like home

One thing that’s new in Paris since my last time here is the semi-permanent encampments of people living on the streets. Not exactly the streets, but along the Seine and the Canal St. Martin. I have a few pictures if you’re curious.

I don’t know what mistaken progressivism is allowing people to move in but it concerns me greatly. I come from a city with a significant problem of people living in the streets and it’s hideous. Downtown San Francisco regularly ashames me, particularly when I talk to visitors. Why would Paris let that happen to them? Particularly in a country with such extensive and expensive social support?

Judging by some of the signs I saw I gather there’s a political point being made about the right of people to live in the streets of Paris. Bullshit. People have a right to a roof, but not a right to a tent in a public space in the middle of the city. My impression is social support in France is more than adequate to care for people too sick or poor to care for themselves. What’s the problem?

Showers

I’m feeling a bit homesick today. Nothing serious but I’m missing my cat, burritos, dogshit-free sidewalks, and running errands without linguistic adventures. But what I’m most homesick for now is an American shower.

The French may have given the world the bidet, but they have alarmingly bad showers. Shower curtains and sprayers are considered optional. It’s common to find hotels with nothing but a tub and a handheld sprayer on a flexible hose. You cower in one corner of the tub, awkwardly holding the sprayer above you with one hand while trying to wash with the other. You rush and try your best not to spray outside the tub, but are inevitably ashamed of the swampy mess the bathroom has become.

A good American shower is a sybaritic pleasure. A solid watertight enclosure, allowing splashing and spraying with no fear. A large, high flow showerhead hung about 2 meters overhead, spraying out and down to soak you. The best showers are large enough that you can stand fully in the shower without the water touching you, but even the usual bathtub arrangement allows plenty of room for soaping, relaxing, lounging.

Versailles, Versace, Vegas

I used to think Vegas was the tackiest place on earth. Now I’ve visited Versailles. It’s all beautifully done, don’t get me wrong, but so excessive and so fake (down to the “marble” columns) that I ultimately found it depressing. I can almost understand the beastly behaviour after 1789.

The grounds are very beautiful; excellent site architecture, placed on top of a gentle hill with expansive gardens stretching out on all sides. Great statuary too, although a lot of it was covered; made for some creepy photos.

I’m glad I checked Versailles off my to-do list, but I wouldn’t recommend it unless it’s a warm sunny day and you feel like a garden stroll.

Geodata and DRM

I’ve been playing with geotagging, GPS, etc while in Paris. On the geowanking mailing list there’s been a fascinating discussion of DRM applied to geodata. Geodata is such a new field that at the moment it’s mostly DRM-free. Then again there’s not much good data, either, and what exists is jealously hoarded. Here’s a bit I wrote for the list about my fears of the future.

Let’s say I buy a GPS device from Gargellan to help me be a tourist. It comes with all sorts of cool data telling me which places to go, where to eat, some nice walking tours with useful audio annotations, etc. The device itself is dirt cheap, say $50, but Gargellan sells me the data on a subscription basis for $5 a day. Sort of an iPod for GPS.

My fear is what restrictions that device and the data will have on it. Will I be able to merge in other data from openstreetmap or wikimapia to augment my tourist wanderings? Will I be able to export the walking tour I took to Flickr so I can easily annotate my photos? Am I stuck with the Zagat restaurant ratings that Gargellan made a deal to supply, or can I buy Michelin ratings too even though Gargellan doesn’t like Michelin?

If the GPS device market follows the music player market, I fear the answer to my questions will be “no”. Because Gargellan’s business model will demand that they not let me use the data the way I want. Cheap-device expensive-data is a very common business model, but it’s technically fragile because it relies on the data staying expensive. For the past ten years tech companies have increasingly been turning to DRM to try to keep that data expensive. And DRM sucks; not because I have to pay (I don’t mind), but because I in turn can’t do useful things with the data.

We can be purists and say we will only use non-proprietary devices and free data. But that’s an uphill battle. In the meantime commercial companies are going to be designing the hardware and software that ordinary people will be using. Will those products be awful closed platforms like cell phones? Or open friendly platforms like pre-trusted-computing PCs? Or somewhere inbetween?

Overstimulated

I am now exhausted in France. After a couple of weeks of wondering what I should do with myself here, I suddenly find myself with 600 photos to edit, 4 books to read, two trips to narrate, not to mention all the daily routine of Paris.

I had a nice few days in the Loire followed by a nice few days in Bretagne and Normandie. Lots of detail to come, but I have to say now that travelling in the countryside in France is the best thing ever.

Canon portable printers

The Canon i80 is good hardware. It’s a portable colour printer that runs on batteries. It’s no longer made, but the Canon i90 looks to be the successor.

I made all sorts of fun of Ken when he bought this printer. Who needs a portable printer? Turns out wedo. We’ve taken it to Zürich and Paris with it and it’s a huge convenience to be able to print train tickets, maps, photos, etc.

The print quality and speed is quite good. It does a good job on colour photos if you use good paper and it’s great at quickly printing off a few black and white pages. It’s reasonably portable but it’s not petite. About the same volume as a laptop, but thicker and shallower. The builtin battery is surprisingly useful; no need to find a second outlet just to print a page or two.

A lesson on Paris taxis

Do not assume you can find a cab at 19:30. Even if it’s Wednesday, the weather is lovely and you’re in the middle of the city. Being dressed to the nines for an evening at Pre Catalan will not help. The Parisian taxi driver won’t be impressed by your cufflinks. He already has a fare.

What should have been a pleasant cab ride through the Bois de Boulogne towards one of the best restaurants in Paris ended up in a hellishly stressful hour plus search for a cab. We finally gave up and took the metro to Porte Maillot, nearer the restaurant and with a cab stand. Even there we waited 10 minutes.

Time to learn how to reserve a taxi by the phone.

Musee d’Orsay restaurant

Paris is best taken at her own pace. And while the Musee d’Orsay is the #1 essential visit for any visitor to Paris, it can be a difficult place to pace. Hour long waits to buy tickets, giant crowds, a lack of good nearby dining. The solution for the tickets is easy; go a day or two in advance and buy tickets at the nearby kiosk. Then the day you visit you whisk right inside, no wait. (Except for today, where the kiosk was perversely closed.)

The solution for dining was also easy, but alas has gotten harder. There is a serious restaurant inside the museum, on the second floor in a beautifully restored ballroom. Alas, the service has gone downhill significantly since last year; the lack of linen makes the place feel just a bit too much like a dismal cafeteria. The menu is still slightly ambitious and the execution is still just as uneven. Our filet of pork was great, the entrecote serviceable, but the mushroom terrine was watery. I can recommend this place for lunch, but only as a comfortable part of an extended visit to the museum. It’s a shame they gave up on the tablecloths and other trappings of a real restaurant.

Photoshop: cheap color pop trick

On Flickr there’s a useful thread describing a quick trick to make colours pop. You take your photo, convert to Lab color mode, then compress the a and b colour channels. This has the effect of making colours generally brighter at the cost of destroying some detail in intensely coloured parts of an image.

Not always a good idea, but it can make certain pictures look better. I’ve done it to about 5% of my photos I put on Flickr. To make life easier I’ve created a Lab color pop action set for you to download. First you should try the method manually once to understand what it’s doing.

A La Tête D’Or

The entitlement of Paris is no matter where you are, there’s a comfortable little restaurant a block away. In the middle of the city there’s a lot more than one little restaraunt, so finding the comfortable one can be a trick. For today’s lunch A La Tête D’or was just the thing only a block from Chatelet metro.

The bistro is run by a family from the Aveyron, but other than the advertised Aubrac beef I have no idea what that would mean for cuisine. The menu was quite pleasant though, straying far from the usual steak/chicken/fish dishes of the everyday Parisian bistro. I had a nice little filet of lieu jaune (pollack), a firm white fish like a cod served in a green herby sauce. Being in a hurry I appreciated the rapid service, but the fish came out a bit too quickly. I fear it was not prepared to order, but it was quite tasty. A little pichet of rich white wine, a homemade tarte tatin, and I was done with a very pleasant lunch 45 minutes and 28€ later.

BTW, across the corner is a pleasant patisserie where I bought lovely croissants a few years ago.

Brussels

My first (and so far only) outing from Paris was a quick trip up to Brussels, to see a friend visiting there for EuroOSCon. I’m sad to say that Brussels lives up to its reputation, a dreary and boring little business city. What surprised me most was how ugly so much of the architecture is in the middle of the city, a lot of 60s/70s concrete brutality. It’s not all bad; the Begijnhof is handsome, there’s a cool shopping arcade, and the center square is quite a showpiece. But overall? Not such a beautiful town.

We did eat well. We were steered the first night to L’Huîtrière, a seafood place built at Brussels gone-100-years docks. Excellent fresh fish, comfortable room, nice dinner. I was a bit disappointed with our second dinner at L’Maison du Boeuf, not because anything was bad about it but because for a place of its reputation (and price!) you expect excellence, and it was merely very good. The best surprise was Aux Armes de Bruxelles, an excellent old world place with gentileness and charm smack in the middle of Brussels tourist hell. I had moules frites just because I felt obligated, but my friends did much better with careful lobster preparations with cream sauce. Excellent place, I strongly recommend.

Les Marronniers

My friend Richard took me to Les Marronniers first, for a quick lunch across from BHV in the 4th. It’s a casual sort of cafe, excellent salads and small sandwiches. I went back with Ken because we were jonesing for the promising looking American-style hamburger, which was OK but a bit of a disappointment. Should have had the Sunday brunch like everyone else!

I believe in the afternoon / early evening this doubles as a place for a quick glass of wine for the young gay men that suddenly appear all over the Marais. Tres gentile.

Camille

Camille is another fine Bistro in the Marais, Despite being in the center of the tourist zones of the 4th Camille seems to cater more to folks on lunch break or out for a Parisian stroll. Alas I’ve forgotten what we ordered, but I imagine we’ll be back and I can report more then.

Au Bourguignon du Marais

I’ve been to Au Bourguignon du Marais in the 4th twice now. It’s a straight up bistro, simple French dishes, with a burgundian slant and a good wine list. The outdoor seating is quite pleasant on a quiet seat and the kitchen and staff are serious enough to make for a very good lunch.

Some favourite dishes.. A blanched tomato and fresh goat cheese salad, the classic hangar steak with shallots, and a surprisingly robust penne with chorizo. They also feature andouillette and it looks good, but I’m just not quite brave enough. Last time we were there we had a fantastic chocolate tarte, way better than anything else like it in Paris. Creamy and eggy, rich with chocolate but not too dense. Yum.

ChantAirelle

If you want a slightly odd and rustic experience in Paris, check out ChantAirelle in the 5th. It’s a simple restaurant featuring recipes and products from the Auvergne, plus a bit of touristy stuff stuck on front. Don’t fear though, the staff is friendly and the cooking is good. Nothing we had was subtle; this is casual mountain food. But the potatoes and cheese dish was tasty with a delicious thin sliced ham. My “salmon trout” turned out to be salmon prepared as if it were a mountain trout; a bit bizarre, but good.

I’d say this place isn’t worth a particular trip, but if you’re tired of the Parisian experience you can get a bit of Auvergne feel for a cheap price. Nice outdoor space in back, too.

Stéphane Martin

An excellent and innovative French place in the 15th, Stéphane Martin is what I keep expecting to find in Paris and missing. The chef is quite ambitious, with a changing and challenging menu. The highlight of our dinner was an Indian preparation of rabbit; quite strongly spiced but with the subtlety and integration of a French chef.

While the cooking is great the service is a bit uneven; it almost feels like they hired untrained staff. But they’re nice and attentative, just a bit clumsy, so go with it and it’s fine. The entire restaurant is non-smoking, a welcome thing.

PS: I promised to write more, and I will, but got sick of writing up the places I didn’t like.

Old school file transfer

Zmodem is a good protocol. Back in the pre-internet days I used to spend hours breathlessly watching warez transferring at 300 baud over my modem from some Apple ][ site. Things got a lot more reliable with the xmodem protocol and, later, zmodem. Checksums! Block resends! Resuming midstream! Amazing.

I still use zmodem on occasion to transfer files from my Windows laptop to my Linux server. With all the firewalls and security crap it’s a lot of effort to do a proper TCP/IP file transfer, but all I need is an open terminal session and rz/sz and I’m set.

The quality of baguettes in Paris

Bread is serious business in France, but not all bread here is good. Even the simple baguette has huge variation. Now thanks to my friend Marc I know how to articulate the difference between the good and the bad.

A good baguette starts with an open crumb, an airy interior texture with different sized holes. This structure is the result of careful handling and longer proofing and is one of the visible marks of a good baguette. Of course what really matters is the taste and texture, but the easily-visible crumb structure (miette) is a good indicator.

I’ve been buying baguettes all over town as an experiment. And almost every shop has mediocre baguettes, including the fancy gourmet store (1.05€), the place with fabulous croissants (0.90€), and the permanent boulanger in Place Maubert (0.90€). But the best bread I’ve had so far comes from just around the corner on the tourist-swamped streets of Ile St. Louis (0.80€). It has enough flavour you can enjoy it plain, good chewy bite, and yes, the open crumb.

See also this sinister explanation for lousy Parisian bread

Making the course

Shopping for groceries is a lot of fun in Paris. The ingredients here are fresh,and there’s such variety of fruit and cheese and meats and bread and pastry. The produce quality is better than in San Francisco, too; it’s shameful how bad lettuce is in California.

The trick in Paris is to buy things from specialists, not supermarkets. This means going to several different stores on a shopping trip and figuring out which boulanger has the best bread, which cheese shops are better at mountain cheeses vs. soft cow cheeses, and careful produce inspection.

My favourite place to shop is the Marché Maubert, a three days a week outdoor market. Some 30 different vendors selling fruits, vegetabls, meats (calves brains!), cheeses, pastas, middle eastern specialities, and, oddly, suitcases. The two or three permanent shops there are quite good as well. My Parisian restauranteuse friend Evelyne was kind enough to go shopping with us the first time and show us the ropes. Quite easy; afterall, the vendors want to sell to you as much as you want to buy.

Paris has about 40 of these markets; the mairie publishes a good list. So far I’ve mapped about half of them: see this map or download the KML.

Paris metro passes: Carte Orange

Sometimes being in Paris feels like an adventure game.
ride metro
The metro requires a ticket.
buy ticket
From whom?
buy ticket from machine
This machine does not accept your credit card.
buy ticket from RATP agent
“Je ne vous comprende pas. Parlez vous Français?”
jump turnstile
The gendarmes are approaching. Run?
The Paris metro is actually pretty easy; just buy “un carnet” from the agent, 10 tickets for 10.90€. But living here you want a monthly pass; Here’s the walkthrough on how to do it. WARNING: SPOILERS.

Paris has weekly and monthly Metro passes (abonnement). As a visitor you want the Carte Orange (a photo ID card, free) along with a coupon (a metro ticket you reuse). The coupon choices are a coupon hebdomadaire (one week, Mon-Sun, 16€) or a coupon mensuel (1st-31st of the month, 52.50€). You probably want the cheapest ticket, zones 1-2 (for the whole Metro). Residents are being encouraged to switch to Navigo, but that requires a local address and bank account so skip it.

Buying the monthly pass turns out to be easy. Just go to any ticket seller in a metro station and say you want a Carte Orange. He’ll hand you a blank photo ID card for free and then sell you the week or months’ coupon. Stick a one inch square photo on the card and use the provided adhesive to seal it up. You have to write your card’s number on your coupon; that prevents you from sharing your coupon with someone else.

Every city I’ve lived in has had a different process to buy a local transit pass. In Paris there’s no special effort to get the card, you get it anywhere and assemble it yourself. There are photo booths in some bigger metro stations.

The challenge of shirts

I’m at that point in my trip where getting things done in a foreign country seems so difficult. For instance, getting shirts washed and ironed. Do you go to the 5 a sec chain where it’s $4 a shirt, the shirts come back wrinkled, and the troll at the counter is mean? Or do you go to the local pressing where it’s $8 a shirt, the shirts come back perfect, and the mademoiselle at the counter is so lovely and nice you wish you could ask her out?

Either way, it’s a lot of money for a shirt compared to $1.25 in the US. But then again the shirts are hand ironed, the staff is being paid a living wage, and the experience is altogether more personal. But I feel certain it’s possible to get a shirt done right for, say, $5. if you just knew where to look. My Parisian friends just have their cleaning lady iron their shirts. Cleaning lady; how do I hire one of those?

An excuse to walk Paris

I’ve found a solution to my Paris-photo-cliche problem; Space Invader. My new daily challenge is to go find invaders around Paris and photograph the surroundings. I’ve liked this guy’s street art for awhile now and they provide a good excuse for walking around the city slowly.

Paris has so many surprises. Today’s walk took me on a tour of the 5th. Along the way I discovered the Arenès de Lutèce, a 2000 year old Roman amphitheatre. And the lovely little Place Monge, a small village feel in the middle of the city. And the tomb of St. Genevieve, a 5th century saint whose bones were burned by the democracy-loving revolutionaries in 1793.

And on and on, so much in this city to find. The invaders are my breadcrumbs.

Yahoo maps weak data vs. Flickr geocoding

Dear Flickr, your new geocoding service is awesome. But could you please switch to a map provider that has more than two roads for the entire city of Paris? I know Paris is kind of a new city; some of the streets are only 800 years old and Haussmann did make a mess of things in the 1850s. But really, sometimes you want to find a specific street.

Flickr is owned by Yahoo so it’s no surprise they’re not using Google maps in the geocoding interface. But it’s bad for users. I’m taking some very site-specific photos in Paris now and my current geocoding solution involves Google Earth, URLs as comments on placemarks, and a bunch of XML hacking. Ick.

Parisian experiences

I am sitting at my neighbourhood cafe with a fantastic view over the Point Louis Philippe and beyond to the late afternoon sun-drenched limestone buildings along the Seine. Free WiFi, a big glass of mediocre Chinon, and the tranquility of a shady Parisian cafe. La vie est bonne.

I’ve been a bit at loose ends in Paris, not sure what to do with myself here. But then I relax a bit and the city comes to me. After lunch yesterday at Les Marroniers in the 4th (casual cafe, good sandwiches) we walked a bit and found a Sunday exhibition of the national police. Equestrian demonstrations, acrobats on motorcycles, zip-lines for children.

And then on we walked to the eastern tip of our island, to the garden featuring a statue of the now-forgotten artist Antoine-Louis Barye. Then from there past the public shower for the indigent (on the most expensive real estate in Paris), and on to the St. Louis church whose open door invited us in to an organ rehearsal of Buxtehude and Bach.

When you slow down, most every street in Paris offers some sort of pleasure to the visitor.

Pain au chocolat

With many thanks to Jason Kottke for the recommendation, I just finished enjoying a lovely pain au chocolat from Boulangerie Malineau in the Marais about five blocks from me. Crisp, nicely layered, and warm, just a bit too buttery. A superior pastry, even for Paris.

One wonderful thing about Paris is the diversity of bakeries, cheese stores, butchers, etc. Everyone seems to have specific favourites; this place is good for pain ordinaire, this one for croissant, this one is more convenient. So much to learn.

Software written by deranged children

I knew the Adobe Reader update process was bad, but I didn’t know how bad until I accidentally installed 7.0.0 somehow on my laptop. It proceeded to download little updates to get me up to the current 7.0.8, and then apply them one by one. It took five reboots to upgrade Reader entirely.

That’s five more reboots than necessary, and four more than reasonable. Reader insinuates itself into your system at boot time and inside MSIE, so they have a hard time upgrading it. But applying multiple patches and reboots is really dumb. Dear Adobe: people put old versions of your installer on their CDs. You should support them well.

Some help for you. PDF Download does its best to prevent PDF from ever loading inside Firefox and corrupting it. Adobe Reader SpeedUp fixes a lot of problems in Reader and lets you disable autoupdates. And Foxit reader just hit 2.0. I don’t like the rendering in this Adobe alternative, but it is an option.

Musée Carnavalet, happy chance

Yesterday’s afternoon had one of those happy random experiences that make being in Paris wonderful. We went out for lunch and some grocery shopping, and on the way inbetween got pulled into the Musée Carnavalet over in the 3rd. The lovely courtyard is what brought us in curious, but since it was free that day we went inside to look.

The museum collects works of art in and about Paris, focussing on 18th and 19th century stuff. Lots of minor fine art works by lesser known artists, along with some amazing decorative arts. It was interesting going to a museum that had a lot of art, not all very good. Seeing bad impressionism helps put good impressionism in context! Maybe all museums should have a few ringers, bad pieces to keep you on your toes.

Anyway, lots of beautiful things, and the old mansions the museum is in are lovely. I liked the Paris focus of the collection, a different way of organizing things.

Degrés de Notre Dame: Moroccan

Ken and I have finally discovered a good area to wander from our place in search of dinner: between the Ile de la Cité and Place Maubert. It’s close enough to the tourist zone to have lots of casual restaurants, but far enough on the wrong side to not be awful. Lots of promising options.

Like Degreés de Notre Dame, a restaurant with a pleasant outdoor seating area next to a modest hotel. Like most French restaurants of this type it serves the usual fare along with a speciality. In this case, Moroccan food. My tagine was fantastic, richly spiced and sweetened with raisins and plums. Ken’s warm goat cheese salad was also excellent, although his couscous was a bit bland. Mostly we liked the place because they seemed to really care about serving good food and making people happy.

Chicken and fries

Brasserie is French for diner and a lot of the French comfort food I enjoy is the French equivalent of the blue plate special of meatloaf and mashed potatoes. Poulet frites is one such dish: a quarter roasted chicken, some fries, and if you’re lucky a little salad with mustard vinaigrette. Which is exactly what I had for dinner late on Sunday, then again for lunch on Monday.

Nothing exciting, but made well it satisfies. The chicken skin should be crisp, a little brown gravy from the drippings, the fries crisp and hot and just oily enough to not quite soak up all the gravy. Which, alas, is not quite what I got at neither Le Village Ronsard in the 5th nor Le Dôme in the 7th. Sunday night chicken is a risky proposition, and while the Monday lunch was better it wasn’t made with much love. Just have to keep trying!

Paris so far

It’s been a week since landing in Paris and I’m slowly settling in. It’s taking me longer to feel comfortable than I expected. I think the problem is I’m not working, so I have nothing to structure the day. I feel like I should be In Paris 16 hours a day, but that’s too much. Fiddling with cameras and GPS units is giving me something comfortable to do (while still useful to Paris) and I suspect before too long I’ll take up one of my programming projects. Eight hours a day of Paris is enough.

Having an apartment of your own is a wonderful thing. We rented a place right in the middle of the city on the Ile St. Louis. Being central is great, but even better we’re just a bit east of the tourist center, making the Marais more “our neighbourhood” than the Latin Quarter or the 2nd. Feels a bit more real. Also the island itself is incredibly quiet and calm. Few cars, a nice respite from the moped madness of the rest of the city.

I need help with the photography. I’m surrounded by clichés, buildings or classic Parisian images. What I really need is someone to give me exercises and critiques.

Les Fous d’en Face: Sunday afternoon

I had a lovely Sunday lunch today at Les Fous d’en Face, a sidewalk bistro with a great location. It’s in the 4th at 3, Rue du Bourg-Tibourg, just north of Rue de Rivoli in a charming little restaurant lined square. Just the thing on a sunny Sunday afternoon.

My salade du chevre chaud was a surprise; the salade is served separate from the cheese, a fresh mild crottin that looked more like a poached egg. Very nice, a bit heavy. The salmon main course was excellent; fresh and well cooked if a bit plain. Dessert, a fresh strawberry soup, just the thing for the end of summer. Ken enjoyed his rabbit terrine but was a bit unimpressed with the veal cutlet and girolles. The Languedoc rosé we chose (Peyre Rose) was excellent if a bit strong for the day. A deep color, almost a red, and strong for a rosé (14%!). Excellent wine, just not the perfect choice at the time.

Our waiter was quite friendly and made the experience all the more enjoyable. Definitely a comfortable place for a tourist to visit, but being a bit up the Seine in the 4th it wasn’t overwhelmed by Americans in shorts. Not cheap but not terrible, three courses will cost you about 30€. A good choice if you’re in the Marais.

We went back and had another good lunch. My tuna was great, Ken’s steak was not as good but that’s what he gets for ordering steak in France. Our Beaujolais order (Chiroubles, of Eric Morin) got us a special friendly visit to explain what we’d ordered. The place is choosing wines carefully.

Cheese at home

After all this dining out I couldn’t take anymore, so we finally did some local shopping and had dinner at home. A trip to the local fromagerie yielded an Epoisses (Berthaut; like home, not raw milk), a St. Marcellin, and some very strong dry goat cheese. Along with some Corsican sausage, a baguette from the boulanger and some wine from Nicolas it made for a fine quick dinner.

One of my goals in Paris is to get friendly with a local cheesemonger, to be able to go in and say “what’s really good today?”. Cheese is a living complex thing, not to be shrinkwrapped and sliced to individual servings. Time to find that in Paris.

Ma Bourgogne: classic bistro in the Marais

The Place des Vosges is one of those old European city planning miracles, a lovely square with uniform architecture surrounding a comfortable park square. There are a few good restaurants surrounding the square and Ma Bourgogne is a storied old bistro/café you can’t miss. The tables under the colonnade are very comfortable so you can excuse if the food is a bit dull, if proper.

Ken and I made the mistake of both ordering some dry cured sausages. Which is what we got, giant chunks of sausage with no proper knife to cut them. Good enough charcuterie but not exceptional, and too much of it. Our steaks and frites came out better, particularly my bavette, but other than the fried shallots there wasn’t much to dress the steak. Very plain food. If I had a bit more courage maybe I could be telling you how good the andouilette or tête de veau are, but having had those French soul food adventures once I’m not in a hurry to do so again.

If I’m in the area again I’d definitely stop in for a quick bistro lunch, but not worth a special trip. I’m still unsure about whether this restaurant is the same as the Ma Bourgogne on Bd. Hausmann in the 8th. I was there a few years ago, that place was marvelous.

Mediocre pizza in the Latin Quarter

Hot on the heels of our lousy salad-in-a-bread-bowl, Ken and I finished another 45 minute marché de manger at some random pizza place we found in the 6th or 7th that was open and advertised “feu de bois”. Nice enough neighbourhood joint, slightly rowdy and good spirited, but nowhere near good enough to warrant remembering.

The one thing I do remember was the gentleman sitting next to us, a regular. In his mid 60s, very large, slight difficulty moving. But well loved by the staff despite (or because of?) his tendency to flirt with the young male staff. His eyes followed every young man in the room, not rudely, just enjoying the scenery while dining. Tres gentile. He helped us get the waiter’s attention a time or two, was friendly, but alas my French isn’t good enough for casual conversation. I did get a good smile from him when I made a mildly intimate gesture with Ken, letting our friend know we were fellow travellers. Paris is good for people.

The awful tourist joint with salad in bread bowls

The nadir of my dining in Paris so far is a joint right across from Notre Dame at the end of the Petit Pont. There’s a string of several outdoor cafes; good for a beer, bad for food. Should have run away with I saw they proudly advertised “salad served in a bowl made of bread!”. Nasty day old pizza dough, inedible. And the salade nicoise was lacking in all the goodness that makes a French salad. Hey, they’re not all good.

La Bouteille d’Or: Corsican near Notre Dame

Our first serious dinner was at La Bouteille d’Or, a fine restaurant with a slight Corsican bent just across from Notre Dame. We had no particular plan that night but the spacious tables and well dressed staff brought us in. And it worked fairly well.

Ken and I both had wild boar (sanglier) for our main courses. Very nice, if a bit plain in preparation. I confess I can’t remember much about our first courses except that Ken’s beignets of chestnut flour didn’t work as well as we’d hoped. I think I had snails. But I distinctly remember the fantastic selection of Corsican cheeses we had to finish the meal, the perfect accompaniment to the dark red vin de Corse.

There are so many good restaurants of this caliber in Paris, I’m not sure this one is worth a special effort to visit again. But it was a good dinner for us.

The nightmare of email protocol security

I have a very simple desire: to receive and send email securely from my laptop, no matter what it’s IP address. I’m making this a bit complicated on myself because I’m running my own mail servers on Debian: postfix for SMTP, dovecot for IMAP. And their configuration is a nightmare.

Last year I got dovecot IMAP security working. I don’t really remember how, but I seem to be doing plaintext authentication (bad) over a TLS connection (good). I also remember it taking several hours to set up.

This year’s project, necessitated by a DHCP-happy ISP, is SMTP authentication so I can send email. What a pain! these instructions are the best I found, but it left out a few important steps. Like you have to install libsasl2-modules by hand, and the password database copy in /var/spool/postfix/etc/ has to be readable by postfix, not just root. All that took an hour to make work; I gave up trying to get SMTP over SSL working too. Ugh.

Why is all this server setup so hard? Both dovecot and postfix support way too many security options, none of them easy. And then various clients don’t support various authentication options (Outlook: I’m talking about you). It should all just work out of the box.

La Reine Blanche: convienient on Ile St. Louis

Our apartment is on the lovely Ile St. Louis. Dining options are limited here, but one place that seems to work well for a casual lunch is the Auberge de la Reine Blance. It’s just a bit further west up the street than most tourists go and the door is kind of small, but inside is a very typical little comfortable lunch joint.

The menu is a bit ambitious for a casual place. Ken had an eggplant gratin with curry flavouring along with a rich, solidly prepared beef burgundy. I had an excellent set of snails in little puff pastry with pesto and a lovely millefeuille preparation of fish. Well executed, simple, not terribly expensive. We’ll be back.

We went back, it was as good as remembered and is now our favourite neighbourhood place. I see someone agrees with me: it gets a 21/30 food rating in Zagat.

Le Bouledogue, gay brasserie

Our second night in Paris found us stumbling around again looking for a restaurant, this time by heading off in a direction of the Marais we’d never been in before. We ended up at Le Bouledogue at 20 Rue Rambuteau in the 3rd. A tiny little place, half empty at 20:45 and totally full by 21:15. About half the crowd were skinny French gay men there for a quick pre-crawl meal. And proper brasserie service, friendly people, all good. (Except the weather, a miserable 30°C).

Ken and I both had gaspacho, passably good but nothing special. Ken’s duck confit was undercooked but the skin was nicely crunchy. My breast of goose was absolutely fantastic, unctuously oily with just enough vinegar in the sauce to balance. We liked the place, but in retrospect maybe the food was just ordinary.

Santorini: mediocre Greek

Our first few days in Europe Ken and I always do the same thing; wander around for 45 minutes looking for somewhere for lunch getting increasingly cross with the city and each other. Santorini, deep in the tourist maze of the 5th at 24 r. Harpe, is typical of the place we end up at. Good enough food, OK staff, nothing remarkable. We had grilled meat and a salad and were done.

Le Dauphin

I have a soft spot in my heart for the friendly brasserie Le Dauphin even if it may not be among Paris’ best restaurants. It’s conveniently located near the Louvre at 167 Rue Saint-Honoré, the staff is friendly and easily accomodates English (or Japanese), it’s open for dinner on Sundays, and it’s lively but easy to get a table at.

The food is good and solid. They have a southwestern France bent (cassoulet, etc), but the menu is generally typical brasserie fare with some well considered specials. And while 37€ isn’t cheap for a three course menu it’s not bad for the quality and location. Ken and I always seem to end up here on our first night in Paris (it’s near the hotel we favour) and for that, it satisfies.

Computers make life easier?

Ken and I are running around stressed trying to get ready to go to France. I walked into Ken’s office today to see him typing on his precariously balanced laptop, intently concentrating with his tongue sticking out of the corner of his mouth. What was he doing? Copying bookmarks to the laptop. How? By hand, by retyping every URL.

Ken’s a smart guy and a professional software engineer. But he’s not a Windows hacker. So when he needs to do something odd on the Windows box he patiently does what he knows will work. In this case, retyping 100 URLs.

After showing him where the Favorites folder was and how to mail himself a zip file, we pondered what had gone wrong. It’s simple, really. Other than asking someone how would you ever figure out how to do something weird like copy bookmarks from one computer to another?

We can solve this specific problem with a tool like Google Browser Sync. But in general how do we make software obvious to use, both for its intended purpose and for the weird little things you need to do once a year?

Flickr GPS geocoding made simple

Thanks to Flickr it’s finally easy to use geotagged photos. Alas, the workflow is still very clumsy for using a GPS to geotag. Here’s what I came up with for Windows.
  1. Get a GPS. Six months ago the Garmin Forerunner 301 was the smallest thing I could find with a USB interface. The newer Forerunner 205 looks good, as does this upcoming Sony thing.
  2. Walk around with the GPS tracking your location and take some photos. Make sure the clocks on the GPS and the camera are synchronized.
  3. Dump the GPS track log to a .gpx file. Garmin drivers are here. I couldn’t find Garmin software to just write a GPX file, but get301tracks works. Or you can use RoboGeo to download and save GPX.
  4. Run RoboGeo ($35). Follow the instructions for “3. From the tracklog in a GPX file”. Pick your JPGs, then pick your GPX file, then click “Write the location data to the EXIF headers” to create new geotagged JPGs.
  5. Tell Flickr to Import EXIF location data. It’s a one time preference setting.
  6. Upload your photos to Flickr via your usual method.
There’s a much easier way to do all this inside RoboGeo. Just plug in your Garmin GPS, point it at your photos, and upload to Flickr. No messing with EXIF tags or GPX files or anything. But while that’s admirable for its simplicitly it’s totally the wrong thing for serious image management. You want the raw location on your hard drive so five years from now you can use it again.

The flaw in the above workflow is it doesn’t put the geotag data in your raw image originals. RoboGeo supports DNG but not CR2. Ugh. Keep the GPX files around.

Alternative software: gpsPhoto.pl, grazer.

Lenovo: the good and bad

I needed a new laptop for my trip to France. After shopping around I ended up buying the Thinkpad T60 with the ATI Radeon X1400 graphics card. It’s a good compromise between powerful, light, and gaming ability. And Thinkpad PC hardware has a well deserved excellent reputation. But IBM recently sold the business, how is Lenovo doing?

The hardware quality is good. Same solid keyboard, rugged screen hinge, ugly industrial design of Thinkpads for years. Temperature and power management seem good. The screen isn’t as bright as I’d like; I don’t have the “FlexView” option, maybe I should have gotten it. The laptop lacks S-Video or DVI output. But basically it’s a good solid machine and I like it.

The software is surprisingly good. By which I mean there’s almost none. The only non-system stuff is a bunch of Google software that uninstalls very simply (or may actually be useful!). And the IBM ThinkVantage suite of system tools is not too bad. You have to convince it not to turn your wireless off every 3 minutes and you have to disable the mysterious “BEEP” driver, but overall the laptop works.

Now the big problem; customer service. The online order system is awful and buggy and confusing. And then Lenovo screwed up somehow and sent me a machine with a bad part. The promised replacement took four weeks to arrive and the salesguy who was my contact mostly avoided returning my phone calls. Bad customer service, a bad omen for Lenovo’s taking over the business.

I’d probably buy another Thinkpad. Depends if build quality is maintained.

Business ethics in the Internet

I got a cold recruiting email a few days ago from a notorious SMS company that’s oddly registered in Ascension Island. I normally ignore this kind of recruiting mail, but this time around I wrote back and explained that because of what I’d heard about their unethical business practices I wasn’t interested in talking to them. (1, 2, 3.)

The recruiter must not have gotten my email because he called me. I explained again why I wasn’t interested in talking with him and was shocked to hear an immediate response to the criticism that his company was unethical. Not “we’re misunderstood” or “we’ve changed”. No, he told me they were in a competitive market and couldn’t worry about stepping on toes while building a business.

I don’t know what was more sad; the answer or the fact he had it at the ready. I’m reminded of this crazy story about it’s like to work at a malware provider. Google has taken some knocks for its “don’t be evil” policy. But the good thing is it immediately sets the internal debate at the right point. Not “can we get away with this” or “do we need to do this to build our business” but rather “is this right?” That’s the place to start.

Amazon utility computing

Amazon’s new Elastic compute cloud looks good. So many signups they’ve closed the beta for now. Between EC2 for compute and S3 for storage, Amazon is offering most of a utility computing service. Store and process data for very cheap, pay as you go. As a developer who recently lost access to a massive compute farm I find these Amazon services very exciting. Think of the startups it could enable!

But as the founder of a failed utility computing company I just don’t get how Amazon’s going to benefit from offering these services. The problem is the commodity pricing. If Amazon completely sells a server they gross about $900 a year. Say it costs $300 / year to buy and run a server and they fully sell out 10,000 machines, then Amazon nets $6M / year. Amazon made $360M last year, so this best case scenario would be a 2% earnings improvement. Nice, but worth the distraction to their primary business?

I love that Amazon is offering this service; it seems very valuable and useful to people like me. But unless it’s a long term viable business for Amazon it’d be foolish to build a product that relies on their service. I guess we’ll see how it plays out. Sun’s version of this was looking really bad last year, but then again the signup process at Sun is 1000 times harder.

Thanks to waxy for some chat on this question

Feature request: fuzzy geotagging

Congratulations to the Flickr team for their new geotagging interface. I think this is the first time it’s truly easy for normal people to indicate where they took their photographs in a way others can benefit from.

It’s a bit late for a pony request, but I sure wish geocoding interfaces had a notion of uncertainty along with location. Ie: latitude, longitude, and radius. A photo geocoded to “San Francisco, CA” is different from a photo geocoded to “659 Merchant St. San Francisco, CA”. The former has a radius of about four miles. The latter, 20 feet.

Tagging your photos via a map interface gives a natural radius: a few pixels’ width in the map the user clicked on. GPS devices have a natural uncertainy measurement, too. So the data’s available, why not store it?

Update: A Flickr developer wrote to tell me that their geotagging does store and use accuracy data. If you ask for photos in a precise location you don’t see photos that are too general. Cool! Looks like its in the API too.
Thanks to pb for the term fuzzy geocoding

URLs about URLs, some answers

I posed a question about embedding a subject URL in a request URL using percent encoding. Thank you for all the helpful replies, here’s what I learned.

First, on the existential question, it seems in practice percent encoding really can create distinct names. Try:

In reality this is just a quirk of Apache’s handling of %2F, but since it’s the default behaviour for the #1 web server out there that’s a strong example. As for the theory, this wikipedia article claims that percent encoded reserved characters does create distinct names whereas percent encoded unreserved characters is just aliasing the same name. So escaping / would make a new name but escaping something like 0 wouldn’t. Confusing, huh?

As to the practical problem of PATH_INFO being unescaped basically everyone told me “yeah, CGI’s a hack like that”. So going with the hack I’ll just use the REQUEST_URI variable Apache sets. It’s not documented anywhere I can find but it seems to be an unadulterated literal copy of what the client requested, from which I can do careful parsing. For my service clients will need to know to percent-escape any / or ? in their URLs. And I’ll just hope nothing else in the network decideds it’s OK to unescape things on me.

Some other suggested workarounds: length-delimit the subject URL so you know where it ends, have a magic string delimiting the end of the subject URL that you hope doesn’t appear in any legitimate subject URL, or put the subject URL at the end of the request URL so that it ends where it ends. Any of these solutions could be made to work, I was just looking for the principle.

Thanks to SethG, RyanB, MikeB, GregW, GordonM, and SamR

Diminishing game rewards

A central reward in most MMOGs is leveling up. You play for a few hours and then ding! you’ve gained a level. And a common design feature in most games is that the higher your level, the more time it will take to get to the next level.

The PlayOn folks have a nice graph of time to level in World of Warcraft as a function of level. I redrew it as level as a function of time. This view highlights the fact that your reward frequency diminishes over time. Early on it takes 2 hours of play to level up. But the rewards come more and more slowly to where you’re playing 10 hours per “ding!”.

It’s weird that rewards in the game so predictably slow down. The rewards themselves don’t get more valuable; going from level 44 to 45 doesn’t really get you more than going from 4 to 5.

Maybe the time spent makes the rewards just seem more valuable? Level 60 feels like a big accomplishment given the time involved. But then, that’s totally artificial. Or maybe the game developers cynically know they can get away with less frequent rewards because there’s so much sunk cost. Players spend so much time getting to 44 that they’ll spend longer for 45 because they’re already invested.

URLs about URLs

I need help. I’m building a REST-style web service. Its URLs specify operations on other URLs, so I need to pass URLs as parameters to my REST service. Let’s say my service reverses the text of whatever URL is specified.
http://example.com/rvs/someurl?a=b
The above request to my service means “return the contents of someurl reversed”. To make things a bit more complicated, there may be other stuff in my URLs after someurl: the argument a=b in my example above.

So my question is, how do I correctly encode someurl? Let’s say it’s http://google.com/ I’m reversing. I’d think the request would contain a percent-quoted URL, something like

http://example.com/rvs/http%3A%2F%2Fgoogle.com%2F?a=b
However, the CGI standard (and Apache2’s implementation thereof) seems to be decoding the URL before it gets to my application. Ie: PATH_INFO contains
http://google.com/
not
http%3A%2F%2Fgoogle.com%2F
I can work around this (REQUEST_URI isn’t decoded), but something about all this makes me uneasy. I’m relying on all web software between me and my client to not mess with my carefully encoded URL. If the CGI standard itself seems to think decoding is OK, who’s to say some proxy or browser won’t too? Or to ask the question more existentially, do these two URLs name the same resource? Or can they name different things?
http://example.com/foo/bar http://example.com/foo%2Fbar

Is there a good way to talk about URLs inside URLs? If you know the answer, mail me. I promise to share.

Tasmania

One of the highlights of our trip to Australia was Tasmania. Tassie is quite different from mainland Australia; it’s very fertile lush, mountainous, and cool. It’s also wild and largely unsettled. The whole west half of the island is covered in rugged mountains rainforests, reminded me of the Olympic Peninsula.

Hobart is the main town in Tasmania, but honestly it doesn’t offer much to the tourist. But the nearby Port Arthur is fascinating; its the ruins of the last and most notorious prison of the Victorian era.

We also took the five hour drive across the island to Strahan, a small tourist town (and former prison) on the west coast. The drive across was amazing, wild and empty roads with enormous forests. Absolutely beautiful. Strahan is the terminus of the West Coast Wilderness Railway to Queenstown, a mining town fascinating for its hideousness. The destination’s not the point though; the trip itself is on a fantastically restored rack steam railway with beautiful engines that puffs up the rugged mountains through beautiful rainforests. Strahan is definitely worth a special trip, for either the first class package on the train or a boat trip up the rivers into the rainforests. You’re at the end of nowhere and it’s beautiful.

Parsing XML can open network sockets

XML is bad for data transfer for lots of reasons. It’s slow to parse, awfully wordy, doesn’t support 8 bit data, etc etc. But my favourite thing is how most XML consumers can be induced to open arbitrary URLs.

There’s a 4+ year old security hole in many XML parsers called XXE, the Xml eXternal Entity attack. Take a look:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE doc [
  <!ENTITY passwd SYSTEM "file:///etc/passwd">
  <!ENTITY http SYSTEM "http://example.com/delAll">
]>
<eyeAmH4xor>
  &passwd; &http;
</eyeAmH4xor>
Don’t let all the pointy-parentheses confuse you (although they’re a good reason to hate XML too). What’s going on there is my document has defined two new entities called passwd and http and then used them. They’re defined as expanding to the contents of URIs.

About 3/4 of the XML applications I’ve encountered out there will blindly do as ordered and load the URIs. The app will load the password file, at which point a clever hacker can usually induce the application to send it back to them (as an error message, for instance). Even better it will load the HTTP URL. Yes, many XML applications will load any URL you tell them to. From the app server. Nice, huh?

XXE is an old bug, but it keeps coming back because most people using XML would never think their little XML parser can be instructed to start opening network sockets. Acrobat had this bug just last year. XML parsers usually have obscure options to secure them, but many have them off by default. Why are we using a data format where this is possible at all?

Python, WSGI, FastCGI, and Debian

I’m working on a little webapp project. Usually I just use plain old Python CGI scripts for these things but this time I actually care about performance a bit so I did some delving into the modern world of Python webapps. Things are a lot better than they used to be. WSGI is the standard Servlet API, web.py (small) and Django (big) are good app frameworks, and Zope is mercifully sliding to retirement. But I’m stubborn and want to do things my own way, just use FastCGI to avoid invocation overhead.

Turns out it’s easy on a Debian system. Install the packages python-flup and libapache2-mod-fastcgi. Then write a python2.4 program like this:

#!/usr/bin/python2.4

import flup.server.fcgi
g = 0

def app(environ, start_response):
  global g
  status = '200 OK'
  response_headers = [('Content-type','text/plain')]
  start_response(status, response_headers)
  g += 1
  return ['Hello world! %d\n' % g]

if __name__ == '__main__':
  from flup.server.fcgi import WSGIServer
  WSGIServer(app).run()

The one badness is that modifying your Python code won’t force a code reload, which sucks for development. If you name your program “foo.cgi” Apache will invoke it as normal CGI and Flup supports that too, so that’s what I’ll do for now. Even if it behaves differently.

Digital photo workflow sucks

I have about 300 photos from Australia I intend to edit and put online before I leave for France. But as anyone who takes a lot of digital photos will tell you, workflow is still a huge problem. Here’s what I do now:
  • Stick flash card in a usb device, copy photos as files
  • Use Photoshop to convert raw to JPG previews
  • Sort through jpegs in ExifPro to find the good ones
  • Symlink (by hand) the raw files for the good photos
  • Lightly edit raw files in Photoshop, correcting exposure and cropping
  • Upload edited photos to Flickr
None of the automatic tools for photo workflow work for me. Either the image edit tools are bad, the database features are too limited, the software is too slow, or the UI is awful. And all of the fancy tools want to store my data in some proprietary database where I can never get at it. The workflow above is manual, but at least the data is transparent.

A couple of folks wrote to suggest I try the Adobe Lightroom beta. It’s a lightweight photo workflow tool that combines an image database with simple editing and printing tools. I like it, particularly as a lightweight tool, and think it does 90% of what I do with Photoshop only more easily. I’m looking forward to seeing this become a real product, although it’s hard to see how it will fit in with the rest of Adobe’s products.

301 redirect, eight months later

About eight months ago I moved my blog to a new domain and set up 301 redirects to point everyone to it. 301 means “moved permanently”: all bots should eventually stop hassling the old URL. Does it work? Mostly; here’s a list of hits in last week’s traffic from various bots.
808 hits, Rojobot
A feed aggregator with several old RSS URLs they apparently have no way of updating.
424 hits, TailRank robot
A service that claims to “find hot stories”, in my case by looking at eight-month-old URLs and not following the “hot lead” that the site has moved. Grabs both RSS feeds and some HTML.
390 hits, Feedfetcher-Google
RSS crawler for Google Reader. I’m pretty sure I know the guy responsible for this bot; tsk tsk, B.
254 hits, Yahoo! Slurp and 160 Googlebot
Basic crawlers trying to grab some HTML. Arguably legitimate: they’re verifying the 301 redirect is still live.
136 hits, BecomeBot
Some shopping site bot. Guys, I got nothing to sell.
108 hits, AppleSyndication
There’s one person who uses the Safari RSS reader! Too bad about the bug.
None of this matters much; the 301 is cheap to serve and other than the Rojo and Safari examples I think no one would care that I stopped serving it. At least the big consumers like BlogLines have all switched over.

Warcraft gold prices

A big part of online games is accumulating virtual wealth. If you’re lazy you can buy virtual money with real money, paying to not play the game that you pay for. I did a little study of the price of 1000 gold on 168 US Warcraft servers and came up with some results.
1000 gold costs about $150, although it’s over $200 on a fair number of servers. 1000 gold is a lot of gold. It’s the price of an epic mount, the most expensive thing many people ever buy. The $150 to buy it is the cost of a year’s subscription to WoW. A normal player at level 60 can make 1000 gold in about 50 hours, or about $3 / hour.
There’s a lot of variation in the price of gold from server to server. But I can’t find any correlation between the price of gold and anything else. Gold costs the same no matter if you’re on an old server or new one, have a lot of players or few, or whether you’re on a normal or PvP server. I was surprised to find no correlation; maybe the gold-for-dollars market is just really efficient?

I got the price data from IGE and realm ages and populations from the WoW census.

Update: one thing I did not appreciate is how volatile gold prices are. Since writing the above two days ago IGE’s median price for 1000 gold went from $153 to $177! I’m collecting more data both in time and from different gold merchants to understand this better.

Matplotlib timings

Every six months or so I do a project that requires drawing graphs from Python code. I usually use pygdchart because it’s easy and I know it but it’s awfully primitive and ugly. I’ve admired the output of matplotlib so I thought I’d give it a try.

The 2d rendering is slow. I wrote a quicky program to generate a trivial graph with 4 points then render that plot to an image 10 times in a row. Depending on the backend it can take almost a second to render a graph! Here’s the milliseconds it takes to render a single plot using each of the various matplotlib backends:

GD: 440
Agg: 650
Cairo: 850

SVG: 60
PS: 90

There’s also the no-op backend Template, 50ms. That’s as fast as matplotlib is ever going to be. I’m disappointed by GD performance; it’s not doing antialiasing or anything. Also surprised just how fast the SVG rendering is. I hope that’s a viable publication mechanism some day; right now MSIE doesn’t support it and Firefox misrenders it.

AOL search data paper

The AOL guys who published the search logs also wrote a paper. The data download includes a readme which says
Please reference the following publication when using this collection: G. Pass, A. Chowdhury, C. Torgeson, “A Picture of Search” The First International Conference on Scalable Information Systems, Hong Kong, June, 2006.
That paper is readily online: Google search, ACM citation, author PDF download.

The first author is Greg Pass, an AOL employee. Can’t find a web page for him but here are some papers he’s published. The second author is Dr. Abdur Chowdhury, “AOL Chief Architect for Research at AOL”. Ouch. Third author is Cayley Torgeson of Raybeam Solutions.

I gave the paper a quick read. It’s an analysis of usage patterns of search engines: query frequencies, user behaviour, scalability requirements, etc. I didn’t see any particularly surprising analysis but it’s a summary of a lot of interesting hard-to-come-by data. I have a feeling that the AOL employees who released the search logs were honestly just trying to be good researchers and share their data. Only in this case they blew it. Now I feel a little bad for them.

The goal of this collection is to provide real query log data that is based on real users. It could be used for personalization, query reformulation or other types of search research.

AOL’s search disaster

AOL released a bunch of its users search session data. A bit of looking (1, 2, 3, data, NYT, commentary) is revealing just how much is in these logs. Why hasn’t AOL yet announced that the person responsible has been fired?
cannot sleep with snoring husband
god will fulfill your hearts desires
online friendships can be very special
friends online can be different in person
men need encouragement
men need a womans love
I’m glad the leak happened; now everyone can see just how sensitive search data is. And valuable, too. Search logs are the private corporate property of companies like AOL to use (or misuse) as they want. Or for the US government to subpoena. Is that the best world for us?
men like women with curvy bodies
recipe for coconut cream pie
how to flirt with a man
signs of skin cancer
a pimple that wont heal
insomnia after hysterectomy
We’re just at the beginning of the technology to mine the database of intentions. Thanks to AOL, now everyone can play along at home and try their hand at analysis.

I’m living in Paris this fall

My partner Ken and I will be living in Paris this fall. We’ve rented an apartment for September through November and will be spending most of our time in Paris itself, with occasional weekend trips around France.

Ken and I have talked often about living in Europe, either full time or part time. We really enjoyed being in Zürich last fall but in the end decided it wasn’t quite the city for us. We’ve spent enough time in France as tourists to know we like it, so time to take the next step of actually living there for awhile.

If you’re in Paris or think you may be visiting there sometime this fall, drop me a note!

Kiten war

One of the more odious-yet-legal businesses on the Internet is domain squatting. Companies grab unused domain names and run pages of ads on them. The less scrupulous ones also SEO the hell out of their crap ad sites to get them up in search results. It’s a hugely profitable business, even Google has a product for domain squatters. But it’s ugly bottom-feeding.

However, sometimes it’s funny. I present to you kitenwar.com. It’s “for resources and information on Kitchenware and Iraq Iran War”. The top 5 ads are labeled kitchenware, Iraq Iran war, cookware, war on terrorism, and cutlery. Some other related searches: depleted uranium and hairless cat.

These particular ads seem to be coming from Yahoo/Overture. Not sure who owns the domain. What I was really looking for was kittenwar.com.

IZArc again

IZArc is still good software. I wrote awhile back about this compression utility that replaces WinZip, 7-Zip, WinRAR, and any other file archiver you may use. It’s free, fast, and has great Windows shell integration so you almost never need to actually use the GUI. All you could want.

For some reason no one seems to know about this program, so I’m writing about it again. The homepage is currently featuring a heartbreaking plea for donations so he can afford to buy a copy of Visual Studio 2005 and release a Unicode version of IZArc. If you happen to work in Microsoft dev relations maybe you can find a free copy to ship him?

Google browser sync

I just got a laptop, so now I have the hell of synchronizing multiple machines. Yes, 20 years after the Network is the Computer I still can’t transparently get from anywhere to my data and software. Google Browser Sync is one tool to solve this problem. It syncs up your Firefox settings, cookies, passwords, etc to a Google server. No matter where you launch Firefox it will sync your data, in theory giving you transparent access to browser state.

It mostly works, but it’s got rough edges. Syncing is transparent and effective although I have mysteriously lost a couple of cookies. It syncs most of the data you care about except extensions and toolbar layout. Data is encrypted on the client, an essential feature. It’s kind of ugly: the browser button is too big and it pops up annoying alerts if you run simultaneously on two machines.

But there’s one crippling flaw; it adds about five seconds of startup time everytime you launch Firefox. They must be getting a lot of complaint because it says right on the download page “we’re working on it”. Seems simple enough to fix, just don’t sync every time.

What I find most interesting about this is if you squint, Google Browser Sync looks a whole lot like another piece of Microsoft’s Passport/Hailstorm vision. I have no idea what Google’s planning in this area, but it seems obvious to me that people want to centralize a lot of personal data. Google’s proven they can build products that scale and I’d trust them with my data more than any other company. More like this please!

A couple of days after I put this on my weblog, Google fixed the startup time problem.

Internet jurisdiction

In the early 1990s when Internet culture was coming together there was a lot of excitement that we were creating a new space free from the stupider rules and laws of our home countries. We even declared independence. But now the Internet is far too vital to our world economy and culture to remain free of traditional jurisdiction. But the question remains: how do countries enforce rules on a space that is both everywhere and nowhere?

The American approach is to extend its jurisdiction throughout the world. In the case of online gambling, by arresting people when they change planes in your country. David Carruthers (former CEO of BetOnSports) was arrested, held without bail, and charged with racketeering along with several of his staff. His company seems to have folded completely, promptly firing him and not appearing to support his not guilty plea.

Countries need to enforce laws on the Internet. But of all the things the US could worry about, why online gambling? And nabbing people while they’re in transit through your country seems awfully authoritarian.

Leveling in Eve Online

Eve has an unusual skill system. In a typical MMOG like World of Warcraft your character levels up skills and power as you play. Kill more monsters, get more experience, get levels. The time it takes to level in WoW is fairly predictable, but players are rewarded for being online and grinding more often.

Eve isn’t like that. In Eve your skills level whether you’re online or not. And you don’t level faster based on what you do; it’s entirely based on the clock. If I set my character to train Battleship level 3, it will take 36 hours to get there. It will take the same time whether I’m busily shooting NPCs in my Battleship or not, indeed whether I’m even logged in.

At first blush this sounds crazy; where’s the reward for playing? But it works very well. I never do some boring repetitive action to level up; skills train at their own pace. I can take a break from the game for a few weeks and not feel like I’ve lost anything. People with way too much time to grind don’t gain a big advantage over more casual players. And older characters are uniquely valuable; they’ve had the most time to accumulate skills.

In WoW a primary goal is levelling up; in Eve it’s just something that happens. That frees the player to concentrate on more complex goals like “develop a traderoute in Megacyte that makes me rich”. I’m not saying Eve’s better, exactly, but it’s different. And it works.

Playing together is more fun

Online games are popular because they are social experiences. So it’s that the most popular online game, World of Warcraft, has such poor social tools. I just picked up the game again after 16 months and if anything, the social tools are worse now than ever.

The basic social goal in the game is to find people to play with. And for that, you need to join a guild. But how does someone new find a guild? The main way seems to be you get randomly spammed by people saying “join my guild?” Needless to say, the quality of that experience varies. The better way to find a guild is to randomly group up with people you run across until you find someone you like, then stay with them. So pick-up groups are essential.

Here’s where WoW got worse. The #1 tool for finding a pick-up group is the “looking for group” channel. It used to be chat there was local to your current zone so you were talking with people roughly your level doing the same things. But a recent patch made the channel global for the whole server. Now the channel is full of random spam and a bunch of people asking for groups way beyond my level.

The spam is bad (there’s even a spam filter mod), but the bigger problem is the lack of a place to find people doing things similar to me. The patch has destroyed locality and LFG is now useless.

The other main problem is there’s almost never a reason to actually do things with other people until you’re level 60. The only group goal for newer players is doing quests together, but it’s hard to find quests in common in the first place and the moment someone plays for an hour when their friend is offline they get ahead and the friend can’t catch up. Very awkward.

Then again at 6.5M users WoW is doing something right. My theory is there’s just enough social contact to keep people happy, but it’s really the scripted content and Pavlovian level rewards that keep people going.

Flickr tag count comparison

I was curious about how many tags people put on their photos in Flickr and whether more tags help you get into interestingness. So using their fabulous api I wrote a quick program to count the number of tags for photos in interestingness and compare them to photos in the huge FlickrCentral group. Numbers are averages and standard deviations for both the author’s own tags and for tags volunteered by others.

               Author tags  Viewer tags   
FlickrCentral  7.5 (9.1)    0.1 (0.4)
Interesting    8.0 (6.4)    0.7 (2.2)

What’s it all mean? Not much. The average FlickrCentral photo has 7.5 tags and the average Interesting photo has 8.0 tags. Well within the standard deviations, not a good predictor. Photos in Interestingness do have measurably more viewer contributed tags but that’s not a surprise; photos in Interestingness have more viewers.

So not an interesting result, but I love how easy it is to do this kind of data mining with Flickr.

(For the record, I compared the top 100 interesting photos for each day so far in July, 1900 photos, with the 500 most recent photos in FlickrCentral).

Osu! Tatakae! Ouendan!

The best import videogames are the ones that are relics from bizarro world. Consider the NDS game Osu! Tatakae! Ouendan, a rhythm game in an anime style with plotlines lifted from Mentos commercials. Basically, the gameplay is you tapping the screen in time to the J-Pop music so that your men in black facist costumes cheer ordinary people along in their daily struggles.

I just finished the level where you cheer along a horse so he wins the race and catches the bank robber on the motorcycle. Somewhere along the way the bank robber gets on a skateboard and then your horse is swimming away from the sharks. But in the end it’s OK because thanks to your rhythm skillz your horse kicks the robber with his hind legs and then holds up his roll of Mentos in victory. Or something like that, a bit may be lost in translation.

The main gameplay is straight-up rhythm, tap the screen with the catchy beats. This video gives you an idea. The game is Japanese only right now but is being remade for the US market as Elite Beat Agents. I bought an import copy anyway to revel in the weird otherness of the full-on Japanese experience.

Thanks to Tea Leaves for hyping the game

A Scanner Darkly impressions

I’ve been so excited about the A Scanner Darkly film that I read the book again and then went to the opening screening today. Here are my impressions.
It’s pretty good. Not great, and I don’t think it has any hope of appealing to people who aren’t fans of the book. But if you were thinking of seeing it anyway, then go, it’s good.

First, the obvious questions. The rotoscope animation effects work. Everything has this shifting unreal quality that fits the story very well. And technically, it’s well done. Also the casting is great, except Keanu Reeves. I had hopes Keanu would be OK in this role; his woodenness could just be taken as schizoid lack of affect. But no, he’s just dull. Robert Downey Jr steals the show. And Winona Ryder hardly has to work to sell lines like “I snort a lot of cocaine”. Yeah, doll, we know.

Linklater’s script lets us down a bit; the movie makes even less sense than the book in critical parts. In particular some crucial scenes are left out that help you follow who’s who. I love how disorienting Dick’s books can be where you’re not quite sure you’re following the author’s narrative so you go back and reread a section two or three times. But in a linear and concrete medium like film the story needs to be clear and Linklater doesn’t quite get it. I wonder if he just had to cut two or three crucial scenes because of time or budget.

But the most important thing about the story is the depressing banality and alienation of bright people hopelessly fucked up on drugs. And the film captures that very well. Some of the early doper scenes are sort of funny, giggling along with Woody Harrelson. But as time goes by it gets more and more horrifying and depressing. I was particularly pleased that the film ends with Dick’s own eulogy for his friends lost to drugs.

This has been a novel about some people who were punished entirely too much for what they did. ... These were comrades whom I had; there are no better. They remain in my mind, and the enemy will never be forgiven. The “enemy” was their mistake in playing. Let them all play again, in some other way, and let them be happy.

The perversity of French spelling

I’m taking French lessons. Despite the famous Académie française working to maintain the language with intellectual rigor, French has the most screwed up spelling of any language I know other than English. All these extra letters that you just don’t pronounce. Or do you?

The basic rule with French is you don’t pronounce the last letter. Paris is pronounced pair-ree, no s. Vieux is pronounced vyoo, no x. Vous is voo. Etc. Sometimes you have to skip multiple letters; ils parlent, for instance, is pronounced identically to il parle, roughly eel parl.

But those hidden unpronounced letters are in the mind of every French child, even if they don’t usually use them. Particularly because of liason where the lazy French tongue sticks consonants in things. Vous parlez has no s sound but vous avez does (vooz-avey) to avoid having two vowels in a row. The liason rules seem relatively simple and phonological, but they do require you to learn the “extra letters” even if you don’t often need them.

Things take a turn for the weird with pronoun agreement. There the “extra letters” sometimes play a role for grammatical reasons, not phonological.

Je le leur ai donné
Je la leur ai donnée
Both mean “I gave it to them”; the difference is whether the “it” is a feminine noun or a masculine noun. There’s an e at the end of donné in the feminine sentence so the verb agrees with the pronoun. But you don’t pronounce that e, so you can happily ignore it in spoken French.

Except, there are a few verbs where the pronomial ending does change pronounciation.

Je le leur ai offert
Je la leur ai offerte
In the first sentence offert is prounounced oh-fair, without the t. Second sentence? oh-fairt. So not only do you have to remember that the participle is spelled with a generally-silent t, you have to remember that the feminine pronoun requires an e on the end of the participle, thereby making the t pronounced.

It seems very odd that the grammar is dictating pronounciation, not just phonology. My teacher tells me French native speakers get this rule wrong all the time; I’m sure I will too. But it sure is fascinating.

Vinge’s Rainbow’s End: don’t bother

I have a great love for Vernor Vinge’s sprawling scifi novel A Fire Upon the Deep. It’s kind of a mess, mixing in so many different plots and concepts that it’s more like three novels. But it’s full of good space opera and flows well. And like the other early Vinge work True Names it benefits from a deep well of brilliant ideas: the singularity, ASCII Usenet as interstellar communications medium, telepathic doggy group minds, ... I liked that book so much that every time Vinge publishes a new one I buy it right away and read it.

Alas, his new novel Rainbow’s End is as disappointing to me as Deepness in the Sky was. It just never quite gets off the ground. The protagonist is an old man rejuvenated by sci-fi miracle medicine, having to adjust to modern technology by socializing with young teenagers. The premise holds promise but the resulting character interactions are wooden and devoid of feeling. The main plot is a mess, something about warring factions and espionage and the menacing but terribly named YGBM technology. But unlike Fire Upon the Deep this mess doesn’t ever turn into anything compelling. There are a few clever scifi concepts tossed in but they stick out and are not integrated well. “Hey! Look! I’m talking about Trusted Computing on this page!”. I managed to finish the book, but it felt like a duty.

I don’t normally write reviews of things I don’t like; what’s the point? But after reading Cory’s gushing praise over on BoingBoing I had to offer my own disappointment. That, and I hold out the hope that someone will point out to me that the book is actually brilliant and I’m an idiot.

Dear King George,

You’re not allowed to complain about press coverage of your illegal and invasive spying on American citizens’ communications and financial transactions. You bypass all legislative and judicial review, you refuse to obey the laws you sign. The only choice left to the people is for them to take the risk of talking publically about your abuse of presidential power. Please stop hurting our democracy.

Thank you,
  Nelson

Watching a game without interruption

I’m not much of a sports fan. But I’ve watched a couple of World Cup games in the past few days and find it makes for compelling television. Why? Because they play uninterrupted. 45 minutes of game, 15 minutes halftime, 45 minutes of game. No delays for substitutions, no TV timeouts, even an injury only delays play for about 60 seconds. So you get a constant flow of sport rather than 3 minutes of play punctuated by 3 minutes of filler and commercials. Much more enjoyable than American football or basketball.

No DS Lite in San Francisco

The new Nintendo DS Lite was released Sunday. It doesn’t really do anything new, just has a brighter screen and is smaller and nicer than the old NDS. Nevertheless, it’s not possible to buy one in San Francisco today; they are sold out everywhere. Which is a shame, because I really wanted to buy one for a gift.

French / Japanese cognates

One of my favourite nigiri sushi is unagi. I learned yesterday the French word for eel is “une anguille”. Which sounds pretty close to “unagi”. Did Japanese borrow the word from French? I’d have assumed the word would be older than that in both languages.

Junk political phone calls

I’ve gone through considerable effort and modest expense to prevent junk calls from coming to my house. Unlisted number, mandatory caller ID, do not call lists, etc. But all these techniques exempt political parties because political ads are highly protected speech. My phone’s been ringing off the hook today because of the damn California primary.

When DRM was rejected

The Sony/BMG CD rootkit fiasco last year may go down in history as the first time consumers overthrew DRM. Enough people were angry enough (and there was enough liability) that Sony gave in. If you want an in depth look at how the story played out, this month’s Technology Review piece by Wade Roush is excellent.

Unintended gameplay effects

Most contemporary gameplay design is about complete control. Designers, level builders, and testers spend hundreds of hours making sure that their game plays exactly the way they intend. When players figure out something unintended it’s usually a glitch or an exploit. Eve Online is great at giving players a lot more freedom than that, both on purpose and by accident. Buddy lists and instajumps are two kinds of accidents.

In Eve you’re supposed to add your friends to your “buddy list” so you can chat to them more easily. But the buddy list turns out to be way more useful for tracking enemies, because the game helpfully tells you if your “buddies” are online. Did that pirate you’re chasing log off? Add him to your buddy list and get an alert the moment he logs in again. Are you at war with Evil Mercenary Corp? Add all 100 of their members and watch for when they’re offline and at their weakest. I’m confident when the Eve designers added buddy lists they didn’t intend for them to be a surveillance tool against your enemies. But it is one, and so the game is a bit more complex.

InstaJumps are an unintended consequences of the design of the travel system. When you dock at a station or jump through a stargate you first warp there quickly, arriving 15km short of your goal. Then you fly slowly through those last 15km until you can dock or jump. You’re invulnerable when warping, but in the 30-60 seconds you fly that last 15km you’re very vulnerable to attack. However, Eve lets you warp to bookmarks in arbitrary points in space. So if you have a bookmark for a spot 15km past your destination then you can warp to that instead, landing 15km short of the bookmark or right on top of the goal. No more vulnerable slow flight.

Having good instas is an essential tactical preparation. They’re a huge pain to make and maintain. People sell them for a lot of money on the open market and good corps spend a lot of time copying libraries of instas. It all feels like a horrible hack, but instas have become an essential part of the game because it simulates local knowledge of the terrain. Having a good BM set is like knowing the lay of the land. It gives you an upper hand over any unprepared marauding invader. It may have all been unintended, but the result makes the game more interesting and developers are on record as saying they’re OK with the situation.

Designing a game requires defining all the laws of physics for a new universe. It’s nearly impossible to get it right. Traditional game design tries to optimize by tightly constraining the rules and testing the hell out of it before release. The Eve developers took a different approach, building an open ended system with lots of possibilities and then refining it over time to optimize it. They’re remarkably good at it and it makes for a remarkably complex game.

MSIE bugs I don’t miss

I switched to Firefox awhile back and despite genuinely liking IE, don’t miss it. I’m using a laptop with IE on it right now though and realizing how awful some of the bugs are.

When downloading a large file (500 megs), it downloads it to some random spot in a cache somewhere and then when it’s done, copies the file to its actual destination. On this screwed up laptop the copy is taking longer than the download. Why copy at all?

When the on-disk cache gets too big it bugs out in weird ways. The most notable symptom is intra-page links (via #foo in the href) fail. You click them, you go to the top of the page, not the anchor. Doesn’t this bother anyone else?

A similar bug; if you have too many URLs in your browser history IE stops colouring the ones you’ve visited differently. Only fix is to flush the browser history.

Most of these bugs have been in IE for at least three years. Where the hell is the fix? Oh yeah, Microsoft achieved a monopoly in browser share and abandoned development for two years. Good thing someone came up with a real alternative.

Java to be open source (someday)

It’s JavaOne week, there’s a new guy in charge of Sun, and the big announcement is “the company was working toward making its Java programming language available free as open-source software”. Yes: there’s still no open source license. “Working on it”.

Poor Sun. It’s been painful to watch the company’s seven year slide into irrelevance. But their mishandling of Java is the worst story of all. Yes, they built a fine programming platform that created a few profitable server businesses (you know: IBM, BEA.) But their open source strategy has been a fiasco. I still shudder at the memory of the 1988 SCSL 1.0, Sun’s first attempt at open source licensing. It was so complicated that it managed to tie up lawyers and developers for years arguing about what it meant.

There’s a chance that if Sun had embraced open source back then the Java platform would have been adopted and loved by the open source geeks. Instead they fled to create newer technologies: Python, Ruby and Rails, PHP. Now Java seems increasingly irrelevant; a necessity sometimes, but a frustrating middleground between C++ and a nice scripting language like Python or Ruby. I wonder if anyone will care about Java’s future by the time Sun figures out a workable open source license?

PS: please don’t email me to say “Sun had to restrict Java licensing because Microsoft was going to corrupt the platform OMG suxx0rs!”. That threat ended years ago, and if Sun really hamstrung their own technology out of fear of Microsoft then they’re dumber than they look. Anyway, it’s really all about Sun vs. IBM.

Massive spying on US phone calls

Another shoe drops: USA Today breaks the story that NSA has been getting call records for every phone call placed in the US on AT&T, Verizon, and BellSouth networks. Only Qwest has refused to go along with this massive illegal invasion of citizen (and customer) privacy.

Traffic analysis is a very powerful technique. All you need to know are when calls are made, from whom, and to whom. Apply a little statistical analysis and out comes an amazing picture of social networks. Want to know which hookers Cunningham has been using? NSA knows. Want to catch the White House jamming phones during an election? All you need are call records.

NSA used to be limited to foreign surveillance only. It was a necessary balance on a secret organization with so much leeway. It’s clear now that restriction is gone. So, apparently, is any sort of judicial oversight via the FISA court. In addition to this traffic analysis revelation, we also have the warrantless domestic wiretaps (with low yield) and the EFF lawsuit against AT&T’s cooperation with NSA (which will presumably be killed because it’s “a state secret”). Where does this stop?

You should assume all your Internet traffic patterns are also being analyzed; it’s even easier to do than phone calls. Please support the ACLU and the EFF.

American tropical fruit

My favourite food writing right now is The Art of Eating, a marvellously and unabashedly detailed quarterly magazine talking about the best of fine food. The issue I’m reading now, for instance, has ten pages on Gruyère de Comté. Last issue the feature article was on Olympia Oysters, the smallest and most flavourful oysters from Puget Sound.

The Gruyère issue also has a fantastic article on tropical fruits in Homestead, Florida, the southernmost big town in Florida short of Key West. While all commercial US fruit suffers greatly from the industrial farming process, tropical fruit is the worst off since the stuff is practically rotting before it’s really ripe. But in Homestead they grow the stuff and if you’re there you can eat it truly ripe and fresh.

The article goes into detail about two establishments. First is Robert is Here, an overgrown roadside fruit stand that specializes in a huge variety of unusual and well grown fruits. Even more exciting is the Fruit and Spice Park, a sort of all-you-can-eat arboretum. 35 acres of well tended trees, most with edible fruit. Visitors are welcome to eat anything on the ground. Both places sound like a great way to try out a variety of exotic fruits. And a welcome change from industrial mangoes that taste like nothing.

60 hours of free electronic dub

I love non-dance electronic music, glitchy groups like Autechre and Pole and mellow stuff like Vladislav Delay and Boards of Canada. Electronic music is notoriously difficult to categorize, so it’s often hard to find new things.

And I really like the new thing I just found, music published by Thinner, a German electronic music label that’s put out 80 releases over the last 5 years. The catalog currently totals 60 hours and 5.5 gigs of MP3. I’ve never heard of most of their artists, but I stumbled into them because of their Vladislav Delay release. They characterize themselves as “dub inspired electronic music”. No idea what the hell that means; there sure isn’t any Scratch Perry going on, but it’s mostly mellow and noodly electronica that’s interesting and without an annoying 120 bpm pulse. The online album covers have some great animated graphic design, too.

The best thing? It’s all free! CC licensed. As I write this I’m listening to track 1 from Digitalverein. It’s easiest to download the entire zip for a release. You may note the release naming is consistent for easy download scripting.

Creator of electronic card catalogs

Today’s paper brings an obituary for Henriette Avram, a pioneer in computing and informatics. She led the development of MARC, the standard electronic library card catalog system used in the US.

MARC is an amazing accomplishment, 35 years of being the primary repository of library catalog information. The main technologies are a simple tagged data format, an encoding, and a variety of communications channels. The social system is very effective, a Wikipedia-like collaborative network of people creating and sharing MARC entries for new materials.

By modern standards MARC is pretty clumsy. Three digit tags? Come on! And where are <all> the < pointy brackets/> </all>? But none of that matters; MARC is an information system that was basically designed right and continues to have longevity thanks to its social capital.

California immigration chart

Today’s SF Chronicle has several articles on immigration, including a historical piece with a fantastic infographic showing the origin of immigrants to California sine 1850.
Click through for a full image. The #1 effect visible is the decline in immigration in 1960s and 1970s; I assume this is partly the dilution of so many Americans moving west. The relative shift from European to Mexican immigrants is readily visible. I was astonished to learn that in the 1860s 10% of Californians (or 25% of all immigrants) were Asian; that proportion is just now returning.

FeedDemon bad usability, encodings

FeedDemon 2.0, the RSS reader, is somewhat bad software. The upgrade to 2.0 went well enough, but there are so many irritating usability quirks that I dislike it. It’s no worse than 1.5 was, but no better.

Well, one thing is worse: it frequently guesses wrong on character encodings. So I’m reading garbage like “don’t”. I know enough about the dog’s breakfast of feed encodings to know this is a nasty problem. I don’t care. The browser’s going to have to guess to get it right. Here’s a hint: the € and ™ characters never belong in the middle of a word. Turns out this only shows up if you use Mozilla as the HTML widget; IE doesn’t have the problem. FeedDemon is clear that Mozilla is experimental only, so my bad.

But the main problem is the keyboard control. It’s a three pane reader, but each pane has different keyboard controls. There’s no visual indicator of where focus is and it seems to move around even without me clicking the mouse. So you never know what pressing a key will do. Is PageDown going to scroll the browser view? Or do something mysterious in the list of feeds? Is there any way to make the “spacebar moves to next unread item” work reliably? I can’t do it.

The default keystrokes for “mark feed read” and “mark group read” are the contorted “Ctrl-Shift-A” and “Ctrl-R”. Yeah, that’s convenient to press frequently. I thought I’d be clever and reassign those to “A” and “R” but I’m not allowed to. I guess the theory is I may want to be typing text into a form while reading blogs? Um, no.

More than most software, a feed reader needs to have really good ergonomics. FeedDemon fails that test. Time to look for something new for Windows.

Brilliant Stephen Colbert

The White House press corp dinner this year had Stephen Colbert speak. It’s always an irreverent and casual event, but this year Colbert delivers some real zingers. It’s the first time I’ve ever seen someone be directly critical of the Bush Administration in their faces. And he’s funny, so he gets away with it. But despite digs at Bush, Cheney, at al the best remarks are for the press corps itself:
What are you thinking, reporting on N.S.A. wiretapping or secret prisons in Eastern Europe? Those things are secret for a very important reason, they’re superdepressing. And if that’s your goal, well, misery accomplished. ...

Let’s review the rules. Here’s how it works. The president makes decisions, he’s the decider. The press secretary announces those decisions, and you people of the press type those decisions down. Make, announce, type. Put them through a spell check and go home. Get to know your family again. Make love to your wife. Write that novel you got kicking around in your head. You know, the one about the intrepid Washington reporter with the courage to stand up to the administration. You know, fiction.

Video here, 26 megs and 15 minutes. You can stop at 07:30 though, it goes to a stupid canned clip that never gets better.

Your civil liberties at risk

The EFF recently discovered that AT&T is illegally helping NSA intercept US citizen’s communications passing through their networks. Vast government hoovering of private data is nothing new, but it is illegal and dangerous and must be stopped.

On Friday evening the US government announced they will try to halt the lawsuit based on the military and state secrets privilege. That privilege is an extraordinary power the government has to prevent a lawsuit by claiming it will lead to the disclosure of essential military secrets. I’m sure that privilege is necessary in some very limited cases, but it’s a very dangerous power that should not be applied frivolously to stop a civil liberties investigation.

So now we have the US government preventing the investigation of illegal government action by declaring that the actions of AT&T, a complicit private corporation, are military secrets. It’s hideous. You can do something. Support the EFF and the ACLU. They are particularly effective at fighting government abuse of citizen liberty.

The hero of this story is Mark Klein, a former AT&T technician. He blew the whistle on AT&T after observing secret installations in an AT&T central office in San Francisco. They were literally splitting the fibre, copying all traffic. How long will it be before he’s sued or imprisoned for violating trade secrets or state secrets?

1906 San Francisco recovery

The San Francisco Chronicle has been republishing the front pages of the paper in 1906 after the earthquake. They’re fascinating. Today, six days after the quake is the first day of what seems like normalcy. The front page prominently features a list of “news you can use” items.
Candle lights may burn until 10 PM.
No building permits needed for temporary shelter.
Fires not permitted indoors until chimneys are inspected.
All contributions to Relief Fund sould be sent to Joames D. Phelan, chariman of committee, Pine and Fillmore streets.
Within two days street cars will be running on four important routes. Transportation free.
Prepartions are being made to resume electric lighting at once in a considerable portion of the unburned section north of Market street.
No San Francisco banks will move out of city.
Superior courts have resumed business.
Standing walls in business district are being dynamited.
Telephone service has been resumed.
It is thought that there is no danger of an epidemic. Sanitary situation is improving.
Embargo on shipping lifted.
Sewers found to be in better condition than supposed.
I love how efficient this information is. It’s the first day where it sounds like things are under control.

Eve Online economics

One example of Eve Online’s emergent gameplay complexity is the economic system. MMOG economies are generally marked by hyperinflation, simplistic valuations, and little opportunity for generating wealth except killing things. By contrast Eve is a complex and balanced economy. Hunting NPCs, mining, mercenary PC killing, trading, hauling, and manufacturing are all reasonable ways to generate wealth.

There are three things of value in Eve: currency (called ISK), minerals, and ships/ship parts. Players generate wealth by mining minerals and hunting NPCs for ISK bounties. Ships are for the most part built by players out of minerals. Minerals and ships are traded on the regional markets where prices are set by the players. Demand for goods varies by day, week, and location, so there are plenty of people who make a fine living doing arbitrage.

Eve markets have a locality that makes the economics even more complex. The 66 regional markets are disconnected, so players can’t easily see the prices across the entire universe. I’ve made a fair amount of ISK by buying stuff cheaply in one region and selling it in a more expensive region, exploiting the information inefficiency. There’s also a locality effect caused by the difficulty of moving goods around. There’s no mail or NPC courier service, stuff has to be moved by people. This takes time and risk, so prices tend to vary quite a bit in different areas depending on local conditions.

Eve seems less prone to inflation than most MMOGs. There are plenty of sources of wealth in Eve, but there’s also a giant sink: PvP ship battles. When a ship is blown up it’s value is destroyed. So even experienced characters worry about wealth. There’s even a mild RTS element to the game with alliances wars over several weeks causing attrition of corporate coffers.

My war profiteering of last week was successful. The invasion of my station never happened, so I got to keep the cheaply acquired minerals. The dreaded BoB Alliance did raise a lot of hell (see this 300MB video) and have been blowing up so many ships that prices of minerals are going up all over the universe. Unfortunately now that our guests in my region are gone no one is buying my goods; I’m debating whether to hoard my minerals until market conditions improve or just haul them somewhere and sell them at a profit.

FeedDemon Upgrade

FeedDemon continues to be good software. I finally got around to upgrading to 2.0 today. I don’t care about the online synchronization feature, but some of the bugs in 1.5 were annoying me. The upgrade could not have been smoother. Download, install to a new directory, and it automatically imported my subscriptions, reading state, UI preferences, and license key. Couldn’t be simpler.

Secret torture prisons investigated

Remember when we learned last fall that the US was sending people to secret torture prisons in former Soviet Union gulags? I’m proud to say there’s been an investigation and someone has been punished!
The CIA fired a top intelligence analyst who admitted leaking classified information that led to a Pulitzer Prize-winning story about a network of secret CIA prisons, government officials say.
Yes, a fine investigation into the latest shameful American prison scandal. In our corrupt society it’s not the torturers that are punished, it’s the whistleblowers.

Obnoxious Adobe Reader updates

The updater for Adobe Reader is bad software. It pops up an irritating window everytime I try to read a PDF telling me to upgrade, interrupting whatever it was I was trying to do. I finally succumbed and clicked “update”, at which point it pops up a second window to show download progress. You can hide that window (where it bizarrely goes to a tray icon, not the tray), but when it’s done it pops up again and pops up a second window asking if I want to now install the software. Sure, I’ll install, and guess what? Now it wants me to reboot! So I click “don’t reboot” and just for revenge it pops up one more Reader window, empty this time.

In summary: a minor software update causes 4 windows and a tray icon to pop up and requires three mouse clicks and a reboot to install. Smooth going, Adobe. Somewhere inside Reader there’s a good document engine struggling to be free, but it sure is buried behind a lot of crap.

Update: I haven’t rebooted, and now everytime I launch Reader an alert pops up (and beeps) saying “you must restart your system before you can do another update”. I don’t want to update or reboot, I just want to read something in your damned proprietary format!
Update 2: I rebooted, to be greated with a dialog that Reader wants me to reboot again! Whee!

San Francisco destroyed

Today is the 100th anniversary of the Great Quake and fire that destroyed San Francisco. Lots of reflection in the newspaper. This morning was the rememberance ceremony at Lotta’s Fountain; I’m headed into town now for the parade.

I was going to say it’s hard to imagine what it was like to have a whole city destroyed in the course of three days. But no imagination required; it happened last year in New Orleans. The stories about San Francisco’s recovery talk about the optimism and “city that knows how” spirit that quickly restored San Francisco to greatness. I hope New Orleans can pull that off too, but it seems a more cynical era now. New Orleans is still nonfunctional and there are grave doubts that adequate levees can be built before the 2006 hurricane season. It all seems quite pessimistic.

I hope that I don’t live to see a great quake come through San Francisco. Odds are one will. My friends and I are pretty much unprepared. The best I’ve done is print out some earthquake preparation tips; maybe I should get around to actually getting a kit together? But the first 3 days are a crapshoot; it’s the idea of rebuilding the whole city again that gives me chills.

New Mexico red chile

I really miss the food in Santa Fe. Particularly New Mexico chile. Milder and more flavourful than most chile peppers, they’re used whole as the main vegetable in dishes or in large quantities as a spice.

My favourite chile is Chimayo red chile. The little town of Chimayo is famous for three things. El Santuario de Chimayo is a country pilgrimage church with dirt you eat to heal you of your sicknesses. Rancho de Chimayo is a great New Mexican restaurant. And the red chile grown in Chimayo is the best in the world, rich tasting and mild enough you can use it in great quantity.

Happily you can order Chimayo chile online cheaply: grocery store brand Bueno Foods will ship you 3 pounds for $20. That may sound like a lot of chile, but you can easily use 1 ounce per person making dinner.

Oblivion blogs

Oblivion is out and doing great in the reviews. I like it OK, but despite the fantastic physics and AI it’s not bowling me over. It just runs too slow and the writing is too simplistic. Still, it’s one of the best games that will come out this year.

The best thing about Oblivion is how rich and intricate the world is. And so Oblivion has given birth to a bunch of blogs of people writing about the random stuff that happens to them in their (virtual) lives. This first person blog is the most amusing, along with this nerdy blog and this tech tips oriented one. Spoilers abound.

Eve Online: a complex MMOG

The computer game that’s been holding my attention for awhile now is Eve Online, a space MMOG from Icelandic company CCP. It’s a fascinating game full of spaceship combat, piracy, economics, and beautiful graphics.
There’s a lot to say about Eve Online, but the primary thing that attracts me is that it’s unique among MMOGs in relying on emergent gameplay. The scripted content is not very good, but the game mechanics are rich and well balanced. And all 115,000 players are tossed together in the same server to interact with each other. The result is complex politics, nuanced economics, and a lot of fun.

I’ve recently become a war profiteer. My corporation built a couple of space stations and controls a small territory in lawless 0.0 space. That’s a big deal, few corps have done that. We have some guests who use our stations who recently heard a rumour that we were about to be attacked by a dreaded enemy alliance. Rather than risk losing everything our guests have decided to cut and run.

That’s when I saw my opportunity to become a cold blooded merchant. Because they’re leaving in a hurry, our guests have an urgent need to upgrade their engines and sell what they can’t carry. So I’ve been filling the market need, selling parts to the fleeing pilots for 10x what they cost to make and buying their minerals for 1/10 their value. It’s a ruthless sort of opportunism, but I’m the only one willing to take the risk so I set the prices. If I pull this off I’ll triple my wealth; if my station gets taken over I’ll end up losing about half. I’ll know how it works out in a few days.

What’s fantastic about this little story is that no one wrote it for us; it’s all a natural consequence of the rich and complex game design. Players can build space stations, but they are at risk of being conquered by other players. Players can build wealth by mining minerals, but it’s hard to haul minerals around. There’s an open market where prices are set by other players. Put this all together and complexity emerges; in this case, my war profiteering.

That’s just one small example; Eve is full of stories like this. It’s a refreshing change from the entertaining but simplistic scripted gameplay of mainstream MMOGs like World of Warcraft. If you want to try it out, there’s a 14 day free trial. It takes awhile to find the fun parts, so if you play for a few days but can’t find anything enjoyable email me.

Information lag

There is a tiny window between when a new piece of interesting information enters the world and when that information is available on web search engines. For example, today there are a series of improbable rumours about the White House that were posted on Something Awful. This new information (whether true or false) is rapidly circling the web. It’s on Metafilter, you’ll probably see it on TV in two days.

Is any of it true? I tried to verify one item by doing a search for [“Dick Cheney” “hydrogen peroxide”]. Right now there are 602 results on Google, very few coming from the Something Awful post. Alas, none that I see confirm the story. Tomorrow there will probably be a few thousand hits on every search engine and it will be impossible to do a search to try to find an independent source.

A better example is Quaoar, a planetoid discovered in June 2002. The day the discovery was announced there were exactly 3 results on Google for the word, all about the original mythological name. Now there are 300,000 results. For awhile I tracked the growth of search results for the word to see how fast it spread. Quickly, it turns out.

It used to be that major search engines had updates roughly once a month. So it’d take about two weeks before a new piece of information was easily findable on the web. Now a significant portion of all three major search engines updates every day, sometimes even faster. Information is accelerating.

16° of dust

My fancy quiet PC has been running hot. I thought it was Oblivion’s fault, but when I opened up the case I saw how filthy my high tech vacuum cleaner had become.

Removing a couple of grams of dust from the heatsinks and fans brought the max CPU temperature down from an alarming 82°C to a merely scorching 66°C. I never thought filth would make that big a difference.

A good Windows compression program

IZArc is good software. It’s a Windows compression program that replaces WinZip, 7-Zip, WinRAR, and whatever other nightmareware you might have installed.

File compression is commodity software. You only need two things: a humane UI and decompressors for whatever files you may come across. IZArc is the first program to have both required features. It supports all the formats you might care about (in particular: zip, rar, ace, 7z) and it’s got a nice clean UI. I never even launch the program anymore, it’s boiled down to a single shell extension command: “make new folder and extract contents”.

Oh yeah, and it’s free. $25 suggested donation, but no more guiltily skipping nag screens if you are cheap.

Fine details in raw conversion

A lot of my photos from Australia have bright blue skies with dark trees in front of them. Like this. One thing that irritates me when editing them is the tree branches have noticeable blue tints.

The problem is the branches are only a couple of pixels wide. And digital cameras aren’t true colour sensors, but rather a Bayer filter mosaic of red, green, and blue sensors. So there’s some aliasing in the mosaic pattern in the colour sensor. The raw convertor has to be particularly clever to figure out the true colours in the image. To put it another way, a digital camera sensor is going to have a very hard time with colour features only a couple of pixels wide.

Here’s a comparison of four raw convertors: Canon’s Digital Photo Professional, Rawshooter Essentials, Adobe Camera Raw, and DxO Optics. To keep things consistent I used full defaults for each convertor. So ignore the exposure and overall colour, just look for bleed. To my eye the DxO image has the least bleed. The blow-up doesn’t look as sharp in DxO, but I think that’s actually more faithful to the reality.

Tinkering around I think I can get the best-looking image out of DxO. It has lots of fancy camera body and lens-specific corrections and, apparently, a smarter demosaicing algorithm. But this kind of pixel-peeping doesn’t make me a better photographer. And DxO is a pain in the ass. So I’ll just stick with Photoshop. Still, the technological differences are interesting.

Update: it’s never simple. Turns out part of the problem with the Adobe Raw image is the “Color Noise Reduction”. At the default of 25 you get blue branches; setting it to zero eliminates a lot of the blue cast. Chromatic aberration may also be partly to blame, even though this branch is in the center of the image.

Felt lucky

Today’s my last day as an employee of Google. I’ve been on leave since December, so it’s not really a big change this day. But now the decision’s made. It feels a bit strange leaving such a great and productive company. But I’m ready to do something new with a smaller group of people. No idea what that would be yet. I’m also working towards living in France for a few months this fall.

So goodbye, Google, and thank you for a fun and interesting job. While I worked for you I built two APIs for your customers: search and AdWords. I did a bunch of Java webapp work, object-relational mappings and servlet infrastucture and the like. I particularly enjoyed being able to meddle and consult on various products as they were being born. Thanks!

Selling game add-ons

The new RPG Oblivion is a fantastic game. Intricate, sprawling, beautiful. The incredible lighting, physics, and detail brings the strongest PC to its knees. It seems to be the first game that really shows the Xbox 360 off to full potential.

The developers (Bethesda) are selling small content updates for download for both PC and 360, about $2 an update. Unfortunately the first product, the “Horse Armor Pack”, looks to be nothing but some graphic models that had been heavily promoted in prerelease screenshots. Fans are pissed off, vowing not to buy something they feel should have been in the game they already paid $50 or $60 for.

It’s too bad Bethesda’s plan is starting out this way. Selling microcontent add-ons for games is a brilliant and consumer friendly business plan. Neverwinter Nights has done it successfully with new adventures for sale for $5 to $10. And a bunch of alternative games are doing it, like Doubloon Oceans in Puzzle Pirates. Some day there will even be commercial markets for fan-generated content, although so far only The Sims and Second Life have begun to make that work. It’s all part of the transition of games to a software service rather than a shrinkwrapped package. It will happen.

Alas, Bethesda has introduced this concept poorly to their customers. The next two products (Orrery and Wizard’s Tower) look better, containing actual story, although I’m irritated to learn that apparently the fantastic Mage’s Orrery I keep hearing about in-game is something I’ll have to pay extra for.

Bethesda is positioning all this as an experiment. Good. I hope they decide to become less miserly. Selling microcontent add-ons to games is a great idea, but you have to be generous about it.

Free Windows anti-virus software

AVG Free is good software. It’s simple, effective anti-virus protection that’s free for home use. The commercial version starts at $20/year/machine. Easy download and install, seems to do the basics well. The UI is a bit clunky but how often do you operate your anti-virus software?

I’ve been a loyal Symantec Norton Antivirus user for years, paying $25 a year to upgrade. But those upgrades kept adding new features I didn’t want and made the product bloated and slow. The trouble started with the worm blocking that made opening network connections 100x slower. NAV 2006 has had several installation and update bugs and more features I have to turn off like the email scanner. The final straw was that its daily update makes my computer slow, pops up a window that steals focus, and apparently can’t be rescheduled to a quiet time. Bye.

So now I have 10 or 20 megs more RAM free and my computer boots faster too. Let’s hope AVG really does protect well; all the reviews say it’s great.

Time zone database

zoneinfo, the Unix time zone database, is good software. It converts absolute time to local time subject to local conventions, historical circumstance, and stupid laws. It has to work from at least 1970, so time-loving geeks have filled it with minute local detail about the inconstancy of local timekeeping.
# Part of Kentucky left its clocks alone in 1974.
# This also includes Clark, Floyd, and
# Harrison counties in Indiana.
Zone America/Kentucky/Louisville
  -5:43:02 - LMT 1883 Nov 18 12:16:58
  ...
  -5:00 US E%sT 1974 Jan 6 2:00
  -6:00 1:00 CDT 1974 Oct 27 2:00

The 2006b update contains the news that Indiana has now standardized their adoption of DST. It also has the fact that this year, Melbourne is delaying the adoption of DST one week to accomodate the Commonwealth Games. But that’s all practical stuff; what’s fun about zoneinfo is all the learned and detailed comments about local time jurisdictions. Paul Eggert is particularly eloquent.

Shanks writes that Michigan started using standard time on 1885-09-18, but Howse writes (pp 124-125, referring to Popular Astronomy, 1901-01) that Detroit kept

local time until 1900 when the City Council decreed that clocks should be put back twenty-eight minutes to Central Standard Time. Half the city obeyed, half refused. After considerable debate, the decision was rescinded and the city reverted to Sun time. A derisive offer to erect a sundial in front of the city hall was referred to the Committee on Sewers. Then, in 1905, Central time was adopted by city vote.

This story is too entertaining to be false, so go with Howse over Shanks.

Google Earth: very high res Las Vegas

While many of you out there have used Google Maps, I think far fewer people have tried Google Earth. It’s a bit of effort to download and install, but the experience of flying around real-time 3d accelerated satellite maps is worth it. Works on Mac and Windows.
One of the cool new features in Earth is a very recent 3 inch scale overhead photo of Las Vegas. Touring the strip is fun; at 3″ you can make out the bathing suit styles at the pool. I’m most taken by the incredible reflection off the Luxor; the image has about 8x more zoom in it for detail.

Malware to cause death of net by legislation?

Technology Review has a thoughtful short interview with Jonthan Zittrain this month, Preëmpting an Internet clampdown. To boil it down to a few quotes:
The capacity for uncoordinated third-party contribution makes the PC and Internet highly generative ... Generativity can mean excess and outright disruption. ... I think a watershed in the security space -- for example, a mass-distributed virus whose payload wipes out hard drives -- could change consumer sentiment so that a controlled information environment is appealing to many more people.
Spyware, adware, and other horrible scumware crap is a major plague on computers. But it hadn’t occurred to me this might cause a consumer demand for more walled gardens and restricted networks. I’m increasingly thinking we need to move the Internet towards an architecture that is more secure and less anonymous, I just hope we can do it in a way that doesn’t concentrate power in the hands of a few large companies.

Why aren’t military leaders in jail?

There’s something I just don’t get about the ongoing shame of US troops torturing prisoners in Iraq. Why aren’t military leaders going to jail? We’ve had a few token trials of individual soldiers, but so far no one in command seems to be held accountable.

Are we really expected to believe the official story that Abu Ghraib was just a few bad apples on the night shift? What about other torture prisons like Camp Nama? What about the persistent reports of CIA involvement? What about direct approval of torture by the Secretary of Defense?

The NYT has a bit of the story today.

Some military experts said one reason there had not been attempts to pursue charges up the military chain of command was that the military does not have anything tantamount to a district attorney’s office ...

Several generals and colonels have received career-ending reprimands and have been stripped of their commands, but there is no indication that other senior-level officers and civilian officials will ever be held accountable for the detainee abuses that took place in Iraq and Afghanistan.

I fear the US has become a place where we think it’s OK to torture people. Bush-induced hysteria about terrorism combined with one too many seasons of 24 makes us think that near-drownings, beatings, and terrorizing people with animals is just fine. Only 1/3 of Americans say torture is never right, so why bother prosecuting?

Entrepreneurial proverbs

Back in 2000 I had the honour and pleasure to found a company with my friend Marc Hedlund. It was a tough project and we ended up failing but I wouldn’t trade that experience for anything.

Marc’s distilled a lot of what we learned in a fantastic essay titled Entrepreneurial Proverbs. It speaks very directly and honestly from actual experience; no whitewashing, no glossy business case history. Starting a company is dirty, demanding, and hugely rewarding. I’m excited to see how Marc does with his new venture.

The lucky country

They call Australia “the lucky country”. Never have I travelled somewhere where the people are so generous, easygoing, and happy. “No worries, mate” is the cliché expression all over Australia but it carries real meaning.

Some quick first impressions. Australia is more like the US than any place I’ve travelled, including Canada. Only more American than the US; less crowded, bigger city sprawls, more informality. It’s a very prosperous place, beautiful and comfortable. And it’s not all flat and hot; I never saw desert, just lots of rainforests.

Melbourne was my favourite city, comfortable and cosmopolitan with a European street cafe culture. Sydney is beautiful but so much like San Francisco we felt like we hadn’t left home! Tasmania is amazingly wild and wonderful and the countryside in Victoria is charming with lots of great 19th century history apparent.

There’s nothing like international travel to make you ashamed of US politics. The folks I met were all very friendly and polite about it, but Bush is deeply disliked there. The Sydney paper doesn’t pull any punches with its headlines, either; “Revelations add to picture of US torture”. What a horrible legacy.

FCC mandated spying on campuses

College campuses in the US are being asked to foot the bill to allow law enforcement to eavesdrop on their students’ online conversations.

In 1994 the US passed CALEA, a law requiring that telephone companies architect their systems so it’s easy for law enforcement to tap digital phone calls. In 2004 CALEA was expanded to apply to the Internet, in particular voice-over-IP calls and other aspects of Internet communciation. Then the FCC got in the act, saying in August 2004 that CALEA would apply to pretty much anyone providing Internet access.

Which leads us to college campuses which, among other things, provide Internet access to their students. Now these campuses may not only have to help the government spy on their students and faculty, they may have to pay the bill! Just what you need on a non-profit budget.

Not only is this extension of wiretap privileges a violation of citizen privacy, it’s a wasteful expense. EDUCAUSE is defending the academic institutions, filing briefs with FCC saying the requirements are too onerous. The whole concept of CALEA is wrong-headed, but the expense argument may actually work.

Thanks to the EFF; without them I wouldn’t understand CALEA

San Francisco parking meters.

Parking at a meter in SF costs at least $1.50/hour. You need eight quarters in your pocket to stop for lunch. Who has that kind of change?

Awhile back SF upgraded all its meters to take stored value smart cards. Now, two years later, you can finally buy the cards! The places to buy them were a well kept secret, but recently it was disclosed you can buy them at Muni sales counters. Why not online? beats me.

The implementation seems pretty good; you put the card in a meter, the meter tells you your balance, and then the longer you keep the card in the meter the more (virtual) quarters you drop. Simple enough. I note my non-refundable card is set to expire at the end of this year. It’s all a “trial program”, you see. I just wanna park!

AdWare networks

If you’re at all interested in computer security and the dark side of online advertising, read this fantastic investigative piece by Brian Krebs for the Washington Post. He tracks down one example of the adware business, along the way describing the roles of the hacker with a botnet, the sleazy advertising company that supplies the dollars, and the horrible software provider that makes the uninstallable malware that shoves ads in front of people’s faces.

What I find astounding is that some aspects of this business are so lucrative that American companies are trying to make them legitimate. It’s shameful that a company with such an awful history as an adware provider was able to raise $40 million in venture capital.

You know your aunt’s computer, the one with the porno ad software you can’t remove? The people who knowingly finance and install that software belong in jail.

Photomatix: HDR alternative

My blog post about HDR photos and Photoshop has been unexpectedly popular. I wish I’d done better explaining HDR, but I’m still working on understanding it myself.

In addition to Photoshop there are a lot of other HDR tools out there. Photomatix is one really easy to use standalone tool with a free trial for Mac and Windows. It seems a bit more fast-and-loose than Photoshop’s nerdy careful approach, well suited for exploration. I particularly like the “Exposure Blending” tool where you can throw a bunch of photos into it and quickly come up with a single tone-mapped JPG. If you want to play with HDR and Photoshop seems too difficult, check out Photomatix.

I’ve updated my HDR Flickr set to include 3 different HDR processes on the same set of pictures: Photoshop, Photomatix automatic, and Photomatix tone mapping. Amazing what variation there is.

Exposure and stops greatly simplified

I’ve been playing with my DSLR for months now without understanding what shutter speeds and apertures really do. After doing a bunch of reading on the science of exposure and the intuition of exposure, I finally get it. At least I think I do and now I’m going to embarass myself by revealing my ignorance. Please tell me if I get something really wrong.

A photograph is properly exposed if the camera has the right aperture, shutter speed, and ISO film/sensor sensitivity to capture most of the light coming in from the scene. The actual science is complicated (the magic word is EV), but the way photographers talk about it is in terms of “stops”. If a scene is twice as bright then you need one less stop in the camera to make your photo. Conversely, opening up a stop doubles the amount of light recorded.

Shutter speed is one way to adjust stops; if you double the length of the exposure you double the amount of light captured. Common hand-held exposures in one stop increments are 1/30s, 1/60s, 1/125s, 1/250s, 1/500s. My Canon 350d lets me adjust shutter in 1/3 stop increments such as 1/30s, 1/40s, 1/50s, 1/60s. So I have to click the wheel three times to double the amount of light recorded.

Aperture (or, confusingly, “f-stop”) is another way to adjust exposure. Opening the lens aperture one stop will double the amount of light coming in. The numbering is a bit confusing because of the geometry; doubling the f-stop number will cut the amount of light coming in by one quarter, two stops. Common one stop increments for aperture are f2, f2.8, f4, f5.6, f8, f11, f16. My Canon 350d lets me adjust aperture in 1/3 stop increments such as f2.8, f3.2, f3.5, f4.0. So just like when adjusting shutter speed, I have to click the wheel three times to double the amount of light recorded.

Finally, the third way to adjust exposure in a camera is to change the ISO sensitivity of the digital sensor (or film). Doubling the ISO will make the sensor twice as sensitive to light, which is about the same as doubling the amount of light recorded. Common ISOs in digital cameras are 100, 200, 400, 800, 1600. My 350d only lets me adjust ISO in full stop increments (not 1/3), so every time I “click the wheel” (or push the button) I’m doubling the amount of light recorded.

That’s a lot of detail, but what it boils down to is:

  • 1 stop = twice the light recorded
  • Doubling exposure time = 1 stop
  • Halving f-stop number = 2 stops
  • Doubling ISO = 1 stop

A modern camera with light metering means you can mostly be ignorant of this stuff, just put the camera in P mode and click the wheel to trade off shutter speed and aperture for artistic effect. But now I understand just what I get by bumping up one ISO level: I can cut the exposure time in half. And this information is a foundation for more complex topics. The next thing I’m trying to understand is dynamic range; just how wide a range of EV various scenes have, how many EV levels my camera can capture in a single photo, and how many EV I can print or view on a screen. This article is a good start.

Random travel ideas

Ken and I love to travel but sometimes we have trouble thinking of interesting new places to go. The book 1000 Places to See Before You Die is a great source of ideas. Just like it sounds: a list of places worth seeing in the world. Parks, gastronomy, archeological sites, etc.

For example, California’s entry is twelve pages on Death Valley, Yosemite, the Monterey Peninsula, the Pacific Coast Highway, the Golden Door spa, Hotel del Coronado, the Getty Museum, Hollywood, the SF Cable Cars, Chez Panisse, and Wine Country. I could quibble with a couple of these suggestions, but if you’ve never been to California that’s a pretty good place to start. And the book has suggestions like this for the whole world. Tanzania? Bhutan? France? All here.

It sounds a bit cheesy, but the book is well executed and full of interesting ideas. And the short format makes it ideal for occasional browsing. Fun book.

Planned trip to Australia

Ken and I have a trip planned to Australia. Many thanks to everyone who wrote in with suggestions! Australia is a very popular place. If you think you want to visit, read In a Sunburned Country. It’s great light travel reading, with lots of insight, and will definitely make you eager to visit.

We’re the type of travellers who have to have every night’s hotel planned before we leave. Unfortunate for spontaneity but good for avoiding stress. Here’s the plan:

Mar 1–6 Sydney
Get over jet lag, enjoy Sydney, take it easy. And go to Sydney Mardi Gras.
Mar 6–10 Tasmania
Hobart, Strahan, and Devonport. The big plan is to ride the West Coast Wilderness Railway, but there’s lots to see. Unfortunately the world famous Freycinet Lodge was full.
Mar 10–17 Melbourne, Victoria
People say Melbourne’s even better than Sydney, particularly for food. We could only squeeze in three days in the city, because then we’re headed inland to the gold town Ballarat, the river town Mildura, and Bendigo, another gold town.
Mar 17–21 New South Wales
Back towards Sydney to see the beautiful areas near the city; the Hunter Valley and the Blue Mountains.
Australia is a huge place. Even touching only one this one corner we’ve got about 28 hours of driving planned and three different domestic flights. Have to leave Adelaide, Canberra, Perth, Alice Springs, Cairns, and the whole middle of the country as well as The Reef for another time.

High Dynamic Range photos

Photographs in extreme lighting are a compromise. Either the highlights are overexposed or the shadows are underexposed. But with HDR techniques you can take multiple photos at different exposures, then combine them into a normal image with fine local control over exposure. It’s a bit like the Shadows/Highlights adjustment, only with real data instead of fakery.

Photoshop CS2 makes HDR easy for normal people. Some intro material on HDR can be found in this tutorial and this article. The HDR Flickr Group is fun, too.

I made a small HDR experiment while in Mendocino. The result isn’t great; boring composition, the fence looks unnatural, and I didn’t have enough range of source images. But it was a good exercise. Here’s how to do HDR in Photoshop CS2:
  1. Take several photos of the same scene with a tripod at a range of exposures. No individual image will be right, but you’ll get details in both shadows and highlights.
  2. In Photoshop CS2 select File / Automate / Merge to HDR. Choose your images; RAW is preferred. Unless your tripod is perfect you want “Attempt to Automatically Align Source Imges”.
  3. In the preview, just click “OK”.
  4. Choose Image / Mode / 8-bit to bring the HDR down to a normal image.
  5. You have several options for methods for squashing the image. “Local Adaptation” is the powerful one. You can also use the toning curve like an uber-levels tool to tune the exposure.
This is only the simplest possible conversion; there’s a lot of art here in manipulating the toning curve, choosing your exposures, etc. I’ve also found it’s useful to convert to 16 bit first to do some conventional exposure editing, then convert to 8. But still, this is enough to get started.

As seen on BoingBoing.

Mendocino: the California good life

Two feet of snow in the Northeast? “Wind gusting to 40 mph blew the snow sideways”? Ha ha ha ha. It’s been 70 degrees and clear in San Francisco for the last week. Ken and I took advantage of the weather to head up to Mendocino for a couple of days.
Mendocino is a hippy/art town on the coast about three and a half hours north of SF. It’s a mellow town with lots of good restaurants. Alas, half the town is closed until mid-February, but we had an excellent stay and dinner at the Mendicino Hotel.

We walked around the coast and mostly just relaxed, took photos. On the way back we drove through the Alexander Valley and stopped in Navarro Vineyards for wine and Healdsburg for lunch. California is a good place to be.

Batch RAW to JPG conversion in Photoshop

Adobe Camera Raw is a good RAW image convertor that’s part of Photoshop. I spent a lot of time trying to figure out how to batch convert a whole directory of photos, with confusing “actions” and “droplets”. Then I learned it’s a lot simpler than that.

  1. In Photoshop, choose File / Open.
  2. In the open dialog select all your RAW files.
  3. Click “open”. Don’t panic; it won’t chew up your RAM.
  4. In the filmstrip on the left select all photos.
  5. Choose your image settings. If you’re converting a lot of images, you probably want “Camera Raw Defaults”.
  6. Click the “Save N Images...” button in the lower right.
  7. Select format: JPEG. Adjust whatever else you want; file naming, JPEG quality, etc.
  8. Click “Save”.
  9. Click “Done” and wait patiently.
I’m doing this in Photoshop CS2, but I suspect it works in Elements just as well since really it’s the standalone RAW tool that’s doing the work.

Bonus tip: Microsoft has a RAW Image Thumbnailer PowerToy that lets the file browser make thumbnails of your RAW images, just like JPGs. Works great.

Slim wallets

43 Folders cracks me up. Not only does this tips-for-living blog have an article about reducing stuff to carry, it has multiple wiki lists and a meaningful pull quote from an Washington Post article about how the crap we carry reveals the existential crisis of modern living.

Reading their lists reminded me of how happy I became when I got rid of my inch-thick wallet and started carrying a tiny card case instead. Mine carries cash, a driver’s license, two credit cards, an ATM card, and a piece of paper with essential info like health insurance policy codes and emergency phone numbers. I get a little sense of peace everytime I remember how little I have in my pockets. The Tumi product is great quality, too.

Qoop books

Qoop is a clever service that prints books of your photos. It has amazing integration with Flickr. Go to Qoop, look at your Flickr photos and choose which to print, enter a credit card and a few days later a nicely bound book of pictures comes to your house. Couldn’t be simpler.

I ordered a book of 168 of my photos from Switzerland. The 8x10″ book format is great; easy to flip through and look at pictures, easy to put on a shelf to preserve. Qoop also offers posters and calendars and soon, postcards.

The print quality is a compromise. The perfect binding and paper quality are terrific. But it’s not a photo printer, it’s more like a high quality color laser printer. The color matching isn’t great and sometimes the ink is a bit uneven. But the books are relatively inexpensive (my order came to 40 cents a photo) and a heck of a lot nicer than printing a bunch of 5x7″ and pasting them in an album. Their customer service is very friendly and responsive, too. I’ll definitely be ordering more books.

I’m amazed at how convenient the process was. I assume the core enabler here is the Flickr API which allows Qoop to get at my photos. More web services like this, please!

Real world authentication

Logging into services online is a mess; different usernames and passwords at different sites, different standards of trust and security. But it’s just as bad in the financial world.

For many financial transactions a signature is sufficient. For some, you have to have the signature notarized. The notary’s job is to verify your ID, maybe take a thumbprint, and take $10 from you. Somehow this adds security. I learned today there’s a different kind of signature authentication, the Medallion Signature Guarantee. It’s commonly used to authorize stock transactions. Banks charge $10; crazily enough they’re apparently assuming liability for your authentication.

Wiretap yield: 1 in 500

Today the Washington Post gives us the breakdown on the results of Bush’s illegal wiretap program. 5000 Americans were spied upon; 10 of them were sufficiently suspicious to merit further investigation. One in five hundred. But according to the article, the conventional legal standard is that one in two wiretaps need to bear fruit to meet the requirement of probable cause. Now it’s clear why the Bush Administration knowingly violated the law; they couldn’t meet its requirements. It’s good to be the king.

I know we’re all suffering outrage fatigue here, but this extension of executive power is a serious threat to orderly US government. It has to be stopped. I just got a letter from the ACLU saying they’re raising $1,000,000 to work a ninety day ad campaign on the wiretap issue and the Patriot Act. The ACLU is one of the few effective organizations acting here, but they need money.

Donate to the ACLU!

Jimi Hendrix rocks

It goes without saying, but Jimi Hendrix rocks. Earlier today I was listening to King Crimson and was sadly thinking “was all 60s music this awful and pretentious?”. Then I queued up Are You Experienced? and on came the sublime “May This Be Love” (aka Waterfall) and my faith was restored. Blues influenced rock? Good. Progressive rock? Bad. Next up: Little Wing.

Super Noah’s Ark 3D

Reading 1UP’s feature on game ripoffs reminds me of one of the most amusing and bizarre game ripoffs, Super Noah’s Ark 3D. It’s an unlicensed SNES game from Christian games developer Wisdom Tree, a Wolfenstein 3D knockoff. Instead of a soldier shooting evil Nazis with machine guns, you’re Noah lobbing sleep-inducing berries at unruly goats on the Ark. Yes, really.
To understand just how funny this game this is, remember that Wolfenstein 3D is the single game that has most shaped the current game industry. The original first person shooter. Violence and blood as a core reward. Beating up on Nazis. And unlike many other pioneering games, Wolfenstein 3D was a hugely successful game.

The rumour is that Super Noah’s Ark 3D came about because id leaked them the code as revenge for carebear changes Nintendo demanded of the SNES port of Wolf3D. The story’s probably too good to be true, but none the less we can still enjoy spectacle of a Christian games company making an unauthorized SNES game that’s a knockoff of an ultraviolent and hugely innovative game. Truly the great ripoff.

How to fund a startup

I’ve got nothing new to contribute, but Paul Graham’s essay on how to fund a startup is so great I wanted to call it out. I spent months trying to figure this stuff out when I started my company. Very good introductory material on seed funding, VCs, capitalization tables, etc. Some good advice in there, too.
Venture funding works like gears. A typical startup goes through several rounds of funding, and at each round you want to take just enough money to reach the speed where you can shift into the next gear.

Few startups get it quite right. Many are underfunded. A few are overfunded, which is like trying to start driving in third gear.

Canon 24-85 vs Tamron 28-75

I like my photos taken with the cheap Canon 50/1.8 prime lens (like these) more than the ones taken with my Canon 24-85 zoom lens (like these). Prime lenses really are sharper and have clearer colours than zoom lenses. But zooms are convenient, particularly for walking around.

The usual suggestion for an excellent all-around zoom is the Canon 24-70 f2.8L. But it’s very expensive and at 950 grams, too heavy. An alternative is the Tamron 28-75 f2.8. It’s got the same basic specs as the Canon, but a third the price and half the weight. Folks seem to love this lens.

So I bought the Tamron and did a quick comparison with my Canon 24-85. The photos are ISO 100, f/8, shot on a tripod, JPEG straight from the camera. In the sample above two things stand out. The colour on the head is better in the Canon, but I think that’s just luck of the clouds. And the reflection in the candlestick on the left is so much sharper in the Tamron! I think that’s for real. We’ll see.

This comparison is a bit weak; it’s hard to really measure lenses. But I’ve got an example that convinces me this lens will work out. See the Flickr set for all of the photos.

Starforce is bad software; removal weirdness

I accept that games have copy protection. I do not accept invasive copy protection that damages my system. Starforce works by installing a driver in your operating system, way down with kernel-level privileges. No way.

What troubles me is how squirrely the process is for removing Starforce. Their user page explains how to remove it, but the solution is to send you to a scary looking third party which has been “granted a sole right to distribute the StarForce Removal Tool utility”. Their page then proceeds to try to upsell you into some never-heard-of-it anti-spyware program. Fake anti-spyware is a #1 way to get actual spyware on your computer, so the whole thing smells suspicious. I think it’s actually legitimate, but how could I be sure? Why would a company contract out distribution of their uninstall tool?

I don’t think Starforce means badly here, I don’t think they’re criminal. Just dumb. I was reminded of all this by Starforce’s ham-handed attempt to legally strong-arm Cory into removing some criticism from his blog. What jerks. Time to join the movement to boycott Starforce. Fortunately, not many games use Starforce, mostly some crappy second tier titles. I got it installed thanks to Sniper Elite, a lousy game anyway.

A better food thermometer

Usually high tech gizmos are a failure in the kitchen, but the Thermapen is an exception. It’s a true instant read thermometer: stick it in the food, wait two seconds, and you know the temperature to within one degree. The display is easy to read and it folds for storage.

It’s expensive at $85, but it’s so much better than conventional cooking thermometers it’s worth it. The difference is it uses a scientific quality thermocouple instead of a cheapo thermistor.

I hate my Nintendog

The Nintendo DS has a host of creative and innovative games. One standout so far is Nintendogs, the Tamagotchi-like puppy simulator. My 9 year old nephew dearly wanted it for Christmas, so I got myself one too.

The first ten minutes of the game are terrific. The graphics are super-cute. The animations and sounds are perfect, I was giggling and smiling and had puppy love. But, after a few days it gets old, and now I hate my virtual dog. He’s disobedient, can’t learn tricks, and has fleas.

The problem is the gameplay is terrible. The contest minigames are mindless. Training your dog is frustrating; it feels more like the game is training you to speak to its poor microphone. You can go for walks in the overworld, but the major play there is picking up puppy poop. And you have to play the game every day or your puppy starves and you feel guilty. I don’t need the responsibility.

It may be that I’m just too old and cynical to love my virtual puppy; I’ll ask my nephew how he likes the game in a few weeks. I just wish it were a better game!

Corporations and liberties

We cannot expect corporations to safeguard civil liberties. A corporation’s job is primarily to make money; it’s government’s job to protect liberty.

Three recent issues support this view. First is Bush’s illegal use of NSA against US citizens. It hasn’t been reported in the press yet, but we have to assume that US telecom companies are complicit in implementing the wiretaps. It’s standard industry practice going back to the telegraphy days. Second is the DoJ’s blanket request for search logs. Three of four search engines turned data over without argument; only Google has resisted. Finally, there’s Google’s decision to implement Chinese censorship. Google’s doing the best it can in an awkward situation, but ultimately China is too large a market to stay out of entirely.

In all three cases companies were placed in the position of having to defend their users’ privacy and civil rights against government intrusion. And in each case, there’s disappointment. While companies and their employees sincerely try to do the right thing, you don’t see a lot of outright corporate civil disobedience. Companies have too much to lose to defy government orders entirely.

The real battle is one level up, in the legal system. We can’t expect companies to disobey laws, even unjust ones. Instead we need to change the bad laws and enforce the good ones. And since so much US law is written by corporate lobbyists, as consumers we need to create market conditions so that companies have an incentive to make laws that protect civil liberties. It’s awfully indirect, but that’s the way a capitalist civil society works.

Support the EFF and the ACLU!

As always, my views are my own and do not reflect my employer.

DK Great World Atlas

Thanks to the Internet you no longer need a dictionary or encyclopedia in your home. Web sites like Wikipedia are often better, and versions of traditional dictionaries and encyclopedias are usable online.

But you still need a good atlas. There’s no substitute for large pages with high resolution printing. And while programs like Google Earth do things no print atlas can do, a paper atlas comes with a wealth of interpretive content.

Interpretation is what makes the DK Great World Atlas so terrific. It’s got maps, sure. But it’s also got satellite photos, and images at night, and bits of text highlighting how a place fits together both geologically and sociologically. The editorial content is excellent and the printing is beautiful. It’s expensive at $63, but well worth it.

If you’re atlas-happy a good supplement is the DK World History Atlas. This book is like those flip charts you had in grade school showing migrations across Europe, only global, detailed, and not condescending. It’s more a book you read than a collection of maps, and interesting for that.

Touristing in Australia

The best thing about taking a break is having the freedom to do things I want at whim. Like go to Australia. So I just got plane tickets to go from March 1 to March 21. Any suggestions for what to do? Please email me.

We’re arriving in time for Sydney Mardi Gras, so that’s the first main activity. I’m excited to go to Kangaroo Island and maybe Uluru / Ayer’s Rock. We love wine country. I love deserts; Ken not so much. I’d like to learn more about Aboriginal culture and language. We’re OK driving on the left. We’re not big beach people.

So what should we do? Planning a trip is hard work. My mother used to be a luxury travel agent, I regret the death of that business. I’ll summarize the suggestions that work out well. Advance payment: the Great Australian Novel.

Warrantless domestic spying is wrong

I’d thought this was entirely obvious, but today the New York Times reports:
With a campaign of high-profile national security events set for the next three days, following Karl Rove’s blistering speech to Republicans on Friday, the White House has effectively declared that it views its controversial secret surveillance program not as a political liability but as an asset, a way to attack Democrats and re-establish President Bush’s standing after a difficult year.
So let’s say it simply. The US government should not spy on Americans without warrants. There needs to be some sort of judicial oversight, at least something as toothless as FISA. The Bush Administration’s unilateral decision to use NSA to spy on American citizens is illegal and a frightening extension of executive power.

I suspect no one reading this weblog entry will be surprised I feel this way, and I hope most of you agree with me. But when someone keeps saying 2+2=5 or that Iraq and Al Qaeda were linked you have to remind yourself that it’s 4.

Strasbourg

One of my favourite cities in France is Strasbourg, in Alsace where the French speak German. Or formerly, where the Germans spoke French. Alsace is really its own thing, and a great place for it.

The most picturesque part of Strasbourg is La Petite France, the former tanneur quarter that has preserved its canals, locks, and half-timbered houses. I could spend days just lazing away in the little streets. In the rest of town, the cathedral is incredibly impressive. As a bonus it features one of the finest working medieval computers, the Astronomical Clock (details). Worth a special trip. And the Musée Alsacien is one of the best folk culture museums I’ve been to.

Strasbourg is a great food town. Au Crocodile is the famous Temple of Food there; very good, but a bit shallow for my tastes. The Bierstub Ami Schutz is great if you want cozy Germanic fare prepared with French finesse. Couldn’t be a more comfortable place for a good dinner.

But the real food revelation for me was Flammeküeche; pizza if pizza were made with German ingredients and French skill. An impossibly thin cracker crust cooked in a super hot oven, a creamy sauce with bacon for flavouring, and just a bit of onions and sharp cheese. My favourite was at the Académie del la Bière, served with a selection of hundreds of beers (and free WiFi).

I have photos online, mostly of the charming houses and canals. And one of this crazy plaque in Place Gutenberg commemorating the printing press.

Transmetropolitan

I don’t know how I stumbled into it, but I’m really glad to have found the comic book Transmetropolitan. It’s a hysterically cynical post-cyberpunk comic featuring the gonzo exploits of Spider Jerusalem writing his newspaper column “I Hate it Here”. And his filthy assistants, his two faced chainsmoking cat, The City, its transgenic inhabitants, and the collision between cybertopia and the grim meathook future.

The writing by Warren Ellis is great, profane and hysterical and incredibly creative. Darick Robertson’s art is beautiful, fantastically colourful and insane. Comic books rule.

Terrible goddamn place. Some days it’s like some bastard nailed a ticket for the bus tour down to fucking Hell to the front of my brain. For every wild everything depends on it first week of being madly in love kiss on a streetcorner, for every beautiful woman stopping to feel the sun on her face and every child dancing in clean rain, there’s a kid living in its own shit in a dumpster somewhere while Daddy sells his ass for milk money, tanks breaking down unwanted houses just to stop homeless people squatting there ... Time was this place didn’t make sense and I could live with it. Either it’s changed, or I have.

There’s all the good things on this ticket, and pure fucking evil too. And all the same, I’m going down with you.

I wasn’t cool enough to buy the actual comic books, but happily Vertigo has published everything as graphic novels. Amazon has them for about $10 a volume, each containing about 6 issues.

Nintendo DS Wi-Fi

In a Christmas-related mishap I ended up with a Nintendo DS with Mario Kart. Which is a fun game, but what really suprised me is the little thing does Wi-Fi! It took just a minute or two to set up and suddenly I was racing against a stranger from Japan over the Internet. Amazing.

Looks like only a few games support it so far. And the TCP/IP software isn’t in the system, but rather in the game; that explains why support is limited. But it works! Total surprise to me.

Taking a break

I’m on leave of absence from Google. I’ve mostly been not working since Christmas and will decide in the next couple of months whether I want to return to work at Google or do something new.

I’ve really enjoyed working at Google. There’s no other company that comes close to Google in its ability to do big things on the Internet and I think the company has an exciting and powerful future. But lately I’ve been frustrated by things that I can sum up as “it’s a big company now”. I’ve been there awhile and it’s time for me to take a break.

My immediate plan is to relax a bit. I already took one short trip to the California gold country and another to Vegas; I may go check out Slab City soon. And maybe go to Sydney for Mardi Gras. Basically, I intend to enjoy the first long stretch of time without responsibility since 1996.

Longer term I don’t know what I’ll do. I really admired Bloglines and Flickr as smart startups, doing something on that scale is appealing. Then again, Google offers an amazing platform from which to change the Internet. For the next few weeks I’m just going to chill about it, reset.

Debian key management problems

Normally the Debian software distribution and upgrade process is fantastic. An occasional aptitude update; aptitude dist-upgrade and my systems are all up to date. But Debian updates keys once a year and their key distribution process is not entirely smooth. The end result is an error like one of these
aptitude — debian WARNING: untrusted versions of the following packages will be installed
apt-get — The following packages cannot be authenticated
You can just ignore these errors, upgrade anyway, and hope for the best. But a better solution is to manually install the 2006 key first, then re-run the update.
wget http://ftp-master.debian.org/ziyi_key_2006.asc
apt-key add ziyi_key_2006.asc
aptitude update
aptitude dist-upgrade
I’m still not sure how to verify you really got the right 2006 key, I decided to chance it. Now would be the perfect time to h4x0r ftp-master.debian.org. shudder.

There’s background info on the Debian Wiki.