In beta 11, Opera’s going to hide all “http(s)://”, and also all querystrings (until you focus the addressbar). Opera’s devs are right that users consider them mostly “gibberish”, but I think this change could cause a ton of problems and confusion for people, especially support staff, and there are plenty of sites/apps still out there with URLs based on querystrings. I can see this setting as short-lived.

About damn time, guys

Opera 11 will have extensions.

Mozilla 1.0 had the first decent extension system in 2002, and since then Opera users have been begging for one and getting lame excuses and half-baked substitutes that offered none of the power of real extensions:  “Panels” were just HTML docs beside the viewport, and “widgets” just HTML apps in separate chromeless windows.

If Opera doesn’t want to sit at 1% market share for 10 more years, they better get this right. An “extension” system should be able to alter chrome and context menus at the bare minimum.

A Bad Precedent?

While Microsoft has certainly used unlawful practices in the past to build the Windows empire, I fail to see how Opera’s EU antitrust case was anything more than a thinly veiled (and successful) attempt by Opera—and later additional competitors—to strong-arm Microsoft into directly promoting their products.

Users of Microsoft’s ubiquitous Windows operating system in Europe who have chosen its Internet Explorer as their default browser will receive in a software update an option to switch to a rival. [NYT]

I understand the chicken-or-the-egg problem in providing users with an unbiased choice of browser on a new system, I guess I’m just uneasy with the idea of governments getting in the business of mandating that a marketplace of software be presented to users of every device that comes with software.

If Windows must give new users a choice of browsers, who decides the options, and why shouldn’t every OS have this requirement? There are many commercial text editors, instant message apps, etc. Why shouldn’t those be presented as options? Apple routinely adds new applications to its standard distribution that greatly reduce the value of existing commercial apps. Should we not let them? Is it in the best interest of average users to have to choose from a continuously growing list of low-market share and potentially poorly-compatible, insecure, or abandon-ware browsers?

Maybe I’m wrong. Maybe this would turn out to be great for the software industry and users (but mostly lawyers), but I think at some point we should sunset the argument that people don’t understand what web browsers are.

The Quickening of Facebook

If you’ve used Facebook in Opera and Firefox, you might have noticed that Facebook is several magnitudes faster in FF, but this has nothing to do with FF’s speed. For FF and IE users, Facebook uses a client-side architecture called “Quickening” that basically makes a few popular pages into full AJAX applications that stay loaded in the browser for a long time. All transitions between “quickened” pages are done through AJAX calls and a cache system makes sure all pages displayed from cache are updated based on changes from the server (e.g. comments others made, ad rotation) or client (e.g. comments you made).

While other sites have certainly done this before, the complexity of Facebook’s apps and level of optimization performed is staggering. The system continuously self-monitors page performance and usage of resources and re-optimizes resources like JS/CSS/sprite images to send and receive as few bytes as possible.

Video presentation goodness: Velocity 09: David Wei and Changhao Jiang, “Frontend Performance Engineering in Facebook”

Hopes for 2009

