The Good Life... a weblog about life, technology, and the Opera web browser

Posts from August 2005

Date
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

Free license give away!

To help celebrate our tenth anniversary, we're giving away free licenses for the next 24 hours! [1] To get yours, head over here. Already have one? Get one for your mom! She already has one? Get one for your grandfather! He already has one? Well, pat yourself on the back, you've got a smart family!

We're also having an online party right now. At 4pm CET, there'll be a live chat with Jon, our CEO. At 5pm, there'll be a live chat with Håkon, our CTO, and the co-creator of CSS. There's loads more too, so check it out.

On a more serious note, if you've already requested a free license, you may be wondering why you haven't received it yet. Of course it's not because we don't love you. Our mail servers have been overwhelmed by the sheer volume of license requests we've received. Our sysadmins are working on it, so please have some patience. For what it's worth, I haven't received an e-mail for over five hours, so you're not the only one that's suffering withdrawl.

Thanks for sticking around for ten years! I hope to see you again in another ten.


[1] Note: These licenses are not eligible for Premium support.

The Lord of the Rings symphony

The venueYesterday, Norsk Hydro celebrated their centennial anniversary in Frogner park with two free performances: the Lord of the Rings symphony and a-ha. My mother performed the Lord of the Rings symphony in Richmond a couple of months ago and said it was fantastic. Rebekah and I aren't fans of a-ha, but we had definite interest in the symphony performance. Ian, Allan, Rebekah, and I decided to meet up before the concert and sit together.

We were a bit late getting there because we stopped by the post office to pick up a package. I didn't want to be even more late, so we brought the package to the show with us. Fortunately, Ian was also late. He arrived, informed us of his dire need for food, and went to get said food. By this point, people were streaming through the gates to the park. I've never seen the park so busy. I pointed out a couple of people wearing medievalesk outfits to Rebekah, wondering what they were dressing up for. Rebekah giggled and said "Lord of the Rings...." Another co-worker, Brian, appeared among the throngs and we chatted for a bit before Ian emerged from the small restaurant at the entrance to the park. Eivind, another co-worker joined us. There was still no sign of Allan, but the concert was about to begin, so we went to find a seat.

We arrived near the stage just as the music began. The area was packed with people standing along the tree line and along paths that had formed between groups of people sitting. We walked through the tree line, pushed through a line of standing people, and found a spot among the sitters. I sat wedged between our package and my backpack on one side and Rebekah in a beach chair on the other. Ian initially sat behind us and Brian sat with some other co-workers (Eivind and Sagar) to Rebekah's right.

The stage was opposite Vigeland's fountain, nested between two rows of trees. There were a couple dozen rows of seats directly in front of the stage with a large grassy area beyond. One large screen hung on each side of the stage and two more screens hung with speaker towers in the grassy area. In front of the trees on each side were large images from Norsk Hydro. I never quite caught the significance of them.

The venueThe screens switched between camera shots of the performers and black and white illustrations. The illustrations depicted scenes that occurred in the movie as the performers played music from the same scenes. The images helped us follow the storyline with the music. And what incredible music! There was no echo, just clear, crisp notes and flowing melodies. The symphony included the Oslo Philharmonic Orchestra, the Oslo Bach Choir, Ensemble 96 and the Silver Boys, and soloists Sissel Kyrkjebø and Annbjørg Lien playing lyre, all conducted by Christian Eggen.

As we enjoyed music from the first movie, the sun shone brightly behind us. Many of the performers wore sunglasses, as they were facing into the sun. Ian said he wanted to go exploring and vanished. Rebekah enjoyed her chair and I lounged around on the soft, cool grass, leaning back on my elbows.

