« | » Main « | »

How to move a subversion repository

Saturday 30 December 2006

This is how to move a Subversion repository from one place to another. It's one of those operations I undertake only infrequently, and so have to re-learn each time. This time, I'm writing it down. In this example, I'm converting a file-based repository to a server-hosted one.

  1. Make sure your working directory is fully checked-in to subversion, and back it up, just in case.
  2. Dump the subversion repository. This is done with an svnadmin command:
    svnadmin dump c:\svn\foobar | gzip -9 - > foobar.dump.gz
    It will show progress as it dumps each revision to the dumpfile.
  3. Create the new subversion repository, however it is that you usually do that. In my case, I use the Subversion control panel at Dreamhost.
  4. Copy the foobar.dump.gz file up to the server.
  5. Load the dumpfile into the new repository:
    zcat foobar.dump.gz | svnadmin load foobar
    It will show even more verbose progress than dump did, as it rebuilds the repository transaction by transaction.
  6. Checkout the new repository to a scratch directory:
    svn co http://svn.whatever.com/foobar
  7. Examine the new scratch directory and your current working directory. Make sure the files are the same, to check that the right content is correctly ensconced in your new repository.
  8. If all is well, you can switch your working directory to the new repository:
    svn switch --relocate file:///c:/svn/foobar http://svn.whatever.com/foobar

Enjoy your new repo.

Adobe and Office icons

Saturday 30 December 2006

Adobe has announced the icon set for their CS3 suite of products, and it has generated quite a bit of controversy. The new scheme involves 40 or so product icons, and basically makes them all solid-color squares with two letters of white type, like the periodic table. Only a few consumer-facing icons like Acrobat escape the two-letterization.

I can understand the difficulty in designing icons for these products, many of which do similar things. Especially for a suite of products, you need to have a common scheme to tie them all together, but also make them stand apart. And icon design is one of those endeavors that will draw criticism no matter what direction is chosen. But this really does seem lame. I subscribe to the theory that icons don't have to be representational, they just have to be memorable. And I also think that letters on an icon are a sign of a cop-out. So these new icons are pretty bottom of the barrel: nothing but type, and very little else to distinguish them from each other.

Of course, the icons they are replacing were controversial in their time too. For those who aren't familiar with Adobe's product suite, the CS2 icons were abstract as well: feather for Photoshop, flower for Illustrator, and so on.

For comparison, Microsoft has a new set of icons for Office as well. These seem a little more icon-like, in that they have a unifying element (rectangle with one rounded corner), a unifying style (similar angle to the drawn elements), and some representational content. They also continue themes from past years, helping with recognition.

While we're on the topic: GUIdebook has a great chart of icons through the years, which sadly has not been updated for the latest versions of software. Also, Matt Queen has an interesting paper about using low spatial frequency analysis to objectively evaluate icon design.

Account suspended due to spam

Friday 29 December 2006

The other day I started to get a flood of spam returned to me via bogus return addresses. This has happened every month or so for a while: a day of 2000 messages in my inbox. The return addresses are all made-up localparts at my domain, like MiltonqWilsoncantelope@nedbatchelder.com. I thought, oh well, I'll have to clean these all up, and I considered turning off the default address for my domain, so that these messages wouldn't get delivered in the future.

Before I got around to it, though, my hosting provider (TotalChoice) decided to do something for me: they suspended my entire account, including my web hosting. For about 18 hours, this site was offline, and all emails to nedbatchelder.com were discarded. I found this to be a bit of an overreaction, and it pissed me off.

After some pestering, the support people let me know that my billing had also failed. I use a virtual credit card number, and it expires once a year, so this had happened a few times before, with no interruption in service. This time, I had to pay up before they would turn the account back on. After providing a new credit card number, the account was re-enabled.

I went to my email settings, and saw that the default address for nedbatchelder.com had been set to discard emails rather than forward them. This was fine, except that I realized that I had been using the custom of providing different emails to different sites: bloglines@nedbatchelder.com for Bloglines, digg@nedbatchelder.com for Digg, and so on. So I went through a pile of old emails to see what aliases like this I had created. It turns out there were about 60 different ones over the years. I started to create explicit forwards for the ones I really needed, but when I tested them, nothing was being delivered.

