I was sent instructions on how to speak like a New Zealander today:
Repeat after me:
“Noine toimes tin duz not eequul sux”
Sounds about right.
I was sent instructions on how to speak like a New Zealander today:
Repeat after me:
“Noine toimes tin duz not eequul sux”
Sounds about right.
After playing around with udevinfo for a bit last night, I came up with a complete set of rules that seems to do what I want:
SYSFS{model}=="iPod", SYMLINK="ipod"
SYSFS{model}=="Sony DSC", SYMLINK="camera"
ENV{ID_SERIAL}=="I0MEGA_Mini128MB*IOM2I6_04030517899262", SYMLINK="keychain"
ENV{ID_PATH}=="pci-0000:00:03.0-usb-0:1:1.0-scsi-0:0:0:0", SYMLINK="cf_card"
ENV{ID_PATH}=="pci-0000:00:03.0-usb-0:1:1.0-scsi-0:0:0:1", SYMLINK="sd_card"
In many ways, this is simpler than the rules that were in there, but still unique enough for reliability regardless of the order that things are plugged in. The best part is that it works and I understand why.
While adding the new DVD burner into my home machine, I twiddled around with the entries in /etc/fstab, making things look a little cleaner:
#
proc /proc proc defaults 0 0
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1
/dev/hda6 /home ext3 defaults 0 2
/dev/hda5 none swap sw 0 0
/dev/cdrom /media/cdrom0 auto ro,user,noauto 0 0
/dev/dvd /media/dvd auto ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
#/dev/ipod /media/ipod vfat sync,nodev,nosuid,user,rw,noauto,noatime 0 0
/dev/sdc2 /media/ipod vfat sync,nodev,nosuid,user,rw,noauto,noatime 0 0
/dev/keychain /media/keychain auto rw,user,noauto 0 0
/dev/cf_card /media/cf auto rw,user,noauto 0 0
/dev/sd_card /media/sd auto rw,user,noauto 0 0
Noticing that /dev/ipod wasn’t being created the way I’d originally wanted, I started to investigate what’s changed since I first created the udev rule. When I looked through my local rules, I had:
BUS=="usb", SYSFS{model}=="iPod", SYMLINK="ipod"
BUS=="usb", SYSFS{model}=="Mini128MB*IOM2I6", SYMLINK="keychain"
KERNEL=="sda1", SYMLINK="cf_card"
KERNEL=="sdb1", SYMLINK="sd_card"
The SD card seemed to be working fine, and I assume the same would be true of the compact flash reader, but neither the keychain nor the ipod were being mapped properly. What’s worse was that if I booted the computer with the ipod in the cradle, the card readers would be pushed down the chain, and my last two rules would break, too. After what seems like an eternity, I finally have an answer for the last half of the problem. Because the two card readers are part of the same device, the vendor, model and serial number strings are all identical. The only difference is the sysfs path that they’re mapped to, which is stuffed into an environment variable. The result is that
KERNEL=="sda1", SYMLINK="cf_card"
KERNEL=="sdb1", SYMLINK="sd_card"
should be replaced with:
ENV{ID_PATH}=="pci-0000:00:03.0-usb-0:1:1.0-scsi-0:0:0:0", SYMLINK="cf_card"
ENV{ID_PATH}=="pci-0000:00:03.0-usb-0:1:1.0-scsi-0:0:0:1", SYMLINK="sd_card"
Et voilà!
With luck, I’ll get a chance tonight to run udevinfo on both the ipod and the keychain and figure out what’s going wrong with those rules.
It’s been a bit of a random morning. I slept in a bit, but was able to rush through to get to the bus stop a bit early. However, the bus was late and I missed my connection to work, even giving chase to the bus as it pulled away from the stop. If only I hadn’t been at the bus stop early. I’m sure the bus would have been on time. As it was, I ran into my flatmate in town and walked her towards work instead of hanging around at the bus stop for 20 minutes.
I received an email at work regarding the volleyball portion of the corporate tournament mentioned earlier. Due to a booking conflict, the date was changed from October 14th to October 8th. Four of us can’t play that day, myself included, which means that we’ll have to withdraw the team. It’s unfortunate; I was really looking forward to playing.
A slightly stray set in last night’s volleyball game did a small number on my ankle. The ball was set too close to the net and slightly too wide. I couldn’t reach it with a normal spike, so I knocked it over the block with my left hand, but came down with one foot on the base of the support pole. I’ve always had relatively strong (more like inflexible) ankles, and it didn’t turn over at all. In fact, I didn’t notice anything until long after I got home—a slight swelling and a bit of resistance to rotation.
I’ve got an anti-inflammatory gel on it, and I’m going to skip my cardio class tonight at the gym. My next game isn’t until Sunday, so I’ve got a bit of time to rest it off.
In getting my hew flat arranged, one of the first things that I did was put 3 bronze-ish cat figures up on the window ledge. With the wind coming through the open windows, the blinds knocked down all three cats, and one of them has gone missing. I’ve searched inside and outside—no missing cat has been found. I’m hoping that it just took an odd bounce when it fell, landing in an unsearched portion of my bedroom. I’d rather not have the other two looking so lonely.

