Skip navigation.

Now this is forever

Opera memory usage on old computers (Was: 10.10 with Unite thread)

Feel free to continue off topic stuff about memory here.

Originally posted by patkoscsaba:

Originally posted by zikzakatak:

opera use 300 mb with 12 tabs open but when i close all tabs and just leave 1 tab open (speed dial) opera keeps using 300 mb for hours.

How much memory your system has? Opera keeps the memory unreleased after closing tabs in case you need it again, but if you are running out of memory and another application asks for RAM, Opera will release the memory.

But, in this case, does it release things from memory by deleting actual entries from all of Opera's memory caches, or, does it just release things from physical memory and swap it all to disk so that the other program(s) you're trying to use can make use of the physical memory?

If it's the latter, that can be a very bad thing for performance on older computers as then, each time you switch back to Opera, it has to pull back in all the stuff from the slow disk. With continued use of Opera (hours, days), if it doesn't truly nuke memory and just swaps everything out of the way when necessary, all that stuff's going to build up in the swap and be way larger than the physical memory so that Opera will only be able to pull in little pieces at a time (from the very slow disk), which will cause Opera to run like crap every time you switch a tab or do anything. And, since Opera's busy swapping things in and out all the time, other applications suffer. Then, you'll have to restart Opera to really get things back to normal. But, since all that Opera mem is swapped out, when you close Opera, it's going to take ages for Opera to pull the memory back in (from the really slow disk) and free it first. In these cases, it might take 30 seconds to 40 minutes to shut down Opera if you don't manually kill it first. Then, you get a really fast computer with a fast hard drive and lots of memory so that you don't run into the swapping issue a lot, but if you do, it's not as bad because of the faster hard drive.

