It’s my birthday, so a week ago I bought myself a present:
The office is 4.5 miles from the BART station, so up until now I’ve been taking a bus. Unfortunately the timings aren’t that frequent (every 45-60 minutes). Plus I haven’t been doing any exercise since I moved out here. Now it seems to be getting drier I figured it was time to sort out a bike. I wanted something flexible, and have heard nothing but good things from the Brompton owners I know, so that’s what I ended up with. I’m very happy with it; despite my lack of recent exercise it’s pretty easy to ride. I’ve actually found it doesn’t take any longer than taking the bus, and is sometimes quicker, because I avoid having all of the waiting around for it.
I bought it from Warm Planet Bikes, who were incredibly helpful. They had a selection in store that they let me try (and quite a few other models of folding bikes too) and when I made my decision it turned out they could do the customizations I wanted in shop. So rather than me having to order it and wait a month I was able to cycle away that same evening! Full marks to Matt for staying late to sort me out (plus he’s a Brompton owner too).
I’ve been out here for 6 months now. At the point in time I was coming out I was pointed at Andrew Pollock’s On bootstrapping oneself in the US. I figure some extra data may be useful for anyone considering the same. I moved from the UK rather than Australia.
I sorted out my US banking long before I ever moved here; in fact I kicked the process off shortly after I accepted the move offer. Matthew had recommended the HSBC approach, so I did that. This meant when I arrived I had a credit card, debit card and check book. They also allow me to do really easy online transfers between my US and UK accounts.
My mobile phone was something else that was dealt with before the move. I bought a Simple Mobile SIM off eBay. I thought I’d end up moving to a contract once I had a credit record here, but actually the $60/month unlimited tariff seems to be fairly reasonable. Their customer service leaves a lot to be desired, but I’ve sadly come to expect that from phone companies. I’ve got a Google Voice account which is the number I’ve been giving out, so it’s easily for me to switch providers (or redirect things to a VOIP setup for when I’m back in the UK, but I’ve got a writeup to do for that at a later point in time).
Finding somewhere to live
One of my concerns was that it would be hard to find somewhere to live at short notice without any credit history or SSN. This turned out to be ill founded. Both of the managed apartment complexes I looked at were ok with the fact I’d just moved to the country and seemed used to such a setup. The place I went with is privately leased and was a bit more wary, but after a conversation with my US manager (who’d managed me even when I was in the UK) it was fine.
Social Security Number
AKA existing as an entity as far as the US is concern. I was told to wait at least 10 working days after entry before even applying for this, or I wouldn’t be in the system and it could cause delays. I did so and the card turned up within about a week (I had been told up to 2 weeks). Which was good, because work were having problems figuring out how to pay me without one.
You do seem to need the SSN for everything. The only times I can remember needing my National Insurance number in the UK is for new jobs and my E111 application.
I haven’t ended up buying a car here; I pretty much don’t need one most of the time and I’ve signed up to ZipCar for easy short term rentals - they’re happy to take a UK licence for sign up. However I figured getting a licence here was a good idea in case I did decide to get a car, and even just for ID (I kept having to point people at the DOB on my UK licence - everywhere here seems to card). Applying for a licence ideally relies an SSN, so I did so a few days after I’d got that. I did the car + motorbike written tests and got my learner’s permit. I applied for the car theory test the same day, but the first available slot was about 6 weeks later. During this period I did the CMSP basic RiderCourse, which meant that when I passed the car test I was also fully entitled to ride a motorbike here.
Other useful notes
As I live in the Bay Area I got myself a ClipperCard - it’s like Oyster except without the clever discounts. Works on more agencies though and helps avoid having to sort out change. For broadband I went with Sonic.net - I’m in their ADSL2 coverage area so I’m getting a reasonable 17Mb/s connection. The other options were AT&T ADSL (slower) or Comcast cable (evil). I’ve had zero problems with Sonic; It Just Works.
Also I sort of ended up with a trial run thanks to DebConf10 being in New York. Due to the way timings worked out this took place only a few weeks before my move to SF was scheduled. My banking and phone were already in place by this point, so it allowed me to check both were working ok. They were, and I didn’t really expect them not to be, but it was a nice safety net to have for the move proper.
Overall the main issue I had was that a lot of things were dependant on other things; get the SSN, get a learner’s permit, apply for the practical test, wait for the licence to actually turn up etc. It probably took over 3 months for everything to actually happen and come through in the post. I can tell when I actually started to exist in the system because Capital One began junk mailing me about whether I want a credit card with them…
I did my first upgrade of a lenny box to squeeze today; a test server in work. All went pretty smoothly but I had a handful of things I had to frob manually that I thought I’d write up here:
- collectd SNMP plugin needs MIBs or it won’t start: installed
ypbindto the Required-Start: line in
- NFS automounts now using NFSv4 instead of v3 and user/group mapping setting everything to nobody: Set
/etc/default/nfs-commonand ensure Domain in
/etc/idmapd.confis set to the correct domain name (look in
/var/log/daemon.logfor lines from rpc.idmapd saying “does not map into domain” to find out what this should be if you don’t know).
I think that’s pretty smooth overall; kudos to all those involved. I’ve a few more boxes to upgrade, but they’re all more likely to have people complaining at me if there are hiccups so they’ll have to wait until I have a suitable block of time set aside.
(This is part of a series of posts on Why Linux?)
I think of myself as reasonably pragmatic in my approach to Free/Open Source software. I don’t get worked up over which set of language people want to use. I use devices that require binary firmware to be downloaded to them (because just because I can’t see it doesn’t mean it doesn’t exist). I have non-free in my
And yet, talking to other Linux users these days, I realize I’m much more of a Freedom nut job than average. I want the source, be it for a driver, a minor widget, or a full app. I don’t buy nVidia. I will sacrifice a degree of functionality in order to get Free. And while I think WINE is an excellent piece of software, I think the best end result is that it’s no longer necessary, not that it’s a perfect implementation of the ABI.
How does any of this help justify my use of Linux in the work place? As previously mentioned, I’m a developer. Most developers don’t operate in a vacuum; they have to inter-operate with other ecosystems. And usually somewhere along the line there’s a failure to document exactly how something is handled, or an ambiguity about what exact choice might be taken. If I have access to the source then I can check that out for myself. If I don’t, I have to guess. As an example, a long time ago I was involved in writing a serial console driver for QNX. There came a point where the behaviour wasn’t quite as we’d expect. Although the organisation had a license for the source, I wasn’t allowed to look at it. Instead I had to come up with a series of suitable questions that someone who could look at the source could answer without violating any NDAs. If I’d been able to look at the source directly we’d have all saved a lot of time. And that’s an example where someone could look at the source, rather than having to make a bunch of guesses and instrument tests to see which was right.
Access to the Linux source has helped me in other commercial contexts too. At Black Cat we were able to take advantage of patches like grsecurity in order to tighten up shell account boxes. I wrote the IPv6 support for l2tpns, because we had access to the source and could. I’ve been able to look at the source to understand exactly what SCSI responses are sent in certain circumstances too (or understand exactly what the error that a user land test program was getting back meant).
Also I’m a big believe in Linus’ Law. I do think that good Free software is much better than proprietary software (there’s some really bad Free software out there though, I’m not disputing that). The fact that smart people can look at it and scratch whatever their itch is means that we get a gradual process of improvement that can’t be ignored. Equally as long as someone has an interest in the software, end users can’t be left high and dry by organisations abandoning still users applications. I think that should be a powerful driver to business to look towards Free software.
(Before my more astute readers point it out; yes, I am employed writing non-free software. See the first sentence. One day I’ll find a job working on Free software that ticks enough of the other boxes to be viable.)
I love revision control. I love the ability to track changes over time, whether that be to see why I changed something in the past, or to see why a particular thing has stopped working, or to see if a particular thing is fixed in a more recent version than the one I’m using.
However I have a few opinions about the use of revision control that are obviously not shared by other people. Here are a few of them:
One change per changeset.
The only argument I can see against this is laziness. Changesets are cheap. Checking in multiple things in a single go makes it hard to work out exactly which piece of code fixes which problem. I’m fine with a big initial drops of code if logically it all needs to go together, but changesets that bundle up half a dozen different fixes piss me off.
Descriptive changeset comments.
Don’t make me guess what you changed. Tell me. Bug numbers are not sufficient (though including them is really helpful).
Comments in the changeset, not per file.
I’ve only seen this with BitKeeper; you can have per file comments and then an overall changeset comment. At first I thought this was quite neat, because you can explain each part of a change. Now it just annoys me, because I want the relevant detail in one place rather than having to drill down to a per file level to figure out what’s going on.
The tree should always compile.
There are people I respect who are all for checking in all the time throughout development no matter what the status. I have to disagree, at least for anything that’s available to other people. The tree should always compile. This avoids pissing off your coworkers (especially if they’re in a different timezone) and means you can do things like git bisect more easily. Plus it shows you’ve at least done minimal testing.
Don’t hide your tree.
I like centralised locations for master trees. It means I can make an educated guess about where to look first for information about changes. Trees that live in obscure network shares or, worse, someone’s home directory aren’t helpful. While I may not always agree with the choice of VCS for the centralised service as long as it’s actually fit for purpose I think it makes much more sense to use it than go off on a separate path that’s less obvious for others to find.
subscribe via RSS