Opera 10.5 Pre-Alpha Internal Release

I’ve just given a leaked release of Opera 10.5 Pre-Alpha a test drive and I must say that I’m very impressed with the changes I’ve noticed thus far!

I look forward to testing the Official Opera 10.5 Pre-Alpha release on Tuesday, December 22. However, until then I’ll be digging through this leaked version.

Note that Opera has officially warned against installing such leaked builds, stating that the official release will be “much better and you don’t risk getting nasty trojans on you pc.” πŸ˜‰

Here are some screenshots I’ve taken. I don’t cover everything, but just enough to give you a good idea of what we should be expecting. I also won’t be detailing all of these pictures, but a picture is worth a thousand words right? Inspect them and see what you can find!

I did notice a lot of skin changes and a couple of bugs here and there dealing with the skin, but it’s overall very much improved. The internal “opera:*” pages also seem to be using a different style than previous builds, but then again they may have dropped using the Opera logo in the top of the pages.

Notice the border-radius support!

Try this build at your own risk!
http://rapidshare.com/files/323481638/Opera_1050_20192_in.msi
http://depositfiles.com/files/e01z2q5qp

Opera Google Wave Skin

I’ve been using a new theme lately for Ubuntu that is based on the appearance of Google Wave. One thing that I hate about Opera in Linux is that it doesn’t automatically inherit the current themes appearance. The only way to make Opera match your current theme is to download a skin for that theme or to make one yourself.

I’ve decided to modify the standard skin by updating the background behind the tabs and changing the scrollbar images to match the rest of my current themes scrollbars.

There are still several more tweaks to make, but for now I’m very satisfied with the integrating feel that these small changes have made.

opera-google-wave-skin

I may upload this Opera skin later, but not while I’m still tweaking it. In the meantime, if you want this skin then just contact me and I’ll send you what I’ve made so far.

Opera 10.10+ Wishlist

Now that Opera 10.10 Beta 1 is out, the Desktop Team has calmed down a bit with fresh snapshot releases. I take this as a sign that Opera 10.10 Final is very near. On that note, I decided to throw together a list of changes I would like to see greeting us on the road to the next big release.

There is no particular order to the following wishlist items, but they are a bit rambled on…