If the former, that can be great for older computers. (Hopefully, the latter doesn't ring a bell for any and reeks of fantasy.)

If you don't want to let Opera use as much RAM as it wishes or thinks it's appropriate for your system, set the "Memory Cache" in the options to something smaller

This may help some, but if Opera doesn't clear things when one expects (like closing a tab for many), when you go to use another program, there won't be as much free physical memory as you expect and you'll trigger more swapping than you wanted and could have avoided.

The end result is independent of how much memory you have. Having more memory just delays the problem.

Now, if you close all tabs in Opera and clear all caches and Opera still isn't freeing up the memory you expect, that's either a bug, or Opera doesn't provide the control you desire.

Personally, I think Chrome has some PROs in this area. Sure, you can't open a lot of pages at once or you'll use a lot of memory. But, you can nuke memory completely by closing a tab. This gives the user more power to control things the way they want. It'd be cool if Opera could at least simulate that as an option somehow. As, what's the point in caching and holding on to everything if it just gets swapped to an extra slow old, disk all the time?

But, it's understandable that applications can't always cater to lower memory situations on older computers with slow disks.

Restart your applications often!

Mailto URI Composer and Validator

To complement my little mailto URI spec, I made a little mailto URI composer for composing basic mailto URIs with to, subject, body, cc and bcc hvalues.

I also, made a little mailto URI validator to help check mailto URIs.

The validator is strict in that:

  • No duplicate hnames are allowed.

  • Hnames must be lowercase.

  • Only characters that need to be percent-encoded can be. Percent-encoding unreserved characters is an error.

  • %HH must have 0-9A-F. No invalid %HH are allowed and no lowercase versions are allowed.

  • Unsafe %HH like %00 etc. are not allowed.

  • %HH sequences that make up a utf-8 sequence must be decodable and reencodable by decodeURIComponent and encodeURIComponent.

  • Newlines must be represented by %0D%0A. You can't just have %0D or %0A.

  • %0D%0A is not allowed in to, cc, bcc and subject hvalues. It's O.K. in other hvalues.

  • %40(@) is required at least once in to, cc and bcc hvalues. (The validator doesn't decode these hvalues, parse them for the addresses and validate the addresses right now though.)

  • Cannot have invalid hname=hvalue pairs or unnecessary '&' or '?'.

  • Cannot have empty hnames or hvalues.

  • 'mailto:' must be all lowercase.

  • All reserved characters must be percent-encoded if you want them in an hname or hvalue. The unreserved character list follows ECMAScript's encodeURIComponent rules as they're more compatible with the web and http than RFC2368's relaxed rules.


In doing research on mailto URIs, I've found that authors like to use duplicate hnames. For example, you might see mailto:?body=line1&body=line2 where the author expects it to come out like the correct mailto:?body=line1%0D%0Aline2 . You might see mailto:?cc=cc1%40example.com&cc2%40example.com where the author expects it to come out like the correct mailto:?cc=cc1%40example.com%2C%20cc2%40example.com . I'm not sure who exactly started this, but this is invalid even in RFC2368, so it didn't come from there. My guess would be Thunderbird developers, but I'm not sure. This also might have come about by thinking that header folding (which is mentioned in RFC2822) applies to mailto URIs.

Basically, authors like to use duplicate hnames for no reason and duplicate hnames are bad because clients can't agree on how to handle them and how you should handle them can depend on the type of the data in the hvalue. This means that if the client has a join method for arbitrary types, it might not be a good join method for that type.

Also, authors like to mix uppercase and lowercase in hnames and even the URI prefix. This is bad because URI hnames are technically case-sensitive. But, because of what authors do, clients usually have to treat hnames and prefixes as case-insensitive.

Also, authors like to leave '+' unencoded in mailto URI hvalues. This is as expected according to RFC2368. However, in this day and age, there are more http-based webmail systems out there that support compose URIs where mailto URI hvalues end up in an http query string. And, since + is treated as a space by most http webmail clients, mailto URI authors need to percent-encode their '+' characters into %2B so they actually get treated as a '+' and not a space. As an example, this can be a problem for Gmail's compose URIs. In local mail clients, this is not a problem though as they treat + and %2B the same.

So, with that said, my little mailto URI validator tries to take care of all those author issues and only allows compatible mailto URIs.

There is one thing that the validator allows that isn't 100% compatible though. In mailto URIs, mailto:value and mailto:?to=value are equivalent. However, clients don't handle the latter as well. For example, right-clicking in Firefox and choosing to copy the email address might fail to pick up the address. I consider that a plain bug in Firefox though.

Gmail IMAP tips for Opera's built-in mail client

Edit:

Never mind the below. See the Gmail IMAP Opera Wiki page instead.

The way Gmail's IMAP implementation works and how you do operations on messages is really funky. No email client is perfectly setup to work with Gmail, which definitely makes Gmail IMAP hard to get used to.

However, now that I'm used to it and understand how it works (this is a must-read), things have been going smoothly in Opera.

With that said, here are some tips that you can follow:

Ignore all of Opera's mail access points (and "unread") except for what's under the "Mail for user@gmail.com". Seriously, just don't pay attention to things that aren't made for Gmail.

Ignore the Trash label IMAP folder. Don't use it. It's just another label folder and really isn't a special trash folder.

Keep the [Gmail] folders list expanded at all times. You'll need it open for dragging messages from other folders to them. (As an alternative to dragging, you can select messages, right-click the selection, cut, change to another folder and then right-click and paste in the message list of another folder. The cut and paste options are available under Edit in Opera's main menu bar also.)

Don't use Opera's Spam icon to mark a message as spam. Gmail handles spam itself.

All the IMAP folders that are not under [Gmail] are labels (even INBOX).

If you want to change the label associated with a message, drag it to another label folder. If the message doesn't have a label and is just in [Gmail]/All Mail, drag it to a label folder (that includes INBOX) to apply a label.

If you want to remove a label from a message, while in the label folder, just mark the message as deleted by hitting del. Then, the message will only show in your archived messages under [Gmail]/All mail.

If you want to move a message to trash (from a label or [Gmail]/All Mail), drag it to [Gmail]/Trash. Then, if you want to totally get rid of the message, while in [Gmail]/Trash, mark the message as deleted by selecting it and pressing del.

If you want to mark a message as spam, drag it to [Gmail]/Spam. If you want to reverse that, drag it somewhere else.

Now, to delete spam, you just mark messages in [Gmail]/Spam as deleted by selecting them and pressing delete. However, before even viewing the Spam folder, you should click the view button on the toolbar for another folder's message list and choose "display" and then "list only". Then, view the spam folder and delete messages etc. When you're done, just go to another folder and change the display back to "List and messages below". That way, you won't view and download bodies of spam messages. However, you don't have to delete spam messages anyway. Gmail will do that automatically after a while.

To actually clear [Gmail]/Trash, you have to select and delete all messages in it. There's no right-click -> empty.

The reason you ignore Opera's Unread view is because unread messages from folders under [Gmail] will show up in there too and make the unread view a mess.

The reason you ignore Opera's Received view is because it will contain your Spam messages. Plus dragging from any of Opera's views to an IMAP folder will copy and paste instead of cut and paste.

Once you expand the "Mail for user@gmail.com" access point, it's better to avoid clicking on "Mail for user@gmail.com" as it'll show all mail for your gmail account, which may cause you do download and view message bodies for spam. It's best to stick to viewing only specfic IMAP folders.

If you click on "Mail for user@gmail.com" and it collapses the whole access point, when you reexpand it, the [Gmail] folder view will be collapsed and you'll have to rexpand it. To avoid this, it's best to never collapse "Mail for user@gmail.com".

One exception to ignoring Opera's access points is Opera's Drafts view under "All messages". Opera will autosave drafts *locally* there. You can open them up if you need to continue where you left off. Or, if you want to place a copy on the server, drag one (or copy and paste) to the [Gmail]/Drafts folder so that you can use it in the Gmail webmail interface. Also note though that Opera's drafts might pile up after a while. If that happens and you want to get rid of them, just delete them and then empty Opera's trash view.

Now, if you have other IMAP accounts set up in Opera, you'll want to right-click in the mail panel and choose show only "insert imap account" to show only the one IMAP account you want to work with at the moment. If you show all accounts, Opera's Unread view will be littered with unread messages in folders under [Gmail] and you might actually want to use the unread view for regular imap accounts.

Ignore [Gmail]/All Mail until you actually need to go in it. Messages that are shown in label folders are going to be shown in here too and you must resist getting bugged by the duplicate entries.

Ignore duplicate entries that show up in new mail notifications. One is just from an All Mail entry.

Ignore unread counts in folders under [Gmail]. Don't let them distract you.

Ignore the unread count on the mail panel button when you have multiple accounts and you're using "show messages from account". Even if you're not showing the gmail account, unread messages in the gmail account will affect the count on the mail panel button. This doesn't make the count on the button very useful, so just ignore it.

Don't set an IMAP sent folder in Opera's preferences. When you send messages through smtp.1and1.com, they're added to [Gmail]/Sent mail automatically.

Note that when you move a message to the [Gmail]/Trash, [Gmail]/All Mail won't recognize the update until the next sync. If you can't wait, just click the All Mail folder and it will sync.

In short, Gmail is just totally different and when using any client that wasn't made specifically for it, you have to be mindful of the client's traditional IMAP UI operations and work around them. And, most of all, you just have to ignore UI parts that just don't apply to Gmail IMAP.

Edit:

There is a pretty good solution to this problem.

Unsubscribe from [Gmail] and all the mailboxes in it. Then, in the webmail interface, enable the Gmail labs Advanced IMAP Controls extension under settings -> labs.

Then, under Forwarding and POP/IMAP in the webmail interface:

Auto-Expunge:
Do not automatically expunge messages

When a message is expunged from the last visible IMAP folder:
Move the message to the Gmail Trash

Then, Gmail pretty much works like a normal imap client and works really well with Opera

Edit:

I no longer use the Gmail labs IMAP extension. Found out after all this time of deleting stuff the extension didn't remove the messages correctly and ended up with thousands of old messages. Now I just stick to doing it the hard way.

Onceover covers Peter Gabriel's "In your eyes"

, ,

One of my favorite bands is Onceover from Toledo, OH.

http://onceover.cc/
http://www.purevolume.com/onceoverband
http://www.roadrunnerrecords.com/blabbermouth.net/showreview.aspx?reviewID=871
http://cdbaby.com/cd/onceover
http://cdbaby.com/cd/onceover2

Some songs:
http://www.onceover.cc/svsite/precious/precious.htm
http://www.onceover.cc/svsite/forever/forever.htm
http://www.onceover.cc/svsite/self/self.htm

Some videos:
http://youtube.com/watch?v=m_lr2KObpDs
http://www.onceover.cc/svsite/video/LF.wmv
http://www.onceover.cc/svsite/video/loyl_down.wmv
http://www.onceover.cc/svsite/video/26th_montage512K_Stream001.wmv

You can even request some of their songs at http://chronixradio.com/

They have even more stuff if you can find it.

Anyway, I just checked out their myspace page and noticed they did a cover of Peter Gabriel's "In your eyes". It's pretty cool.

Even if you don't like the cover, check out some of their songs. "Long for summer", "Far and way" and "Fragile circles" are all awesome.

In fact, read the lyrics description for Fragile Circles.


the song lyrics were basically spawned from our guitarist nate. in the past, he was dating a girl, and during the relationship she started to become very very attachted. nate was uncomfortable because she could tell everything about him and what was in his head......eventually nate got scared and had to break it off. on the last day they saw eachother the girl gave him a scrapbook of poetry she wrote about him, he never opened it up to read it.. about 7 months later, unfortunalty, she commited suicide by hanging her self....after nate found this out, he opened up the book and read the poetry.....there were extremely beautiful and heart felt words in it. this song touched him in a way that made him think of this expirience.....and the whispering in the background during the verses is nate reading some of the words she wrote to him....hopefully people connect with this song and understand that suicide isn't and never will be a way out...and that you are loved if you know it or not......



That's deep.

If you like any of their songs or lyrics etc., make sure you grab them now. Bands like these tend to come and go and all their stuff disappears when they break up.

Ubuntu Hardy Heron - Things a new user shouldn't have to mess with

There are still a few problems with Hardy Heron and some of the applications that are provided.

1. Even after installing the restricted Nvidia legacy drivers for the TNT2, 1024x768 was not an option in System -> Preferences -> Screen Resolution. Further, only 60Hz was available for the refresh rate. The legacy drivers got me 800x600 though.

In the Monitor section of /etc/X11/xorg.conf I added HorizSync and VertRefresh to specify the correct ranges for a 17" MGC 770C CRT. I did CTRL+ALT+Backspace to see the changes but that did nothing to help the situation.

I then added a Display subsection to the Screen section in /etc/X11/xorg.conf to specify "1024x768" "800x600" "640x480". That works, but it forces the monitor to use an 85Hz refresh rate and causes 50Hz, 53Hz, 54Hz and 55Hz to be the only options in System -> Preferences -> Screen Resolution for the refresh rate.

This is what I have:

Section "Monitor"
        Identifier      "Configured Monitor"
        Option          "DPMS"
        HorizSync       30-70
        VertRefresh     50-120
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
        Defaultdepth    24
        Option          "AddARGBGLXVisuals"     "True"
        SubSection "Display"
                Depth   24
                Modes   "1024x768_75.00" "1024x768" "800x600_75.00" "800x600" "640x480_75 "640x480"
        EndSubSection
EndSection


That allows me to get 1024x768 with an 85Hz refresh rate, but not 75Hz.

Not sure how to get the correct list of refresh rates and be able to use them. I even tried "1024x768_75" in the display subsection for example, but it didn't help.

Further, before I installed the Nvidia legacy driver and made 1024x768 available, I was stuck at 640x480. This was bad because whenever a dialog popped up, I couldn't see the buttons because they were off screen and left-click + dragging didn't help. Luckily, I knew that I could hold down alt while dragging to workaround that.

2. Even though the Audigy sound card is detected, you don't get any sound by default. You have to have ESP to know that you need to load alsamixer in the terminal, move over to the analog/digital output jack toggle and press m to turn it off. Then sound works fine. (On Kubuntu this is worse because Kmix resets it on you all the time unless you edit Kmix's options.)

