The diary

15.12.2009 Evolution and Google Calendar
  • This works the way you'd expect, just adding a new calendar in Evolution, and it syncing automatically to the calendar applet. But there are a few caveats to it:
  • Google provides you with https:// URLs; Evolution expects them to start with webcal:// and will unhelpfully tack on the method in front of the URL for you, so you end up with something that starts with [https] -- yuck. Just delete the https:// in front of the address and everything works (though I am surprised it does, as I'd expect it to be SSL-only -- oh well). I didn't use Secure connection and it still worked -- don't know if it should but I'm not pretending to know what I'm doing here!
  • If it doesn't work, I bet your system provides settings for a network proxy. For some reason, this doesn't work for calendaring -- perhaps [bugs.edge.launchpad.net] has something to do with it -- but the workaround is pretty easy, just don't use a proxy for Evolution, or provide details there manually.
  • Whatever you change, it appears you have kill the additional processes Evolution spawns to actually have them pick up the changes. At least I did knock out evolution-data-server and evolution-alarm-notify for good measure.
  • If something goes wrong, you get notified of a problem with the ics URL through the statusbar, which might be a bit unexpected -- if you click on the icon in the statusbar you get a dialog with more details -- in my case, a connection problem.
10.12.2009 WCDMA and UMTS
  • For Brazilians, the important thing to remember is that 3G frequencies vary according to operator and location, and [www.gdhpress.com.br] tells you more about that sort of thing. In general, for my operator, Claro, north american versions work, but that means no E52 for me, since the US version isn't out yet.
09.12.2009 mdadm, USB and SCSI, UUIDs and initramfs-tools
  • We've had a problem with our Ubuntu server since last year when I bought an external USB drive to handle rdiff-backups: when the bootup process starts, if the USB drive is plugged in, the RAID-5 arrays we have get confused because the drive names change -- normally sda is the first SCSI drive, but since probing is asynchronous, when the USB drive is detected first it's the external drive and mdadm fails into an initramfs shell. That's not nice!
  • A separate problem we were also running into was that the spare partitions, which normally live in /dev/sde, were not being automatically added to the array (even when the USB drive wasn't connected and the bootup succeeded) so I had to add an ugly rc.local command to add them in. This is similar to the issues found at [bugs.edge.launchpad.net] and [ubuntuforums.org] but not quite the same, as mdadm.conf's DEVICES entry actually included the spare drive.
  • So from 7pm to 11pm yesterday Johan and I worked on figuring out exactly what was causing this. And it turns out that it was a combination of two things, both related: the mdadm.conf ARRAY definitions, and a race condition during the initramfs process between the RAID autostart and the module-based kernel hardware probing. Here's how it works.
  • Ubuntu starts and mounts its RAID arrays in an initramfs. The initramfs image is packed with a set of shell scripts; the image is assembled from a bunch of code in /usr/share/initramfs-utils, primarily scripts with additional hooks that are run during the initramfs image generation and which modify the image itself. Anyway, while in the initramfs, the following happens:
  • Between initramfs' init-top and init-premount phases, it loads all essential modules. It knows to load the RAID modules through the work of hooks/mdadm (installed by the mdadm package), which adds them to the essential module list inside the initramfs. It knows to load the USB and SCSI modules because by default Ubuntu uses MODULES=most in its initramfs configuration.
  • Now, module loading order is deterministic, but in Ubuntu the SCSI probing is set to asynchronous (via the kernel option CONFIG_SCSI_SCAN_ASYNC=y; see [lwn.net] for details) the actual drives show up as the bus scans are finalized.
  • Meanwhile, in init-premount, a udev script fires off udevd which goes away and kicks off 85-mdadm.rules' RAID assembly, using mdadm --incremental. This is a pretty magical mdadm mode, and a read through the manpage section is pretty interesting.
  • Also in init-premount, an mdadm script checks for degraded RAID and LVM devices, and figures out whether or not to try and run degraded arrays. It does this by scanning the RAID superblocks using mdadm --misc --scan --detail.
  • After loading the modules, a script is run to mount the local filesystems; on non-NFS systems this script is called "local", and this is where we see if the root device is present and mountable.
  • After all this is done, the init-bottom scripts are run; here is where the udevd process is killed and whatever handling of the available hardware stops until udevd is started again.
  • The problem we are running is that the initial SCSI bus probe is done in a flurry of asynchronous activity; if you stop and read your kern.log after a reboot you're find out just how random the ordering is. What can happen on systems with lots of drives (such are ours, which has 6) is a race between the SCSI bus scanning, udev's triggering of 85-mdadm.rules and the killing of udev after the root filesystem is mounted. The race happens because the bus scan is asynchronous, which in turn means that the devices (which if you noticed above, are being added via mdadm --incremental) might take too long to show up -- long enough that udevd is killed and the real init starts trying to mount the rest of the (still incomplete) local filesystems.
  • To solve this, we simply added a script which sleeps for 15s in initramfs' local-premount; this is enough time for the hardware probing and udev rules to complete firing, ensuring that all RAID devices have been assembled and are available for mounting once /sbin/init kicks in. Simple but does the trick. It is likely that changing the scsi_mod scan option to "sync" would also solve this part of the problem. Yet another option would be to load the scsi_wait_scan module in local-premount.
  • We had an additional problem, which was that our mdadm.conf file specified sdX-style partition names for each ARRAY:
     ARRAY /dev/md2 devices=/dev/sda5,/dev/sdb5,/dev/sdc5,/dev/sdd5
    This doesn't play well with mdadm's --incremental mode when the drive order is changing around -- so when the USB drive appeared as /dev/sda the array could never be initialized and we failed to mount the root device. Changing the ARRAY line to refer to the MD device through a UUID solved this problem:
     ARRAY /dev/md2 UUID=b3b855d3:d8ee85f4:2ee19fc3:ff71564e
    As a nice side-effect once we made this change, mdadm --incremental started assembling our spare devices into our arrays: I had never been able to specify spares using the devices= syntax.
  • I suspect that in part [bugs.edge.launchpad.net] is caused by the on-demand nature of the module loading, but I'm not entirely sure -- perhaps specifying an explicit DEVICE line in mdadm.conf causes each device to be hit, which in turn means the right modules are probed. But I think it's actually a red herring, and that in fact the problem is with the modules Jan was missing in the initramfs.
  • Finally, it is strange but true that in the cases where mounting non-root local filesystems failed because of the udevd race, udevd in userspace never kicked the incremental mdadm again to finalize the running arrays, and even when running cat /proc/mdstat from the prompt, you could also see they were left incomplete or lacking spares. I'm not sure why this happens.
08.12.2009 Bad source addresses on my local server
  • Since a few reboots ago we ran into a pretty annoying issue on our server: packets originating on the server that were delivered to the server itself, handled by lo, were using the wrong source address. In more detail: our internal address for the server is 192.168.99.4. If when sitting on the server and I did:
     kiko@anthem:~$ telnet 192.168.99.4 80
     Trying 192.168.99.4...
    the connection was never completed. If I looked at a tcpdump trace
     17:18:17.439479 IP 189.x.x.x.42826 > 192.168.99.4.80: S 2220677816:2220677816(0) win 32792 mss 16396,sackOK,timestamp 6978218 0,nop,wscale 6
    it became clear that the wrong source address was being selected. But why?
  • I spent a lot of time reading and rereading the source address selection descriptions at [linux-ip.net] and couldn't figure it out. Everything in my routing tables was kosher -- and even if I cleared out all our fancy ip balancing rules and used plain turkey kernel and default gateway rules, the address was wrong. The src hints were there. There was no funky ordering issue. So why was the address wrong?
  • I finally read a slightly unrelated post at [lists.unix-ag.uni-kl.de] that gave me another idea: NAT! I hadn't thought of this possibility, nor did I recall changing anything there, but it was worth a try.
  • Turns out it was exactly that. I had a rule which said that:
     -t nat -A POSTROUTING -s 192.168.99.0/24 -o !eth1 -j MASQUERADE
    This would have worked perfectly if the packets were actually going to eth1. However, in the case where you are on the server connecting to itself, the packets go to the lo interface, but with eth1's source address 192.168.99.4, which matches that rule -- oops.
  • There are various solutions to this problem -- the one I went with was simple, specifying a destination network of ! -d 192.168.99.0/24 -- in other words, we only masquerade packets that are actually meant to be routed elsewhere. I could also have specified two ACCEPT rules that came before the MASQUERADE rule, avoiding masquerading for eth1 and lo simultaneously.
  • The trickiest thing with masquerading is that changing the rules takes a while to actually kick in -- it's not instantaneous. So if you change the rule and run the test immediately, it will fail -- but if you wait a litle bit you'll see it's actually fixed. Gar!
  • The morals to the story are
  • a) source address selection is also affected by IP masquerading even if the documentation doesn't remind you of that
  • b) when a host connects to itself, the lo interface is always used, even if the address being used to connect is not 127.0.0.1, and
  • c) it takes a while for iptables rule changes to actually take effect, so wait a while before actually testing them!
03.12.2009 Google Calendar on the Ubuntu Desktop n more
  • [johnnyjacob.wordpress.com]
  • When your sound goes bad, "sudo alsa force-reload" to the rescue!
  • When your xchat completion is weird, use "/set completion_amount 0"
23.11.2009 Git crack HEADs
  • Maybe git knows that I don't actually want to be using it:
     kiko@baratinha:~$ git clone [gitorious.org]
     Initialized empty Git repository in /home/kiko/x11-maemo/.git/
     remote: Counting objects: 241288, done.
     remote: Compressing objects: 100% (73222/73222), done.
     remote: Total 241288 (delta 191071), reused 214443 (delta 165447)
     Receiving objects: 100% (241288/241288), 186.11 MiB | 64 KiB/s, done.
     Resolving deltas: 100% (191071/191071), done.
     warning: remote HEAD refers to nonexistent ref, unable to checkout.
  • I wonder what it means when I have just spent 30 minutes downloading revisions to end up with no working tree! #$!@#@
26.10.2009 Saris Poweragent woes
  • Every once in a while I end up unable to download my PowerTap power files because Poweragent can't contact the PT head. Today it's giving me a traceback:
     WARNING [com.cycleops.jpowertap.Manager]: Exception Occurred Opening Device 0
     java.lang.NullPointerException
         at com.cycleops.jpowertap.CycleOpsDevice.readVersion
             (CycleOpsDevice.java:313)
         at com.cycleops.jpowertap.CycleOpsDevice.getVersion
             (CycleOpsDevice.java:286)
         at com.cycleops.jpowertap.CycleOpsDevice.getVersionFloat
             (CycleOpsDevice.java:387)
     [catch] at com.cycleops.jpowertap.Manager.getConnectedDevices
             (Manager.java:138)
         at com.cycleops.devicemanager.DeviceManager.getSelectedDevice
             (DeviceManager.java:52)
         at com.cycleops.devicemanager.DeviceManager.getSelectedDevice
             (DeviceManager.java:41)
         at com.cycleops.devicemanager.DownloadDeviceAction.performAction
             (DownloadDeviceAction.java:83)
    Wish I knew how to fix this.
21.10.2009 A Nokia E51 as a Vonage Softphone
  • So today I set up my E51 as a Vonage Softphone sip client; the instructions I followed were up at [www.esato.com] and [www.vonage-forum.com] and apart from the fact that I got the password wrong, because in their wisdom vonage.com prints the password in a non-serif font (meaning lowercase L and uppercase I are kinda impossible to distinguish) it works really well. The other thing to watch out for is that the domain is "sphone.vopr.vonage.net" -- if you use just sphone.vonage.net the registration will be successful but you won't be able to dial.
  • The only bummer is that the international call rates are not the same as for the main service (that's kinda fine-printish but oh well). But hey, the portability is hard to beat..
  • Read a little bit about the ToS IP field: [forums.whirlpool.net.au] -- I used this to grok the instructions at [www.voip-info.org] which basically is a real upgrade from basic wshaper for VOIP; basically it puts the VOIP traffic in a non-balanced queue, and everything else in an HTB-set set of classes -- I read [www.opalsoft.net] to really understand how the whole thing works, and it's actually pretty cool.
  • Upgraded the E51's software via Windows using a couple of hacks as well. Used NSS to change the product code, then ran the upgrader and presto, it all worked. Took a /long/ time but in the end it paid off -- the new firmware's VoIP stacks and applications work really well.
09.10.2009 Booting USB drives on old BIOSes
  • In preparing an old server to sell off today I actually ran into a problem which apparently affects lots of old computers: the BIOS, though it supports bootable USB drives, is really picky about the drive geometry. After swimming through a collection of links like [brainstorm.ubuntu.com] and [help.ubuntu.com] I started tackling the trial-and-error that fixing up the geometry implies -- reading through [www.sudhian.com] and [www.911cd.net] for inspiration. And after 5 tries, I actually managed to get something that worked:
     16 heads, 63 sectors/track, 1986 cylinders
     Units = cylinders of 1008 * 512 = 516096 bytes
     Disk identifier: 0x00000000
     .
        Device Boot      Start         End      Blocks   Id  System
     /dev/sda1   *           1        1986     1000912+   6  FAT16
    Woot!
  • Of course, It Never Works The First Time; installing from the Ubuntu Server USB key left me with a broken system because it installed grub onto the USB key instead of installing it onto my SCSI drive. I ended up booting with the USB key plugged in (it had grub installed on it by the installer, which ruined it but allowed it to boot my server!) and running install-grub to get that fixed.
08.10.2009 So it's old news..
  • Still, the blog post "If Version Control Systems were Airlines" at [changelog.complete.org] is the smartest and funniest blog post I think I've ever read. And it's true, too.
02.10.2009 London and pings
  • So when traceroute tells you
     send failed: Operation not permitted 
    it is time to look at your firewalls, because it's likely that you've got a wrong rule in the output chain.
  • In London for the week, and back again on Saturday to Brazil. I miss Mariana and the way she smiles when I arrive.
20.09.2009 iptstate
  • Ever wondering what your IP masqueraded connections looked like? I always did, but I just found iptstate(1) and it is exactly what I wanted.
  • It seems that Embratel's link blocks ICMP packets related to fragmentation; the MTU on the cable modem's interface is 1472, but when I set it correctly on my router's interface, I get PMTU-D problems with the internal network (which has an MTU of 1500). The solution I cribbed from [tldp.org] involves using the TCPMSS target to iptables.
  • Other reading for today [www.wallfire.org] [www.netopia.com]
  • Oh, and for the record, even though [www.voiptroubleshooter.com] says that MTU 512 works best with ADSL modems, it certainly does not work for the Opticom we have connected here to the Telefonica line.
19.09.2009 PPC Mac Mini on Ubuntu Jaunty and video playback
  • Next problem for the weekend was video playback on my PowerPC Mac Mini. Standard Jaunty was installed on it, and it worked pretty well -- networking, audio, removable USB. But one thing was bugging me: video playback with Totem no longer really worked. Most videos I have (for instance, old Giro and Tour recordings in DiVX format) would no longer play, and the ones that did (like a recording of the 2007 world's) would play at terrible FPS, massively dropping frames and totally burning up CPU in full-screen mode. I figured that this was the real end of the road for this little mini; after all, Ubuntu's not really supported on it, and there's no binary magic (like fglrx or even flash) to make it work. This is a standard old-school PPC Mac mini:
     0000:00:10.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200] (rev 01)
  • Well, today I spent some time looking into the problem. Turns out there were a couple of problems compounded. The first things I looked into were acceleration-related, and because most posts on the web are around 3D acceleration, the first thing I discovered was that there's an issue with the stock Jaunty kernel that I was running: [bugs.edge.launchpad.net] -- you can pretty easily diagnose this by running glxgears (yeah, we know, not a benchmark) and seeing that you get very low frame rates -- like 60 or so; in other words, falling back to swrast and not using hardware acceleration like the radeon driver in Jaunty should. The easiest solution I found to it was linked to from [ubuntuforums.org] -- I just downloaded and installed the kernel at [tmpstore.free.fr] and that was it, glxgears was up in the 700s after that, and CPU pretty low.
  • Turns out that 3D performance has nothing to do with 2D video, and this was a bit of a red herring (though it's great to have accelerated 3D graphics, I guess). I spent some time looking into the situation: first, VLC would play most videos that totem and gstreamer wouldn't, but it was still horribly slow -- the hardware wasn't being used for playback, indicating something was wrong with Xvideo. I looked around a lot for a solution, and ended up deciding to try an updated X video driver pulled from Tormod Volden's PPA at [edge.launchpad.net] -- just had to apt-get source xserver-xorg-video-ati, apt-get install the dependencies and dpkg-buildpackage it into existence. To save people the trouble of actually doing this, I put the assembled debs up at [people.canonical.com] and feel free to use them if you ever run into this problem. Once this was installed, I ran VLC and sure enough, the video playback was as smooth as ice and CPU usage really low.
  • A couple of closing notes. First, I'm not sure why this was set up this way, but the reason Totem wasn't even trying to do Xvideo was that gstreamer-properties had it disabled; once I enabled it it was as fine as VLC playing back the videos that didn't crash it. The second thing was that my /dev/dri/card0 was set to mode 660, which may have meant that GL apps running under me couldn't actually do DRI -- I set it to 666 but I don't think that actually did anything, so maybe that's crack.
18.09.2009 WRT54g Wireless Repeater Bridging
  • After investing R$80 on a new WRT54g to connect the house and office together in a way which works reliably, I spent some time researching alternatives to actually wirelessly connect them. I was always under the impression that it was pretty much impossible to do wireless bridging (i.e. a wireless AP here extending the range of a remote wireless AP, including the local ethernet switching) without having multiple radios available (and I didn't think the Linksys unit has multiple radios, nor do I know now), but apparently not only is it possible, it's trivial to do with recent DD-WRT v24 (there's no need, for instance, to set up WDS, which I think is a standard mechanism to do exactly this). I followed a tutorial on the DD-WRT wiki which was pretty much exactly what I needed: [www.dd-wrt.com] -- there's a version in portuguese which is actually more complete, though I was a bit reluctant to trust it: [www.infohelp.org] -- ironically the DD-WRT wikipage was updated YESTERDAY to add one critical step to the recipe. Guess I'm lucky!
  • The only trick I ran into was when flashing DD-WRT onto the Linksys. I had a WRT54v6 (see [www.dd-wrt.com] for details) which makes the process slightly trickier -- the flash and RAM are really reduced so you can't load the standard DD-WRT image through the standard (VxWorks) web UI -- you need to go through the steps outlined at [www.scorpiontek.org] -- it is a lot simpler than the stuff in the DD-WRT wiki itself, which seems to be geared towards windows users. I managed to get the prep and killer firmware loaded in the initial stages, but I was surprised when the tftp upload of DD-WRT itself didn't work. The upload itself went, the unit seemed to be doing something (pings stopped) but the web UI never came up. I could still tftp files across, so it wasn't bricked, but.. weird. Well, guess what -- ascii mode tftp won't work. Doh! Took quite a few reboots when looking at the flashing light to figure out that I needed to type "bin" before the put. Guess I forgot the lessons learned in the old inet BBS days.
  • Once that was done, the other thing I got stuck with was that the DD-WRT's web interface would give me a blank page whenever I saved or applied any changes. Turns out this is related to something cached in the browser (I suspect by IP, some shared cookie between the VxWorks web server and the DD-WRT one); I eventually read some dozen threads that all said the same thing: CLEAR YOUR COOKIES AND CACHE. It worked, too ;-)
24.08.2009 Lipoprotein A
10.08.2009 Seen today on my "2gb link"
  • Up 517kbps and Down 144 Kbps. From my ADSL modem's console. And then a reboot back to the usual 659/2297 Kbps -- so you tell me, what the hell?
15.07.2009 Well yes it's been a while
  • And no, I won't post anything interesting apart from recording the time schedule for SESC's swimming pool here in São Carlos. It's from 13:30 to 21:30 from Tuesday to Friday, and on weekends and holidays it's from 9:30 to 18:00. And you need to do a medical test before you are allowed to start going; make sure you don't forget that part.
  • Found out that F-Spot can upload to Smugmug, but there's apparently a bug which is failing on Hardy and I wonder if it works on Jaunty: [bugs.edge.launchpad.net]
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 needing 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 never used: CHECK TABLE and REPAIR TABLE. A number of these tables were corrupted! I'm not sure how bulletproof the recovery is, but I hope it's good enough -- no 8am calls for me tomorrow please!
11.12.2006 The heat is on
  • At least inside the server case:
     kiko@anthem:~$ sudo hddtemp /dev/sd[abcd]
     /dev/sda: QUANTUM ATLAS10K3_36_WLS020W: 37°C
     /dev/sdb: QUANTUM ATLAS10K3_36_WLS020W: 37°C
     /dev/sdc: MAXTOR ATLAS10K5_73WLS: 44°C
     /dev/sdd: MAXTOR ATLAS10K4_36WLS: 39°C
    So maybe the drives which are higher up in the case are hotter, and the 10K5 is hottest. Why is that I wonder? Or could it be that the more modern the drive, the warmer it gets?
06.12.2006 That's why they call them scientists
  • Apparently scientists have discovered that environmental issues such as contact with family, exposure to drugs and poverty have more to do with people taking up harder drugs than being smokers of pot: [www.agencia.fapesp.br] -- and all I can really say is "duuuh". The study is interesting, though, in that it used a population with groups that used pot before or after cigarettes and alcohol, and neither of them had a higher propensity of serious drug addiction.
  • One of our server's fans is on strike. It's a Minebea 3110KL-04W-B69. Interestingly enough, I found in a message post at [www.short-media.com] its CFM rate -- about 42.
  • You might ask yourself why I am looking at [www.thule.com.br] -- to be honest, I don't even know myself. But it's pretty cool, isn't it? Thule make a 4-bike one too, but it's more than twice the price, and this one is so nice and compact.
05.12.2006 Was it the shorts and sandals?
  • Yesterday evening something interesting happened that I didn't mention. So I went to see if everything's sorted for me to finally vacate and return my old house, and this is after an army of painters and workers have been over it fixing scrubbing and cleaning up, and my bank account has suffered the usual million little cuts in getting this sorted out. Now my landlord's had a bit of bad luck this year and his old lady is very sick, and the entire family has moved in to his place and are doing a good job of cheering him up. I've stopped by a few times to pay my respects and talk about the house and generally I think I've been a good tenant and a respectful neighbor. I mean, I've minded my own business, taken good care of the house, and made improvements during the years I was there to the extent the house is nicer than when I moved in. I think that's good karma to share.
  • And then there was yesterday. While I am walking into the house, my landlord's son greets me and we make conversation, in typical São Carlos fashion. How are you? Pretty good; how are you guys doing? Ah, not too bad. So.. you're a student here, are you? Me? No, I graduated a long time ago. Oh, really? Yeah. I finished my master's about 4 years ago and haven't gone back to study yet. So he pauses for a bit and then asks me what he's been meaning to ask me all along. So, do you, I mean, aren't you going to go out and get a job?
04.12.2006 and back
  • In second place, and third place overall, which was great: [www.sampabikers.com.br] I was a bit miffed at having missed first place in our age group by some 8 minutes, given we led the race for a long while, and I am still asking myself how we managed to fall back 12 minutes from first place overall! However, I had only one very slight and uneventful crash at night, and the rest of the time rode super-strong. I finished the first lap in second place and the third lap (I had to do three in a row, which kinda broke me) in the top 5, which very a pretty pleasing experience. Next year we will shoot for number one, because it's been many years of #2 at this specific race. The last time I was on that same podium, I recall, our team ended up in a fist-fight! At least the runners-up were a bit classier this time. Pictures I found online include: [www.amigosdabike.com.br] [www.wvagencia.com.br] [www.wvagencia.com.br]
01.12.2006 Almost there
  • The last great race of the year starts tomorrow: [www.mtb12horas.com.br] so today João, Gaúcho and I did some loops of Russian Roulette, and yes, you guessed it! The first mandatory crash was mine! João had a nastier one later because he had a chain skip and I hope he can sort that out until tomorrow. I may have pictures to share on Monday; here's hoping batteries last. I will take a video camera to shoot some of the training loops and well who knows, perhaps we can even manage to shoot one of the final laps. Wish me luck!
30.11.2006 I have been so busy
  • I've been unable to stay awake at the job: [www.async.com.br]
  • But still smiling through the rough of it all: [www.flickr.com]
  • It was Daniela's birthday over the weekend, so I had to do a marathon of work and travel on Saturday that ended up at 1am at the airport in Rio; highlights were me missing the flight in Campinas, Fabia and I driving to São Paulo in an amazing rail of rain, our flight delaying 2 hours, and actually getting to the club. Pictures of the really fun part of the trip are at [picasaweb.google.com] and mmmm I realize I need to shave sometime soon: [picasaweb.google.com]
29.11.2006 The Forest (The Cure)
  • Today, after 14 years of negotiation, a law that specifies use and protection of Brazil's Atlantic rain forest (Mata Atlântica, perhaps my favorite forest worldwide, and one in which I have spent many nights, and left many pounds of flesh in) was approved by our state legislators. 14 years is a bloody ridiculous amount of time to do anything, but this is such an amazing success that I can't help getting a knot deep down that our bumbling government has actually managed to so something unequivocally good. So share my hope, and if you can savour the portuguese, read more about this milestone at [www.sosmatatlantica.org.br]
28.11.2006 Gravity
  • Lennard Zinn finally explains why heavier cyclists descend faster using the math here: [www.velonews.com] -- but the most interesting part of it is that he actually links to an article from a Brazilian site: [www.vivaesporte.com.br] -- and that article in particular is an amazing resource for both climbing and descending for cyclists who are scientifically inclined.
24.11.2006 So you have a Siemens Gigaset
  • And you are curious how to set the names of the extensions? You select the "internal" menu, and then each individual phone has its own menu where you can change its number, set its name and unregister it. I am still not sure how you get some of the extensions to not ring when somebody calls in. Tech support says it's not possible -- well that just sucks. I guess these phones are not really useful for companies with secretaries, after all!
22.11.2006 Jono says it all
     <kiko> I suck at mutt
     <jono> mutt? kiko, the 1980s called and want their mail client back
21.11.2006 They overcame ED!
  • Of the 16 bits of spam stuck in the moderation queue for the Kiwi mailing list, 14 of them mentioned Erectile Disfunction -- a few of them abbreviated as ED. Has somebody been leaking information over the INTERNET??
  • Back in Brazil after some good ole USAing. It was fun. I need to add some backlogged entries to ensure I actually remember what I did.
01.11.2006 Moving house..
  • I'm moving house today, and then moving city for a few days, and then moving country for a few weeks. Don't expect to see me on the hills to Analândia for a while.. I'm going to be up in Minneapolis, which is freezing: [www.weather.com]
31.10.2006 Some things in cycling just make you go WTF
  • So how do you explain, after being caught red-handed with cash and dope, evidence stacked as high as the Galibier, Manolo Saiz is awarded a ProTour license for 2007?! WTF? At least somebody found the words to make it right: [www.velonews.com]
30.10.2006 In no particular order
  • In the next 5 days I need to:

    a) write two reports
    b) land 4 branches
    c) visit my grandmother
    d) go to Rio
    e) ride 300km
    f) fly to Minneapolis
    g) produce a plan for next week's UDS
    h) produce a plan for the Canonical all-hands
    i) rent bicycles in various places
    j) get 5 custom parts ordered and delivered at Michy's house in time
    k) move houses
    l) find a home for 2 dogs
    m) interview 2 people for random jobs

    Oh, hmm and n) write an obscene number of emails. I know I do that already but this week will be particularly obscene. I might even include profanity in them if you really ask for it.

