Mercury is in retrograde

As an Aquarius, of course, I don’t believe in astrology. But sometimes, when things start going wrong in rapid succession, I ask my California friends and learn that Mercury is, indeed, in retrograde. I have no idea what this means as per Mercury’s position relative to the Earth (and certainly have no idea how this could possibly have any measurable effect on the Earth), but in astrology terms, it means things are going to break. It’s a bad time to start new projects. One friend, Polly, who actually worked giving readings, explained that this is actually a good thing in that it helps people weed things out and focus, etc. It’s important to lead a balanced life. So my last week or so has been very balancing.

So I mentioned in my last post that I was moving from CVS to svn (don’t worry, this won’t get too technical, but anyway, the next paragraph will be non-geeky). I was all set to start work on new projects for a new year and so I created the organizational scheme that I would use on one computer and when I tried to get it onto the other one . . . no dice. So I decided enough was enough and switched systems. Which was fraught with all kinds of peril. In brief, it didn’t like my data and wouldn’t work with it. Developers started to recognize my login name and ask if I could submit bug reports. This is not a good thing. I had to add every file to svn, one at a time, trying to figure out which one was the culprit. I never did find out, but this process was not fast. At least it’s all in now, so my data is more or less safe.
While this was going on, I finally realized that none of my classmates were going to volunteer to watch my dog. My supervisor would have offered, but his wife just gave birth on Monday, so I told him no. There’s a pet store near my house, that I’ve talked about before. the owner was the guy who told me that my dog would be stolen from in front of the supermarket. Anyway, he has a chip reader and I wanted to see if Xena’s chip could be read with a standard, English reader and I wanted to get advice about kennels, so I went back to the shop with Xena.
The smell wasn’t very nice when I first went, but this time, it was like the air was soupy with it. The shop is full of birds and rodents and other small animals and a cat and there was a pungent mix of the smells of their food, their bedding, their fur and their feces. They also do dog grooming there, so there was a smell of wet dog and the hairs brown around my the hair dryers wafted through the shop (if only I was exaggerating). There were cases of vegetables on the ground, which I guess were for the rabbits, and clearly some forgotten ones, behind the overly stuffed shelves, had been left to rot. I imagined that a portal had opened to some foul layer of hell and stinking demons entered and left through this shop, whose smell would mask their comings and goings.
The shop guy didn’t have his chip reader with him. As for kennels, there were no good ones in Birmingham. I would get Xena back half starved, with open wounds, if I got her back at all. One of his customers got the wrong dog back. I would have to go at least 50 km out of town to find a decent kennel. I looked dumbfounded and he went on, saying that it was midterm break and all the kennels were already completely booked anyway. And I should give him a ring and make an appointment to get Xena’s chip read.
Right. I like to get all my distress out of the way in one go, so I went in the barber shop a few doors down and asked for a haircut. When I tried this in The Hague, I was refused service. In other places, it’s lead to huge arguments about appropriate haircuts. Etc etc. Well, England wins for least stress place to get a hair cut. They asked me to clarify, but no arguments at all. It just got cut. Alas, not quite as well as my Amsterdam barber, but quite a bit cheaper. The barber was indignant about the kennel situation. “We have animal welfare laws in this country!” she said. “No kennel would treat a dog like that! They would get shut down, maybe go to jail.” Her assistant wrote down some phone numbers from the yellow pages (“Do you have yellow pages in California?”) and later I called them and the first one had space and I booked it. Yay.
So when I got back, I finished up my svn conversion and all seemed well and it was time to write the music that I had due. I approached a high profile blogger about trading a commission for a plug and a banner ad and he said ok, and then my backup thing went totally wrong and I had to email him to ask for an extra week. Yikes. So I went to work on that. There’s a sports theme, so I recorded some football sounds from the TV and then layered them in a sort of interesting manners and then went to record some processed white noise. I thought it would be nice to have it start with very strongly resonant filterings and settle out into plain noise, which could be faded down to sound like crowd noise. This is still my plan, but the nice thing about hardware synths is that you never really know how it’s going to come out. This is why it’s fun.
My synth got kind of battered in the move (always tighten your bolts before shipping!), and this was my first time turning it on and, thank gods, it worked. So I set up my patch and tried to record it and got unfiltered noise. After a lot of head scratching, it became clear that the noise source was my mixer! Arg.
I took it apart and all the solder joints looked ok. I don’t know what I thought I could fix. I put it back together and reattached it and got the sound I was expecting. Yay. So I re-attached it to the computer and got nothing but noise again. Oh. Must be a software problem.
I went to download the manual for the Ardour, which is the mixing software that I use. (It’s free, and quite nice) and noticed both that the manual section I was looking for is not yet written (alas) and there’s a new version out with many improvements for mac users. (Huzzah.) The new version, though, didn’t like my version of Jack, which is an audio library that alot of free software uses. So I got the new version of jack and installed it and it wouldn’t run at all. And it completely blew away my old version. And then, slowly, I remembered that it had taken me over a week to figure out how to custom compile it last time so it would run on my machine. And I had never gotten around to doing the write up of what I changed to get it to work. oh crap.
That’s ok. I have other software. so I fired up Audacity, (which is also free software and very nice) and all it recorded was noise. ( . . . ) I tested my mixer again and it wasn’t working.
So a flaky mixer caused me to blow away my working software.
There’s no way I can finish this project without a mixer. So I have to buy a new one. In the mean time, I’ve missed the second deadline and created a mountain of work. This is not good.
What killed the mixer? It’s not surprising that it’s given up the ghost. It’s spent a lot of time bouncing around in a backpack and I plugged the american transformer into a step-down converter, which meant it was getting 50 Hz when it expected 60. Still, it functioned for 2 years in this manner. I’ve been having odd electrical problems recently. I go to sleep and leave things on (yeah, my carbon footprint, I know) and when I wake up, they’re inexplicably off. Still plugged in and switched on, but not getting electricity. Oh my god, the first time this happened was with my laptop. The battery had drained utterly and the power brick would not spit out juice. I thought the computer had died. But, unplugging and replugging fixes it every time so far. It’s hit my other computer, my speakers, my synths, a power bar (the light-up switch was not lit up). This is really weird. In other countries I’ve lived in, a plug in the wall means either that power is flowing or a fuse or breaker has gone. It doesn’t stop and wait to be replugged.
I think I need a UPS, which is expensive enough in the US. It’s going to cost a month’s rent here. They’re very useful in a studio, though. They suppress surges, they keep voltage steady in dips and brown outs, and, best of all, they tale a lot of noise out of the power and therefore make your gear actually sound better.
And I need to buy a new mixing board, which would be much, much cheaper in New York, where I’ll be on November 1, but stupid power differences and Britian’s odd obsession with grounded, fuse-containing plugs (hm, or not so odd after all), means that I should buy one in this country. Which is probably the most expensive place in all of Europe to buy electronics gear.
So, in summary, I have to spend a fortune housing my dog, replacing my mixer and getting a UPS. If I get my dog back, she’ll be wounded and half-dead. I totally blew it in a really high profile commission. My recording/mixing machine’s software is offline for the foreseeable future. My existing hardware is in danger. I have a meeting with my supervisor on wednesday and I’ve accomplished exactly nothing. Less than nothing, because before I had the potential of accomplishing something. But, to balance things, I don’t have to fight for haircuts. So it’s not all bad. Oh, and I’m moderating the livejournal feminist group again, which could go either way.
Still no social life, but my sanity is staying much more stable that I would have expected. So that’s good too. Really, things can only get better. Unless they don’t.