3. Every version of ubuntu I try has keyboard input problems. For example, if I'm typing along in an editor or the terminal, all of sudden, a character that I press will keep repeating all by itself. Same type of thing happens when scrolling with the arrow keys in a browser. All of a sudden, it'll start autoscrolling. This page basically describes the problem.

4. When clicking on a .deb file, no installer program opens up to install the program. I have to open up a terminal and use dpkg -i.

5. When clicking on an .rpm file, no installer program opens up to automatically convert to .deb and install the program. Instead, I have to manually install alien, convert and then use dpkg.

6. If you hit the backspace at the beginning of a line in the terminal, it makes the annoying system beep sound.

7. If an application freezes or is just busy for a few seconds, the whole window turns gray. I find this very very annoying because an application's window can turn gray and back to normal really quick and it can do it a lot. It's totally disruptive. Also, when this happens, if the flash plugin for example causes the gray, when the window comes back to normal, the flash plugin object will be gone and you have to refresh the page. When Firefox's "install missing plugins" service installs a plugin, it causes the gray also.

To fix these last two, I had to install the "Advanced Desktop Effects settings" ("sudo apt-get install compizconfig-settings-manager" I think) to turn off the System beep and to change the ping time setting so the gray doesn't happen as much. But, I didn't even know that's what I had to do until I got lucky searching google.

