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

Posts from 2006

Tim's Opera Bits v3.0

Ahoy, maties! Time for another edition of Tim's Opera Bits. There's not a whole lot of news this time, but the stuff I do have to write about is pretty significant. So, here we go:

  1. Last week, Daniel Goldman, the man behind Opera Watch, joined Opera Software as a Technical Evangelist. This is a great win for Opera users! Daniel has a lot of enthusiasm for Opera and telling everyone he meets why Opera's great. He already has quite an audience for his site and contacts throughout the industry, so he's the perfect person for the job.

    Over the past couple of months, Daniel and I have worked together to host the DC-area Opera User group, so I have had the opportunity to get to know him in person. He's a great guy and I'm glad to have him not only as a friend, but as a co-worker.

  2. Today, Opera Software launched Dev.Opera, a site geared toward web developers. The site features articles about creating content for the Web and is accepting your contributions. This is a great opportunity for web developers to get their name out to the community and teach others how to build sites the correct way.
  3. Also today, Opera Software launched Opera Mini 3.0 beta. This release features secure browsing, feed (RSS/Atom) preview and aggregration, and some other great advances. If you haven't tried Opera Mini for your mobile phone, now's a great time to give it a spin.
  4. As I mentioned in the last Tim's Opera Bits, Opera Software is co-sponsoring the WebmasterWorld Pubcon in Las Vegas on November 14 - 17. Jon (Opera Software's CEO) will be giving a keynote address on November 14th. I'll be at the Opera Software booth, talking with anyone that stops by. Daniel Goldman and Lawrence Eng will also be attending, though I don't know if they'll be in the booth. I hope to see you there!
  5. And now for something completely different: I'd like to answer some of your questions about Opera Software and Opera for Desktop in the next Tim's Opera Bits. Please leave your questions in the comments to this post. I will not be able to answer all questions, but I'll do my best.

Thank you for sticking around!

Tim's Opera Bits v2.0

It's time for another version of Tim's Opera Bits. It's been almost three months since the last (and first) version, so let's take a trip around Opera-land. Here's the scoop:

  1. Today, the Desktop Team announced that Opera 9.1 will include Fraud protection (also referred to as anti-phishing). Hopefully, this Friday there will be a weekly build enabling users to test this functionality.

    I've had the opportunity to test this functionality over the past couple of weeks and must say that it is dead simple. The user interface is straight-forward and does what it should. I hope you'll like it.

  2. Daniel Goldman and I recently hosted the second DC-area Opera User Group meeting in Silver Spring, MD. We had a great time discussing widgets, the future of Opera User Groups, and bug reports. Pictures from the event are up in my photo gallery.
  3. Opera's CEO, Jon von Tetzchner, will be giving a keynote address at this year's WebmasterWorld PubCon in Las Vegas, NV. David Storey, Opera's Chief Web Opener, will also be giving a talk. There's a chance that I might be headed out there to help out, too. It should be fun!
  4. On September 21st, Opera Software released Opera 9.02 for Desktop platforms. This is a security and maintenance release. If you're already using Opera, you should have received an automatic notice that a new release is available. If you don't use Opera, there's never been a better time to start.
  5. It's just over a month until the Nintendo Wii is released in the United States. A recent press release gives details about the Opera browser available for the Wii. Opera will be a free download until June 2007, after which it can be purchased using a point system. Additionally, Opera will take advantage of the "Wiimote" and include Flash support.

    In other Opera and Nintendo news, Opera for the Nintendo DS recently went on sale in Europe. I don't think there's a release date for the US version yet, but hopefully it'll be here soon.

  6. Did you ever notice that eight out of nine of Opera Software's executives were born in the mid-1960s? There's only four years' difference between the eight of them. Young'uns. The only exception is Roger Carlhammar, who was born in 1958. He's not even fifty!

Thus concludes this version of Tim's Opera Bits. See you next time.

Forget It

Do you ever remember that you forgot something, then wonder what else you've forgotten? Or, do you remember that you forgot something, but you forget what you forgot?

Yeah, me too.

Looking back

Last month, Rebekah, Sara Ellen, and I went out to Milwaukee to attend one of my cousin's (on my dad's side) weddings. I'm not a fan of flying and keeping Sara Ellen in a car seat for the car trip from Annapolis to Milwaukee didn't seem like a happy plan, so we booked a sleeper room on a train. The room was cozy, but worked really well for the three of us.