Turns out ned@nedbatchelder.com was also being delivered only because of the default forwarding, so I had to create a real mail account for myself, change Thunderbird's account settings to access it, and test it. It worked, so mail was at least flowing to me again. I created the half-dozen more aliases I needed, and they seem to work fine.

For some aliases, I figured I didn't need them to be distinct, so why not just change them to ned@ and be done with it? One of these was the email I gave to eBay. I logged into eBay, and tried to change it to ned@. No luck: that email is in use. I clicked through to "I forgot my username", and had eBay send me my username in an email. Turns out I am both "nedbatchelder" and "ned_batchelder" on eBay. Trying to change the underscore name to use a different email address wouldn't work (the form kept claiming the username was invalid?). OK, let's set my real account to point to my Gmail email. Nope: you need to have a credit card on file to use a Gmail address (why?). OK, I made a generic second email address for me at nedbatchelder.com, and pointed eBay at that. Whatever.

At this point, I think my email is working properly again. If you wrote to me Wednesday night or Thursday during the day, and I seemed (unusually) unresponsive, the email may have disappeared. Try me again.

Talking to friends about this incident, I'm told that this is what I can expect from an inexpensive vendor. One friend told me to switch to Dreamhost, they're great. I mentioned to another friend that I already had an account at Dreamhost that I could switch to, and he said, they're worse, don't use them.

Having been through other experiences like this with other hosting providers, and reading reviews online of hosts, and talking to friends, I've come to this conclusion: with a commodity like hosting, most people will have a fine experience with whatever provider they choose. There are probably truly bad providers, but most are fine, and most people will have a good story to tell. But some small number (1%? 5%?) will have a horror story to tell, and again, it will happen with whatever provider they choose. So I don't know what to expect in the future, and I don't know whether to switch or not.

Marketing via blogs

Thursday 21 December 2006

I received this email this morning:

Hi there!

I noticed your blog about  PacMan  at http://www.nedbatchelder.com/blog/200311.html, and think you may be of some help to me. I’m reaching out to you on behalf of Sears and M80 regarding the Sears, Kmart, and Readysetholiday.com holiday games. Because of your interest in PacMan, I thought that you might enjoy playing these games, such as Puzzler and Candy Cane Race. If you like the games, perhaps you would be interested in posting a banner, blurb or review on your blog? Anyone who spreads the word will get a special holiday present from Sears & Kmart. You can check out the following games: Puzzler, Toy Factory, Candy Cane Race, and Snowball Fight. Please let me know what you think!

Thanks!
Lauren, M80
Lauren@m80im.com
www.m80im.com / www.m80teams.com

I can't blame Lauren for trying. A search of the blogosphere turned up a hit on my blog for "PacMan", and she's hoping to get a dribble of viewers from my mention here of her games. She must have sent many of these emails, and didn't have time to determine if I was at all likely to be interested in her cheesy promotional games (make a jigsaw puzzle from items in the catalog!), much less to find out what my name is for a personalized greeting. I thought the excess space around the first "PacMan" was a nice touch, though.

But Lauren should know by now that asking bloggers to write is the worst possible way to get the kind of writing she wants. They tend to ignore you, or worse, they write posts counter to your goals. For example, read Joel Spolsky's slam of Sprint's Power Vision Network, which he wrote only because Sprint kept begging him to write about them.

Blogs are a tricky thing for traditional marketers: there are a lot of people out there talking about a lot of things. Blogs have made headlines with the ways that they have started or powered movements that wouldn't have happened without them. There's clearly a lot of power out there. But they are not well-behaved like the traditional press. If Lauren had contacted a magazine, she would have a chance to talk to the writer, and would probably know roughly what would be printed, and when. With bloggers, it's a total crap shoot. The control is totally gone. Marketers are tempted by the power and the possibilities, but haven't yet learned how to get bloggers to do what they want (if they ever can).