28.10.2006 It's a hot saturday
  • and as usual the afternoon acid baths are scheduled. Tune in at 14:00 if you are that sort of person.
  • Mez and I yesterday tried to figure out how the hell to get Mailman to let messages with a certain header through without making the list unmoderated. It turns out that the spam filters can almost do what you want, if not for a strange design detail that the UI doesn't make clear. The bug report and a workaround are here: [sourceforge.net]
  • I was doing some google trawling of myself, and found a set of links that are historically interesting (and I don't even remember most of it): [www.rnlivre.rn.gov.br] [www.gnu.frb.br] [www.sounerd.com.br] [lse.sourceforge.net] [www.snort.org] [www.osdl.org]
27.10.2006 Constant Gardeners
  • Today I am going to write about how amazed I am with gardeners in my home city. It's a long story, but, basically, I live between my house and my office in São Carlos. Each of these has a garden, and each of these gardens requires regular tending to. I do it occasionally, but I am really too busy to do it regularly, and for this reason we've tried to find somebody to come and do it regularly for a monthly price. This is the same sort of work I used to do up in New Milford in 1998, and I really enjoyed it. I enjoyed getting paid regularly, too. Funny thing is, it appears the gardeners here don't! You see, they come and announce good intentions in doing weekly work. Because there will have been some time since the last well-intended gardener has done trimming, there will be some initial heavy lifting required, and I offer to pay that work up-front as a sign of good will. So the gardener comes and does the work and we pay him and the houses look smart, and we say yes sir you do acceptable work let's do this regularly and we'll pay you once a month. That's the last we see of the gardener. At some point some other gardener comes along, and the story starts over, with an interesting overlap, because the old gardener comes back a few weeks later and says hey remember me I'm the gardener, to which I reply yes sir but it's a bit too late now as we've found a new and reliable replacement. And after doing this some six times, I realize what the problem is: I'm stuck in a Moebius loop.
  • Overweight and heating up the world. Hard to actually believe, but [www.news.uiuc.edu] has a report on how weight increases in the American population have led to increased fuel consumption. I am blaming them for how hot it is here today.
26.10.2006 So far
  • It was an interesting morning. I did 5 repeats of the local Tour of Flanders, and for all of them my heart rate was way into the 170s, hitting 181 on the fourth. I was flying over the cobbles; at one point André stopped me and said "Dude, the laws of gravity still apply to you, mmmkay?". I wonder if it's because the Granfondo has brought me to a better level, or if it is a temporary benefit that will wear off in a few weeks. Maybe it's because I'm finally under 65kg. Whatever it is I really enjoyed it and ended up the intervals not even half-dead; we had enough energy left to chase each other in the downhill, with the sand in the corner making the turn at the bottom particularly fun. For some value of "fun" I mean. 1:44 total riding time. Today was so hot I put sunblock on at 6 in the morning. That's gotta be a personal record. Which reminds me..
    You're staring at the sun
    You're standing in the sea
    Your mouth is open wide
    You're trying hard to breathe
    The water's at your neck
    Your body's over me
25.10.2006 I'm really weird
  • But after listening twice to TV on the Radio I start to think I like it. What is wrong with me?
  • I tabulated my blood tests from the past 6 years today in Openoffice, and noticed a bunch of interesting little details. I am rather fascinated by blood tests in general: the idea that you can measure a net result of everything you do as an organism by measuring your blood. For instance, since converting to a vegetarian diet my LDL and Triglycerides have gone down by around 50%, and this last year, where I've eaten some fish and more egg, my LDL levels have gone up slightly, but my triglycerides are as low as ever. I rated high on glycosis, but I think that's just because I didn't really have a 12-hour fast before the test (I had dinner too late). I catch myself wondering how much daily variation in these levels may occur; I might request a second test in December at another lab to see what it looks like.
  • Back in 99 my test detected some calcium oxalate crystals in my urine; the portuguese article at [www.medonline.com.br] is an excellent technical description of kidney stones and potential dietary contributors to them. I may have just been dehydrated when I took the test, though -- I often was back then.
24.10.2006 Granfondo Pinarello 2006
  • Results of the weekend race may tell a sad story; 9th in age group and 45th overall: [www.ativo.com] However, that is but a fraction of the awesome experience that the race was. Riding up in the top-20 of a massive peloton at an average of over 40kph is an amazing feeling, and I climbed, attacked and paced with them all. That is, until we hit the 110km mark, I ran out of water, bonked on the larger uphill on the way back, paced Beto up the hill and then paused for a few minutes to fill up those bottles. I managed to latch on to a group which was riding okay, but not really spectacularly. I ended up averaging around 38, which means I covered the 150km in less than 4:15. It's amazing how much time you lose if you drop out of the peloton; it would have been impossible to chase them back if they were anything more than 100 meters ahead of me. I loved the race, and will definitely ride it again next year. And yes, I know myself enough to know that a dehydrated Kiko just doesn't operate smoothly; however, the logistics of getting water were complicated, and it was my first road race ever. Frances Farmer will have her revenge.
18.10.2006 You Could Have It So Much Better
  • [www.fpciclismo.org.br] It might not be *all* right, but beach, biking and 160km of blood-curling flats starts sounding really appealing now that the acid baths of the weekend have started wearing off the legs (and brain). I am curious to see how strong I'll feel at the end of it of course. And if we're lucky, it might not even rain: [br.weather.com]
17.10.2006 São Carlos once more
  • After a late flight home and a seriously LONG taxi ride I made it home yesterday without passing out. Well I did actually pass out for most of the trip and was surprised that we were already at Analância after what seemed to be a blink. I did end up having to pay part of the fare with some US$50! Funny thing that the rain overnight didn't manage to ruin our morning ride (but no, no Tour of Flandres to celebrate either). I was wrecked from the aggression of the weekend war in Brasilia, so much that I was dropped on one of the last uphills.. thank god for offices.
11.10.2006 I did something
10.10.2006 Iron Biker
04.10.2006 The codes of ethics
  • Wouldn't it be great if political parties signed ethics codes, just like the Pro Tour teams do? I mean with automatic suspension of any politician involved in a corruption inquiry, and automatic suspension of the whole party if multiple politicians were found guilty. And why on earth is such a thing possible in cycling, but not in government?
03.10.2006 To say the least
  • if you are anything like me you should apt-get install the miscfiles package.
29.09.2006 What am I talking about?
  • As Johan points out, indeed, it was not a dog.
    Franco is not speaking Norwegian but making up the dialog. "Schmergsdorf" as Carpenter puts it. The subtitles, however, give the impression he is speaking Norwegian. The words spoken are actually understandable for Norwegians. Albeit broken Norwegian, the line goes: "Se til helvete og kom dere vekk. Det er ikke en bikkje, det er en slags ting! Det imiterer en bikkje, det er ikke virkelig! KOM DERE VEKK IDIOTER!!" This translates to: "Get the hell outta there. That's not a dog, it's some sort of thing! It's imitating a dog, it isn't real! GET AWAY YOU IDIOTS!!"
25.09.2006 Stretching
22.09.2006 Spam is weird
  • Check this out
     N *  40 Sep 17 Shari Morrow        ( 0.3K) 64% of members got laid
     N *  41 Sep 07 Issac               ( 0.3K) 66% of members got laid
     N *  42 Sep 20 Curt Randall        ( 0.3K) 67% of members got laid
     N *  43 Sep 13 Tomas Alston        ( 0.3K) 72% of members got laid
     N *  44 Sep 09 Tom Carlisle        ( 0.3K) 73% of members got laid
     N *  45 Sep 17 Weldon Tyson        ( 0.3K) 73% of members got laid
     N *  46 Sep 17 Brittney Villegas   ( 0.3K) 74% of members got laid
     N *  47 Sep 14 Virginia Rhoades    ( 0.3K) 75% of members got laid
    Do you think they actually run the statistics?
21.09.2006 Unless you are the sort that freaks out easily
20.09.2006 Kinda
  • sick. Not 100% but have that weird feeling in my throat, something of a headache. I'm feeling remarkably well given that though.
  • It rained today after a /very/ long time without serious rain; it was welcome, and the fact that I'm only cycling on rollers this week makes me appreciate it even more.
  • A crackhead technician connected our DSL filters the wrong way around this morning and we had an Internet outage for a while. I had to draw a diagram to figure the damned wiring out! Ping averages on our fixed DSL connection:
      Host            Loss%   Snt  Last   Avg  Best  Wrst StDev
      192.168.32.1    0.0%   4958  24.3 175.8  19.8 2115. 241.0
  • And on our dynamic DSL connection:
      Host           Loss%    Snt  Last   Avg  Best  Wrst StDev
      200.206.239.227 0.0%   3225 163.8 112.0  51.9 3765. 179.9
  • Trivial howto on setting up content-negotiated compression in Apache: [www.mukund.org]
  • Isn't is spooky that John Christensen, who plays the character in Waking Life that talks about techniques for discovering you are actually lucid dreaming, died before the movie was finished? I had noticed his name is on the credits twice.. [amazon.imdb.com] (and then I noticed that whoever used to run [WWW.FILETHIRTEEN.COM] knew him, since I'm the only person on the Internet that seems to have noticed this connection..)
19.09.2006 I think I'm
  • SICK! Argh! I hate being sick. Tomorrow will tell, though.. and I've got the national championships this Sunday.. waaaah.
  • Results from the last race are finally up and I am not too far down this time: [www.timeeventos.com.br]
  • I know one of these dudes: [mako.cc]
15.09.2006 Returns
  • FSA granted my wish and is sending me a brand new K-Wing. I am so lucky sometimes..
  • Gross! My DVD of Torn Curtain has a blemish that makes it impossible to view what happens after 1:04, which frustrated Johan and I yesterday after enjoying Paul Newman's cool performance. How does it end?! I contacted Amazon customer service about this today; let's see.
  • Wow, Amazon customer service issued me a full refund in less than 2 hours! I'm amazed as always as how hard they work to keep their customers happy -- I can't say I have once felt unfairly treated by them.
14.09.2006 Silencio
03.08.2006 Raided
  • So /dev/sdb died again this morning. I think we're going to have to end up purchasing a replacement.. boohoo. Looked into a replacement at Misco, and funny thing is, a 73GB disk costs as much as a 36GB. So perhaps we will get that extra room for /home that Johan has always been bothering me about. :-)
28.07.2006 Tour de Beer
  • One week after we cheer a pretty mundane yellow-jerseyed Floyd into the Champs, we get some unexpected news down the pipe: [www.velonews.com] It's funny, though, to have the subject of beer and testosterone come up so close one to the other, and I was surprised to discover that this article suggests that there is actually a link: [www.clinchem.org]
  • Of particular interest to me, though, was the statement by Allan Davis, who rode for Liberty, and who was implicated in Operación Puerto before the Tour. His statement at [www.cyclingnews.com] reads:
    I invite or even demand that the UCI, ACF, Spanish Judicial system or whoever needs to, carry out a DNA test to finally clear my name from all of this. I understand that this is my choice and every individual is free to do whatever he feels he needs to do.

    Should the DNA test prove that I am associated to this case, I will hang up my cycling shoes the day after and head home to Bundaberg and start looking for a normal job.

    All of this is very frustrating when all I want to do is ride my bike and be able to make a living for my wife, kids and myself.

    Allan Davis.

    That's a pretty interesting -- and strong -- statement. I wonder what that means given that the general belief is that everybody involved in professional port, no matter where or who, is doping.
  • Following the Hardware Hell posting, I should mention that my K-Wing FSA handlebar has now cracked too. What have I done to deserve this?
  • Man, git is weird:
     Right now I'm running the Ubuntu 2.6.15-26 code with this set of
     patches, and things look good:
      
     5a07a30c3cc4dc438494d6416ffa74008a2194b3
     6eb0a0fd059598ee0d49c6283ce25cccd743e9fc
     d25bf7e5fe73b5b6d2246ab0be08ae35d718456b
     76b461c21468f41837283b7888d55f1c0671f719
    as taken from [launchpad.net] highlights how obscure things are now!
11.07.2006 Hardware hell
  • In the past 7 days I have had: one KHS cromoly frame crack; one S-Works aluminum frame crack; a rear Bontrager hub crack (a first for me); and finally, a hard drive crash on anthem. Check it out:
     Jul 11 00:38:42 anthem kernel: kernel: [4926845.846000] SCB_SCSIID[0x97] 
     Jul 11 00:38:42 anthem kernel: [4926845.846000]  76 FIFO_USE[0x0]
                     SCB_CONTROL[0x64]:(DISCONNECTED|TAG_ENB|DISCENB) 
     Jul 11 00:38:42 anthem kernel: [4926845.846000] SCB_SCSIID[0x97]
    That was last night. The server seems to have survived it but I got hatemail from mdadm this morning, so I attempted to re-add the drive to the array without rebooting. Not such a bright idea:
     kernel: [4970777.415000] SCSI error : <0 0 9 0> return code = 0x6000000
     kernel: [4970777.415000] end_request: I/O error, dev sdb, sector 651754
     kernel: [4970777.415000] md: write_disk_sb failed for device sdb14
     kernel: [4970777.416000] md: errors occurred during superblock update, repeating
    and a hung server. The funny thing is that it isn't completely broken; it's actually the second time this year it crashes on me, and if it crashes every six months, that's not so bad. I rebooted anthem and re-added the disks and they work great now. I am shopping for a replacement, though..
  • And then, 5 minutes later, Salgado tells me his brand new Syncmaster 173 LCD monitor is kaput. I wonder if Samsung has world-wide warranty...
31.05.2006 You only live once
  • And even then, /maybe/ once.
29.05.2006 I take the blame
  • I think I did my best ever mountain bike race yesterday. I placed 6th overall, less than 15 minutes behind the race leader, after 4 hours and 100km of scorching sun, blood-curling sugarcane and stomach-turning climbs. I have to say I couldn't quite believe it myself when I crossed the finish line alive and in first place of the sub-35 category. Man I love being 30! [www.tripadventure.com.br]
  • Carol apparently did 5th of her age group in this year's Ironman Brazil: [ironman.com] -- amazing after the short training time she had this year, and given her history of injury and survival. Wow!
  • From a report by AT Kearney:
    Um programador brasileiro ganha em média US$ 13,4 mil por ano, bem menos que seu colega canadense (US$ 36, 4 mil) ou de Cingapura (US$ 33,5 mil).
25.05.2006 Continents
  • Really interesting article on how the continents appear to have come into existence, but only for portuguese-readers: [www.agencia.fapesp.br]
  • Michy asked me to check my ideal frame size using [www.bikebuster.com] so I went ahead and tried it out. I think I measure 174, and I measured my leg height to approximately 82cm. It is interesting!
     MTB min. height     17.88 inches    44.69 cm
     MTB max. height     19.38 inches    48.46 cm
     Roadbike min. height                54.12 cm
     Roadbike max. height                56.01 cm
    It appears from this that my 17" is slightly small for me (and it feels a bit like that when I ride it, because my arms could go out much farther). But smaller is lighter! It also says that my saddle height should be 71.52cm. I'm going to try that.
  • We appear to know where AIDS came from, now: [www.agencia.fapesp.br]
23.05.2006 Pilotagem!
22.05.2006 Mondays!
  • Emails bloqueados esta semana para: kiko@async.com.br (total 43308). No, that's not a typo. 43000 spams blocked at the SMTP level. Scary.
  • Today a guy told me the tree in front of the office is going to die because it is growing up sideways, like in a 60-degree angle. I don't think it is, but maybe he's right. He did, unsolicited, cut the rope that was tying the trees together, and said the rope was hurting the tree (it did indeed leave a mark in the tree bark). We will see.
19.05.2006 Le Grand Dernier Bivouac
  • Today, a good friend, and one of the greatest climbers of all time, passed away on the Everest. Vitor was one of the kindest, nicest, most positive people I've ever had the honour of meeting, and we spent some amazing moments together on the Amazon, for a week in 2001. He was strength, daring and laughs through disaster and fortune alike. But Vitor was something of a spirit of fire, and as much as I admired him, that particular mountain has no love for us, and you rely on having only lucky days when you are up there. I will miss him.
18.05.2006 Books
  • This person just donated 30 thousand books to the University of São Paulo: [www.agencia.fapesp.br] which beckons the question: how does one amass 30K books in a lifetime? That's like one thousand books per year for 30 years -- 3 per day pretty religiously.
10.05.2006 Sandbagged
  • Johan's making little waves into big waves: [article.gmane.org]
  • Little-known factoid about the London Underground: It is the oldest underground system and one of the three largest in the world. Operations began on 10 January 1863 on the Metropolitan Railway; most of the initial route is now part of the Hammersmith & City Line.
08.05.2006 Big
  • Came back from Big Biker yesterday; did a 3rd in my age group which was not all bad, considering that I'm only one year back into biking. Results are up at [www.bigbiker.com.br] -- 27th out of 244 is not great but it is something already.
  • I discovered not all of PyGTK.org's problems are gone; there seems to be more content that is not UTF-8 -- specifically, stuff in tarballs! I pester Gustavo to fix it.
05.05.2006 Encoded!
  • I finally reconverted all the pages on pygtk.org to be UTF-8-encoded. This was actually more work than it sounds; we had content with completely unknown encodings, and it took me a while to discover that 0x92 is actually not in latin-1 at all (it's a quote character in Windows CP-1252!). I ended up using iconv to detect files that were non-utf-8 and converted them manually; I then fixed up .htaccess to serve utf-8 again. One message in my inbox down!
  • Of interest during this research was [permalink.gmane.org] which talks about how to highlight non-ASCII characters. Unfortunately it didn't work very well for me, but I'll save it for later.
  • Yesterday, I discovered listadmin, the command-line tool for managing Mailman lists, and today I have blazed through the lists in a tenth of the time it generally takes. It totally rocks! I had to install the Debian unstable version, though; I've requested a UVF exception for it. Let's see how that goes.
02.05.2006 FISL, biking and partial illness
  • Is the summary fo the past weeks.
  • FISL in particular meant generating painful pictures like this: [thomas.apestaart.org]
13.04.2006 And finally, I am Rio
  • so if you do, look for me in the mountains.
11.04.2006 Today, I planted a flower
  • to try to make up for the rest of the day.
05.04.2006 I WENT TO BED
  • at 2am and survived the 5:30 bike ride of death. This was a feat; I have been riding about 500km every week, but getting up half-drunk in the dark and rolling out in the freezing weather must give me a karma bonus that I will want to cash in at some point.
  • Matthew pointed out [usabilitynews.com] to me, and I noticed that any advertisement program is bound to reduce the ROI for me. I wonder why.
04.04.2006 I am in a terrible mood
  • And I'm not entirely sure why, but I'm sure I'll find out soon.
  • I discovered today that a friend and journalist died last weekend; I knew Giordani Rodrigues from the brazilian antispam lists, but also personally from FISL and from an assortment of top-quality (and caustic!) security and technology-related news that he'd regularly publish. He ran [www.infoguerra.com.br] I guess he'd like to be remembered for all the great work he did, so here's my bow to the greatest technology reporter Brazil has ever had.
  • I suspect I have developed a mild food allergy. I will need to investigate this week; one more fun task to go through.
03.04.2006 Destroy Everything You Touch
  • This new Ladytron album is amazing; you get electro-babes with the buzzsaw distortion that made My Bloody Valentine famous. I'd love to have the sensation of first listening to it kept in a little box. The Louis XIV album is, however, OUTSTANDING and should be placed in the eternal hall of fame.
  • It is demoralizing to see things like [www.light-bikes.com] and [www.light-bikes.com] floating around on the internet. 8.5kg for an M5? So the guy's a wimp (who removes his granny chainring and then shoots a picture of a dirty bike? who is he kidding?); his bike is still over a kilo lighter than mine!
10.03.2006 The shock waves of sent-mail
  • My inbox is pummelling me. I'm fighting back with the tools Matt and I have worked on perfecting: ruthless filtering, fast replying and delegation. It's now down to 30 again. Go me!
  • I gave up long ago, but I did watch Lost on DVD! [c2.com]
01.03.2006 Will this be a DEATH MARCH?
  • I was shocked to read, today, this quote:
    Its chief executive, Eric Schmidt, alienated many on Wall Street last month when he told Time magazine, "The company is not run for the long-term value of our shareholders but for the long-term value of our end users."
28.02.2006 Riding there and back, in 5 days
  • Finished today a tour from São Carlos to the beach. It covered almost 600km, with the longest day being Saturday, from Campinas to São José dos Campos. The wind was on our backs for the whole 4 days of riding, excluding some 25km from Caraguatatuba to São Sebastião (and in the opposite direction, yesterday, remarkably). The uphill from Guaecá to Maresias is really the hardest stretch of uphill, though all of Tamoios was pretty rough, and in particular, yesterday, scorching as well.
  • Pix of part of the trip are at [async.com.br] including the victory shot at [async.com.br]
23.02.2006 Looking back
  • To the first two months of this year, I have cycled just over 2000km. I'd say that's not bad considering I was stuck in the London Dungeon for 2 weeks and sick on the first week of the year. My neck hurts today however. Hmmmm.
21.02.2006 Apparently
  • The Nokia 770 was finally released today. I need to get an updated system image for mine..
  • It seems that MacOS Internet Explorer 5.16 and 5.17 don't tolerate quotes (single or double) in CSS url() instructions; just updating some CSS to avoid bustage.
17.02.2006 meus amigos (666)
  • It must be my lucky star shining!
16.02.2006 Super-30
  • I woke up, and it started to rain, but not before I managed to ride away from the clouds. Always south..
14.02.2006 Not Waving But Drowning
13.02.2006 Hold Tight London
  • The rain has given us truce today, so the morning ride was neither wet nor bad, but it did mean I sat from 6am to 7:30 waiting for it to clear up.
  • I keep forgetting how many times, but it appears we've landed on the Moon six times in those 4 years we were crazy (or brave) enough to try: [moon.google.com]
  • And, just for the record, no, the moon is not hollow: [curious.astro.cornell.edu]
09.02.2006 The rain in spain
  • ruined my bike ride this morning, so I went running instead. Turns out 5 minutes into my run this kid on a bike is run over in front of USP. I stop and assist him how I can while having J. Random Person call an ambulance. Calling ambulances is not a fun thing in Brazil, because they end up taking forever to show up. The kid wore no helmet and banged his head on the floor. It bled a bit. He scratched his elbow and shoulder as well. He didn't look so shaken after a couple of minutes and the guy who ran him over offered to take him to the hospital, since the ambulance still hadn't showed up. Before he left I told him to get a helmet. I have been run over about 3 times, and cracked a number of helmets in a lifetime, but I have never hit my head.
06.02.2006 CAN PEOPLE STOP
DESTROYING EMBASSIES
ALREADY? KTHXBYE
  • I am amazed at how crude and thin-skinned humans have shown themselves to be over this cartoon nonsense. The catholic church got over their excessive self-importance about 200 years ago, when they finally stopped burning people, and wouldn't the world be a better place if other religions decided to behave maturely as well.
  • (on "200 years ago" above, I actually thought it was around 400 years ago, but [en.wikipedia.org] depresses me with the news that the Spanish Inquisition ended as late as 1834)
  • I am so jet lagged this week it is not funny. Yawn.
05.02.2006 Let the juices flow
  • To be honest, it is possible that the thing that bothered me the most about London this time around was the absolute absence of drinkable fruit juice. Now that may sound snobby and silly but I honestly can not fathom how people can live without fresh fruit juice. They should fix that situation, these scientist people.
04.02.2006 The doctor is in!
  • Back from London and the Soyuz rollout sprint, barbed wire finishing ribbon and all.
20.01.2006 New Horizons
  • We're going to take a closer peek at Pluto in some 10 years: [www.agencia.fapesp.br] -- I didn't know of all the crap that exists between Neptune and Pluto. I wonder if a couple of other planet-sized objects will be found there.
  • There's news at [www.agencia.fapesp.br] that makes me wonder at the investment in development of technology in this country. I mean, the text describes a little biodiesel processing plant, that takes vegetable oil and converts it into biodiesel -- at an efficiency of 60%, and costing less than US$20,000. This is something pretty impressive to me -- and vegetable oil is something we have lots of in this country. However, most impressive is that they managed to develop this thing with grants of less than R$1 million -- that means, less than US$500K. POCKET CHANGE! If only we had a serious attitude (and set of policies) regarding technology.. I bet we'd see lots of great new ideas emerge.
  • More end-of-year pictures at [salgado.kicks-ass.org]
19.01.2006 More rain?
  • Woke up and it was raining, so I ran for 40 minutes instead of the usual heartshattering bike ride. Spoke to Michy, who leaves today for the USA in search of, hmmm, winter, enlightenment and love? She did not allow me to speak to my grandmother, which I entirely resent. The dogs only got a short walk because it was raining but they got three massive bones to chew on while they wait for the evening walk (and my dogs are not vegetarian).
  • So apparently some 10,000 years ago people were already enduring climate change in the land of Tripoli: these guys were the precursors of the Garamantian Empire. It appears that the desert there was once humid, too: [www.agencia.fapesp.br] -- Perhaps most fascinating about them is that a) it used to be land which could be used for agriculture -- it's now a desert; and b) they irrigated their civilization to death, because over 600 years the ground water level decreased to a level it was no longer usable. And isn't it peculiar how contemporary civilization doesn't really consider itself in terms of centuries?
  • It rocks that we're officially running a debris processing plant in São Carlos: [www.maisinterior.com.br]
  • I should plan on visiting [www.evanscycles.com] next week. I think I want a road stem, perhaps a new helmet, a bike stand, some time pedals.. I should also go for a few swims at [www.rbkc.gov.uk]
18.01.2006 And yet, I only grow thinner
  • Paradoxically, in Brazil, the highest obesity rates (70%) are in a specific demographic: poor women that live in the southeast (the more developed area). And even more interesting, favela-dwellers had the highest incidence of obesity: [www.agencia.fapesp.br] -- I guess the lifestyle has a lot to do with it -- both favela and female.
  • Visited Livia and her parents last night; talked to Du over VoIP and then chatted about better living through odontology, life in the USA and the future of democracy (no kidding). Stopped at Habib's and ate a pretty meagre meal, but the cheerful staff more than made up for the substandard food. At least I can say I've been there once.
17.01.2006 The end has no end
  • I also had a weird dream tonight, involving ex-girlfriends and kids on motorbikes. Woke me up at 6:30 and, well, when you dream of ex-girlfriends you don't really want to back to bed. Rode some 70km in a refreshing breeze that turned back into the furnace we know São Carlos in January to be.
16.01.2006 What started out just great
  • didn't really hold up to much. An average day with heat, interview and difficult problems to solve.
15.01.2006 Appropriately called SUN day
  • Hot as hell. HOT. Did nothing. Rode bicycles with Corbani and Lilian around UFSCar. Corbani says he likes his new bike. I am pleased. We go to the bakery. I sleep while listening to the Strokes. Dinner at Amici with Tecão. Estrela and Monica had a fight. Sleepy. Zzzz.
  • Some pix of notable São Carlos losers over the weekend are at [www.async.com.br]
14.01.2006 Hang in there it will be over soon
  • Woke up. Cut lawn. Yawned. Arrived late in office. Fixed a few bugs. Waited for Corbani and Lilian. Had lunch at Mamãe Natureza. Went home. Got dressed and participated in the weekly ritual that involves hours of riding over hills on bicycles. Got back. Felt sick and dehydrated. Drank copious amounts of liquid. Sat around and talked to Nando, Corbani and Lilian. Listened to music. Went out to dinner and talk with survivors of said ritual. Sat outside a bar for an hour while Matsubara laughed endlessly at my misfortune. Went home and slept the black sleep of the depraved.
13.01.2006 Each day is only as unique as you are
  • Two remarkable things happened this morning. Truly remarkable things happen every day, but not always do you actually get enough time to yourself to notice them. The first thing was that I noticed two parrots sitting on the telephone wire in the house in front of mine; I had never noticed them before, and yet they were busy chirping away at sunrise. And what a sunrise it was -- burning the tiles on the house and the tar on the street. So I rolled out for what would have been a typical 70km ride in the hot January sun. Except I ran into Osvaldo and his nephew, Felipe, riding from São Carlos to the beach; I had met Osvaldo's nephew at a party at Matilde's last week, and he had said this was going to happen. I enjoyed this coincidence immensely and did another 20km loop with them. Osvaldo told me all about the new projects that he was working on that dealt with carbon emission credits, and Felipe was just silent and content to ride on the Stumpjumper in Osvaldo's draft. I might be convinced to try and certify Async, you know -- we are not big fossil fuel consumers, really.. only one person actually comes by car.
  • Interestingly enough, my conversation with Osvaldo touched upon the same subject as the news that cam in today at [www.agencia.fapesp.br]
  • The only really unremarkable thing this morning was that I arrived 2 hours late in the office, a bit too late for the Malone migration. I am so thankful that James H. and SteveA had it all under control, it was barely any work when I arrived. Now, to implement the features they are missing..
  • The 770 has VoIP, finally: [www.internettablettalk.com]
  • We had a rock and roll dinner tonight, with Magno, Aline, Ivo, Lucas, Matsubara, Johan, Melissa and Nando all there. Notable absences were João (who doesn't have a phone yet) and Tecão (who said he had a runny nose, the nerve). We had nuclear beans, radioactive rice and superficial soymeat, and NO ANIMALS WERE HARMED IN THE PREPARATION OF THAT MEAL. I need to plant a tree to make up for the carbon deficit, though. Cleaned up the kitchen somewhat (I have guests!) and strolled out with the dogs at 2am. It rained a bit.
12.01.2006 And it fit me like a glove
  • I had a weird dream this night. I was in Ouro Preto, going to race the Iron Biker. Well, except that Ouro Preto was actually more like Ilhabela -- an island with waterfalls. And that I wasn't really going to race, but I changed my mind and decided to race in a double with a friend from Brasília, Bruno Santana, that I haven't spent serious time with for the last 15 years at least (though I did see him at last year's Iron Biker). I had forgotten all my equipment: helmet, pedals, shoes.. a disaster. So the dream turned into this bounty-race of sorts as I tried to get people to lend me these. Bruno at some point took a ferry across to the mainland (!) to pick up an extra set of shoes that were left in the car, and I meanwhile sat on a bridge. I think there were some guys with sunglasses in a black car that talked to me at some point.. I really love dreams.
  • Good sub-140 ride; the first in which I did not once bump it over 160bpm. I had to go pretty slowly up Liquigás to keep it at 159, but I actually managed to; it appeared to me that breathing out regularly helps. Will have to confirm tomorrow (and hopefully wake up earlier).
  • Went to UFSCar to do a short test at the new physiotherapy hospital, which turned out to be a lot more fun than I expected (and in different ways, too). Lucas met me up there and we rode back together. Sandra Abib managed to nail me into doing another talk in April while I rode down in front of the library (make mental note not to ride down in front of libraries in the future). Arrived in the office to find anthem spurting out a random stream of messages on the console:
     SIMODE0[0xc]:(ENOVERRUN|ENIOERR).
     CCSCBCTL[0x0].
     scsi0: REG0 == 0x60, SINDEX = 0x122, DINDEX = 0x116
     scsi0: SCBPTR == 0x33, SCB_NEXT == 0xff80, SCB_NEXT2 == 0xfff7
     CDB 2a 0 3 80 8 ac
     STACK: 0x29 0x15 0x125 0x125 0x25e 0x25e 0x25e 0x93
     <<<<<<<<<<<<<<<<< Dump Card State Ends >>>>>>>>>>>>>>>>>>
     DevQ(0:4:0): 0 waiting
     DevQ(0:9:0): 0 waiting
     DevQ(0:10:0): 0 waiting
     DevQ(0:12:0): 0 waiting
     DevQ(0:13:0): 0 waiting
     (scsi0:A:9:0): Device is disconnected, re-queuing SCB
     Recovery code sleeping
     (scsi0:A:9:0): Abort Tag Message Sent
     (scsi0:A:9:0): SCB 127 - Abort Completed.
     Recovery SCB completes
     Recovery code awake
     found == 0x1
     SCSI error : <0 0 9 0> return code = 0x6000000
     end_request: I/O error, dev sdb, sector 2073927
     
    we ended up having to reboot, at which point nothing using /dev/md11 worked because mdadm --assemble /dev/md11 gave me a message that suggested an internal bug: invalid argument or something. I ended up finding out that --force does what we needed and the arrays are back up.
  • I am so tired today I might be convinced to skip the gym..
11.01.2006 Took a wrong turn on the astral plane
  • "Estamos em uma cidade com 150 quilômetros por 150 quilômetros e que emite três vezes mais poluição do que toda a Suécia." is the good news that [www.agencia.fapesp.br] brings us.
  • Rode with the swede through the Valley of Pigs, all under-170bpm (and the average in the 130s). My heart is still a bit fucked from the typical holiday sickness, but I'm coughing less and my head is all systems go. Should remind myself to keep hydrated.
  • We're finally inflicting Malone on the world :-) [lists.ubuntu.com]
10.01.2006 Lifeguard for a day, fool for a lifetime
  • Visited Bruno's mother at the hospital in Ribeirão Preto. Had a very interesting and enjoyable afternoon as we studied x-rays, family history, physical effects of emotional distress, and the future of Brazilian education. Some politics in the conversation. I had the thought, when coming back, that one inequivocally good thing you can do is to keep company and care for a patient you love.
  • (Added saran wrap to STIs at 6am, which solved the rattling. Did a sub-140bpm ride, hopefully first in a series of base-building rides)
09.01.2006 Scorched earth
  • Woke up feeling as sleepy as I was when I went to bed; I think this coughing keeps waking me up. Hopefully I'll have it nailed in a day or two. Did a one-hour ride towards the airport, rough road to Ribeirão made my STIs rattle again. I need to add more saran wrap to them. Stumbled my cadaver into the office once more.
08.01.2006 It never rains in the happy house
  • Sunshine at last. Couldn't quite believe it when I woke up and saw a clear blue sky; it had been a week of gray (and black) up to today. So I spent the day tending to the gardens, giving the dogs much-needed baths, and doing small home repairs that I've put off before. Johan gave me a hand and in the end it was only half a chore (and half a sunburn). We finally watched the end of The Breakfast Club (hey mdz) and took the dogs for a walk. Monica and Estrela still occasionally decide to cross the street on their own; in part this owes to their excitability (which is taking a long time to subdue, in retrospect) and in part to the fact that dogs love a bark-at-gate episode. Olivia is never a problem; she is so cool. We met Nando at random, had some juice at the office and took a cab to watch A History of Violence, which is quite good, though perhaps it's expected given the names on the roster. Cronenberg knows how to make a fun movie that still manages to raise interesting questions (and Fausto, remind me, why did this text formerly mention Sex, Lies and Videotape?) Johan and I strolled back through USP from the bakery, and were assailed by 14-year-olds that were bored of São Carlos. It's so interesting to observe the generation (cultural, too, perhaps) gap -- even though they were into rock and punk and lived in the same city as us, we were set worlds apart. Fed the dogs once more, took them out for a stroll and and coughed myself to sleep.
07.01.2006 Two thousand and six thunders
  • The suicide bike ride was actually a 4-man death-march into Analândia via the dry river. For the whole ride we could see the lightning flashing out westwards. It rained randomly, and I felt like crap on parts of the way back, but in the end Lucas and I sped away and stretched out in front of Parque Itaipu waiting for Tecão and Johan, who was so knackered he spoke in syllables for the final hour. Not a bad ride altogether. Had dinner out at Matilde's boyfriend's house, cooked an omelette, and, for the first time in a long while, laughed so hard I cried. Pity I was so sleepy I can only half-remember what happened; perhaps, thankfully, only the non-embarassing half.
03.01.2006
  • [www.agencia.fapesp.br]
  • Weirdness that breaks accessing new.opengroup.org through our external link:
     Redirect from 192.168.99.3 on eth2 about 192.153.166.92 ignored.
       Advised path = 192.168.100.4 -> 192.153.166.92, tos 00
    Found out what it was -- DSL modem had an additional address and a broken netmask on its main address. Fixed.
12.12.2005 Aluminum pots rot
  • [www.agencia.fapesp.br]
     O alumínio tem forte relação com doenças como o mal de Alzheimer,
     câncer de pulmão e eventos inflamatórios pelo organismo.
  • Interesting bit on productivity and self-conditioning at [www.kuro5hin.org]
  • SSH and weird connections that go down after 5 minutes? Never again!
     ServerAliveInterval 300
08.12.2005 Moving right along
  • I feel for some reason strangely energized today. Perhaps it was my discovery of the artist and name behind a song that I've heard so many times and never found out what it was. It was Alter Ego's Rocker, and there are free mp3 downloads on the web! Oh, right. Mp3 downloads are illegal. Shucks. I really liked that tune.
07.12.2005 What a wierd day.
  • PostgreSQL died on our dogfood server.
  • Squid died on anthem.
  • The shipit exports failed to run.
  • Johan's box kernel paniced at bootup.
  • The backup failed.
  • Vim tip of the day from salgado: to search for tags recursively up the tree, use the following syntax:
     set tags=.tags;/
  • Second vim tip of the day from BjornT: if you have bicyclerepair installed, try running:
     :BikeFindRefs
    on any method or function definition. It rocks!
02.12.2005 The end of the week
  • Did a morning ride with the venerable Sal6, Magno and Johan -- basic pigs. Felt fine. Have been doing lower-cadency rides lately and I feel a lot less like dying at the top of hills. It rained quite a bit, which made me feel a bit sneezy, but it cleared up over the course of the day.
  • After a few days of straight work Steve and I manage to finish our team reviews, in time for the deadline. Cool!
29.11.2005 Tuesdays are the days
  • Woke up really
  • Found jordi's post on Montreal at [oskuro.net] and later his quote about CDG:
    I have no idea of where my luggage is, but at this point I don't care. I only wonder at what time I'll get sleep. What I do know, is that these fucking idiots claim there is free wireless in this spot of Terminal 2F, but it's not true at all.
    If you know Jordi you can imagine how funny that really sounds.
28.11.2005 Mondays are mondays
  • Magno and I did a 7am ride for about 2h. I did it really slow and relaxed and felt a lot better at the end of the ride than I usually feel on MTB rides during the week (where I end up feeling like death is upon me). I should get more variety in these rides, though, and perhaps research something to improve my recovery, since my legs often feel dead during weeks of hard riding.
  • Had an early call with Abraão to help me decide on whether the XTR crank is really the right one to buy. We discussed some of the alternatives and in the end it was his reassurance that: a) you can replace the "bottom bracket" in the crankset when the shipped one dies for about R$100 b) there are FSA chainrings that fit it well that made me okay with XTR decision. Let's see how wise that was in a few week's time. We also talked about Specialized frames and his suggestions on what to buy if I was to replace my existing M4 frame (2000).
  • Had pizza with Niemeyer and Rudá where we discussed many entertaining fallacies of software engineering and I had the idea of a "Software Engineering Patterns" kind-of-thing.