I only seem to get to see my mom or dad's family at weddings and funerals. The last time I saw my dad's family was at our wedding about two years ago. That was the first time Rebekah had met most of them and she wasn't able to spend a whole lot of time with them, so our trip was a great opportunity to really get to know them. We had a great time and I'm glad we made the trip.

The following week, we visited Lynchburg, Virginia where we both went to school. On Saturday, Rebekah was the Matron of Honor in one of her classmate's weddings. While the two of them were preparing various things (flowers, nails, etc.) on Thursday, I visited my alma mater. I've been back to campus a couple of times since graduating in 2003 and while some structures have changed, it still has the same feel it did when I went there. I was surprised how much I missed being there. All of a sudden, I was overwhelmed with this desire to do something for the school. I started thinking of things I could contribute and jobs I could do. It seems like every time I stop by Lynchburg, I start thinking about living there again.

See, Rebekah and I are currently living with Rebekah's parents partially because we haven't quite figured out where we want to live. They've also been a huge help with Sara Ellen while Rebekah and I learn to be parents. We could try to find a place in Annapolis, but housing is seriously over-priced in the Washington, DC area. Housing in Lynchburg is probably a quarter of the cost. We want to stay within an hour or so of Annapolis so we can easily visit Rebekah's parents and my dad and step-mom. We'll probably end up looking for a place up in Delaware and over the Chesapeake Bay Bridge on the Eastern Shore of Maryland in another six months or so.

It's been about six months now since Rebekah, Sara Ellen, and I moved back to the US. At the time, I wasn't too thrilled about it. I didn't realize how Sara Ellen would help us grow closer to our families and that's one of the reasons I'm glad we hopped back over the pond. We do miss Oslo and I miss my friends and colleagues, but it was the right thing for us to do.

I grew up in this area and it looks like our daughter will be doing the same. One of the nice things about being here is that Sara Ellen gets to go to the same pediatrician I did. Apparently the nurses in his office give him a hard time when his old patients bring their children to him. He did a good job with me and so far he's done a good job with her. She's now just over 9 months old, 25lbs. 10oz., and 29 1/2" tall. She's huge!

You're Invited!

What: The inaugural Opera User Group meeting for the Washington, DC metropolitan area (including DC, Baltimore, Annapolis, Northern Virginia, and all areas in-between).

Opera User Groups are groups for Opera users created by Opera users. We recognize that we can learn stuff from each other and want to know others that have "seen the light". Details about starting an Opera User Group in your area will be posted on our Opera Community page soon.

This first meeting will be a social event, giving us an opportunity to get to know each other and discuss topics that interest us.

When: August 7, 2006 from 6:30 - 8:30pm. Come and go as you please.

Where: The Panera Bread restaurant in Silver Spring, MD, located near the Silver Spring Metro stop. The restaurant has free WiFi, so bring a laptop if you'd like (not a requirement by any means). Food and drinks are not provided by us, but you're welcome to get something there.

Who: Anyone can come: Opera users (Opera for Desktop, Opera on mobile devices, Opera Mini, etc.), those interested in Opera, or those interested in browsers in general. You don't need to use Opera as your primary Desktop browser or even have Opera installed. There will be no quizzes about Opera!

The Washington, DC Opera User Group (WaDCOUG, I suppose) will be hosted by myself and Daniel Goldman, the man behind Opera Watch.

I hope to see you there!


Also see:

Tim's Opera Bits v1.1

Update (July 17, 2006 3:00PM): Right, so the day after I wrote about widget auto-discovery, we go and release a new service to make any newsfeed into a widget. Details below. I knew I used version numbers instead of simple integers for a reason.

