Opera Make Your Browser Fly

Opera and keyboard support.


In the feedback we have recieved to the first beta of Opera Mobile 9.5, it looks like keyboard problems have been one of the most frequent problems mentioned. This comes as no surprise to us. Here’s why:

Microsoft has defined an interface for software keyboards, the Software-based Input Panel (SIP):



The Software-based Input Panel functionality in Windows Embedded CE allows target devices that do not have a keyboard to simulate keyboard input by using an input method (IM). Windows Embedded CE implements a software-based input panel (SIP) architecture that functions through a touch screen. This SIP architecture is an IM that enables an application to accommodate input in multiple forms. If you want to enhance the portability of target devices based on your OS design, you should consider including SIP functionality in your OS design instead of keyboard support.


[see http://msdn.microsoft.com/en-us/library/aa932590.aspx

Take the Lead the movie

"Software-based Input Panel"]



An input method editor (IME) is an application that allows computer users to enter complex characters and symbols, such as Japanese Kanji characters, by using a standard keyboard.


[see http://msdn.microsoft.com/en-us/library/ms776145(VS.85).aspx "Input Method Editor"]

Opera supports the SIP architecture and the IME architecture, so Opera works fine with the default Microsoft keyboards. Unfortunately, many new devices have shiny keyboards that look nice, but do not comply to Microsoft’s SIP and/or IME standard. Those keyboards work well on an edit control, but not with other applications that want to use user-input from a keyboard.

When Opera is pre-installed on a mobile phone we know what kind of software keyboard the device has, and we can test and make work-arounds to get the keyboard working properly. It is very difficult to get every software keyboard working properly as we would have to test every possible device to ensure compatibility.
This results in several problems, for example:

  • Typing on keyboards does not send the correct IME messages to Opera. This might result in not seeing the composition while typing, or too many characters will be sent to Opera and we will not display the correct text.
  • Typing on a keyboard where multiple characters are mapped to one key (like a T9 keyboard) will enter wrong characters, e.g. numbers (only) instead of characters.

Serial Mom movies

How to Rob a Bank film



We have cleaned up the input method code in this first beta, so right now it does not support many non-standard IMEs. We will try to make Opera work well with as many keyboards as possible, but there are limits for how many workarounds we can make to accomodate every device and software keyboard. But please keep letting us know where you find issues so we can keep improving.

  • 395 Comments
  • Filed under: Opera
  • Hello all,

    My name is Deniz, and I work in Opera QA, Systems and Processes on tools development. We mainly create tools for automation, stress testing, and various other stuff. In this first post, I will try to guide you on building the OpenJDK platform, in upcoming posts I will give samples on how to use it.

    Here at QA SaP, we try to keep up with the latest technologies, and Java is no exception. After the announcement of NIO2 A Good Man Is Hard to Find trailer , I had my eyes on ea(early access) builds to test the new APIs to see if it would solve my long-lasting issues with NIO.

    So, what is NIO2 and why is it useful? NIO APIs in Java, compared to old regular IO, provides features for intensive I/O operations. For example, we have used NIO with our proprietary stress tester tool—which would not be possible to implement in standard IO, and it proved to be very useful. However, we had some problems with it in terms of scalability and maintenance and those were targeted by Sun in NIO2. Moreover, they introduced a bunch of new File IO APIs—such as New File System API, useful for creating a wide range of tools with ease.

    Finally, Sun released the implementation—first with a patch; later it was merged to repository (mercury/hg), but they had no binary builds available.

    So, I wanted to compile the source code —after they released it as a patch. However, it wasn't as easy at it may sound hence the reason for this tutorial. Luckily, Sun started providing the binaries for all platforms some time ago, but we think it is a good idea to be on the bleeding edge and to be able to build the jdk7 on your own.

    I would like to mention that this tutorial is based on Rajendra's post—which really helped me a lot during the build—and Elliotte's post on java.net. I thought it would be helpful to have everything in one place, providing links to downloads, listing packages, and so forth. I tried to combine both posts, clean the obsolete packages, and provide links to files, which should speed up the process for you.

    The building platform is Ubuntu 8.04 i586/x64 (I am on x64), which is up to date as of writing this post. I tried to put all Java-related files to /opt/java; by just changing the directories (/opt/java and /home/operaqa), you should have no problems compiling.

    1. First, we need the following packages:

      • build-essential
      • ant
      • gawk
      • m4
      • libasound2-dev
      • libcupsys2-dev
      • sun-java6-jdk
      • libxtst-dev
      • libxi-dev
      • x11proto-print-dev
      • libxaw7-dev
      • libxp-dev
      • libfreetype6-dev
      • mercurial
      To get them, use this command:
      > sudo apt-get install build-essential ant gawk m4 libasound2-dev libcupsys2-dev sun-java6-jdk libxtst-dev libxi-dev x11proto-print-dev libxaw7-dev libxp-dev libfreetype6-dev mercurial


    2. The jdk repository needs the forest extension for mercurial; since we have mercurial now, we simply need to get the extension:
      If you are on a proxied connection, first set it as follows:
      > export http_poxy=your proxy
      > hg clone http://hg.akoha.org/hgforest

    3. Next, set the forest configuration variable to the path of forest.py in extensions section of ~/.hgrc file to enable forest extension:
      forest=/home/operaqa/hgforest/forest.py


    4. Now, we can fclone the jdk7 nio2 mercurial repository:
      > hg fclone http://hg.openjdk.java.net/nio/nio jdk7

    5. Download the binary plugs JAR and run it to create the openjdk-binary-plugs directory.

    6. Then, download findbugs and extract it.

    7. Note that gcc will fail on default Ubuntu installation. To fix this failure, go to jdk7/hotspot/make/linux/makefiles
      The Alibi movie full
      and execute the following command to edit the makefile:
      > echo "CFLAGS += -Wno-write-strings" >> gcc.make

    8. You also need to switch to bash or to delete the /bin/sh and create a symbolic link as follows:
      > sudo rm sh
      > sudo ln -s bash sh

    9. Next, set the following environment variables:
      > export ALT_BOOTDIR=/usr/lib/jvm/java-6-sun-1.6.0.06 - where JDK 6 is installed
      > export ALT_BINARY_PLUGS_PATH=/opt/java/openjdk-binary-plugs - wherever binary plugs is installed
      > export FINDBUGS_HOME=/opt/java/findbugs-1.3.4 - wherever findBugs is installed
      > export LANG=C

    10. Then, make jdk7/jdk/make/jdk_generic_profile.sh executable and run it:
      > chmod +x jdk_generic_profile.sh
      > ./jdk_generic_profile.sh

    11. Go to the root folder of jdk7 and enter the following command:
      > make sanity

    12. Incendiary buy
    13. If the sanity check passes (it should), enter as follows:
      Afro Samurai: Resurrection buy > make

      Note: This is likely going to take some time, depending on your machine—a good excuse to go grab a cup of coffee.

    14. The resulting binaries will be in build directory build/linux-amd64. You can now copy j2sdk-image to /opt/java/jdk7 and start using it.

  • 153 Comments
  • Filed under: Opera
  • Stress testing tools for MyOpera


    Here at MyOpera we are currently researching on some stress testing

    applications. Basically, we want to be able to:

    • evaluate the impact of performance-related code changes simulating real production load
    • have a “cache warm up” procedure

    Tools of the trade

    There are many stress testing applications

    out there. We are still looking for alternatives, but so far these seems roughly what we need:

    • httperf - a simple HTTP threaded performance measuring application written by HP research labs
    • siege - multithreaded stress testing load generator, flexible and simple to use
    • jmeter - a Java desktop application that can visually define workload for stress testing, lots of possibilities. Can also analyze web server logs and replicate production load. IMHO, the interface sucks badly.

    Alive buy

    There’s also another common tool for database-only Alligator release stress testing, super-smack. Probably we will use this for db queries optimization and benchmarking.

    Progress so far…

    Siege has been the simplest and quickest to set up and use. We already built some custom workload profiles for MyOpera, to test cache contention with production-like load and to warm up our cache/backend servers after application upgrades. It could also be used as a simple functional test tool, for instance to verify that a list of urls are working correctly. But we already have that, and Jmeter is much better for that purpose.

    BTW, if there’s anyone with JMeter experience, please speak up! I’d love to hear from you… :-)

  • 177 Comments
  • Filed under: Opera
  • Care for a stretched or cropped image anyone?


    We made a server upgrade yesterday. The much requested “zoom image”
    for downloads is finally here! There is quite a bit of work behind
    this update, but the list of user visible changes isn’t that big as
    can been seen in the changelog:

    • Added “zoom image” option to image download page. It let’s you
      stretch or crop an image to fit the size of your screen before
      downloading it. (Similar to the functionality in Opera Mini 3.)

    • Fixed several problems with clicking on links and

    Land of Plenty buy I’m Not There trailer

    Blonde Ambition trailer

  • 286 Comments
  • Filed under: Opera

  • For Your Consideration full

    We were recently sent our special Waterproof Ninja suits from the mothership (read - Oslo) as Christmas gifts :D. So we vow to continue into the year 2008 with our age-old mission, to make the Web a better, safer and happier place to be - to be responsible netizens and responsible developers. Well, after putting on my Ninja suit, I feel an innate urge to get myself some Ninjaken and start my search for the “destroyers of the web”. Maybe that’s getting a little too aggressive though ;), but I’m still going to be on the lookout for those website that don’t do justice to the philosophy of the World Wide Web.Sugar ipod

    Shut Up and Sing aka Wedding Weekend trailer

    Rosemary’s Baby hd

  • 356 Comments
  • Filed under: Opera

  • Today we're releasing many new things :)

    - Opera Mobile for Windows Mobile v9.5 beta2 (w/widget support)
    - Opera Mobile for Symbian UIQ v9.5 beta (w/widget support)
    - An updated Opera Widgets SDK
    - A developer version of Opera Widgets for Symbian Series60 (only available in the Widget SDK)
    - An updated widgets.opera.com with several mobile-optimized widgets
    Kiss the Girls dvd
    The Windows Mobile and Symbian UIQ builds are available from the Opera Mobile download page
    White Squall movie
    .

    A Good Man Is Hard to Find dvdrip This release focuses on x-platform and x-device widgets, and we're also kicking off an X-Widget challenge for those who eat JavaScript, CSS and HTML for breakfast.

    The major new feature in Windows Mobile is the Widget Manager, but we have also added a Zoom slider and done some user interface and usability improvements in addition to many under-the-hood fixes in the browser core.

    The Symbian UIQ browser is our latest and greatest UIQ build. It can only be installed on SonyEricsson P1, W960, G700 and G900.

    Many of you have asked for a Symbian Series60 browser, and today we're releasing a Widget Manager which is one of our milestones towards a new full Series60 browser which will be based on the latest browser core. The S60 widget manager is a developer version packaged together with the Opera Widgets SDK.

    As usual, please look at the list of Known Issues on the download page before reporting bugs in the Windows Mobile or UIQ forums.
  • 252 Comments
  • Filed under: Opera
  • Testing My Opera

    .!.

    Here at Opera, we make more things than the desktop browser. Apart from the browser for all the other platforms and Opera Mini, we make some internal systems, some server-side support for the browser, and some public sites. Probably the most well known, non-browser Opera product is My Opera (yes, this very site!). Being such an important product, it's in the hands of very smart people (and me), and it goes through extensive automated testing to catch as many problems as possible, as early as possible.

    The automated testing for My Opera is based on three things:

    1. A functional test suite.
    2. A unit test suite.
      Beneath Still Waters movie full
    3. Our beloved continuous integration server, that executes the test suite at every commit and shows the results to the whole team.


    The functional test suite is built with Test::WWW::Mechanize Girl Happy movie download and uses special My Opera testing installations, each one connected to its own private database. That way, we can recreate the database before each test and ensure a stable and reliable environment for the test execution. This is currently the biggest and most mature one, and it has helped a lot in avoiding regressions when refactoring code and fixing bugs.

    The unit test suite is a standard Perl test suite that covers the most important modules of My Opera. Again, we use private databases for the tests that do need them, so we ensure a reliable testing environment.

    Last, but not least, we have everything hooked up in continuous integration so we have testrun information for every commit. When any test suite catches errors, we are automatically notified, and we can track which changes produced which errors.

    Bully divx


    All in all, we are quite happy with the automated tests for My Opera, as they give us freedom to work with the code without fear of breaking things without noticing. There is, of course a lot of room for improvement, and we are always tweaking and enhancing it.
  • 105 Comments
  • Filed under: Opera
  • Techkriti at IIT-Kanpur


    Last week, Navjot, Vivek and I went to Kanpur to attend Techkriti, the technical festival organized by the Indian Institute of Technology-Kanpur. We went there as sponsors of an online treasure hunt called ‘Tesseract’, which was organized there.

    When we set up our stall in the campus, we were greeted by sunshine and a cool breeze. We ended up getting a huge avalanche of poeple lining up to know more about Opera, our products and of course, our super-cool t-shirts. Students from all over the country had come to the event, and we had a nice time interacting with them. Some of them were new to Opera, and some were die-hard opera fans loyal to us for many years. Some even told us that they will go back to their college, and spread the word about Opera. Way to go! :up:

    We also attended a talk given by Kevin Warwick, and later on strolled into a FOSS camp being held nearby. The guys over there were a pretty talented and enthusiastic bunch. Later on we were invited to judge the software programming contest happening nearby. Some of the stuff that we saw at the contest was pretty cool and it was encouraging to see young students trying out innovative solutions to real world problems.

    Down below are the pics taken while we were there.









    Gifted Hands: The Ben Carson Story movie download Fifty Pills download





  • 142 Comments
  • Filed under: Opera
  • Continuous Integration: Team Testing


    As you know, Continuous Integration is a set of simple practices that reduces software integration time and problems. It also improves general software quality with little overhead. Just having a testrun per every commit is quite handy for two reasons: early regression finding and easier debugging.

    One of the most important virtues of CI is giving the tests a "social dimension". Martin Fowler's "Everyone can see what's happening" is actually one of the most powerful, yet subtle virtues of Continuous Integration. Letting everyone know about the status of the tests is not about assigning blame when something fails, it's about making the tests part of the development process Lost and Delirious on dvd Choke movies
    The Secret of NIMH divx
    . We wholeheartedly agree with the vision of automated tests that are incorporated upstream into the development process and run on a continuous basis
    First Sunday
    .

    What happens when you make the tests part of the process? Several interesting things:

    • The team focuses on avoiding and fixing regressions due to clear and quick feedback - less "getting out of the door quickly" with more stability.
    • The team has confidence in the code - more refactoring or rewriting of suboptimal modules.
    • Certain processes like deployment are streamlined - easier, clearer and more reliable.

      The Incredible Melting Man dvd



    We feel that these benefits make Continuous Integration a natural extension to automated tests for development teams, a bit like "the version control system of tests". Here at Opera we are using Continuous Integration for selected server-side projects, notably the Opera Link server and My Opera . It has had a huge and positive impact on both of these projects, providing a crucial role when refactoring and improving code.

    If you are not using Continuous Integration in your project yet, you should start now!
  • 139 Comments
  • Filed under: Opera
  • The day finally arrives


    The first beta of Opera Mobile 9.5 is finally available for you to download. This will be the first in a series of betas for Opera Mobile 9.5. It is designed for Windows Mobile 5 and 6 phones with touchscreens.

    The market has undergone a series of dramatic changes since our last major Opera Mobile upgrade. Apple entered the mobile browser market with Safari on the iPhone. Mozilla announced it will release a version of Firefox Mobile later this year and many other players are releasing browsers targeted for smartphones.

    We have some fierce competition, but we are determined to keep Opera Mobile as the standard in Web browsing on smartphones. To achieve this, we need your help more than ever. Please file bugs and give us feedback in the forums and even feature requests. Our development team is active on the My Opera forums and will answer questions and do their best to help you out as you put the beta through its paces.

    As I write this, I’ve just left for a much-needed vacation. I expect a long list of bugs and feature-requests to be waiting for me when I get back. After I return, we’ll get back to our regular programming with updates on the roadmap and subsequent betas.

    Happy bug-hunting!


    Edit: Head over to dev.opera.com to read more about the browser from a developer angle or to find out how to use Dragonfly with this beta.

    Edit2: This beta will only work on touchscreen-based windows mobile devices. We are planning to add compatibility for non-touchscreen phones in the future.

    Edit3: Main testing has been done on English HTC devices (Touch Diamond, Touch Pro, Touch, Touch Dual, Touch Cruise, TyTN and Wizard) and Samsung i900.

    The Ring Two buy

    Just Business the movie Lost and Delirious ipodStarman release

    After the Sunset video

  • 190 Comments
  • Filed under: Opera
  • Categories