27.11.2005 Racin'
  • Did a 4K race in about 15 minutes at UFSCar's 35-year commemorative sprint, finishing 8th overall (and perhaps 2nd or 3rd of students and ex-students, which isn't very honorable but looks good on the resumé). I gave away the t-shirt they handed out to Gaspar.
  • Also did a 2h ride with Magno, João and Johan; basically, a reverse ride of a route we sometimes do. I found it much better than the direct route. Was a gerally relaxed Sunday ride and João didn't cause me too much pain for which I am grateful.
26.11.2005 INBOX in control
  • I've put some serious effort into taking control of my INBOX. Following mdz's cookbook I've started doing absolute crazy filtering of almost everything that's hitting the INBOX, meaning I should be a lot more responsive to email than before, but also meaning I might let some list, bugtracker and auto-generated traffic slack off the radar. I believe this is a step forward though; the last months I was simply buried in email and could do nothing to keep up with it, which made me feel rather bad -- my INBOX is my life.
  • Uhm, that is, if I don't count the 3000 or so messages that are accumulated in my former INBOX that I haven't processed yet. I'll probably do 10 300-message runs to clear those over the next weeks.
  • Today was UFSCar's 35-year commemoration, so Fabia, Johan and I hung out around there talking to old-timers. Of note I saw Bruno from Santos, who works at Mormaii, Luciana and Fabiana Rosetta (who it turns out is doing another round of undergrad study, ironically with Bruno, one of the youngest interns that works with Evandro on Stoq), and Silvano, who is always too much fun.
  • Johan and I also managed to fit in about 2h of riding through that. I felt kinda flat but I guess getting back to speed was going to feel like that anyway. Did a longer ride out in the back; I decided to show him the Jedi path given it was a day of nostalgy. We also did 10 laps in the forest before going home. It didn't rain, but it should have.
25.11.2005 Ubuntu rocks
  • But you knew that: [reviews.zdnet.co.uk]
  • Set up the second link on Anthem yesterday, so we have some redundancy possible. The Speedy home link's latency is /so/ much lower I'm amazed. It's like 5 times lower. Priceless in setting up the links was [www.lartc.org] and in particular, the issue with reverse path filtering: [lists.netfilter.org] and [www.tldp.org]
  • Hit my head with snmpget until I realized that snmpv3 requires a username, and that -v 1 solves the issue nicely:
      
22.11.2005 ?
  • After yet another month spent in carpeted basements and cold climates, BACK IN OFFICE.
  • Finished 4th (out of other 4-people relay teams in our age-group) in the 12-hour MTB race over the weekend. It was good but not great; I did a majorly fat (and unexpected) stack and cracked another helmet, and was really tired out from the travel and I am still drip-dropping through the day, though I feel very healthy. Detailed results are at [www.sampabikers.com.br] and [www.sampabikers.com.br] and pictures are at [www.biosphera.com.br] and [www.async.com.br] and, if you add "Christian Reis" to the textbox [www.ativo.com] and cross your fingers, you get an extra set.
  • If you're really attentive (and you know portuguese) you'll see that the first link is actually typo'd. It must suggest an automaintained site, because the link is present on the main page of the site, and it doesn't 404 out. Agh.
19.10.2005 Swamped
  • Lots of bits and pieces to do. Some NFS performance study: [billharlan.com] [www.missioncriticallinux.com] [groups.google.com] [groups.google.com] [groups.google.com] [groups.google.com] [dcs.nac.uci.edu] [dcs.nac.uci.edu] [blogs.sun.com]
     th 8 2747936 59079.566 14835.486 5952.540 0.000 3293.329 2232.819 1900.259 1999.936 0.000 6549.737
  • And now, with 64 threads:
     th 64 2748083 59125.361 14838.813 5953.420 0.000 3293.579 2233.022 1900.395 2000.066 0.000 6550.060
  • And now, after 12 hours:
     th 64 2748083 59543.017 14912.958 5959.034 0.854 3293.654 2233.022 1900.395 2000.066 0.000 6550.060
    From my reading of this it appears that we're now using up to 50% of our threads (albeit *very* rarely), and never more than that. There seems to be an odd bug with 8 threads because the 4th and 9th percentile are stuck at zero (and now that I changed to 64 threads we see some action in the 4th percentile). And yep, Neil Brown confirms this via some email to nfs@lists.sf.net.
  • Did some tweaking on the server -- increased read-ahead on the md devices, and reduced it a bit on the sd devices, poked around in proc. Changed export options to be sync and mount options to be async (where possible). Let's see how these numbers roll over the week.
  • Me next week: [www.softex.br]
08.10.2005 Quest
05.10.2005 War
04.10.2005 Sport
29.09.2005 Art
22.09.2005 Because it's fun
  • 6:30 and some 50km of some good road biking on the road to Descalvado. My legs are DRAINED however.
  • Futzed around with sendmail to get TLS working again. The issue is that I needed to have an ssladmin group that needs to be able to create certificates; however, sendmail doesn't like having group-writeable directories. Rescue:
     define(`confDONT_BLAME_SENDMAIL', `GroupWritableDirPathSafe')
    and doing some chmodding to ensure that we don't have the certs sendmail and the CA use be group-writeable.
  • *** THE HORN TRACK::EGYPTIAN EMPIRE ***
21.09.2005 Why blog?
  • 7am and 40km of the windiest road biking this year. I zipped back doing little fartleks, though.
20.09.2005 BATIDÃO
  • [jorgeabelardo.fotopic.net]
  • Twisted my right ring finger in the 7am ride. Still hurts a bit but today was one of the best rides of the year.
05.09.2005 Pretty crazy weeks
  • Back from RJ today, after a big rush to get to the bus station after a car's battery decided to die on us. Second time in a row something car-and-electrical-related happens which causes me to rush to get to the bus station, hmmm.
  • Finally, available for shipping: [www.amazon.com]
  • And for Christmas, get me [www.amazon.com]
  • I discover /usr/sbin/tz-brasil and timezones are never the same!
28.08.2005 Have you seen him?
27.08.2005 Upgrades
  • Anthem's moving on to its shiny new Hoary armor. A lot of work in between, including some sasl setup. For sasl2, here's how to add a user for smtp relaying:
     saslpasswd2 -c -u anthem.async.com.br -a Sendmail [username]
    and for some reason it's very picky about the domain, and uses the unqualified hostname by default (doh).
  • I also had to recover a backup. So I don't forget (again):
     cpio --verbose --make-directories --preserve-modification-time --extract \
          --format=crc --block-size=64 -I /dev/tape '/mondo/*'
    and a big hint -- if the light's not blinking, strace is hung and you can't control-Z the program, something's wrong.
  • Ran into these issues: [cert.uni-stuttgart.de] [bugs.debian.org] [bugs.debian.org] [groups.google.com] [sourceforge.net]
  • Enabled TLS for sendmail. It was as trivial as setting up my certificates properly, and adding 4 lines to my .mc file. It is so cool to finally have encryption set up properly for email authentication.
     Received: from localhost.localdomain (199-dynamic.async.com.br
             [192.168.99.199]) (authenticated bits=0)
             by anthem.async.com.br (8.13.2/8.13.2) with ESMTP id j7SLKwXS030304
             (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
             Sun, 28 Aug 2005 18:20:58 -0300
  • More migration fallout. Imap in Hoary doesn't have plaintext login enabled, so we had to move all our users to SSL, which is okay apart from the fact that evo seems to behave a lot more flakily. Oh, actually, [lena.franken.de] -- but too late now.
  • The php4 module doesn't support gdbm, so we'll need to convert the phpwiki pages to plaintext format. I've asked Johan to recompile. [ubuntuforums.org] -- meanwhile, super-infinity is generating a package that /does/ have gdbm, luckily.
  • Made favicons available for the whole site (and cleaned up the error_log span too):
     <FilesMatch .*favicon\.ico>
         RewriteEngine On
         RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
         RewriteRule (.*favicon\.ico)$ [www.async.com.br] [L]
     </FilesMatch>
  • Had to install Mail::Mailer and PatchReader using CPAN. I fought it out with CPAN because it insists on using ftp (non-passive) by default, and that just doesn't work. It's irritating because the question that comes /after/ that is what mirrors you want to use, but it hangs there and you need to control-C it away before actually getting a chance to provide your own mirrors.
  • Dealing with fallout because Apache now runs as www-data..
  • Evolution is complaining about our SSL certificate, similarly to what people reported at [my.brandeis.edu]
  • I wonder if this is a better plan for SASL: [www.redhat.com]
  • Properly split the bind database into primary (/etc/bind) and slave-content (/var/cache/bind), which is the only part that is really just a cache.
  • Fixed our Apache configuration to be a /lot/ neater (in many different ways).
  • Our backup software requires: cpio, buffer and ironically, bc :-) Hopefully it'll run tonight.
  • Discovered what Options MultiViews actually does, and why it was raising weird permissions problems on our webserver; [doc.async.com.br]
  • Discovered snmpwalk, which is pretty cool:
     snmpwalk -v 1 -c public localhost
  • Had to do some hacking around in /etc/cron.d and /etc/logrotate.d for mrtg and webalizer but they seem to be working nicely now. One thing that is bothering me, however, is that cron isn't running for some of our users.
  • Friggin cron wasn't running nobody's jobs and I had no clue why. Turns out I was getting error messages (easier to spot now that I have a cron.log):
     Aug 31 12:08:01 anthem CRON[25067]: Authentication service cannot
     retrieve authentication info.
    This message also popped up when su was invoked for nobody. Turns out the reason for this is potentially two-fold: first, nsswitch.conf wasn't updated to account for nis; second, because nobody's password was marked with an "x" but it had no corresponding shadow entry.
  • A bit better from the flu.
24.08.2005 Sick
  • Again. Got the flu; it started yesterday but I only noticed after coming back from the 6:30 bike ride. Sigh.
10.08.2005 The bad bad blogger
20.06.2005
  • My Stone Roses CD was a no-go. Apparently, it's not an unlisted discid, but one in which the TOC is too large for either sound-juicer or libmusicbrainz. Filed bug at [bugzilla.gnome.org] and [sourceforge.net]
  • More preparation for conference, email catchup, prepared for some wiki review.
  • Looked for a locking module that worked nicely under Linux; was pointed to [rgruet.free.fr] and proceeded to suggest this to Daf. Let's see what the people in the know think of it.
  • I see a dirty little hacker! [2005.guadec-es.org]
19.06.2005
  • Did some investigation of Musicbrainz again, now that I've found my copy of Exit Planet Dust doesn't have CD index entry there. Found out the tp_tagger utility which unfortunately doesn't support looking at CD indexes. Then checked out cd2trm.py, which is part of the musicbrainz Python library which is supplied in Ubuntu's python2.4-musicbrainz. However, adding the TOC is actually possible via the Web -- there's just no UI to it. So I used the link provided by cd2trm.py to add it, click-click-clicked, and had it fail because I didn't log out and in again when submitting my TOC entry. Luckily the #musicbrainz people helped me get it added, and I sound-juiced away.
  • Set up sendmail's virtusertable up with the help of [www.sendmail.org] -- it apparently worked without a single hiccup. Now, to get the actual users hooked up correctly. What fun!
  • In case you are unhappy with your vim colour scheme, try this: [www-2.cs.cmu.edu]
16.06.2005 Oink
  • Perled to death. Tip 1: you can check "perldoc perlmodlib" for the standard perl modules. Tip 2: $1 is only defined if a match actually occurs in a regexp, which led to [bugzilla.mozilla.org] Tip 3: checking for a number is easy using regular expressions and perldoc -q "is a number".
  • Did some research on Siemens Gigasets and decided to get this model: [communications.siemens.com] -- the CL50 apparently works fine with our S4010 base.
  • A blur of Sprintathon arrangements.
  • I WANT ONE OF THESE: [www.amazon.com] but nobody sells them in Brazil anymore, apparently, these beloved Laserline CD120TKD CD towers.
15.06.2005 SILÊNCIO. NO HAY GAMBAS.
  • 6:15 wakeup, PP and a solitary ride through the valley of pigs. Apparently people are getting scared by the winter. I need to advertise this morning ride in the hope of getting some extras coming. Nothing remarkable happened apart from the fact that I did the whole loop in 1:30 from door to door which was not so bad. I suffered like hell; my legs feel like lead and somehow my back kills me on the steepest hardest sections of the road. Maybe I need to go to bed a bit earlier and get those 8h of rest.
  • Backup completed successfully (makes me so happy):
     22:16: Setting up mt
     Total backup size: 44G, 290M, 997K, 612B = 1451103 blocks, 1088580 files
     Backing up...
     real    111m41.084s
     user    1m40.810s
     sys     7m37.550s
     Verifying...
     real    71m28.453s
     user    1m16.430s
     sys     0m27.700s
     01:36: Ejecting tape
    So in 2:15 the whole 44G are on-tape. That's just awesome.
  • Dealt with the usual barrage of email, did some IRC coordination.
  • Did some planning for transport and equipment and lodging for the sprint.
  • Wiki hacking to update review instructions. Updated PreMergeReviews and created a TipsForReviewers.
  • In Python, why are there separate tuple and list types? [www.python.org]
  • If you're looking for companies that do transfers in São Paulo, with drivers, look no further than [br.dir.yahoo.com] -- searched and contacted some, though I found them more expensive than I hoped for.
  • Canonical management meeting.
  • Did some more coordination over IRC, with multiple shots fired from multiple places (launchpad, hct and above!)
  • Reviewed Keybuk's HctOneDotZero wikipage.
  • Went home to write up the @#!$!@ LP report I am two weeks overdue with.
14.06.2005 I had a great title for today's diary entry
  • 7:30am wakeup -- rest day! But no rest day is complete without power powder, and I actually had a cheese sandwich today to celebrate. My, my. Picked up my copy of Orbital's Snivilisation at the post office (and celebrated Amazon Marketplace) and dropped my bike shoes over at another shoe shop to try
  • A flurry of CFS bugfixes and updates (over 15). Still need some traction on some of the nastier stuff and new features, but all in all, moving in nicely.
  • Looked for places which do DAT tape repair. Well, I want to at least trade in these old ones for AIT tape, you know? Fired off another backup over the night; let's get you the stats in the morning.
  • Went back rather late and assembled the cleat on my new shoes in preparation for tomorrow. The dogs only pulled one of the cleaning cloths off the clothesline so I am calling myself "very lucky" today. I tied the line down properly but we'll see how that goes.
13.06.2005 Do you like dags?
  • I used to, until I entered my house at 4am and found the front garden completely destroyed. They even chewed up my hose, man. Right, the hose to which they had chewed up the tip a few weeks earlier. I never got to use it. I am /so/ feeling like getting rid of Estrela and Monica over the weekend, just you test me! They got no food this morning in return. At least I cleaned up the back which really really needed it.
  • 7:30 wakeup and whoa it's late. Power powdered (of course; how I miss this when travelling) and fixed up my speed bike and did a 1.5h ride out on the road. It's been a while since I've ridden on the road (and a while since I've actually had a rest day too, hmmm) and my legs felt grinded. I'm going to take tomorrow off, just to rest my legs (and I might have to buy a bike shoe in the meantime, since both of mine seem to be falling apart).
  • Got to the office rather late, trawled through email and IRC logs and set myself up for a good day of work.
  • Installed the SCSI terminator and the 5-device SCSI cable! This was a lot of work (just to get the damned fans installed almost killed me) but the end-result seems stable and wasn't as expensive as you would have thought. I love Brazilian component manufacturers.
  • Meeting with Daf and Carlos.
  • Finished off my bizdev report, and my Launchpad weekly report -- almost in time for my next weekly report too, you know?
  • From the 5th of may till today I received 6111 spams. That's just a bit less than 200 a day. But then, Johan pointed me out to [www.acme.com] this week, and all these 'statistics' start to look like peanuts.
  • Some serious Bugzilla hacking and regression testing for a recent CFS update.
  • Went out to check on hotels for the warthogs conference, and started the painful process of planning arrivals and transport to São Carlos. I need Claire!
  • Purchased a nice little Specialized bike shoe and a floor pump to replace an aging Zefal double-shot I had. I am still feeling guilty about it, though, and I would much rather fix my double-shot. This reminds me I have a stack of stuff to
12.06.2005 It's 'catch the bus' for you young man
  • Rode with Michy and Mariana around the killer loop in Itaipava. Mariana was a brave girl and after a little dizzy spell recovered and roller her way almost to the top of the hill, and then rolled down in the dark (it's always dark there, but having sunglasses on doesn't make it any better you know).
  • Raced down to catch the bus after Xuxu's car refused to turn on. There was some heavy traffic coming into Rio and I ended up getting to the bus station 10 minutes late. However, all was saved when we realized the bus was delayed and still there! I actually ended up having to wait for some good 30 minutes before somebody showed up to let me put my bike and bag in the baggage carrier. I'm so lucky! It turned out that Xuxu's car didn't work because she was using the wrong key, doh!
11.06.2005 Fond of you
  • Rode with Michy around one of the killer loops in Itaipava, where we have real mountains that knock the wind out of you.
  • Had a massive fondue with representatives of all the families in Rio: Xuxu, Kiko, Nick, Michy, Crica & Mariana, Emilía & Olímpia, and of course the amazing and unforgettable and gracious and witty Alayde of Ribeirão Preto, SP (though that was about 86 years ago).
07.06.2005
  • There's an awesome page I hit yesterday that talks about trams in São Carlos almost 100 years ago: [www.tramz.com] -- it's in english, which is interesting, and it has all sorts of interesting little details about trams and the city. Neat how something like public transport really captures the essence of city life at a certain point in time..
  • 6:00am wakeup. Ran the dogs around the square and power-powdered but arrived at the terrible corner 15 minutes late, though Johan didn't kick me for it (not this time at least).
06.06.2005 No way
  • Yes. [www.worldjumpday.org]
  • 6:30 wakeup. Broken shoe means no biking. Took care of the dogs, and then down for the good-ole ball-pitching (my left arm slowly gets better at it, but my right arm still dusts it whenever I try. It also hurts like hell so I avoid it as much as I can). Was accompanied by the illustrous Sal6 who hobbled away to meet his ex-supervisor to help him to something somewhere. It was all very complicated, or maybe it's because it was 7am and I was kinda hallucinating after a litre and a half of power powder and vitamin C. Did a grueling 1 hour run that took me around Marginal and up and down São Paulo (the final ascent is not as bad as I predicted); my plan was to run up to Sta. Felicia and /then/ around the rest of Marginal but luckily I talked myself out at it about 5 minutes into the run. I would have DIED.
  • Tried to sort out my rescision of my apartment's contract, but there's still some itsy bitsy details.. such as getting at least some of the money I paid back!
  • My Empirion and Sun Project CDs arrived, but Nando already confiscared the Sun Project one (luckily, not before I managed to rip it into trusty .oggs). Spoke to my mother who together with Michy and dad ran the 100k relay race in Brasilia this weekend. Apparently mom and dad ran with Brazil's sports minister (though this meant my mom ran 5k instead of the 12 or so she was supposed to). Dad and Michy had great runs too and they were all proud and cheerful on this cool Monday morning.
  • Hacked into email and caught up on activity on Launchpad. This isn't as easy as it seems because there's a /lot/ of email, bugmail and people involved, as usual.
  • Chatted to Mako about shipits, the Media Lab, graduate studies and how I should get my MSc stuff translated into English. I am such a slacker :-(
  • Malone IRC discussion and mail-reviewing.
  • General Malone QA.
  • Phone call on CFS process support, almost there.
  • Phone call on Bugzilla additions to better support group and privacy controls, made nice progress; commented on bugs to unblock people.
  • Handled spam and unsures. I don't have so many, which is nice. What isn't nice is that some spam started falling in my inbox. I got two pieces today after a /long/ time with none. Darn.
  • Fixed up conference details for the barzilian sprint.
05.06.2005 Backed up at last
  • Started a new run of the database with the full content that should be backed up -- I was omitting export and some bits of mondo. Just listing the files takes 16 minutes, and the total content looks like
     Total backup size: 43G, 1008M, 906K, 688B = 1441308 blocks, 1057712 files
    Backing up itself takes
     1432097 blocks
     real    116m25.890s
     user    1m46.150s
     sys     8m12.010s 
    and recovery is a scant
     1432097 blocks
     real    71m45.273s
     user    1m18.220s
     sys     0m32.260s
    I got one CRC error because a VMWare image changed, but such is the situation with all-live backups (and I'm a cheapskate at some things, aren't I). But damned, 43G -- and we can still fit triple that on a single tape. We used to take 180m to back up just 21MB on the old DDS-3 -- we take the same time to do backup /and/ verify. I'm loving this AIT thing!
  • Did some hacking on positron to make it stop crapping out when reading from my Neuros. It is getting back two long integers jammed into the same string which causes struct.unpack to bomb away. Found a report and a patch available at [trac.xiph.org]
  • Spoke to goldeagle about becoming a MOTU member, seems interested. Pity he didn't pick up the Hoary CDs I burned for him at FISL.
  • Cooked some dinner with the infamous Sal6. It was two-pepper fusili bolognaise, not radioactive but enough to make you feel fuzzy and emotional. We also tried to watch Lars von Trier's Element of Crime but decided at 23:30 that we were to sleepy and left the ending for some other day. Totally surreal, will require multiple watchings to pick up the details. It kind of reminds me of The Third Man, in an odd way.
  • No biking today. Broken shoe!
04.06.2005 I couldn't get away
  • The backup ran /beautifully/ and even the tape eject went smoothly. This is a day to remember :-) Here is the breakdown of the times:
     Writing:
         738498 blocks
         real    94m23.440s
         user    0m58.940s
         sys     4m20.800s
      
03.06.2005 We got signal. Sorta.
  • 6:00 wakeup, took the dogs for some much-needed exercise, and cleaned up out back. The grass in the back is really suffering from the winter and I wonder if it will really grow back. Maybe I should just bite the bullet and get real thick grass planted back there (and hope the dogs don't destroy it as they usually do). I wonder if there is grass which is strong enough to handle these puppies, though.
  • We did about 7 loops around russian roulette and a few interesting things happened. First, Johan did them all, and very well -- hell, we could have done 5 extra ones and still survived. Second, I have reconquered that downhill, and blasted through it like there is no tomorrow. Third, I realized /why/ I crashed on that fateful morning (I hadn't realized it yet, imagine that). While I was careening down the third or fourth lap today, I realized that it became very difficult to see the ground and the exact direction of the criss-crossy trails; the reason turns out to be that the sun is directly behind you as you come down, and at around 7:40 it is blasting up the hillside and completely landing you in shadow. It's /really/ hard to see where you're going. The day I crashed Magno and I left at around 7, so at 7:40, the first descent of the day, the sun was already in that deadly position. It's tricky because the exact place you need to turn off to avoid crashing and burning is hidden, sort of sketchy, and right after a bumpy bit in the trail. No crashes today! Fourth, and finally, even though we had a great time and rolled like there was no tomorrow, we /didn't/ appreciate the fact that the cows and bulls walking up made a bit of a mess on the trail.
  • Oh, right, I'm back from Porto Alegre, where I had a whirlwind tour of FISL with the countries star hackers, including Sidnei, Dorneles, Xiru, Leo, Luciano, Senra and the rest of the python people. I miss them all already, and can't wait for next year (where I /will/ spend the full time there by brook or by crook). It's weird being teleported from one world into another, but fun all the same.
  • Sorted out our tape backup, finally. The 2 sample AIT tapes and SCSI cable arrived today and I proceeded to dismantle and reorganize Anthem. There was (hah) a catch, of course; I had put all my trust (you see it coming?) into using the existing terminator and #$!!@#!@ it is /INTEGRATED/ with the old four-stop cable. ARGH. Anyway, I had already disassembled and moved the server around; I decided to bite the bullet, remove one of the hard drives from the RAID array, and put the tape in. We now have a functional tape drive, a RAID array running in degraded mode, and a lot of money to spend left on tapes, terminator and a few hours of psychiatric treatment. I hope the block size of 32K is okay for this drive, by the way..
  • Reorganized my TODO lists, caught up with everybody on the channel, and pointed out to Mark where to find examples of the new Python 2.4 list DSU support: [docs.python.org]
  • Kinnison and Celso did a grand demo of the build daemons and the pool manager; we see Soyuz 1.0 creeping into the horizon. I challenged Kinnison to get a publisher working by noon tomorrow; let's see how that goes.
02.06.2005 FISL v6.0
  • For Celso and Kinnison: [www.discogs.com] and [www.mercadolivre.com.br] and [www.musicstack.com] for Company B's lost first track on that album.
  • And if you're curious to know where the coolest swedish hacker once lived, you should check out the picture shed at [www.ulricehamn.se]
  • A taxi ride from FISL (at PUC-RS) to the airport cost R$20, which is about one fourth of which I spent to do a possibly shorter route in São Paulo on Tuesday evening. Life is not fair! The flight out from POA was delayed but I managed to swap in two of my upgrade vouchers for a business class flight, and I enjoyed a nice seat and extra food for perhaps two hours. Caught a R$60 (hah) taxi to the bus station (only to be disappointed at the changing bus timetable that eliminated a few choice times). I had a pretty rough bus ride into the night but arrived at 1:30 unharmed; scrambled back home and tossed and turned until 2:15 or so.
31.05.2005 In and out the rabbit-hole
  • 6:00 wakeup. Power powdered and fixed up the KHS' pedals to go for a ride through the valley of pigs with Johan. Was about two hours, which means that I have to either take care of the dogs earlier or wake up even earlier (or get Johan to ride the full loop in 1:30 which is on top of my list).
30.05.2005 ex-Brasilia
  • Back from Brasília, where I went to the dentist, to a doctor, to another dentist, to bed, to beto's to pick up a tandem, to altiplano leste for a killer bike ride with Michy, Rodrigo, Carla et al. (see [www.async.com.br] for pictures), to a marriage (Leo and Ingrid had a beautiful jewish-ish wedding), to bed, to QI 17 for some more tandem biking, to a nice and crazy-looking natural restaurant called Toca da Tribo, to a little skateboarding banks with Dieter (where I proved I can still ride after a year of no practice!), to Tok Stok (we have furniture!) and finally to the bus station.
  • Arrived in São Carlos at 8am, and dragged a /very/ heavy bag home. Organized that home somewhat, and took the dogs for a walk before hiking up to the office (in the rain, I should add).
  • Dealt with email, IRC and bugmail.
  • Phone chat with SteveA on travel and the sprintathon, now definitely in Brazil. Hiked over to a hotel to check the place out.
  • From the weekend's news, I will need to buy /yet another/ SCSI cable. This is /so/ silly it hurts. Tapes arrive on Wednesday, but I need to find this @#!@#!$! cable. Aha, found some options (finally): [secure.intralab.com.br] [www.labramo.com.br] [www.rumo.com.br] [www.mercadolivre.com.br]
  • Re-reviewed some specs and went out with Celso and Kinni for some dinni.
  • Assembled the new clothes rack in the middle room with Kinnison. Tried for the third time to make that damned bike rack stick in the second floor, this time using good old steel wool as per Sal6's recommendation. Also put the hooks and string in for a retractable clothesline! I rock!
26.05.2005 Body of Christ
  • 6:30 wakeup and it's VALLEY OF PIGS for sal6 and I (loser turnips not included). Was muddy as hell and quite cold, but thanks to my sleeves I felt not a bit cold. Climbing felt good (but it always does on the Specialized and the Cross-maxes help) but my legs hurt a bit from the run two days ago (I'm in bad shape cross-training-wise).
  • Dag control. Cleaned up and took the dogs for a walk, including a labrador which apparently got lost. Took the labrador in for today as well to avoid her being run over. Hopefully her owner will find her in able time.. 4 dogs, dude. 4.
  • Had some late breakfast, washed the bikes with Sal6, took a shower and rolled into the office.
  • Did inbox control -- the filtering strategy works pretty well, and set up some additional mailboxes. I noticed that mdz keeps "incoming" folders separate than archival folders, I should imitate him.
  • Set up a mysql tunnel for pbojanic. This was interesting because MySQL's complete special-casing of localhost pulled my carpet a few times. First, I set a password only for the account on localhost; I did this initially because I didn't want to use % and then, even if I /did/ use %, it doesn't cover localhost (for some weird reason). Second, I set up the tunnel doing
     ssh -p 922 -L 33306:localhost:3306 foo.bar.baz 
    and tried to connect using the client
     mysql bugs -P 33306 -u foo -p  
    but mysql just refused to use the specified port, using the domain socket instead. Then I read [dev.mysql.com] in particular
    A Unix socket file is used if you don't specify a hostname or if you specify the special hostname localhost.
    It turns out that the right way to do it is to use a different host -- and yes, 127.0.0.1 works fine. But then, because I had set up mysql to only allow connections from localhost, more trouble ensued! I ended up adding a permission for % and living with it.
  • Remembered MySQL's skip-networking option in my.cnf
  • Did some more random tasks and inbox management, and ran off to Brasilia. See you all on the other side.
25.05.2005 If it rains tomorrow I'm going to XXX
  • 6:30 wakeup, but boo, rain rain rain, so 7:50 wakeup with Kinnison trying to open a locked door. Breakfast and made the dogs happy and fixed a flat tire which has been bothering us for a few days now.
  • Nuked out email, knocked some reviews out the door.
  • Had a meeting with a person who's going through a test phase at Async, and with Gustavo from a Parqtec company, who wanted to discuss a PIPE partnership.
  • Sent some email to Nokia pleading for an OSS discount.
  • Did a valiant effort to triage bugmail and get my inbox under control. Getting there -- kicked about 100 today and instated more radical filtering based on mdz's suggestions from yesterday's IRC chat.
  • Short BradB and BjornT meeting.
  • Long management meeting.
  • The real meaning of having been born in the 70s these days:
     <you> your bug numbers are so short :)
     <kiko> heh. it's a young distribution :)
     * you fixed a 4-digit Mozilla bug once
     <kiko> when we were all 20 years old, right? :)
     <you> hm?
     <kiko> what's there to hm about?
     <you> who-all was 20 years old?
     <kiko> the 4-digit mozilla bug -- I was hinting it was solved a long
     time ago. was my humour lost on the fact that you /are/ 20? ;)
     <you> I'm 21
     <you> I was 19 when the bug was fixed
     * kiko cries
  • Got Olivia's stitches removed, finally. Also bought some Frontline to try and control the tick infestation there (but we need to get the lawn taken care of, then).
  • Discussed with mdz how exactly LaunchpadIntegration is going to work. We don't know yet. Got seb128 and jdahlin to discuss it and verify alternative solutions.
  • Assisted Jurandy with some CVS lock issues; I pointed him to [durak.org] which is a killer reference on the topic.
  • Did a ton of Malone bug triage and tried to poke everybody under the sun to get on top of reports. Activity reported. Spec reviewed!
  • Rolled back home at about 9pm, and made guacamole, rice and some sizzling soymeat for Sal6 and I. It rocked the system. Fabia ended up finally dropping by tonight.