In no particular order, I hope…

  • the release of IE8 will spur organizations currently standardized on IE6 to finally bite the bullet and either upgrade their users to IE8 or move them to other browsers. Killing off IE6 (and IE7 really) will significantly decrease web development costs and reinvigorate CSS by opening up a world of selectors and properties that have been unofficially “off the table” due to the prevalence of IE6. As bad as IE6 and 7 have been in comparison to its competitors, IE8 looks to be a major step forward for the default browser of Windows systems.
  • the popularity of IE8 will interest IE upgraders to try other browsers as well. While IE8 is great for the IE user, exactly what the web does not need is another browser market so dominated by one product that web developers move from web standards back to coding for the dominant browser. Although IE8 looks to be committed to standards support, there will be plenty of quirky rendering modes that ignorant developers will get accustomed to if they don’t test in other browsers.
  • Opera 10 will continue strides to increase compatibility with broken sites and stay so blazingly fast and handy out-of-the-box that I’m willing to do most of my browsing without the luxury of add-ons. As far as I know no other browser lets me put my addressbar and tabs on the bottom where I like em’; it’s the little things.
  • that the kids who vandalized a bunch of cars last night, including mine, will receive better parenting than they have in the past. God knows making them spend time with other messed up kids in juvenile detention or giving them permanent criminal records isn’t going to do anything positive for their lives.
  • that our family will have fewer health problems. For the past couple months illnesses just haven’t let up long enough for us to catch our breath. For several events we were looking forward to we were either out of town, sick, or just too exhausted to bother. A Roller Rebels bout, the Of Montreal show, Don & Sarah’s mixtape party…
  • that the new president will choose a drug czar with a background in harm reduction or, better yet, open a public dialogue to discuss if the current federal system (ONDCP, DEA, and CSA) is the right way to reduce the public harms associated with drug use.
  • that my friends and random readers (especially those, like me, who don’t use any drugs) will take some time to learn about what the War on Drugs is doing to the world. The top search engine results are as good a place to start as any, and, of those, the Drug Policy Alliance provides the best overview of the harms, while Rolling Stone describes the last 20 years and the battle of cocaine and meth. Since October I’ve found this topic fascinating, and every day I uncover more evidence that our current system based on blanket prohibition causes tremendous societal harm.
  • that the web will continue to be an exhaustive source of information about drugs, policies, and history and help people form educated opinions based on facts. I grew up knowing nothing about drugs but the old “this is your brain on drugs” ads, so when I started reading about the real science and history of illegal drugs it was quite eye-opening. First you realize how dangerous heroin and meth are, then you find to your shock that marijuana is hardly the drug the government makes it out to be, then that alcohol and tobacco are so much worse and you wonder why they’re exempt from the CSA, then you read about when alcohol was illegal and the havoc that caused, and finally you realize it’s not the drugs, but the prohibition causing the biggest problems.
  • that the media will continue its coverage on the harms of the War on Drugs in Mexico and continue to give voice to clear-headed intelligent criticism of drug policy as its done increasingly recently.
  • that online news sources continue to allow readers to openly discuss drug policy in their commenting systems. It’s obvious that more people are taking the time to do their research; the won’t please someone think of the children! arguments are thankfully falling from fashion, though I’m increasingly seeing the “sends the wrong message to kids” argument from drug warriors anytime anyone suggests reducing criminal penalties for marijuana possession.
  • I’ll play and record more music.
  • that Skate 2 will be as awesome as it looks.
  • state budget cuts will not cost me nor Kathleen a job. Did I mention the War on Drugs is damn expensive?
  • the recession will not cost Gainesville any of its awesome eateries. Yesterday at The Jones’ I had corn-flake-encrusted brioche french toast topped with almond whipped cream. It was possibly the most magical thing I’ve ever tasted.

Still waiting on Opera

A whole six months after beta 1’s release, 9.5 beta 2 is finally out. At work I installed it over beta 1 and it works like a charm; the issues I was waiting on seem to have been fixed.

At home it’s a different story. I installed over beta 1 and the result was unusable. I got strange errors on HTTPS pages, and more cripplingly, Javascript files either don’t load completely (random bytes chopped off the end of the file) or don’t load at all. The error console tells me “Script not loaded!” Yeah I noticed!

I tried everything to get beta 2 working:

  • deleted the main config file and restarted Opera (“resets” Opera, losing all my bookmarks and settings of course)
  • uninstalled and reinstalled
  • uninstalled, deleted all Opera stuff from Program Files, ~/Application Data, ~/Local Settings, and the registry before reinstalling
  • did the above using both installers available

Each time I had the same Javascript and HTTPs problems.

Opera intermission

I’m a long-time Opera fan and flagwaver, but the pain of bugs in 9.5 beta finally forced me to switch to Firefox last week. I’ve been using 9.5 beta1 since the end of October. When do we get a new one? I see the weekly builds, but they’re all alphas (no thanks). The biggest problems I’ve had were with the rich text editor and Flash (which everyone incorrectly assumes to be a cross-browser development panacea), but, as a webdev, I’m now spoiled having instant access to Firebug.

