Four months ago I opted out of daylight savings time. How did it work out?
- I won't need to wake up an hour earlier tomorrow morning, when all the rest of you in America do. This alone makes skipping DST worthwhile.
- I enjoyed midwinter days where the sun set at 6:30. I got an hour more sunlight in my life every day. (I was never up before the sun.)
- I had a few confusing moments. A few visitors were confused by clocks in my house.
- I learned some things about myself, like I enjoy being a little bit out of step with everyone else. I have a powerful capacity to filter the world so that everyone else is wrong, and I'm right.
- While away visiting on holidays, I mentally switched to daylight savings time once. Because I didn't want to be at all out of step with everyone else then. (This did not impact my sleep schedule any more than visiting and needing to get up early normally does, except it was easier to get up early.)
- I felt closer to my friends in Europe, and more distant from my friends on the west coast.
- Technically, setting
TZ=JEST+4
caused few problems. Gnome's panel was somewhat inconsistent. One program failed to parse dates another had produced. - Unexpectedly, I saved some money. Turns out that if you show up in certain restaurants at their 11:15 am (your 12:15 pm), they don't have a lunch special chosen, and will let you pick the lunch special. :)
Tomorrow I will be in sync with everyone else. That might take some getting used to. I plan to keep my timezone setting, and will be doing this again next winter.
Projects I've been working on are, if not bearing fruit, at least showing promise.
git-annex is growing up a nice community that nags me about things like Mac OSX and FAT filesystem support. It's great to have their feedback, it's been leading to fast improvement, even though I've only gotten two patches to my haskell code. :)
New users are finding Branchable despite us not knowing how to market it. Sometimes a new site springs up overnight fully formed, having been developed on a laptop and git pushed to us. I get a vicarious thrill over whatever our users are doing, be it driving to Mongolia or watering plants with arduino.
I wrote this code today to verify setup branch pushes on Branchable. When I was writing it I was just down in the trenches coding until it worked, but it's rather surprising that what it does to git does work.
The following code runs in git's update
hook. The fast path of the hook
(written in C) notices that the user is committing a change to the setup
branch, and hands the incoming git ref off to the setup verifier.
# doing a shared clone makes the setupref, which has
# not landed on any branch, be available for checkout
shell("git", "clone", "--quiet", "--shared",
"--no-checkout", repository($hostname), $tmpcheckout);
chdir($tmpcheckout) || error "chdir $tmpcheckout: $!";
shell("git", "checkout", "--quiet", $setupref, "-b", "setup");
I got lucky here, since I initially passed --shared
only to avoid
the overhead of a clone of the site's entire git repository (which can
be quite large, since Branchable doesn't have any real limits on site size).
Without the --shared
, the clone wouldn't see the incoming ref at all.
In the setup branch is an ikiwiki.setup
file, and we only want to allow
safe changes to be committed to it. Ikiwiki has metadata about which
configurations are safe. Checking that and various other amusing scenarios
(what if someone makes ikiwiki.setup
a symlink etc) takes a hundred lines
of fairly hairy code, but that doesn't matter here. Eventually it decides
the setup file is ok as-is, or it's already died with an error message.
# Check out setup file in toplevel. This is slightly tricky
# as the commit has not landed in the bare git repo yet --
# but it is available in the tmpcheckout.
shell("git", "pull", "-q", $tmpcheckout, "setup");
# Refresh or rebuild site to reflect setup changes.
print STDERR "Updating site to reflect setup changes...\n";
shell("ikiwiki", "-setup", "ikiwiki.setup", "-v",
($rebuild_needed ? ("-rebuild") : ("-refresh", "-wrappers"))
);
When this code runs there are three repositories, each with a different view of the setup branch. The main bare repository is waiting for the hook to succeed before it updates the ref to point to what was pushed. The temporary clone has what was pushed already checked out. And the site's home directory still has the old version of the setup branch checked out. Possibly even a version that has diverged from what's in the bare repository.
It's rather odd that the update hook goes and causes that latter repository to be updated, before the change has finished landing in the bare repository. But it does work; it ensures that if there is some kind of bizzare merge problem the user doing the push sees it, and I probably won't regret it.
The result certianly is nice -- edit ikiwiki.setup
file locally,
commit and push it, and ikiwiki automatically reconfigures itself
and even rebuilds your whole site if you've changed something significant.
Exactly a year after I switched from pre to droid, I broke another cell phone contract. So there seem to be three fool-proof ways to get out of a cell phone contract in the US, despite all the hype about them involving signing away your firstborn.
- Switch to a different US cell phone company, and do it by going into a store and finding a hungry salesman in person, and making his sale contingent on him finding a way to break your old contract. What I did last year.
- Simply move to a part of the map that doesn't have cell phone coverage. (You will have seen these parts of the map from a plane.) It probably helps to have your cell phone drop off the edge of their map repeatedly for some months, presumably they can look this stuff up. Call up technical support, go thru some mild rigamarole as they try to configure your phone to magically see cell towers that have several mountains and/or the curvature of the Earth blocking line of site to you. Magic words: "please note on account: no cell service"
- Sell your contract on one of the existing cell contract exchanges, to someone who wants cell service with a shorter than usual contract. (Means giving up your number.) I haven't tried this one, maybe next time?
Unlike my Palm Pre which didn't survive being cut off the cell net, my Android phone is still fairly happy. While I'd really like to turn it into a proper Debian box, with X etc, I may just use it as a camera, web browsing (on wifi) and emergency 911 system. Pity though about the GPS stuff needing an internet connection when the phone has many gigabytes of free space that could hold a useful map.
(If you want to phone me now, the number is 1-423-IKIWIKI. I only receive voice mail, and your call data and transcript will be absorbed by the Google Borg.)