24.05.2005 The eagle has landed
  • 6am wakeup. It SO sucks that it's raining yet again, so I hobbled around for about 40 minutes and then went out for a run. The run was great and my legs were remarkably fresh as I plowed up and down Sta. Felícia. The traffic on the road getting back to my place at 7:45 annoyed me and I'm determined to change the route to something that probably equates to some 12km the next time around. Hopefully it won't rain tomorrow, though.
  • Rolled into office early at 8:30, and did 1.5 hours of email catchup. Had a meeting with Daf and Carlos to try and find a way to silence their launchpad-errors spam, which was not as positive as I had hoped but apparently it's a bit involved.
  • Daniel arrived! Went home with him to sort out his lodging and so he could get refreshed for his first day of soyuz sprinting with Celso. This also means I now have in my hands an AIT drive of some beauty (but unfortunately no SCSI cable as of yesterday's fiasco. That will take at least a week, so alternatives are being sought out)
  • Chinese! Daniel got a load of yakimeshi and some açai -- that probably ended up being unusual for the northern-hemispherian!
  • Spent some time trying to track down back-button-erased-my-form mozilla bug at [bugzilla.ubuntu.com] which lead to [bugzilla.mozilla.org] and [bugzilla.mozilla.org]
  • Whacked out some email and did some Wiki-editing.
  • Phone call with SteveA to touch base and get some unresolved issues moving.
  • Bought some books for mpt.
  • Phone call with mdz. Set up to have an u-d meeting tomorrow on Bugdays. Matt asked what the meat was and I thought that was amusing.
  • Reviewed specs and packed up home.
  • Had the rest of the nuclear chilli with Johan and Sal6. Spent the evening reviewing specs and trying to guess music from Kinnison's music collection, which I did, let's say, average at. 23:30 sleep under some pretty intense rain. We need to get that roof fixed at some point..
23.05.2005 Slackin' back on track
  • 7am wakeup; took care of the dogs, got Sal6 and Claudia out of bed and stopped by the bike shop to get Claudia's bike set up (new stem and brake levers, minor other little fixnits). Sent her off to Campinas to pick up some bike shoes. Got into the office an hour late and lo and behold, 250 unread emails!
  • $#@!# SCSI CABLES. Bought the wrong cable for Centrin, and the next possible option costs (no joke) U$250. Decided to purchase internationally, checked out [www.cablestogo.com] and proceeded to make a pretty complex purchase via Amazon to deliver in California. Fingers crossed that it will arrive in time, but suspect it won't given some sort of mismatch between Amazon and C2G. Called up Dee at Business Sales to try and sort it out. Pray. Sigh. And the prayer came through:
     We only ship UPS ground with Amazon.com.  However, in order to help you
     out, we will eat the extra shipping cost and ship the product to you 2nd
     day.  This is for this order only.  I am going to add the freight that
     you would have already paid so that the order stays at the same amount.
    Man, this company /rocks/. I will definitely be sending more business their way in the future.
  • Man, I am for some reason /very/ sleepy today. I wonder what's gotten into it -- maybe just the lack of the morning bike ride? I hate it when it's rainy (boo Shirley Manson) and by the look of [br.weather.com] it's going to look like this through Wednesday. Apparently the power lines here in São Carlos don't like it either, and we had intermittent failures for the whole day. We still need to get this house's grounding wired up properly..
  • Arranged to have SCSI cable sent back to Centrin, swapped for two AIT-2 SDX2-50C tapes (so we have something to back up to when everything we need is finally set up). So who knows? Maybe that part of the backup soap opera may be coming to a close.
  • Sorted out some books that needed to be shelved.
  • Classic moments in IRC history
     <kiko> do you like dags?
     <Kinnison> erm, what are dags?
    He hasn't seen Snatch, but he will soon, I suspect. Celso's picking him up tomorrow and then they're in for some serious sprinting.
  • Some IRC and email discussion on Launchpad. I spent about half an hour user-testing Rosetta and the translation widget is /so/ much nicer, it really is getting there. Fought email down to 100 to-reply-to.
  • Worked on some CFS tasks and reviews in preparation for the deadline. Also mailed the TSP team to see what they thought of our changes.
  • Only sent out 26 emails, this was a weird day.
22.05.2005 Winter is here
  • Uhm, really. It's like 15C. We got Claudia's bike set up and went for a ride in the morning (after a pretty slow wakeup and breakfast process); Johan managed a pretty steep downhill and Sal6 and I had fun chasing each other like we haven't had in a long time. Had lunch at Ciao Bello, and then slacked around watching the pilot episode of Twin Peaks (though everybody but Johan either slept or got really distracted). Dale Cooper is /such/ an amazing character. I went to the shopping center and bought a shelf and a hose (mom, finally!) and Claudia knocked a pot over and cracked it. We fled red-handed. Keren-Or rang me up while I was mid-shopping and reminded me (yet again) that in Israel, Sundays are like Mondays. And movers come to your house at midnight. I like the sound of that.
21.05.2005 Are you ready to rrrrruruuuuruuumble?!
  • 7:20 wakeup. Guess I can't really sleep in predictably anymore. Assembled my tool rack, finally, with some help from Celso's drill and my ingenious use of spacers. Watered the front garden to ensure the gardener's work lasts. Took care of the dogs -- can you believe that yesterday, in 4h that I left Estrela and Monica with Olivia, they ripped off her lampshade. I've decided to not worry about it anymore. Picked up bits of gnawed leash; Estrela is like a little devil, man. Anyway, did some minor reorganization of the house, checked with Thiago that my bike is all a-ok, spoke to Claudia and Sal6 on the phone.
  • Rolled into the office. Tackled the usual mail, sorted out my todo lists and travel plans for June. Got my activity reports sent in. Minor bug triage. A bit of IRC chat. Helped Salgado with Makefiles.
  • Got the KHS finally assembled with the new Marzocchi fork. It is kinda high but rides pretty well even so. How do I know? Well, we did a monster ride to Analândia, all of us, today. No crashes, lots of fun, 3 flats and quite a few people - Johan, Osvaldo, David, Magno, Chinaglia, José Bones, me, Du. The KHS is riding spiffy, though I think the stem is a bit too high for it now -- could get it swapped at some point. Met up with Claudinha at Cuscuzeiro, had 3 cokes, went to Terencio's place and decided that all was good and enough and over; gave Chinaglia our bikes and drove back to São Carlos. Dinner consisted of some delicious fish at Castelo and then rode back in time to connect with the legendary Sal6! Visited Teia for their 4th anniversary and enjoyed that until everybody was feeling more than a bit sleepy. Ended up watching half of La Cité des Enfant Perdus but everybody was just falling asleep. All things considered, I need a better sofa.
20.05.2005 Bikes. Maybe bikes own my life -- after all, I sleep with them.
  • 6:20 wakeup, which was /bad/ because I had set up the ride for 6:30. It was a nice valley of the pigs ride, or would have been had I not broken my chain on the first section of the uphill, banging my knee /again/ and cursing because I had no chain tool. Magno lent me his and all was good for the rest of the ride. I feel totally rested and wickedly strong on most of the uphills and flats which is a great thing. My fork is now a lot better (stiffer!), and my /arms/ actually hurt this time. I've mastered the air adjustments in the SID.
  • After rolling back in, took care of the dogs and today for the first time a gardener that arranged a meeting /did/ show up! He did a nice whack of the front yard and I suspect it will come out pretty. Rolled off to the office 30 minutes late but happier. And then I realized I forgot my glasses at home.
  • Email cleanup. Had 200 because of some launchpad-errors list people opened the floodgates on.
  • Meeting with Daf and Carlos, looking very good.
  • Meeting with Brad and Bjorn, also spiffy.
  • Tackling email and IRC support and coordination. This project requires /lots/ of overcommunication.
  • Phone call with Mark to update status.
  • The mail from launchpad-errors keeps coming in -- hopefully somebody can nuke at least the empty mail that nags me horribly. Procmail to the rescue meanwhile.
  • Got a chain tool (yeah) and some sleeves at the bike shop; also picked up some tires that may come in handy in the very near future. Also spent some time at the bank dealing with the export paperwork. It's interesting how none of the security people at the bank figures me for a company owner, and they always make me say who I am and fidget and go inside and ask for permission before letting me in after-hours. Sigh.
  • Corbani called and said his dad, who had a pretty nasty cut in his foot about a month ago, is still in the hospital; blood clotting is such a dangerous thing. I wish him well. This also means it's likely Corbani will see no biking this weekend, which is a second tragedy.
  • Met up with Renata and Débora and had a conference with Camilo to try and get SAFE hooked up with Camilo's proposal for a toolkit to support MPS-BR. This is /such/ a good idea I just wish we had funding to be able to get people to actively work on this infrastructure.
  • Only sent 31 emails today. It's Friday!
  • Went to Café da Mel and listened out to Karmo rolling the house decks up till midnight. Had some great chips-n-guacamole, met practically /all/ the suicide bikers in the area, and even met a babe. Rolled back home at about 1am.
19.05.2005 Actually, dogs dictate my life.
  • 6:20 wakeup, though I rolled for an extra 10 minutes in bed -- YAWN. Checked out the dogs. So amazingly enough Estrela and Monica aren't ripping apart the front yard, though they can't seem to keep their water trough alone -- they'll just be thirsty. Small improvement on Olivia's side, still nothing amazing, but getting there.
  • Short ride with Du to pick up some pictures of some gym equipment so we can design something nice for the square close to my pad.
  • Rode up to the office rather early on cprov's request. Launchpad meeting first thing, sorted out launchpad-reviews and got some tracking on late-breaking issues. Dealt with email somewhat, but it's now at 75 messages.
  • Sorted out the launchpad-reviews mailing list. Talked to SteveA on the phone. Fixed up the reviews wiki page. Hours pass.
  •  <mako> oh man.. i just replied to an allcaps email in allcaps..
     and now i got my all caps reply
  • Email on reviews and bogosities on LP. Dealt with some spec reviews. Who can context-switch faster than I?
  • Inbox management post-lunch. More spec review.
  • Published our Speedy authentication script at [www.async.com.br] in the hope that other Speedy users can avoid the hassle of having to relogin every time Telefonica has a hiccup.
  • "Published" my pictures from Australia at [www.async.com.br] -- hey, there's Sydney harbor bridge at [www.async.com.br] and none other than Jordi and the Canonical Mafia at [www.async.com.br] and whoa, some odd buildings at [www.async.com.br]
  • Reorganized my TODO lists so I don't go crazy.
  • Found a gardener and arranged to meet him at 8:30. Let's see if this one shows up. Spoke to Corbani and he says everything is peachy and he might even buy me a clothes rack if I'm a good boy (I am a good boy). Visited Du at Teia who produced email requests. Baaah. Tried to offload them to Salgado, unsuccessfuly. I need to try harder.
  • Meeting with Celso and report.
  • Meeting with Salgado and report.
  • Got people on IRC to bother our DBA on the other side of the world. s/bother/wake up/ hoho
  • Wrote 46 emails today in total. Okay, this is scary. I have written since February 9th, this year, 2030 emails.
  • Finally, a hint to why we all love mpt:
     From: Matthew Thomas <mpt@canonical.com>
     Subject: Quick guide to mpt's crusty olde ASCII art
     ~
     Checkboxes are square, and radio buttons are round. I promise I'll never
     use ASCII art in specs, but for future reference on the mailing list:
     ~ 
     ~        [ ] checkbox
     ~        [/] checked checkbox
     ~ 
     ~        ( ) radio button
     ~        (*) selected radio button
     ~ 
     [         ] text/password field
     ~ _________
     |       |A| multi-line text field
     |       |:| (<textarea> in (X)HTML)
     |_______|V|
     ~
     [foo    :^] option menu (<select> in (X)HTML)
     ~ _________
     |[/] Aa |A| multi-selection listbox (<select multiple> in (X)HTML, until
     |[/] Bb |:| we generalize the widget I gave Daf for language selection;
     |[_]_Cc_|V| see [bugzilla.mozilla.org]
     ~ _________
     | Aa    |A| single-selection listbox (<select size=...> in (X)HTML,
     | Bb    |:| though we may want to roll our own widget for this too)
     |_Cc____|V|
     ~ 
     And stuff we won't be able to use for a while yet:
     [       |v] combo box (<input> with <datalist> in Web Forms 2)
     [Bar     v] drop-down menu (<menu> in Web Apps 1)
     =====O===== slider without marked values (<input type="range"> in WF2)
     =====V===== slider with marked values (<input type="range" step=...>)
18.05.2005 I think email dictates my life
  • 6:20 wakeup, dag control -- Olivia still not so hot, Estrela close to perfect, Monica looking good. Estrela has decided to dig yet another hole in the left area of the backyard (protesting for not being taken out for a week) and I've put her and Monica up front for today; Olivia's hanging out in the back. I /so/ wish they get better and all this confusion ends, I miss taking them out every morning (though I guess I appreciate the extra 30 minutes of sleep).
  • Biked with Johan around UFSCar; did 5 1/2 loops in the forest and then did a short ride out back; nothing spectacular. My SID fork is still kinda mushy; I need to do some experimenting with that little pump, and get that sorted and understood; I'm pumping 150 in the top left chamber but it still squishes in when I do standing climbs. Had some juice at PQ Sul and stopped by the pharmacy before rolling into home.
  • Hacked on email. I arrived with 110, down to 45 again, but it worries me that I left yesterday with 40. I need to do some analysis of the traffic, but it's just bugmail combined with lots of LP discussion combined with random email on tasks for me to do.
  • So Johan and I, we want a pair of these: [onlinestore.jetaudio.com] -- they are actually listed but unavailable at [www.amazon.com]
  • Phone call with Carlos and report.
  • Mako and I did careful research this past conference, and it has paid off: we have conclusive evidence that top-posting is associated with people who are social deviants or managers. Read all about it at [mako.cc]
  • Reviewed two Rosetta specs.
  • Out for lunch with email at 50 (+640 in my laptop's saved replies inbox). Did I say lunch? I meant CHINESE!
  • Back with email at 53.
  • Phone call with BradB and report.
  • Canonical management meeting, though only Jane, Steve and I made it.
  • Phone call with mpt and report. Only two left!
  • Meeting with evandro. 56 messages.
  • More IRC and email, but I'm loosing out this battle.
  • Arranged for a Marzocchi Marathon S fork to be delivered for assembly on my other bike -- we may have a winner there. Still need to get the hooks for my toolrack, but I'm getting there. Tomorrow, maybe.
  • Reviewed some CFS work, which is looking very good. We have a couple of hard deadlines for the next few weeks, but we will do it.
  • Wrapped up today with phone calls to Sal6, BT and my parents. Nice to see my inbox has only 45 messages -- I won!
  • Nando and Romaia stopped by last night. I took good care of the dogs; Olivia appears to be getting better, the cut slowly growing less swollen. Monica has taken to licking her stitches, and the skin around it is getting pretty raw and sort. Can't get her to stop without a damned lampshade; will check with vet tomorrow. Estrela is a star and never touches her's -- can't tell if that's why it's getting better or if the causal relationship is the reverse. Crashed at midnight after arranging some resolutions with Nando.
  • Wrote 48 emails today in total.
17.05.2005 Holiday, repeat, repeat
  • 6:30 wakeup but decided my knee needs an extra day of rest so I didn't go biking. The knee itself makes weird creaking noises when I press it; here's hoping it improves over today. Bought some screws and assorted hardware to assemble my homebrew tool rack; just need some hooks now and a drill to connect it all. Also picked up a ton of clothes that I sent off to mend (Johan must be happy now).
  • The dogs are a riot. They ripped apart half of the shirt I put on Olivia, and ate the bindings for the lampshade. So Olivia's grounded in the front for today, ha! I think she's improving, though -- the stitches today look less swollen. Monica and Estrela are fine, of course (as always).
  • Meeting with Evandro (about 40 minutes) to discuss the product editor for Stoq, looking quite nice right now. Let's hope we can keep this thing turned around and pumping from now on. These daily meetings help a lot, I feel.
  • Tackled email like there was no tomorrow. My LP email just keeps accumulating, though :-/
  • Decided on the internal AIT drive (it's easy to make decisions when there's no other option, isn't it?) and it should be arriving in the next week or so. I can breathe easier as soon as we have a tape drive. Bought a SCSI cable at [www.centrin.com.br] and planned to buy the tapes next week, when our illustrous international guest arrives.
  • Don't you just love weather on the weekends? Just check out what we have in store for you: [br.weather.com]
  • Reset some passwords today. These two links are pretty useful: [64.233.161.104] and [64.233.161.104] -- particularly because it appears db.debian.org just drops all packets from our host, no qualms about it.
  • Meeting with BjornT and BradB to check out the status on good ole Malone. Meeting with Daf to check out the status on language pack exports, had him offload a problem to fix to Salgado, in the hope we can debug it with two heads here.
  • Started on performance review meetings and phone calls. I have quite a few to whack through. Debonzi, Daf and BjornT tackled, and reports shipped off. Whoof, so much work.
  • Reviewed patches for BradB. I wish I knew this code better. Filed some Malone bugs in the process.
  • Arch is humour, too: [lists.slug.org.au]
  • Did a Bugzilla tag for timello's Product.pm work.
  • Checked on CFS status, and wrote more email.
  • Called on Corbani and checked on his visit over the weekend. Weekends are fun! Algo called Guila up and asserted the little trek is good to go -- it should be, of course, but he tells me the tires are shot from lack of use. Hmm hmm. Tires.
  • So my IndexedCatalog/Python/PyGTK acquaintance Cliff Ilkay's brother is a competitive downhill racer, named Ender Ilkay. I'm looking for some pictures; this is what Google tells me: NOTHING. How can a competitive mountain bike racer have no pictures up!
  • Slept at around 11, after some dag control. Olivia /seems/ to be improving but I don't like the oozing out of the wound. Maybe it has to do with the cream we're using; I hope she gets better very soon. Estrela's cut was actually oozing plasma as well but given that her belly is now no longer swollen I figure it's just liquid that accumulated after the operation that's being put out. Monica was fine but still a bit swollen.
  • Wrote 45 emails today in total.
16.05.2005 Revenge of the pigs
  • 6:30 wakeup (sleepy) rolled out of bed, helped the dogs out. Olivia is definitely not so hot, though she may be a tiny bit better than yesterday. She's eating and walking around, so that's a good sign, at least. Arranged to go with the vet to check them out at 16h.
  • Rolled up with Johan to meet Magno and did a full valley of the pigs loop (took us 1:50 this time, though -- we need to push this down to 1:30 if we are to keep the 7am start). Nothing remarkable apart from the fact that my fork still feels a bit mushy and my knee @!#@$! hurts, still. I need to get some ice on it today. Johan apparently got a bit nuked from the ride, or maybe from weekend extravaganzas, who can tell? :-)
  • Knocked email back some 30 notches and hacked up a todo for today. Ugh, I need to go to the bank, man. AND to C&A. This is looking bad.
  • Organized and participated in UbuntuExpress meeting on #ubuntu-devel, introducing "the brazilians" to Kamion and ogra. Seems to be working well, surak is sharp and the guys are interested. Got to make them hit the practical goals.
  • The bugmail just pours in! Trying to vy for sanity with it. Failing.
  • During lunchtime went to C&A, the bank, the bike shop, C&A again. Oh, and stopped at a shop to buy a plaque of wood to assemble a little toolhanger in one of the rooms.
  • Meeting with Daf and Carlos on Rosetta. Action points, blockages analyzed, good traction on most of the specs. Daf's gonna email us with some (hopefully good) news on DB timing.
  • So I needed to get that crazy lampshade for Olivia, and some extra medicine. I think I've spent more on the dogs than on bicycles this year!
  • Stopped by Teia, and convinced Du to call city hall and get them to tell us what we need to do to approve him and I building a little workout area in the square next to my house. That will be a pretty nice addition, I think.
  • More IRC discussion with SteveA and BradB and the brazilian mafia. Some UI specs, some hackage, some email destruction.
  • Got Nicole at CFS to move to Thunderbird. Guess if her email problems weren't completely solved the moment she turned it on? :-)
  • Some nudging on #bugzilla do get things to go the way Joel and I need. It's interesting how good communication helps immensely on IRC.
  • Meetup with Evandro on Stoq bits. Slowly getting back on track, I feel.
  • Short meeting with BjornT on Malone status, mostly email-related. Still need one tomorrow. Off a bit earlier to try and deal with my INBOX offline, it may help.
  • Wrote 21 emails today in total.
15.05.2005 Sundays are like holidays
  • 9:15 wakeup! That's a full 9 hours of sleep. I had moved my bed into the back room and I suspect the extra quiet spawned by the position and the reduced traffic of Sunday paid off.
  • Bought some Time cleats, given the ones I have are just plain nuked out. Did a little weight/price comparison of the Time Atacs: Apparently my XE has the best cost-weight ratio! I wouldn't want to spend the triple for a bare 60 grams in savings.
  • Scanned through email for an hour, looking at spam, complaints, unfulfilled promises, nightmares, revelations. You know, the usual Sunday bugmail.
  • No, I'm not being a lazy bum -- it's an off day! I rode every day for the last 10 days or so, I deserve it.
  • Hmmm. Read up that now, no matter how little, we pay 60% of import tax when receiving things internationally, if the sender is a company. This means that I should probably only buy stuff used when purchasing from Amazon -- is the sender is a person, we have a U$50 lower limit for taxation. This is a regression from a couple of years ago, when it was 0% for anything under $50, 50% for anything between $50 and $100, and 100% for anything over $100. And they count shipping as part of the taxable value!
  • Signed contracts, looked through personal performance review, did a lot of PyGTK mail catchup, planned tomorrow.
  • Went out for dinner at a pizzeria with Salgado and Johan. Nothing to write home about (well, we /did/ have Ice Cream Pizza, wtf) but the girl who answers the door was pretty amazing. Had to leave my bike locked outside, though (I hate that). Rolled back home and took care of the dogs. Olivia's cut isn't the best, Monica and Estrela are fine (but their cuts were tiny, too).
14.05.2005 Diesel Power
  • 8:30 wakeup! Wooo! Saturdays rock. Looked after the dags, Monica and Olivia bandageless, but Estrella fine (she took a whack yesterday for not obeying me when putting them on so maybe that's the secret). I need to haul those bags of crap out of the garage, man. Maybe invite people to a "party" and have /them/ do it? :-)
  • Sent off activity reports for thursday/friday, slacker.
  • Sent off remaining activity logs (these no-lunch days have f**** me reliability scotty).
  • Installed daf's new shtoom package forcefully, tried to figure out why apt didn't see them from his home repository yesterday. Keybuk and I don't really know. Ah, elmo tells me to use
    -o Debug::Acquire::Http=true
    . Let's see. Hmm, it's telling me that the file isn't updated (but it /is/). More investigating. Aham. WHO COULD IT BE?
     HTTP/1.1 304 Not Modified
     Etag: "340c4c2-3a5-2e6f5340"
     Date: Thu, 12 May 2005 18:06:20 GMT
     Warning: 113 br-arq-fi-cd04 "Heuristic expiration"
    Whoa. br-arq-fi-cd04? @!#@!# TELEFONICA AGAIN #@#!@ Fired off an email to some people, but complaining about Telefonica is like complaining about the weather. Everybody does it, but what point is there to it?
  • Interestingly enough, the only apt option that /could/ help us, which is
     -o Acquire::http::No-Cache=true
    doesn't actually work. Filed bug at [bugzilla.ubuntu.com]
  • Also filed another bug on something which is more of an annoyance than a real issue: [bugzilla.ubuntu.com]
  • Pretty long and hard ride over to Analândia and back. The weather was perfect, and Ivo, Tecão, Magno and I rolled up and down the hills for what was for me the first time in months. Had a pretty unagreeable soft drink under the Cuscuzeiro (I must remind myself to avoid Tubaína and other soft drinks made in small cities, it turns out they are so sweet you could get diabetes from looking at the bottle). Rode back half in the dark (mostly because Tecão had a flat tire and Ivo and I didn't know). Met João and Paloma and Kicho and (better half) at a bar afterwards where we had some Gatorade to celebrate Ivo's birthday. Took care of the operated dogs, cooked some dinner for Johan and I but couldn't manage to get my act together to watch a movie (SO sleepy).
13.05.2005 hey bru. You know who I am?
  • Ssssshhhh. Go back to bed.
  • Ride started out with a slow roll to Parque Faber, and paused on the downhill into Monjolinho for a flat tire. About 5 minutes later, landed a massive crash on the russian roulette downhill. It was still very early morning and I chose a wrong path for all of 2 seconds before jumping over a massive hole (good going) and falling into the next one which was about two times as deep. SLAM head-first into the wall of the ditch, knocking knee and elbow in the process. Got up totally dazed, picked up my glasses, then realized I wasn't so sharp, put the glasses down, stumbled around the field and sat down. Whoa, that hurt! After about 15 minutes pansying I mustered enough courage to get on again and ride down. Crashed again about 20m forwards, and then started feeling a bit better. Managed to do an average roll around the sugarcane fields (though pedalling with my left knee is horribly painful) and stumbled back into my house.
  • F*** TELEFONICA. Dude, there has to be a better way of getting internet access than the horrible horrible service they provide us with their appaling Speedy. They kick us off randomly, expect us to use a /webform/ to log in, and this morning, they decided to kick us off more permanently, the issue being that there is some sort of speed mismatch between Terra, the ISP and Telefonica. Whoa, what's this ISP /and/ Telefonica business? Well, to hell with telefonica, and throw anatel too, who decided to regulate broadband in the most braindead way. Burn.
  • Anyway, an hour of my life wasted, and no progress. Why do they think people have to endure this sort of idiocy? If they told me it was a power outage, failure, I'd be content.
  • A final phone call on staff reviews and now I have around 30 action points. Need to offload these ASAP or risk going crazy.
  • Found a decent store to buy backup media here in Brazil: [www.techcd.com.br]
  • Set up an FWD account (655187) at [www.freeworlddialup.com] so I can practice some shtoom. Hmm, attempts to get shtoom running work to the echo server but fail between salgado and I.
  • Interesting tidbit: my T42 has an embedded microphone, which is quite decent. If I crank the volume up in aumix, I hear myself type over the headphones. Is this sort of feedback intentional?
  • IRC assistance to LP hackers, discussions with SteveA, roundup of the brazilians who are to work on UbuntuExpress (Kamion and ogra to meet up with them on Monday, in particular, with surak).
  • So plan of action for the tape drive:
     x If swapping our motherboard is practical (see [preco2.buscape.com.br] 
             and tomorrow morning, C&A)
         x Order the new motherboard
         x Order the external AIT-2 drive (752ukp) at [www.misco.co.uk]
     x If it isn't
         x Order a SCSI LVD cable with more than 4 connectors, perhaps
             [www.misco.co.uk] (71ukp)
         x Buy the internal AIT-2 drive (611ukp) at [www.misco.co.uk]
     x Buy 10 cartridges at [www.techcd.com.br] (R$227.50) 
         or [www.intrabox.com.br] (R$242.00) 
  • And, actually, you can find VS-160 tapes in Brazil, too -- [www.avi.com.br] and [www.techcd.com.br] both carry it.
  • Took care of the operated dogs in the evening. They are already all jumpy and happy! This is pretty insane, man -- 2 days and that's it? Either dogs have an amazing healing system, humans have an appalingly bad one, or god has smiled upon us and bestowed us with a fast recovery. They keep ripping the bandages out, though.
  • Went to a really crappy show at CAASO. I mean /really/. The first band was bad. The second band (a Pearl Jam 'cover' band) -- amazingly -- was worse. The only consolation was that I slept for about 2h before that and thus was able to sleep like a baby.
12.05.2005 Slip slide melting
  • Woke up at 6:50! Victory! I seem to be back on track with my sleeping patterns. I actually woke up late (forgot to set the alarm clock, stayed up watching Alien with the new boom boxes, you know the drill) and had to rush out to ride with Johan. I didn't even take care of the dogs, but there's reason enough for that -- they're spending the day at the vet hospital, getting their insides removed. I walked them there in the morning, in remarkably beautiful sunshine. We weighed them before giving them the pre-anesthesia: 16, 18 and 22kg for Estrela, Monica and Olivia. Then we threw the three of them in little cells and I ran off to not be bothered about this decision for the next 12 hours or so. Here's hoping none of them are allergic.
  • The bike ride was an easy one through UFSCar, not wanting to ruin my legs further and in anticipation of tomorrow's ride with Magno. Magno is into doing long hard rides and we're still beginners, you know? :-) No crashes today!
  • Fought a barrage of email today. I'm getting good at nuking the evening's email, but unfortunately about 70-100 tend to pile up during the day and I don't really have time to go back and deal with them. I'm thinking about this. 110 kept, 93 deleted.
  • Whew! Almost 3 hours of phone call with Mark and Steve, and still another set of hours to run with tomorrow. Ah, well -- this is in fact really valuable and the team /does/ benefit significantly from it.
  • After a late lunch, visited the Linux Installfest at UFSCar, and watched a talk on Squeak and Free Software Licences (given by the one and only BT). Gave out some hoary and warty CDs. It's interesting how we haven't yet made the university kids here feel the Ubuntu love. We should try and figure out a way to get an Ubuntu community going here, it /is/ possible, I'm sure.
  • The dogs are operated. They look /fine/, amazingly -- they actually walked from the vet's care into home without as much as a sigh. 7 days of being careful with them, now, and then stitches off. The vet went into all sorts of grisly details of the operation, but the dogs seemed remarkably happy and aloof. Guess the anesthesics work wonders.
  • Did a serious review of backup options we have. I want a rock-solid system that can take at least 80GB uncompressed. This leaves me with a few options: DLT, VXA and AIT are the most affordable ones, and LTO is the expensive but cool one. So I'm doing maths and thinking about how this is going to work. It appears that one thing with LTO is that cartridges are a /lot/ cheaper, perhaps half-price of the other solutions.
  • Having an external drive would be a big plus, but unfortunately, the server motherboard we have lacks an external connector, so no external backup. This /so/ pisses me off -- I never realized that could be a problem some day. The model we have is an SE7501BR2: [www.intel.com] and the one I /should have got/ is a SE7501HG2: [www.intel.com]
  • Now, that wouldn't be so bad if not for the fact that the server is in a very low position, so we'd need to kneel once a day to swap the tape. Not only that, but the SCSI cable has no free slots for a tape drive to hook onto it. COMPUTERS!
  • Hmmm. Maybe I could turn the server around and make it face outwards. And get a 7-position SCSI cable. And get an internal. If that's the case, the AIT-2 (50/130GB, not the AIT-2 Turbo, which is 80/208GB) is probably the cheapest option (790ukp total), followed by the DLT, which is damned expensive (929ukp total). Annoying. And an extra 60 ukp for the cable. Hmmm. Maybe my parents have my other cable; maybe I could swap them.
  • Some threads discussing different alternatives, with arguments on both sides (meaning that both sides are probably good enough): [groups.google.com.br] [groups.google.com.br] and the reasonable comment by a Novell Support operator: [groups.google.com.br]
11.05.2005 Full gear
  • Woke up at perhaps 5:30 this time. I wonder if my body is getting adjusted to jet lag naturally (it's been a week since I've arrived) given I'm not taking the melatonin, or if it's just because I'm biking (and getting sleepy at about 19:00!). Dogs. Kind of fearing tomorrow's walk to the veterinarian, but trying to not think about it too much (and trying to be practical about it, too).
  • Rode with Magno for 1:50 into and out of the Valley of Pigs. This is the sort of ride I'm not quite ready for, and I huffed and I puffed and I almost had a heart attack going up the last steep section of the uphill out of it. At any rate, we sped back into town and the only thing I really missed was some oil for my chain. Scratch scratch scratch and it makes you feel all guilty. Buy a new chain every 2 months.
  • Matt Zimmerman and I were caught doing what can only be called "UDU Scheduling" (for those that understand what that phrase means, I hope you have rested enough since then): [image42.webshots.com] That pic is by JaneW, yes, the same JaneW that disappeared at the gay bar. I never said that.
  • Today an /english-speaking native/ told me that "indisposed" couldn't be used as a synonym of "displeased", but only as a synonym of "busy" or "not feeling well".
      3. To disincline; to render averse or unfavorable; as, a love
         of pleasure indisposes the mind to severe study; the pride
         and selfishness of men indispose them to religious duties.
      
               The king was sufficiently indisposed towards the
               persons, or the principles, of Calvin's disciples.
                                                     --Clarendon.
         [1913 Webster]
    Well, my movie english kicks ass.
  • Dealt with email in the morning, but it's already out of control. So many Bugzilla bugs I'm just going to have to find a better way of dealing with them. I mean, I spend the whole day dealing with email, trying to keep anything urgent dealt with, but I started out with 40 and I now have 110 unread. What's the secret?
  • Long management meeting that was great, filled out a ton of TODOs and have courses of action for a lot of interesting problems.
  • Helped mdz out with some Bugzilla patches to make the Ubuntu Bugzilla more manageable, and fixed a little bug for seb128 while I was at it.
  • Ran a meeting with ogra and dholbach on Ubuntu Bugdays; people discussed if giving prizes for people that did good work on the Bugdays would be a good thing or not (I think it would be, but what do I know :-) -- got that nailed into a concrete plan.
  • Phone call with SteveA to nail team issues; we have /another/ call tomorrow to finalize this stuff, but waaah.
  • Final note for today was yesterday's surprise. We signed a contract with a company a while back and so yesterday a box arrived from that company. Kind of like a box Amazon ships me DVDs in. Has fragile stickers on it and ESD-protection-touting tape binding it. So I'm all like whoa, what's this loot. Open it. A ton of bubble wrap. And inside the bubble wrap, slightly wrinked and rolled up into a little bundle... umm, these are... signed copies of our contract! It even included a packing slip with costs detailed. Large companies are weird, man.
10.05.2005 Keep em rolling
  • Woke up at 4:30 for some reason. Could it be melatonin withdrawal? Tossed in bed until about 6 when I got up (and promptly felt really sleepy, ironically). Dogs. My right arm seems to get stronger daily as I throw that pretty heavy rubber ball across the field. Monica appears to /almost/ always catch the ball, though Estrela does manage to snatch it here and again. Funny how twins can be so different. Olivia is quite recovered now (and ready to get in trouble again) and her fur is looking beautiful again. However, all that is about to change (hopefully for only a week), for on thursday they get the knife.
  • Did five laps at the russian roulette loop and even crashed once (so did Johan though). That downhill is so murderous -- really deep ruts criss-crossed all the way down the mountain, and choose the wrong rut and you may find yourself in a world of pain. You usually choose the wrong rut the first time down, too. The uphill is tricky but really good practice. Keep those wheels spinning and you'll cut it, but keeping them spinning requires a large heart.
  • Man, punching in these staff reviews is hard work. Two hours for seven. Another hour for the next four. Another hour for the last two. Whew. I have two left, but they are less pressing and at least my entire team is addressed. There's lots of work to be done there.
  • Redid the setup to grab LP code to my box. Isn't baz fun? If only you knew the setup process involved, you would understand why it took about 1.5 hours to get it all.
  • And today, because I felt particularly evil, I denied friendship to all Orkut people that had been bothering me about it. Sorry, I'm only your friend if I am comfortable asking you if I can stay at your place for a night. Well, at least I tried denying all of them, but try clicking on the "No" button 100 times and counting how many times Orkut blows up. It's a joke.
  • My Phillips home-theater-enabled receiver arrived! Lots of fumbling with speakers and wires throughout the night, but in the end my Neuros roared true. The one true noise! I'm in for a world of fun from now on -- music makes the heart brave.
09.05.2005 Hungry but happy
  • Woke up still a bit sleepy but nevertheless refreshed. Did dag control, and then a nice one-hour ride on the road (Johan had to `rest'). Called my parents as I huffed up the Liquigas `mountain' (though I guess people who have never seen mountains may think that!) They just finished opening a new store in Brasilia last week and I figure they are still a bit dazed from all the sleepless nights and overtime; I am planning to visit in a couple of weeks when Leo's wedding (yes, one more strike) happens in Brasilia. Weddings. At least this one is a Jewish wedding.
  • Two meetings in the morning, some email catchup, some IRC discussion on #launchpad, minor office reorganization, diary control and rushed off to lunch. Yes, Chinese. Is there anywhere else?
  • Cleaned up the mailman queue, another meeting, more launchpad IRC and email discussion, cleaned up email (including annoying bits and pieces I never seem to get around to). My email backlog is at the moment 381 messages, but it is improving, if rather slowly. At least daily mail is under control.
  • Worked on LP staff reviews, with SteveA for two very long phone sessions. I thought the staff reviews were fun, but the questions were difficult to adapt to everyone and, well, reviews are never entirely fair, are they?
  • Found out that buying an Apple keyboard and mouse on Amazon.com costs something like 5 times less than buying at a store here in Brazil. Maybe I shouldn't have cheapskated and bought one in Sydney. Sigh.
  • I've come to appreciate that companies are like rickety old space ships -- they fly, but they make all sorts of weird noises, and 70% of the vessel doesn't really work as originally intended.
08.05.2005 The Phantom of the Opera
  • Stayed in São Paulo overnight (stay courtesy of the one and only Bruno Trevisan, the man and parent himself). Well, overnight is a way of putting sleeping at 5am, waking up at 6, 7, 8:30 and then 9:30 when my beeper beeped me with news of an added 8000 miles to my Smiles account. I can probably visit a low-flying satellite by now.
  • Michy and Suzy and Claudinha Daltro and Johan and Xuxu and Betinho and I actually managed to go to the Phantom of the Opera; Xuxu arrived at the last-second and almost had to wait outside (for 20 minutes, but still). It was at Teatro Abril, and we had the /last/ places of /the whole theatre/. I'm not complaining, but it would be a big plus to see the expressions on the actors' faces, you know? The sound is quite spectacular, actually -- real orchestras are something else -- and the visuals of the Opera are nothing short of breathtaking. I didn't even think we /did/ that sort of thing here in Brazil, but I take that back.
  • On the theme of weird coincidences, Michy managed to run into her ex-boyfriend in a [not-so-random] restaurant in São Paulo, during mother's day lunch (though we had no mother present!). I mean, the city has about 20 million inhabitants. I haven't seen my ex-girlfriend /once/ over the last 4 years or so. There is no significance to any of this, but then again, neither is there to any of life, is there?
  • Slept from the bus station in São Paulo to the main turnoff for São Carlos, dragged myself home and then slept a lot more. Johan had to ride back to his place from mine, and I didn't envy him there..
07.05.2005 She lost control again
  • Johan and I hit the trails for a one-hour mountain bike ride at UFSCar this morning, after only about 4h of sleep. The great Warren Zevon said `I'll rest when I'm dead', and I am with him all the way. Well, except that he's dead. Anyway, it was only for a couple of laps on the usual forest track, just doing slow uphills, small jumps and the fat downhill (though not as fat because, alas, the KHS doesn't have the SID installed yet -- but just you wait). Ah, dear diary, I forgot to say that Johan had a pretty spectacular crash and is missing skin on palms (note 1: buy gloves) and on elbow (note 2: girls dig those) but is still a happy and brave turnip. Mountain biking is a real sport.
  • Had a great (for me!) meeting at Async, talked about changes, plans for this year, projects that are doing well, projects that are doing poorly, and did a roundup of all the major open issues with everyone. This has been a very interesting year; I wonder what surprises it will still have in store for me.
  • Almost lost a shoe riding down to have lunch at Chinese. Ran back and found it where I dropped it, right in front of Async. No, I wasn't wearing it. Every time something like that happens I remember the time I forgot my sweater on the school fence at Linden Park, Adelaide. It was night-time when I realized it, and my mom and I drove back to school kind of half-heartedly (I had probably already been told off enough for it), only to find it exactly where I left it. What a country.
  • Bussed with Johan out some 3h to São Paulo, and met up with Michy and Suzy and Xuxu in front of the theatre. No, we didn't make it in, but I tell you, it was pure luck, for a couple of hours later, Suzy gave up on the night (citing exaustion, imagine that) and Johan and I hit the #1 club in the world.
  • Yes. Madame Satâ. If you've never been there, you probably know better. It's a bizarre little soul-crushing venue, with the weirdest people and the best 80s and 90s punk, gothic, electronica. They played Lucretia, man, and I didn't even request it. That's got to be a perfect night.
06.05.2005 Another first day in the life of
  • We had an internet outage for about 10h today. Should I sue Telefonica? I could argue it cost us serious business..
  • SteveA asks me if all the brazilian education institutes have suggestive logos, based on a single sample at [www.cfh.ufsc.br] -- interesting, but just how scientific is that remark?
  • Did a short 40m road ride today, and I felt /great/! My road bike is nice but still needs to be seriously cleaned up. I have a stack of equipment to load onto the other bikes this weekend, but since I'm off to see Phantom of the Opera, it just might have to wait till monday.
  • Johan is off to Araraquara to try and sort out his visa extension. Meanwhile, his paperwork in spain is still stalled. Oh, some waves today, actually.
  • So one more hit against my bank account -- a certain Kleber posted a DSL subscription on 02.05.2005 with Terra. Phone calls to Terra result in a certain Pereira Campos cancelling the debit, but this is boring. Globo.com actually refused to deal with the problem until I sent them a BANK STATEMENT and then I just think they've gone too far (wouldn't you?)
  • Did the usual blur of email and fixups and management and laundry here and there. Where did the day go?
  • This is going to be a great year. Went to see The Dead Rocks (and Crazy Legs too) at an old hotel closeby -- their psycho surf music really rocks the system, and it was cool to see all the old-timers and kids enjoying the evening. Even if I did forget to have dinner (offices are just so entertaining, aren't they)
05.05.2005 I miss my infancy
  • Flew back in from Australia yesterday. It was a marathon 30h of vegetarian plane food, airport corridors, red carpet clubs and melatonin. I didn't actually feel it as bad as I felt the way in -- I'm feeling better and better as time passes. Australia touches my heart deep down; as if I felt entirely in touch with the real nature of time as I walk through places I recognize from a quarter of a decade ago. It's something you never learn to completely understand, growing up, and just learning how much the passing of one, five, ten years feels like. Most of all I am sore of missing all the beautiful people I end up meeting when I go there; I feel so comfortable -- it's almost as if it was Brazil. Sara and Jason were the best brothers-in-fact a boy could have, and they just feel so right, so close and intimate; they just click in with me. Jenny and Geoff haven't aged a day in the last 10 years, though they may be all the wiser and still more enjoyable. And meeting Pip (well, really re-meeting her) was a heart-stopping event. I had totally forgotten how much fun a girl can be, and I had actually given up running into anyone as pretty that combined so many qualities.. music, extreme sports, travelling, beautiful honesty, all at once painfully smart and aware and charming. I wish I could freeze these moments in time and live them forever.
12.04.2005 Defrauded
  • So someone via Abril S.A. subscribed to Playboy using my bank account; I now have to call them up complaining. Dialed 08007042112. Adriana Viotto took my call, and explains that they are being delivered to one Roberto Villaronga Santos, Av. Paulista 1458, São Paulo. I love this. So the dude tells me anyone can subscribe with my bank acccount number to any number of magazines _without_ my signature or password. Pretty cool, eh? My lawyer's going to love this.
  • Someone via Globo.com _also_ subscribed to a couple of magazines; more calling will be required soon.
  • We tried to play a DVD at the office the other day and were surprised when it refused to play a couple of them. Found out that it's not refusing to play: libdvdcss is just being /very/ slow when reading the DVD. It may be that the DVD is problematic, but just wait it through and it will eventually come up (amazingly enough). Why doesn't libdvdcss cache this work?
  • Also interesting: Ubuntu Hoary has DMA turned off on the DVD player by default. A little hack to hdparm.conf fixes this, and you can enjoy skipless DVD playback from there on. Why isn't this a default?
09.04.2005 We got signal
  • Finally set up a new gigabit switch and a UPS for Anthem. This makes us finally in decent infrastructure capability (well, the switch _could_ use a decent UPS, but that's wishful thinking). The new office is _so_ much more productive! Just waiting for our new desks to be set in and we're in total business. Still some loose ends to tie up but in general it's looking good.
  • Each workstation can sustain now a 10 megabyte/s download from Anthem -- I tested with 4 simultaneously and it worked fine; the switch said it was at 20% utilization which is pretty amazing, and other boxes don't really feel it. I wonder if latency has gone down or not.. actually, when plugged into the gigabit port, the latency is a _lot_ higher, and NFS is as slow as a dog. I wonder if gigabit is optimized for larger transfers and throughput in place of latency.. some experimenting is in order.
  • So here is what I found out: booting with UDP NFS, on the Gigabit interface, takes a standard machine 2:17. Booting with TCP takes 1:22. Booting with UDP on the fast port takes 1:18, and with TCP takes 1:20. I guess we can try running with TCP over Gigabit (since it's statistically equivalent to the fast ethernet runs), but if it's slow under normal operation, we need some more tweaking in order to understand what's wrong.
  • Bought gifts for Vine's birthday party with Johan. We had some fun just choosing, but I lamented that we didn't really have any Lego I wanted to buy (and you know, I really like little puzzles).
  • Finally built a cable for my Neuros to charge with my laptop charger. Unfortunately, it appears to only be lasting about 1h :-( Ah, well, at least it sort of works.
31.03.2005 Everything's new
  • We moved Async to a new, spacious, comfy and productive new office. Of course this takes lots of poking and adjusting, but it's getting there and tomorrow we'll try and get some of the final bits of furniture in. This is so cool!
  • Part of the move involved moving Celso's gwyddion.com into our infrastructure, since they are sharing the office with us. Part of this involved some simple Apache hacks. Bear with me.
  • Part 1: redirecting to https from an http site. This is remarkably simple; it requires only mod_ssl and then something like:
     <VirtualHost 200.171.140.32>
         ServerName trac.gwyddion.com
         Redirect permanent / [trac.gwyddion.com]
     </VirtualHost>
  • Part 2: redirecting to a site on the internal network. Again, this is pretty trivial, and requires almost no changes to configuration on the internal box.
     <VirtualHost 200.171.140.32>
         ProxyRequests Off
         ProxyPass / [iwww.gwyddion.com]
         ProxyPassReverse / [iwww.gwyddion.com]
         ServerName www.gwyddion.com
     </VirtualHost>
    The only tricky part is realizing that the internal requests go through with the internal hostname (so the internal box gets a
     Host: iwww.gwyddion.com
    header, for instance). A bit of ethereal helped me discover that part, though.
  • I think I brought my Neuros back from the dead! Charging it with 12VDC as we speak, ah, the fun. 5V is a no go, though.
10.03.2005 I am sick
  • Ugh, still sick with the Norwegian Influenza. Named so because Peter and I caught it from a group of rogue norwegians that hung out at our mountain cabins in the Wapta traverse.
  • Did a flurry of email catchup, meetings, reports and house-moving-procedure. I'm at my best when I'm relating to people, at my worst when I need to do sit-down concentrated work, it seems. Why?
  • Wanna know what voltage they use in Iceland? [www.damarww.com]
  • Kick postfix. The default is not to enable SMTP AUTH PLAIN which is fine by me, but to turn off the default, how do you do it?
     smtp_sasl_security_options = 
    Right. Set an option empty to turn off defaults. How annoying.
09.03.2005 I am a bad blogger
  • I can't seem to keep up my writing with my fast-paced life <tm> I can report however that a) I bought a USB cable for my cellphone b) the USB cable has no available Linux drivers as per [www.qbik.ch] :-(
30.01.2005 Montreal is like your fridge
  • Except colder. I mean, your fridge probably runs at about 3 to 8 below zero; Montreal manages to stay around the -20s consistently. At least they use Celsius.
  • I'm counting the days to be down somewhere warmer; in particular because it could mean Fabia could pop down to the airport and make me smile for a week. She's been so great this year, it's warmed my heart. So remember, South America, South Africa, just keep me south of the hemisphere in January.
  • Fabia also tells me that Vine, amazing, has already put up the whole Lego robot I bought for him. The scary part is that this robot, well, I had planned for it to be something we kept for a year or two given he's still 3 years under the nominal age on the box; we ended up giving up on hiding it but man, he drilled right through it. So now I need to think about some sort of harder replacement. Maybe two. Luckily Luma hasn't tackled her gifts with the same intent to destroy or I'd be in boiling water.
  • Skipped at the local sports store and just gawked at all the gore-tex and other goodies they have there. Still need to skip there tomorrow and get some stuff for Fabia (brazilians don't often have snow-proof clothing in their closets, you know?). And the Lego. And something special for Luma. And another book for Michy. And, wha, where's that bank statement again? Ooof.
  • Ah, I put up a new directory with some pictures of Canada. Most of them are for UI we're hacking up for Launchpad, and therefore it sports the great mpt or the amazing BradB or some sheets on our all-star amazing flipchart (that cost about as much as a small pacific island might cost, but that's the first world for you): [www.async.com.br]
  • Ion and Gnome, a match made in heaven? [0xdf.com]
20.01.2005 4h later
  • I woke up, walked down to the office. Renata ran into me on the way down and decided I was worth giving a ride to.
  • Got a Canadian Visa form filled out (ugh).
  • Lots of phone calls ensued. Nothing much actually happened during them (well, I lie) but in the end, it looks like I'm making some progress. Somewhere.
19.01.2005 It's always fun to be back
  • Got china CXS access sorted out, finally. Hammered it out with Moin with André into the wee hours, but in the end an example was set up. I hear Moin 1.3.2 is going to do a lot better speed-wise, though.
  • Today I broke them again. Change is hard. Grow up.
18.01.2005 Today
  • I mended my ventricules.
12.01.2005 Phat phamily
  • Thomas pointed out that gst-properties allows you to configure the default sink used by rhythmbox, and the fact that I was using ESD was what was causing crappy audio output. I chalk one up for Thomas!
  • Email and phone conference and RSI-provoking list editing.
09.01.2005 AND YE SHALL KNOW US FROM THE TRAIL OF THE DEAD
  • Across the Atlantic once again. See you all on the other side.
07.01.2005 Chaos ensues
  • Morning erupts into a series of meetings, email, negotiations and delays. We get the Front Garden initially set up, but I want it redone..
06.01.2005 Keeping up
  • 7:50 wake up
  • 40 minute fartlek run around the city
  • 10 minutes talking to PJ and Buiu at the gas station
  • 30 minutes clearing up abuse
  • 20 minutes clearing up email
  • 15 minutes entering a CXS bug Brian detected
  • 30 minutes of more email backlog and communication
  • 1.5 hours of email tool hacking and sorting
  • 15 minutes of phone call to Mark
  • 1 hour of lunch (zzzhinese!)
  • 1 hour of renewing my driver's license (how annoying; because I went 40 days in advance instead of 30 it will only be valid for 4 years instead of the usual 5).
  • Lost track in the afternoon. It was a blur of meetings, work, scheduling, nudging and generally getting hungrier and hungrier. But in the end, I CONQUER! (self-esteem boost thing going on there)
05.01.2005 Skip a day, live a day
  • Did my keysigning duties from Mataro, using a fixed-up script Salgado fixed for us.
  • It's been raining non-stop for 3 days. I believe it will go on raining for another 5 or so. Wow.
  • Peter has invited me and I will be doing a week-long ski tour in Canada in February: [www.ontopmountaineering.com] has details on the traverse and [www.ontopmountaineering.com] has some scenery. Fun!
  • Late-night chore sorting out an upgrade from [www.kaspersky.com] -- essentially, hitting the ftp server for all updates. Then it's a mad dash to find out where to place all these updates!
04.01.2005 GREETINGS IN THE NAME OF ALMIGTHY ALLAH
  • Assalamualaikum, In the name of Allah the Beneficent; the Merciful,the Master of the day of Judgement , I greet you in the Name of Allah, the Beneficent, the Merciful ?. To whom All the Praise (HQ; 31:26; 17:111); and the most Beautiful Names (HQ: 7:180; 17:110; 20:8; 59:24) belongs.
  • I am formally Miguel Marcos Llera from Cuba.I was born into a strong and devoted catholic family.All through my life i have been doing business and i was into gold mining and selling.I met our creator and the meciful one Almigthy Allah when i was having a business deal with one of my partners from U.A.E and from the day i was given the Islamic bath(Tawheed) my name changed to Al Ahli Usman.
  • On 10th Feburary 2004 myself,family and my business partner took a flight from kish to sharjah and we flew kish airline.We had a plane crash and all members of my family including my friend lost thier lives.I give thanks to Allah that i am one of the lucky ones that survived the crash.I had to return to my home town in Cuba and i am now left with my relatives to take care of me. Owing to the fact that my relatives knows i have reverted to islam,they have left me to suffer in pain and what disturbs me most is stroke that i have.I have developed paralyses from my waist region downward now.But thanks to Allah,that He does what He pleases (HQ: The Great Doer of what He Will. 85:16); and Is never unfair to His Subjects (HQ: Surely Allah Does Not Do Injustice to the weight of an Atom?4: 40)
03.01.2005 The revolution begins burglariously
  • Mako reminded me of how much fun Barcelona really was at [mako.yukidoke.org]
  • We've started the silent revolution at Async. 2005. 2005. 2005.
  • Dropped off my notebook at the store to see if it can be repaired. Fell in love meanwhile with the Acer's keyboard, and decided that Salgado can have my old notebook if he wants it -- pity the battery life of this one is so short.
02.01.2005 48h into the year..
  • Apart from a best friend announcing his marriage, nothing surprising happened. I slept through a movie. I ripped some CDs. I broke the DVD player on my notebook. I worked.
01.01.2005 It's hard getting that `5' right.
  • Day started, well, yesterday, but the morning ended in a bakery, no, actually, at home in bed. If I can recall correctly. I remember sleeping with a piece of bread in my mouth. Sitting down. I need a .. no, not a holiday. A normal workday!
  • Woke up in the afternoon, went for a walk with the dogs and J. Met up with P. Mascarenhas at the bakery (god damned Guanabara was CLOSED @#!@# wtf is up with that), said hi to BT in RJ over the phone. Technology. More walking, then invited Celso and Janice for a movie night. Hmmm, movie night, movie night. Ah, yes. We watched.. THE GRUDGE.
  • It's actually not that bad; it's pretty damned scary to be honest. It has a lot of Ringu overtones and references, though when it's such a recent movie you might want to say it's a) a ripoff b) representative of how Japanese suspense/horror uses the same themes consistently. Though can't we say that of Western movies in the genre?
  • (less tongue-in-cheek, there is a difference, as Western movies in the genre that *I would respect* have original plots and interesting developments, and that rules out the common garbage we churn out regularly. We? Hey, I don't remember ever having seen a Brazilian horror movie!)
31.12.2004 It's over. Go home.
  • Ran for an hour in the morning. Was hot as hell but it felt good, and the mp3 player proved to be quite a distraction over it.
  • More email catchup. This is such a boring game I think I might just set up imap for myself given the fact that I'll be travelling even more this year..
  • Party night! Started out at Du's parent's house (without Du or Livia, though -- former at beach with Thiago, lucky fool, Livia in SP) where I endured some more `holiday feast menu' (I swear when I grow up my house will have real food for festivities).
  • Ended at a farmhouse closeby São Carlos with the usual ehhh 11 hours of psytrance. It started out rather boring but developed into something almost interesting. Ah well, at least it's over and 2004 is behind us.
  • (Five bucks to the person who picks up the movie reference in today's title! I watched that movie today!)
30.12.2004 The end is the beginning (is the end?)
  • One more year burned by me, and somehow I didn't feel all of it till today. Where did all those hours go? The Indian Ocean, Consave and Fabia and all the rest seem to be rumbling at their foundations. In the final hours of this cycle, I shake a defying fist at moribund 2004.
29.12.2004 Back again
  • I just put down a mortgage for an apartment. A nice one, even. In seven year's time, it may actually be mine, too.
  • Olivia has a skin condition -- again, in her face, lovely as she is. I figure it may really be resulting from depression but how can one psychoanalyze a Boxer? At least some worthwhile tips are at [www.boxerrescue.com] -- could it be ringworm, as described at [www.marvistavet.com] -- or something else as per [www.all-creatures.com]
28.12.2004 On the road
  • My mother drove us in from Rio de Janeiro, Suzy, Johan, Olimpia and I. We had a nice drive down; stopped by Itatiaia, which was my mother's vacation house during her teenage years (and where we took some nice pictures of the river, even parts of it that I remembered from when I was 12, and my mother cut her foot, though not that badly).
  • Somewhere along the way I decided or remembered that I needed a change, and that courage is what makes it all worth being there for, and so I did. (And no, not a sex change.)
27.12.2004 Rio
  • Did basically nothing out in Rio. Oh, okay, I'll play nice; we did actually watch The Incredibles (not shabby) and walked out to the Arpoador (J and I) and saw Emilia and stayed out at tia Bia's place (brings back the memories) and heard that Beto had something of a fainting spell in Petropolis and cracked his nose and septum and bled half a litre or so and I'm sure other minor and major miracles and catastrophes landed during the 24 hours that made up today.
25.12.2004 Itaipava
  • Is the loveliest place in the world to be when you are surrounded by Grandmother and Crica and the rest of your sundered family. I so do miss them all. Didn't do much in the way of hard work apart from going for a run with my mother, father and Kiko -- and my mother actually took a tumble down a steep descent. No harm intended, no harm occurred, but I did get a dirty t-shirt out of it all. My dad is running so well! I'm getting back in shape.
24.12.2004 Being somewhere else
  • Reminds you of how much you miss being here. Happy Christmas everybody.
23.12.2004 Luck is what you make of it
  • Fast updates from the return to the third world.
  • My apartment was burglarized, but only a DVD player and my stereo were gone -- they were even kind enough to leave
  • One partition (sda8) in one of our raid-5 arrays (md6) was marked as failed this morning -- there was an apparent power "issue" at the office and that may be the reason why -- the server rebooted about 10h ago.
  • I'm off in Rio till Monday, again.
04.12.2004 Out of this world
  • Off to Barcelona. Catch me there!
03.12.2004 And it goes
02.12.2004 The Final Countdown
  • Did a talk at UFSCar to a group of first-year students that knocked off their socks. It was about our profession, Software Engineering, and what I hope they all manage to figure out for the duration of their university course: [www.async.com.br]
30.11.2004 Wow, where did 2004 go?
29.11.2004 Waking up
  • The first laugh of the day is provided by [www.sco.com] which has an interesting image up, which I've mirrored for posterity here: [www.async.com.br] -- most likely it's a hack and will go down, and you don't want to miss out on that chuckle.
  • In a rather strange mood today.
  • Shop mode for gigabit: in order of preference, [www.simply.co.uk] [www.simply.co.uk] [www.simply.co.uk] [www.simply.co.uk] -- and some performance statistics, at [www.scl.ameslab.gov] -- and some newgroup chatter, at [groups.google.com]
  • But, all in all, it seems like we're not really in the need for gigE right now. I thought we were, but just looking at the utilization graphs for our local network it becomes clear that typing text files and browsing the web doesn't really load the network that much. Ah well.
28.11.2004 Rainy Sun Day
  • Sysadmin's Unixersal Translator: [bhami.com] is a cool tool for finding out what differs between Unix versions.
  • Did reviews and reviews and reviews. Did some office chores and updating of our family tree. Home to see Blue Velvet, finally!
  • Didn't watch it -- it rained when I was leaving and I stayed in to do some mail hacking.
27.11.2004
23.11.2004 The days are just PACKED
22.11.2004 Lots and lots and uhhh
  • Lots of changes are happening at Async this week. We're getting some shade for the front section of the office, and personal storage boxes so people can keep their stuff together (and those dustcovers in one place!)
  • I'm getting so annoyed at Firefox in Ion that I decided to try and at least find out what's wrong with it. I found out :-) [bugzilla.mozilla.org] and [bugzilla.gnome.org] seem to track the issue
  • Found this interesting blog with a related entry -- [natalian.org] -- and the guy seems to be just like me! He rants on about everything he tries to sort out, he's installing Dovecot, he's evaluating Ubuntu, jesus, he uses Ion.
  • Ran into something really cool -- disknag, a per-user virtual quota manager, that basically complains when users are over their quota. I need to get this thing installed here! [linux.duke.edu]
  • Priceless:
     From fionaleebuckley@eircom.net  Tue Nov 23 04:42:06 2004
     Subject: Oh God it's
     Folder: spam
19.11.2004 Fun and Games
  • Laugh at [groups.google.com]
  • Gave the dogs a bath. They needed it, and the tick infestation has been really bad, so I'm waiting for two days before Frontlining them. Read some threads on Frontline and Advantage, and something called Program (alas they never seem to have fleas so it appears we won't be able to spend any money there): [groups.google.com.br]
18.11.2004 More SSL
  • Day two in the way for SSL certificates. Yesterday I spend a good 3 hours fighing with openssl, just to be undone because I couldn't get the right serial number, or the wrong SSL version. So annoying. So today I'm going to start by reading about my problem thoroughly instead of just trying to wing it.
  • First thing is weeding out docs you *don't* want. For instance [www.csoft.net] describes generating self-signed certificates, but only version 1 certs and not using our own CA. A cheap-ass copy of the currently missing How SSL Works Netscape document is at [www.definityhealth.com] but it doesn't cover CAs either. So hum hum, I wonder how CAs fit into the picture wrt self-signed certificates. Time to find out.
  • Ah, sial.org looks interesting. Two nice docs cover self-signed and CA-signed certs: [sial.org] and [sial.org] -- and here's a simpler CA-howto [singletrack.org] There's even a book chapter by Chris Shiflett up at [shiflett.org]
  • I discover the script /usr/share/ssl/misc/CA and my hope for a wing-it solution grows once again. Let's see here.
  • Robert Collins and Brian Murrell both helped confirm my suspicions: there are two slightly different things here. One is self-signing a single certificate you generated; another is generating a CA certificate and then signing a website certificate with it. Robert said something interesting: "a CA is essentially persistent metadata, a collection of revocation certs, and a keypair." It turns out that the reason my self-signed certificates aren't working as expected is really because of technicalities in openssl, and the fact that it's harder to get things right when self-signing because I don't have the CA persistent metadata (so serials get mixed up, for instance). In other words, it doesn't *really* matter if you sign with a CA or not -- the issue is that signing with a CA makes it easier to get all the data you need right.
  • Some more futzing with the CA script I found and it generates a legal certificate. I nearly cry! Comparing to Async's certificate, however, I realize that this one appears to be issued by the actual site, and not by the CA I'm trying to create. Still, it works -- and the right version and metadata, too. Oh, wait a minute. It worked *once* -- and why? Serial number zero. Gah.
  • And, after a LOT of sweating and typing, I produce a *standalone* set of scripts that can generate SSL certificates that are signed by your own CA. Seriously! It's *not* rocket science, but I am pretty sure it's not something that you can get right the first two hours you sit down to do it. I am SO happy this worked out!
  • The final bits were touch-and-go there -- I was using the wrong x509v3 options (I used the options for a CA by mistake) and Firefox told me the cert was invalid! Insisting a bit based on the fact that the CXS bugzilla certificate worked helped me out, of course.
  • Finally, Apache's documentation on ssl (!) is probably the clearest practical guide of them all, and I wish I had fallen here earlier: [httpd.apache.org]
  • As a cherry on the pie, put the CA certificate available through the website; this is just placing the .pem file in a web-accessible directory, publishing the URL and adding
     AddType application/x-x509-ca-cert .pem .crt
    to the Apache config. No more warning dialogs!
17.11.2004 Reassemblage
  • In one fell swoop, swapped Anthem's memory for some new ECC bits, and added the last hard drive into the RAID-1/RAID-5 arrays that were set up last week. We're almost gold, bar one processor!
  • We're having trouble running Warty as a diskless box -- locale-related trouble that is. We're seeing something similar to [bugs.debian.org] -- essentially, mmap()ing this file is failing (for some unknown reason) and there are no directories to fall back onto. I copied some older directories in there and it works for now..
  • Discovered mutt's new assumed_charset option. This is what makes mutt assume that 7-bit-apparent content is really latin-1 stuff. Oh, the fun.
  • Discovered xchat-2 uses Ctrl-PageUp and Ctrl-PageDn to change channels -- just like Firefox! This is one massively welcome change. The Alt-n keybindings suck, but that's an easy change -- just hack the keyboard properties.
  • The next sucky thing is X-Chat's horrific new color scheme. Thankfully that's a FAQ, [forum.xchat.org] saves us, but don't you find it horrific when you discover there are no system-wide files to change to get everybody to enjoy the Right Theme? This stuff is hardcoded in the C code!
  • Finally, we needed to sort out emacs keybindings for Gnome -- I mean, how can one live in Firefox without ctrl-U and friends? Luckily, that's an easier fix:
     include "/usr/share/themes/Emacs/gtk-2.0-key/gtkrc"
     gtk-key-theme-name = "Emacs"
    in your ~/.gtkrc-2.0 fixes things. I wonder if I want to do that system-wide to make sure everybody here has the same sort of experience. I guess yes :-) and hack the /etc/gtk-2.0/gtkrc file into shape. Hints came from [bugzilla.mozilla.org] and the location of the system-wide gtkrc file, from [developer.gnome.org]
  • Finally, discovered xchat's completion_amount feature to control how nick tab completion behaves -- see [forum.xchat.org] for details
  • Wow. Bart Decrem has started something called [mozsource.com]
  • Did some certification generation. Learned in the process that Redhat allows you to to hack /usr/share/ssl/openssl.cnf to get the default parameters for creating new certificates right. Pulled hair out of serial which apparently can't be set in the version of openssl we have at the server, ugh. Hmmm, digging more, it appears that we really want to be generating version 3 SSL certs and not pooey old version 1. It doesn't help that the SSL-Redhat howto does NOT mention this, and offers commands that only generate version 1 certificates.
11.11.2004 Off to Belém!
10.11.2004 Formailing
  • Been investigating a way to remove all messages that are in mail folder A from email folder B. The solution I've worked up is pretty simple:
     rm -f idcache
     formail -D 100000 idcache -s < folder_A > /dev/null
     # idcache is reused
     formail -D 100000 idcache -s < folder_B > folder_B_clean
     rm idcache
    which of course works well. However it has a slight noose and I hadn't realized this previously: the idcache file, when reused in the folder_B process, will purge duplicated messages in folder_B. This is of course mostly great and welcome; however, it has one drawback which I never had realized: if you CC: multiple parties, the mailing list email has the *same* Message-ID as the originating email. If you store the mailing list email in the same folder as the CC:ed email recipient, well, one of them gets nuked in the process. It's basically just removing a duplicated message, but this means you can't rely on folder_B_clean telling you if your message managed to hit the mailing list or not.
  • I had initially thought this was a problem with formail's handling of MIME because of a trick MIME NextPart header in the email; it's not, although formail does indeed lack MIME-splitting capabilities: [www.procmail.org] -- the hint was actually searching for the additional missing Message-IDs in the original folder.
  • And the additional hints in [members.toast.net] provide me with way to lock a mailbox file from a shell script -- precisely what I need here. Procmail's lockfile works like a jiffy!
09.11.2004 HD+2
  • Discovered sfdisk -d and the magic that automated partitioning can be. I had no idea that sfdisk was so easily scriptable or I would long have backed up my raid partition tables using it -- creating complex raid arrays is a jiffy!
  • [www.async.com.br] is the perfect demonstration of what I spent the night working on. This is so great!
  • DNS queries and responses are going *really* slow today, and bind8 was timing out on us. The advice in [groups.google.com.br] was invaluable.
  • There's actually a hotspot listed at Viracopos airport, in Campinas, imagine that: [usatoday.jiwire.com]
08.11.2004 503
  • Magic number of the day.
03.11.2004 NO TITLE HERE
  • Hixie pointed me a really cool feature that the W3C is discussing related to web forms: datalist elements! Essentially, we're talking about comboboxes and autocompletion widgets -- read all about it here: [whatwg.org]
02.11.2004 sarna
  • Got sar installed on moraine. I had to stop my email processing because, well, it's making the box damned slow and everybody else needs to work. Sar is pretty interesting, though I can't justify running it on anthem; the homepage is at [perso.wanadoo.fr] and it's not really trivial to find because it's part of sysstat. Oh, it *is* running on anthem. tee hee.
  • For future reference, the cards Celso and Daniel bought last month were [www.simply.co.uk] and [www.simply.co.uk] -- and remember, you *don't* want the made in china variant.
  • To list all databases in mysql, use "mysqlshow" -- thanks Tiago.
  • Lifeless, Arch Wonder a.k.a. Robert Collins, teaches me "tla star-merge -t" and I go MAD! This is *exactly* what I wanted, it has been so long since I've been happy with an arch feature and this, well, is exactly what I want: INLINE CONFLICT MARKERS! That's awesome!
  • Was locked out of an SSL IRC server today, and couldn't figure out why -- Xchat would just slam and retry non-stop.
     --- Looking up irc.foo.bar..
     --- Connecting to irc.foo.bar (208.185.243.68) port 6667..
     --- Connection failed. Error: (336130315) error:1408F10B:
         SSL routines:SSL3_GET_RECORD:wrong version number
    Guess what it was?
     kiko@manonegra:~$ telnet irc.foo.bar 994
     Trying irc.foo.bar...
     Connected to irc.foo.bar.
     Escape character is '^]'.
     ERROR :Trying to reconnect too fast.
     Connection closed by foreign host.
    Indeed, it seems that this error message is what openssl returns when it doesn't fine anything resembling an SSL negotiation header. Can't we be smarter about these things?
01.11.2004 SCSI is king
  • On the SCSI versus EIDE debate,
    Efficiency: The ATA devices lack the intelligence to perform command queuing as well as their SCSI counterparts which can queue up to 256 commands per logical unit. SCSI hard disk drives aimed at the extreme performance server market have had a lot of research and development time on optimizing seek patterns and rescheduling commands to minimize seek times and maximize throughput. This may not be evident by looking at desktop benchmarks but under heavy server loads, this is evident. Also, SCSI hard disk drives generally tend to be designed to work well in RAID-systems where I/O load is spread across multiple drives.
    [www.acc.umu.se] [thef-nym.sci.kun.nl]
    The intelligence of the SCSI controller and protocol allows some nifty optimizations. One of the most important is tagged command queuing; a device can absorb a number of commands and execute them in a different order than they were issued.

    The operating sytem will do the same to some extent: if you need to access a harddisk on, say, cylinder 0, 1000, and 500, it doesn't take many CPU cycles to figure out that you'd better swap the last two. But a device can always do a better job of it because it has complete information on its own internal structure and current state. Many devices aren't all that intelligent about it in practice, though. The effects are difficult to quantify but usually small.

31.10.2004 I discover
  • IMAP. And .mailboxlist. Wow, that's such a useful thing to know about -- when your IMAP server is wedged, hack it!
  • I learned quite a lot about email folder processing today; it's amazingly neat how formail, procmail and friends work together. I've also done some analysis of grepmail and a few mail scripts that assemble and reassemble mailboxes.
  • Some tidbits on the Google File System that Peter pointed out to me: [www.deas.harvard.edu] [portal.acm.org]
  • That the site [www.reclameaqui.com.br] is actually pretty cool for tracking down bad suppliers on the internet; I was considering [www.meumicro.com.br] but they have *such* a bad rap I just decided not to. Internet vendettas are fun.
  • I get so much spam blocked that blockreport really isn't cutting it; I now have a script that makes a statistic of sender emails that were blocked, just for fun. | bin/blockreport-names
27.10.2004 Fame?
  • Gustavo and I made it into Python 2.4 with our pep-numeric fix: [www.python.org]
  • A Bonnie run on our current RAID-1 setup with the single Xeon:
            ------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
      1100M 26435  91 52518  16 15618   4 23001  67 40422   3 560.7   0
            ------Sequential Create------ --------Random Create--------
            -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
      files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
         16  3316  97 +++++ +++ +++++ +++  3546  99 +++++ +++  8182  94
  • You can contrast it with the old run I did over a year ago (back in the entry for 29.06.2003):
     -------Sequential Output-------- ---Sequential Input-- --Random--
     -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
     K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU
     11710 93.0 23140 16.6 13515  6.5 10569 82.7 40882 11.1 717.5  3.9
  • In short, I/O on this new box looks really fast.
24.10.2004 ZEON
  • We now have a Dual Xeon 2.8 server, and it *screams*. I'm setting up the RAID-5 this week too. Hmmm. But the processors have different steppings :-(
  • One has the martking SL72F on it, which leads me to [processorfinder.intel.com] which indicates that the core stepping is M0.
  • The other, get this, has a BOX labeled SL72F; I was convinced both are the same, but noooo, the processor is marked SL6NS, which brings me to [processorfinder.intel.com] -- IOW, core stepping C1.
  • Hum. The specification update at [developer.intel.com] indeed marks us with an X saying M0 and C1 have "issues".
  • Interestingly enough, the box *does* indicate the stepping number (I just didn't know how to read it; the box's barcode includes an order code, and after that the stepping number). I am still unsure however how this relates to the stepping that /proc/cpuinfo reports; it says 5 for the first processor and 7 for the second.
  • I might want to look into updating the server board (a SE7501BR2 as per [support.intel.com] BIOS when I get around to it; there are quite a few microcode updates listed at [aiedownload.intel.com]
  • OTOH, some sites can't access [bugzilla.mozilla.or] and [lwn.net] explains why.
  • Keeping an eye on the hardware: [cgi.ebay.com]
  • Discovered the xmledit vim plugin at [vim.sourceforge.net] via Limi, and attempted to find out how it worked.
  • PDF, safe? [folk.uio.no]
22.10.2004 Cleaning up the house
  • Did some major cleanups in Apache's conf file, moving bits out and into private. I'm finding the PAM auth module is pretty cool.
  • Keep an eye out for the Zope3 book by srichter at [www.samspublishing.com]
21.10.2004 Lapstopping
  • Daniel Debonzi showed me the wonders of powernow_k7 and powernowd and I'm amazed! This is *so* cool to have the CPU frequency change as the box moves, and I suspect I am going to get *really* extended battery life after this. Though ACPI output has gone kinda whacky, hmmm.
  • Finally discovered WTF my notebook wouldn't activate TV out: it requires rebooting with the VGA connector plugged in! That is KILLER -- I was really mortified that I wouldn't be able to use it with projectors, ever. Though S-Video worked, in truth. Uhm, wait up. This Radeon Mobility U1 (apparently the same as an R7500, R9000, IGP 320M?) doesn't seem to actually drive its CRT output when X is run. Argh. A lot of trawling through Google ensues. I imagine the source code is the only place to go at this point: [www.botchco.com] -- but maybe, just maybe, this is related: [freedesktop.org] -- and maybe this: [www.xfree86.org] -- and even [morlug.org]
20.10.2004 Campinas?
  • Yeah. And I'm not a notebook-bag-luckier for it either.
  • FINALLY managed to track down the problem with ' + c producing a c with an acute symbol instead of ç (cedilla) in Ubuntu (on my notie). There is a lot of fun and games on the issue: [lists.debian.org] [bugzilla.redhat.com] [www.redhat.com] [www.spinics.net] [brlinux.linuxsecurity.com.br] Put a hack in /etc/X11/Xsession to see if it works.. no. Put it in /etc/profile for now, but there needs to be a better solution.
  • Ah. Salgado found out the right way to fix it: hack /etc/gtk-2.0/gtk.immodules and add an "en" to the list of locales using the im-cedilla.so module (it's not there by default). Fixed!
  • Christmas gift, most wanted: [www.thinkgeek.com]
  • And this is why we don't have air conditioning at Async: [www.newswise.com] (it's our secret)
17.10.2004 Oh no
  • I've been victimized by the Netgear WG-511: [netgear.com] Oh, how you might ask? It's a card with Linux support! Well, true. However, it's not completely true. You see, the card that is Made in Taiwan does work perfectly, with the prism54 driver and firmware. But behond, the Made in China card *doesn't* -- and it's the same PCI ID, packaging, PCMCIA identity. I thought I was crazy, but since one of my card works and the other doesn't.. it was actually confirmed by multiple sites: [www.yoper.com] [prism54.org] [prism54.org] [www.leenooks.com] [www.linuxquestions.org] [www.fedoraforum.org]
  • Update! I sold it *evil laugh* to a WINDOWS USER! I LOVE YOU JEFF!
  • Update 2: the issue is that the chinese card is a softmac card, which leaves 802.11 management to the driver: [prism54.org]
15.10.2004 Brasilia
  • Ran around on a wild goose chase with BradB, trying to track down a problem with python-apt. Turns out he was trying to install an ancient version from python-apt.sf.net. So here I go apt-get sourcing away something. To be complete, BradB is on OS X, and I want to get python-apt running there half for the fun of it, since it's an evil C++ Python extension. I grabbed source code for him, and then the fun started. Apparently it bombs out for some reason or other. So I ask for an SSH account. One hour later..
     (gdb) where
     #0  0x90034728 in semaphore_wait_trap ()
     #1  0x90009c18 in pthread_mutex_lock ()
     #2  0x0081e208 in std::locale::classic() ()
     #3  0x0081da64 in std::locale::locale() ()
     #4  0x0080bc44 in std::basic_filebuf>
         ::basic_filebuf(__sFILE*, std::_Ios_Openmode, int) ()
     #5  0x00819630 in std::ios_base::Init::_S_ios_create(bool) ()
     #6  0x008199b4 in std::ios_base::Init::Init() ()
     #7  0x00849188 in __static_initialization_and_destruction_0(int, int) ()
     #8  0x8fe16350 in __dyld_call_module_initializers_for_library ()
     #9  0x8fe160e4 in __dyld_call_module_initializers ()
     
    It hangs inside libstdc++. And *that's* after hours tripping up includes and libraries. So I file a bug and quit. Enjoy: [bugzilla.ubuntu.com]
  • Backup Lesson #1: know how to restore thee backups.
  • Backup Lesson #2: remember to use screen to run restores.
  • Backup Lesson #3: @#$@#!@#! cpio doesn't do things recursively, so be explicit. This means:
     root@gasolinux:/# mt-st -f /dev/st0 setblk 32768
     root@gasolinux:/# cpio -vVid '/home/evandro/*' 
     and not just '/home/evandro/'. 
     
  • Backup Lesson #4: try to avoid making blunders like the above. These backup things, they take 3 hours every time you need to think about the tape drive, let alone restore somebody's home directory. Don't believe me?
     real    173m48.619s
     user    1m50.530s
     sys     9m33.380s
    HAH!
14.10.2004 Busy
  • Too busy to write much up, but finally understood why my cpio extractions were failing. It's silly:
     /bin/cpio -v --no-absolute-filenames -d --extract --format=crc
               --block-size=64 /home/evandro/* < /dev/st0
    What's wrong with that picture? *almost* nothing.. except for the fact that the globbing pattern /home/evandro is *unquoted*! This actually works, you see, because the shell expands it successfully, but cpio just goes and clobbers the original files with versions in the archive. It's actually more fun than obvious here because it actually prints a number of blocks read message, and you sit around confused thinking wtf did those bits go to. Answer's easy -- you just overwrote whatever was there!
  • Apparently from [groups.google.com] cpio extracts relative to your current directory, too, so I should be careful about where I'm extracting this. Unfortunately this process takes hours on our current DAT and, well, the backup for tonight is already running. On the wrong tape :-(
29.09.2004 ENGLAND
  • And I guess I need to learn about SQL joins one day. Maybe tonight. Here's help: [www.devshed.com] and [www.w3schools.com]
  • Celso and Daniel are the guys to travel with: [www.justdave.net] -- lots of hard work but lots of laughs and fun with everything under the sun. And 400 lines of code per day!
  • XULRunner! [weblogs.mozillazine.org]
  • I should really consider subscribing to ACM Queue -- if only I could read it. Read up a really interesting interview with Jim Gray (of Microsoft) here [www.acmqueue.org] where he discusses what he things is the future of storage. Of note is that he thinks that processing is going to gradually migrate into the "peripherals", so disk drives will have gig-level CPUs. Sounds like what's happening to video GPUs, doesn't it?
  • Learned about [www.cs.berkeley.edu] -- Cooperative Bug Isolation, a project that does something like "talkback-enabled builds" for a subset of GNOME applications to collect crash data and study it to improve quality. Pretty interesting stuff all in all.
  • For cross-site authentication, do we need [sxip.org] -- ?
  • [www.mythtv.org] is weird, but they're still putting it into Ubuntu. :-)
  • Neat-o subversion change to use FSFS is live in 1.1: [web.mit.edu]
25.09.2004 Shorts
24.09.2004
  • A thread to watch (Snort and Passive Fingerprinting integration!) [sourceforge.net]
  • Started paying my house mortgage plan, and bought a new drivetrain for the ole Giant ATX who is chain-skipping on the crank.
21.09.2004 Boom
  • Minutes after chiding Lamont for being offline all the time because his internet connection is down, Async is hit with connectivity problems. A router four hops down is dropping 80% of our packets. Just got back in, thank goodness -- just five minutes.
  • Updated cups at Anthem to a backport. Minor snag in the backport required an updated ucf (luckily I found [lists.backports.org] that saved my bacon). Better printing hopefully!
18.09.2004
  • Juliana Aravechia's and Vaner's wedding party. The real wedding was a while back, private and enjoyed by a select party. The party was killer, with select tunes rocking us out into the night. It was a lot of damned fun to see Tangerina, Cegonha and Renata together after quite a long while. Minor incident involving Cegonha's uncle. Rode back to São Carlos with Cegonha and Renata, with a temporary stopover in Araraquara to pick up some sort of document for Renata. Turns out Cegonha is living and working in Rio Claro of all places. Man, I'm out of touch with the world.
17.09.2004 Argh
  • Discovered dlocate.
  • New workstation at the office (so people can actually work without butting heads). It has an NForce2 chipset, which means.. FORCEDETH! Easy peasy: [www.rom-o-matic.net] has PXE images for it, and 2.4.27 has forcedeth driver support out of the box, so the box is up (after some fidgeting because I needed to upgrade mknbi-linux and we all know that's a lot of fun). 2.4.27 booted up everywhere fine, the GPL is maintained, and I'm a happy camper.
  • Fixed snort. Apparently the only thing wrong with it was an incorrect $HOME_NET or -h option in the commandline. It's hard to test because you need to wait for events to show up (the symptom of my problem was no events ever appeared in my logs, or only bizarre ones that I didn't care for). I don't know, I should have backed up /etc/snort/ before installing snort-pgsql..
15.09.2004 Today I
  • Lost 70% of all the clothes I own (don't ask).
  • Worked with Daniel and Celso on Canonical open tasks.
  • Signed a contract to buy a house in a lottery-style mortage plan.
  • Arranged more UK tickets.
  • Participated in a Canonical meeting about LP.
  • Helped Limi with the Ubuntu and Canonical pages by providing some anti-aliased PNGs.
  • Had lunch at Mommy Nature with BT and Adriana.
  • Signed a change to Async's social contract assigning ownership to me alone for 180 days.
  • Provided my accountant with details for hiring Johan.
  • Paid taxes due on the 15th.
  • Guided Nando into more of how GNUcash works, and provided him with a tasklist of things he can do instead of me.
  • Assisted Breno into getting snort working with PostgreSQL (you need a special Debian binary package!) and configuring it properly (you also need ident installed and snort.conf needs to be set up correctly).
  • Explained to Breno about HTTP/1.0's Host: header.
  • Assisted Tiago and Manduca into more merging and hacking on Bugzilla.
  • Spoke to Peter about a potential notification system that via bugzilla-submit could automatically process replies to whine-email.
  • Updated the CAIS wiki pages a fair bit.
  • Spoke to a very distant cousin (about 10 levels off on my genealogical tree) for half an hour about the Robottoms and their bizarre, unique history.
  • Reviewed six Consave bugs.
14.09.2004 Some people are slow
  • After years of me yelling about this problem, somebody has something interesting to say about server-based client installation deployment: [people.redhat.com] It's actually funny because Havoc's PDF at [people.redhat.com] contains some of the phrases I used in our diskless whitepaper.
13.09.2004 Managers need Calendars
  • Some howtos on setting up calendars and DAV servers using Sunbird/MozCalendar: [www.twilight-systems.com] and [www.mozilla.org]
  • To get X-Chat to use a channel password, you supply a space and the password after the channel name. However, in the server auto-join field, you need to provide two space-separated lists of comma-separated channels and password, respectively. Say wha?
     #bar,#foo noogie,boogie
    will get you into #bar with password noogie, #foo with password boogie.
  • Alguma informação sobre a contratação de estrangeiros no Brasil, graças a uma apresentação da Amcham: [64.233.161.104]
12.09.2004 Burn your SUEXEC
  • Man, I just spent 2 hours tracking down an apache-related problem that turned out to be the result of Debian installing Apache2 with suexec enabled by default. I am *so* mad at not having looked at /var/log/suexec.log before, but I was honestly *sure* it was a configuration problem and (suexec not being present in the mods_enabled/ directory) nothing indicated that it could have been to blame. It really sucks that error_log is so concise in reporting what exactly is wrong:
     [Sun Sep 12 16:08:25 2004] [error] [client 127.0.0.1] Premature end of
         script headers: foo.cgi, referer: [localhost]
     
    and the fact that the *same* configuration works for a DocumentRoot-based directory but not for userdir is really a kick in the guts. Only when I looked at suexec.log could I see:
     [2004-09-12 16:22:13]: uid: (1000/kiko) gid: (1000/1000) cmd: foo.cgi
     [2004-09-12 16:22:13]: cannot get docroot information (/home/kiko)
    spewing all over the place. The part that kicks me the most is that disabling suexec requires moving the suexec wrapper to another directory -- what's wrong with a configuration directive, for heaven's sake?
  • Got my Netgear MA111 USB device working in about 5 minutes. It was a matter of apt-getting linux-wlan-ng and setting up /etc/network/interfaces to set wlan0 up -- and that was it. My real surprise was with the quality of the connection -- my 11g WG511 works on and off (flaky but in practice good enough) when I'm a bit away from the AP, but this little USB gadget is rock-solid and actually 11b's its ass -- at least on my HP notebook.
09.09.2004
  • Snort has a surprise for me today:
      87.35   511  200.206.134.238  WEB-MISC http directory traversal (1:1113:4)
    I wonder what the hell that means, to be honest.
  • Found the pump adapter I was looking for -- at [store.airbomb.com] -- but shipping to Brazil is like US$ 43,00! That's MAD. But wait, there's more: [20999.web.agrinet.ch]
08.09.2004
  • RSS 2.0 central: [blogs.law.harvard.edu] (after trolling through places trying to find out what was the deal about pubDate and RSS 0.91).
  • Watched Till Human Voices Wake Us. Rather liked it, though I wish the story was a little less contrived.
  • Crashy gstreamer turned out to be an ASF file being decoded. Was crashing inside gst_asf_demux_get_type.
  • Crossroads in Bugzilla UI. Perhaps related: I have a hypothesis that says that Phoenix was started because the Mozilla process has a critical defect related to major changes to any component: it is possible for commenters and reviewers in bugs to indefinitely stall any changes on the basis of opinion, without providing hard data or denying the changes explicitly, and there is no way out inside the project without forking. I suppose that's true of any OSS project without a leader with a good knack for UI, but most projects are too small to have UI concerns of any sort beyond what project leaders stipulate, or too large to not have a decent UI team with good guidelines and active enforcement. We are neither here nor there, and we are in need of major UI changes that noone will agree to do piecemeal.
02.09.2004
  • Back from SP. Had dinner with Daniel Rolim yesterday, amazingly it's been over 10 years since I'd seen him. Hasn't changed much, though he works in a bank now moving around millions of dollars worth of OPM.
  • Did initial CAIS import.
  • Managed email during the morning.
  • Took dogs for a quick run.
  • Had lunch with cprov and debonzi. Fought it out with the warthogs over Soyuz features and progress.
  • Hacked through Consave and Bugzilla reviews.
  • Reviewed a contract for Consave.
  • Printed out a set of pages from [polo.lancs.ac.uk] that discuss Patterns Of Cooperative Interaction, which is a pretty awesome discussion of patterns in communication artifacts.
30.08.2004 At least backup ran
  • Off to Campinas and then São Paulo. Write me if you need me.
29.08.2004 insert title here
  • Neat little introduction to RSS building: [www.newarchitectmag.com]
  • Backup didn't run. Now WTF is up with that. More SCSI blowouts at midnight?
  • Bugzilla hackery fun. Reviews, updates, the works!
28.08.2004 It's Adaptec time again
  • For the past two days we've been getting SCSI device blowups on our 29160. I'm not entirely sure why, so I did what logic tells me to -- first, check the hardware. The terminator seems okay, as do the cables; I disconnected one of the fans that had stopped spinning (thinking it might be doing something funky to the power supply) and kicked it. That was yesterday at 8am. The errors are pretty similar to the ones I've pasted in below:
     Jan  8 21:44:14 anthem kernel:  scsi2:0:3:0: Attempting to queue an ABORT message
     Jan  8 21:44:14 anthem kernel: CDB: 0x12 0x0 0x0 0x0 0x12 0x0
     Jan  8 21:44:14 anthem kernel: scsi2:0:3:0: Command not found
    but of course I can't cut-and-paste them from the console since everything's frozen but trusty alt-sysrq works (for rebooting, of course).
  • Today, 9am, I arrive at the office and the same damned thing -- hung since 12pm last night. So it's the next step: check SCSI drivers (we updated to 2.4.27 not too long ago). Found out that Justin's drivers at [people.freebsd.org] are at a newer revision (6.3.8) than the version included in 2.4.27 (6.2.28) but unfortunately I'm too clueless about the ChangeLog to understand most of what changed. So cross fingers, recompile and try again. During recompilation I checked that some of the parameters being configured in the driver were a bit extreme and moved them to more moderate numbers.
  • Next thing would be to carefully check pins on the cable, I guess.
  • So something funny happened yesterday with Olivia. We went down to the square we always visit and she ran around with Estrela for a while. There is some construction work going on in the streets in front of the square, and they put up a little deposit shed on the grass in the square. Now Olivia is a Boxer, and boxers are famous for the amount of drool they accumulate in their mouths. Well, so we have Olivia, thirsty and drooling (as usual) sniffing the shed, when all of a sudden the drool on hey face formed a perfect bubble, and floated off her face. She became totally alarmed and barked at it until it popped and then ran across the square to where I was laughing hysterically. This episode is interesting specially because I recall from reading when I was an infant the book E.T. and one of the thoughts of one of the characters involved something similar. Life's funny.
25.08.2004 More junk
  • So our wireless stuff is here, and installed (or rather hodgepodge-installed, since it's still a mess of wiring and tape). It works well, and the Netgear WG511 cards worked perfectly in 11g mode with the prism54 module (and binary drivers, whee), but I am a bit disappointed with the range for the PCMCIA card -- it's not more than 5 meters if I have walls in between AP and card. I suspect the USB device (which is 11b only) has a better range, but I need to check to be sure.
  • Kind-hearted Roman and Victor the crackhead (can there be a greater antithesis?) both made it up Aconcagua during the winter, and survived to tell the tale and become 5-minute sensations in Brazilian news: [www.terra.com.br]
  • My days this week seem to have been a sequence of emails and IRC conversations. I have gotten very little `real work' done, and that is *SO* frustrating. The fact that we are spinning a collection of projects is fun but also very scary and I need to stay focused if we are all to get through 2004 in one piece. This week I need to put an end to this and get back on track.
  • Wrote a massive email on CXS work that was long-leftover. Took me about four hours on and off. The neighbors decided to through this amazingly loud and stupid party and I have no idea how the police haven't been hauled in yet. Estrela is completely out of whack and runs around in circles in the garden non-stop. Thank god for .ogg files.
  • Orkut says:
     You have 1595 unread messages.
    and I don't care. To finish off the day, what happens? ANTHEM SCSI BLOWUP! FEELS LIKE 1983!@#!@!@
23.08.2004 Trinkets
  • Purchased (for Timello) a Linuxant driver for a Conexant PCI Winmodem. While I am in principle against softmodems, I'm not entirely against paying for drivers if there's nowhere else to run. So I'm now supposed to generate a key somehow at [www.linuxant.com] -- but I haven't actually found out yet. Serves me right for buying stuff without reading.
  • Now all I need to do is to fix up *my* notebook's modem: [rzr.online.fr]
     PCI: 00:08:0: chip 10b9,5457 card 103c,0024 rev 00 class 07,03,00 hdr 00
  • Apparently I'm going to be racing at [www.brasilwild.com.br] one of these weekends. Wow.
20.08.2004 Saturday Siesta
  • Did a slow bike ride this morning after doing the initial office cleanup.
  • Picked up some old reviews, cleaned up email, found out that adding more memory to my notebook is a mere R$180 -- I'm there on monday!
  • So Jacob Bresciani wrote me about a potential solution to a problem with Samba and CUPS I found a while ago. He suggests:
     Printcap Name = lpstat
    instead of
     Printcap Name = cups
    which we have in there currently -- it's supposed to do an lpstat -v every time the printer shares are requested, instead of reading the printcap file from Cups (which can end up holding a stale list every once in a while). I'll give it a spin in Consave next week.
  • Nice little APT tutorial at [jaqque.sbih.org]
  • Talked to a Stoq user named Tony over IRC about Stoq2 and where we're going with it.
  • Did some serious work on freedesktop.org's Bonsai installation -- the CVS checkin database processing took over two hours, and that's for more than 170,000 files.
  • Spent the afternoon installing Bonsai on freedesktop.org. This involved filing multiple bugs on the relevant Debian package ([bugs.debian.org] wrestling with the somewhat obscure configuration, pestering daniels and anholt into helping me with this and that, and discovering (thanks again to anholt) that freedesktop.org's CVS repository is actually assembled on top of a number of CVS repositories. Yes, this means there are nested directories with CVSROOTs -- no wonder I was confused initially!
  • An excellent text on SVN's features compared to CVS is up at onlamp.com: [www.onlamp.com] -- it made me want SVN already, imagine that.
18.08.2004 Back from the beach
  • Beach? Hah! That trick title was designed to put off people thinking I am working too much. Did it work?
  • Found a nice site about the brazilian time zones and time legislation: [pcdsh01.on.br]
  • Ran into an odd problem with mutt and gnupg. While mutt *does* say that it's verified my key fine in the message body:
     gpg: Signature made Fri Aug 20 14:37:56 2004 BRST using DSA key ID 797EBFAB
     gpg: Good signature from "Enrico Zini <enrico@debian.org>"
    I *sometimes* get in my footer a message that says
     PGP signature could NOT be verified.
    -- haven't been able to find out why, though [lists.gllug.org.uk] has the same problem as I do described. It only occurs in *some* mail folders -- in others it's fine. OH! Found it out while upgrading to mutt 1.5 -- and it's soooo obvious. The reason it only occurs in certain folders is downright silly -- it's because the actual error means in this situation that it couldn't verify the *whole* message, and do you know why? Because of mailing list footers, of course! These are tacked onto the signed email *after* it's been signed, so it can't really be dealt with. Funny how these things aren't obvious until you spend some time figuring them out.
  • At least I found out that adding
     keyserver pks.ms.mff.cuni.cz
     keyserver-options auto-key-retrieve
    to my .gnupg/gpg.conf provides for less typing, faster downlaods and auto-downloading when mutt tries to view a signed message.
  • Discovered [www.unpythonic.net] and realized it's actually an *awesome* use of a Java applet.
  • Installed mime-support on anthem and finally got mutt to display HTML email even when viewing mail from there.
06.08.2004 Networks
  • Spent four hours trying to track down an idiotic problem with a network. In the end after a lot of tcpdumping (which is interesting because it is bizarrely lagged and only starts tracking packets about 30s after being run) I decided the problem is in somebody else's network. I Hate Fridays.
  • Had a proposal declined -- a Brazilian company, of course. So much harder to do business in your home country, it seems.
02.08.2004 In case you were wondering
  • SWIFT actually stands for Society for Worldwide Interbank Financial Telecommunication. Financial institutions communicate to each other via SWIFT, which is a secured network. Every member of SWIFT will be assigned a SWIFT code, sometime called a BIC code. [www.swift.com] has a lot more information.
  • For instance, the SWIFT code for Citibank NA, New York is CITIUS33. By using its SWIFT code, all parties to the transaction will know who is the bank involved.
  • Hey, PSP sounds actually pretty cool: [www.onlamp.com] -- could this be the TT-alike thing I've been hoping for?
01.08.2004 Departures and Arrivals
  • Sunday had so many hack attempts and sendmail spam harvest that blockreport blew up, ate up anthem's memory, and had a few critical processes dropped.
  • It's going to be airport time again in one week time -- off to Oxford!
29.07.2004 Landings
  • Landed most of my open changes to Bugzilla and the CXS preview site. Found new ones to bother me :-/
  • [www.ironpython.com] was finally released as OSS.
  • Hacked around Apache's FilesMatch. It's so interesting to notice the way Apache uses it to check for access to a file -- for instance, you may allow access to a subdirectory, but when accessing it you'll find that hits for index.html (and other DirectoryIndex files) are generated and may very well be blocked because of the way Limit inheritance works.
  • There's also the funny issue that Order takes *no spaces* between commas joining Allow and Deny!
  • AllowOverride Limit Indexes is very useful in general: it allow for limiting access to files, and customizing file directory indexes (when active).
  • Hacked some mutt keymacros. I found out you can have multiple-control-key sequences in .muttrc which made me really happy once I came up with control-d-control-w-control-d-control-x.
  • Estrela went to the vet today. The vet says she's healthy, beautiful and weighing 14.5 kilograms. Gave her some medicine, nonetheless, to ensure she's parasite and sickness-free. And apparently I need to take Olivia for rabies shots tomorrow!
  • Ran into some funnies with background-image on a table row and Mozilla and Firefox tonight to fix bug 252810. Used [www.blooberry.com] to ensure I wasn't mad, but the problem turned out to be the fact that table cells now inherit background style (including background images) from their parent rows. Weird thing is Firefox 0.8.x doesn't. Then turned out that IE didn't support anything of what we were doing so I had to add a class hack instead. Ugly.
26.07.2004 Adventures in the land of a pach E
  • Wanted to turn off the silly "Parent Directory" link in apache. Of course,
     IndexIgnore ..
    was all I needed.
23.07.2004 Croaking
  • Debugged a fair bit of Bugzilla's internals, and found out I know my way around already quite well. It's a big fat [ugly!] system.
  • Discovered Carp::longmess (and its cousin confess), which is precisely what I needed to make debugging easier -- it's just like trusty old traceback.print_stack()!
  • Caio's box burned up one day before his DJ-set, so I lent him one of ours. Line-up here: [www.inexpressivo.blogger.com.br]
  • This is precisely what I mean when I say "wtf": [cgi.ebay.com]
22.07.2004 Missing bits of information
  • For instance, php_value can only be specified if AllowOverride includes "Options". The FAQ for Gallery at [gallery.menalto.com] mentions it, but doesn't say if it's Options or Fileinfo, so I had to test to find out).
  • PHP's includes are always processed relative to where the *script* runs, not where the include file is (maybe it's that way everywhere, but this is where I felt it :-). So your include_path *must* state relative paths considering where the script is going to run, not where the middle-level includes live.
  • Interesting set of documents and an article about what sort of deliverables are interesting for discussing UI design: [leacock.com]
  • CSS fun. BZ told me an interesting thing: that the CSS box model implies that a box doesn't care how wide its children are (unless in float or absolute positioning). This makes for some peculiar things, such as a box where its children trigger horizontal scrollbars but its parent only takes up the space in the viewport.
     clear: both;
     white-space: nowrap;
  • When encoding POST data to submit somewhere, remember: first you want to encode it in the proper character format (in my case, UTF-8 via utf8_encode) and *then* you need to urlencode it to avoid it going bananas because somewhere in the content someone placed an ampersand and then boom boom parser.
  • Quick references are fun: [tnerual.eriogerg.free.fr]
21.07.2004 Must be funny
  • Compiling PHP with freetype2.x is fun on Woody. It hits the freetype1 headers (because /usr/include comes *before* /usr/include/freetype2/ in the compilation commandline) and we get hundreds of messages like:
     In file included from /mondo/src/APACHE/php-4.3.8/ext/gd/libgd/gdft.c:65:
     /usr/include/freetype2/freetype/ftglyph.h:104: parse error before `FT_Library'
     /usr/include/freetype2/freetype/ftglyph.h:104: warning: 
         no semicolon at end of struct or union
    The really fun part is finding out a solution amidst the hundreds of -Is strewn around the screen. Found a tip at [www.cuddletech.com] that basically said "rename /usr/include/freetype to freetype1 and you'll be happy". Happy.
  • Fought with map and Bugzilla's trim. For some reason, you can't do "map trim, @list", and I have no idea why. You need to use "map { trim $_ } @list".
20.07.2004 Why we need Tim
  • I declare today to be international Tim Peters day, for some reason.
     [Jeremy]
     > > This violates the Python C style by putting an assignment in a
     > > conditional.
      
     [Jim]
     > Where is this documented?  Assignments in conditionals are used widely
     > in the C sources, including such places as gcmodule.c, object.c, and
     > typeobject.c.
      
     [Tim]
     It's not actually part of PEP 7 (the Python C style guidelines).
      
     It was an informal rule in PythonLabs (at least the non-Guido part of it
     <wink>), triggered by noting how many subtle bugs in real life
     ended up involving an embedded-in-a-conditional assignment.  I don't run
     around getting rid of those for their own sake, but if I'm rewriting a
     piece of code for other reasons it's a transformation I routinely make
     now.  And you can count the number of Python bugs traced to my C code
     over the last decade on one finger <wink -- but avoiding doing multiple
     things on a single line really helps, and so does avoiding side effects
     in the interior of expressions>.
     
  • To Barry Warsaw, on the supposed inexistence of PythonLabs: [www.python.org]
  • Have any other life-changing quotes? Send them to me.
19.07.2004 PEPsamar
  • And we have (after a year or so) a PEP registered on the LC_NUMERIC issue that was solved a while back by gjc and Martin: [www.python.org]
  • Did some more Bugzilla reviews and guided people around, but not a lot of hard work got done beyond delivering the layout part of some of the Web work we're doing this week.
  • Learned about SQL-unstandard ifnull(X, Y) which returns Y if X is not set.
17.07.2004
  • Some bonsai snort activity makes me wonder. Find some related documents, but in Russian :-/ [www.inform.h11.ru] -- the funny part is that this exploit is silly because we all know that bonsai isn't written in PHP (sorry). The fact that 6 different originating IPs probed this seems to imply that there's some coordinated work going on.
  • Discovered /allserv /nick kiko_fud and made my life easier :)
16.07.2004 Back me out!
  • Went to the dentist and got my protective plate installed. It's not that bad, but it's tight and makes you talk as if you were 5 years old. Hopefully my teeth will surrender themselves after a while of fighting the new configuration they take when the plate's in.
  • Looked at alternate stylesheets for Bugzilla, using some code and styles from [www.alistapart.com] (that I picked up from Hyatt's weblog of all places). Took about 30m to hack into Bugzilla, the charm of it :-)
  • Hmm, realized I might have been required today in Curitiba at Telepar for some Gnome.br things.
  • Found an SSL-enabled version of X-Chat 1.8 for woody! Viva [www.fs.tum.de]
  • Discovered cvsps -- generating patchset information, hmmm, to help me back out a bunch of stuff. And in conjunction with -d and trusty old patch -R, it works!
  • Ran into something.. weird. 4-headed boxes :-) [www.c3sl.ufpr.br]
15.07.2004
  • Had a few rough days and nights but work has been progressing nicely. Made lots of contacts and cleaned up my backlog quite well. This morning murdered email and dealt with PyGTK bits, mainly looking into GTK+ source code to see how gtk_module_init works and thinking about a tough question relating to dynamic loading. The rest is just the usual fare.
  • Found out that manpages in XML can be parsed using xmlto -- found a woody backport of it and happily fixed up a few bugs in bugzilla-submit's manpage (using man -l bugzilla-submit.1 to test). Also touched up some of the error verification so it works as expected, fixing bug 244324. This required subclassing URLOpener and doing something like Michael Reilly suggested in [groups.google.com]
  • Tried to find a way to make my dependency tree work as Joel wants it to; however, having a hard time making styles conform to the way I want. Discovered that getComputedStyle is not standard over browsers: [www.quirksmode.org] :-(
  • Had an IndexedCatalog bug reported: we're ignoring the excluded attribute option! Fixed with major band-aiding, I should really think this through better.
13.07.2004
  • Confusing. Javascript can't be embedded using LINK, apparently -- only using SCRIPT SRC. Go figure.
12.07.2004
  • Finally, after years of waiting, the hot new PyGTK 0.6.12 crack hits the street. Fuel your addiction here: [ftp.gtk.org]
  • Me escreveram perguntando sobre tutoriais CVS em português. Encontrei dois, de qualidade, digamos, "mais ou menos": [www.sounerd.com.br] e [www.linuxit.com.br]
  • Using codewarrior? Don't know how do compile via the command-line? Here: [www.palmoswerks.com]
  • Discovered hyphen-show, a utility that helps find out if LaTeX hyphenated stuff it shouldn't, from a tip at [hex.lspace.org] -- it's even in Debian.
  • Did some CSS futzing around with [www.kryogenix.org] to make my dependency trees work as expected.
11.07.2004 A lot of nothing
  • Hacked some CSS for bugzilla.mozilla.org. Looks a lot nicer than I thought it might.
  • Tried for the second time to get a recent firefox binary running. Oh, I feel like am back in 1996, during the glibc wars. Seriously, this is ridiculous. I managed to get XFree86, pango and friends running nicely, only to find out that firefox (apart from all the other @#!@#! requirements) needs frigging glibc-2.3. Jesus. The worst part is that my upgrade to XFree86-4.3.0 has put me in a fix because pygtk isn't happily compiling again because of stupid freetype version skew issues:
     /usr/bin/../lib/libpangoxft-1.0.so: undefined reference to `FT_Seek_Stream'
     /usr/bin/../lib/libpangoxft-1.0.so: undefined reference to `FT_Get_Short'
     /usr/bin/../lib/libpangoxft-1.0.so: undefined reference to `FT_Forget_Frame'
     /usr/bin/../lib/libpangoxft-1.0.so: undefined reference to `FT_Access_Frame'
     /usr/bin/../lib/libpangoxft-1.0.so: undefined reference to `FT_Get_Long'
    Don't I love free software. The solution? I don't know either. The problem is that pango wants an older version of freetype (2.0.9), basically (and somebody set up dependencies wrong). So now the solution is probably grabbing a newer version of pango/gtk2 that work with freetype 2.1. Or compiling the whole shebang.
  • The issue really is freetype compatibilities, and I decided to recompile everything into /usr/local. We don't normally use /usr/local for locally-installed stuff, but this is an exceptional case -- these are development libraries, really -- and I decided to bite the bullet. The dependency graph isn't too deep for GTK+, thankfully: once you have freetype6 and fontconfig and Xft2 available (via backports), it's a matter of forging pkg-config files and getting glib, atk, pango and GTK+ itself built.
  • Fudged Openoffice fonts (yeah, the reinstall made me upgrade openoffice). It's annoying, but basically the bug open at [lists.debian.org] explains the problem -- the solution is both to use the options dialog to replace the mysterious Andale Sans UI and to hack openoffice.conf to follow my gnome preferences (even if I don't have gnome installed).
  • Read off another long thread about why __del__ is not reliable in Python at [mail.python.org] -- it's interesting that Oliver actually managed to make Martin say "Hmm". Must be a first. More here: [groups.google.com] It's not easy to define what semantics we want in a dynamic language, because we don't want to garbage collect *every* object that goes out of scope, and then if we want to use reference counts, well, the issue becomes that of discovering at the end of a function call which objects need to be finalized -- which isn't possible in CPython (though could be implemented) and which isn't possible in Jython either, Jython being a more serious problem because a) objects created in Java can't be reference-counted by Jython and b) there is no Python runtime to change -- it's just Java bytecode.
  • Seth, the linkrotter, broke the GtkFileChooser spec link, but I found it again at [www.gnome.org]
09.07.2004 IT RAINS IT RAINS NOT
  • So of course on the first holiday we have in a while, and the day I plan on picking up my stuff so I can go biking, what happens? It rains, I go too late to grab my biking stuff, and miss the ride. And then what happens? The @#!@#! sun comes out! Feels like calling the department of weather and yelling at them over a landline.
  • Talked a bit to Marcelo about what sort of work it is to hack support in Linux for platforms based on processors -- processors we already support, of course. Apparently, for PPC there are a set of Platform CONFIG_* options that more or less tailor what sort of infrastructure the hardware has around the processor -- I wonder if quite a few of these weren't available for 2.4 as separate patches. However, AFAIK PPC support hasn't been merged proper into 2.6 either -- not out of the box at least.
  • So guess what [www.altria.com] is? Something nice, right? It's the new name of the Phillip Morris conglomerate!
08.07.2004 The nerve | 300 or die
  • I'm getting spamcop bounces from people spamming my *submission* address to Spamcop (xxx-submit@spam.spamcop.net). I'm serious, these people need help.
  • Talked a bit with mhamilton at #mozwebtools about tinderbox3. He works at Meyer Sound, who apparently make these evil apocalypse-grade speakers and a bunch of software tools for tuning them like [www.meyersound.com] The interesting part is that he said that although you can spend over US$200K+ on speakers easily, there appear to be quite a few setups in Brazil: [search.meyersound.com]
  • Control-enter as a form submission thing for textareas: [theflangynews.editthispage.com]
  • Hacked some websites that were in dire need of updating. Found out it's quite hard to track down exactly what you've been up to over the past year or so.
  • It's official, I must have hit some Orkut superstar status thing.
  • José put up some awesome pictures of his stay here in Brazil, including some of Fabia and I: [natura.di.uminho.pt] -- the finger of god is where Magno, Sal6, Corbani, Tição and I were struck by lightning almost three years ago. Lightning rocks.
07.07.2004 Out of band
  • Hopped over to Campinas to visit Jacomo and Guilherme Venere at CAIS, the incident response center for the Brazilian research network. Arrived an hour late given multiple incidents, though rather of the "public transport" sort. Jacomo was so cool to have given me a real vintage can of SPAM that would make Hermann proud of me.
  • Saw Guila in his new home in Campinas. Let's not omit the fact that he got the number of his own house wrong and had me, Guilherme and Atanai driving around mad in search of a house that didn't exist! He's got three dogs to keep him company, and a bunch of DVDs and CDs, and he works as a carpenter and furniture restorer. He's even starting to look like Jesus, I swear.
  • Jeremy gave me a different idea about the ConflictError thing -- something resembling what he wrote about back in [www.python.org] ; basically, it involves creating a data structure in which conflicts will be very unlikely to happen. Something like a dictionary with pre-created keys, that stores stuff from a certain connection in a Bucket in each of its keys, and which has the contents of those Buckets emptied individually. I think :-).
06.07.2004 Dentists, Scholarships and Conflicts
  • Went to the dentist to get my protective plate done. This involves getting a mold made of this weird greenish vanilla-flavored goo stuck on your teeth for around 30 seconds. Luckily I'm not the squeamish type.
  • Fixed up scholarship requests for Evandro -- with a lot of help from Fabia yesterday this is coming to be a simpler process than, say, building a house, but still not quite as simple as it needs to be.
  • Worked for about 1h on meeting at CAIS tomorrow.
  • Investigated some more ReadConflictError issues with IndexedCatalog. This work is really pending a customer coming up with a reason for paying for the change, but for what it's worth my investigation seems to have uncovered two alternatives. The first one is simply porting IndexedCatalog to ZODB-3.3+ and taking advantage of its MVCC. This involves hacking ICPersistent to become a persistent.Persistent object, and taking care of the imports required to make IC work as expected (hopefully not that complicated). The second alternative was proposed by Casey, today, and which invites a more detailed discussion, if not for plainly academic reasons.
  • One of the main RCE issues is in the OOBucket used to store changed items in IndexedCatalog.Catalog when in queued mode. In a way, this is ironic given that this feature was implemented precisely to *avoid* conflicts in the indexes -- however, in reality it has become a concurrent write bottleneck. To understand why, let's cook up a simple example RCE. Client A loads an object, changes it, and commit()s. The Shelf commit is now actually done in two phases; the first one commit()s changes (which have been stored during __setattr__ in the _change_buffer OOBucket), and the next one clears out the OOBucket into the indexes. Now let's say Client B starts loading the catalog before the first commit, but loads _change_buffer *after* the commit runs. Oh-oh, you guessed it -- client B will RCE on the OOBucket, and with good reason since it's been changed before its state was loaded. I would have thought this wouldn't be a problem in practice, but my client logs full of RCE tracebacks have forced me to reevaluate my position. Tim Peters' take on it is the best explanation I've heard of the problem:
    In the absence of MVCC, RCE is expected if an object O has been modified between the time the current transaction began and the time O.__setstate__() is called.
  • Casey Duncan suggested one alternative, which was making use of _p_independent. This hook allows one to say that a certain persistent object's state is valid no matter what other persistent objects' state is -- IOW, it doesn't *want* to be notified of ReadConflictErrors. Interesting thing is that Dieter Maurer proposed creating versions of BTrees/Buckets that were independent over a year ago; the middle of the thread is on ZODB-dev at [mail.zope.org] However, both Tim and Jeremy had serious reservations to the approach, because there were a number of scenarios in which BTree state could get corrupted by ignoring RCEs (interestingly, the real solution was something like MVCC which was originally implemented in ZODB4 and then moved back to 3.3).
  • This is where Casey's original suggestion comes back: we *could* declare _p_independent and just implement a _p_resolveConflict method; this is more or less what QueueCatalog does, and there's code to show for it: [cvs.zope.org] -- all that we're waiting for now is for somebody to actually come out and sponsor the wicked thing.
05.07.2004
  • Back in office, catching up on email and tasks left over from yesterday.
  • Some crap is just unbelievable. Try figuring out *why* the PyGTK FAQ Roulette is up here: [www.platinumholdem.com]
04.07.2004
  • Hiked with José and Fábia up to the base of "The Finger of God", the life-threatening lightning-inducing rod of rock that juts out from under Teresópolis. Had a nightmare of a bus ride back to São Carlos with highlights such as a 4:30 stopover at Campinas that lasted two long hours and a weird dream inside the bus where I thought I had woken up and left the bus to walk about this weird (and seedy) downtown area of some nondescript metropolis.
03.07.2004 The Forest of Family
  • Weekend fun in Itaipava, for my grandmother's 86th birthday. I printed out our (pretty massive) genealogical tree and watched in glee as the relatives fought it out to update their data, add new bits, and complain about this or that part of the rendered tree. The tree was fairly expensive to print out (R$90) but, given it was done on 6m-wide plotting paper, I think it was worth it.
02.07.2004 Bugzilla layout comparison | Yakissoba or die!
  • Did a small survey comparing Bugzilla layouts today. Here's what I found.
  • Redhat [bugzilla.redhat.com] : Redhat places an odd-looking (but simplified) form at the top of the bug display. Bug comments come ordered by time, followed by the comment box, followed by the same bug form, followed by attachments and actions at the bottom. I find the layout wastes a lot of vertical space (and therefore uses lots of vertical scrolling).

    They also have a tab-navigation system at the top of the screen, and a bug-number entry to the right. This part I think is quite nicely done.

    Dave Lawrence sent me a link to their new testing site at [bugzilla.redhat.com] . It uses a more conventional form layout (which is unfortunately too wide for the 640x1024 window I use), and offers a commit button right under it so people doing bugdata editing can do it quickly.

  • Ximian [bugzilla.ximian.com] : A table summarizing the current data comes first, followed by comments ordered by time. Ximian places the controls above the new comment box. They use a single item <select> for Product -- in part because they have fewer products and many components.
  • GNOME [bugzilla.gnome.org] : GNOME places comments above the controls, and adds a small <div> containing the most important info in the upper right column -- perhaps the approach I like most if you want to place comments before the header. Attachments come directly under the comment box and the usual mess of controls at the bottom.
  • KDE [bugs.kde.org] : surprisingly enough, KDE Bugzilla's layout is similar to.. GNOME Bugzilla! Luis Villa let me know that the KDE guys actually wrote most the of the original code reused in the GNOME templates (which goes to show that there's always more collaboration than immediately apparent). It also uses a <div> to the right, with comments at the bottom and the comment box at the very end. There aren't too many bugs, and more surprisingly -- well, at least to me who doesn't have editbugs -- the bug form is not displayed. You get the feeling it's nice and short until you realize you're missing something :-)
  • Helix [helixcommunity.org] : Helix has something I never thought I'd see. It's a sourceforge/forge site that -- instead of the *cough* tracker that comes with SF -- has an inlined Bugzilla! The login system is somehow integrated with the SF site, too. Unfortunately I can't see much of the site because all bugs are assigned to groups (what's up with that?), though the search form looks just like the original one with some weirdly hacked CSS for the form controls.
  • XPertNet [bugzilla.xpertnet.biz] : This Bugzilla is the most unusual of all the other layouts. I know Ludovic put a lot of work into CSS-ifying their templates, and it has separate View/Edit modes for the bug -- clicking on the relevant "button" makes the Advanced section grow form controls and the comment box. The funny part is that they still use the same old 1970's comment header:
      ---- Additional Comment #1 From Ludovic Dubost  2004-05-14 18:00 [reply] ----
    They also have collapsable comments, and saved queries show up in a CSS-ified popup menu at the far right. Navigation is at the top of the page (hooray), and there's a Task browser.
  • Async [bugs.async.com.br] : We use a slightly modified layout, that simply groups controls in the main form, reorganizes the dependency view, and uses tables to display the individual comments -- it avoids names and dates jumping all over the place when viewing a long bug. I can imagine placing timetracking information as part of the table columns as well.

    We also lay out the bug actions horizontally, ans use <label> where possible.

    We have a compact "shortcut bar" which is placed at the top and bottom of the screen which gives access to saved queries and most Bugzilla tasks.

    Our layout is adequate for 640px-wide windows, which is what normally is used here (people have screens split vertically at the middle, with 640px to each side).

