The diary

04.05.2009 The only thing I can do is read
  • MySQL pissed me off today. It started out with it going OOM and then corrupting Bugzilla's logincookies file. So I turned it off, pulled out myisamchk and it did the right thing. Or half of it, it turns out. Once I had done that, the table was marked read only, and how the hell does one get out of that?
  • Turns out there were THREE things that needed doing. First, I had to chown the actual MYI file to mysql:mysql. Then I had to chmod it to 660, because the perms were broken. After that I got stuck, because mysqlcheck wouldn't update it, still saying "Table 'logincookies' is read only". Well, damn it -- turns out the last bit missing was running a "FLUSH TABLE logincookies;". So how was I supposed to guess that?
28.04.2009 You can't make this stuff up
13.04.2009 Eastern Easters
  • Possibly one of the all-time best Roubaix climaxes ran yesterday as an Easter present for everybody. Or well, I guess everybody but Flecha, Hoste and Hushovd: [www.youtube.com]
26.03.2009 How can one not love Launchpad?
     <danilo> kiko: got any cheap offers for marriage in EU? and can I
     continue to live here? (fwiw, I am busting my ass with documentation
     this time around since I want to ask for longer visas, and I'll have
     Canonical lie a bit in the invitation letter how I am going to go to
     Spain 745 times in the next year :)
     <intellectronica> danilo: as soon as i get my EU pass i'll be happy to
     marry you
     <danilo> intellectronica: sounds good :)
     <intellectronica> (even though you're a bit too tall to my taste)
     <danilo> intellectronica: well, you'd not be my first choice either, but
     I'll love you as if you were :)
     
14.03.2009 Things I miss about Brasilia
  • I left Brasília many years ago, and I only lived here for 4 years before starting university down south. But there are some things that I really miss about it.
  • One is the rain. It is spectacular in the summer months how beautiful and shocking the thunderstorms are; my parents have a house which is glass everything and the sound is deafening. When I come here I love staying at home and just listening to the roar of the storm hitting the house and the lake. And the thunder, when it strikes, makes your heart race, eyes widened at how loud that could really be.
  • Home is another. It is very neat to be surrounded with all these weird mementos of your former lives; trophies from races you did who knows when, comic book collections that you bought in forgotten newsstands and in ancient trips to places you never visited again, bits of arcane computer hardware that might just work if you can piece it all together. And the sounds of that old life around you.
  • My parents. I have had a lot of luck in my life, but wow, it seems almost unfair that I had a pair of parents as fantastic as mine. They are two ever-surprisingly versatile individuals if I ever saw a pair, and every year they seem to decide how they want to reinvent themselves. And whatever it is you want to do, they are interested in doing it with you. Run 15k? Sure! Waterfalling? Always! Out to buy random stuff I need? Now! Never boring. What an amazing couple.
10.03.2009 The purposes of war
18.02.2009 Argus Tick tock
  • The Cape Argus cycletour is on the 8th of March. The route is nothing but spectactular [www.cycletour.co.za] and it's not as flat as one might think [www.cycletour.co.za] -- and I am so happy I will be there along with thirty thousand other people. If everything goes according to plan..
16.02.2009 Getting older feels great
  • But let me ride my 110km this morning and then tell you exactly how great. I just wish it wasn't raining..
15.02.2009 pioggia maledeta
  • After 105km of rain yesterday, you'd think that it would let up for a birthday lunch? Guess I'm kinda short on credit with the weathermakers. Plan B!
09.02.2009 The politics of scanning
  • If you own an Epson scanner and want it to work in Ubuntu without installing the debs provided at [www.avasys.jp] by hand, check out my comment 5 at [bugs.edge.launchpad.net] -- basically, the versioning of these packages is psychedelic and somebody needs to get Avasys to make some sense of it so we can reasonably package and update iscan without breaking everything we ship based on it. Michael Casadevall and I spent a few hours on this over the weekend and though we have some packages in his PPA, they aren't really something which we can get into the archive for Jaunty.
08.02.2009 Some pictures are truly worth a thousand words
  • This gallery has such a striking set of contrasts I can't help but love it: [www.velonews.com]
  • Just got back from the first race of 2009, which was a 50km mountain marathon; out of the 800-odd registered I finished around 10th overall and, again, 2nd master. 42 seconds off! [www.sistime.com.br] I rode well the first half of the race, but lost contact in the hard climb in the middle of the race and just wasn't in the mood for a solo chase. I felt strong on the flats but had a little difficulty staying in contact on the climbs, and I particularly hated the soft feeling my SID has up front -- it makes me really not want to stand up when I'm riding, which means I can't easily jump on wheels or deal out the pain. Santa, bring me a new fork?
02.02.2009 Oggplay is just amazing
  • I have for years been enduring the Nokia music player on my 3250, which is the phone I use on bike rides. It's a big fat phone but the built-in speaker is loud and it is as solid as they get; mine has a cracked LCD, a partially broken case and so much water and dirt inside it you'd be amazed it still turned on. Not only does it work, but it works as well as it did when I got it 3 years ago.
  • I have a ton of Ogg Vorbis files that are the format I rip from my CD collections into. I knew there was this software called Oggplay [symbianoggplay.sourceforge.net] and that it played FLAC and OGGs, but when I looked at it I was worried that it was one of these applications that worries more about skinning than getting the UI right. I was also unsure about how much battery it would melt. I never tried it.
  • But, come 2009 music refresh program, I have Girl Talk in FLAC and I haven't been able to listen to it on the phone. I decided that today was as good a time as ever to try it out. And wow, it is amazing! The UI is so well designed I can already use it with my eyes closed (pretty essential for a player you use while riding). It has the file browser integrated with the playback screen, and it is really fast -- much faster than the built-in player. And FLACs and OGGs! Just really impressive. Guess I might just need to wait for Nokia to get over its DRM obsession before it considers shipping it by default?
  • One note on the installation is that downloading zips does seem a bit counter-intuitive to me; I was expecting a set of links from the website to installable SIS files. Maybe it has to do with how the downloads are hosted at Sourceforge?
01.02.2009 A campaign for modern music
  • It was last November that I realized it. When you're 33 all you think of is the songs you listened to when you're 23. That's rubbish. So I'm planning ahead and since December have been listening to everything mildly interesting I hear about. If you're in the same situation, here are my picks so far.
  • Foals, Fischerspooner, Chromeo, TV on the Radio's Dear Science, The Black Ghosts, Girl Talk, The Ting Tings, Cut Copy, Ladyhawke, Late of the Pier, The Whip, VHS or Beta, The Virgins, Buck 65, The Rapture
  • Not so new, but still great: Idan Raichel, Sad Lovers and Giants, Lene Lovich (can't believe I had never heard of her)
  • Stuff I (perhaps surprisingly given the hype) did not like: MGMT, Hot Chip, Les Savy Fav, Wire, Vampire Weekend
  • If you know me and want a USB mixstick put together just send me one through the mail; I'll fill it with my picks. Postage free.
31.01.2009 Waking up when it's dark
  • I kinda hate it when I can't sleep through sunrise. I go to bed pretty early and usually am asleep by 22:30; at that time my brain is already flagging and when it's not I remind myself of Jacobson's progressive relaxation method [en.wikipedia.org] and that's it, Zs show up in my brain. The problem for me is that when I am at home I just can't figure out how to wake up after 6. Normally this isn't a problem, since I go to sleep so early, but if I have a late night, it is a disaster. Yesterday the Launchpad team leads meeting ended in a dinner which we walked out from at midnight (!) and this 'morning' I've tried reading, drinking water, PMR, etc and just around now have given up and come to face my 1177-message-strong inbox. Funny thing is, there are only two situations in which I don't have this problem, and one of them is when I'm travelling on vacation. Damn.
29.01.2009 got watts
  • This week I'm supposed to be gearing up for the first race of the year, which is a pretty unspectacular marathon in Itu. I mean, it'll be painfully fun as all races are, but it's not a particularly long or hard race -- though some people argue that the easier the parcours the harder your buddies make it. Anyway, so because I have this race I'm doing some moderate-to-high intensity stuff this week -- I had done pretty much only hard tempo rides between December and January. I did 3x5' of 20/40s on Tuesday and Friday (at 300/500W), which left my legs soft and bubbly, and nearly beat my PR for 5' (which is 398W from last November). 20/40s require a serious psychological edge: the first hit is fun, the second is hard, the third is painful, and the two last ones are just total regret. But because the rest is so short and constrained, you just keep coming back..
  • Then on Wednesday I did this killer workout on rollers (since it doesn't f**** stop raining here) with 10x2' at 300/350W and then a little 3x5' ladder going from 260W to 300W. But man. AIIII. I was so lost after it. Johan said something to me during it but blam if I can remember what it was: just the sweat pouring off my face and the black spots in my brain. I had dinner at Sal6 later with Martin and Johan and I was absolutely useless (and then you called and it was even worse). My legs felt okay, and the ride the next day was fine, but the system shock was hard to get over. But then again, I broke my 10' and 20' records at 332W and 326W, which is 5.1 W/kg and nothing to sneeze at. Never thought I could do that on a January! I could have done a few more minutes but I'm not sure how many more; my heart maxed out at 173 which means I wasn't self-destructing, but the last minutes took a loooong time to go by.
22.01.2009 Wow
  • "I think it's the kind of stuff I need to do, I need to get in the race and work that top end," he said. "Like I've said 100 times here, I can't get that in training so the more I can be out there... I mean, I looked down at my power metre and the average after two hours was 340 watts, you can't do that in training. You're just constantly going and going and going." [www.cyclingnews.com]
  • Armstrong weighs 76kg, which means 4.4 W/kg, but still, pushing that hard for 2h is serious business. I did an average of 244 yesterday, in comparison, and it was a hard ride. Maybe he's talking NZAP or NP instead of average power, but does the SRM give you either of those?
03.12.2008 The Ting Tings
  • are probably the best new band I've heard this half of 2008.
02.12.2008 Subject: Songbird 1.0 PPA; Dear Lazyweb,
01.12.2008 Third and sick, or sick and third?
  • I can't decide. I made too many withdrawals from my immunological bank this week: travel, not a lot of sleep, delayed flights, indoor cycling and one or two big nights before Sunday's race nailed me. News at [prologo.uol.com.br] It will be a typing sort of day IYKWIM.
  • João and I didn't warm up properly before the race yesterday and my legs burned for the first 20 minutes, which means the pros dropped me on the first climb and I had to hang on to the next splinter until I figured out I actually had much more inside me and went out on a rampage. Clawed my way back to within two minutes of the leaders of the amateur ranking but only enough to land me third on the podium, flowers being the special touch this time. Why don't all race organizers give flowers to the winners?
25.11.2008 Riding in circles
  • Third day in Buenos Aires. Went to the gym yesterday and did 2h of spinning; 2 more today and 2 more tomorrow and then that's it for me. You can't do more than 6h of indoor cycling in a week. Or else your heart melts.
24.11.2008 I don't even wanna know
  • what the karmical implications are, but a search at a domain parking webpage returned this to me today:
     We were unable to find results for your search term - "Money".
     Are you interested in:
         * Money Laundering
         * Anti Money Laundering
         * Financial Opportunity
         * Money Com
    I guess they've got all bases covered.
18.11.2008 Testing testing 1 2 20
  • Did my first 20km test of the 2009 season. Average wattage was 276W, which for 66kg isn't all that bad. Now 20km is a LONG time for a test, and man those last 5ks take forever to roll by. But in the end I was pretty amazed at the result and let's see how well we can use it to kick some 2009 podiums.
  • It was Bruna's birthday today. She's 9! We had cake and popcorn and Pucca and Garu goodie bags complete with -- what else? -- "funny love". Everything a masters racer needs!
14.11.2008 The delta of 32
  • The news at [www.nytimes.com] is kinda tainted by the downer medical opinion about its low feasibility, but I personally find it just absolutely fascinating. Earlier this year I told myself that somebody would find a cure for AIDS; maybe I was just rehallucinating William Gibson's cure in Virtual Light but I figured there was enough known about the CCR5 variant [en.wikipedia.org] which provides natural immunity to the virus, that it was time somebody figured out how to use it. Well, they had already done it, two years ago; the story just took a long time to arrive.
06.11.2008 6am phone calls
  • Are a great way to kick that jet-lag! The call was good but I only really woke up in the last half of it. I rode off to Damha and did a good 4 short 1200W sprints, and then did 4 6' repeats of the longer climb. I managed about 310W for the whole set which is not bad as I wasn't totally hallucinating over it, heart probably close to threshold. On the last climb I did it at a higher cadence than usual and.. it actually felt like it hurt less and I was better able to cope with the annoying fact that the climb flattens out twice in the middle. In the last minute I was always a bit cooked but that's cycling for you.
  • Called Vitor Costa up to talk about training for the new year. He let me in on that I'm second-ranked brazilian master XCM this year: [www.cbc.esp.br] -- wow, I guess I just wasn't expecting to have made it that far up.
05.11.2008 OOPS
  • When Johan did our Intrepid upgrade on the weekend there was one thing he left unfinished, and that was figuring out why the kernel was OOPSing mid-startup. Well today I figured it out, tragically, by discovering that it's not because I'm so great at cleaning up my inbox (533 today from 1200 on Monday is kinda fantastic). It's because my box isn't sending out any email from me, and it's postfix that is causing our diskless NFS to OOPS on startup. Gotta love Wednesdays!
     kiko@gasolinux:/var/spool/postfix$ sudo /etc/init.d/postfix start
     /etc/init.d/postfix
      * Starting Postfix Mail Transport Agent postfix                         [ OK ]
     kiko@gasolinux:/var/spool/postfix$
     [  149.183761] BUG: unable to handle kernel NULL pointer dereference at 0000000c
     [  149.183895] IP: [] :nfs:nfs3_proc_setattr+0x69/0xf0
     [  149.183990] Oops: 0000 [#1] SMP
     [  149.187579] Pid: 5744, comm: master Not tainted (2.6.27-7-generic #1)
     [  149.187631] EIP: 0060:[] EFLAGS: 00010282 CPU: 2
     [  149.187688] EIP is at nfs3_proc_setattr+0x69/0xf0 [nfs]
     [  149.187699] EAX: 00000000 EBX: f5a89e7c ECX: f5a89f70 EDX: f59ddd80
     [  149.187699]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
     [  149.187699] Process master (pid: 5744, ti=f5a88000 task=f5996480 task.ti=f5a88000)
     [  149.187699] Stack: f7da4000 c1000000 f5716f88 f5a89f70
                           00000000 00000000 00000000 f8a98f08
     [  149.187699]        f5a89e3c f5a89e7c 00000000 f8a86e00
                           f57170a8 f5a89f70 f5a89f18 f8a633e6
     [  149.187699]        f59ddd80 f55f1770 c018cda8 f5a89e9c
                           c01b02e5 f65e9d80 00000004 f5996480
     [  149.187699] Call Trace:
     [  149.187699]  [<f8a633e6>] ? nfs_setattr+0xb6/0x170 [nfs]
     [  149.187699]  [<c018cda8>] ? file_ra_state_init+0x8/0x20
     [  149.187699]  [<c01b02e5>] ? __dentry_open+0x1a5/0x260
     [  149.187699]  [<c01c0e00>] ? fifo_open+0x0/0x2e0
     [  149.187699]  [<c01bdb1d>] ? do_filp_open+0x1bd/0x790
     [  149.187699]  [<c02549fb>] ? copy_to_user+0x3b/0x130
     [  149.187699]  [<c01b57b9>] ? cp_new_stat64+0xe9/0x100
     [  149.187699]  [<c0235724>] ? apparmor_inode_setattr+0x14/0x90
     [  149.187699]  [<c01c89d6>] ? fnotify_change+0x2d6/0x3b0
     [  149.187699]  [<c037e62d>] ? _spin_lock+0xd/0x10
     [  149.187699]  [<c01ca4fc>] ? mnt_want_write+0x6c/0x90
     [  149.187699]  [<c01b0714>] ? sys_fchmod+0xd4/0x100
     [  149.187699]  [<c0103f7b>] ? sysenter_do_call+0x12/0x2f
     [  149.187699]  =======================
  • Perhaps more annoying is the fact that nobody else seems to have reported this problem to anywhere Google knows. Normally with OOPSes you can count on somebody else having the same problem, but today it sounds like I'm gonna be either debugging or lazywebbing..
  • Easy 2h ride down 29 and then around Damha and the Tour of Flandres. It's always easy when you wanna rest and you're by yourself. Enjoyed riding the Felt but I have come to realize that perhaps the Time ATACs are a bit too wide and ultimately responsible for why my left heel swings in so much. Why don't I write to [www.cyclingnews.com] I wonder? Well, Stuart agreed to come over tomorrow to look at this himself on the rollers so let's see after that.
  • Swapped out the battery in my Polar wearlink strap; also ran a bunch of errands including dropping a spaghetti mix of about 20 punctured tubes to the amusement of the LBS mechanics..
04.11.2008 You never thought self-destruction could be beautiful
  • Man, Fabiano toasted me on the way back from Santa Eudóxia today. It started out harmlessly enough, even though it was crazy hot, but by the time we were past Água Vermelha he was taking no prisoners and all I could do was follow the melted pavement and dead animals he left in his wake. Second day riding after 20 days off and it felt profoundly painful. I had a little divine moment on the climb coming back out of Santa Eudóxia, you know, when your head goes really light and your arms feel soft and then all of a sudden these strange thoughts go through your head? I had thoughts of myself as a child, and (somewhat paradoxically) of me as a parent taking care of myself as a child, and of misadventures and surprises that have happened over my life.. so yeah, it was self-destruction, but it was oddly pleasant. And as smoothly as the hallucinations started, they ended as we hit the top of the last long climb, and I managed to roll back home and only mildly suffer through the rest of the day.
03.11.2008 Heat
  • I am back in Brazil, and wow, it is hot. Last week I was surprised by this weird flurry of snow in West London; today I've got a brand new tan. In a way I like the contrast, but you have got to admit it is at least unnatural. After a morning spent across immigration, customs, taxi, bus and a quick ride home, I managed to dig time out in the afternoon to do a fun 2h ride to celebrate my return. Arthur and I did a little loop out to Itirapina and on the way back he stuck behind a truck and revved it at a scary 70km/h. I kicked and slapped in behind him and put out a ridiculous 700W for some 10 seconds before a car rolled next to me and started honking. I thought it was somebody cheering me on, but in fact it was the police! Ai ai, one day in Brazil and already in trouble.
  • Swapped out the tires on the Bianchi today for the new set I bought in London just last week, when the world was still young.
02.11.2008 Um,. any similarity is mere coincidence?
22.10.2008 Nokia to Evolution syncing?
  • If you're not afraid of the commandline and getting a bit upset in the process, try this: [help.ubuntu.com] -- it's the product of hours restarting phones and debugging obscure msynctool messages. It almost works reliably for me, too. Unfortunately it doesn't for my cousin, who was the prime intended recipient of those instructions. #!@#!@
14.10.2008 One more year
  • One more Tour of Santa Catarina, and this time I survived through the thick (and wet of it) to finish 10th overall and 3rd Master: [www.ciclismosc.com.br]
19.08.2008 USB drive woes
  • So.. our new external USB suffers when I rdiff-backup to it. Turns out that it may be too fast (the old one was a WD 5400rpm): [bugs.edge.launchpad.net]
     Aug 18 23:57:01 anthem kernel: [519190.143537] EXT3-fs error (device sdf1): ext3_find_entry: reading directory #2 offset 0
     Aug 18 23:57:01 anthem kernel: [519190.143882] Buffer I/O error on device sdf1, logical block 0
     Aug 18 23:57:01 anthem kernel: [519190.143907] lost page write due to I/O error on sdf1
  • I'm trying out a suggestion to fudge max_sectors to 128 and see if that improves things tonight.. sounds like it did. All sorted and backups both fast and stable now. Rock on!
04.05.2008 NFS sync versus async and /var/run and /var/lock mystery
03.05.2008 After upgrading the diskless
  • Run a depmod -a, because otherwise my screen get busted. Reminder to self!
  • When a server nfs.lockd stops responding, what to do? Well, Bruce Fields sent me a suggestion:
    Perhaps a sysrq-T dump of lockd would show where (and whether) it's blocked? (So once lockd stops responding, log into the server, run "echo t >/proc/sysrq-trigger", and collect the output from the logs, especially the stacktrace for the lockd process).
01.04.2008 New office
  • First of April, joke's on us. But we got a new office as a special gift! Rui Barbosa 1977 is going through its finishing touches as we speak and with some luck we will even have the Internet installed there.
31.03.2008 The phones I've owned
  • Nokia 1100a
  • Nokia 3250
  • Nokia 7250i (Pink!)
  • Nokia 6120
  • All but the 3250 can be unlocked with the code calculator at [www.peters1.dk] -- the the 3250 can't be because it requires a flash update?
  • Somebody asked me if it was possible to have more than one SIM in a mobile, and I thought there were no models that allowed that. Well, not a phone, but check this out: [ucables.com]
14.03.2008 USB 1.1 sucks
  • Had to go out and buy a USB 2.0 PCI card for my server today. Before:
     102400000 bytes (102 MB) copied, 76.3268 seconds, 1.3 MB/s
    After:
     102400000 bytes (102 MB) copied, 4.79696 seconds, 21.3 MB/s
    Much better.
12.03.2008 Super Sony Storage Support
  • I have an AIT drive that I bought back in 2005 to do backups and archival of the content on our server. We do daily backups of the full content, and rotate tapes weekly.
  • So a few weeks ago the backup started failing randomly mid-process. This happened before in the DAT days, but AIT proved to be much more reliable -- until now. I ordered a cleaning tape (there's a myth that AIT is self-cleansing, but [www.rm.com] says it's not) and when that didn't fix things, decided to send the unit out to warranty. I had to fish a number out of the Sony UK support site but once that was done it was quite smooth!
  • There's this great little software package called sonytape that Sony distributes from [sony.storagesupport.com] and I used it to generate a trace file. One cool thing was that the support team at Sony was able to look at the trace file (after I sent it to them) and find out how dirty the tape head was and how many times the tapes I was using had been cycled (provided the tapes have [www.aittape.com] which mine do). That's pretty impressive! One interesting result of that is that I know (now) you're not supposed to cycle a tape more than 50 times, which means that if you're using a tape a week, it shouldn't be used for more than a year. I hadn't heard that number anywhere else, and the only stuff I can find on the web says the tapes last 30 years. But that's shelf life!
  • In general, the support experience was outstanding. You call a UK number and get a support engineer that can actually tell you something useful and knows enough about the hardware to make the experience interesting and rewarding. If I ever run a support operation, I want to make sure my experience is as good as that one.
08.12.2007 The Royal Dutch
  • Wanna tell a dutchman from an eskimo? [www.zompist.com]
  • When apt says
      files list file for package `cpp-4.1' is missing final newline
    it's time to look at /var/lib/dpkg/info/smbfs.list and figure out what is wrong with the file. In my case, it was a very mangled file; probably a result of some filesystem damage that happened when my mac mini hung.
  • I finally discovered that mutt can record my multiple identities (well, actually, multiple email addresses) and make reverse_name work by using the "alternates" configuration variable.
  • Commands I learned how to use today: blkid vol_id md5sum gnome-mount, and all because I am investigating [bugs.launchpad.net] with Johan!
07.12.2007 Things gone missing
06.12.2007 The disappointment junkies
  • This week Johan is trying to convince me that when we upgraded from 10BaseT to 100BaseT that the diskless did not get significantly faster; I am upset at that suggestion but given that my memory is not anything to write home about he might be write.
  • So just to make sure we have a late 2008 opportunity for disappointment I convinced him to buy a [www.netgear.com] switch so we can test our diskless at a full gigabit speed. We'll tell you really soon how much of a difference it didn't make!
05.12.2007 Some keywords
  • Ride João Arthur Catraquinha Me Santa Eudóxia Afternoon Felt Bianchi Melting Hammered Happy Dinner Sal6 Pizza João Just Like The Old Days
04.12.2007 Trails from a forgotten past (at UFSCar)
  • Today João, Fabiano, Dalcimar and I rediscovered a set of trails at UFSCar that made me remember how much fun I used to have there in the 90s. Crazy technical, fast and not too hard, which means you can do a hundred loops without noticing you're dead. I got whipped in the face and arm by a thorny bush, and after the 2:30h my legs and my back definitely hurt!
  • When I went to university back in 93, it was crazy how many bicycles and cyclists there were. The classrooms were jammed with them. If you wanted to skip a class and go for a ride, all you had to do is go down to the restaurant and you'd always, reliably, find someone who was there waiting for you. We used to ride to uni with cycling shoes because that's just how it was. I missed a lot of statistics classes riding over the Jedi trail. The interesting thing is that the trails are all still there; in fact, they are better now than they have ever been. However, there are no cyclists any more. And I mean none. Zero. Not a single student after 1998 has taken up cycling as a sport, and only a minority commute, probably on the days they can't get a ride with somebody else. That's a big change in demographics and culture.
  • I've been reading at Mary Poppendieck's suggestion a set of software engineering articles by Corey Ladas. They are very interesting! One that stands out is this sincere review of process models (a topic which fascinates me) I just saw at [leansoftwareengineering.com] He also makes a pretty cool point about multitasking:
    One inspiration was a result from Boehm that programmer productivity peaks at 2 concurrent tasks. One task should be a high-priority primary task, and the other task should be a lower-priority task that you can work on when the first task is blocked. This was an empirical result, not just armchair noodling, so I thought it would be cool to build a process around it.
03.12.2007 The House of Heat
  • It's hot today. No, serious, it's like 35C in the shade. I went for a 3-hour ride today and towards the end my heart rate (which admittedly has been pretty high since I've come back from vacation) was in the 160s for a sustained 220W. That's not very impressive. The ride was good, just a loop towards Corumbataí and back, and I had this funny buzz from [www.gigolorecords.com] playing in my head for some of it. That's a great album even if it is a bit sick. I mean, not as sick as, say, [en.wikipedia.org] but if you have heard either you get what I mean.
  • Today I had lunch with João, one of my friends who is a biologist and a teacher and also as much of a cyclist as anyone could be. Biologists are amazing people and I would strongly recommend lunch with one if you have the opportunity. As it is I privileged to have the best biologist friends a human could ask for! (The god of friendship must like me.) Speaking of which, Sal6 came back from Australia today, too. OK, different subject.
  • Anyway, during lunch João and I talked about mitochondria. Recently it came to my attention (and there's a dead-basic page up at [www.microbeworld.org] that talks about this) that mitochondria and chroloplasts have their own DNA, and there are hypothesis that say they they actually derive from bacteria that came to coexist within more complex cells. I talked to João about the evolutionary consequences of that. Earth has a lot of O2 and CO2, and therefore, it's easy to see how organisms that consumed those primary gasses could have appeared. The fact that they could then develop this symbiotic relationship with an eukariot is to me, however, amazing.
  • More interesting yet is how different plants are to us and other fauna, and I am led to suspect that a lot of it has to do with how our energy processes work -- for instance, CO2 is abundant in different locations, at different times, and the process for consuming it places constraints on how a successful organism might develop; those constraints (to an extent) dictate the morphology (and other aspects) of plants. João and I talked about the existence of other little prokariot cells that consume other gasses; we know of various examples of deep-sea (barophilic) bacteria that reduce methane and sulfates (I recommend [www.zmuc.dk] as a great paper on this). We also speculated on how we could have ended up with some wildly different creatures on earth if those had been abundant in our atmosphere instead of O2 and CO2 (there's even an article at [www.int-res.com] strangely named "Symbiosis between methane-oxidizing bacteria and a deep-sea carnivorous cladorhizid sponge" that shows that it is at least possible).
  • So I'm left wondering if this doesn't make it much more likely that complex alien life could actually exist. I mean, finding a planet that has similar atmospherical components to Earth is hard, but if we know that one-celled organisms could use other stuff to breathe.. it suddently looks a lot less unlikely to me.
02.12.2007 A Sunday with God
  • Today I am pondering about God. Or rather his existence. Sorry, His existence. I mean -- if He does actually exist -- He gave me an afternoon at the swimming pool with girls in bikinis, and He also gave me a productive morning where I made PQM grant my fix to [launchpad.net]
  • On the other hand, [farm1.static.flickr.com] makes it clear that God didn't provide blankets where they were most needed. I used to take that to mean that He didn't actually exist, but I'm not so sure right now.
  • And today's working hypothesis, slightly inebriated one at that, is that there may not be actually one God, but lots of gods. And maybe that the god that gives blankets takes Sundays off too.
01.12.2007 San'kara
  • Cycled to Santa Eudóxia with Dalcimar, then took a nap, and then checked out [www.myspace.com] and Shanti at this end-of-year edition of the local open-air rave. You weren't there, so you don't know anything about what happened here!
30.11.2007 Or.. do they?
  • Magno is never wrong. So when he saw my post yesterday, he went straight to the crux of the LASIK versus PRK matter: [www.youtube.com]
  • One thing I can never remember how to do is to allow remote users to relay through our server. It's as simple as adding the user to the SASL database, but I can never figure out what the domain is. I finally had the time to find out today: the SASL domain /must/ be anthem.async.com.br. I'm not sure why, and I don't care, but if it works for matsubara, it's good enough for me.
29.11.2007 LASIK, PRK and Cycling
  • And meanwhile (I don't have enough to do) I have started to look into eye surgery. You could ask me why I would even consider that given how great contacts and glasses work. I could then say it's because I keep losing (or ripping) my contacts, or because glasses are heavy and make me look like I'm about to retire, but that's not the truth. It's not because I spend the day looking at a computer screen. It's not because I adore movies and reading and drawing. Those are all things that I can do with contacts just fine. I have mild diopters: -1.50 sphere and -1.25 cyl. in the left eye and -1.50 sphere and -1.25 cyl. in the right. I've not worn any correction for the past month, and I'm not bothered -- it's not a serious handicap.
  • Well, except for the horribly true fact that contacts and glasses are terrible for cyclists. Yeah, I'm aware of just how much they have evolved and improved over the past 10 years, in particular because I was already a cyclist then -- and practically with the same diopters, too. No, the issue, really, is that cycling is this crazy sport where dirt and rain flies into your eye during hours, where you bang your globes out dropping off jagged rocks, and where you occasionally end up in the emergency room (as [www.amigosdabike.com.br] so painfully demonstrates). These particularities make glasses and contacts pretty painfully inconvenient, even if you need the visual acuity to survive through the event.
  • Glasses are great for their stability and protection. It's hard to beat them for value, too. But unfortunately, when it rains or gets muddy, they are useless. You can't clean them or dry them; you can only stick them into your helmet and hope they stay put. They are also heavy, fragile and prone to scratching. Peripheral vision is really bad, which as a cyclist I miss a lot, particularly when looking backwards or around in a pack; if you have rimmed glasses it is worse as you get this stripe of plastic in the middle of the screen. For mountain biking, where you splash around for at least part of any ride, you often end up with your glasses in your jersey pocket and red, myopic eyes full of dirt. And, without glasses, when you hit that technical section with that murderous rut to the left, you only see it when you've already picked the left side.
  • Contacts are great for peripheral vision, and somewhat better in the dirt-in-my-eyes aspect. You still get big chunks of dirt in your eyes, but if you blink madly and endure the sand in them, they clear up. You can wear regular sunglasses, which means you are not locked into your custom-prescription set, and which will still protect your eyes. Unfortunately, they have two very undesireable properties for cycling. First, when a pack accelerates to 70kph, it's hard to keep them in your eyes, and this is why I lose so many. They often end up stuck on my glasses, or melting on pavement. The second, more terrifying aspect to the toric contacts I wear, is that when you are banging down singletrack, they spin ever so subtly. When they spin, you can't see /anything/ for a few seconds, which is damned scary in the beginning and only slightly less so five years later. I can't really prove a unified theory of poor vision leading to bicycle crashes, but I have enough scars that prove I've done serious field research on the matter.
  • And this is why today at 9am I found myself doing a first consultation with a doctor that has practiced eye surgery for the past 13 years, Marcelo Torigoe (of [www.google.com] fame). I had a great time and asked him almost everything I was curious to learn about: risks, healing time, procedure, technology. I had already researched the basics before going on, and I came out with a few interesting considerations for the R$200 appointment:
  • Corneal thickness is really the crucial factor when decising between LASIK and PRK; the fact that you need to cut a flap means LASIK requires a thicker layer of material to work with.
  • Marcelo defaulted to LASIK. He explained that the Bowman membrane stays intact in LASIK, and that photophobia, haze and halos were less frequent with it, and those were pretty much his stated advantages of LASIK. He said his ratio was 80 LASIKs to 1 PRK, which to me was surprising. This kind of freaked me out because LASIK has this serious flap-cutting side to it, though he reassured me it would be safe in altitude or depth.
  • He made a point of saying that I'd not wear contacts for 30 days before the operation, to reduce risk of infection and to ensure the eye was in its natural shape. He also, more worryingly, said no crashing, water or sweat for 30 days after the operation.
  • Modern eye surgery uses an eye tracker to follow the eye if it moves; it used to be that the doctor needed to adjust for this manually (well, with his foot; is that strictly manual?). You look at a bullseye on the operating equipment in order to try and keep your eye still. It appears to work, somehow, since so many people have had luck with it.
  • The operation itself would cost R$2,400 -- which I did not find too expensive, and it would include both a corneal topography and pachymetry done on the day to ensure my eyes looked good enough to cut up.
  • There is newer equipment (which they have) that does custom PRK and LASIK; they have one but haven't used it much yet, and it's a lot more expensive. It sounded like it had better.. uhm.. resolution, but he said there wasn't a strong advantage to using this procedure for my diopters. (He obviously didn't think my diopters were anything to write home about.)
  • He told me I have a little spot in the back of my left eye, about the size of my optic nerve. I hope that's not going anywhere!
  • I still have a few questions now that I have reflected on all this. Is LASIK really safe for a cyclist? Does the flap heal perfectly, or will it always be a delicate membrane glued by the corners, ready to be banged or wrinkled out of place by a crash? Will my eye be less robust because of it? And is the Bowman layer important enough to justify LASIK over PRK? Seems like dogs don't miss it much.

    Though, truth be told, dogs don't ride.

  • (I read through many threads today on the topic of PRK and LASIK while I was waiting for the doctor. The post I found the most quotable at [groups.google.com.br] -- blog school says all classic posts end with a quote -- goes like this:)
     > I think the faster the guy can perform the proceedure, the less
     > invasive he is in performing it.
      
     Invasive is invasive.  The speed of the procedure makes no difference.
      
     Speed is good in a sprint.  It's not good in surgery or sex.
28.11.2007 And back home
  • After almost four weeks somewhere.. no.. everywhere else, I'm finally back home, back to a strange world of bicycles, work and friends. Well, most of my friends, anyway. Sal6 is still out in Australia and I left Keren-Or back in Equador, and god knows I haven't seen Dieter for ages now (eternal shame on him for missing me when I raced the Satellite Tours!), but that's just how it is with best friends; take decades to see them again and you still have everything in common. I am very lucky for having these friends.
  • The last month went by in a flash. I was in Boston for UDS and some Launchpad training with Mary Poppendieck; then about 1h south in Plymouth for Canonical's yearly all-hands meeting. That was mad. Then, after getting stuck in Miami for a day and a night (which was even madder) I rolled into Quito, and from there, to the Galapagos. What followed is.. just not really fit to put into words, because every adjective sounds light, biased or clichéd. So I won't try. But I might post a picture soon!
13.11.2007 Random pausing for just a bit
  • I can't get to Quito because, well.. [www.dailymail.co.uk]
  • I annoyingly cracked my FSA K-Force Carbon crank arm bolt when moving it from my Specialized to my Felt F2, and I have been looking for a replacement ever since. On this trip I finally found one at [smartbikeparts.com] -- the part I wanted was FSA 390-2060, a.k.a. CR3807. I have no idea what the codes mean, but I got exactly what I needed, except that my original bolt was a cheap alloy, and this one is definitely steel.
  • When it comes to airplane security for cyclists, Lennard Zinn said it best at [www.velonews.com]
    You absolutely cannot bring CO2 cartridges on the plane; not even in your checked baggage. Of course, what do you think inflates those life vests under the seats if you pull the tab? You guessed it, a CO2 cartridge! But, as with every airline security rule, ours is not to question why, ours is but to smile and comply.
23.10.2007 Cups Browsing Mysteries
  • So today Roberta tells me, mid-LP-release, that she can't print. There is no LaserJet available for her, which means that our server isn't sending out browse messages, which means something's broken in the Gutsy upgrade. Man!
  • tcpdumping IPP showed me that anthem isn't sending out IPP broadcast packets, but another box (with a dead printer, ironically) was. What's up with that?
  • Gutsy has cupsys-1.3.2; feisty has cupsys-1.2.8; ISTM that browsing for 1.3 must have been updated, because the configuration options are different. For Gutsy, I can use:
     Browsing Yes
     BrowseAddress 192.168.99.255
     BrowseProtocols cups
    but for Feisty, I have to use:
     Browsing Yes
     BrowseAddress 192.168.99.255
     BrowseLocalProtocols cups
    Note that BrowseLocalProtocols /is/ required there. There may be a way to have BrowseLocalProtocols defined as a consequence of some other setting, but I couldn't find out what. The code in scheduler/main.c hinted that it was involved, but oddly enough the source code is indentical in both versions.
  • Also solved my MRTG/SNMP problem with interfaces reordering today: [answers.edge.launchpad.net] -- take note to the hint in the MRTG manual, which allows you to specify interfaces using differing syntaxes: [oss.oetiker.ch]
  • And on a final note: logrotate -d really means debug. I was getting a weird error when testing logrotate on a file:
     creating new log mode = 0644 uid = 0 gid = 0
     open("/var/log/named.log.1", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such
         file or directory)
     error: unable to open /var/log/named.log.1 for compression
    and was scraching my head. Why is this open() missing an O_CREAT? Well, doh -- the file wasn't created in debug mode, and that's why you get this obscure error. Silly logrotate.
21.10.2007 Gutsy and Network Interfaces
  • Upgraded Anthem to gutsy. Rebooted, no eth0. What's up? I spent a long time doing random ifconfigs until I realized that ifconfig -a actually did list the interfaces -- as eth3, 4 and 5!
  • Turns out that /etc/udev/rules.d now has a configuration file that persistently defines what the network interfaces are going to be called. It is regenerated by udev on startup (for the first time, I guess) and you can edit it to specify what you want it to look like. Fixed and restarted udev and they all look good.
  • Also finally figured out what was the deal with specifying interfaces for samba but still getting netfilter log spam: if you don't specify "bind interfaces only" it doesn't work! Read more at [samba.org]
  • Final lesson of the night. If ICMP pings are going through your Speedtouch DSL modem, but TCP isn't, check if the interface isn't set to "napt". For some reason it doesn't seem to do double-napt the right way.
18.10.2007 PostgreSQL and daylight savings
  • So Brazil (for some reason) changes its DST date every year, based on calculations by "the scientists". I use Pedro's very cool tz-brasil package to handle that and it works pretty well most of the time. However, we run both PostgreSQL 8.1 and 8.2 in the server, and the 8.1 servers didn't update their time. What's going on?
  • Turns out that the reason for this is that PostgreSQL has its own copy of the timezone database, and tz-brasil doesn't update that copy (understandably). Martin Pitt explains to me that the reason for this is mostly compatibility with legacy systems, but that for Gutsy he's now just symlinked to the system zoneinfo database, and that upstream actually approved of this change. Whew!
  • Incidentally, the reason 8.2 worked was that its timezone was set to 'localtime' by default, which follows the default system time. 8.1 doesn't let you do that:
     kiko=# set timezone='localtime';
     ERROR:  unrecognized time zone name: "localtime"
    so you are stuck with updating the file.
10.09.2007 30 percent is steep
  • After riding over the unpaved, 30% gradient, mind-numbing Serra dos Lima at this long weekend's race, I was entertained at discovering an article at [www.bikereader.com] which discusses a few 30%-plus ascents across the world.
27.08.2007 Water landings
  • One day somebody told me that there had never been a successful water landing performed by a commercial airline. That's actually not true, as you can read at [en.wikipedia.org] and [dir.salon.com] -- in particular
    If you're flying from New York to Phoenix and you're smirking as the attendant blows into that plastic tube, remember that twice since the late 1980s jets went off the end of a runway at La Guardia and ended up in the bay. Both crashes left people very much alive and very much swimming.
03.08.2007 This TOS stuff doesn't work
  • So much for my apparent success of yesterday! I've found a couple of problems with this policy routing that are driving me crazy. First, Squid fails to put the TOS bits on some packets; while normally the 0x8 that I specified can actually be seen in an ethereal capture (though there it's called the "Differentiated Services Field", it's the same thing, really) in some cases, it just isn't: [www.squid-cache.org]
  • Apart from that, SSH also uses DSCP 0x8 midway in its connection when you are running a non-interactive command (it actually uses 0x8, 0x10 and 0x4 sometimes). This causes my server to also route the packets in the wrong direction! Very frustrating. While I could use netfilter to mangle DSCP away on the incoming interfaces, the fact that squid is giving me the headaches above suggests it's actually not likely to be worth it. Damn. Moved back to tcp_outgoing_address, with an ACL to avoid the host we want to route statically :-(
02.08.2007 It's been a while
  • but I just found a way to fix up squid and iproute2 to actually route the way I want to, and I think that's worth celebrating (and communicating) through a traditional diary entry. So first the problem: our server has two outbound connections to it; connection A is a static IP DSL link, which is pretty slow; connection B is a faster dynamic IP DSL link. We want most web traffic to route through connection B, but certain servers want to restrict per IP, so we want to route this traffic through connection A.
  • The easy solution to this is of course to use netfilter's mangle table and iproute2's ip rules to determine what goes where. We tell netfilter to mangle this way:
     -A PREROUTING -i eth1 -p tcp --dport 80 -j MARK --set-mark 1
    and we tell ip rule to divert this way:
     32765:  from all fwmark 0x1 lookup dsl-home
    To restrict host X.X.X.X to go through the other connection, I just added a specific IP rule:
     from all to X.X.X.X lookup dsl-business
  • This works perfectly, except for one situation: where traffic originates from the server itself, it always goes through the business link. The reason for this is explained in table 3-2 on [www.faqs.org] -- in short, when packets originate on the local host, routing decisions are made before the packets can get mangled, which means the fwmark gets added too late.
  • Now that's such a corner case I would normally not care, except for the fact that we also run squid on this server. That means that all the traffic we direct via squid is actually getting routed through connection A -- which is slow and definitely not whatwe want. So for the past months, I've been using a very hackish solution, which is to use squid's tcp_outgoing_address to put packets on the wire with connection B's IP address. This works, but it's a big hack, and it requires that you actually avoid doing it for host X.X.X.X, because otherwise you're putting packets with connection B's source address on connection A. That means editing two configuration files for each host -- yuck.
  • Today I `discovered' the tcp_outgoing_tos config option for squid. I had not realized that iproute2 lets you do policy routing based on TOS! This actually end up being slightly more complicted than simply setting the same TOS in both places; first, because the squid docs mislead you into thinking that any TOS will do; a message suggests that rfc1349 doesn't agree with that, though: [lists.netfilter.org] and even for squid there's some odd behaviour reported: [www.squid-cache.org]
     tcp_outgoing_tos 0x8
  • Turns out that there is actually a TOS bit in [rfc.net] that makes sense in my case, which is 8 -- maximize throughput. So I set that up in squid and in ip route, and wow, the packets started flowing correctly. I discovered that ping also has a -Q option you can use to test the routing, and it works as expected, which is quite cool.
  • You need to disable the reverse path filtering for any of this (even using tcp_outgoing_address) to work. I'm not sure why, but:
     echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter
  • The unfortunate side to this story is that some connection-B-bound packets, for some reason, still end up on connection A, and what's worse, with connection B's source IP:
     00:55:36.352517 IP homelink.async.com.br.52332 > od-in-f147.google.com.www: R 2679150523:2679150523(0) win 0
     00:55:53.498535 IP homelink.async.com.br.46654 > pain.warhead.org.uk.www: R 2759083133:2759083133(0) win 0
    I suspect it may have something to do with [osdir.com] but I am not sure yet..
23.05.2007
  • Did three months really just go by, or was that just my imagination? Where have I been?! Not New Zealand, like certain other creatures it seems: [www.kikokiwi.com]
25.02.2007 Marmelópolis to São José dos Campos: 181km
  • World hold on..
24.02.2007 Visconde de Mauá to Marmelópolis: 148km
  • After a completely blacked-out night, I left Mauá after breakfast with Sylvia (Ivan apparently never has more than just coffee). I eat bread and spend the morning fighting the burning sensation it gives me. I fail to find a new camera at Mauá; I guess lots of people buy cameras for Carnival. I also forget to buy rehydration powder. I manage to fill my bottles despite all this incompetence, and call my grandmother to say hi and bye. She is lovely even when she forgets everything; she is definitely in the "face adversity with good humor" school and I have tried to learn from her as well as I can.
  • Mauá is a lovely place and I loved its activist community; everywhere you see signs of people rallying for all sorts of interesting and important causes. You feel that nature is well-kept by its inhabitants here; I end up wishing I felt like that everywhere. But in half an hour I wasn't feeling anything but the painful drone over the pass of Serra da Barreira into a village called Mirantão, about an hour out of Mauá.
  • The reason I ended up in Mirantão is that I've been unable to establish whether or not I can get from Maromba to Itamonte. Itamonte is on the other side of Itatiaia, and there isn't much in the way of roads around here; I should be happy that there is a way for me to get there at all without having to ride back to the tarmac of Dutra. I got my mother to try and call some travel agents around there but nobody was able to provide us with a reliable suggestion to go with, and the only story we heard was of someone that spent a whole day on a motorbike to do the 40km trail. Ivan suggested Mirantão, and I'm crazy enough to say sure why not.
  • So on this uphill to Mirantão I figure out that I feel only average today. This is a marked change from yesterday when I was able to attack all the uphills with a vengeance; today I feel sort of flat and it takes a while for the pain to become sharp enough for comfort. It's weird how a dull pain is rarely appreciated in cycling, but there you have it. It's amazing how I only really feel better after some 4 hours of riding -- before that I feel like I am practically dragging myself along.
  • Anyway, I wasn't very sure about this road to Itamonte. I had ruled out this trail from Maromba. I knew there was a trail through a place called Vale da Prata that Ivan had pointed out to me in his crumbling IBGE maps. But it all looked very sketchy, and at Mirantão a pair of guys on motorbikes explained how it was best to go through Santo Antônio; so after some Guará Viton (the black petrol from hell that god sent to save cariocas) I rolled off on that road. Man, was it hard. I'm not saying just "tough".. this was about 6km of really steep, really rocky uphill. I gasped all the way up. It was unexpectedly hard and will remain the second hardest uphill I endured on this trip (I think) -- and that's only because Passa Vinte had make me almost cry the day before. It actually made the 3km of uphill to Mirantão feel like a joke. At Santo Antônio I put on a healthy face and drank a coke at the local bar. I think bars are the only thing you can guarantee that every village will have, and this bar, next to the colourful little square that defines Santo Antônio, was the last sign of practical civilization I'd see before reaching Itamonte, some 3 hours later. It turns out that Santo Antônio to Itamonte is 54km of hard dirt road, and not a lot of locals had ever made the whole trip. My tour guide reassured me "even cars can drive on that road". Great. That makes it sound almost as bad as it actually was. Ouch. Long stretches of sandy flats ended up giving way to rockier and rockier uphills that would fit perfectly into a mountain bike marathon, and then finally a long, twisty and pretty technical uphill unfolded. My chain started to suck a bit at this pint and I was forced to keep ratcheting back and forth; at this point I felt pretty down and a bit depressed at how slow I was going, even after putting in an effort that I knew I'd have to pay for later.
  • But the area has got to be one of the most beautiful I've seen on this trip. Rocks and our native Mata Atlântica are everywhere; birds and butterflies and flowers decorate them. The road levels off finally and then bumps up and down through a handful of villages. One of these little villages has a bar whose owner is discussing VOIP with a customer. I have another coke there; this time it's warm but I am past caring. And then after an endless succession of up and down I reach the downhill to Itamonte, all 20km of it. I swear it's like an hour of no-pedalling downhill, not steep but fast enough to keep you honest. The road here is better, but not excellent, and the ruts and rocks teach me an "exit strategy" strategy. This routine is basically looking at a risky section and figuring out where I want to exit the section; it's really useful because what defines how much you have to brake is what comes after the section you are on (and not really how hard the section actually is). It's all about looking ahead, identifying risks and when and where to exit. Sounds like Barry Boehm and a VC on crack desn't it?
  • Anyway, finally hit Itamonte. It's an oddly small city with a million bikes per capita. I had a cheese-n-egg sandwich and a coke for lunch, and I don't really feel very good in the stomach. Finally manage to buy some rehydration powder from the prettiest pharmacy salesgirl I've met. Bloody expensive too!
  • I endure 20km of the most horrible road to Pouso Alto. I swear that I was in some sort of serious risk no less than 5 times in those 40 minutes of biking! The road is so narrow, the cars and trucks so fast, the vegetation so overgrown.. I have no clue how this nightmare of tarmac doesn't have a collection of crosses decorating it, but I'm not too interested in being the next cross there, so I take it easy and look back a lot. Friggin drivers honking their horns at me! At Pouso Alto I turn off from this horrible road, have another coke (burp) and hear from the man who runs this bar (another bar) that the road to Virginia would be "calmer". Well, doh. Only /one/ car overtook me for the collection of ups and down. This was a seriously peaceful 25km ride once I was past São Sebastião do Rio Verde (which is practically connected to Pouso Alto, really). I stopped only once on this road to appreciate it; this road which would appear to go to many places but which ends up in Virginia because "the gubmint didn't finish it". I wonder how many pieces of unfinished business has been left behind.
  • At Virginia it dawns on me that it is too far to get to Delfim Moreira today. It's getting dark and it's going to rain. I stop at a bar (yes) and get more instructions. So it's not too far to Marmelópolis, and I can probably get food and bed there. Now the funny part about that is that I had just read about Marmelópolis a few days ago in Itaipava, and now I was facing the possibility I would be sleeping there (if I managed to not die en route, which was easier said than done because at this point I had been riding for some 7 hours already). Fascinating coincidence? It rains at the foot of the 11km uphill I am about to face, and for the second time on the trip that little yellow Pearl Izumi jacket is called upon to save me. I clean my chain while I wait for the rain to go away, and it kind of does. The uphill is not too steep and is actually a lot of fun! I trick myself into just looking a the antennae at the far end of the valley and every once in a while I look up and admire how close they are already. There's a beautiful little waterfall on the way up, too. I reach a tiny village and am scared that this is all of Marmelópolis, but of course it's not, it's still some 6km beyond São José da Mantiqueira. I investigate the local bar and buy things that you put in your mouth and go crunch with nutrition or swish with hydration. And then there are signs, and then a steep bit of downhill, and there unfolds before my eyes Marmelópolis in all its splendour. I try and remember what I read about this place.. it used to host a pair of factories that made a sweet out of the Marmelo fruit, but they closed and the city has been asleep since then. But as I arrive the city comes back to life and I am in love with its peacefulness and its people. Hold on, find a pousada. Ring but no answer. Turns out the city's just had a blackout, but the owner's brother comes by and gets the owner to come by and open the place for me, the most humble and yet appreciative people you could find in such a place. As if they were honestly happy to hear your story, and eager to share theirs with you. So the owner worked at Scania, in São Paulo, and came back with his savings to set this place up; his brother lives here as well, with his mother, and they shower me in sweets photos and even a calendar (not sure how that's going to fit into my baggage).
  • That's all I get in terms of showers, though, because there is no hot water, and I've waited so long that it's now dark and real cold. Altitude. We've been chatting for hours, and no, there's no electricity, which is also a big problem for Marmelópolis because there's a major party supposed to run at the local club and everybody's bought tickets and is waiting out for this. We spend long hours looking at the mountains around us and figuring out if the trucks we see belong to the electricity company. So I mention stove-heating some water, because a man has to eat after some 9 of riding, and just as that is coming to fruition.. lights. It's a hot bath for me (luckiest human on earth) and then a stroll through the town for dinner at Monte Moriá. The owner, Jair, tells me about this Jerusalem landmark, while I eat an omelette, rice, beans, fries.. mmmmm. That's what I needed. He tells me about an alternative route, where I will see less tarmac and more mountains, and about the city, and about its history and folklore. I manage to avoid the disco on the way back, where washing and brushing and writing up is enough to trigger a shut down for the night.. night.
  • Marmelópolis is at 1303m, and about 3400 people live here. You need to have been there to see how pretty the stars are on a summer night, though.
23.02.2007 Conservatória to Visconde de Mauá: 123km
  • So it turns out that cycling clothes do not dry overnight, regardless of what is otherwise considered as fact. They are soggy and that's a bit depressing when you are awake at 7am looking forward to breakfast in dry clothes. I towel-dry them, and that does not work very well. Body-drying is a technology which /does/ work however. I have that early breakfast with an adorable housemaid and I pack my stuff. Nobody else is awake in this city. It is very pretty in the morning light. The road starts out up, as usual, and terribly steep; it then levels out enough for me to enjoy it. Some 3km out of the city I view the arched bridge which is an attraction in this area. It was built by slaves, I was told in Conservatória, and the railroad tracks used to go over it. I climb up and see what it looks like from up there. Somebody is building a little house on the right hand side, though you can't see it from below. Survival, I guess.
  • I had decided to change my route, which originally ran due west to Fumaça, to visit this bridge and another important feature: a 200m tunnel through which the old railroad used to go through. And it is amazing! It drips water through, and puddles and a river flow through it. You ride in and only have the light on the far side to guide you, and it's actually not a lot of light. I cross a man on a horse at this point and we wave to each other. I must admit I am happier to be cruel to a bicycle than to a horse. The road I'm following is narrow and twists and turns through the hills; I can only think of the train going through them, hauling cargo to and from god knows where. I pass by a house which has been assembled inside a deactivated railroad station; we have so many of these in my country. This one is called Leite de Souza, I think. The lady is amused at my request to take a picture of her house but in hindsight the sun was in the wrong position and it flares out the shot. I can still remember her holding on to her little baby in the morning light, though.
  • The road is not too hard or uphill and I roll through São José do Turvo and then Santa Rita do Jacutinga. São José is nice and small, but Santa Rita is amazing, and a waterfall runs through the city. This waterfall is walled off and you're not allowed to bathe in it; in fact, you can't even look at it from very close up and I was unable to get a decent shot of it. What is wrong with these people? I think the river is managed by this mining company set up close by and they must have some sort of weird voodoo with the river that they don't want me to see.
  • From Santa Rita to Passa Vinte it gets a bit scary. All I can see are steep mountains that look at me with evil cyclist eating grins, and the road is narrow and full of splintered rock. This is mining country. In fact, the state I have just entered is called Minas Gerais. This road splits up and there are two options announced, one through a named uphill, and one unnamed. I chose the nameless one; if this uphill has a name it's because it's got to be pretty nasty.
  • Turns out my option can't have been much easier. I go through three serious sections of uphill and downhill and it's not only pretty dangerous going down I fear I'll collapse out of heat going up. I can't remember if I used the small chainring here, but if I didn't, I should have, because the uphill that goes into the city is in three long and painful sections which I meditate through, click, click, click. When I finally reach the city I am afraid to say there is not much going on there. I stop at a bar and get the best information a man can get about the road on to Visconde de Mauá, and buy drinks at pretty much every establishment open here. I try and buy some rehydration powder at the pharmacy but they don't have any can you please try the local hospital. I'm in a hurry (what for exactly?) and say thank you very much and then ride off. And the ride is nice because it is mostly down and around and along the Rio Preto with its wide and charming curves. I stop for a while to clean and oil the chain which is a little bit worse for the wear, but still going okay. I pass by all these folks on holidays with their cars full of chairs, children and.. beer; I guess that's what these guys think is a holiday. Come to think of it, can't blame them given I'm giving a demo of the alternatives. But everybody I pass by is friendly (though not very curious) and waves me on into the right direction, and makes nice comments about the weather and how hot it can be and oh, it's a serious uphill to Mauá. I'm like whoa -- 12km of uphill? But that's what they say it is.
  • So I turn off in the wrong direction after a river and a bridge and then I turn off in the wrong direction again. What is wrong with me! I get advice, the second time after I'm some 5km off the track, but this road, it's so beautifully covered in trees, that I forget it. When I finally do get on the right road up to Mauá (no, not really, but I can't remember the name of the little village at the top of this pass..) I have been psychologically prepared for some serious handlebar-hugging but it never comes. There are only two steep sections and I negotiate them by spinning hard before hitting them, and then keeping the cadence high enough to get past them. I use another strategy too: stopping to look at waterfalls! There is a massive waterfall next to the road and I take this 2k detour because you only live once and this is no little waterfall. It's got to be some 500m down at least, and I hike up over the rocks and look at it from many different angles. I tell you man, this is a /lot/ of water. The rains of January are still being washed down the great fluvial veins of Minas, it seems. The uphill to the pass is not too hard; I think I must have climbed in total some 8km over an hour, but this is now behind me as I roll easily across the flat at the top. I run into an electricity truck and they all point me in the right direction (and I'm hungry by now, but I will have to make it). As I descend out of the hilly section at the end of the pass I notice that there is this massive rock towering over me, and from there on Pedra Selada watches me ride through the farmland that you run into approaching Mauá. The rock is particularly striking and once you hear its name you can't help but think it actually is saddled up. I chase a bus down and pass it and I must be going over 40 an hour if he's not keeping up (stopping for everybody in sight as he was, too).
  • I arrive in Mauá early. I run into Sylvia's house just after I decide to eat some of my food as I am just starved; it is right on the road I am coming into and it is a beautiful little cottage with a.. pizzaria right next door to it. You can't go wrong with pizza. Trout pizza, pizza with chèvre cheese, vegetarian pizza... I definitely need the calories. Sylvia and Ivan treat me like a king and I am already spoilt 30 minutes in.. hours later I can only move around by rolling. We spend a lot of time reminiscing about family (and we have lots of that) and the past; her grand-daughters join us for pizza and I can't help but laugh at the age gap. Seems like everybody has an age gap to me; where are all those 76ers I grew up with? And are any of them on a bike today? After 120km of dirt I don't think I can guess the answer to that today.
  • Mauá is at 1300m, population around 6000. The city itself is only a short little strip with shops on each side; most of the population lives in little country houses around it, I guess.
22.02.2007 Itaipava to Conservatória: 151km
  • So on my Carnival vacation, following the tradition of last year's epic ride to the beach, I decided to set up a bike trip from Itaipava, where my aunt Bia and my grandmother Alayde live, to as far west as I could in 4 days of hard riding. The map I bought with Tecão at the bus stop said that was probably São José dos Campos (which is where we ended last year's tour) and after being body-searched by the armed forces while getting into Rio, enjoying a raucous Carnival at Areial with my mother, sister, Crica, Mari, Emilia and Olimpia, and cycling with Brazil's finest Avancinis, I was more or less ready to go. Starting a bike tour is a funny thing, because it's just as if you were leaving home to go for a ride, except you don't come back, and instead ride on until you are past the point of no return. These diary entries will be in installments as they are large and mostly reproduced from a battered notebook which survived the rains on the fourth day (we'll get there), but they are about as much fun as actually going there, and they hurt a lot less to read than to ride.
  • I leave Itaipava at around 9 in the morning. It's hard to leave early when you have all your stuff to pack and yourself to prepare, though this does get a bit easier as you get into the pattern of doing it daily. My grandmother Alayde is lonely all by herself in that big house, as Bia and my uncle are down in Rio for a doctor's visit today. I think many lonely thoughts as I roll out feeling well but a bit confused. I ride past (closed) bike shops (damn, wanted to buy a Presta adapter..), sleepy Itaipava on this post-carnival Thursday, up and around and then finally out to the road where I attacked everybody (on a mountain bike) yesterday and survived with a smile. The road turns off to Araras and then starts going up and down, rolling in the beginning and then it's way up after some 10K or so; it is cold and I wonder if I should have pulled out that rainjacket that yes Michy you give me the most spectacular things but never mind, it's hard going up and I'm only cold because it's 95% humidity around here (as usual). The climb is probably around 15% at parts, and at least 10% average. I grind up in the middle ring (and will only end up using the small ring on Friday, and even then, only for a short while), overtaken by little busses and big pickups, riding up into the clouds. It was sunny when I left home, but here the valley is covered in pretty but dark clouds in those menacing patterns that make you think of Pearl Izumi jackets (like that one yes I have it stowed away way too carefully in my pack). As does the downhill after the unexpected pass (well, it's not so unexpected after you're twisting your frame left and right and looking up in hope of some respite); no, come to think of it the downhill makes you think about that black North Face fleece that you decided to send off via Brasília with the rest of your baggage because it was too heavy to carry. So, freezing hands and back, the road tilts down and DOWN and then it flattens out into Vale das Videiras.
  • So the Valley is the sort of place that the eco-riche enjoy; lots of little restaurants and pousadas and the kind of place that is tastefully painted and clean and delicious and unfortunately not our destination for today. I roll on past Malta and then through a tiny village where the tarmac finally ends. The road from here on is bumpy but hardly sandy, and I'm all questions as to how my little KHS will take the rack I've attached only 12h ago to its seatpost (I will later find that the rack grinded a millimeter off the post across these 600km, which is a rate of around 0.0017 mm/km; a good deal, I think). The rack makes noises and shakes a lot and occasionally swings out to the right (always right. always right. is that my crooked pedalling?) but is remarkably stable for the R$20 it cost a year ago. About this road: the views are magnificent, left and right. Black rounded rock that marks this region of Brazil is everywhere. I roll on to Coqueiros, a tiny village on the crossroads, and then it's actually tarmac into Maravilha. And on that tarmac downhill, once a kombi has ridden past me, something funny happens.
  • My bike is my old KHS, which is OX3 cromoly mostly assembled with XTR plus an assortment of parts some of which actually survive from my S-Works tour bike I used in the Great Travels of 1998. But the wheels are my old racing Mavic Crosslinks, except the rims have been replaced by DT Swiss, because rims don't last forever and even less so when they have two XTR vise-grips, designed by Japanese engineers, machining into their walls. So this bike is sturdy and has seen everything, and just last Monday it has seen a bearing replacement, because on the Sunday ride to Teresópolis and back the rear hub made really scary noises and then blew up completely. Now Crica and Mari drove me around Carnival Monday looking for a bearing shop and we actually managed to buy replacements, and me in my premonitious self buy two because spares are wisdom. And then my wisdom sends this same spare off straight home with my stuff because, yes, bearings are too heavy to carry around. Except that now, on this tarmac downhill into Maravilha (and only the portuguese-speaking can appreciate the irony), the bearing starts to make the same ominous noises. It sounds like little bones are being ground into the thing which they make Jello out of. Or maybe like the premature end of a bike tour. So I am depressed. But I roll on despite the noise, and the fact that my rear wheel has developed this pretty nasty wobble that at times rubs the right stay.. you know, it's OX3. Nothing can really harm it. A kid rolls by me into Maravilha and tells me that's what the place is called, no serious it really is. He rolls by me on a little BMX, and him and I know that it has no brakes which means skidding is the only way of stopping. I ask him, only half-jokingly, where I can find a bike shop, and he shows off his little-proud-blue and brand-new grips and says that at Paty do Alferes is where you get them. I conclude I must visit this shop.
  • So as soon as I get into town I roll down the cobbles, which means Unlock ETA on the Marzocchi because it's hard when it's that bumpy, and my hands were a bit numb this morning, probably because of the extra effort to hold the weight attached to seatpost, yes? I pass a typical small-sized town in Brazil. Lots of construction. Real estate. Everything for sale. Brazil rolls on too, regardless of crisis and scandal and success in my world it seems. I ask around and end up at the bike shop. I am destiny's fool today too. The bike shop is not what me, urban creature extraordinaire, am expecting, because not one bike in it has a quick-release skewer, and that is a simple way of saying bad news to a cyclist. So I try easy things first, and ask the guy who runs the shop if I can use his wheel truing device (which is doubtlessly and then confirmed of course to be a contraption machined out of a fork and some custom aluminum adjustment bits attached to it via complicated wires and plates) to try and get it straightened out, and he says that no, we don't do this sort of thing around here, you leave the bike and then you pick it up later. But this is Brazil, so I say "no, no, I can do this, really, and I can pay for the time I use the stand" and the guy says ok. So I fix the wheel as well as I can, except that it only depresses me further because the crackling noises and loose axle are self-evident as I spin and true it. Why am I even bothering? Well, because. And easy things first.
  • So I try and take apart the rear hub, and it's easy to do this on the Crosslink. But the left-hand bearing is fine, so we're going to have to disassemble the cogs, and though he miraculously has a cassette tool (what for I wonder) he lacks a chain whip. Well, chain whips are easy to cobble, and a bit of chain and a wrench make up for it. Out come the cogs, off I spin the nut that holds the bearing in place inside the freehub body, and.. oh. Out come lots of little steel balls and three almost triangular sections of a cylinder, which are obviously a cracked inner ring. But this is a sealed bearing hub, you see. These things aren't user-serviceable. They live their precise little lives inside walls of steel and virtually nothing but nuclear impact makes them come apart. So it's like when you look at your patient and you see his pancreas and spleen without an x-ray: you know it's gone the way of Mr. Eko. But hang on. I had just replaced this bearing last Monday. WTF?
  • So here I am standing inside one of the most understocked bike shops in the world, with a cartridge-bearing wheelset disassembled, and a very specific cartridge bearing that looks more like army shrapnel. How do I get myself in these situations? The bike mechanic is sympathetic in a really cool way and him and I end up having a great time musing about ways to fix the wheel. You can't really put ball bearings into a used cartridge, and particularly one which is in bad a shape as mine. So I instead walk over to a gas station closeby, axle and bearing bits in hand. There are two gas stations and both apparently sell automotive parts, but I choose the one on the left. And at this station there's a shop, where in turn there's a guy peering into a computer screen and I greet him smiling (you have to be positive when you're as busted as I am). He half-ignores me, then comes around to looking at me. So yes sir, I am looking for a bearing replacement. What's the code? Uhm, well, this is all I have of it. Display axle and mangled bits of metal. Eyebrows. I need a code if I am to locate a bearing. Well sir, unfortunately this is all that's remaining of the bearing; can we not do some measurement and searching? Young man, we seem to not be communicating. I say I need a code to locate this bearing, and you have none. What application is this for? It's for a bicycle wheel. Oh, then. Bike parts are found in the bike shop.
  • So I look at him feeling like 65 cents. Instead of cursing him, though, I measure the bearing, try to find it in a catalog, and when I conclude he only has bearings slightly larger than mine, I give up and walk away with his unfriendly replies stuck in my head. At the bike shop the mechanic is sympathetic again and asks me what I am to do. I consider this myself; call home? Catch a bus? Find a job? Meanwhile he is busy opening the counter and looking at a bottom bracket. Not a 2007 XTR BB I tell you. But inside this bracket you can see a little cartridge bearing. And you won't believe that it's exactly the same size bearing as I wanted, either. Well, neither did I, but it fit and after some copious hammering (yes, you often need to use hammers around this KHS) the old bearing was out and the new bearing was in. That's the way you fix things! Perhaps most curious was the discussion about pricing of this bearing. The mechanic tells me that yes, the bearing works, but that I'll have to pay a steep price for it given I've rendered the BB useless. I say whoa, here goes my lunch money. I am in the worst possible position to negotiate and prepare to shell out hundreds of reals. Then he does little calculations, and you can see the numbers bubble up in the ether of his thoughts. And he tells me: R$9.80. No, really. And all this while, the truth in the gas station salesman rings in my ears. Bike parts, bike shop. Doh. The mechanic even finds me a spare bearing in a box before I leave. I smile, confident that I've just confirmed that God actually exists. And on with this cycling business.
  • The road between Paty and Miguel Pereira is run alongside a set of deactivated railroad tracks which double as a bike path. Miguel and Paty are an odd continuum, even though there's supposed to be some kilometers between them, and I catch glimpses of bike shops over my shoulder. Maybe I'm not so out in the sticks after all. Miguel is a charming little town and pity it doesn't have a disposable camera for sale so I can show people just how much. Fair enough, my memory is my personal prize. So I ride along the road to Vassouras. It's hot and sunny but I hammer it out, faux aero-bar position just like Floyd taught us last year. The road rolls around and down, down and down, right, left, and I'm in Vassouras, university city which wins today's picturesque city square contest. And I finally buy a camera to prove it! Another irony: the bike shop here actually has the brake pads I've been trying to buy for a week, and it costs R$5 and change. I am being spoilt by this place. The pads are GTS brand, which my friend Gaucho always finds good things to say about. I figure they could improve, but at least they are still "starting". I forget to buy the Presta valve adapter though. Again. Roll away anyway, and off to Barão de Vassouras, and then to Juparanã, where I cross the Paraíba river in an odd but lovely bridge. I take a snapshot of the tracks and the river underneath it. It is sunny and very hot and I love being here.
  • I hammer along into Juparanã, over cobbles and around a square and somehow Ms. Tatoos and Mr. Bike can't seem to agree on the best way to advise me to get to Conservatória. I laugh, and it's the third time I ask anyway. Juparanã is charming but strange, as if it's a ghost town stuck in the wake of Carnival. The road climbs up and it's not too harsh, and then it turns into a hot and rolling race on tarmac. I must have been overtaken by at most 3 cars in the hour and a half it takes me to dust this section. The road is great until it disappears into craters and then it is great again; I muse how hard this must be to drive on, and it reminds me of driving to Ouro Preto two years ago, stuck on these secondary roads that cyclists love and drivers hate. I make it to the end of the road unscathed and then left towards Barão, but I turn off into the dirt road of Conservatória. 120km and almost there. It is a hard ride up and down, or maybe I'm just not used to being off-road. Conservatória takes a while to show up; I'm tricked into detouring to look at a waterfall which is really more of a pool, and it's not an easy ride up, but I have matches to spend still. That is, until I realize that Conservatória is not close! In the end I get there. It's a lovely little cobbled town, musical in every aspect, and with houses that are named and not numbered. You need to go there one day. And send me a postcard. I stay at the nicest pousada, and it's expensive but worth it; dinner is at a portuguese restaurant that is charming and delicious and serves tortillas like Emilia would have me eat after a long day like this. I complain very little tonight, 150km and change. Laundry, swap those brake pads and I am a dead man until tomorrow.
  • 150km in 7:25 (20.2 kph). Heart rate averaged 126, maxing out at 172 (I think out of Araras). My CS-200 tells me 3976 calories. Conservatória is at 518m; population 6500.
09.02.2007 TV on the Radio
  • Is so good it hurts. Don't walk, RUN and steal some of their music today -- while you still can <wink>.
07.02.2007 Ouch
  • My right thigh hurts; I think I have tendinitis somewhere in my sartorius.
  • I h8:
     ProgrammingError: ERROR:  for SELECT DISTINCT, 
         ORDER BY expressions must appear in select list
  • But I <3 science: [www.eurekalert.org]
    Harvard University psychologist Ellen Langer and her student Alia Crum found that many of the beneficial results of exercise are due to the placebo effect.
06.02.2007 First race of the year
  • And two crashes later I finish second and 22nd overall: [www.marcioravelli.com.br] -- my conclusions? a) 12 minutes off the pace b) base training makes you slow c) Larsen Mimo tires up front are too dangerous for me d) all eyes rest on March. Pictures up at [www.ativo.com] and [www.ativo.com]
02.02.2007 U R what U 8
  • Remember that thing about me having plotted my blood tests in a spreadsheet? Well, I just discovered that Scientists also suggest that "Vegetarians and semi-vegetarians are less exposed to cardiovascular risk factors": [www.ijathero.com]
  • Being a vegetarian is even good for the environment. I think TGI should factor that in to avoid me having to plant 100 trees a year :-/ [www.ambientebrasil.com.br]
01.02.2007 All that suffering works wonders
30.01.2007 Never let culture stand in the way of TV
29.01.2007 Fashion reigns, but fashion rains?
  • You won't guess that I was at [www.spfw.com.br] this weekend. I was on biking holidays (for the first time in some 30 days too) and Emilia and Olimpia were down in São Paulo so I took the bus down on Friday evening and spent the days roaming the city. You always spend horrendous amounts of money in São Paulo, though this weekend was cheaper than usual because the fair was free (and the freebies were fun too). We saw Anish Kapoor's São Paulo exhibit (I had seen the one in Brasília which is very similar but has some peculiar differences in positioning and setup). We were late to the play that Emilia is performing this weekend and that was a pity but I have seen Autumn, Winter (by Lars Norén) before so not a complete catastrophe. Many other wonderfully bizarre things happened over the two days; one that immediately comes to mind is watching leadout man Chamorro (for Sundown) actually win Aberto da República in Brasília after dropping the favorites and his main man Morcegão in the final push to the line. I have never seen this happen before in a race.
  • Also presenting at SPFW was The Green Initiative, Osvaldo's reforesting project that has been making waves all over. The cool thing about TGI is that they make it easy for anybody to calculate how much they would need to plant in order to neutralize their equivalent six-month emissions, and it's trivial to actually go ahead and sponsor the reforesting for that amount. Very smart.
  • Apart from that it rained. It is raining here today too. Excessive rain sucks, and we've had way more than an excess this year. It hasn't rained fish yet though: [en.wikipedia.org]
28.01.2007 It almost happened
  • If Adam hadn't spoken to the cowboy, it would have all been shut down.
26.01.2007 Dismemberment pickups
  • I mean, Dismemberment Plan and Silversun Pickups. But I keep hearing Boards of Canada in them..
25.01.2007 An anecdotal investigation into NFS performance
  • Johan often complains. It's sometimes because of NFS. Today Johan pointed out to me that issuing a copy of a working tree over NFS was really slow:
         jdahlin@walrus:~/dev/sicem$ time cp -r gazpacho gazpacho-2
         real    2m9.621s
    and I was intrigued as to why indeed that is so slow. It's an average-sized tree: 33MB, and it contains about 2500 files. So why does this copy, which takes about 3 seconds on the server, take so long over NFS? The short answer is that file creation is synchronous, and I have tried to start a thread about this over at [marc2.theaimsgroup.com]
22.01.2007 Transform null equals?
  • Today was a day of many WTFs. So you tell me what's wrong in this picture?
     launchpad_dev=# select * from bug where owner != NULL;
      id | ... | date_last_updated 
      --------+-------------------
      (0 rows)
      
      launchpad_dev=# select * from bug where owner = NULL;
      id | ... | date_last_updated 
      --------+-------------------
      (0 rows)
      
      launchpad_dev=# select count(*) from bug;
      count
      -----
         10
      (1 row)
    Yeah. Salgado and I were bitten by this "feature" today in the karma cache updater and I just found it so dangerous that I have got to question the value of having this in the SQL standard for anything but cuteness. There's an option in PostgreSQL that gets the sane behaviour back: transform_null_equals. The funny thing is the only result you get back when you query for "transform_null_equals" and braindead is (as usual) a comment about Microsoft: [www.google.com]
21.01.2007 Google: Cinema São Carlos
  • "São Carlos produz 1º filme inteiramente local": [overmundo.com.br]
  • Our apache dies every time logrotate runs. The logs tell us this:
     [Sun Jan 21 06:25:24 2007] [notice] SIGUSR1 received.  Doing graceful restart
         accept_mutex_on: Identifier removed
     [Sun Jan 21 06:25:24 2007] /usr/lib/apache-ssl/gcache started
     [Sun Jan 21 06:25:24 2007] [error] (2)No such file or directory:
         mod_mime_magic: can't read magic file /usr/share/misc/file/magic.mime
     [Sun Jan 21 06:25:24 2007] [notice] Apache/1.3.34 Ben-SSL/1.55 (Ubuntu)
         mod_filter/1.4 PHP/4.4.2-1build1 mod_auth_pam/1.1.1 mod_perl/1.29
         configured -- resuming normal operations
     [Sun Jan 21 06:25:24 2007] [notice] Accept mutex: sysvsem (Default: sysvsem)
     [Sun Jan 21 06:25:24 2007] [alert] Child 7177 returned a Fatal error...
         Apache is exiting!
    Funny thing is, it happens to a bunch of other people as well: [blog.gmane.org] [www.wlug.org.nz]
13.01.2007 If you REALLY need to use PHP
  • Then don't do as I do:
         $open = 0;
         $filename = "../DIARY";
     ?>
     <!-- BEGIN_DIARY -->.
     <TABLE CELLSPACING="0" CELLPADDING="5" BORDER="0">
     <?
         $fd = fopen($filename,"r");
         while (!feof ($fd) && ( ! $count || $i <= $count ) ) {
             $buffer = fgets($fd, 4096);
             if ( ereg("(^[0-9][0-9]\.[0-9][0-9]|^TODO)", $buffer) &&
                  ( !id || ereg("^$id", $buffer))) {
                 $open = 1;
                 $buffer = explode(" ", $buffer, 2);
             /* open day block */
     ?>
       <TR><TD CLASS="diaryhead">
       <A HREF="diary.html?date=<?=$buffer[0]?>"><?=$buffer[0]?></A>
  • Instead do as I say: use a templating system like Smarty or FastTemplate.
         <div>
           <p><b>{t}Last 24h{/t}</b></p>
           {if $24h_ip}
           <table id="TopIp">
             <tr class="Header">
               <th></th>
               <td><b>{t}IP{/t}</b></td>
  • Every time you use inline HTML in your PHP scripts, god kills a kitten. If you won't do it for me, do it for the kittens.
12.01.2007 Hand crafting
  • The ACM Queue supplement of this month, on the topic of 2007 development tools, has an editorial that says the following:
    The era of handcrafted code and tests, and then a hand-off of code via uncoordinated linear processes into production, is coming to an end.
    Really? Does anyone see an end to handcrafted code and tests? Not in the Free Software world, I don't. In fact, I see less and less code and test generation tools, while I see more and more abstraction in the form of frameworks and libraries.
  • Speaking of which, I finally hacked up an RSS feed of my diary. Blame Fabio C. P. Navarro for reminding me that it wasn't that hard. It is actually one of the ugliest hacks I've ever produced, and yet I am still proud of it. Yes, it too was hand crafted.
10.01.2007 Window scaling?
  • One of our clients is using a satellite link which carries Windows packets perfects, but not Linux packets. Why? Turns out the issue is some router on their outgoing path which doesn't handle TCP window scaling (as specified by RFC-1323) correctly. The horrible workaround is to disable window scaling on the Linux hosts.. but Dave M. would frown: [www.ussg.iu.edu]
  • Or could it be tcp_timestamps? There's some evidence that can be problematic with broken routers as well: [antionline.com] [www.squid-cache.org]
09.01.2007 Speaking of fighting back
  • It seems Daniela Cicarelli and her co-star in their "home" video (available everywhere on the Internet you care to look) have managed to "fight back" and get YouTube banned across Brazil! It's more a beach video than a home video, to be honest: [exclusivo.terra.com.br]
  • I noticed this on the cover of the newspaper when I was out buying food for Olivia this morning and I have got to say this is wonderfully insane. I guess there are two sides to it. On the down side, there is a lot of great YouTube.com content that we're going to have to miss out, but on the upside, you have many options to grab the amateur video elsewhere: [www.mininova.org] [www.mininova.org] [www.mininova.org] [www.mininova.org] and, oh yeah, Google, who owns YouTube still lists the video, anyway: [video.google.com]
  • What can I say. Thank god for effective protection of privacy? I wonder how much effort it would take to knock down Google, come to think of it. Zuardi has more to say about this, in softer words and a sweeter language than I do: [idomyownstunts.blogspot.com] and somebody's actually registered a boycott domain already: [www.boicoteacicarelli.com]
  • BEST MUSIC TITLE EVER: [cchits.ning.com]
  • If you think you might enjoy Goodbye The Band, since the track above is lost and gone, try this: [ia300031.us.archive.org]
  • I bought a Kong toy for Olivia today. I'm reading about stuffing them, which apparently is something of an.. art? [dogs.thefuntimesguide.com] Wonder if I got the right thing? This guide actually says that "Kong Toys Are The Best Toys For Dogs": [dogs.thefuntimesguide.com] ... but... an automatic dispenser? [www.sfgate.com]
08.01.2007 Fighting back
  • Hardware hell almost took over my weekend but I fought back and won. Upgraded the drives in the server to 73GB and added them one by one to the Raid-5 doing the musical chairs routine. It was unfortunate that along the way I got the SCSI transmission blues: I replaced the SCSI cable for a cable with more positions, then replaced one hard drive, then replaced the next, and that's where the SCSI errors appeared. I rebooted out, swapped the cable for the old one, and the errors went away. Swapped the rest of the drives. Swapped the SCSI cable back in. End of problems. Go figure!
  • Here's a bonnie++ run of the Raid-5 with the new Atlas Vs:
            ------Sequential Output------ --Sequential Input- --Random-
            -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
       Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
      7592M 18494  59 28195  34 21676  26 40032  92 74555  21 596.9   1
            ------Sequential Create------ --------Random Create--------
            -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
      files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
         16  2662  98 +++++ +++ +++++ +++  2746  98 +++++ +++  6460  97
    By looking over the internet I notice that the performance I'm getting isn't actually that great (I've seen setups that do twice the sequential read and write speed we do) but.. I'm not sure why.
  • Was reminded by [groups.google.com] of how to copy partition tables using sfdisk. It's actually too trivial:
    sfdisk -d /dev/sda | sfdisk /dev/sdb
  • Then discovered what /etc/iftab (and iftab(5)) was meant to do, and stopped the interfaces dancing around every time I rebooted; it was almost completely random, amazingly.
  • VMWare refuses to run over SSH on my PowerPC mac, and I haven't yet found out why. I discovered today it does run on my laptop, but only after I added the infamous
     xkeymap.useKeycodeMap = "TRUE"
    option to my ~/.vmware/preferences. Go figure. Funny thing is that Gustavo's email to the redhat list is what reminded me of it: [www.redhat.com]
  • I then got the new VMWare tools installed; I liked seeing that it actually allows you to shrink virtual devices (though I don't need to right now), and that it installed easily after I added a CD-ROM to the virtual machine (who knows why? I had a virtual CD-ROM there but it didn't work) and did the Add/remove programs thing.
  • I hear thunder on the horizon.. oh-oh.
05.01.2007 A Crater
21.12.2006 7 meters of rain
  • [www.agencia.fapesp.br] should make London residents feel better: 7000mm of rain fell in 2000 in an area in Calçoene, in Amapá, northern-most state in Brazil. That's like twice as much the second-most-rainy place registered, which is around Panapiacaba, near São Paulo capital. One interesting fact in the study is how much rainfall varies across the Amazon region: some places have almost desertic profiles, whereas others are almost as.. good.. as Calçoene.
20.12.2006 MySQL repair man of the day
  • I had to fix some corrupt MySQL tables today. If only I knew how. I was running into a problem: any insert into the bugs table for Bugzilla told me the following:
    Duplicate entry 'NULL' for key 2
    Thing is, there is no key 2 for the bugs table. Scratch head, right? Oh-oh: [forums.mysql.com]
  • Turns out there are two great commands for MySQL I had