OK, Lauren, I've posted my blurb. Do I get my gift?

Linerider

Tuesday 19 December 2006

mmorrisson, in a comment on my recent Drawing Games post, pointed to another online drawing game: Linerider. The idea is simple, but with a twist: use the pencil to draw a slope, then "play" it, letting a tiny sled rider ride the slope. It seems simple at first, but getting the sledder to keep moving and not fall off can be tricky. I quickly ran out of ideas for adventures to put the little guy through, but others seem to have no shortage: they've created some remarkable landscapes. YouTube also has movies of virtuoso Linerider performances.

Update: I originally had pointed to a different Linerider site, which was scuzzier, and had questionable content, including possibly viruses. These links are much better. I apologize.

Yahoo: the good and bad of ajax

Sunday 17 December 2006

These days I don't know what to make of Yahoo. On the one hand, they're the authors of arguably the best of the modern JavaScript libraries: the Yahoo! User Interface library. It seems more solid and better thought-out than the other libraries out there.

And now, Dav Glass from Yahoo has written the YUI: CSS Grid Builder, an interactive tool to make using the complex YUI grids much easier. This is all good stuff.

But on the other hand, they've taken their TV listings, which used to work perfectly well in the Web 1.0 world, and slathered Ajax all over them. Not only do they no longer show the right channels (no, channel 2 is not MTV in my town: is it for anyone!?), but the page doesn't fully load initially. It's divided into chunks, and not until a chunk is scrolled onto the page does it load its half-dozen channels. But the chunk can be partially visible while empty, giving the impression of having reached the end of the page. And now I have to wait (with a progress bar) while it loads each chunk. Clicking on a show is better in that it opens a panel on the current page rather than the old way of loading a new page, but if the whole page seems slower overall, the bouncy panel opening and closing is just annoying. Don't give me bells and whistles if the fundamentals suck.

I guess Yahoo, like any big company, is too large to be given a monolithic grade on anything. In this case, they've definitely got split marks for Ajax.

DB Fletcher capstan tables

Sunday 10 December 2006

This is one of those things that seems impossible or at least impractical, and I wouldn't believe it if I hadn't seen it. DB Fletcher's Capstan Tables are round, but have a built-in mechanism that makes them larger when turned. Leaves in the table expand out, and the whole surface re-fits together to make another larger, seamless circle. It's like dynamic oak origami as furniture.

Color tools

Thursday 7 December 2006

Luckily, I don't have to choose colors for a living. I wouldn't be good at it. Maybe as a result of my lack of skill, I am fascinated when I find a gadget that claims to help choose colors. Not that it makes it any easier for me really, but I like playing with the knobs and levers.

Here's a collection of color choosing helpers:

Other useful color stuff:

Colourmod is a color-picker widget you can embed in your own web application. It uses a clever transparent PNG trick to build a nice smooth picker.

Finally, if you are on a Mac, here's some tips on how to get the most out of the built-in color picker.

Making Peace in paperback

Monday 4 December 2006

My wife Susan's book is now out in paperback: Making Peace with Autism. It can be difficult to get information from a publisher about how a book is doing, but their decision to put out a paperback is a very good sign indeed.

Making Peace with Autism

Susan worked hard writing and publishing the book, and has worked hard over the last year or so publicizing the hardcover, so I'm very proud of her accomplishment getting to a paperback.

Svn annotate all?

Friday 1 December 2006

Here's a thing I miss about Perforce from Subversion, and I hope there's a way I can still do it. Both systems have an annotate command, that shows for each line in the file what revision last touched it. It's a great way to figure out how your code got to be the way it is.

But the Perforce annotate command offers the -a switch. This means show all revisions of all lines. So for example, if a certain line changed three times over the lifetime of the file, all three lines would appear in the annotated output, with the range of revisions that each was current. It's a great tool for figuring out when some baffling change was introduced, so you can go back, read the checkin comment, get your head into the mindset of the time, and forensically understand the history of the code.

Is there a Subversion tool that can do this?

« | » Main « | »