Is yak shaving a good idea?


There is a common story told in computing circles. You’re trying to get some work done, and before you can finalise it you find that you need to fix a small bug in a library you use. On the way to fixing that bug, you find that you need to improve something else as well, and so on. Eventually you look up and discover that you’re shaving a yak, and that it’s somehow needed to deliver that first project.

I have a theoretical interest in DDoS attacks and especially how they relate to SMTP servers on the Internet at the moment. Somehow that ended up with me reading a bunch of academic research from the ACM portal about email worm behaviour (hence the interest in the recent tech talk from Vern Paxson about the witty worm) and content delivery networks like Akamai.

Reading up on Akamai lead me to discover Planet Lab, which is insanely cool. I’m left with all these wild ideas for side projects to pursue from there.

Bring on the yak.


The witty worm with Vern Paxson


I’m sitting in a tech talk from Vern Paxson about the witty worm, and he’s just described how they could determine the state of the random number generator on infected machines when it sent probes to possible victims. Which gives you the uptime of the infected host, and they can see the distance between random numbers in the sequence, which means they can calculate the speed of the network link of infected machines, because they know the time distance between repeated probe attempts and how many packets were sent in between.

They can also determine the number of disks plugged into the infected machine, because a bug in the worm only re-seeded the random number generator when it trashed a disk block on the machine. It can only do that if that randomly selected disk exists.

The talk is being taped, so other people will be able to see it in a week or two.

Very cool.


Is there any way to access the match text in MySQL rlike selects?


Hi. I am doing a select like this in MySQL 5:

    select * from foo where bar rlike '(.*),(.*)';

The specific example here is made up. Anyway, I’d like to be able to get to the matched text from bar, like I can with various languages regexp libraries. Is this functionality exposed at all in MySQL? I’ve looked at the docs and can’t see any indication that it is, so this might just be wishful thinking.


On Virgin Atlantic premium economy


Welcome to Mikal’s badly organised travel tips. On the trip to Dublin I
flew Virgin Atlantic premium economy. That’s kind of like anyone else’s
business class, given the classes on Virgin are economy, premium
economy, and upper class. It’s much cheaper than anyone else’s business
class fare to Heathrow though. I thought that premium economy was pretty
good… The seats are old and both of the ones I sat in were subtly
broken, but the seat spacing is excellent, the seat is wider than
normal, and reclines just that little extra.

The extra money was worth it given I got off the plane and walked
straight into a meeting in Dublin, and on the return flight I got a heap
of work done. Premium economy even offers power for laptops, although my
corporate-issue iGo doesn’t work with the new Lenovo x60, and Virgin
didn’t have a tip for the x60 in their collection. That’s a pretty
common compliant with the newer Intel Core2 laptops though — they draw
too much power for older universal power supplies. I got around the
power problem with two “eight hour” batteries for the x60. The quotes
are because I actually get more like four or five hours off these
batteries rather than the claimed eight hours.

(Oh, by the way, the x60 rocks. Small. Light. Insanely fast with it’s
dual processors. I sent some time running a script which did a lot of
processing and IO though, and the machine got too hot to sit on my lap!)

I’ve now flown premium economy on the upper and lower deck of the 747,
and the upper deck is clearly better. On the top deck you get a deck
shared only with premium and upper class (Virgin’s first class), a
reading station with newspapers and magazines, a slightly quieter ride,
and you don’t have people walking past to economy making snob comments.
On the down side, you do end up with a much smaller overhead bin.
Basically no one’s bag fitted in it. There is a big coat locker though,
so it’s not like your bag is far away.

If you have a window seat, then you also get a small vertical locker
next to you, which is a nice place to put your laptop and ipod during
takeoff and landing.

On the lower deck you get all the economy people walking past, and in
fact they seem to wander into the premium section of the plane during
the flight. Often they would just stand there looking at me work, which
was a bit rude. You also share a bathroom with the rest of the economy
cabin, unlike upstairs. That leads to congestion. Worst of all, the
premium section is on either side of the forward galley. That means
constant staff movement next to you, light, and noise. Luckily for me I
was flying while trying to stay awake, I would have found this really
annoying otherwise.

You do get a big overhead bin though.

So, premium economy good, although the seats could do with some basic
maintenance. I’d pick it over standard economy any day.

Other random notes: Virgin staff are nice, there is video on demand in
all seats (which means of the airlines I have flown Qantas, New Zealand
and Virgin have this — unlike United). In fact, Virgin was really good
all round.


Dublin trip


I occasionally wonder to myself why I don’t blog more these days, and I
think the answer is that I’m not convinced that other people would be
interested in what happens to me from day to day. For example, when
writing the books, all that is really involved is a massive amount of
time in front of a computer. The finished product is cool, but the
process of producing it is actually quite boring.

(Although I feel that I will one day write up my universal theory of
project management… The short summary is something like: “project
management is about removing obstacles to delivery of the project — not
deadlines, hassling, gantt charts, or general futzing”. Or something
like that.)

The Dublin trip is similar. I had a good time, although am very tired. I
flew Virgin Atlantic premium economy from San Francisco to Heathrow, and
then BMI to Dublin. Virgin is great, BMI suck even more than I could
have imagined. For example — they advertise that they have the best
on time record of any LHR flying airline, but they were late every
time on my trip. Oh, and one of the planes had a power generation engine
which didn’t work, so we had to deplane in the dark. Oh, and no food. So
much suck.

(Oh, and who knew that the EU had instituted US style 3 ounce / 100
millilitre zip lock bag policies? I didn’t.)

BMI also seem to have a policy of hiring midgets as flight attendants.
They were all young women of about five foot tall. I guess that’s
convenient in a short aircraft, but where does one find a large stock of
midgets to hire from?

The hotel in Dublin was fantastic. It’s called the Berkeley Court, and
there is no point in saying much more about it because it’s being torn
down to build office buildings and apartments. How crap. I can’t imagine
owning one of the lovely Victorian terraces across the street either
during or after the construction of yet another identical looking office

Dublin seems to be all about economic growth at the moment. There are
plenty of identical looking office buildings around — some of them even
built on top of sites of historical artifacts like Viking settlements.
Apparently they didn’t even stop to dig up the old things before
concreting over them.

I liked Dublin though.

It was also odd to see Sinn Fein posters all over the place. I find the
transition from the political wing of the IRA to being a main stream
political party to be quite strange. (That sentence used to be more
harsh, but I edited it down).

Another odd thing was to discover the stereotypes are true (to a certain
extent). There are plenty of drunk folk on the streets on weekends from
about lunch onwards.

I got lots of tourist stuff done in Dublin, but didn’t see much of the
countryside. Perhaps next time. I did see the National Museum (bog
people!), the Chester Beattie National Library (ancient religious
texts!), Dublin Castle (Sinead O’Conner in concert preparations!),
Malahide Castle, the south wall, and other stuff I don’t remember at the

So there you go. I figure no one finds these posts interesting, so I
will continue to write them solely when it amuses me.