Today is the day to leave the car at home. If you have to be in a car, it could be shared, at least for the one day.
I had been discussing this with my coworkers yesterday, and few of them had heard of it. There has been next to no advertising, and if it wasn’t for the Internet, I might not have known either. An interesting point was brought up during the conversation: instead of asking people to get out of their cars for one day, ask those who regularly cycle, walk or take transit to drive. Show the drivers that if everyone drove, how much worse the situation would be. In my opinion, driving a car is not a right, and certainly does not come without consequences.
Unfortunately, when I look at the parking lot at my office, there are no more empty car parks than normal. I’d be curious to see if the city council takes any traffic statistics today, but at the surface level, I don’t see a change in patterns. Better luck next year.
Only slightly off topic is something I saw on Scoop. Auckland is experimenting with a plan to limit daytime traffic over Grafton Bridge to buses, cycles and pedestrians, in order to make the trip between CBD and Newmarket more efficient. I think this is going to be a huge step for Auckland’s transit capabilities. While I was living there, I developed a strong impression that public transportation was willingly sacrificed for the needs of cars. It’s nice to see that change.
Just a pointer to something that should be read
[2006-09-19T20:36:00Z] | [/political] | #I called ihug to move my internet service to the new house. I was informed of a $99 relocation fee pushed to them by Telecom. I’m assuming that this is the same charge as the connection fee that is often charged when starting the service. I would like to know where this $99 goes, other than into the pockets of the shareholders. Am I getting $99 worth of service?
I’ve looked around online and asked a few technical people about what work is required to connect a DSL service to a house.1 The best answer that I could get is that an analog filter needs to be installed on the line and the line plugged into a multiplexer. I can see about 10 minutes of work there. That also brings up the question of why there is a delay of up to 10 working days for the connection. Can the volume of connection requests really be that high? And if it is, why is everyone paying that much? Shouldn’t the cost of travel times to site be averaged out when there’s a schedule of work to be done? What’s going on here?
I think we’re just getting ripped off. But this is hardly a new comment made towards Telecom.
In any case, I should have network access from the house by around the end of September.
fn. Consider that the house has already had DSL service, so any house wiring is already capable.
There is a cat that lives at my new house. He’s named Seven. I thought it was odd to use a number as a name, but it’s an interesting idea for a sci-fi story.
The premise would be that identity is explicitly tied to age. This is sort of true already, in that people refer to age groups and imply a characteristic. This could be taken further in that all people of an age are tied together and can be referred to interchangeably—the concept of the hive mind, but with a dependence on age. Imagine a scene where a 7 year old is talking with an 8 year old. It has the same effect as all 7 year olds talking with all 8 year olds, except that there are only two bodies physically present for the conversation.
An implication from this could be that since communication is so easy within an age, wisdom is rarely passed down through generations—it’s just too difficult to communicate that way. This might lead to a sense of competition and conflict.
This whole idea is quite blurry, and only exists here as a reminder to come back to it at some point. But if there is something written along these lines, I’d be interested in reading it. If only I had comments enabled already…
Thou shalt never waste a moment of true inspiration.
The move went quite smoothly on Saturday. A coworker with a truck arrived around 2pm and the last of the stuff was unloaded at the new house around 5pm. I think that’s a personal record. Normally, I’m still packing about 2 hours after the truck arrives…
The bedroom furniture is mostly arranged already, although I’m not perfectly happy with where the bookshelf is sitting. I’m half expecting this to be an iterative process—6 or 7 shifts should be more than enough for it to come to a suitable position. Aside from that, there are two boxes of kitchen stuff to unpack into the already very full kitchen and half a box of miscellaneous stuff that probably should have been thrown out instead of packed. The last of the stuff should be unpacked within the next couple of days, leaving only the arrangement of things like paintings and beanbag chairs to be done.
We’ve decided to move my ISP connection to the new flat, which I’m told can take up to two weeks. Sometime around then, I’ll try to get some pictures taken of the house and yard and get them online.
This is a silly idea that is completely infeasible at this point. But I’d love it.
What I want is a series of seamlessly joined LCD panels that can be programmed to display arbitrary star patterns on the ceiling. I know there is software that can display night skies from arbitrary points in the solar system. I just want to be able to display it to an aggregated screen of about 2m by 3m. Could I get that at around the same pixel-per-inch level as a decent monitor can drive, maybe 90PPI? I don’t even want to think of the amount of buffering that would be required for an image of that size, nor the processing requirements to track a shooting star across that many panels.
Todo list:
Of course, I’d never be able to shift houses again. How could I leave something like that behind?
This year’s round of corporate sporting is just around the corner, and the team coordination is in full swing. I’m currently registered for two teams: volleyball and petanque. I’d casually agreed to captain the volleyball team. I’m not sure how much that is going to mean in this context, but it was interesting to note that points are not awarded per rally, but only on the service. As for petanque, I’ve played before, but never competitively. I hope I can handle the stress…
After getting home last night and realising that getting more packing done was going to make far too much noise for my sleeping household, I decided to test out the DVD playing capabilities of the new DVD drive. The only DVDs that weren’t already packed too deeply to reach were those of the Cowboy Bebop boxed set. It’s been a while since I’ve watched any of the episodes, and I was pleasantly undisturbed by choppy playback or audio/video synchronisation problems. I still don’t know if there are going to be any region-coding issues, but I’ll have to look into that soon.
So far, so good. Here’s hoping that the old movies that I brought back with me on my trip home last month won’t go unused.
A few days ago, I was checking up on prices for an optical drive, to replace a cdrom that had stopped working. Within about 10 minutes, I’d put in an order and queued the bank transfer for the payment. The drive was waiting for me at the house last night when I got home from the gym. Saturday to Tuesday is not a bad turn-around time for an online order. However, I had to force myself to ignore it for some time, so that I’d continue packing instead of fiddling with toys. This morning, I woke up early so I could fiddle.
The DVD drive is an Asus DRW-1608P, which offers a nice array of reading/writing options for a low-ish price tag. I’m a bit disappointed that my boxed version didn’t come with the audio cable (by accident?), and there was a lack of indication of the Master/Slave/Cable Select jumper order. Aside from that, it spins quite quietly, which I think is a huge bonus. I’ve yet to play a DVD on it, so I’m unsure if my mix of Region 1 and Region 4 DVDs are going to be the worlds biggest pain in the ass. One only hopes.
I have a couple goals in mind with this thing. As a reader, I want to re-encode a lot of the CDs that I have bought since moving to New Zealand. I have the opportunity to try storing music as flac files, and recoding them when the songs are copied onto the iPod. As a writer, it’ll be nice to have a bit of back-up capability. Having lost the hard drive on my laptop, I lost some valuable files. I hope that I don’t have that happen again, now that I’m using a digital camera for most things.
Following up on whether or not to enable comments, I think it will be worth to have, but my initial testing didn’t work out properly. The layout of the form caused at least one of the variables to be incorrectly filled when it was returned:
<?xml version="1.0" encoding="iso-8859-1"?>
<item>
<title>Comments?</title>
<ipaddress>66.119.199.39</ipaddress>
<author>Greg</author>
<link>a href=http://www.sapheron.org/http://www.sapheron.org//a</link>
<email>greg@sapheron.org</email>
<source></source>
<pubDate>1157623883.21</pubDate>
<description>The form is ugly, and I'm sure that the final display will be no better, but this should give me an idea of whether this works or not.</description>
</item>
I also noticed that the comments directory was put into the cgi directory where pyblosxom is actually called from. I wasn’t expecting that, and need to track down why it wasn’t being put alongside the data directory that is used for the entries. Once I get that in place, some level of security will probably have to be put in place.
With my impending shift of houses, I’m expecting that this will be put off until I get settled into the new house. Any complaints about the delay will have to wait until then.
With the arrival of September, a lot of media attention has been given to the buildup and commentary on the 5th anniversary of the World Trade Center attacks. I’ve been talking to a few people about this, and I’m forming an opinion on the discussion of it.
I agree that it should be remembered, but I tend to disagree on the how and the why. I believe that the attacks were needless and catastrophic. However, I believe that any remembrance of why happened should symbolic of the state of related affairs. For example, Remembrance Day recognises losses of life in both world wars, expanded from the original commemoration of The Armistice. Instead of just acknowledging the American lives lost in the Twin Towers, I’d rather see September 11th stand for the ongoing need to heal a divided world.
It is hard to tell if it is coincidental or not, but the September 11th entry in my Living Language calendar is “l’espoir”—hope.
L’espoir fait vivre.—Hope keeps you alive.
This might read as something silly. This might be something silly. But it’s something I believe strongly in.
Muffins should be sweet, not savoury.
I generally don’t believe in strict rules for cooking or baking, unless safety is involved, but I don’t ever want to be presented with a savoury muffin. They’re truly an abomination of nature’s cookbook. On the scale of things I truly detest, they fall in between “Wasps on the patio of a pub in summer” and “Ant infestation in the house”1.
Now I just need to rewrite this on a comment card for the cafeteria at work.
1 This means that they don’t incite direct violence, but streams of vulgar language can likely be expected.
I’ve been waiting nearly half a year to take the sports massage course offered by the New Zealand College of Massage. This past weekend was the first of two weekends that make up the course. I can’t say that I came out feeling rejuvenated or relaxed, but I did develop a new sense of excitement for massage, and a new sense of respect. It wasn’t at all what I was expecting. Instead of learning out to get into muscles that are rock hard and make them relax, we learned to realise that relaxation isn’t a necessary goal. Through that, we learned to think about the effects of our actions and what we want to achieve.
The next weekend is nearly a month away. There is a lot of reading to get done in between now and then, and an opportunity to put this to practices. Any volunteers probably know how to get in touch with me already…
This stems from another thing with Peapod that’s been bothering me. With one specific podcast, Bandeapart.fm, Peapod will occasionally fail to retreive the newest episode when it first appears. It doesn’t seem to be an issue with Peapod, though. The error occurs with urlgrabber, in both 2.3 and 2.4 versions of python.
>>> from urlgrabber import urlopen
>>> fd = urlopen("http://www.bandeapart.fm/telechargement/bapfm_episode_44.mp3")
Traceback (most recent call last):
File "", line 1, in ?
File "/var/lib/python-support/python2.4/urlgrabber/grabber.py", line 605, in urlopen
return default_grabber.urlopen(url, **kwargs)
File "/var/lib/python-support/python2.4/urlgrabber/grabber.py", line 882, in urlopen
return self._retry(opts, retryfunc, url)
File "/var/lib/python-support/python2.4/urlgrabber/grabber.py", line 843, in _retry
r = apply(func, (opts,) + args, {})
File "/var/lib/python-support/python2.4/urlgrabber/grabber.py", line 881, in retryfunc
return URLGrabberFileObject(url, filename=None, opts=opts)
File "/var/lib/python-support/python2.4/urlgrabber/grabber.py", line 999, in __init__
self._do_open()
File "/var/lib/python-support/python2.4/urlgrabber/grabber.py", line 1066, in _do_open
fo, hdr = self._make_request(req, opener)
File "/var/lib/python-support/python2.4/urlgrabber/grabber.py", line 1182, in _make_request
raise URLGrabError(4, _('IOError: %s') % (e, ))
urlgrabber.grabber.URLGrabError: [Errno 4] IOError:
>>>
But immediately following that, this works:
greg@aegean:~$ wget http://www.bandeapart.fm/telechargement/bapfm_episode_44.mp3 --15:14:38-- http://www.bandeapart.fm/telechargement/bapfm_episode_44.mp3 => `bapfm_episode_44.mp3' Resolving www.bandeapart.fm... 159.33.65.170 Connecting to www.bandeapart.fm|159.33.65.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 13,194,425 (13M) [audio/mpeg]100%[>] 13,194,425 155.04K/s ETA 00:00
15:16:04 (150.88 KB/s) – `bapfm_episode_44.mp3’ saved [13194425/13194425]
I can’t explain what’s going on. It’s not actually a nameserver error. I’m guessing there is a timeout that’s occurring somewhere. The interesting part is that it’s only occurred with the one podcast, but repeatedly with it.
As of the most recent apt-get upgrade, python on Debian is now linked to version 2.4. The first thing that I noticed is that peapod broke:
greg@aegean:~/Projects/peapod$ python peapod.py
Traceback (most recent call last):
File "peapod.py", line 2, in ?
from Peapod.peapod import *
File "/home/greg/Projects/peapod/Peapod/peapod.py", line 45, in ?
from Peapod import OPML
File "/home/greg/Projects/peapod/Peapod/OPML.py", line 92, in ?
class OPMLHandler(saxutils.DefaultHandler):
AttributeError: 'module' object has no attribute 'DefaultHandler'
With version 2.4, xml.sax.saxutils.DefaultHandler no longer exists. A quick Google search suggests that xml.sax.saxutils.handler.ContentHandler might be used in place. I haven’t done enough investigation to say for sure. In the meantime, running python2.3 peapod.py does what I need it to do.
While I was away on vacation, a few rainstorms passed through Wellington, triggering a number of landslides in the area. It turned out that a couple of smaller ones were in the area where I park my car. Last night, there was a notice on my windscreen indicating that maintenance work will be starting on September 11th to secure the hill a bit better.
So much for my plan of seeing how landslide-proof my car is.
I’ve been keeping a casual eye on the access logs for me, and I’ve been noticing that the traffic distribution has been shifting. Since the dawn of time, I’d see activity from crawlers and a few addresses that I could mostly recognise as friends around the world. Over the last few weeks, I’ve been seeing more regular requests from addresses that I can’t account for, and getting a few referrals from Google.
When I originally set up Pyblosxom, I’d specifically left out the comments plugin. Who needs the comment spam, when everyone who reads an entry already knows how to get in touch with me? With the increase in activity, I’m starting to rethink that decision. Before I decide anything, I’ll need to have a read through the plugin and see what sort of work is involved in setting it up. I’m somewhat lazy in cases like this, and can be quite easily deterred by a fair amount of non-trivial work, especially given the distinct possibility that I could be incredibly frustrated by comment spam in a short while.
I should have time to read through the plugin today, and I should actually make a decision by the weekend.
The lightest sprinkle of rain was the only thing to disturb the morning air. The silence was not stolen by wind rushing by, not by cars on the street, nor by airplanes taking people to distant early morning meetings. The birds held concert over all else, and the world had a chance to listen. Better than that, the world had a chance to stop and listen.
We had fire extinguisher training this morning, which is not only mandatory for our site, but a good idea:
We sat around for a bit, talking about the basics, and went outside to repeatedly snuff out a propane burner. Personally, I’m a fan of dry powder extinguishers. They’re quick and have a no-nonsense approach to the business. So long as the fire is small, they don’t leave too much of a mess. But if the fire’s big, I think the powder on the floor is only a minor concern.
I was beginning to find it very unlikely that the randomiser in iTunes was actually randomising. The playlist is sorted by track name and accessed by random. However, at the time I noticed, the previous 3 songs had all been from the same band, and even the same album:
No less coincidentally, the next few songs followed suit:
Reverse alphabetical order.
It’s not the first time that iTunes has ignored the random setting and played through in order. It seems to work properly by turning shuffle off and on again, but it’s still quite annoying. If I wanted to listen to playlists in order, I’d say so.
Enough of that…
My search for a new place to live has successfully come to an end. I’ll be moving into a new house on the weekend of September 16th, two weeks from now. The house is a very bright three bedroom, single story house in Hataitai village, which is only a 10 minute walk from where I am now. It’s slightly closer to central Wellington, and is serviced by a number of bus routes, which means that it should be a fair bit easier to get around on the weekends.
I’m looking forward to getting in there and getting settled. What I’m not looking forward to is packing up all my stuff in the meantime.
August proved to be a very good month for seeing live entertainment, mostly theatre. My trip to Canada was coincident with a few theatre festivals, providing the bulk of the entertainment. In addition to staged performances, the weather was well suited to catching the myriad of street performers, pushing rapid-fire comedy to passers-by. To round out the month, I caught up with a friend last night in traditional Wellington fashion—over a play and coffee.
The Aleatory Project is a play of chance. It is a choose-your-own-adventure style story played out on stage. The decisions are made by events that take place. For instance, a coin toss decides the role that the two actors take to start the play. The magic of a performance like this is in seeing it again and noting the differences. I caught it once in Calgary and again in Edmonton.
Girls’ Guide is marketed as a how-to guide for girls looking to break into the field of professional domination. It is a bit graphic, and includes audience participation, which is a very natural combination. As a highlight, I’d also seen the actress promoting the show by walking through Old Strathcona in costume and on stilts—also a very natural combination, I’m sure.
Jesus Christ: The Lost Years attempts to explain all those little bits that the church doesn’t tell you, or doesn’t want to be let known. It’s pure puritanical fun, but not quite for the whole family. The use of two actors to fill out the entire cast is more fun than confusing, and the appearance of Elvis is etched firmly in my mind for evermore.
Sound and Fury came back to the Edmonton Fringe to bring us Cleopatrick. Never disappointing, the show was full of sexual overtones, undertones and a bit of full-frontal aimed at George Bush. The show refuses to take itself seriously, and that’s a lot of the fun.
Shifting is about transient people—moving in, moving out and moving on. It’s a snapshot of lives in motion. The most amazing part of this play is the use of boxes. The whole set packs up and breaks down, and as an added bonus, shakes its booty a bit.
I’ve always been a big fan of street performance, and have seen far more shows than I should probably admit to. Of the 5 busking shows I saw at the Edmonton Fringe, I’d met 2 of the performers before (in Christchurch), which was really cool. Another performer picked me out of the crowd, in addition to another 8 or 9 people, for some public dance lessons. I really wish that I knew someone in the crowd, so that I’d have a picture or two of that. It was much more fun that I expected.