As of 2016-02-26, there will be no more posts for this blog. s/blog/pba/
Showing posts with label Firefox. Show all posts

I believe its some time in this year, the HD quality options, thats 720p and 1080p, were missing, and not only those, actually I only got 360p of all options.

Currently, as of 2015-12-05, I am using Firefox ESR 38.4.0. In fact, I have found the solution much earlier even though this official YouTube Help gives absolutely zero help at all but never bothered writing it, but now I have decided to write a post.

From what I can check with about:config.

If I turn on:

  • media.fragmented-mp4.ffmpeg.enabled

I will get 720p HD with video/mp4; codecs="avc1.64001F, mp4a.40.2". Thats just 360p and 720p for now.

If I also turn on:

  • media.mediasource.enabled

I will also get 1080p HD, 144p, 240p, and 480p. The 720p is video/mp4; codecs="avc1.4d401f". Now its the full set as before.

Believe me or not, I used to use Pentadactyl to change the background color of about:blank, which is not short:

js <<EOF
window.change_tab_bg = function(id, color) {
  var tab = tabs.getTab(id);

  if (!tab)
    return; = color;

au PageLoad 'about:blank' js change_tab_bg(<tab>-1, "#333");
" PageLoad isn't fired when browser is launched
:if getBrowser().contentDocument.location.href == 'about:blank'
  js getBrowser() = "#333";

I dont know why I didnt think of something else, say userContent.css1?

-moz-document url(about:blank){
  body {
    background-color: #333;

A clean solution, and really simple. You can also use it for about:newtab, if thats your Firefox homepage, just replace the argument of url() with the URL.

[1]Not to be confused with userChrome.css, which is used for Firefoxs interfaces look not websites looks.


Google Docs Viewer is gone, therefore nothing here will work. (2015-12-10T03:08:02Z)

More than a year ago, I wrote a post about how to view local PDF file. To be honest, I never actually used that script, I have a bookmark for viewing PDF online for very long time even before I wrote that script. I dont download PDF when I need to open a PDF file, just directly view it using Google Docs Viewer.

If you are a Firefox user, itd be great to know the keyword and %s in bookmarks. Keyword of bookmark allows you to access the bookmark by just typing it in address bar, %s in bookmark URL will be replaced with the string you put after the keyword when you open a bookmark using address bar.

To show you how to use bookmark, first, create a bookmark with URL as follows:

and set keyword to gdv.

Next, find a random PDF link online and type in the following text in address bar:


Google Docs Viewer will show you the document if its not get blocked. I have seen one or two websites actually blocks Google Docs Viewer.

You can have embedded version with the following URL, which has less controls:

For me, as a fan of Pentadactyl, after I yank a URL of PDF, I just type in:


If you are smart, you should have learned you can set some keywords for your most visited bookmarks with single letter or two. You dont need to go through your bookmark bar, you just type the keyword and press enter.


Thanks azuwis for the great tip of using hints in the comment below, here is the embedded code. (2012-06-26T09:38:22Z)

Press ;d to get the hints if links are PDF, DOC, etc.

There is an error on emerging newly-stabilized-but-failed firefox-10.0.3: Cannot execute /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/obj-x86_64-unknown-linux-gnu/browser/installer/../../dist/bin/shlibsign.
The more complete build log:

Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 372).
Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 376).
Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 377).
Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 378).
Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 379).
Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 380).
Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 381).
Warning: package error or possible missing or unnecessary file: bin/libfreebl3.chk (package-manifest, 382).
Warning: package error or possible missing or unnecessary file: bin/libsoftokn3.chk (package-manifest, 383).
Warning: package error or possible missing or unnecessary file: bin/ (package-manifest, 384).
Warning: package error or possible missing or unnecessary file: bin/libnssdbm3.chk (package-manifest, 385).
Linking .xpt files...
Manifest file: ../../dist/firefox//components/interfaces.manifestLinking .xpt files completed.
/usr/bin/python2.7 /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/toolkit/mozapps/installer/ \
  ../../dist/firefox//components/components.manifest \
  ../../dist/manifests/xpcom/components ../../dist/manifests/browser/components
Warning: trying to link manifests in missing directory '../../dist/manifests/xpcom/components'
/usr/bin/python2.7 /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/toolkit/mozapps/installer/ \
  ../../dist/firefox//chrome/nonlocalized.manifest \
  ../../dist/manifests/xpcom/chrome ../../dist/manifests/browser/chrome
Warning: trying to link manifests in missing directory '../../dist/manifests/xpcom/chrome'
/usr/bin/python2.7 /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/toolkit/mozapps/installer/ \
  ../../dist/firefox//chrome/localized.manifest \