Wishlist

  • Download Opera updates via BitTorrent technology that is already present in Opera to take the bulk of the stress off of servers and mirrors for those already running Opera.
  • Allow Opera to download efficient updates. Instead of downloading the entire installer each time, why can’t Opera download the changes and apply them to the present installation (updating the version of course)? This could dramatically improve the length of time it takes to update Opera, especially on slow connections.
  • Remove the Unite Applications that are installed by default with Opera and download them when they are needed. I extracted the classic installer for Opera 10.10 Beta only to find that the Unite Applications that are installed by default consume approximately 2.12mb, thus dramatically increasing the installer download size! Why couldn’t these be installed via the Internet when the user decides to activate Opera Unite?
  • [done] Install Opera with an Operating System focused skin by default. Opera for Mac is already installed with a tweaked default skin, but what about the rest of us? The current default skin is a major improvement over skins in the past, but on Windows 7 it really doesn’t fit the feel. This is one reason that a lot of people stray away from Opera.
  • Update skins, widgets, unite applications, userjs, usercss, etc. Why has a proper updating system not been put into place to alert you of a skin update? Or to alert you that your favorite widget just got updated and you’re using one that’s a year old? It seems that this may happen with Opera Unite eventually, but what about the content that we’ve used loyally for years?
  • A real User Javascript manager solution. We all know that Firefox has a wealth of add-ons available and one of those just happens to be the equivalent of what I’m talking about. Why has Opera supported User Javascript for so long, yet left the benefits hidden to most users by not supplying an easy solution? There is currently a very handy UserJS manager that has been implemented by an Opera user via an Opera Unite Application.
  • Better memory usage and garbage collecting. If you’ve ever opened several tabs (we’ll say 50+) and worked your way through most while closing them as you go, then you know that Opera’s memory footprint can grow madly. One thing you might have assumed, but not been aware of is that when you close these tabs and empty the trash…there is no release of all of that memory that Opera just claimed. While many loyal Opera fans will tell you that Opera gives this memory back if it’s “really” needed, it shouldn’t just hang onto it in the first place. We all want an optimized application, shouldn’t that be try for memory usage as well?
  • Opera Dragonfly updates! I remember when Opera Dragonfly updates were fairly often and sometimes significant changes would appear even between snapshot updates! Opera Dragonfly has slipped out of the spotlight due to limitations on updates that depend on Core updates in Opera itself. With or without these limitations, I’m sure we would all like to see how Dragonfly is improving. One improvement I’d like to see (that has already been mentioned by @hicksdesign) is UI integration with the rest of Opera and the current skin. Other than that, editing of style sheets in entirety on the fly is one of my most craved updates. A ruler or grid would be nice as well as not having to reload the page before editing it. Also, I’d like to have Opera Dragonfly open on one page while not seeing it on every page that I switch to. πŸ˜‰
  • UserJS on HTTPS prompts at startup are driving me insane! Why Opera hasn’t implemented an option to ignore this prompt is beyond me. It could easily be configurable via opera:config, but continues to annoy the users who are well aware of what they are doing in the first place.
  • More options synchronized via Opera Link. Also, why can we finally have a completed web front-end to Opera Link? I’m tired of not having passwords stored in the Wand for one computer that I know are saved on another. Shouldn’t all of these settings be synchronized by now? Opera Link (it seems like) was released ages ago and is still far from feature complete!
  • General polishing on common bugs that are persistent in Opera such as redraw bugs, Google Gears and other Google products that just seems to hate working with Opera (Google Wave).
  • [done] A faster JavaScript engine! Frankly, I’m tired of the whole battle over which browser is faster strictly based on Javascript, but the differences at this point in the game are a little ridiculous. Opera apparently has a full team working on the next javascript engine for Opera, named Carakan, and I think we would all welcome it into the next Opera release with arms wide open.
  • One thing about the BitTorrent dialog bugs me. I usually select to use my default torrent application rather than Opera which happens to be uTorrent, but the “Open” and “Save” buttons can be a bit confusing. Why would these not be relabeled to “Start” and “Save“? The Opera download manager already uses the Resume and Restart terminology so it would make more sense to me if it were consistent. If you think about it as follows you might find the confusion: So, I want to save this torrent to my computer right? Or do I want to Open it? What’s the difference? Oh, so apparently save only saves some weird “.torrent” file to my computer. I guess I needed to click open. Shouldn’t they have named it start…or something more logical? πŸ˜›
  • During Fullscreen mode I often wish I had an easy access bar that I could hover that would drop down the tabs and address bar for tabs open in the current windows, similar to how Firefox manages tabs in Fullscreen mode. I don’t understand why Opera makes this task so out-of-the-way.
  • [done] Windows 7 Jump Lists featuring frequently opened tabs as well as currently open tabs and maybe the last x number of closed tabs.
  • [done] Windows 7 Aero and tabs pulled up into the title bar for more space efficiency.
  • Source View updates. Any update to the source viewer would be welcome. This feature of Opera has been abandoned for far too long (…remind you of Duke Nukem Forever anyone?).
  • [done] I think Opera should remove the Rewind and Fastforward navigation buttons (as well as the home button) by default (for fresh installations). These buttons tend to simply add clutter to the navigation bar for new users who will most likely never use them intentionally. I’ve even started removing them first thing for all instances that I install for friends and family just so that Opera has a simple default feel. Simplicity is one reason that so many people are flocking to Google Chrome.

Have other wishlist items that I forgot? Leave ’em in the comments!

New: Netflix Watch Instantly Timer

I’ve just posted a User Javascript file that allows you to get a quick glance at the total time that you’ve spent watching Netflix Watch Instantly programs.

netflix-watch-instantly-with-userjs

So far I haven’t had enough time to make the script Greasemonkey compatible, but it should be shortly. For now, it works great with Opera.