8. I couldn't find anything to clear the clipboard. I searched around and found that I should install glipper. The install appeared to go successfully, but there was no glipper anywhere, not even when trying to execute it on the command line. I installed Klipper instead and that works fine.

9. Firefox 3 beta 5 seems a lot slower compared to the windows version of 3 beta 5. Opera is super fast on Ubuntu though.

10. When I went to youtube in Firefox, it presented me with options for a flash plugin. I forget all the options it gave me, but one of them was swfdec (it was the first in the list). I chose that (mainly because I wanted to try it out). It installed and as a bonus, mp3 and wmv support etc. was installed along with it. Unfortunately, swfdec is horrible. It freezes Firefox and when it doesn't freeze, the audio is so so crackly. So, I installed the Adobe flash player plugin, but there was no way to get Firefox to to use it. Firefox kept on using the swfdec plugin. So, I used apt-get to remove swfdec-mozilla and manually cleaned up the leftover files in /usr/lib/mozilla/plugins, /usr/lib/iceweasel/plugins and /usr/lib/firefox/plugins. Then, the Adobe flash player plugin worked fine.

11. Playing 181.fm streams with the Totem player works great. But, even if you have the playlist to set to repeat, when the server drops the connection, the player just throws up an error dialog and waits for the user to click ok or something. So, I tried Rythymbox music player to play the streams. This worked fine for a bit, but it stops downloading the stream after awhile and reconnecting doesn't do anything. I gave up on that and installed Amarok. It works a lot better, but foobar on windows works perfectly in this area.