01.07.2004 OH NO JULY IS UPON US
  • Man, years are really short time units.
  • Anyway, :%!xxd is what you want to get vim to show binary stuff -- it does this by piping stuff through xxd to get the hexadecimal dump. Hex is cool.
  • On the topic of decompressing vmlinuz files, basically, you want to find the gzip signature "1f 8b" (which is octal \037 \213 in your magic file), see what offset it occurs (in my case, 0x3f6c, which is 16236 in binary), and then issue:
     dd if=/boot/vmlinuz of=~/vmlinux-stripped.gz skip=1 bs=16236
     gzip -d vmlinux-stripped.gz
    -- which is more or less what Russ write to lkml recently: [groups.google.com]
  • Oh, and btw, make bzImage doesn't mean we're using bzip2 to compress the kernel image -- it just puts the kernel image offset further ahead. See linux/arch/i386/boot/compressed/Makefile for details.
  • Ran into Nic Henke, who did the IndexedCatalog C-extension work, on IRC. The funny thing is that I started out giving him a hand with this kernel unpacking thing without us realizing who was who. I suppose there aren't that many kikos on IRC, though. Anyway, he's trying to convince me to use Gallery by showing off his at [unholymess.com] -- maybe I'll adhere. But is this really the point in my life where I want to look at more PHP?