Thanks to @fearphage for helping me get this sorted out with Greasemonkey as well!

Head on over and grab the script so you can keep tabs on how much time you spend watching tv…online…on netflix. πŸ˜‰

Why Browser Sniffing is a Bad Idea

For many web developers, browser sniffing has become almost routine. Have you ever noticed that short list of “supported web browsers”?

While browser sniffing may seem like a good idea at first, you may be setting yourself up for problems later.

The biggest problem with browser sniffing is that it is usually relied on far too heavily to even consider removing later. The inner workings of a site can be based (unknowingly sometimes) around working specifically for specified web browsers and nothing more.

One poor use of browser sniffing that I came across today was for EyeWearSelect.com and it just so happens to be an easy fix.

On one of the EyeWearSelect pages, they show a thumbnail preview of a pair of glasses. Below the image is a link entitled “Click to Enlarge”, which uses some javascript to show you a larger picture in a pop-up window. Here’s how they begin the pop-up script..

if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}

Basically, the script says…true or false…this is Netscape? Also, true or false…this is Microsoft (Internet Explorer)? ..but what if you’re not using Netscape or Internet Explorer? What if you’re using Opera? or Konqueror?

If you’re using a browser that doesn’t match Netscape or Internet Explorer, then the future checks for isNN and isIE will never match and your browser will be “incompatible” with the scripts. In this case, the incompatibility is that the author never made it possible for those that are compatible.

A simple fix for this would be to change that bit of code to the following, which would basically check for Internet Explorer and then treat all others differently..

if (parseInt(navigator.appVersion.charAt(0))>=4){
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
var isNN=!isIE;}

They won’t always be this easy for developers to correct, but this script could actually be cleaned up much more than just that.

In most cases, browser sniffing isn’t needed. The more efficient method to follow is capability testing.

If your code requires a web browser with capabilities that others (or not all web browsers) have, then you can use browser sniffing which is a form of hard coding the compatible web browsers…or you can test the browser’s capabilities and see if the javascript that you need to use will be supported.

By using the second method, you make your script much friendlier to the future of both the web and it’s browsers. You will also save yourself some work by not having to update the script each time you want to support another browser that would already be capable of using your script if it weren’t blocked in the first place. πŸ˜‰

If you run compatibility tests and find that a certain feature will not be available, that’s the time to announce that the user should update their browser or use a different one all together.

Of all of the times that I’ve seen browser sniffing, only a couple have every been properly used. One of those was a browser sniffer that would display instructions and images explaining how to download and save a file to your computer. The images were of course specific to the browser that I was using for a more useful set of instructions.

If you should happen to come across a web site that suggests that your browser is not compatible, fire off an email and let them know that you would appreciate more accurate scripting and detection for your web browser let them know that you would appreciate more accurate scripting!

Opera Wishlist v2.0

It’s been a while since I’ve written my wishlist for Opera. Now that the top five features I’ve requested have been implemented in Opera 10 (to be released), I’ve got to start putting together some items for the next major update!

In my previous top five wishlist, I was hoping for features like Developer Tools, Auto-Update, more Widget Capabilities, In-line Spell Check and, last but not least, an Improved Interface.

I’ve updated my previous wishlist with links to reference when and how these changes took place, so if you want to look further into that just checkout the first wishlist (linked above).

For my new wishlist, I think the them follows the general theme of the previous one..or at least 3/5 of them. I hoping to see Opera become more noob friendly. In it’s current state, it’s very usable for anyone, however, they do tend to have a bit too much of an engineering took and a little skittish on the designer and user interface front.

