Planet Opera

With great pleasure I can announce that we have released the Scope protocol specification which is used in Opera Dragonfly and some of our internal QA tools. Currently Opera Dragonfly uses the STP/0 version, but for future version of Opera we will switch to the STP/1 version, which all new clients are recommended to use.

One of the reasons to release this documentation is that we hope that other browsers and users agents will interested in adopting Scope in their products. If this is the case, we’d like to standardise the specification through a standards body, so that there will be one standard way for tools to interact with the browser. Having this would allow any developer tools to work with any browser that implements the specification. This would be great not just for debugging tools like Opera Dragonfly and Firebug, but also IDEs and QA tools.

One of the key design decisions for Scope was to make sure it works well when debugging remote devices, such as a mobile phone or TV. Debugging on a device is difficult, due to limited screen size, resolution or input method. Scope allows you to connect your device to a computer running a Scope-enabled tool, so you can debug directly from the computer. Since we started work on Scope, both Apple and Mozilla have released or are in the process of releasing a mobile browser, and Google has come on the scene with a desktop and mobile browser of there own. Being able to debug remotely is likely now important functionality for them as well.

You can read more about the Scope protocol on the Opera Dragonfly blog, written by one of the Scope Engineers, Johannes Hoff: Scope Protocol release: how the fat lady sings.

Today we are happy to release the specification for the Scope protocol. This is the protocol used for communication between the Opera browser and Opera Dragonfly. It is also used here at Opera for automated testing.

Since the release of Opera Dragonfly, we have tried to keep the project open source. The source and its documentation is available under BSD licence, but it is difficult to expand it or create something different without the protocol specification. This release wants to rectify that.

The documentation is more or less as we have used it internally to communicate inside the team, which means that some documentation is missing simply because everyone on the team knew what it was about. If something is unclear, let us know in the comments.

One of the reasons we are releasing right now, is that other browser makers have started discussing how to do remote debugging. Since the very start we have focused specifically on this, so we want to share our experience and ideas with everyone else.

The specification is split into two parts. The current implementation, which we call Scope Transfer Protocol 0 (STP/0), is an XML based protocol. Our experience has been that this is too slow once you start transferring big data structures, like DOM trees. One of the advantages of the XML protocol was that it was easy to create a client for it in JavaScript using XMLHTTPRequests. It is also very easy to debug visually without the need for special tools to parse the data.

The next generation protocol, STP/1, is what we are currently working on. It is just a sign of things to come, but we will release it in a public build as soon as it is ready. There might be changes to the protocol before that time. The protocol continues to support XML, but we have added two more serializers: JSON and Protocol Buffers. The messages are the same in an abstract sense, but they can be rendered to different data structures. This means that we can keep our XML tools mostly unchanged, but switch over to Protocol Buffers for faster transmissions, or to JSON for the sweet spot between easy of use by JavaScript and low bandwidth usage.

Our next release will be a public build of Opera using STP/1, together with tools to help you get started with communication through STP/1.

Enjoy the read!

SkinINIChanges

Opera Wiki

02 July 2009, 07:51

English
On Thu, 02 Jul 2009 at 05:51 GMT, SkinINIChanges was edited by ToMu: Skin changes in 1615

Server Upgrade to 4.11.458

Opera Mini

01 July 2009, 14:50

English
The global Mini cluster was upgraded by the server team Monday evening CET. The main improvements include:

  • enhanced site compatibility
  • a fix for pages with internal links
  • improved synchronization
  • binary files are always offered for download

Since JavaScript site patches are used to improve site compatibility, an enhancement allowing developers to bypass those patches has been included. The setting is available when entering the "config:" URL, but should always be enabled for normal usage.

All users automatically benefit from the upgrade (no manual change is needed, though it is possible to check the server version using the "debug:" URL).

Happy surfing! :cheers:

Indosat commercial

Choose Opera

01 July 2009, 14:17

English

Take a look at this commercial from Indosat featuring Opera Mini!

Last Saturday, I had the pleasure to attend the first edition of Standards.next, an informal bootcamp about tomorrow's web standards, organized by my fab colleagues Bruce and Henny. A quick overview with lots of links to online resources:

Also worth a peek: the event pictures of our man Patrick H. Lauke.