12. Video (flash plugin and in Totem) is very choppy and goes out of sync with the audio sometimes. On windows this isn't really a problem. You can't scroll, move the mouse or do anything while a video is playing or the audio will get even worse.

13. I like to use videolan and consider it a pretty important app (Videolan has better performance when playing videos and DVDs). But, it'd be nice if I didn't have to search for the universe repository URI and add it before trying to install.

14. Gedit is really slow at reading big files.

15. The Show desktop button fails to minimize all windows sometimes.

16. Getting Firefox to recognize sun java is a pain. Creating a symlink to libjavaplugin_oji.so is easy, but it doesn't help (this worked fine in the past). The only way I'm able to get Java to work is to use the "install missing plugins" option in Firefox to install sun java. In Opera, I can just set the java directory in preferences and be done with it.

17. I installed Wine. Notepad++ installs and works fine. I installed Safari also, but it's not stable under wine. Also, last time I checked, building win32 executables with mingw under wine didn't work. I'll have to try that again though.

18. When you empty trash in Nautilus, sometimes it doesn't refresh afterwards, which makes it look like nothing was deleted.

19. The update manager freezes when I click "check" and I have to kill it.

20. I tried Kubuntu with KDE4. What a mess!

21. Compared to windows, by default, there's not as much screen space. There's so much stuff on the top and bottom panels that trying to fit everything all on one panel and turning off the other bar isn't any fun.