Let’s dive right in..

  1. Menu Systems. The menus for toolbars and even some main menu bar sub-menus are designed too complex and confusing. If you want one of your less tech. savvy friends to use Opera, don’t show them (most) of the menus! An example of simplifying the menu system would be to simply move the “Customize -> Remove From Toolbar” to the main menu or root level and rename it to “Delete” so that deleting buttons and other toolbar elements is written in clear English.

    This menu item was moved to a sub-menu to reduce accidental use, however, it is now placed far out of reach and over complicates such a simple task. The naming or wording of this menu item is also overly complex. Firefox uses a simple “Delete” menu item for the same task and it makes the whole thing seem so much simpler.

    This isn’t the only menu item or menu that is in desperate need of simplifying. I’d like to see each and every menu analysed and modified to make wording as simple as possible and follow general layout structures that all other competitors are using.

  2. Completed Opera Link. Depending on how heavily you use Opera, you may know by now that they have a feature that allows you to synchronize some of your settings between different computers by signing into your (free) My Opera account. This way you can have the same settings for Opera on two or more different computers such as the same Bookmarks or Speed Dial entries.

    I would like to see Opera finally complete this feature to support all of the other settings that you hate to update all of the time, such as Blocked Content, Mail Accounts or News Feeds, Widgets, IRC, etc. Currently, the only synchronized settings are Bookmarks, Speed Dial, Personal Bar, Notes, Typed History and Searches.

  3. [done] <video> and <audio>. Opera already has some support for HTML5, however, the very cool parts are still lacking. Firefox 3.5 just released yesterday with support for the new <video> tag that will hopefully make the use of flash obsolete. An experimental build of Opera 10 with <video> support was released from Opera Labs a while back, however, they appear to have been slacking in this particular developmental area and Opera 10 is (as far as I know) planned to be released with the lack of support for the <video> and <audio> tags.

    This is a terrible move in my opinion. However, Firefox 3.0 was not released with these capabilities and only extended to support them later in Firefox 3.5, so it just might work out if they are added later.

  4. [done] CSS3 Border-Radius Support. You can notice the lack of support for this CSS gem easily from kyleabaker.com. If you compare this page from Opera and Firefox 3+ you will notice that Opera doesn’t render the rounded top corners of the tabs in the header like Firefox does.

    This is a simple CSS3 feature, but it’s also one of the most noticeably lacking CSS3 features in Opera to date. It’s CSS3 candy like this that many developers are anxious to start using and it’s a shame that Opera hasn’t even offered a browser specific border-radius attribute as Webkit and Firefox have done.

  5. Bug Squashing Session. The last, but probably most important wishlist item is that Opera takes a break from implementing new features and puts some extreme focus into squashing every last bug in the database. While I know that this isn’t feasible, I do believe that a great deal of priority could be placed on this and then some of the lower priority bugs could finally get some attention.

    It seems that Opera is continuously releasing new features one after another. While this is great in one respect, it is also very troublesome in another. We all want to see breaking edge technology and sweet new features, right? But, at what cost are we getting these sweet new features?

    When Opera’s built-in source viewer was released, I remember finding it to be one of the most useful features in the browser for web development. I could easily make changes to a page and view them immediately without any need for uploading and refreshing the page!

    Now, one of the most limiting features of this source viewer that I’ve found is the lack of line numbers. Something this simple was filled as a bug some 2 years ago (plus or minus) and has yet to be fixed. This is obviously a low priority bug, but a bug squashing session that eliminated the nastiest bugs, allowing time to working on these easier bugs would be great!

[done] One bonus wishlist request is for Opera to hurry up and release the next ECMAscript/Javascript engine called Carakan as soon as possible so Opera shows up better in all of these (unrealistic) benchmarking tests. It would be great if Opera 10 were released with all of these wishlist items, but it’s generally not a good idea to rush the release of anything. So it looks like I’ll have to patiently wait for these requests to make their way into my favorite browser.

In case you were wondering, the current version of the ECMAscript/Javascript engine in Opera is code named Futhark and was released with Opera 9.5. Prior to that, the engine named Linear B was used Opera 7.x to 9.2x. Even before that, Linear A was used from Opera 4.x to 6.x. There was no name given to the engine used (if any) prior to that. Comparing them all, I would have to say that Carakan definitely sounds the most impressive. If wish, you can learn more about Opera’s history.

If you have any ideas for an Opera wishlist, post them in the comments or post a link to your blog article about them!

Linux: Two Scripts to Help Debug Opera