29.06.2004 ?n-0208057040540
  • Cryptic, but meaningful. [www.etext.org]
  • Question: is there a way in perl to use an array as a hash key. The answer is NO, and the real answer is doing ugly hacks like joining the keys or pushing the second half into the values and ugh. Tuples.
  • Also fought with MySQL, and really cursed the broken aggregation in 3.x. This was really frustrating, and the resulting loop is SLOW, and when I say SLOW, I mean, SLOW. Still need to find a better way to do that.
  • Ran into Trac: [www.edgewall.com] via Sidnei's tip.
28.06.2004 Priceless.
     <radix> hooray I am famous
     <tjs> radix: your already famous
     <exarkun> radix: Again?
     <dash> radix: turn your fame into cash
     <radix> dash: how?
     <elspeth> radix: can i have some then?
     <moshez> radix: famousness!!
     <dash> radix: sheesh, i'm an idea man; details aren't my department
     <moshez> radix: remember the people who were you friends before your
                     fame
     * moshez hugs radix
     <moshez> radix: steal dash's money and count on your fame to protect you
                     from reprisals!
     <radix> he doesn't _have_ any
     * moshez comes through with details
     <moshez> radix: steal his stuff, and fence it
     <exarkun> radix: Why are you famous today?
     <radix> because kiko put me in his quotes list
     <moshez> radix: wuuuuuu quotes list
     <moshez> radix: your fame is scary!
