Hixie's Natural Log

2004-10-27 22:15 UTC Multiple background images

Given the following hypothetical CSS3:

body { background: url(foo) url(bar); }

Which background is painted on the bottom, and which is painted on the top?

Should the syntax be like that, or would something else be better?

body { background: url(foo), url(bar); }
body { background: url(foo) | url(bar); }
body { background: url(foo) and url(bar); }

Let us know what you think it should be by e-mailing www-style@w3.org.

2004-10-27 07:26 UTC Closed shapes and defaults

SVG has two related elements for drawing shapes consisting of points joined by straight lines.

The second is polygon. By default, it draws a black filled polygon using the points you gave it as the points for the edge of the shape.

The first is polyline. By default, it draws a black filled polygon using the points you gave it as the points for the edge of the shape.

In fact the difference between a polyline and a polygon only becomes visible if you explicitly disable filling on the elements, and explicitly turn on stroking. And then the difference is only a single line (the line that closes the polygon from the last point to the first).

(One wonders if maybe the SVG UA default stylesheet for polyline couldn't have had, e.g., fill: none; stroke: black, to ensure that the line version actually looked like a line... Too late to change now, of course.)

2004-10-23 18:48 UTC I'm sorry sir, you are a security risk

I'm in the bay area for a CSS working group meeting. My flight over was mostly eventless, but the stop-over at Seattle...

I didn't know David's street address (which is where I'm staying — thankss David!) so I couldn't fill in the "Street Address" part of the immiration paperwork. I figured that wouldn't be a problem. After all, I'm available by e-mail much, much more reliably than I would be at a street address.

After taking both my fingerprints and a digital photo, and asking me if my trip was for business or pleasure (I'm here for a CSS working group meeting... Internet Web Standards work. I work for Opera Software. We make Web browsers?) he sent me to the Special part of immigration.

Same questions, in more detail. Is my trip for business or pleasure? Internet, you say? How can you not know where you are staying? I gave him David's phone number (I have no idea what I would have done if I didn't have that on me — I happened to copy it to my laptop about a year ago, and it was still there, luckily). That was an amusing call. Hi, this is customs and immigration from Sea-Tac... Are you expecting a visitor? Is it for business or pleasure?

Eventually he let me go through to customs. The guy at the head of that line took one look at my paperwork and sent me straight to the Special Line for a thorough examination of my bags.

Is this all you have? One backpack? Yup, it's all I have. Lots of t-shirts, lots of underwear, one laptop. He carefully took the entire thing apart, examining each sock. Wow, you really do have a week's worth of stuff here. Yes, that's what I said. Is this for business or pleasure? By this point I was on the verge of giggles, but I tried to remain serious. Where will you be meeting? At Microsoft's campus in Mountain View. Do you have an invitation letter? We do everything by e-mail. Do you have a print-out of the e-mail?

A what now?

Ok, you can go.

I hand in my now quite well-used customs form (it's been cross-out, filled in, cross-out again, and had notes and signatures put all over it by this point) to the person on the way out of customs and walk straight into the Connecting Flights Security Checkpoint.

Shoes off. Coat and shoes in box. Books in box. Open backpack, take laptop out, but laptop in third box. Put backpack on conveyor. Go through metal detector. Twiddle thumbs while security peer at the X-ray picture of the bag which just a few minutes ago had been taken apart and put back together again. Laptop back in backpack. Shoes back on. Coat back on.

Check-in to my connecting flight went reasonably smoothly, although with only the information that I had a ticket for "AS324" and had been automatically rebooked to a later flight, and without really knowing what airline "AS" was (Alaska Airlines), it took me quite a while to work out how to do it. In European airports you don't get this problem, because typically when you enter the check-in area there is a huge display with every departing flight listed (including those that left in the last few hours) and the location of the appropriate check-in desk.

Next, another security checkpoint, this time to enter the domestic lounge. I get to the head of the line and am redirected down a long lane to the Extra Special Security team, because, without my noticing, my boarding pass had been quad-Sed. "SSSS" is what you see on your boarding pass in the US if you have been granted the special privilege of skipping the queue and getting a more detailed screening instead. It's usually a good thing (you get to skip the queue) but you have to notice it to take advantage of it.

Shoes off. Coat and shoes in box. Books in box. Open backpack, take laptop out, but laptop in third box. Put backpack on conveyor. Go through metal detector. Wait... Sit down on chair. Raise left leg while security person checks for metallic objects. Raise right leg for same reason. Stand and face my bags, arms out while the metal detector wand checks the rest of my body. Do you have anything in your pockets? Oops. Empty pockets. Pat down. Watch while my bags are swabbed for bomb chemicals.

By that point I'm pretty sure I was certified as the least dangerous person in the entire state.

2004-10-11 11:53 UTC Sigh

Better luck next time, I hope.

Pingbacks: 1

2004-09-13 23:36 UTC What I did this summer

Back in June, I went to see David Bowie in concert in Bergen. It was cool. I could go on for some time about the various technical details I noticed, like the amusing one 500ms delay on the (rather distracting) "live" video feed in the background (especially amusing when they cut from one camera to another, and the second has the display in frame, so you see the cut again 500ms after the first cut, in the background of the shot), but it would be pretty lame, so instead I'll just say that I enjoyed the concert, and that the music was great.

I also enjoyed the lower profile concert we went to later that evening, although the band's name escapes me.

Between those two concerts we briefly stopped by the weekly Bergen Linux User Group pub meet, where I got to meet some of the people involved in the famous implementation of RFC1149. They told me there is talk of making a second implementation, in the hopes of proving interoperability and therefore securing Standards Track approval for the RFC. I didn't know whether to encourage them or run away.

In Oslo, we went sailing aboard the 404 Not Found, Håkon's boat, on the Oslo fjord. The first time, the water was so cold that when I dived in, I screamed all the way to the surface... the second time was a lot warmer, thankfully.

On the other hand, on the second sailing trip the wind speed was quite low, and our 21st century impatience resulted in us drifting slowly from gas station to gas station, looking for one who would fill us up on a Sunday evening. Under the captainship of Håkon and the navigation of MarkS, the fuel situation was soon resolved, and nobody had to be sacrified for the greater good.

Late last year I set up a system called ART at Opera: the Automated Regression Testing system. Over the past few months this has caught a number of regressions that we may otherwise not have noticed, and thus hopefully increased the quality of our more recent releases.

ART is quite limited, however; it only works for Windows, it only does screen-capture testing, it's only one machine at a time, etc. So after designing and implementing ART, I started designing SPARTAN, the Systematic Performance Analysis and Regression Testing Automated Network. This would be a distributed ART system with all the trimmings, cross-platform, testing all the various branches and products we have on the go, even doing performance analysis and drawing charts. Unfortunately around the same time a lot of my other projects starting taking more time — editing specs for the W3C and the specs that later became WHATWG's, writing test suites, as well as some Opera-internal stuff I can't write about — and so actually SPARTAN was shelved.

Meanwhile, however, ART was finding regressions, and showing that it could do so significantly faster than the manual testing Opera had been using so far. So eventually I started looking for someone that Opera could hire to implement SPARTAN for us. This is how Kam came to work for Opera: he's here on a three month project to implement SPARTAN.

Kam's presence of course means that his Gamecube is once again in the same country as me. I vehemently deny the accusations that the story above about hiring Kam because I was looking for someone to implement SPARTAN is just a cover for me getting to play on his Gamecube again. And the recent release of Mario Party 5 around the same time he and his Gamecube arrived in Oslo is a complete coincidence. Having said that, Mario Party (and later WarioWare, which is even more insane) has been the source of many fun evenings. He also "forced" me to play Pikmin 2, a game that involves much maiming and killing of little cute coloured creatures.

There is strong evidence that the water supply in the Nintendo offices is laced with hallucinogenic drugs.

Scott Collins is in town too, working in the same building as Opera even, although (somehow) we managed to not run into each other except for the one time we specifically planned to. Bloo is also around, and Junyor will be moving over here too in a few weeks after his wedding. Bloo is currently spending some of his work hours writing tests for the Web Forms spec, and has been finding all kinds of edge cases in the process, as people subscribed to the WHATWG mailing list have undoubtedly noticed.

I made several purchases this summer. I purchased the Norwegian edition of a board game known as Monopoly. I purchased a cheap badmington set. I purchased a couple of trains. Update: It has been pointed out to me that actually it was Eira who bought the badmington set and not me. In hindsight, that does indeed make much more sense. When have I ever bought sports-related equipment before?

I love Monopoly. The first few games we played were reasonably limited in terms of house rule modifications, but then we played a game where the deals were not limited to instantaneous tangible trades, as the official rules require. I love games where anything goes simply because of the sheer insanity that ensues.

In this particular game I negotiated a deal whereby I owned both of the big blue properties, was responsible for all house purchases and sales on the set, and would give half of my income from those properties to another player (who originally owned one of the blues). Note that the deal was structured around the actual income, not, as would be fair, around the theoretical amount which I would be owed when someone lands on the property according to the normal rules. Note also the curious absense of a "free rent" clause for the other player. (Actually, the player in question volunteered to pay for rent when he landed on the property, it wasn't my laughable negotiation skills that got me this deal.)

The significance of all this didn't become evident until later on in the game, where my partner in this deal needed cash, but had no properties of his own. In fact, his only income was the big blues. And he only got half of what I got. So when someone landed on the property... I suddenly had a heart and charged the poor soul only $4. Twice. Sure, it meant I didn't get any money from that monopoly either, but then I had others, with much fairer deals. The big blues thus sent my partner out of business. Good times!

Talking of games, last Sunday I played Ursuppe ("the primordial soup"), wherein you play some amoebas that have to eat each other's excrement, while purchasing genes with which to improve your survival rate. A fun, if rather odd, game. I am trying to think of a way that one could introduce the concept of Evolution into such a game without removing the skill aspect (which is somewhat of an oxymoron, but still).

The badmington set was used once. Thankfully nobody saw us.

This leaves just the trains. Quick autobiography: ever since I was... well, as far back as I can remember, in fact, I have wanted to own a train set. When I first wanted this, my parents bought me Brio wooden trains. Those were great. I had kilometers of track and lots of engines (well maybe not actual kilometers, but certainly enough to cover the entire floor of my bedroom with track). Then later they let me buy a Märklin starter pack, which I quickly expanded. Electric trains, electric points. My dad helped me with the landscaping. I remember having a huge board on ropes that I could lower from my ceiling to play with.

But what I really wanted was Märklin Digital. The holy grail: digital control over trains and points so that you can individually control each train, without having to have different parts of the track with different transformers. And the cherry to top the whole thing off: The Märklin Digital Interface 6050 unit, so that a computer can run the entire layout.

Unfortunately Märklin Digital costs a fortune. So I spent my childhood absorbing the catalogue, wishing for the day where I could afford and own my own digital set.

Fortunately, I now have a job! And thus I am now the quite proud owner of a small digital layout with two gorgeous Swiss trains (29858), a Control Unit 6021, and the cherry itself, the Märklin Digital Interface 6051 unit. (Yes, in 20 years, they've only revised the protocol once. That's some backwards compatibility for you.)

To connect the Digital unit to a computer, you use RS232. Problem: My work-provided IBM Thinkpad X31 has no serial port. My old Inspiron 8100 does, but it suffered catastrophic disk failure on its internal disk about 2 years ago, and catastrophic disk failure on its media bay removable disk last summer.

I had had the internal disk replaced several times, but each time it died on the spot (almost literally, the new disk would die during OS install), so, since I the media bay disk worked fine at the time, I had pretty much given up on Dell fixing the disk. Then when the media bay disk died I had the X31, so I just packed the Dell away and forgot about it.

Needing an RS232 port changed all this. You see, the 8100 has ports for pretty much everything. So, two months from the end of my international, next business day, on-site warranty, I started the Dell Dance.

First, since I had moved country, I had to get Dell to transfer my warranty. That was surprisingly easy actually. They claim it takes one or two business days, it actually took all of 15 minutes.

Second, I had to reverse-engineer the Dell Support Broken Disk Script. I had a head start on that since I'd gotten all the way to "we agree your disk is broken we'll send you a new one" a couple of years ago, so I copied and pasted the text from those e-mails and added the bits about my media bay disk also being dead, and the CD drive having issues at the same time as the disk. The idea here was to convince them that not only had the disk died, but that the integrated IDE controller (and thus the entire motherboard) needed replacing.

I got an e-mail back. Not convinced. Turns out you also have to mention something about running the disk diagnostics and something about trying the disk in other machines. I added a paragraph or two quoting all the diagnostics programs I could run (I have now seen the same disk receive errors 17, 27, 37, 65, 67, 75, "no SMART support", "no disk", and "00 PASS" from the same BIOS disk diagnostics program all on the same day — beat that!), added a paragraph explaining that given the destructive nature of the problem I had no intention of testing the disk in other machines or other disks in this machine, then sent the e-mail again.

Dell Norway do not respond to e-mail very quickly.

But eventually, I got a reply back, saying they were convinced, and would repair the computer. I sent them my details and waited.

And waited. Dell Norway really do not respond to e-mail very quickly. After about two weeks I wondered if maybe I had deleted an e-mail from them by mistake, thinking it was spam, and so sent them a second copy of my e-mail.

A few days later, I got a reply. Yes, we'll come tomorrow. Horrah!

A courier came. I handed over my laptop, expecting him to take it to Dell HQ and have them fix it. It turns out he wasn't a courier. He was a technician. He fixed my laptop on the spot, in Opera's reception area. Took him no more than 20 minutes to replace the motherboard and both disks.

I am pretty impressed. I had for some reason assumed that "on site" meant "you don't have to drive to use, we'll send someone to pick it up", but apparently it really does mean "on site". So while I am disappointed that every Inspiron I have ever heard of has eventually suffered from serious diskache, and while I think it should be a little easier to convince them that something is wrong, I am moderately pleased with Dell's technical support. (They are even quite happy to support machines after you've installed Linux on them, so long as you agree to try installing Windows to see if that solves the problem before you ask them to replace any hardware.) I'm considering extending my warranty.

The machine has been working smoothly since the repairs, and so I've been writing some perl scripts to control my trains. There is something very cool about typing in some Perl code and having switches switch, engines move, and sensors report back. I'll probably go into more detail about all this at a later date.

Over the last few months I've also been busy reading books. I read Peter F. Hamilton's Pandora's Star, part one of the Commonwealth Saga; Peter F. Hamilton's Fallen Dragon; Neal Stephenson's Zodiac, the Cryptonomicon, and Snow Crash; The Tenth Planet, book one of a series by Kristine Kathryn Rusch and Dean Wesley Smith; Robert Doherty's Area 51: Nosferatu, book eight in the series; Robert Pirsig's Zen and the art of motorcycle maintenance; Scott McCloud's Understanding Comics and the sequel, Reinventing Comics; Orson Scott Card's Ender's Game (for the second time); and a few others whose names escape me right now.

They were all good. Now I'm reading some Wodehouse and another Neal Stephenson.

A few weeks ago Opera had an off-site wherein 40 or so of us from the Oslo office went to a Go-Karting establishment to drive around a "Technical Track" (well that's what the manager called it during our briefing). That was great fun. We had eight teams of five people each and 90 minutes of driving time. I was quite pleased with my times given that it was my first time. Eirik has photos.

I've been to the cinema a few times recently too, seeing, amongst other things, I, Robot. If you haven't seen it and don't want to be spoilt, stop reading now.

As a kid, I read every Asimov book I could lay my hand on. I knew the three laws by heart. I didn't realise it at the time, but the three laws had in fact reached some kind of holy status for me. Seeing the three laws in a mainstream movie theatre, as the title sequence of a Hollywood production, had a strange effect on me, much as I imagine Catholics might feel if the Pope was to speak to them personally.

As far as the story itself goes, I quite liked it. I've heard a lot of people take offense at the movie, but I don't really understand why. For example, "They stole Asimov's title to sell the movie" is a stupid statement, since the book's title wasn't Asimov's idea in the first place (it was Eando Binder's; Asimov's editor thought it sounded better than Asimov's title, as any self-respecting Asmiov fan knows). Saying that the story was different to the book is a truism, but then the book was an anthology, not a single story, and the film never claims to be anything more than "suggested" by Asimov works. (Indeed it was significantly more true to Asimov than I had expected. Did I mention it prominently featured the three laws in full?)

More specifically, saying "no Asimov robot would ever act like the USR core (VIKI) did" is stupid too: VIKI derived a zeroth law ("No robot, through action or inaction, may let humanity come to harm"), which is exactly what Daneel did. Asimov even has a story where the robotic protagonists interpret their law in such a way that the term "Human" includes themselves (the robots). In fact the only thing I would say VIKI did that doesn't seem very in-the-Asmiov-spirit, as it were, is the level of violence with which it "protected" the humans near the end (even killing some of them — did that really protect humanity? I can't see how, surely there would have been less fatal methods for doing that).

The moral of that story, however, IMHO, had nothing to do with robots or rules of robotics or the pitfalls of your estate licensing the rights to your books to Hollywood post-mortem. The key part of that movie is that VIKI can remotely update the firmware of the robots. A central location — the USR headquarters — can, under the guise of fixing bugs in their software, run arbitrary code on devices across the planet.

Now, in the movie, none of the humans were evil, per se; it was a sentient or near-sentient computer that was the problem. But still, it basically meant that anyone with root access at US Robotics could take over the world if they wanted. In the movie it was an artificial intelligence, but it could easily have been the company CEO with delusions of grandeur, a sysadmin gone crazy, a discontent employee, or (hey, it's in fashion these days) a techno-terrorist.

So the conclusion I drew is that it would be very bad for a single entity to be able to arbitrarily run code on devices world-wide.

Sound familiar?

Two words.

Windows Update.

Pingbacks: 1