Firefox now has closed tab access (though I miss ctrl-z) and session restore, but within a few minutes I had mouse gestures and wand back. This is petty, but a big reason I loved Opera is that it let me put the address bar, tabs and everything at the bottom. I haven’t found an easy way to do that in FF. FF is also noticeably slower in a lot of actions, but having everything actually work (including Google Docs) is really a breathe of fresh air.

I’ll continue to test Opera and give each beta/full release a whirl, but winning me back will require these to work:


17 Dec 2006: Latest Del.icio.us Posts now works again in the latest release 9.02. Huzzah.

My first Opera widget created back in July is now broken in Opera 9.02. The debugging and rebuilding process is so tedious that I probably won’t fix it very soon. A nice gesture on Opera’s part is the creation of an actual Widget API/specification for those in the trenches, but where can you find it? Nowhere on opera.com. I had to google “Opera Widget Object” to find it tucked away apparently as a left-over part of a presentation given at a conference in Finland. If you want developers to use your technology, spending an hour to write up even some preliminary docs would be nice.

After giving them a real chance, I still say widgets are a flop (at least on the desktop). Beyond the persistent storage, a widget is just a website and having it run outside the browser is a neat trick, but one that already failed. And as for porting widgets to mobile devices, I forsee a lot of problems in the area of performance and memory leaks since most widgets don’t go out of their way to preserve bandwidth and none share Javascript libraries. Leave a half-dozen web2.0 sites open in any browser all day and watch the memory usage. Will a mobile handle it?

Opera folks: Make it easy to test in your browser

Opera wants to know what features web developers would most like to see. I posted this in response (but it never seemed to show up on the page):

“Testing” version: offer devs a download pre-configured for more easily testing site compatibility with Opera. Marketshare will only rise if more sites are tested in Opera, so this has to be dead-easy for devs used to testing in IE/FF.

Strict-mode JS Notices: tell devs when they’ve attempted to use a common interface that IE/FF supports but Opera doesn’t. Link to a knowledgebase article, which leads me to…

Documentation: Be public and upfront about lack of support for popular proprietary features that IE/FF support and that web devs are itching to use, and list practical alternatives and workarounds in knowledgebase articles. In fact, publish usable compatibility scripts if possible, not just secret browser.js fixes.

In the 7.5 days this would’ve been XMLHTTPRequest. Yes, Opera devs were working on it, but web devs were in the cold for knowledge of the current level of support (eg. you couldn’t POST until 7.6 so many sites half worked). If support is in the works, let us know how it’s coming along! Not just in an odd hint drop on the forums.

This also goes for Opera-specific tech; I shouldn’t have to figure out myself that UserJS doesn’t fire in panels (why not?) or search forums for the most basic widget methods. Devs need thorough docs. Take the PHP docs as a model.

JS Panel: I sorely miss not being able to watch JS errors in real-time in a panel, as I did with v8. In fact, it should be a top-notch panel developed by Opera that ships with the browser.

DOM Inspector: devs love them, plenty of bookmarklet versions exist out there. Grab the best, improve the hell out of it and ship it in a panel or publish it as an official Opera bookmarklet. Grab one of your widget developers for two days and you’ll have this.


My first Opera widget is available. I designed it to take up as little desktop space as possible (a 22x22px icon) until you click it, which opens the interface and queries del.icio.us to show your latest bookmarks. By default, when you click a bookmark, the page opens in Opera and the widget “minimizes” back to the icon. I’ve followed Opera’s guidelines in using their standard “flip” button for preferences, and these persist after you close and reopen the widget.

For people who browse full screen, I’m still not sold on the widget concept, or at least Opera’s implementation, which is only slightly less limiting in functionality as a web page. The only big advantage widgets offer to, say, bookmarklets (since BM can open windows), is the persistent storage, which is thankfully larger than the cookie 4K limit. The testing and build process needs improvement; you have to delete the previous version in Opera, clear the cache, make a zip of the folder, serve it with a special content-type and reinstall in Opera. Easier testing can be done by including Javascript that emulates the widget API if it’s not available, but this still won’t allow cross-domain XHR requests, so for some widgets your workflow has to be tweak-rebuild-retest-repeat.