Archive for August, 2006

Ruby (The Dog)

Sunday, August 20th, 2006
Ruby And A Fly

Ruby now stands taller than Janis. She continues to be a very strange puppy.

In this picture, she is having a staring contest with a fly. Actually, she hunts flies. She held that position for about 15 minutes, gradually moving her nose closer and closer to the fly. Never did catch that one, but has gotten others.

Ruby is also unique in that she is the only dog I have met that is not a complete beggar when food is around. She’ll acknowledge that we are eating, maybe checking out whatever it is, and then head off to find a chew toy or hunt flies. She never gobbles her own food, taking a mouthful at a time into some random spot in the house to enjoy each individual piece.

HOWTO: Adding an RSS feed to a Subversion Server

Thursday, August 17th, 2006

I have now gone on stage twice and talked about how useful an RSS feed is for a subversion server. About time I actually document how to set up such a thing.

This tutorial will start by creating a local subversion server. The rest of the directions are universally applicable with the caveat that you need to make sure that the user running the RSS generation actually has write access to wherever the RSS feed(s) are to be written.

Of course, this all assumes Mac OS X. It would only require a bit of modification to make this work on any random Unix derivative and a slight bit more for Windows.

You’ll need to have a Subversion package installed that includes the server bits. I typically grab the bits from darwinports or Wilfredo Sanchez’s iDisk has prebuilt bits, too.

Read the rest of this entry »

 (Shift-opt-k)

Wednesday, August 16th, 2006

I was recently writing some engineering documents and needed to drop an Apple logo into said documents. How to type that???

As it turns out, the answer is in many places once you figure out where to look. In particular, you just hit “shift-opt-k”. Like this: . Woot.

Apple’s own Guidelines for Using Apple Trademarks and Copyrights has the answer in the first paragraph.

Of more general interest is the Apple Typography article at Wikipedia. It describes exactly how the Apple logo on a Mac fits in with unicode (it is stuck on a private code page).


Update: As Fed points out, the above Apple character will likely only show up in Mac based browsers. Windows — are there any that read this?? — and Linux users are likely seeing little boxes or something.

If you really want cross-platform compatibility, you’ll probably need to use a PNG or something. Since I’m typing the character into documents destined for consumption by other Apple employees, shift-opt-k () works perfectly for me.

Tar wrappers in subversion‽‽‽‽‽‽‽

Monday, August 14th, 2006

Update: Erik Scrafford of ZigZig wrote in with an explanation of what the script does. I misunderstood what he had done in the first place. In particular, he says:

All I’m doing is re-writing all the .svn directories and adding/deleting files as necessary so that people don’t have to run the svn commands by hand; it creates a tarball on the local system to backup the files, since this script isn’t terribly well tested yet. It should end up checking in exactly what you would expect; no interim formats in the repisotory like a tar wrapper solution.

That is significantly better than tar wrappers (the wrapping crap used in CVS). I need to review the script more closely to better understand exactly what is happening.

I had a brief look at the script. This is definitely not the mistake that was CVS wrappers.

My Perl is rusty, but the script is simple.

The script does have a data loss issue. If there are revisions in the repository and you execute the script, said revisions will be blown away upon next commit from your local machine.

The script needs to warn-and-abort if there are changes in the repository beyond the version you are working with locally. While it is likely the user won’t be able to merge in the traditional sense, the user should at least be informed that the operation they are about to perform is going to blow away changes that were committed to the repository.

Erik closes with:

But the script I put together solves a problem that lots of people are having right now; hopefully it ends up saving lots of people time and headaches trying to use subversion with bundles on macs.

That was the thinking that went into the original tar wrappers patch to CVS. The result has been 15 years of confusion, corrupted projects, and general pain. I was “Mr. Tar Wrappers” in the mid to late ’90s until Apple (Wilfredo Sanchez) took over and added it to Mac OS X. The scars run deep, hence the slightly knee jerk reaction.

Original Post

One of the Subversion core developers forwarded me this link.

In short, it adds an equivalent of CVS’s very broken “tar wrappers” to subversion in the form of a local hack that can be manually invoked to massage the data on the way in/out of subversion.

Wrong answer. Broken stuff. Weak sauce. Don’t do that.

Why? It effectively munges the data into non-diffable, non-original, format within the repository. There are many reasons why this is broken, most of which are outlined in this post I wrote in 2003.

(To be fair — it seems to be a reasonably implemented instance of a fatally flawed idea. And it isn’t automatic, so you won’t be automatically corrupting data in a misconfigured client side environment.)

Until Subversion properly supports opaque collections, whatever local hackery is done to work around or support this situation should make sure that whatever is checked into and out of the repository is in “native format”.

A script that makes a copy of– say– Foo.pages to Foo-svn.pages, and adds/manages Foo-svn.pages would be a much better solution because a “non script enabled” user could, at the least, open Foo-svn.pages with the only risk being that it becomes “disconnected” from the repository (which is really easy to fix).

Even that is a nasty hack that is nothing more than a flawed band-aid covering the real problem.

All of this comes back around to the need for Svn to support opaque collections. This is really two problems; moving the metadata (the .svn directory) out of the opaque directory (the Foo.pages) and automate inventory control within (i.e. don’t require svn add/delete for entries within the opaque collection).

Sadly, many people — some of the Subversion developers included, it seems — assume that the need for opaque collections is Mac specific.

It isn’t. Not by a long shot.

Just try and explain to a non-techie why you need to “add” and “remove” crap from a Svn repository when said non-techie can see the damned files right there in front of them via the Finder or IE. Now, do it with a straight face after they ask something like, “I see the list of files right there and I made ’em that way! Why do I now have to go and tell something else that I made ’em that way when it can clearly see exactly what I did in that window right there in front of me??!?!?!?!!”