printf "manifest components/interfaces.manifest\nmanifest components/components.manifest\nmanifest chrome/nonlocalized.manifest\nmanifest chrome/localized.manifest\n" > ../../dist/firefox//chrome.manifest
/usr/bin/python2.7 /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/config/ --optimize /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/obj-x86_64-unknown-linux-gnu/browser/installer/../../jarlog//en-US ../../dist/bin/chrome ../../dist/firefox/chrome
signing nss libraries Cannot execute /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/obj-x86_64-unknown-linux-gnu/browser/installer/../../dist/bin/shlibsign.

make[1]: *** [stage-package] Error 1
make[1]: Leaving directory `/var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/obj-x86_64-unknown-linux-gnu/browser/installer'
make: *** [install] Error 2
emake failed
 * ERROR: www-client/firefox-10.0.3 failed (install phase):
 *   emake install failed
 * Call stack:
 *, line  85:  Called src_install
 *   environment, line 6495:  Called die
 * The specific snippet of code:
 *       MOZ_MAKE_FLAGS="${MAKEOPTS}" emake DESTDIR="${D}" install || die "emake install failed";
 * If you need support, post the output of 'emerge --info =www-client/firefox-10.0.3',
 * the complete build log and the output of 'emerge -pqv =www-client/firefox-10.0.3'.
 * The complete build log is located at '/var/tmp/portage/www-client/firefox-10.0.3/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/www-client/firefox-10.0.3/temp/environment'.
 * S: '/var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10'

 * Messages for package www-client/firefox-10.0.3:

 * You are enabling official branding. You may not redistribute this build
 * to any users on your network or the internet. Doing so puts yourself into
 * a legal problem with Mozilla Foundation
 * You can disable it by emerging firefox _with_ the bindist USE-flag
 * Fallback PaX marking -m
 *      /var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10/obj-x86_64-unknown-linux-gnu/dist/bin/xpcshell
 * ERROR: www-client/firefox-10.0.3 failed (install phase):
 *   emake install failed
 * Call stack:
 *, line  85:  Called src_install
 *   environment, line 6495:  Called die
 * The specific snippet of code:
 *       MOZ_MAKE_FLAGS="${MAKEOPTS}" emake DESTDIR="${D}" install || die "emake install failed";
 * If you need support, post the output of 'emerge --info =www-client/firefox-10.0.3',
 * the complete build log and the output of 'emerge -pqv =www-client/firefox-10.0.3'.
 * The complete build log is located at '/var/tmp/portage/www-client/firefox-10.0.3/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/www-client/firefox-10.0.3/temp/environment'.
 * S: '/var/tmp/portage/www-client/firefox-10.0.3/work/mozilla-esr10'
The problem seem to be path issue and only on x86_64 arch (because this arch is only one got stabilized). Someone unmasked 11.0 to skip the issue, but I don't want to build again, ccache already have cache for 10.0.3. Another 2 hours for 11.0? Not gonna do it. I will wait for a fix.

Firefox building has become a monster, long build time and huge memory usage during linking stage. 64% of 2GB more. A few version after, I might need to user firefox-bin, just like libreoffice-bin.

I looked into Changelog and saw this is actually something called 10.0.3 ESR (Extended Support Release), which is begun with Firefox 10. And this is why there is an "esr" string in "mozilla-esr10." I don't know if this ESR has different build process or because 10.0.3 is a planned security update, therefore the Gentoo dev rushed to mark 10.0.3 as stable.

I can't remember I have ever had Firefox failed to emerge before. When some big update is included, I always wait for a while, monitor the forums. I forgot that this time. Everything has its first, doesn't it?

Anyway, be sure to subscribe to RSS feed of firefox package updates, so you don't need to keep watching for the fix.

The workaround is here (2012-03-24T04:47:15Z)

A workaround was posted and I wish I had read it soon enough. It basically bypasses the non-existing executable file, shlibsign, by changing && to ;. If you know shell scripting, you know what that does.

The comments in the bug report also reported that this is not x86_64 only, you other arch users, we, x86_64 users, are your lab rat! ;p

I actually tried to symlink to actual shlibsign was when I was trying to resolve the issue, but it was actually a directory not an executable file. I was hoping the build script would somehow pick it up and build that build. It didn't work.

Now I know, I can bypass it, I bet you you can do the following to bypass while emerging:
ln -s shlibsign /bin/true
But there is no need, because the patch is in the Portage tree. Resync and emerge again, you will have a successful emerge this time.

The problem here is it does not resolve the issue as the patch submitter said it's a workaround. There is a reason why the build script wants to run that file, even it seems that we don't need that process.

As I said in My weekly Gentoo update process:

When you have doubts or you are nervous about an update, do a search for those guides. Or wait for a little bit, say a few days, then search on forums to see if there is any victims :)

No need to rush for an update, let others be your lab rats! xD

Just read Visualize your password reuse on Mozilla Lab by Paul Sawaya about this addon, here is a screenshot of my test profile in Firefox:

The graph use d3.js and its interactive, you can draw or click, and even to check the clear text of the passwords.

Again, its not the passwords I use daily. No way I will show you that even this is just a visualization. They are a lot can be learned from a simple graph.

I found this is helpful to help your realize how your security sense based on your passwords. A crazy nut of security should have a totally non-connecting graph.

Each green dot is a password, blue dot is the website. Square orange box connecting passwords means those passwords are similar, which by general guidelines of security that should be avoid.

Using different password for different website, but when you are testing. Well, you know abc123 comes in handy. As you can guess, those two only distinct passwords and websites are the actual passwords, and I am not going to tell you what they are. :)

PS. abc123 may just be a misleading to let you believe I use that for testing, please dont use it to hack into my account. ;)

Once again, I switch to something better. But this time is different, it's not the Vimperator broken, well it is in some sense of interpretation. It's because the basis of philosophy. I would never expect myself switching because this kind of point of view. I always think people who so insist in using Open Source are like Saints. (Hope you get what I really mean in that)

Anyway, after I posted about encryption status in Vimperator, I stumbled on this wiki page, VimperatorVsPentadactyl. Now I see why they have been getting rid of us.

Right now, I have switched to Pentadactyl. Here is the diff of what I have changed. It virtually produces exactly same result as before.

A few things I have learnt:
  • Vim syntax file is generated by running :mks in Pentadactyl. It will put the file at right place for you.
  • Colorscheme extension is .penta.
  • guioptions not toolbars, since that's where it was. It also has option for statusline, so I don't need to hack the style anymore.
  • You need to define function in window in your ~/.pentadactylrc, i.e. window.func = function(){};. this !== window.
  • :if :elseif :else :endif is nice.

Pentadactyl intergates statusline with the Addon bar, so those addon button, you can see next to the statusline. I personally do not like this. But I like the loading indication, which is what Vimperator nuked. And the encryption status, also what Vimperator nuked. I now understand how many stuff Vimperator has erased.

I have known Pentadactyl long ago, at that time, Vimperator has made a lot of changes, so I decided not to switch. But, it doesn't really seem to change much, some of my code I didn't even touch.

Two things I have to complain is now I need to get used to C-V and C-Z after I finally got comfortable with inhuman Ins or S-Esc.

The latter is the worst keybinding throughout the computing history, though insert key isn't much better, that takes me eons to get used of them. They should've just tell those people, use your mouse to uninstall Vimperator, problem solved!

The second thing, the name is...

Time for the final step:

:extdelete Vimperator

Mission accomplished.

After I published the method using Vimperator, I found out it wont work if user switch to other tab before the page is loaded. The emulated keypress will be only emulated the currently active tab, and that may not be YouTube or Google Groups. Since Google Groups started the new interface, I removed that part of code from my Vimperator configuration, Google Groups doesnt steal focus anymore. Instead, I even enable Pass Through mode for Google Groups.

A while earlier, I was seeking if there is a way I could open a link from commandline and Firefox does not raise its window. I havent found an answer for that but I accidentally stumbled on an answer on Super User and later I found how to disable form focusing on MozillaZine Knowledge Base.

1Quick Solution

I wanted to see how much memory Firefox 4 use, not for any particular reason. So, I quickly wrote one short script:

while :; do
ff_pid=$(ps -e -o pid,cmd | grep firefox-bin$ | grep -o '^ *[0-9]*')
if [[ $ff_pid ]]; then
  mem_mb=$(($(ps -p $ff_pid -o rss=)/1024))
  printf "$(date +%H:%M) %4dM [%3d%%] \033[41m%${bar_len}s\033[42m%$((max_bar_len-bar_len))s\033[0m\n" $mem_mb $((100*mem_mb/max_mem)) '' ''
  printf "%s ---\n" $(date +%H:%M)
sleep 60
done | tee ff_mem.txt | awk '{if(m!=$2){print $0;m=$2}}'

max_mem specifies the system memory in MB. max_bar_len is the how long the bar can be in character if memory use is 100%. Because I always run additional Firefox instance (profile, using --no-remote), so I have to make sure I get the main Firefoxs PID, which is the one I want to monitor. The awk is used for removing consecutive lines of same amount memory use. You can take it out if you want to see minute by minute results.

Here is a result after I started up Firefox today:

I havent fully used Firefox to visit sites I often do. Normally, after it reaches about 20%, I restart Firefox. I want to see if it will go down after it reaches 50%.

I think I used to press Ctrl+Shift+PageUp and Ctrl+Shift+PageDown when I started to use tabbing in Gnome Terminal or Gedit if I recall correctly.

I think Firefox did support such keys for some time, but I could be wrong. Chromium supports them. If you are a mouse person, you probably think this is not important. But if you also use multi-profile at the same time, i.e. using --no-remote for other profiles. The drag and drop for bookmarks or tabs doesnt work for those browser processes with no-remote, which causes you can not drag a tab handler to re-order tabs, hence you need another way to re-order.

Using Vimperator proves thats a great advantage once again. By adding the following lines to ~/.vimperatorrc:

map <C-S-PageUp> :tabm -1<CR>
map <C-S-PageDown> :tabm +1<CR>

I can use those keys to move a tab.

If you prefer JavaScript version, you can use:

map <C-S-PageUp> :js getBrowser().moveTabBackward()<CR>
map <C-S-PageDown> :js getBrowser().moveTabForward()<CR>

They work less perfect than Vimperator built-in command :tabm[ove] when the tab is the leftmost or rightmost tab and it also steals focus for tab handler.

1Update on (2011-07-21T22:24:21Z)

Some months after I posted this, this didnt work anymore. Yesterday, I finally decided to fix this. The JavaScript code is actually being evaluated, but the prompt with :bmark doesnt show up. If I run manually, it still doesnt sure, but the command has been entered into the history.

I read some plugins source code, but nothing really gave me any hint. They just work with virtually same code. But then I realized, they actually is executed after XMLHttpRequest().

So, the fix is

# map a :js my_bookmark_adder()<CR>
map a :js setTimeout(my_bookmark_adder, 0)<CR>

Or you can do it in the function.

I dont know when and what actually cause this and I dont really care. If you find out which commit causes this, feel free to tell me.

2Original post

If you use bookmarks to organize your to-read list, or you bookmark on certain website a lot. You might want to tag with readlater or remove some words from bookmark titles, such as websites name.

$ sqlite3 places.sqlite 'select rev_host, sum(visit_count), sum(visit_count) * 100.0 / (select sum(visit_count) from moz_places) from moz_places group by rev_host order by sum(visit_count) desc limit 20;' | sed 's/\.|/ /;s/|/ /' | while read rev_host count percent ; do printf '%7d (%6.2f%%) %s\n' $count $percent $(echo "$rev_host" | rev) ; done
  18182 ( 23.25%)
  14258 ( 18.23%)
   4585 (  5.86%)
   3652 (  4.67%)
   2994 (  3.83%)
   2973 (  3.80%)
   1809 (  2.31%) localhost
   1683 (  2.15%)
   1338 (  1.71%)
   1175 (  1.50%) dfed
   1033 (  1.32%)
    991 (  1.27%)
    764 (  0.98%)
    740 (  0.95%)
    658 (  0.84%)
    655 (  0.84%)
    569 (  0.73%)
    559 (  0.71%)
    552 (  0.71%)
    521 (  0.67%)

I really need to quit visiting this page.

You can find places.sqlite in ~/.mozilla/firefox/<profile>/. The counts do not much what Page Info dialog reports, I have no idea what cause the differences. Page Info dialog gives smaller counts.

I don't see any place you can get a list, so I decided to dig into the database of Firefox. It's quite interesting that it has a reverse host field not a host field, the characters of host string in reverse. To get the order back, just pass it to rev.

After latest nightly build update, Firefox 4's Statusbar has gone AWOL and Add-on bar just enrolled.


There is a discussion, but I didn't really read it. All I know is I have to wait for Vimperator to update, so things will get back to what it used to be. Now the Vimperator's statusline stays on top of this new Add-on bar and looks very awkward.

I pulled some buttons from navigation and bookmark bars onto Add-on bar, so it won't look so empty.

Firefox 4's UI changes is truly a pain-in-ass for Vimperator. Everyday, I might be surprised.

Updated on 2010-09-25

Since I can't really do anything to this new Add-on bar, I decided to embrace it:

The only problem is the width of Vimperator's bar. I can't make it auto-adjust by the window size.
#addon-bar {
  -moz-appearance: none !important;

#addon-bar * {
  background: #222 !important;
  color: #ddc !important;

#liberator-statusline {
  background-color: transparent !important;
  width: 800px !important;

1   Firefox 4 and Opera

Just heard3 about this new benchmark Kraken4, so I tried it with FF4 beta and Opera 10.61. I only have two browsers on my system currently, its too bad that I dont have Chromium to compare because the results are quite interesting

TEST                         COMPARISON            FROM                 TO               DETAILS
                                                  (Opera 10.61)   (FF 4.0b7pre 20100914)

** TOTAL **:                 1.50x as fast     19627.2ms +/- 2.3%   13061.5ms +/- 1.1%     significant


  ai:                        1.41x as fast      3344.5ms +/- 13.0%    2371.8ms +/- 6.4%     significant
    astar:                   1.41x as fast      3344.5ms +/- 13.0%    2371.8ms +/- 6.4%     significant

  audio:                     1.55x as fast      6657.7ms +/- 1.2%    4307.2ms +/- 1.0%     significant
    beat-detection:          1.071x as fast     1301.8ms +/- 3.7%    1215.3ms +/- 2.0%     significant
    dft:                     2.54x as fast      2844.6ms +/- 2.8%    1119.4ms +/- 2.7%     significant
    fft:                     1.051x as fast     1137.7ms +/- 1.3%    1082.4ms +/- 3.0%     significant
    oscillator:              1.54x as fast      1373.6ms +/- 1.8%     890.1ms +/- 0.9%     significant

  imaging:                   2.30x as fast      7628.8ms +/- 1.4%    3318.3ms +/- 1.6%     significant
    gaussian-blur:           3.46x as fast      5256.8ms +/- 1.8%    1517.7ms +/- 0.8%     significant
    darkroom:                1.67x as fast       989.6ms +/- 1.9%     592.7ms +/- 0.8%     significant
    desaturate:              1.144x as fast     1382.4ms +/- 1.3%    1207.9ms +/- 3.8%     significant

  json:                      *1.32x as slow*     302.4ms +/- 1.4%     399.1ms +/- 0.7%     significant
    parse-financial:         *1.88x as slow*     134.9ms +/- 1.9%     253.9ms +/- 0.8%     significant
    stringify-tinderbox:     1.154x as fast      167.5ms +/- 2.1%     145.2ms +/- 1.0%     significant

  stanford:                  *1.57x as slow*    1693.8ms +/- 2.8%    2665.1ms +/- 0.6%     significant
    crypto-aes:              *1.93x as slow*     377.8ms +/- 9.8%     729.6ms +/- 0.6%     significant
    crypto-ccm:              *1.109x as slow*    473.2ms +/- 10.5%     524.7ms +/- 1.9%     significant
    crypto-pbkdf2:           *1.85x as slow*     634.3ms +/- 4.0%    1176.0ms +/- 0.7%     significant
    crypto-sha256-iterative: *1.126x as slow*    208.5ms +/- 1.1%     234.8ms +/- 1.6%     significant

As you can see FF4 is faster in three categories of tests: ai, audio and imaging; and slower in json and crypto categories. Last month, from results of SunSpider, Opera 10.61 is faster than FF4.0b5pre. Now, with tests above, FF4.0b7pre is faster.

[3]The original link was, but it returns 410 GONE.
[4]The original link was, the content was gone.

2   Firefox 3.6.9

RESULTS (means and 95% confidence intervals)
Total:                       27035.3ms +/- 1.2%

  ai:                         4529.0ms +/- 5.3%
    astar:                    4529.0ms +/- 5.3%

  audio:                      9842.9ms +/- 1.3%
    beat-detection:           2299.4ms +/- 2.2%
    dft:                      3488.6ms +/- 1.8%
    fft:                      2212.1ms +/- 3.0%
    oscillator:               1842.8ms +/- 4.0%

  imaging:                    7502.1ms +/- 1.5%
    gaussian-blur:            3481.2ms +/- 2.8%
    darkroom:                  834.8ms +/- 0.8%
    desaturate:               3186.1ms +/- 2.5%

  json:                        520.9ms +/- 1.2%
    parse-financial:           350.7ms +/- 1.4%
    stringify-tinderbox:       170.2ms +/- 1.9%

  stanford:                   4640.4ms +/- 1.0%
    crypto-aes:               1367.0ms +/- 0.9%
    crypto-ccm:               1028.7ms +/- 1.4%
    crypto-pbkdf2:            1676.7ms +/- 1.8%
    crypto-sha256-iterative:   568.0ms +/- 0.6%

I ran it four times, two of them crashed Firefox and this test used a lot of memory, more than 1 GB. I am also compiling Chromium for this benchmark, result will be added later.

3   Firefox ESR 17.0.2 with Kraken 1.1

RESULTS (means and 95% confidence intervals)
Total:                        6688.6ms +/- 1.4%

  ai:                          236.7ms +/- 3.7%
    astar:                     236.7ms +/- 3.7%

  audio:                      2528.1ms +/- 3.7%
    beat-detection:            610.8ms +/- 1.1%
    dft:                      1047.5ms +/- 6.1%
    fft:                       444.9ms +/- 0.6%
    oscillator:                424.9ms +/- 18.1%

  imaging:                    2505.4ms +/- 2.4%
    gaussian-blur:            1438.1ms +/- 4.1%
    darkroom:                  550.3ms +/- 0.2%
    desaturate:                517.0ms +/- 4.3%

  json:                        276.8ms +/- 2.7%
    parse-financial:           152.6ms +/- 3.6%
    stringify-tinderbox:       124.2ms +/- 4.4%

  stanford:                   1141.6ms +/- 1.4%
    crypto-aes:                263.0ms +/- 1.5%
    crypto-ccm:                199.5ms +/- 1.5%
    crypto-pbkdf2:             509.0ms +/- 1.7%
    crypto-sha256-iterative:   170.1ms +/- 3.7%

4   Chromium 7.0.517.5

RESULTS (means and 95% confidence intervals)
Total:                        22962.1ms +/- 0.6%

  ai:                          1220.5ms +/- 0.5%
    astar:                     1220.5ms +/- 0.5%

  audio:                       8739.2ms +/- 0.8%
    beat-detection:            2288.9ms +/- 1.1%
    dft:                       3169.9ms +/- 2.1%
    fft:                       2370.6ms +/- 0.5%
    oscillator:                 909.8ms +/- 0.6%

  imaging:                    11067.4ms +/- 0.9%
    gaussian-blur:             5549.8ms +/- 1.9%
    darkroom:                  2748.7ms +/- 1.7%
    desaturate:                2768.9ms +/- 1.1%

  json:                         890.2ms +/- 0.3%
    parse-financial:            507.0ms +/- 0.4%
    stringify-tinderbox:        383.2ms +/- 0.4%

  stanford:                    1044.8ms +/- 0.7%
    crypto-aes:                 229.3ms +/- 0.9%
    crypto-ccm:                 190.3ms +/- 0.5%
    crypto-pbkdf2:              435.0ms +/- 0.8%
    crypto-sha256-iterative:    190.2ms +/- 1.4%

5   Summary,0,30000&chxt=y&chbh=a&chs=628x240&cht=bvg&chco=FF9900,80C65A,76A4FB,FFCC33&chds=0,30000,0,30000,0,30000,0,30000&chd=t:13061.5|19627.2|22962.1|27035.3&chdl=Firefox+4|Opera+10|Chromium+7|Firefox+3.6&chdlp=b&chma=0,0,0,10|0,35
Browser   Version     Total Time   To FF4
Firefox    4.0b7pre   13061.5 ms  --------
Opera     10.61       19627.2 ms  + 50.27%
Chromium   7.0.517.5  22962.1 ms  + 75.80%
Firefox    3.6.9      27035.3 ms  +106.98%

I asked for a new feature1 of Vimperator. Basically, I was not satisfied with the style of tabs bar (aka tabbrowser), they dont look consistent with Vimperators statusline. After I asked for it, I realized it might get implemented, so I decided to make my own when I found out userChrome.css can do it. I can also added it to Vimperator plugin, its not a hard task, just put it in and modify the manifest. But its not customizable yet, it will require some programming in Vimperators code.

Anyway, here is what I have now:

The Vimperator is using my own style, vimPgray. You can download my userChrome.css, it might not works as you seen in screenshot. I customized in Firefox 4 and some are from vimPgray, e.g. the text shadow, but you can add on your own.

They are now nearly perfect to me, all gray!

Few issues:

  1. The all tabs button (#alltabs-button), I was able to replace it with css content, but the dropdown menu would not show up for some unknown reason after I clicked the button.
  2. I tried to replace the loading images from Firefox 4 with Unicode Block Elements (U+2581-8), but the layout was messed up.
  3. The close button and new tab button are just okay.
  4. I didnt change the styles of menu/location/etc.

Someday my Vimperator and Firefox will be flawless.

[1] is gone.

Just after I posted about Firefox 4 new features, a popup notification showed up telling me about new update 4.0b5pre for my current version 4.0b5pre.

4.0b5pre -> 4.0b5pre?

I am using nightly build as I mentioned before. I clicked on that Restart Minefield button with doubt, I didn't believe it would work or really get an update.

It turned out, it's really an update, Gecko/20100826. I was stunned for few things.

First, I never thought auto-update would work on Linux since I always use distro's distribution of browsers. Distro always installs browsers in system directories. But I installed FF4 on my own, well, that's an overstatement, just unpacked it to ~/var/bin/firefox.

Second, even it could do auto-update, I didn't think that would also apply on nightly build, not to mention the official branding release (using Firefox not other Foobar name) don't have 64-bit build for Linux (maybe it has just I could find it). But it works smoothly for 64-bit nightly build.

I checked out the installed directory, all dates are now 5:15 8/27, it did update for sure. And this was taken from Update History:

Amazing... and I probably wouldn't want to install Firefox through Portage tree. In face, I have already unemerged it. Sooner, I would unemerged Chromium, too, after I felt it's safe to have Firefox only.

However, I think once FF4 hit Portage stable, I might emerge it again. I am still obsessed with the mythical compiler flags.

I seem to find more feature of Firefox 4 every time I use it. I was wandering through the menu, believe me, I have done that when I just installed it. Somehow, I didnt notice there were two new things: Inspect and Web Console. You can activate them by pressing Ctrl+Shift+I and Ctrl+Shift+K.

The Inspect (the top windows on the left, right, and bottom) is really something called very pre-alpha feature, I got crash once by just hovering my cursor around. If you try to compare it with Firebug1 or Developer Tools in WebKit-based browsers, you will be so disappointed at it. It just shows you the values, nothing fancy, you can not edit or tweak your HTML on the fly. FFs Inspect is like a blackboard updated by hand, others are like a 60 HD plasma TV updated by automatic intelligent programs.

The Web Console (the frame above Mozilla webpage) seems to be more mature and it supports console.log(). And dont forget that JavaScript Console (Ctrl+Shift+J), its the place to read error occurrences in JavaScript, Web Console is not for that purpose. I think Firefox would have integrated developer tools someday, Firebug is great but I would like to have built-in.

[1]The latest 1.6b1 still failed for six tests in Firefox 4.0b4.

I had known of this new Panorama feature in Firefox 4 from other blogs post titles. When I first saw Panorama, I thought that was Panoramio. I was wondering why Mozilla introduced Panoramio, then I read the title again and I did.

I totally forgot it when I just installed Firefox 4. I accidentally brought it up by pressing Ctrl+Space unawarely.

I thought What the heck just happened? then I was trying every key combinations I could think of to get back to normal browsing mode. I finally got it after I watched the introduction clip of Panorama.

Just press Ctrl+Space again or click on thumbnail. I have no idea why I didnt try to click at first place.

Anyway, its a cool feature. You create some groups, organize them. They will even get together again next time you open them. Ctrl+Space allows you to cycle them over group by group, tab by tab. But its not a useful feature for me, I rarely would open tabs more than five. The screenshot above took me opening half of my bookmarks (liar!), I know some people are tabmanic or tabholics, Panorama must be their thing.

There is one more thing I want to mention, its the memory usage of these 16 tabs. Firefox only used less than 300 MB, I would bet its kind of improvement, though I had never known how much memory it takes for 16 tabs in previous tabs.

I am using Firefox 64-bit beta 5 prerelease nightly build, it works well on my Gentoo. And Vimperator also works, well, from the repository, of course. I have to edit the install.rdf because it only sets up up to beta 4. I bumped the version and built the xpi, it works great!

Almost all addons are not compatible with beta 5, AdBlock is the only one has an update for beta 5 prerelease, but I disabled it later. The reason I dont want to use AdBlock is same as I have with Chrome. The speed has been improved, though it is still slower than Chrome.

I think I should get some numbers, so I tested it with first website I could find from search.

Before I show you the results, I must tell you that I just wanted to get a rough idea about how fast they could execute JavaScript, I didnt try to make sure my system is all ready for the benchmark test to run. I had some programs running behind but they were not heavy tasks. Firefox 3.6.8 (8 addons) and Chromium (2 extensions) have some addons installed, but I dont think it would make big difference if I disable them.

Now, here is the chart and numbers:|||(ms)|Time||&chxr=0,0,1400&chxt=y,y&chbh=a&chs=800x320&cht=bvg&chco=A2C180,FF9900,BBCCED,7777CC&chds=0,1400,0,1400,0,1400,0,1400&chd=t:447.4|480.8|719.4|1255.8&chdl=Chromium+6.0.490.1|Opera+10.61|Firefox+4.0b5pre|Firefox+3.6.8&chg=-1,7,4,0&chtt=Browsers+SunSpider+Tests"
Browser Total
Chromium 6.0.490.1 0447.4ms +/- 12.3%
Opera 10.61 0480.8ms +/- 01.4%
Firefox 4.0b5pre 0719.4ms +/- 01.9%
Firefox 3.6.8 1255.8ms +/- 01.2%

From the results, Fireforx 4.0b5pre is about 60.8% slower, but a benchmark is an intense test in different special cases. The real use might not result in such difference. When I just fired it up, I immediately felt the performance improved and I couldnt real tell if its faster or slower than Chromium. The memory usage also seems improved, though I havent used it thoroughly.

Vimperator is always something very important addon for me, I even tried to create a similar way to open bookmark in Chromium. Since its already in beta stage and stable enough for me, so I think I should probably go back to Firefox and Vimperator. Hope the future release could have more performance improvement. UI improvement is really useless to me since I use Vimperator.

A few hours ago, Gmail announced a new video and chat plugin for Linux users. I am a 64-bit user, pure one, there is no 32-bit library on my system. I wasnt going to try because 1) I am not into online IM chatting not to mention this voice and video chatting and 2) I dont believe that Google would release a 64-bit stuff.

But you know curiosity killed the cat, so I went to download, just to file to find out if they are 64-bit build or just 32-bit as my expectation. I ran

ar -x google-talkplugin_current_amd64.deb
tar xf data.tar.gz
cd opt/google/talkplugin

Now, its about to see the truth:

% file * */*
GoogleTalkPlugin:         ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
cron:                     directory
lib:                      directory     ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
cron/google-talkplugin:   POSIX shell script text executable
lib/             ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
lib/           ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped</pre>

(Side note: you can see there is a cron, Google installs a cron job to update .deb package, so this plugin would never get outdated. I really can not agree with this automatic method. (I assume that its automatic, I didnt read that script))

I was shocked, twice! First shock was there did have 64-bit shared library and the second shock was why the hell this GoogleTalkPlugin is a 32-bit build? I couldnt understand. As far as I know, the browser plugin uses shared library, so that 32-bit stuff shouldnt be a problem, it must be some kind of desktop manager for the plugin, its worth trying. (I was wrong. :()

So, I tried to install it:

chmod +x *.so lib/*.so
cp *.so ~/.mozilla/plugins/
sudo cp lib/* /usr/lib64/

I installed them in Mozillas (Firefoxs) plugin directory, so Chromium can also use it. After restarted browser, I got a good sign from Chromium and Firefox.

So, I recompiled my kernel with required modules. Rebooted, got into Gmail in Chromium, went to setting. Nothing!? Switched to Firefox, still nothing.

Then, I ran Chromium from command-line, I got this log:

[000:017] Warning( Unreadable or no port file.  Could not initiate GoogleTalkPlugin connection
[000:022] Warning( Could not initiate GoogleTalkPlugin connection
[000:022] Warning( Load: Could not open file
[000:022] Warning( Failed to get GoogleTalkPlugin path. Trying default.
[000:025] Started GoogleTalkPlugin, path=/opt/google/talkplugin/GoogleTalkPlugin
[000:025] Waiting for GoogleTalkPlugin to start...
[001:098] Warning( Unreadable or no port file.  Could not initiate GoogleTalkPlugin connection
[001:099] Warning( Could not initiate GoogleTalkPlugin connection
[001:099] Waiting for GoogleTalkPlugin to start...
[002:190] Warning( Unreadable or no port file.  Could not initiate GoogleTalkPlugin connection
[002:191] Warning( Could not initiate GoogleTalkPlugin connection
[002:191] Waiting for GoogleTalkPlugin to start...

I could only say !#$%^, Google!

If your system is multilib, I think you have good chance to get it running, just move that 32-bit stuff to /opt/google/talkplugin/GoogleTalkPlugin.

Google, please re-build GoogleTalkPlugin for 64-bit! Pretty please?

I have just been using Wakoopa 1.1.1 on Linux. It works very well. I have wanted to try it when it was not ready for Linux. I do know how long it has started supporting Linux, it surely does it great because it also have a 64-bit client. The packages only are for DEB and RPM package managements, but the binary tarball is easy to use.

The only problem I have is it is not able to detect the CLI/TUI programs, simply because it has no easy way to determine which CLI/TUI program you are currently using. As in X, we have many different terminal emulator, then few terminal window managers. It is nearly impossible that you could tell which is running by a code. We also still have virtual consoles, but this probably not the case to talk because Wakoopa is a GUI program. Not many people will use X and switch to virtual console to work.

The web tracking works normally with Firefox 3.5.5. But I am not satisfied with it, it uses CrunchBase as the website database. But as I checked up on CrunchBase, it is really a company-oriented. I don't see or in it.

I may be using Wakoopa for a little longer. It really couldn't fully reflect my use on computer. I stay a lot of time in terminal. I know I can use gvim instead of vim, but I rather not to. I think Wakoopa is better for Windows and OS X users, because the normal users of theirs are stuck to GUI programs.