Hixie's Natural Log

2003-09-29 15:28 UTC Naked girls, DHCP, GPRS, ART, and high notes

Through a set of circumstances that I won't go into, I'm currently sharing a four bedroom flat with another guy who also works at Opera, four girls, and sometimes even their various partners. I don't really know the girls that well since I'm hardly ever home, but they seem nice enough. So far the strangest events have been coming home late at night to find a naked girl in my bed, and, yesterday, losing a battle with the washing machine, coming home and finding someone had very kindly put all my clothes on the drying rack. No, the naked girl didn't stay in the bed. I think that might have gotten me into some trouble, anyway.

The girls got us internet access — currently it's just a Windows 98 box connected straight to the router or cable box or DSL box or whatever it is. I tried to plug my laptop into this router, but I couldn't get a DHCP response, presumably because the remote end is doing MAC address filtering or something. I ran out of time so didn't make any real attempt at spoofing my MAC address. I was also going to try and set my IP, net mask, gateway, DNS servers, etc, to the values the Windows box got, then plug myself in instead, and see if that worked, but I didn't have time to track down all the places you'd need to change in order to set all that up. While I understand the theory of why things like DNS addresses are distinct from IP addresses, etc, it would be nice if the documentation to (e.g.) ifconfig gave pointers to where you have to set other common settings, instead of forcing me to guess where I should look for the next configuration file.

It was pretty fun running tcpdump on the unbound adapter though and seeing all the broadcast BOOTP packets going back and forth. Not to mention a few ICMP echoes. Snooping is fun. ☺

Back at work, I'm doing some testing for our Symbian port of Opera on a Nokia 3650. The Web on a phone is remarkably useful. Being able to check whether your flight is cancelled from the train, for instance. Or catching up on your friends' Web logs while waiting for said flight. I'm telling you, this web thing is going to be popular one day.

"My" phone is actually owned by Opera, they just let me use it because I then go and file all these bugs. We use Ventelo as our network provider. Ventelo used to get their GPRS service from NetCom, but recently switched to Telenor. Because of this we all had to get new SIM cards. Strangely, though, while my new SIM card can do normal GSM stuff like SMS, it is totally unable to connect to any GPRS provider. Stranger still, while my old SIM card is naturally unable to do any kind of GSM stuff like SMS, it can still connect to the old Telenor service for GPRS!

Now, what we want to know, is, who is paying for my connections to Telenor? We only pay Ventelo, and Ventelo consider that SIM card to be dead, and have no contact with Telenor any more... so they presumably won't be charging us for that... but Telenor don't have a contract with us either, so they can't charge us directly... Seems like someone somewhere made a teeny weeny bit of a mistake in their configuration file! I wonder how many other people this affects.

In between testing, I've been writing a tool that I am calling ART. It stands for Automated Regression Testing. The principle of this tool is that we really don't want to have any regressions, so we're going to automatically compare the results of running a couple of thousand tests (including most of the 1396 tests I'm currently hosting on www.hixie.ch/tests) on every build we make from now on, instead of relying on manual QA for catching regressions like that.

The way it works is that for each build, ART downloads the installer, installs Opera, then takes a screen shot of Opera displaying each test. It then compares all these bitmaps to the bitmaps it took the previous time, and if any have changed, it flags them.

So far I've only implemented this on Windows, as that's the platform we create builds for the most frequently at the moment. It's such a hack. The core of the script is written in Perl, and it actually pokes a "print screen" press-and-release sequence straight into the keyboard driver to get the screen shot. It also uses some esoteric Win32 APIs to move the mouse out of the way so we don't get arbitrary tooltips. And it directly interfaces with the Windows NT Performance Monitoring APIs to determine whether Opera has started idling yet (in order to know when to take the screenshot). Such a hack. But it works reasonably well. I'm still shaking the last few bugs out, mostly with the Web front-end (the testing part works reasonably well).

If you have a particularily complex layout that you want us to make sure we don't screw up between releases, feel free to e-mail me self-contained attachments as tarballs and I'll see about adding them to our regression test suite. They don't have to be real tests, and it's fine for them to contain lots of JavaScript, even. The only requirements are that they have to be self-contained (not relying on absolute paths or pointing to files on remote servers), they have to be covered by a license that allows for editing and redistribution (such as the GPL, the MPL, or the public domain), and they must not be animated or have time-dependent layout (so no clocks, please). The more complex the better. Note that because of the way these tests run, only the top 1600×1200 pixels will be checked, so there's no point sending me, e.g., a 200-page document.

Over the weekend I spent about nine hours in total at a couple of extra extended rehearsals. I play the clarinet in a concert band based near Lillestrøm that Snorre (one of the guys on my team here) convinced me to join.

It's pretty fun, although at least one of the pieces has some notes that are so far up into the stratosphere that I think they may be too high even for dogs to hear, and are definitely too high for me to know their fingerings. In fact, even if you take them down an octave they are still too high for me to know the fingerings. That's how high they are. Pretty silly stuff if you ask me. What's wrong with the bottom register anyway? Oh and some of the pieces are so fast that I physically can't move my fingers fast enough to hit all the notes. I can usually hit them all if we play at about one-tenth normal tempo...

I'm currently waiting for ART to finish running the latest build through the tests so that I can fix the nine or so bugs I've discovered while demonstrating it to people here. I think I'll work on converting the CSS1 test suite to the CSS2.1 test suite format in the meantime.

Pingbacks: 1