My Opera Development

Behind the scenes at My Opera

Subscribe to RSS feed

Posts tagged with "beta"

The New My Opera (Codename: Dexter) 10 days later...

, , , ...

So now that most of you are at least getting familiar with the new chrome of My Opera, it's time to probably mention a few of the things that went on behind the scenes for this release. Jacob has already written a nice post about our new grid system, check it out. Fredrik also wrote this post quite a while ago, indicating what we were planning to achieve and do with the new My Opera.

NB: This is not a changelog, but there will hopefully be one put out a later date.

To start off with, I don't only speak for myself when I say that this was the biggest side-branch of a project I've worked on. The final diff from the old trunk/main codebase ended up close to 1 million (that's ONE MILLION) lines, which is not including binary content and added files. About half a year of development went in to this release, while we were simultaneously maintaining the live site. There has been several obstacles that has occasionally slowed progress, not to mention we were also under attack, but what doesn't kill you and so on ..

Several motivational factors were behind the decision to begin such a large project as Dexter. Probably the main one, was a wish within the team to rid ourselves of our current templating system (XSLT) and switch to something more manageable. From the alternatives we've investigated, Template Toolkit (TT) seemed the most reasonable for our purpose. One of the consequences of switching the templating system of My Opera, is of course that the front-end of the site would have to be ported/rewritten to TT, which coincidentally coincided with design changes to www.opera.com. This led to a goal of trying to unify the design of Opera's online services, to provide a uniform look and feel to our sites.

In order to support TT, we had several possible solutions where one alternative was to modify our current in-house "MVC" "framework", hopefully reducing the amount of infrastructure required to be changed. Another, more comprehensive alternative, was to start incorporating a third party MVC framework into our existing system. The most reasonable candidate for that was Catalyst. After several weeks of research and discussions, the decision fell on Catalyst, since we found a transparent way to deploy it together with our current system. This allowed us to convert parts of the site step-by-step into TT, rather than having to change everything in one bulk operation. Another obvious reason to pick Catalyst, is that as we progress converting pages into the Catalyst/TT combination, we're able to reap many of the benefits of an actively developed framework. These include standard, generic modules and plugins for common tasks, a more lose coupling with the web-server and potentially the databse, and not to mention it's well tested. The first working pages running under Catalyst, are the community photos pages http://my.opera.com/community/photos, and we are aiming at converting pages at a blazing speed.

Our business logic is of very varied age and quality, so it's definitely the first few pages that are converted that will take the most time. Many of our back-end modules are currently only able of providing data output as XML, which is quite useless when using TT. So the first step when converting a page into TT, is looking at the required modules for displaying that page and eventually making sure they're able to output data in a native perl data structure. The modules still have to work for our old system, so that means that backwards compatibility must be ensured. Also, to make sure that our front-end developers are not halted by having to wait for the appropriate data from the back-end, we define what data should be output from a module and create TT data files with example contents. This way, a page can take form as a static example, while we're busy updating the back-end modules. Since many of these modules are shared for pages over the entire site, and many are used in almost every page, once a module has been changed, updating a page using that module should be significantly quicker.

So the most major change with the newest iteration of My Opera, is the introduction of Catalyst and Template Toolkit. They are very welcome into the My Opera family. Besides that, there is soooo much candy related to this release I get watery eyes:


  • We have introduced HTTPS/SSL for a more secure login and also management of your account pages. We will continue to imporve our HTTPS solution, hopefully ending up with an entirely secured My Opera for all logged in users.
  • We are converting all pages to HTML5 and CSS3, one at a time.
  • As a counter-measure for the DDoS attempt at My Opera, we have added Varnish caching for almost every My Opera page, protecting us against aggressive and bursty traffic.
  • We have also introduced a new thumbnail generation service, allowing us to generate thumbnails for all photos on the fly, rather than having to store several versions of an image.
  • We are more aggressively concatenating and minifying CSS for much faster pageload times, less required connections and less data transfer required with each pageload.
  • Prior to the release, we replaced almost all of our servers with new, shiny hardware.
  • Not to mention, we have massively improved our testing infrastructure allowing for better quality assurance of all new features.
  • To go along with the improved testing infrastructure, we also put out a proper beta server, allowing our users to try out the new version prior to the release.
  • Last, but not least, we have resolved MANY large and minor issues.


I know there have been many issues these first 10 days after the release, but we have been able to continuously and transparently ship fixes to the most severe cases and also many smaller ones. We try our best at reading your feedback and creating issues for whatever is reported. Of course, not every issue is given the highest priority, so it has to wait for higher priority tasks to be completed. Please be patient as we do our best to crush whatever nasty bugs there might be. And most importantly, have faith, for My Opera is moving in only one direction: Up-up-up!

Dev.Opera launched

, ,


Today we are launching a new site ~ Dev.Opera ~ for all you developers out there. On Dev.Opera you'll find web development articles as well as resources like libraries of advanced JavaScript functions ready to use.

Dev.Opera is integrated with My.Opera, so you can use your normal My.Opera username and password to log in.

The exciting thing about Dev.Opera is that it's a community driven developer site. This means that you can contribute by writing and publishing your own articles. happy

The site is still under development, so if you find any problems or have ideas for improvements, please tell us in the beta thread.

Introducing the Opera Community Beta Site

,

Edited to add, Nov 6: note: As of Tuesday Oct 31, the beta site is using the same database as my.opera.com, contrary to what is being said below. There are currently no ongoing beta tests.

We are now establishing a new beta version site of the Opera Community, for limited public testing future of updates and such. We are going to commit to use this extensively upon future updates of the Opera Community codebase, which also includes widgets.opera.com and [censored-for-now].opera.com. By doing this, and with the kind help of some of you folks, we hope to reduce the amount of bugs we release into the wild.

In other words, this will be our testing grounds for new software updates of the Opera Community.

This time around, however, is not a software update beta, and as such there will be no fun new features to try out. There will, however, be a behemoth of a database server (well, compared to our current ones at least) in the backend, hopefully serving your needs that much quicker than before.

The new database server and the Opera Community Beta cluster is however not situated at the same location as the current my.opera.com cluster. This means:

  • Changes made or content contributed on the beta site will not propagate to my.opera.com, and vice versa.
  • Files uploaded to the beta site will not be made availalbe on the current files.myopera.com server which serves all user files

There are also some other minor things; no email notifications, no MMS blogging, and possibly other stuff I haven't thought of yet.

The second bullet point above, means that if you upload images to an image gallery, you'll see a lot of blank frames, even though the images were uploaded properly. We hope that even though it might be difficult to enjoy the full experience that you try to upload some images, and even try to edit some of your old photo albums. Simply do stuff, and don't be afraid of breaking anything---changes will as mentioned not propagate to the "real" Opera Community. Search for stuff, post blog posts and photo albums, etc.

We hope that you take the time to look around a bit around perhaps put some minor strain on our new database server. smile

OK. Hopefully you took the time to read the above. If you want to refer other people to the beta site, please refer them to this post, so that they know the limitations of the current site. We don't want to get truckloads of invalid bug reports to wade through. Currently, the Opera Community Beta can be found at >>> http://beta-my.opera.com <<<. The URL is subject to change once we have moved our servers. After the server move, the beta site will be directly tied in with the live database server and user file storage, meaning that we'll get much much more realistic test environments.

We would very much like to hear your feedback on this in this forum topic: http://my.opera.com/community/forums/topic.dml?id=164350 . We are especially interested in hearing about stuff which takes a very long time to execute (searches, posting stuff, etc) and stuff which simply doesn't work even though it works on the live Opera Community.