Seriously. There are dozens of situations where “Just version control this big pile of crap automatically for me, thanks much.” is the exact right answer. Anything from collections of random notes/snippets through to the contents of a web site or the intermediate products in a content production environment all beg for this kind of solution.

In any case, tar wrappers or any other kind of client-side-pre/post-processing-before-commit/after-update is just a really, terribly, bad idea. I have spent more than the last decade dealing with fallout from CVS’s tar wrappers and I really don’t want to see the same stupidity perpetuated upon Subversion.

Avoid Raw Pacific NW Shellfish

Friday, August 11th, 2006

This is the second major article I have seen on the subject. There has been an unusually high increase in the bacteria Vibrio parahaemolyticus (Vp).

Now, I only mention this because I got nailed by Vp from a raw oyster about four weeks before WWDC (really bad timing, that). I had a bunch of raw oysters and my digestive system melted down about 18 hours later (Vp has an incubation time of anywhere from around 12 to 96 hours). It took exactly one week to shake it completely.

Personally, I’m not going there again until I the CDC/FDA announces that it is safe again.

Eating raw shellfish is always a roll of the dice, but the chances of [quite literally] crapping out are much higher right about now. You have been warned.

Update: The comments mentioned a different kind of shellfish poisoning called “Neurologic Shellfish Poisoning”. Symptoms can include a reversal of hot/cold sensations. Phil added a link to a site with more information, including information on a several forms of tainted shellfish poisoning that are considerably worse than an exploding digestive systems.

Yup, I’ll still eat raw oysters, but not for quite a while!

Tommy’s on Wednesday

Wednesday, August 9th, 2006

A slew of folk will be heading to Tommy’s Mexican Restaurant tomorrow evening. Julio is going to do a promotion of Gran Centenario products. Awesome tequilas, that. Also involved in a WIPO domain name dispute.

I’ll be heading in that direction about 7ish.

Also, my friend Ken has explicitly requested Dim Sum for lunch while he is in town. And Dim Sum he shall have. We’ll be heading Canton Seafood & Dim Sum Restaurant. Awesome place near Moscone/WWDC. The more the merrier…

“I luv your smile”

Wednesday, August 9th, 2006

I was walking back to the hotel from WWDC today along with Ken Anderson and Ronald Oussoren. I was ranting about something (imagine that!) and I heard this voice say “You are too serious! I want to see your smile!”.


It came from a rather attractive and seriously energetic young lady standing on the corner with a big pile of “I luv your smile” stickers that have a grinning cheshire cat on them. She insisted that I take a sticker with me.

It just completely cracked me up. What a completely odd little experience, but somehow so fitting in San Francisco. What a great city.

She got her smile.

Apparently, this isn’t entirely a unique event.

Chancellor Hotel: Worst. WiFi. Ever.

Sunday, August 6th, 2006

For WWDC, I’m staying at the Chancellor Hotel near Union Square. Nice enough place and scored me a great nightly rate.

Among other amenities, they offer free WiFi. It is configured to use WEP encryption. Fine enough. Unfortunately, that is where the goodness ends.

The hotel is 15 stories tall + a basement. To attempt to provide decent signal coverage, the hotel has placed a base station — linksys wrt something — on each floor. The guest is instructed to connect to their floor’s base station.

Unfortunately, all of the base stations use the same channel. That would be OK if it were configured for WDS based roaming. But they aren’t.

So, 90% packet loss appears to be the norm between my local system and the base station itself. Forget about VPN or ssh.

Correct me if I’m wrong, but shouldn’t the configuration be something like channel 1, then 4, then 7, then 11, then 2, …etc… in order of the floors?

From my 5th floor room, I see 14 networks — 7 being the floors of the hotel and the other 7 being random networks in the neighborhood. Surprisingly, all but 2 are encrypted.

Update: I’m now seeing about 100kbps down and 5kbps up. Way better. Not sure what might have changed, though I did turn on “use interference robustness”.

In particular, DSL reports has this to say:

Your download speed : 101 kbps or 12.7 KB/sec.
That is 95.5% worse than an average user on

Your upload speed : 5 kbps or 0.6 KB/sec.
That is 98.8% worse than an average user on

Thanks for rubbing it in.

Broiled Cheesy Tomatoes

Thursday, August 3rd, 2006
Cooked Cheesy Tomato

It is tomato season here and I’m starting to reap the rewards of a couple of wonderful heirloom tomato plants. Likewise, our local farmer’s market has a cheese vendor [again — she went missing for a while] who sells the tastiest cheddars and parmesan-esque cheeses.

Here is a delicious dish made from the two:

Cheesy Tomato Ready To Broil
  • Thin slice one large, very ripe, heirloom or heirloom style tomato
  • Lay the slices out, evenly spaced and not touching, on a cookie sheet (Lacking a silpat, oil the pan first).
  • Lightly salt and pepper the tomato
  • Grate or thinly slice some kind of parmesan or parmesan-like cheese over the top of the tomato slices. I used an artisan cannonball cheese from the local farmer’s market. Something relatively dry and crumbly, but not totally dry.
  • Put the oven on hi broil and place the cookie sheet on the highest shelf
  • Cook long enough for the cheese to melt and then brown just slightly.
  • The end result is an explosion of hot juicy tomato with a crunchy cheese shell. Easy and awesome. I would have taken a picture of the result, but it didn’t last long enough to do so! Got pictures of before and after this time.

    Update: OK — grated the cheese this time. Much better. And I thought I used more. However, the grated cheese has a lot of volume for very little content. Next time, I’ll about double the amount of cheese used.

    And there will be a next time. These were delicious. Even better than last time. And, yes, those are huge slices of tomato.