27.06.2004 Hair sucks
  • I got that VERY-MUCH-NEEDED haircut today. Nando!
  • Formmail seems to be staying ahead of the pack in the snort logs; would be funny if it wasn't tragic. Along with the CVS access attempts, this makes for a colorful melange of security complaints and responses during the week.
  • More stoqlib z3 interfaces discovery. Now with value-added PERSISTENCE. Or not yet.
  • Oh, no. Another one of them. How many ORMs do we need for Python? [tux4web.de]
  • And on the topic of Workflow (since I grilled Sidnei about this for hours today): [tmitwww.tm.tue.nl] and [www.reflab.it] -- oh there's more [dev.zope.org] [dev.zope.org] [dev.zope.org] and of course his script that convers DCWorkflow to graphviz format: [awkly.org]
  • Radix, about people that use RDBMSs:
     <radix> kiko: who cares about those cavemen
    I love #twisted.
26.06.2004 WTF
  • Found in our snort logs today an amazing profusion of attacks to /cgi-bin/formmail.cgi. Of course no such file exists, but it's gone from a sporadic occurence to the #1 item on snort-report:
      25.00% 33 200.206.134.238  WEB-CGI formmail access (1:884:8)
      15.15% 20 200.206.134.238  WEB-CGI formmail arbitrary command 
                                 execution (1:1610:5)
    Given that up to yesterday top offenders were Squid scans and WEB-IIS crap, this has got to mean something special. Some of the logs also have these weird Via: strings in the HTTP header, which is set to stuff like SERVER and WWANDW. WTF?
  • Updated my Orkut photo album with captions. I guess I really like captions. Time to look for photo album software with less security issues than the market leader.
  • Twisted's documentation on adapters and interfaces at [twisted.sourceforge.net] is possibly one of the best documents I've read to date. It's straight to the point, full of examples, and talks about real-world problems. It's not hung up on concepts, but it still manages to deliver precisely the relevant ones at the right time. Kudos to the Twisted doc team, all the way.