Back in March, Opera Software launched a monthly newsletter called Opera Bits. Some times I run across bits of information that don't quite make a full blog post, but certainly deserve a mention. So, I'll be running my own semi-monthly Opera Bits. And it's time for the first issue:

  1. First, if you haven't already heard about Greased Lightbox, you should check it out. It's a user script "designed to enhance browsing on websites that link to images such as Google Image Search, Flickr, Wikipedia, Facebook, MySpace, and deviantART." After it's installed, you just click on an image and the full-sized version loads on screen. Press ESC or click the page and you'll get back to the original page.

    Here's how to get it working:

    Note: You'll need Opera 8.0 or later.

    1. Create a folder on your hard drive where you'll save the script. I usually have lots of Opera installs, so I have an "Opera" folder ("C:\Program Files\Opera\" on Windows and "/Applications/Opera/" on Mac) and I place a "User JS" folder inside that folder. This is simple way to collect all your Opera-related stuff in a single place.
    2. Go to Tools > Preferences > Advanced > Contents > JavaScript options in Opera and set "User JavaScript files" to the folder you created in the previous step.
    3. Download/save the script to that folder.
    4. Now, go back to the Greased Lightbox page (it may be necessary to reload the page) and click on one of the example images at the bottom.

    Neat, huh? For more user scripts, check out userjs.org. The only other one I'm currently using is Stop form focus.

  2. Web-based e-mail accounts are all the rage these days; everyone seems to be using Gmail, Yahoo! Mail, SquirrelMail, etc. Unfortunately, it's not clear how get to your webmail account when you click on a "mailto" link on the Web in Opera. Rijk has put together a guide you can use to get your favorite webmail account working with Opera. Further instructions are on Rijk's page.
  3. Since Opera 9.0 passed the Acid2 test back in March, there's been a sprinkling of reports from users that their version of Opera didn't pass. This has been widely publicized recently by The WaSP, as well as various blogs.

    After analyzing the problem reports, we've found no reason to believe that our claim was incorrect. Mark Wilton-Jones (a Technical Writer at Opera Software) has put together a comprehensive guide to the Acid2 test, which includes detailed information refutting the problem reports. In all reported cases we've analyzed, the observed failures were related to non-default preferences—which invalidate the test—or misconceptions about the way the test works.

    While not (currently) specifically stated in the Acid2 guide, the Acid2 test is meant to be tested using a browser's default settings. The following preferences are the most common causes of apparent failure:

    • View > Fit to width. This is an advanced rendering mode that purposefully breaks standards to allow Web pages to remain usable at various screen widths. This includes ignoring or changing some styles defined for a page, which invalidates the test.
    • View > Small screen. As with "Fit to width", this is an advanced rendering mode that purposefully breaks standards to make Web pages work better on small screens. This includes ignoring or changing some styles defined for a page, which invalidates the test.
    • View > Full screen. Opera's full screen mode uses styles written for "projection" media types (such as slide shows) by default, though it does fall back to styles written for "screen" media types (such as Desktop computers) if no "projection" media types are found. While this does not seem to adversely affect the Acid2 test, the test is meant for user agents that support the "screen" media type.
    • View > Images > Cached images or View > Images > No images. The Acid2 test uses images to represent the eyes, thus if they are disabled, the test is invalid. Opera has a bug that is visible in the test when re-enabling images or showing only cached images, but that in no way means Opera does not pass the test. Remember, the test is only valid when used with a browser's default preferences.
    • View > Zoom. Zooming a Web page changes the way that text and images interact. When the Acid2 test is zoomed in Opera, some red artifacts may appear around the eyes. This is a bug in the way that Opera handles rounding of values while zooming, but it in no way means that Opera does not pass the test. Again, changing the zoom preference to anything other than 100% invalidates the test as it changes the browser's default parameters.
    • Preferences > Advanced > Fonts > Minimum font size. The Acid2 test specifies certain elements using pixel units. If the minimum font size is raised from its default, the pixel-unit elements are too large compared to other elements, making the test distorted and invalid. Default preferences....
    • View > Style. Using any setting other than "Author mode" or applying your fonts, colors, styles, etc. in "Author mode" changes the style cascade used in the test, thus invalidating the test.

    Other reported problems with the Acid2 test in Opera have to do with misconceptions about how the test works:

    • Some people believe that the Acid2 test shouldn't scroll when you use a mouse scroll wheel, keyboard arrows, or other scrolling mechanisms because the test doesn't have a scroll bar. If the test is scrolled, parts of the face fall apart. Mark Wilton-Jones has already done all the necessary research about this and published it in his comprehensive Acid2 guide. The gist is that the test should not show a scroll bar, but whether the test should scroll when using one of the above methods is not defined in the W3C CSS specification and is not part of the test.
    • Some people believe that changing the browser screen width should not change the test. When you make your screen smaller after the test is rendered, two pieces of the face detach (the same pieces that detach when scrolling). This behavior is not defined in any W3C specification. Changing the screen width changes the width of certain elements, which can cause the page to scroll, leading to the same problem mentioned above.
  4. The last two Opera 9.01 weekly builds have included a bunch of nice IMAP fixes that weren't fully described in the changelogs. First, we did some major optimizations when changing the flags (Read, Deleted, etc.) of multiple messages. Previously, we would send two commands to the server for every message we wanted to mark as read, unread, deleted, or undeleted. Now, we send one command for all messages. So, if you were changing 200 messages before, we'd send 400 commands to the server. Now, we send just 1.

    Additionally, we fixed some bugs related to randomly redownloading groups of messages, made it possible to permanently delete single messages from the Trash view (previously they'd reappear) rather than forcing users to permanently delete all messages, and fixed some problems with messages not being removed from a view when they were moved or deleted. Overall, the IMAP experience with the current 9.01 weekly build is much better than with Opera 9.0 final.

  5. Arve recently wrote about using widget auto-discovery, which makes Opera 9.0+ show a widget icon in the address bar when viewing your site. This feature should only be used for widgets that display an RSS/Atom feed of your site. Hot on the heels of Arve's article, the Opera Community now allows blog authors to automatically create a widget of their blog and advertise it via auto-discovery. Spiffy.

    Update: And hot on the heels of the Opera Community announcement, we've released Widgetize!, a service to generate widgets for just about any newsfeed. Simply go through the wizard and it'll give you a URL to your very own widget. Spiffy × 2.

    I've Widgetized! Have you?

I hope you've enjoyed this (updated) issue of Tim's Opera Bits. See you next time.

Mobile me

Believe it or not, Oslo (the most expensive city in the world) has much better and less expensive mobile phone plans than anything I've found from a major carrier in the US. To start with, you don't pay for air time on calls you receive. Another nice thing is that you pay based on what you use, not on some preset minute allotment. I'll get back to that in a bit.

When we were in Oslo, we were using a prepaid plan, though subscription plans were available. I never used the subscription plans, but I believe you paid a set amount for the line, then any usage fees based on a set rate. Your account might feature different services, like web browsing, which would change the set montly fee. Norwegians, feel free to correct me. With the prepaid plans, you paid to have the number set up and then purchased minutes whenever you need them. Rebekah and I typically went through around 150 minutes each every two months.

In the US, you typically pay a monthly subscription fee for a set number of minutes, then pay a certain amount per minute if you exceed your allotted amount. Normally, you won't pay for calls between callers using the same provider, though you do pay for text messages (both sending and receiving). You'll also use up your minutes on calls you receive. The base number of minutes on most family plans seems to be 700. So, Rebekah and I are basically paying for 400 minutes a month that we don't want. And since we text message each other more than call, we end up paying for usage anyway.

If that weren't bad enough, we barely get service at the house where we spend 90% of our time. I miss four out of five calls I receive. When I do get a call, I can barely understand the person because the reception is so bad. In Norway, I could be in the middle of a forest and have full reception. It's pathetic.

The phones have improved since I first got a mobile phone in 1998, but not much else has changed. It's time to get with the rest of the planet, USA.

Jobs I Could Never Do

I've recently come to terms with the fact that there are several jobs I could never do, no matter how well I'm trained. First, I could never be a flight attendant, mostly because of my fear of flying. I actually quite like planes, it's just the actual flying (well, the turbulence, really) that gets to me. Being a pilot would probably be OK, since you usually don't get motion sickness in a car when you're in the front seat and I'd guess the same about being in a cockpit. Of course, I made myself sick one time while driving. It was a really fun, windy road though, so you can't exactly blame me.

Second, I couldn't be a hair stylist (I believe that's the current "politically correct" term for a person that cuts your hair). No, it's not because I have no sense of style (though that certainly would be an issue). Over the years, my hair stylists have always been excellent at remembering my name. While I'm pretty good with faces, I'm quite bad with names. I'm really quite embarassed by it sometimes, especially if I run into someone I haven't seen in a while. I try to pass it off by saying something like, "What's up, man" or "How's it going, dude" rather than using their actual name. Sometimes it'll come back to me, but usually not right away.