About an hour into the performance, Allan suddenly appeared. He said he was late due to traffic (the trams couldn't get anywhere) and showed off his new acquisition: Nintendogs. He had been systematically searching the crowd for us and recognized my t-shirt. Ian reappeared shortly thereafter, having visited the video booth to ask them to fix the aspect ratio on the screen nearest us. Clouds periodically covered the sun and groups around us deserted the show as music from the second movie began. Eivind got a call from his sister. Apparently, she asked him to wave so she could find him. She was sitting just ten feet away!

As the music for the third movie started, grey clouds rolled in above the venue. A slightly chilly breeze moved through the audience. During the penulimate movement, a rainbow appeared behind the stage. A short while later, light rain began to fall. I pulled on my jacket, Rebekah covered herself with a blanket, and we put an umbrella over our package. People around us scrambled to cover themselves with blankets, umbrellas, newspapers, chairs, and various pads they'd been sitting on. Allan joined many people as they ran for the trees. The rain grew heavier, but still we held on. I squatted, spreading my jacket around me and Rebekah stole the umbrella away from the package to cover herself.

Before the last song started, Rebekah and I retreated to the trees, leaving Ian and Eivind to enjoy the rain. Large drops fell from the leaves, but the shelter of the trees beat the driving rain out in the open. Sissel Kyrkjebø did a stunning rendition of "Into the West" and the remaining audience thanked her afterward with thunderous applause. Ian had vanished again, so Rebekah, Allan, and I set off toward the front gates. The rain let up as we walked. When we reached the bus stop in front of the park, Ian suddenly reappeared out of the crowd. Instead of braving the public transportation system, we decided to head to our apartment on foot for food and shelter.


I managed to grab three, thirty-second videos of Sissel Kyrkjebø performing "Gollum's Song" (one, two, three). I also snapped a couple pictures. Check them out in our gallery.

Opera on The World

Two weeks ago, Clark Boyd from The World came by the Opera Software offices in Oslo to do an interview about Opera. This interview is airing today on PRI stations across the US. You can listen to a streamed version of the interview at The World's archive page. There should also be a (potentially longer) podcast available tomorrow on The World's Technology pages. The interview is mostly a short synopsis about Opera Software, with some quotes from Jon, Eskil, Moose (page not available at the time of writing), Charles, and me. It's worth a listen. The ring tone you hear in the interview was from a call I made to one of the demo phones, too.

Clark was a pretty neat guy. He was relaxed, enthusiastic, and very friendly. Clark did three separate interviews: one with Jon (the CEO), one with Eskil (Jon's swimming coach and our PR manager), and one with a group of employees. During the employee interview, he asked us questions about Opera's competitors, how we saw Opera in five years, and what Opera use is like in our home countries. The interview only lasted about thirty minutes, about half as long as we expected. Afterwards, a couple of us grabbed lunch together out on the terrace.

Away from the microphone, lunch trays on our laps, we chatted a bit about the radio industry, public radio, and the recording industry. One of the cool things that The World does, is offer a podcast of their technology segments. For those of you that don't know, podcasts are downloadable music or talk shows, designed for playback at your convenience (often on an iPod, thus the name) and indefinite storage. He had very progressive views about distributing broadcasts and music on the Internet, which was quite refreshing.

Enjoy the show!

Update: The podcast is finally up! There's not much new (if anything, I didn't compare them), but the rest of the stories are interesting too.

Top 10 Rendering Engine Bugs

After IE 7 Beta 1 was released, Chris Wilson posted a list of rendering engine bugs that will be fixed in IE 7 Beta 2. Most of the bugs were described in detail at PositionIsEverything and QuirksMode, some with cute names like Peekaboo. Many of these are the bugs that really get in the way of doing decent site styling in IE.

As we're working on our next major rendering engine update, I wonder what are the rendering engine bugs that affect site designers when working with Opera. Please let us know by posting a comment here or posting in your own blog and sending a trackback here. We almost definitely won't be able to fix all of the reported problems, but at least we can take a crack at them. Please provide a clear description of the bug, the bug number in our BTS (if known), and a minimal test case, if possible.

Note that I am not asking for your pet bugs. I want to know which bugs cause problems on a day-to-day basis when working with Opera's rendering engine. Also, I'm not talking about missing features.

A Day on the Fjord

Manor houseHåkon was kind enough to welcome Rebekah and me onto his boat, the 404 Not Found[1], for a trip around the Oslo fjord yesterday. I had been out with Håkon once before in August 2003 for the Scandinavian Grand Prix in Offshore Racing which took place in the Oslo Fjord. This was Rebekah's first sailing trip.

We agreed to meet Håkon at a pier in Aker Brygge a little after 1pm. Aker Brygge is a wharf downtown where many of the ferries that travel across the fjord moor. There're also a bunch of restaurants and shops there. This weekend, there was a small carnival spread out across the open area with a sound stage near the water. Rebekah and I joined the crowd to watch a sound check on the stage as we waited for Håkon to arrive. Within a couple of minutes, Håkon pulled his ~25ft. sailboat alongside the pier, we hopped on, promptly turned around, and headed out to the fjord.

As we pulled away from the pier, Håkon introduced us to the rest of the crew: his daughter, Anniken, and two of her friends and his brother, Harald, and his two children. We passed several wooden sailboats and a group of single-person sailboats drifted in front of us as we motored out into the fjord. A wooden sailboat with trees was moored just outside the harbor.

When we got into the open fjord, Harald and Anniken helped Håkon raise the sails. Rebekah informed Håkon that this was her first time sailing. He assured her that it was perfectly safe and that the only person that'd fallen off his boat was a Microsoft employee. Håkon tied a rope to the back of the boat and the girls braved the water amid cries of "It's cold!" for a chance to get pulled along. Not wanting to put the swim suit I was wearing to waste, I decided to take a dip. The overcast sky provided little warmth and I scurried back onto the boat and cuddled on the deck under my towel. The girls and their chattering teeth soon did the same and we continued along the Bygdøy peninsula at 5km per hour.

Manor houseHarald spotted a manor house on the shore in the distance and suggested we head in that direction. The manor house was part of a public park called Vækerøparken, recently opened by Norsk Hydro, that he'd been meaning to visit. We scoured the area in front of the manor for a dock and saw a short stone pier protruding from the rocky shore where a young lady sat reading. The young lady leered at the boat as it approached, but Håkon said something in Norwegian and managed to get a laugh out of her. Harald and I peered through the clear water to the fjord's rocky floor and doubted whether the sailboat would be safe there, though its draft was only a meter and a half. The pier had been stripped of ties, so it was a fruitless effort. Our hopes dashed, we turned back and found a pier at the other end of the park.

The crew disembarked and left the boat behind. Harald's daughter took a nap; Harald watched the boat; Harald's son, Anniken, and her friends rummaged through the shells along the shore; and Håkon, Rebekah, and I headed toward the manor. The path from the boat snaked along the shore below the main lawn where a grave for one Otto Joachim stood among the trees. A sign along the path informed us that the park and manor had been created to mimic a 16th-century English manor, complete with a trickling fountain by the shore. A larger fountain sat behind the manor house, which looked like the perfect place for an exclusive party.

Rebekah left Håkon and me behind the house to chat about work. We found her a bit later around the side of the house. We followed her to the front of the house, where she pointed out a gravel area surrounded by a dozen large, white stable doors. We continued along the other side of the house, Rebekah peeking in every window on the way. Small, infrequent drops of rain pushed us back toward the boat, though Rebekah took time to let the waves lap at her feet. Back at the boat, Håkon went off to find his daughter and company while I skipped rocks into the fjord.

Anniken, her friends, Harald's son, and Håkon appeared through the bushes and we converged on the boat. The girls took one last opportunity to take a dip and Anniken showed her climbing abilities by crawling up the wooden piles between the pier and the boat. We soon set sail with three wet and shivering girls. Håkon took us on a short jaunt through a nearby harbor before we headed back toward downtown Oslo.

Manor houseThe gloomy sky finally started showing some signs of clearing as we motored back past Bygdøy. I helped Håkon pack the main sail along the way. We pulled down the sail, then folded a bit on each side of the boom, forming a continual "S" shape drooping over each side. Anniken and I folded the jib (small front sail) on the ship's bow, though I ended up sitting underneath part of it, fumbling around, and laughing as I tried to smooth a 10ft wide sail on a 4ft wide deck. We dodged some cruise ships and pulled along the same pier we'd left that afternoon, rappers booming from the stage at Aker Brygge.

We hopped off, said our "Ha det!"s (goodbyes), and walked into the mass of concert-goers. The boat motored back into the fjord, on its way to moor on Bygdøy and Rebekah and I walked to the tram stop to wait for the next tram home.

More pictures from our trip are available in our gallery.

[1] Just to make sure I don't leave geekiness out of this post, I need to explain the name of this boat. Most people have run into Web pages before with the text "404 Not Found" instead of the page they were trying to reach. When a Web page is unavailable because the URL doesn't exist, the correct response code from the server is "404 Not Found". So, Håkon, being an Interneter, cleverly named his boat after that HTTP error code. Thus ends this post's geekiness.

Acid2 - Rows 6 to 9, between rows 9 and 10, and rows 10 and 11 (updated (again)!)

As I reported previously, fixing some of the Acid2 bugs requires major code rewrites. In order to stop regressions, we try to avoid major code rewrites once we've had a Final release for a given version of the rendering engine[1]. The current version of the rendering engine (code-named Presto) is as close to passing Acid2 as it's going to get. Until we release a new version of Presto (and it'll be quite obvious when we do), it is highly unlikely that there will be any more changes in Opera's rendering of the Acid2 test.

But don't fret! As you've seen, we've already progressed very far on the next rendering engine update. The first screenshot[2] from the new version of Presto comes from a build including three Acid2 fixes. First, the gap between rows 9 and 10 was fixed by a rewrite of our margin collapsing code. The problem shown in the Acid2 test was related to floats followed by elements with the clear property set. Check this test case to see how your browser handles it. There's also a large number of margin collapsing tests in Ian's ad hoc test suite.

As discussed previously, Opera didn't recognize the :hover pseudo-class if it wasn't used in combination with other selectors. Our second fix in this build was to change this behavior so Opera is now spec. compliant when using a Standards mode DOCTYPE. The behavior when Quirks mode is triggered is unchanged. Check this test case to see if your browser styles the :hover pseudo-class. Though it's not visible in the screenshot below, the nose now turns blue when hovered instead of turning red.

The third fix was a proper fix for rows 10 and 11, which had been fixed previously, though the change was later reverted due to regressions. See the previous post for details about this bug and fix.

Here's the updated rendering with these three fixes:

Screenshot of the Acid2 test

And here's the updated rendering with the nose hovered:

Screenshot of the Acid2 test

Unfortunately, major code rewrites introduce bugs and this build also has two visible regressions: the eyes are not visible anymore and row 14 has gotten worse. No worries, though: they'll be fixed soon.


[1] And for what it's worth, this is usually why rendering engine bugs go unfixed for several releases.

[2] Note that this screenshot is from a build previous to our current internal build screenshot, as I'm trying to show how we got to the screenshot in the current internal build.

NOTE: I left out the third fix previously, so I've included that information now. -- Tim, 2005-08-29.

NOTE 2: I added a screenshot with the nose hovered for the non-believers. -- Tim, 2005-10-19.

Some of the lesser known differences between Norway and the US

A lot of tourists miss some of the more subtle differences between the US and Norway. Sure, it's easy to see that there's less water in the toilets and people talk about lifts and aerials instead of elevators and antennas (they use British English instead of US English), but there are a number of other things that you have to stick around for a bit to see. So, here are some of the finer differences I've noticed while living here for a year. I'll be adding new things periodically, too.

Meter readers
In Norway, you read your own electric meter. There's a panel in the hall on our floor that has all the meters. Every two months, I get a note in the mail that I have to read my meter on a specific date. I then send in the reading to the electric company via e-mail or SMS.
In the US, the electric company has workers that come around and read your electric meter to see how much power you've used.
Mobile phone charges
In Norway, you pay a small subscription fee for a mobile phone, then pay per minute for every call you make or per SMS. Also, you only pay for outgoing calls.
In the US, mobile phone subscriptions usually include a set amount of talking time for a certain rate and additional talking time is billed per minute at a higher. Time is deducted for both incoming and outgoing calls.
Movie theater seating
In Norway, there's assigned seating in movie theaters. You pick your seats when you purchase them. It makes life much easier for those that plan early.
In the US, theater seating is first-come, first-serve. If you show up late, you may find seats together or you may not.
Clothing sales
In Norway, if a clothing store is having a sale, they put nude mannequins in the windows in addition to signs announcing huge discounts. There's some speculation that the clothes may have been sold off the mannequins' backs, but I'm not convinced.
In the US, if a clothing store is having a sale, they put big signs in the windows announcing huge discounts.
"I fart"
In Norway, "I fart" means "in movement". For example, if you're in an elevator, it could have a sign saying "I fart" while moving between floors.
In the US, "I fart" means, well, you know.

Opera/8.10 (Windows NT 5.1; U; en)

Despite the reports, we have not yet decided if we will change the default browser identification to Opera in the next release (or any release after that). We are doing public testing at this point. That's it.

Saying that, we're now in a better position than ever to fight sites that discriminate based on browser ID. In Opera 8.0, we introduced site-specific browser ID overrides, Browser JavaScript, and User JavaScript. These are all excellent tools to improve the Opera experience.

Public testing of the new browser ID default has been very successful. We've received excellent feedback from our users about sites that don't work when IDing as Opera. Please head over to our forums and tell us your experience IDing as Opera. The more users we hear from, the better.

Acid2 - Fix for Rows 10 and 11 removed

As many of you have undoubtedly noticed, 8.01 Final (build 7642) doesn't include the fix for rows 10 and 11 I previously wrote about. As we started the 8.01 Final release process the first time (with build 7624), several users reported display regressions (including, ironically, problems at some Mozilla sites). Due to these display regressions and other reported regressions, we decided to halt the release.

After we investigated the display regressions, we found that they all had a common source: the fix for rows 10 and 11 in the Acid2 test. We reviewed the fix, found that it was wrong, and reverted it. Implementing the correct fix was deemed too risky, thus 8.01 Final was released without the fix.

The rendering with this fix reverted is the same as in build 7597:

Screenshot of the Acid2 test

PS: I've added a category specifically for Acid2 posts on my site.

Back on Acid2

If you haven't seen it already, we've posted an updated screenshot of Opera's Acid2 rendering in internal builds. The public won't be seeing these updates for a while, though, as we still have plenty of work to do on this code branch before it goes public.

Over the next couple of weeks, I'll be running through the updates we've done to get the rendering where it is now. Updates will be posted to the forum thread and here. General Acid2 discussion is taking place in the forums.

Without further ado, here's the Acid2 rendering in the latest internal build:

Screenshot of the Acid2 test