25.06.2004 Upgrades
  • Going to give a spin on ZODB-3.3 with IndexedCatalog. Clients are really hammered by the ReadConflictErrors, and hopefully 3.3's MVCC is going to make everything "magically better". There seem to be two options here: either forego ExtensionClass completely, inheriting from the new-style persistent.Persistent, or install the new-style ExtensionClass bits. Problem with the latter part is actually finding them! They don't live in the ZODB package, nor anywhere I've been able to find so far.
  • Okay, they're in Zope/lib/python. Now the next question is how to pull all of this out, and whether it's going to keep on working with IC, which has a few C hacks for speed. Pulled via SVN because nothing else seems to quite work (and I didn't want to have to leech all of Zope because of three crummy files):
     svn co svn://svn.zope.org/repos/main/Zope/trunk/lib/python/ExtensionClass 
    and immediately liked the fact that svn uses the basename of the repository provided as the local directory. Was confused by the third option to checkout, but then realized it's just a local path. Neat.
  • However, getting IndexedCatalog to run with this new creature is scary. Apart from evil module layout and name changes, the ExtensionClass rewrite has made it close to impossible to figure out how to build Persistence again. Or even figuring out if that's what I want.
  • In the process, found out that ZODB actually uses zope.interfaces (optionally, masked by an except ImportError) as well.
  • In the end, Tim suggested something I was leaning towards: goodbye ExtensionClass, hello new-style classes for IC. Hopefully won't be too difficult.
  • Managed to update X to the backports version which no longer crashes on a firefox query for .nscdrecover. However, it apparently still generates a massive fd leak, and I can't run an rxvt after the query finishes displaying without getting
     Xlib: connection to ":0.0" refused by server
     Xlib: Maximum number of clients reached
    which is sort of summarized at [www.netsys.com] -- the feeling I get is that it's really some weird X server bug that I can't get hold of. I could try the 4.3.0 backport at some point to see if it cures things. The funny part was that the rest of the team came into work and booted up -- into Gnome 2.2. Can you imagine everybody going "where's Ion?" Our Xsession hacks need to be preserved over X upgrades, and I sort of keep forgetting that.
  • Had lunch with Renata, talked very little about SAFE. Everybody's a bit unhappy because of the University strike and because the grant is taking a long time to set up because of various beaurocratic issues that keep popping up here and there. Project's been approved for a month.
  • Started work on a Bugzilla modification that involves summarizing timetracking information. Looked at the DB schema, and filed a few bugs on UI issues that popped up while I was customizing.
24.06.2004 Strange motions
  • It finally happened. [www.orkut.com]
     Brazil          31.26%
     United States   29.77%
  • Went to see Consave at Sertãozinho. System's doing well, though the ReadConflictErrors are bothersome to say the least.
  • Looked a bit at Zope3 interfaces and adapters to see what sort of presents they have for me. [dev.zope.org] and [mail.zope.org] and [webforce.at] and [webforce.at] have some bits of guidance. Twisted's excellent docs that predate the z3 move are here: [twisted.sourceforge.net] The ZODB text about persistent modules, however, still confuses me: [zope.org]
  • Read something about Aspect-Oriented foo at [www-106.ibm.com] and realized how horrifically horrible AspectJ really is. Compiling cross-cutting updates into Java bytecode has got to be one of the crummiest ideas ever thought up. It brings in so much potential contextual complexity that it probably makes reading the code an exercise in futility once you have the bugs jumping. And after years of writing code that's in production, believe me, bugs jump. Sidnei puts it much better than I do:
    <dreamcatcher> now add interfaces to that and you have a nuclear bomb ;)
  • So Nafai tells me we have some other interesting persistence systems for Python: [www.divmod.org] and [www.itamarst.org] -- I wonder how they rack up against the ZODB.
21.06.2004 Ten Poles of Dume
  • Talked "The Turnip" into getting his wrists sore over [bugzilla.gnome.org] -- Yes, Johan *does* rock, it's just that most of the girls on orkut haven't found out yet.
  • Since I seem to always forget, we check if a property is defined in Javascript by using:
     if (typeof foo.bar != "undefined") {
         k = foo.bar
     } else {
         k = undefined
     }
    This tidbit comes from ajvincent and rginda's excellent "Tackling JavaScript strict warnings" guide at [javascriptkit.com]
  • Hmm. Ran into something weird as hell: [www.xd38.com]
20.06.2004 Templates for Disaster
  • So I missed out on the party yesterday. Boo.
  • Tracked down an odd GTK+ change that affects the way the Kiwi proxy works. It could be related to [bugzilla.gnome.org] -- basically the issue is that "changed" is only fired once when issuing multiple GtkEntry.set_text() calls with the same string. It's, of course, a literal interpretation of the word "changed", but this is programming, not semantics class. Worked around it but wrote off a message to gtk-devel to raise the question if it's intentional: [mail.gnome.org]
  • Found out that GtkSpinButton now *requires* a set_range() or stuff doesn't work as expected. What a strange change. Anyway, for convenience's sake, I argue we should offer min/max or a range tuple as a convenience argument to the constructor, and I've found there's precedent to this in TreeViewColumn's constructor, which in GTK+ takes no arguments but in PyGTK takes title, cell and kwargs for attributes. Shouldn't be too hard to do, though the PyGTK 2.0 backport is going to be boring.
  • Links of the day include [groups.google.com.au] and [people.debian.org] -- the first one is particularly remarkable because it's such a perfect example of how this color of life we've chosen is just.. unique.
19.06.2004 Spot-on hacking
  • Did the first part of the Kiwi2 port. I have two examples running and a number of tests there. The fun part is that it's much easier than I thought it would be. Soon will have something nice to gape at.
  • Hacked with Sal6 an abstract-parser to deal with the braindead format he received some article index from a congress I don't want to hear about it. It didn't involve TOO MUCH hacking, but it did involve a fair bit at least. I had to make extensive use of regexp's magic "(?:" which is a complete hack IMHO but what can one do when the real world sends data your way?
18.06.2004 Grab-bag of grueling guerillas
  • Pushed myself through a round of Kiwi-hacks and found out things weren't so hard to figure out once a testcase had been written. I love testcases (after I've written them -- the writing process makes me want to give up computers).
  • Helped sal6 boot up his raid server again, since it decided to crap out after a power outage. Found out that the stock vmlinuz compiled on my box won't boot straight off a floppy; you need to use something like mkrescue to transfer it to a floppy disk with lilo.
  • Read through PEP-1 [www.python.org] and PEP-9 again and then submitted an updated version of the LC_NUMERIC PEP draft to the PEP maintainers at python.org.
  • Very interesting fight between me, Stoqlib and pychecker ensued today. It really boils down to what the #twisted people tell me all the time: never ever ever use relative imports, though in the pychecker case, it has a twist of its own. Relative imports are evil because they are ambiguous relating to how sys.path is set up. For instance, if you have something like:
     foo/bar/baz.py
    and something like
     bar/baz.py
    and you use the simple form
     import baz
    from one of baz.py's sibling modules, you can't really be sure which baz is going to be imported. It ultimately depends on how sys.path is set up.
  • The fix for this situation is (obviously) using, throughout, the full form
     import bar.baz
    of course. HOWEVER, because of how pychecker works when you specify multiple filenames to its commandline, this isn't guaranteed to work either -- and the reason is that pychecker puts everything in sys.path, making it highly sensitive to the order things were imported. The lessons to be learned here are a) never ever ever use relative imports, b) careful when naming a subpackage with the same name as a top-level package and c) have a top-level package. Should make life a lot simpler, although paying attention to all these rules is already a lot of complication as down payment.
  • Since I've thought for a long time I knew what allegory and parody were but found myself unable to explain to Nando yesterday what the difference between then was, skipped over to Wikipedia to get a decent definition.
    An allegory (from Greek allo*s, allos, "other", and agoreuein, agoreuein, "to speak in public") is a figurative representation conveying a meaning other than and in addition to the literal.
    and the most significant part
    An allegory is distinguished from a metaphor by being longer sustained and more fully carried out in its details, and from an analogy by the fact that the one appeals to the imagination and the other to the reason. The fable or parable is a short allegory with one definite moral.
  • A parody, on the other hand, is
    a form of satire that imitates another work of art in order to ridicule it.
    where satire itself is
    a literary technique of writing or art which principally ridicules its subject (individuals, organisations, states) often as an intended means of provoking or preventing change.
  • So the remaining question, after this, is whether Cien Años de Soledad -- yeah, I finished 100 Years of Solitude two days ago -- is a very intricate allegory of life or not. The most fitting comment about the book I've read is
    Saying it is a story of a family is like saying the New Testament is a book about a carpenter.
    from [anomalies-books.net]
  • Visited the dentist. Though he was happy to see my teeth were utterly clean and cavityless, he suggested strongly that I've been damaging my teeth through bruxism (basically grinding and gnashing the enamel away) -- I had noticed myself that quite a few of them were chipped and cracked, but he says it's not as limited as I expected. Two x-rays later I've got an appointment to have a custom protective plate developed for me. Great.
17.06.2004
  • Had to skip the pre-arranged meeting at Tecnoworld at São Paulo given the fact that Consave needs some serious reviewing and updating. Read thousands of LOC, and helped Rico put together his new reportlab wrapper.
16.06.2004
  • Had a quick meeting with Renata and the SAFE team about what's going to be worked on this year.
15.06.2004 They are upon me
  • Arranged a meeting to demo Async Diskless Desktop at São Paulo on thursday, so Fabia (yay) and I have it sorted out.
  • Fought with compilation and installation of the psycopg module. Okay, granted that my Python stuff isn't in the right place, and that I fumbled with the configure options that seemed to be so clear at first sight. Still, it beckons the question.. why not distutils? SQLObject was an easy trinket to sort out once that was done. And then I dove into a sea of bugs in another application. Good grief :-)
  • Kicked some reviews out the door, set me up for some serious disasters, and slided off into dreamworld.
14.06.2004 100 Years of Kernel Panics
  • Anthem hung on a SCSI/AIC kernel panic today from 6:26am till somebody noticed it (10:33am). I hate it that this happens periodically when I can't seem to understand *why*.
  • Had a rough weekend, most of which involved going to a wedding which I did not attend, and surviving through what was left of it.
  • Almost finished reading Garcia Marquez' novel "100 Years of Solitude". I'm down to about 80 pages left. To be honest, I'm having a hard time airing an opinion of what I think about the book. It's an interesting story, but somehow I've been regarding the story as secondary to what the book is supposed to mean. I haven't been able to read it as a simple "touch-and-go" book of fiction, as I have with any science fiction or fantastic book I've read. It may have to do with being very surreal (which doesn't let me quite believe in the plot, since I expect it to kick be in the guts every couple of pages or so) or with the almost comical tone most of the story is told in (which is so subtly tongue-in-cheek that you feel the author is chuckling at you while telling the story) or with the fact that it's in Spanish (and a lot of the words I just bulldoze over obliviously).
  • But somehow I realized that all this time I've been trying to read the story beneath the story, and that's probably not the best way to read this book the first time. But anyway, the story is.. about.. something. The *storyline* involves a family and a city and a chronological (though not strictly sequential) perspective on how they evolve over a century (or so I'm told -- I haven't reached the ending yet). It feels very much like a description of the late nineteenth centry in tropical south-america (which is good, because that's what it is) but it's got so much ideology and symbolism bleeding through it I can't seem to pay a lot of attention to the story itself. Of course, the fact that there are ghosts and levitation and incredible facts mixed in with very down-to-earth reality doesn't help. So now I've confused you, all the while without helping myself figure out what I think of the book. The only thing I can say at this point is that it's beautifully written, and somewhat depressing. Maybe I'll have another opinion when I'm done.
  • More reviews and email cleanup. I need to do something about email, I'm starting to realize, but more urgently, I need to get out of this damned dream-like state I've been since I stepped off that plane from Portugal. I can function like a human, but only for very short periods of time; I then devolve into my original alien state which should wear off eventually but has a tendency to stick right when I don't want it to.
  • A week ago, I read the final 50% of John Krakauer's masterpiece Into Thin Air. Now when I say masterpiece I tend not to put it lightly, and in this case, it may be beyond it. I have yet to read a better-written, more touching -- in particular here, devastatingly honest yet beautifully personal -- account of survival through a tragic disaster. It could be that it's because I've felt similar under -- sure, less extreme, but still pretty life-threatening skull-numbing extreme -- similar situations while living it out in the wild, but I think there's more to it than just the personal bond that connects us survivors together. The book is horribly sticky, and once I picked it up (in passing, over dinner, and just looking at the photographs in the middle) I could do nothing but finish it. It took me a short 4 hours to read the final half, and once I had finished, I felt both melancolic and sadly enlightened.
11.06.2004
  • Spent yesterday afternoon painting the fence. Arrive at the office today: dog has chewed bits of fence and atrociously dirtied the unchewed bits. Controlling murderous impulses, move towards desk for immersion in virtual problems.
  • Also watched Harry Potter's latest sequel, though I slept through a great deal of it, coughed spasmodically for another significant period of time, played with Luma for the last 50%, and generally misunderstood the ending.
  • CVS has played a trick on me to fix my loginfo format strings -- but syncmail hasn't been fixed yet. Read through [www.cvshome.org] and realize that I don't *really* want to fix the strings right now (since that means hacking syncmail, which can't fit in my job description now can it.) I now amusingly get a new set of warnings in place of the old ones:
     cvs commit: Using deprecated info format strings.  
     Convert your scripts to use the new argument format 
     and remove '1's from your info file format strings.
  • Time for the good ole apache/modssl notch-up. Made significantly easier by keeping around the previous trees for config.cache stealage.
  • Jdub and James found new jobs: [mail.gnome.org]
  • So Joel is a smart-alec and everybody knows it. It doesn't stop him from pushing a nicely-summarizing phrase every once in a while:
    If you're noticing a recurring theme, it's that I never like to talk about whether or not to do X. The question should never be "X, yes or no?" As long as you have limited time and resources, you always have to look at the cost and the benefit of X. Questions should be "Is X worth the time" or "Will X or Y have a greater return on investment?"
    which anybody but the hopelessly impractical will nod to.
  • Did a massive number of reviews and code fixups -- feel like I'm getting back in gear. Finally.
09.06.2004
  • Starting to feel better, though I'm still coughing up bits of the alien that nailed me. I went for a short bike ride (~40m) this morning and it made me feel much better -- I was quite miserable waking up.
  • Took care of the usual office duties, and noted that my Fapesp salary is already back in order. Hopefully they'll decide to credit me with my previous salaries as well :-)
  • Did a whole lot of futzing around but not a lot of work got done. Cleaned up email, set up mailing lists (but didn't send out any messages), coughed some more, helped Evandro decide what his application is supposed to look like (and what design tradeoffs made sense here and there). I'm so rusty at this it's not even funny.
  • Spent the night trying to track down ridiculously simple Kiwi bugs that actually cost hours to analyze. The damned Combo initialization is so complicated it hurts my head. Do I deserve this?
07.06.2004
  • Back from FISL, and guess what? Sick again.
  • Very few people know that the same spammer that inspired the Anti-Spam group in Brazil is the medicine student that fired a semi-automatic weapon against people inside a cinema screening Fight Club in São Paulo years later and was condemned this week to 120 years of prison for murder. I didn't believe it myself a few years ago when people told me, but the despairing reality is that it's true: [www1.folha.uol.com.br] and [www.infoguerra.com.br] cover the trial's outcome.
01.06.2004
  • Picked up my notebook at the bus station (mom thankfully shipped it back from Brasilia to me) but we're still missing a power cable! We should fix this ASAP. Olivia appreciated the walk to the bus station, at least.
  • It's not so cold today as it was, but the weather is still classifiable as miserable. *sigh*
  • Enabled CVSWeb's tarball/zip functionality, which is quite cool and which can help when CVS is barred off by draconian firewalls at north-american companies :-P
  • Fought with Python's asyncore till I understood more or less how to deal with it. The hints I didn't see anywhere were: a) handle_close() needs to call close() when it's finished b) to handle timeouts you should use asyncore.poll and loop around it yourself, using instance variables in your dispatcher class to control if (and in what part) you're actually timing out. I should consider submitting documentation patches to Fred.
31.05.2004 Monday Monday
  • Had a meeting in the afternoon to watch the presentations for the papers sent to WSL2004 at FISL. All presentations were quite interesting, and Marcos' was specially because it reminded me of all the hard work and cool results I put into my masters' research. I need to work on some papers from there.
  • Raked the backyard in the hope that the grass will last a bit longer over this winter. Unfortunately, the sun is already too low to shine on the left-hand side of the yard and already small spots (spots which I never managed to get to grow nicely, anyway) of dirt start to show. I have a pile of raked leaves, grass and crud under our lovely flowerbush.
  • Over the weekend, helped Fabia cook up a spreadsheet of hundreds of resumes she's been organizing for an alcohol plant out in Pirassununga. Typing and thinking of the odd patterns is fun, but after 10h straight you start wondering how people do this for a living.
  • Paid off some Embratel phone bills and Parqtec membership fees that were a bit overdue. Did some phone-hopping to find out if there are any more apartments worth checking out (I'm considering buying something).
27.05.2004 The Third World is STICKY
  • Back from [www.di.uminho.pt] and a number of other side adventures. More on this later, hopefully.
  • So the CVS exploit is popular with the skript kiddies now: [www.k-otik.com] shows up as our #1 attack method on our snort logs.
  • Read up on some cache discussion at kerneltrap, which lead me into a Compressed Caching patch for the Linux kernel, up at [linuxcompressed.sourceforge.net] and written by a Brazilian undergrad at USP, Rodrigo Castro. Unfortunately it doesn't seem to be maintained past kernel 2.4.18.
  • Actually sick for the week over 17.05 to 22.05 -- fever and half-life endured for the last three days and really knocked me out. Can't actually remember much of the Marrakech-Tangier train trip because of that.
15.04.2004 Unhopefully
  • Reminded people of why PyGTK bug 96658 was WONTFIXED: it's hard to check if a parent's constructor was called correctly. [bugzilla.gnome.org]
14.04.2004 Hopefully
  • I'll have time to update this before I run off overseas.
  • But, just for reminders, the util which updated rcX.d links from the init.d scripts is called... update-rc.d! Thanks #debian.
13.04.2004 Typed to death
  • I'm post-overburdened. I'm going to try and write up about that but not right now -- I'm also late :-)
  • Just so I don't forget, here's the "PHP sucks, officially" document: [www.ukuug.org]
09.04.2004 Packed and Ready to Go
  • Did some minor researching of DOM events after people bugged me on Bugzilla bug 155502. You'd think a simple thing like default form focus would be easy to hack, but nooooo people want me to take into account page load times and crap like that. So I start investigating if there's a way to find out if a widget is currently focused in a page. Of course this isn't easy, and as far as I understand it the only way to do this would be using a handler attached to the window's focus event. Neil wrote a small example for me at [nrr.dnsalias.net] but it seems to be incompatible with IE, which uses Microsoft's own event methods: [www.quirksmode.org]
  • Truthfully, [www.quirksmode.org] is quite cool.
  • Played around with snort-stat a bit more. Found out something horrific about Perl: you can't use arrays as hash keys. Maybe that's a bit obvious, but in Python you can use tuples or objects as hash keys, and it works as expected. It's damned useful too when doing serious data structures for holding stuff you're parsing in runtime. So snort-stat gets a hack instead of a real fix (it uses commas to separate arrays joined as hash keys, but the array elements can contain commas and that's just broken).
  • Sobre nossa escolha por Python, e replicação de esforços em Software Livre:
     >       Estive lendo um pouco sobre o python e nao consegui entender
     >       algumas
     >       coisas. Por que vc escolheu programar em python ao inves de
     >       java, c,
     >       c++ ou outra qualuqer?   
     .
     Era a linguagem que achamos que combinava na proporção correta alta
     expressividade, massa crítica de desenvolvedores, processo de
     desenvolvimento aberto, extensibilidade em C/C++ e boa gama de
     componentes para acesso a outros recursos (bases de dados e etc).
     .
     Achamos uma boa aposta de longo prazo, já que C/C++ estavam
     definitivamente fora de questão (gerenciamento de memória explícito) e
     Java tem tantos problemas quanto qualidades ().
     .
     > Ele segue a mesma filosofia do java, interpretado e compilado em
     > memoria apos a primeira execucao?  
     .
     Um pouco diferente; compila em runtime para bytecode, on-demand. A
     tipagem é dinâmica. É sensivelmente mais leve que java. E vem com um
     console interativo que deixa você experimentar código com muita
     facilidade.
     .
     > Pq fizeram mais uma linguagem ao inves de tornar o C interpretado?
     > agregar funcionalidades, bibliotecas e etc.
     .
     Putz. Tem idéia do que seria tornar o C interpretado? Seria algo que não
     fosse C :-) Python tem tanta diferença de C que seria impossível
     implementar seus features nesse framework.
     .
     >       Outra grande curiosidade que tenho é, pq no desenvolvimento de
     >       sw
     >       livre as pessoas ao inves de contribuirem com os projeto elas
     >       querem
     >       é desenvolver o seu? 
     .
     Pergunta bem aberta. Resposta genérica: porque em software livre as  
     pessoas fazem o que querem. Resposta específica: porque normalmente é
     mais divertido começar algo do zero, ou porque ler código e contribuir
     para outro projeto muitas vezes é difícil e requer paciência e
     habilidade que as pessoas não tem. Outro motivo é que as pessoas sempre
     acham que sua idéia tem algum diferencial essencial que nenhuma outra
     tem (você mesmo não tá escrevendo todo o seu código de RDS? :)
     .
     > Ou seja, tenho hj o mozilla, konqueror, kmail, messeger-mozilla, gaim,
     > amsn etc. Estes sao os principais, se eu fosse listar aqui o email ia
     > ficar com mais de 50 megas (risos). A mesma coisa acontece com  Linux,
     > temos hoje tanta distribuicao. Seria muito bom que todos se
     > concentrassem em apenas uma nao?
     .
     Hmmm. Difícil dizer se seria *bom* -- certamente projetos teriam mais
     desenvolvedores interessantes, mas a variabilidade (que é uma das forças
     do software livre) entre projetos diminuiria e teríamos menos
     oportunidade para avanço/pesquisa e troca de idéias entre esforços
     independentes.
     .
     Mais importante é entender que a questão não é tão relevante quanto
     parece porque mesmo se concordarmos que seria bom concentrar, é
     impossível forçar as pessoas a fazer o que você quer (no caso, trabalhar
     em um único projeto de determinado domínio).
     .
     Um ponto importante a considerar é que os trabalhos de padronização
     trabalham para manter todo mundo interoperável, independente da
     implementação. Padronização requer esforço e consenso, no entanto, e às
     vezes as pessoas acabam desencanando e se concentrando no código, de
     onde tudo vem :)
     
08.04.2004
  • Sent off a fixed-up version of snort-stat that actually works to the Debian maintainers (perltidified it, which was veeery welcome).
  • Sent off report after proof-reading, merging, fixing references and generally hacking up the text. It looked quite good, and I didn't even keep a copy :-/
  • Spent hours trying to track down a weird ZODB issue. I'm getting ReadConflictErrors on objects whose state is *already in my cache*.
  • Another ZODB oddity pops up: using [:] does *NOT* create a list of a *BTreeItems instance -- instead it just returns a copy of it. You *need* to explicitly use list() there.
  • Found out my finish_transaction() changes to Stoqlib make it *really* hard to select an object I just created in another connection (mainly because after I've called finish_transaction the connection is dead and there's nothing to lookup() in connection 2 anymore). Maybe we should cheat and save the OIDs in these cases..
  • In the WTF department of today, PT, the government party who's making all the waves about moving to open source, has moved their webserver from Linux to Windows 2K: [uptime.netcraft.com]
07.04.2004
  • Hacked the end of the report in the morning. Still needs reviewing, but it's very close now.
  • Did assorted things in the afternoon -- prepared notebook for writing task #2 of the week, did cleanups in homedir, sysadmin duties, a bit of bug triage, filed bugs, caught up on email, organized tasks for today and tomorrow. Talked to random people about random issues. Didn't feel very productive, but at least something's getting done.
  • This is so weird. Days after checking in my changes to make IndexedCatalog catalog updates happen in queued mode, I read that Ian Bicking has implemented *the same feature* in SQLObject: [sqlobject.org] -- not only that, but it has the *same* limitation as I do, namely, that I can't queue object creation! Waaah!
  • Found hyperplain.bst which should do exactly what I want: plain.bst with a URL field for hyperlinked references: [t8web.lanl.gov] ... hmmm, no it doesn't. It's actually quite broken. So phoey -- here's a version that actually works (yes, I hack bibtex now): [www.async.com.br]
  • Gnucash tried to trick me into not running with an odd
     ERROR: In procedure dynamic-link:
     ERROR: file: "/usr/share/guile/g-wrapped/libgw-runtime.so", 
            message: "file not found"
    message, but I wasn't fooled, straced it and decided Debian just wanted (for some reason) libgwrapguile-dev installed. Fixed.
  • When I have time to look into this again, there are some interesting Python-UML tools avaliable: [www.atug.com] [droogs.org] [pyut.sourceforge.net] -- and Jim's interesting reply on the subject from 1999 at [mail.zope.org]
05.04.2004
  • Filed [sourceforge.net]
  • So many days late with my report it's no longer something worth joking about.
  • Watched Mystic River while at Brasilia. Complicated movie, though not one I disliked completely.
29.03.2004
  • Watched Almost Famous yesterday; was actually quite fun, though perhaps not as deserving of its place in the IMDB top 250 list as others around it.
  • Google updated their layout. Funny that it actually looks *cleaner* than before. (And I'm up at #3 again.)
  • Hacked some consave cleanups, documentation updates, and Pinazo updated the image over there. I'd like to start them using the experimental "low-conflict" changes I made to IC this week, which would involve Pinazo going there this week to verify.
  • More snort and IDS verification, avoiding false positives and keeping an eye on security alerts.
27.03.2004
  • Went for a bike ride with Mateus; his friends were intent in transforming two afternoon hours into living hell and I decided not to go along with their plan after about 30 minutes of it; the remaining ride was pure fun, all the way back to the good ole CHINESE.
  • I should note I watched A Streetcar named Desire (pretty weird -- definitely not what I expected, with pretty complex characters and a very unusual plot) and Wo hu cang long (definitely one of the coolest movies I've watched this year; surprising view of the chinese countryside and the Gobi desert, and the language is awesome). With that I'm close to attaining the unenviable position of "so miserably behind Johan he doesn't even consider me competition". I should give away my DVD player before it rusts.
  • Watched Repulsion, Polanski and Deneuve's quirky (and very dark) nightmare about sexually-induced depression and psychosis. It's sad that the Brazilian title had "to sex" tagged on to it, and even sadder that the version I watched was dubbed in french with portuguese subtitles. I was actually confused because at first I thought it was just very poor lipsync, but some scenes made it clear that people *were* mouthing english, regardless of the sounds coming out :-)
26.03.2004
  • While crossing the street coming in to the office, my handlebar felt sort of wobbly. I look down, and gasp: my handlebar stem has ripped half-way through. Scared senseless, the only thing I can think of is "Aluminum fatigues". There are so many terrible things that could have happened instead of this that I don't know if I'm grateful or not.
  • Apache's "Order" statement is so silly it won't accept spaces after the comma in "deny,allow".
  • Updated CVSWeb, fixed CVSROOT/passwd, removed external access to .inc and .content files. Looking over the snort logs gives me so many good ideas of how to improve security it's not even funny, but weeding out the positives sucks (and how many of these am I supposed to report to other site administrators?)
  • Did a lot of reviews and mailbox cleanup -- down to 18 again for the first time in a *long* time. Did a lot of communicating and checked stuff I had coded in, but not a lot of "new production" if you get my meaning.
25.03.2004 Easy does it
  • Finally it's all set for my "escape 3rd world oppression 2004" tour:
     TP  190 N  15APR SÃO PAULO-GRU/PORTO 1715  #0850 (Change at Lisbon)
     TP  185 N  17MAY PORTO/SÃO PAULO-GRU 0720   1545 (Change at Lisbon)
    Many thanks to Alberto and Johan who helped make this happen.
  • Lots of email cleanups (5 hours worth of it) a tape rescue, mnogosearch-debian discussion and IDS monitoring. Things are starting to pan out on the first front, which is giving things on the second front time to spike -- bugs and bugs reported on Consave make me uneasy. And my report is.. still late.
  • I walked up the street to lunch thinking about regressions that come from fixing software at the client installation. How can we fix that sort of thing? It's almost too harsh saying "Sorry, I can't deliver a fix on the spot" when you really can, but what do you do with the bits you break in a high-stress check