What's worse is when I think I remember someone's name and I use it, but that's not their name. I think that's only happened once, back when I was working as a cook in a family restaurant. A waitress was passing my work station and I said "Hello, Shannon" (or whatever her name wasn't) and later realized that her name was Laura (or whatever it was), so then I had to stop her and apologize for calling her the wrong name, which apparently she hadn't even heard in the first place. Oh well.

Finally, I could never be a train conductor. Sure, motion sickness plays a part, but that isn't the main issue. If you're not familiar with a train conductor's job, they go around and make sure that all the train passengers have a valid ticket. Some times they'll leave a slip of paper above your seat to mark that you've paid. The train conductors in Norway just remembered you. That astounds me. They see hundreds of random people a day and simply remember them for the short period of time they know each other. I know I'd go around asking people for their tickets several times, interrupting perfertly good naps or conversations. It just wouldn't be good.

Thankfully, I don't need to do any of these things since I have a super cool job. I've worked for Opera Software for just over three years now, making it the longest I've held a single job (which I don't think is uncommon for 26 year olds). I've been very blessed to be able to do something that I feel makes a difference, gives me ample opportunity to learn, and is just plain enjoyable. And if you're enjoying yourself as a flight attendant, hair stylist, or train conductor, more power to you.

What fish?

A joke from my dad:

A fisherman with two ice chests full of fish was stopped by a game warden after leaving a river well known for its fishing. The game warden asked the man, "Do you have a license to catch those fish?"

"Naw, my friend, I don't have a license," said the man. "These here are my pet fish."

"Pet fish?" asked the game warden.

"Yep. Every night I take these fish down to the river and let 'em swim 'round for a while. Then I whistle and they jump right back into this ice chest and I take 'em home."

"I don't believe that for a second! Fish can't do that!"

The man looked at the game warden for a moment and then said, "It's the truth. I'll show you. It really works."

"Okay, I've got to see this!" exclaimed the game warden.

The man poured the fish into the river and stood and waited. After several minutes, the game warden turned to him and said, "Well?"

"Well, what?" asked the man.

"When are you going to call them back?"

"Call who back?"

"The fish!"

"What fish?"

Site-specific vs. window-level preferences

Users have been clamoring for site-specific preferences for years, often asking specifically for the ability to set zoom, author/user mode, or fit to width on a site-by-site basis. Yet, when site-specific preferences were introduced in Opera 9.0 Preview 1, those oft-requested preferences were missing and still haven't turned up six months later. I'll try to explain why, but first let me explain how things have worked historically.

Prior to Opera 9, there were two* types of preferences: global and window-level. Global preferences are the defaults used for all web pages. Window-level preferences are overrides used for specific tabs and tabs opened from those tabs. Window-level overrides exist for the following preferences: zoom, show images, fit to width, and author/user mode.

Here's how it works: a user sets the default preferences for all web pages by changing the global preferences. Then, if they want to change the zoom preference to more easily read an article loaded in a specific tab, they'll change the zoom window-level preference for that tab. The zoom preference for other currently open tabs won't change and new tabs will still use the global preference. However, any tab opened from the tab where the zoom preference was changed will inherit the window-level override of its parent tab.

This sounds complicated, but is intuitive in practice. Say you go to a news site and find the text too small to read. No problem, you simply increase the zoom level for that tab. Now, you decide you want to read a handful of articles on that news site, so you open them in background tabs. You're likely to have the same problem reading the small text in all the articles you just opened as you did on the main site. Luckily, the zoom preference you set in the original tab is inherited to all the tabs you just opened. In other browsers, you're only recourse is to change the global preference, which isn't really what you want.

One quick caveat: several global preference changes don't take effect immediately in the open tabs. For instance, when you disable JavaScript (JS), it isn't actually disabled for open web pages until you reload the web page. Thus, you can disable JS in a particular tab, reload the page, do whatever you need, re-enable JS, reload the page, and none of the other open web pages will know the difference. This makes it seem like you're only changing the preference for a specific tab, but you're really changing the default for all tabs. Many other preferences, such as default web page font, take effect immediately.

Fast forward to Opera 9 and the introduction of site-specific preferences (SSPs). SSPs allow you to override the global preferences on specific web pages. Let's take an example: by default, Opera blocks all unrequested popups. If you frequent a site that uses unrequested popups that you actually want to see, you'd add a SSP for the site so all popups are allowed. The SSP overrides the global default, thus whenver you visit that site, you'll get unrequested popups, but everywhere else, they'll continue to be blocked. It's a bit like white/black-listing, but taken to the next level.

While SSP are a great new feature, there are three main problems with the current SSP interface: 1) when you change a SSP preference, you also change all the other SSP preferences on that tab in the preferences dialog, 2) you can't easily return a SSP preference to the global default, and 3) window-level preferences are not available as SSP. The main reason for latter issue is that it isn't clear how the three levels of preferences will interact. SSPs override global preferences and window-level preferences override global preferences, but do SSPs override window-level preferences or do window-level preferences override SSPs?

Opera 9 is just our first attempt at SSPs. If you look back at many of Opera's features, they've evolved version by version, until they become polished, accessible, and intuitive. I expect the same will happen with SSPs, yet another reason to enjoy Opera 9 and look forward to what's next.

* OK, there's technically a third hybridish preference for setting the page encoding. You can't set the default page encoding from the preferences at all. When you change it via the View menu, all new tabs and the active tab will use the new encoding while all other currently open tabs will continue using the old encoding.