If you're interested in attending future Standards.Next events, I recommend keeping an eye on the #standardsnext Twitter query, or subscribing to the Standards.Next feed.

Techy money saving

Opera Community News

30 June 2009, 17:26

English
Free software

With the re-emergence of words such as “recession” and “credit crunch” in our everyday vocabularies, you may find yourself racking your brain for new ways to cut back and save more.

...
A new build is ready.

Search engine synchronization should be working again now, but those who are upgrading from certain previous Opera 10 builds (including the Unite labs build) may have problems with some search engines not being synchronized. If this happens, try to set opera:config#OperaSync|SyncClientStateSearches to 0 (no restart required).

Note: All Solaris builds and some FreeBSD builds are missing. The Windows MSI package is English-only.

Highlights
  • Search engine synchronization should now be working again
  • Added "robots.txt" to prevent search engines from indexing Unite services by default
  • Fixed several Opera Unite crashes

Known Issues
  • Some search engines may be missing when synchronizing with some previous Opera 10 builds
  • Text nearly invisible on incactive/greyed-out buttons
  • Native skin is work in progress
  • Some Windows users may get an error related opera6.ini in the system32 folder. This can be ignored

Changelog

User Interface
  • Set Large Images=0 for native skin
  • Fixed the Pagebar Skin so that it does not have a negative padding left
  • Fixed Bug DSK-232501 (Crash when activating message from mail notification while cert approve dialog is open)
  • Fixed Bug DSK-249063 (unremovable English entry in Spelling > Language should be grayed out): The preinstalled dictionaries will now have full name in the choose default language page in the wizard
  • Fixed Bug DSK-250617 (Text overlaps in UI)
  • Fixed Bug DSK-255452 (New initial BitTorrent dialog leaves unnecesary short space for checkbox label): Also fixed so it is an Ok/Cancel dialog
  • Fixed Bug DSK-255971 (Session not saved when closing Opera)
  • Fixed Bug DSK-256929 (Bookmarks visited/unvisited icons hardly distinguishable)
  • Fixed Bug DSK-257266 (Missing padding on hover in main menu)
  • Fixed Bug DSK-257336 (First pixel at the left side of the menu button doesn't activate the menu button)
  • Fixed Bug DSK-257343 (Progress indicator height inconsistency)
  • Fixed Bug DSK-257346 (Pages in Window menu no longer reachable by their number)
  • Fixed Bug DSK-257349 ("new tab" button too high up in tab bar wrapped to multiple lines)
  • Fixed Bug DSK-257355 (Panel buttons overlap search field's focus ring)
  • Fixed Bug DSK-257378 (Dragging produces text-only buttons): by Reverting Fix to Bug DSK-257195 (Panel header text becomes unbolded when customised)
  • Fixed Bug DSK-257439 (Disabled UI buttons should probably have dimmed text color)
  • Fixed Bug DSK-257593 (Adjust memory/cache changes)

Core
  • Fixed a memory leak
  • Fixed Bug CORE-20064 (Event.origin on message events returns origin of current window and not the origin of the message)
  • Fixed Bug CORE-21557 (Move media player plug-in doesn't paint until window resize)
  • Fixed Bug CORE-22049 (Certificate with HTTPS CRL URL to site with same CRL and certificate warning trigger run-amok dialog opening)
  • Fixed Bug CORE-22293 (moveTo inconsistencies on some platforms)
  • Fixed Bug DSK-252565 (Click on link at TV2 crashes Silverlight in Opera)
  • Fixed Bug DSK-257534 (Disabling spell checker in multiline edit boxes crashes Opera)

Opera Unite
  • robots.txt now added, with search engines disallowed by default
  • Fixed Bug CORE-19330 (Possible to embed unite:// on http:// pages): also made sure that unite services can not manage each other
  • Fixed Bug CORE-21620 (Webserver crash)
  • Fixed Bug CORE-21680 (Incorrect escaping/unescaping of characters in WebserverRequest.uri)
  • Fixed Bug DSK-247847 (Wrong handling of "username too short" error from auth server)

Windows
  • Set max values for the automatic memory cache
  • Fixed Bug DSK-249688 (Systemwide settings are not read)
  • Fixed Bug DSK-254706 (/settings command-line flag is not functional)
  • Partial Fix of Bug DSK-257293 (Opera fails to find any mails after 9.64 to 10 upgrade)

Unix
  • Correctly specify Linux 64-bit Qt4 when uploading crash logs
  • Fixed Bug DSK-256111 (Webserver doesn't serve proxied requests in Qt4 builds)

WARNING: This is a development snapshot: It contains the latest changes, but may also have severe known issues, including crashes and data loss situations. In fact, it may not work at all.

Download

Win a 7-day tripTo Scandinavia this summer!

BlackBerry Cool is running an Opera Mini contest where all you have to do is download Opera Mini on your BlackBerry (if you haven’t done it already). :up:

They're giving away a ton of prizes including:

  1. BodyGuardz scratch protectors for the Curve 900 and Bold.
  2. A wide variety of chargers.
  3. Otterbox cases for the Bold and 8900.
  4. Software gift cards of up to $50.

To win one of our Tier 1 prizes, just leave a comment in this post or the contest page. Tell them what you like and dislike about Opera Mini.

One lucky reader from the BlackBerry Cool community will win the Grand Prize and get to visit Oslo, Norway and visit the Opera headquarters. He or she will be accompanied by a correspondent from BlackBerry Cool, who will be writing about the experience. You’ll even get to visit Linkoping, Sweden where Opera Mini is made. :eyes:

Contest ends Friday, July 10 at noon PDT.

Only North American residents are eligible.

Visit the Black Berry Cool Web site for more information.

Following up on the last post, it's time to get the next one going. We had a quick lunch at a Brazilian place, imagen that Patrick! (And thanks for keeping Sushi alive) After some discussion about the first half of the speakers it was time to head on back to the conference center for day one part two!

Dan Rubin was up next talking about designing virtual realism. This might sound a bit flakky, but the idea was to use images and breake up single colors with either texture (pref from real life images as CGI just isn't that good and always will look fake) or by adding noise to the colors to breake the monotone look of it. I did try to play around with his ideas at home last night and I must say that he had several good points.

...
Opera has signed an agreement with TeliaSonera International Carrier to provide Opera with colocation in establishing a new data center in Poland. As Opera's fourth data center worldwide, the facility will operate as the server hub for Opera Mini, allowing the mobile browser to expand its network in Europe. By relieving other servers of the processing responsibilities, Opera's Poland-based servers will enable significantly faster page downloads for users.
Even in the classy company of bad version detection scripts we've met since we started testing Opera 10, this Flash detection approach stands out. That script goes to great effort to require an update every.single.time Adobe releases another Flash version.

It starts with a bold claim to be the ESPN "Flash detection system", no less:

// Author: Danny Mavromatis
// Version: 2.07.0
// Created: 10/29/2001
// Updated: 3/6/2006
// ESPN.com FLASH detection system
var f2 = false;
var f3 = false;
var f4 = false;
var f5 = false;
var f6 = false;
var f7 = false;
var f8 = false;
var f9 = false;

Look at all those variables. What might they be used for? Read on:

var fD = navigator.plugins["Shockwave Flash" + isVersion2].description;
var fV = parseInt(fD.charAt(fD.indexOf(".") - 1));

So, first it extracts one single letter that precedes a dot in the plugin's description of itself. This is presumably the plugin's major version number, you know the 8 in "8.0", the 9 in "9.0", and, um, the 0 in "10.0". Then:
f2 = fV == 2;
f3 = fV == 3;
f4 = fV == 4;
f5 = fV == 5;
f6 = fV == 6;
f7 = fV == 7;
f8 = fV == 8;
f9 = fV == 9;


..it just sets the corresponding "f"-variable to true. If the major version was 8, f8 will be true and so on. A great way to make sure the code will require maintenance - new variables for each new version. And then comes the real gem:

for (var i = 2; i <= mV; i++) {
if (eval("f" + i) == true) aV = i;
}
// alert("version detected: " + aV);



Let's see, we just had a variable fV which contained Flash's major version number (or at least its least significant digit) - but this script has severe amnesia. What was that number again? Better use a loop and 8 eval() calls to check the value of that variable. You never know, do you?

Now, dear readers - Mr. Mavromatis clearly needs some help with this code. Obviously, complexity and maintenance requirements are among his design goals. The natural question is whether there are good, non-obvious ways this script could be improved to be more complex and require even more maintenance? Suggestions welcome in comments.

Update: Danny Mavromatis responded in comments and - though he no longer works on the ESPN site - has made sure that the page where we found this problem has been updated. Kudos to Mr. Mavromatis for his quick response and sense of responsibility. I wish more web developers would act this way!

No more personal attacks, please!

So, I've been away for a few days. Where where I? I had the great fortune to be able to attend @media in London. Together with Espen, Truls and we meet up with the Open the web team!

The first day we got to London, found our hotel near Tower Hill and started to explore the city. My initial plan was to buy a pair of sunglasses since I never got around to it last year and I felt it was about time I got some real glasses not the 50NOK glasses I usually buy. So having found a awesome pair of Ray bans I was super psyched. Then after a quick stop by the hotel to meet up with Truls and Mikkey we got in a cab to BBQ at Henny's (Who lives in London). Getting out of the car I lost my first pair of glasses (about 4 hours after buying them). However it's hard to get bummed out when there is so many great people to hang out with. I'm glad I had this opportunity to get to know Chris, Bruce, Henny and Molly better since it's not that often they are in Oslo. We called it a night early so that we would be good to go the day after as the conference started at 08:00.

...

Blog this

Opera Community News

29 June 2009, 12:54

English
Blog this

No, you don't have to blog this, but find out how to easily blog a cool photo you've discovered and show off your My Opera favorites! :cool:

...

It is not just Opera Mini, but the whole Mobile Web is booming in Indonesia.

As shown by State of the Mobile Web Report, Indonesians' average page view is 400 odd pages and they also enjoy the second biggest Opera Mini user base after Russia.

So why is the Mobile Web booming?

  1. Cheap access. There are more than 10 telcos pitting against each other and each one offers good pricing. On average you pay about USD0.10/Mb.
  2. Bad landlines. The Mobile Web is the perfect substitution for an unsatisfactory landline experience.
  3. The Berry factor. The mass appeal for BlackBerry and its push email application meant that going online became part of the "Berry craze".
  4. Traffic jams. During rush hour, what better to do than to surf the web?

I've presented the case in The New Wave of Mobile Internet, Universitas Krisdwipayana and the FreSh forum.

Here are the slides for the mobile browser trends and the boom in Indonesia.

SkinINIChanges

Opera Wiki

27 June 2009, 11:24

English
On Sat, 27 Jun 2009 at 09:24 GMT, SkinINIChanges was edited by ToMu: Skin changes in 1606

CustomButtons

Opera Wiki

26 June 2009, 23:18

English
On Fri, 26 Jun 2009 at 21:18 GMT, CustomButtons was edited by RoBadin:

Second build of the week

Opera Desktop Team

26 June 2009, 16:44

English
We decided to release another build this week to let you have something to play with over the weekend. Since the previous build, there has been a bit of UI work going on, and some fixes to UPnP (Opera Unite).

We have also enabled some experimental UPnP code, so please report any unexpected network related issues that you come across. There may be more crashes than usual when using Unite with UPnP enabled, but any crashes can simply be reported through the new crash dialog.

In addition to that, we have the first 64-bit Qt4 builds for Linux.

As a final note, the native skin is still not finished, so there is no reason to comment on it yet. (Let's see how many of you actually read this ;))

No automatic updates this time around.

Changelog

User Interface
  • Changed name of "Transfers" to "Downloads"
  • Tweaks to the windows native skin
  • Added Turbo warning icon
  • Added Open Folder button to file browse control
  • Partial fix for Bug DSK-247823 (Menu item 'Edit > Check spelling' must be updated) The desktop part of the new rewrite on how to turn on and off spellcheker
  • Fixed Bug DSK-254466 ("Add contact" mail button - inconsistent capitilization)
  • Fixed Bug DSK-255284 (Translated strings in Romanian do not fit Crash and Appearance dialog)
  • Fixed Bug DSK-256214 (Unite status button: More space needed for translation)
  • Fixed Bug DSK-256583 (Double click on note to insert into mail doesn't work when replying)
  • Fixed Bug DSK-257018 (Some buttons get bigger when focused)
  • Fixed Bug DSK-257029 ("Open Service" should be disabled if the service is in the trash can) plus: consistently disable "properties" for trashed Unite services
  • Fixed Bug DSK-257076 (New "synch opera" button in Speed Dial is too small)
  • Fixed Bug DSK-257089 (Windows native: Text in Speed Dial search field impossible to read with dark background image)
  • Fixed Bug DSK-257143 (Tiled background in Speed Dial isn't remembered)
  • Fixed Bug DSK-257190 (Unable to edit file/folder chooser boxes by hand)
  • Fixed Bug DSK-257195 (Panel header text becomes unbolded when customised)
  • Fixed Bug DSK-257223 (Update dialog, new version download size value does not fit)
  • Fixed Bug DSK-257233 (Automatic Turbo mode not reflected in status field)
  • Fixed Bug DSK-257256 (Crash when performing mouse gesture while gesture dialog is open)

Core
  • Fixed Bug CORE-2227 (Onload script not executed in frameset where one frame's src is set to "#")
  • Fixed Bug CORE-22239 (Make sure MultiEdit fields will be spellchecked if the spelling checker is turned on when it doesn't have focus)
  • Fixed Bug CORE-22240 (Make sure there is no active sessions and spellcheckers when a user turns off the spellchecker)
  • Fixed Bug DSK-251746 (Aborting print from VG.no crashes Opera)
  • Fixed Bug DSK-256927 (File with spaces not opened after download)
  • Fixed Bug DSK-257213 (WMP not painting when going back/forward (and sometimes not on first load))

Mail
  • Fixed Bug DSK-253679 (When you reply to a message the cursor is invisible)

Opera Unite
  • Experimental UPnP changes
  • Fix for a bug that prevented every device but the first to notify the correct opened port to the proxy
  • Fixed Bug CORE-22068 (WebServerResponse.closeAndRedispatch sends a 405 under a POST request)
  • Fixed Bug DSK-253872 (Cannot start root service)
  • Fixed Bug DSK-255768 (Wait until the webserver and the services are initialized before restoring unite: URLs from sessions)
  • Fixed Bug DSK-257145 (Opera crashes on startup when Unite is disabled)
  • Fixed Bug DSK-256640 (Crash when starting Unite)

Windows
  • Fixed Bug DSK-254084 (Two entries in Add/Remove Programs after upgrading with MSI installer (as admin on Vista, or limited user on XP and Vista))
  • Fixed Bug DSK-254083 (Error dialog when selecting current limited user in the Run As dialog when autoupdating using limited account on XP)

Unix
  • Fixed Bug CORE-21872 (Crash when starting Unite)
  • Possible fix for Bug DSK-224080 (Flash content makes opera crash on Sparc Solaris), add workaround for Sun X bug
  • Fixed Bug DSK-240834 (Qt4-shared build uses Qt3 settings)
  • Fixed Bug DSK-253944 (Plugin wrapper crash)
  • Fixed Bug DSK-255517 (Move ttf fonts from Suggests to Recommends in Debian packages); modernized the list of font packages

Mac
  • Fixed Bug DSK-203698 (Aqua skin progressbar display issues)
  • Partial Fix of Bug DSK-255214 (White artifact cover entire page when reloading using Reload button)
  • Fixed Bug DSK-256977 (Missing background styling for dropdown menus at play.com)
  • Fixed Bug DSK-256991 (Opacity related crash)


WARNING: This is a development snapshot: It contains the latest changes, but may also have severe known issues, including crashes and data loss situations. In fact, it may not work at all.

Download

It looks like someone has started work on a BitTorrent tracker running as a Unite service. The creator now needs help to find bugs, which is why he made a public announcement about it.

You can find the tracker's homepage at Google Code.

I'm pretty amazed by this service, and I really can't wait to see what kind of Unite services other people can come up with.

Not knowing much about the specifics of this service, I wonder if it would be possible to create a network of "decentralized" BitTorrent trackers for redundancy purposes. Since a Unite service is easy to set up, just about anyone could run a BitTorrent tracker, and if several of them connected in a network of "trusted" trackers continuously mirroring each other, there would always be a tracker available even if someone disconnects a computer running the tracker.

Time will tell how far Unite can take things, I guess.

Member of the Week

Opera Community News

26 June 2009, 11:15

English
Member of the Week

This week we meet a member from the ... Catty Planet? :cat:

...

Blogs

Is a blog missing? Just send me a message.