Are you an Opera user and a Linux user at the same time? If so, then you could genuinely help Opera by sending in bug reports and specifically crash reports.

I’ve put a could of tools together for you in the form of scripts. If the idea of scripts scares you, then don’t worry. I’ve explained how to use them in the INSTALL.txt file that is in the zip archives for each tool.

They are really easy to use and can make your life much easier!

If you find that these scripts could be improved and/or extended, feel free to make changes yourself and/or pass them my way so we can all benefit from them!

Opera: Kill Freeze – The first tool is a script that will stop Opera when it’s frozen and, if you are using Opera 10+, prompt you with a crash log report so you can explain how it happened.

Opera: Crash Report Details – This tool will generate a text file on your desktop with some technical specifics that you should copy and paste along with your bug report. This information can greatly help with finding a bug and reproducing it so that it can be eliminated.

Do you have or know of similar tools? Let me know about them and post them in the comments!

Crash logging Opera with Inspector IIXII for Linux, Part 2

Following up with an update to my original post, I’ve brought an easier way for you to make use of Inspector every single time you open Opera.

In a nutshell, I’ve written a script that launches Opera and then attaches Inspector to the process id. There is a setup script that will make some necessary changes and create a shortcut on your Desktop for you that opens Opera and Inspector for you easily!

If you want to find out more about the Opera + Inspector Launcher or download it for yourself just head over to the info/download page.

If you have any questions and/or suggestions, just leave them in the comments here or on the Launcher page.

Ubuntu New Wave skin for Opera

I’ve recently been flip flopping between two themes that are offered in Ubuntu 9.04 and I like to have everything integrate nicely.

So, I spent a little time putting this skin together, or modifying it rather, so that it helps give Opera a more integrated feel into the Ubuntu New Wave environment without sacrificing the graphics and layout that Opera has by default.

You can find this skin in the Opera section along with a few others that I’ve uploaded or simply take the direct link to the skin page.

You can also find out more details about the skin there as well as a complete change-log with previous versions of the skin.

opera-standard-new-wave-03

Click the images below to see a larger version.

opera-standard-new-wave-02

opera-standard-new-wave-01

How-To: Opera Repository for Debian-based Linux

If you’ve ever used Opera in Linux, then you most likely installed it by manually downloading the install file.

Now I’m going to show you how to add the Opera repository so that it automatically updates when you check for normal updates in Linux.

There are some directions listed at deb.opera.com, but they don’t make it very clear in my opinion for Ubuntu.

  1. Open: System -> Β Administration -> Software Sources -> Third-Party Software
    software-sources-third-party-software

  2. Click Add, copy and paste the following
    deb http://deb.opera.com/opera/ sid non-free

    This can be confusing if you’re using Ubuntu, however, I’m using Ubuntu Jaunty and the above source worked great for me.

    *If you want to use the latest stable version of Opera, then the above line will be just fine. However, if you prefer to use Betas or Snapshots then you can replace the “/opera/” with “/opera-beta/” and “/opera-snapshot/” respectively.

    *If you’re using Debian or maybe even an older version of Ubuntu then you may need to use a different release name than “sid” in the source above, so you can use any of the following: potato, woody, sarge, etch, lenny, sid

  3. After adding the correct repository, you will need to add the repository key. You can do that by running the following line in a terminal window:

    Debian users:
    wget -O – http://deb.opera.com/archive.key | apt-key add –

    Ubuntu users:
    sudo wget -O – http://deb.opera.com/archive.key | sudo apt-key add –

  4. Now, if you have any version(s) of Opera already installed, you will likely need to remove it:
    sudo apt-get remove opera

  5. Now you need to update apt before Opera will be available via the newly added repository:
    sudo apt-get update

  6. All that is left is to install Opera again:
    sudo apt-get install opera

You may be wondering why you need to remove Opera only to install it again. This is because, the first time that it was installed, it was installed as a “local or obsolete” package and is not “maintained” by any package manager or update application. After you update apt and install Opera, it is maintained with the rest of the applications that you install and update directly through a package manager.