Some of this stuff is just nitpicking, but having to *still* manually configure my video card and having sound secretely muted by default is horrible. The keyboard bug is a major problem also, but luckily, it doesn't happen all the time. I still hope they fix it though. The gray overlay for busy apps must not be on by default.

Now, here are some good things:

1. It recognized my usb printer.

2. It recognized my cable modem that's hooked up via usb. (This suprised me!).

3. In general, I could manage to use only Ubuntu just fine if there wasn't anything on Windows I needed to test.

4. Opera works wonderfully on Ubuntu.

Adobe Flash plugin no longer supports processors without SSE???

, , , ...

Since Flash 9.0.115.0 was released last December, the Flash plugin no longer fully supports my Pentium II 350. The plugin will crash on sites like http://www.webbalert.com/ and http://break.com/. It will crash on http://youtube.com/ and http://hulu.com/ *if* you try to view the higher resolution version of the video.

The problem seems to be with the plugin trying to use an SSE instruction without checking if the processor actually supports it. When the instruction is not supported, the Flash plugin crashes and takes the browser with it.

The problem is present in both the ActiveX plugin and the Netscape plugin. This means that it will crash, Firefox, IE, Opera, Safari and any other browser that uses the plugin. What's worse is that 9.0.124.0 was just released and it still has the problem.

It looks like Adobe is dropping support for non-SSE processors. If so, this would make them just as bad as Microsoft and its Silverlight plugin.

The Silverlight plugin initially worked fine on my PII, but they pulled the plugged on that when releasing the first final and now Silverlight won't even install. But, even if you workaround it, the plugin truly doesn't support non-SSE processors anymore and zero Silverlight sites work properly (the embedded plugin window will be blank). Safari Win32 actually didn't support non-SSE processors at first either, but they're cool and fixed it.

As a workaround, you can use Flash 9r47, but it has security holes. So, it's a toss-up between security and stability. However, a lot of sites are now requiring 9.0.115.0 or newer to even work, so you might not have choice of stability.

Now, if you have a non-SSE processor, maybe it's time to upgrade (even an old PIII should do the trick). Or, maybe it's time to shift some tasks to one of your newer machines. However, I think that's besides the point. There are still zillions of users of non-SSE processors and just forgetting about them is not good (especially when the newest version of the plugin that works right has security flaws).

I think it's just a bug, but since users on the Flash player forums have been complaining and filing reports since 9.0.115.0 came out and it still isn't fixed, I'm beginning to think it's intensional. I expect to see the Flash installer start saying "Processor not supported" on my PII machine before too long.

Maybe "Don't break the web!" should apply to the Silverlight and Flash plugins also!

Making too much sense

In Firefox:

1. Goto tools -> options -> tabs.
2. Make sure "always show the tab bar" is enabled.
3. Now, make sure you have only one tab open and make sure it's blank.
4. Type something in the address field (but don't press enter).
5. Click the X on the tab, or right-click on the tab and click "close tab", or middle-click on the tab etc.

Firefox will basically close the tab and open a new one, which will give you a nice, blank address field. (It may just clear the address field in this case for efficiency, but the technicality is not important.)

Now, try the same thing in IE7 and Safari ...

Oops, there's no close option for the tab, even if you have a page loaded in it.

Now, in Opera:

1. Goto tools -> preferences -> advanced -> tabs.
2. Make sure "allow window with no tabs" is unchecked.
3. Make sure "Click on tab to minimize" is checked.
4. Make sure "Show close button on each tab" is checked.

and try the same ...

Oops, the same thing as IE and Safari. The close functions are disabled for the tab (unless you loaded a page in it, then it works like Firefox).

Now, I can guess why IE, Safari and Opera do what they do. Technically, if you're not allowed to have a window with no tabs, it doesn't make sense to have a close function when you only have one tab. Also, technically, if you want to go to a site in the current tab, you'd clear the address field, type in the URI and press enter or click GO etc. (or click in the address field, which selects all the text and start typing). In short, Firefox's way doesn't technically make sense.

However, the reality is, Firefox's way of providing a close function and having it clear the tab is totally awesome. It may not make sense, but it's better than what the others do. It's much more pleasant to start typing in an empty tab and using the close function to clear the tab this way is so convenient, cool, exciting and fun.

I think this is a case of IE, Safari and Opera trying to make too much sense.

Luckily, there's hope for Opera. As mentioned above, if the tab isn't blank, then you can indeed use a close function to clear the tab like Firefox. Even better, turn off "show close button on each tab". That will give you an MDI X button near the top right of the window. This close button will clear the tab just like Firefox (even if the tab is totally blank).

On a side note, the MDI X button has other special powers. If the regular close functions fail to close a page (because the page is freezing up and messing with Opera's UI), click the MDI X button. It'll zap the tab for you and save you from having to kill Opera.

Notes to self

The first argument for setAttributeNS is supposed to be a string. So, if you want to put an attribute in the null namespace, it makes sense to use "". This works fine in Opera and Firefox, but webkit requires null if you want to get the desired result. Bug 15172

So, I need to quit using setAttributeNS("", "name", "value") and start using setAttributeNS(null, "name", value"). Since setAttribute works fine for this case, I could use it, but that's no fun. :smile: The whole "" or null issue might bring back some getAttribute memories.

Speaking of webkit stuff, where are all the HTMLFooElement constructor objects? Element, Node and Document are available, just not the specific ones. (Oops. Actually, they're there if you use a nightly.)

Also, webkit really needs to support the input event for textareas. Opera and Firefox support it and IE has onpropertychange.

With Safari being released for windows, it really helps me see where webkit is lacking (although some problems are win32-only). For example, I've found that .click() doesn't work and I have to bust out dispatchEvent, which isn't a big deal, but is mildy annoying. It can be wrapped though, so it's not too bad.

Also, I need to make sure to use .ownerDocument instead of .document when getting the document of an element. Firefox doesn't support .document. Besides, ownerDocument is what I should be using anyway.

You really have to watch your JS with Safari.

The little things that matter

With the release of Opera 9.50 Alpha1 comes some mailto URI fixes that have been needed for a long time.

  • "Copy email address" now works right. It properly gathers all non-empty TO addresses and copies them to the clipboard as a decoded, comma-separated list of addresses. Before, it behaved *something* like "Copy link address" where you would just get part of the encoded URI. Note that Firefox will only grab the first TO address when copying, but there's a patch in Mozilla Bug 353102 for that to work like Opera.

  • If there's more than one subject hvalue in the mailto URI, only the last one is used when filling in the subject field in the compose window. This is how Thunderbird does it also.

  • hvalues are now decoded properly. It's no longer needed to double-encode your URIs to get Opera to decode them properly. Also %0D, %0A, others, and %HH sequences representing unicode characters are now decoded properly. (On a side, Kestrel comes with some javascript URI decoding fixes also.)

  • Previously, if there were multiple body hvalues in the mailto URI, they would be joined with %0D%0A. This is still true, but now it looks right because of the decoding fixes. However, there is a regression where all empty body hvalues (after the first non-empty one) are now skipped, which causes Opera to be different than Thunderbird just a bit, but this is an edge case anyway and has been reported.

  • Actually first seen in Merlin, but worth mentioning, Opera now skips empty TO, CC and BCC hvalues so you don't get a comma and a space in the compose field for each empty hvalue.

  • If you enter a raw mailto URI in the address field and use backslashes (as in "Tim \"The Toolman\" Taylor" <tim's email address>), the backslashes will no longer be converted to frontslashes on you.

  • Previously, if Opera was the default mail client and was already open (dde issue), launching a mailto link in another app would just cause Opera's window to focus and no compose window to open. This is now fixed.

  • Previously, 'mailto:' would not trigger a compose window. It had to be 'mailto:something'. Now, it's fixed to launch a compose window.

  • Previously, if Opera was the default mail client and Opera was closed, launching a mailto link in another app would open Opera and open a compose window, but multiple blank tabs would open also. This is fixed now so that the blank tab is automatically closed. This has the side-effect of the tab closing on you if you manually enter a mailto URI in a blank tab. However, just lock the tab first if you're testing and want it to remain open.

  • Previously, the Opera mailto protocol registry keys on windows had the wrong dde values. This is fixed now.

  • Previously, the body field of the compose window would have extra lines even when you didn't have a signature set. This is fixed now.


To really get an idea of how much things have been fixed, try this mailto link test.

In Opera, with the mailto protocol set to "Open with Opera" try the mailto link in both Kestrel and Merlin. You will see how much things have improved with mailto URI parsing. Also try "Copy email address" on the link. Pretty nice.

Try those same tests in Firefox with Thunderbird 3.0 (3.0 because it has the fix for Bug 320206) set as the default mail client. You'll see just how close Opera and Thunderbird are. (I don't mention any other email clients, because Opera and Thunderbird are the only ones that can parse mailto URIs this well (which is beyond the old and not-specific-enough RFC2368).

There are still more mailto-related things to fix in Opera, but it's looking sharp.

As a bonus of messing with this mailto link stuff, here's a Webmail compose Opera userjs script that parses mailto links like Thunderbird and Opera. By default, it's set up for Gmail, but the script includes composes URIs for operamail. squirrelmail and yahoo webmail. Try it with the test on the page linked above.

My Top 5 Opera wishes

Looks like I'm it.

1. Support for printing and copying rich content in a selection.

Just about every other browser can do those things.

I've been waiting a really, really, really long time for this one.

Using CutePDF writer + Ghostscript, printing to pdf, loading up a pdf reader, selecting what you want printed and finally printing just does not cut it.

Getting the HTML markup of a selection range, converting it and using an external app or using editable content and an external app just to copy rich content also does not cut it.

2. Auto-scroll support for overflown divs.

IE can do it. Firefox can do it if you have All-in-one gestures installed.

3. Right-click context menu and middle-click support for the bookmarks *menu* on Windows.

I'm sorry, the bookmarks panel is just not for me.

4. Option to stop the Auto-scroll marker from going to the center of the screen.

I don't care if the current way is better. I don't like it. Let me do it the wrong way.

5. A console for executing JS like Firebug's Console.

(Click the ^ on the input field in Firebug to type a full script and run it.)

I could keep going, but I'll leave it at 5. :smile:

I'll tag a random 5. (already-been-tagged status of false not guaranteed)

RobbieGee
ResearchWizard
userdude
YtseJam
Anne
December 2009
S M T W T F S
November 2009January 2010
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31