Migrating to svn

There exists a piece of software called CVS. It’s very handy for keeping track of files across multiple computers. So if you edit a file on computer A and want to edit it again on computer B, it is a way of making sure you have the most recent version everywhere. Also, if you keep the main data store on a remote server, it’s also a way to do network backups. The only problem with it is that it completely sucks.

Fortunately, somebody wrote a new system called Subversion, or svn for short. There are a lot of different ways to migrate from CVS to svn, but I went the slacker route. I had some, um, glitches. To spare you my pain, here’s a slacker howto:

Moving the Repo

mkdir ~/tmp
cd ~/tmp
cvs -d [path to repository] export -D now [name of respository]

Ok, while that’s going, let’s think about where you want to stick your svn repositories. I stuck mine in ~/svn/[name of repsitory]. Every one gets it’s own directory, no sharing like you can with CVS. I tried sharing and I had a disaster, alas. Anyway, let’s say you’re logged in to the machine where you’re going to host your repositories, and, for purposes of this example, your repo is named “Documents.” You’ve got it exported from CVS and sitting in ~/tmp/Documents/
Ok, part of the reason that CVS sucks is because it’s so damn hard to move things around or delete them. Well, go to town! Now you can! Once you get everything looking lovely, create yourself a svn repository and put your data in it.

mkdir ~/svn/Documents
svnadmin create ~/svn/Documents/
svn import Documents file://[full path to your homedir]/svnrepos/Documents/ -m "Initial copy"

Ok, where that says, full path, it means what you get when you type: “cd; pwd” (without the quotes). If you type that, make sure to go back to our working directory: “cd ~/tmp”

Getting Client Machines up to speed

Ok, you have two options. One is to just blow away the repository that you have checked out of CVS and check out the new one from svn. Boom! You’re done! However, if you’re using this as a backup strategy, you probably haven’t backed up every file. For me, that doesn’t mean that I don’t like the file and want to keep it around. It just means that I can regenerate it or I can live without it. Not because I want to, but . . .. I have a bunch of files that I don’t want to lose, but not so much that I stuck them in the repository. Which leads to the second option.
Remember, slacker means brute forcing. If you have a million client machines and not, like, 1 or 2, you’re going to want to write a script. But if you’re lazy and only have a few machines, it can be faster to do it by hand.
So when your were busily beautifying your directory tree: moving, renaming, etc? Do that to your version on the client machines.
Now, get rid of all those stupid CVS folder. This is easy. Cd into the root directory of the repository. Type “rm -rf `find . -name CVS`”. But don’t take my word for that. First try “echo `find . -name CVS` | less” and make sure you’re listing the directories that you actually want to delete. (Obviously, skip the double quotes, but keep those weird backwards single quotes.)
Create a temporary directory on your client machine and check out a copy of your new repo there

mkdir ~/tmp
cd ~/tmp
svn co svn+ssh://[network host]/[path to repository] Documents

Ok, there’s like a million ways to access a svn repo, but that’s the best one. Ask your sysadmin to set it up.
Now, this is the fun part. Let’s call the CVS repo A and let’s call the new one B. There are files that are in B that are not in A and vice versa. Copy all the files that are in B but not in A into A. This includes a bunch of .ssh directories. One in every folder. If there are files in B that you would rather have than the version in A, then copy those too.
Wasn’t that fun? Now do it for all your client machines. Ok, there is now an issue of files in your checkout versions that differ from the ones in your repository. So go to you client machines and do some checkins.