Opera 10: Remove ‘Click to activate’ on flash in Linux!

I’ve been working with d.i.z. as he’s found a way to hex edit Opera binaries to disable the “Click to activate” feature that Opera has implemented on flash items. I won’t get into the details of why they implemented this myself, but I’ll just quote from the post that d.i.z. made about this topic.

Some background:
Eolas (E) is a company that patented a certain way of interacting with embedded objects on web pages. This is why in Opera, you sometimes have to click (for example) a flash player to “activate” it before it can actually be controlled. That sucks.

Opera is the only browser that I know of, that currently have this annoying system in place. IE had it, but it reached to a pocket full of money to buy a license from E.

Other (open source) browsers don’t implement this mechanism because E was kind enough to commit not to pursue legal actions against open source browsers that are violating its patent. Why? I guess because it wouldn’t really be able to enforce that anyway. Builds without this future would pop up everywhere in no-time.

Now that you understand a little bit about what is going on and the feature that you can remove, I have to tell you the bad news. So far we’ve only had time to patch Windows builds and most Intel Linux and Linux x86_64 builds.

If you’re looking for the Windows patch files then head on over to d.i.z.’s blog post and grab the download there as I will not be maintaining that one.

If you’re looking for the Linux patches, then you’re at the right spot!

I’ve managed to write three script files that will do everything you want! You will only need to use one of them if you only want to patch your version. The files are as follows:

  1. Patch script
    This script obviously patches your Opera file to remove the “Click to activate” feature. You only need to run this one if you just want to remove that and forget about it. Running it more than once will not affect the file as the hex search will no longer match after being patched, so that is why it will fail if the file has already been patched.

    To use this script, run the following commands in the terminal:

    chmod +x ./click-to-activate-removal-opera-10.sh
    sudo ./click-to-activate-removal-opera-10.sh
  2. Switch between patched Opera and unpatched Opera script
    This file will, as it says, rename your patched file and unpatched file accordingly so that each time you run it you will be able to alternate back and forth between patched and unpatched versions. This will no longer work if you remove your unpatched version which is created and saved originally by the Patch script above.

    To use this script, run the following commands in the terminal:

    chmod +x ./click-to-activate-removal-opera-10-swap-patched-unpatched.sh
    sudo ./click-to-activate-removal-opera-10-swap-patched-unpatched.sh
  3. Patch removal script
    This script is a clean-up tool. If you decide for some reason that you don’t want the patch anymore and want to remove it completely, then run this script. It will delete the patched file, so switching between patched and unpatched will no longer be possible until you reapply the Patch script.

    To use this script, run the following commands in the terminal:

    chmod +x ./click-to-activate-removal-opera-10-unpatcher.sh
    sudo ./click-to-activate-removal-opera-10-unpatcher.sh

Please make sure that you have completely closed Opera before running any of these three scripts.

After using any of the above scripts, you are free to delete the script. You can always grab it again here if you wish, just make sure to bookmark this page!

The example usage commands that I posted are correct for Ubuntu/Debian. I’m not sure how they compare across distributions, but just make sure to make the script executable and then run the script with root privileges.

I’m sure you noticed that the file names are very long. You can feel free to rename them to anything you want to. They run independently of the file name. I just named them very descriptively to help myself keep them sorted and maintainable. πŸ˜‰

As usual, if you wish to use any of these scripts then you understand that I am not responsible for any damages done to your computer (even if it explodes πŸ˜› ) and you accept the responsibility on yourself to deal with any results, good or bad.

If you experience any problems with these files then please let me know in the comments. Notice that these only work so far for Intel Linux builds and Linux x86_64 (64-bit), so don’t waste your time with other builds unless you want to help extend the scripts!

Also, please notice that currently this Patch script does not work for the Intel Linux builds that were compiled with GCC 2.95, but hopefully it will be supported soon. If you’re using a build other than this that is Intel Linux or Linux x86_64 then please let me know the version you downloaded so I can look into it!

I extend a special thanks to d.i.z. for making this hex edit hack possible and helping me form these scripts in the first place!

Enjoy!