Posts from the ‘Firefox’ Category
Thunderbird RSS, QuickFolders, Sync, and other niceties
I continue to be impressed by Thunderbird which goes from strength to strength with every release. After playing around with RSS feed functionality (described here), I’m now using Thunderbird as my primary RSS feed reader: it’s particularly handy for keeping track of Twitter feeds (which the Twitter native web interface itself kind of sucks at), especially with the ability to tab your Twitter feeds with QuickFolders (below).
If like me you deal with thousands of mail items across multiple mail folders, then drop everything and check the QuickFolders extension out:
https://addons.mozilla.org/en-us/thunderbird/addon/quickfolders-tabbed-folders/
It’s quite simply a superb add-on with an absolute tonne of features: you can read about them here: http://quickfolders.mozdev.org/. I was very happy to donate to the developer – so if you do like the add-on, perhaps consider doing the same :)
After enabling RSS feed functionality in Thunderbird, I got to thinking how cool it would be if Mozilla could extend their Firefox Sync functionality to Thunderbird: the ability to sync RSS feeds, account and application preferences amongst multiple Thunderbird installations would be huge. Turns out (after making enquiries on the relevant mailing lists) that this is planned:
https://bugzilla.mozilla.org/show_bug.cgi?id=621198
Another cute addition to Thunderbird: a “Tip of the Week” feature in the Thunderbird welcome screen. Nice little touch!
Enable Nuxeo Live Edit with LibreOffice and Firefox
Following is a quick how-to, as apparently Live Edit with Nuxeo DM 5.5, LibreOffice, Firefox, and the Nuxeo-provided plugins doesn’t work that well out of the box.
My example platform is Ubuntu 10.04 x86, Nuxeo DM 5.5, LibreOffice 3.4.6 (with the LibreOffice Java support packages installed as well), and Firefox 11.
First, grab the Nuxeo add-ons for LibreOffice and Firefox, respectively:
http://download.nuxeo.org/desktop-integration/live-edit/nuxeo-liveedit-ooo-lateststable.oxt
https://updates.nuxeo.org/desktop-integration/live-edit/nuxeo-liveedit-ff-protocolhandler.xpi
The latter link Nuxeo refers to as the “protocol handler” for Firefox, but let’s just say that both are needed to enable Live Edit functionality.
The LibreOffice add-on once installed requires no configuration (and there are in fact no preferences to set). The Firefox add-on however requires manual configuration – as the default settings are inadequate.
Referring to the below screengrab, we have entered our Nuxeo user credentials for automatic server access when saving documents to Nuxeo from LibreOffice. We have set the /tmp directory as our working directory – but note that the path must have the trailing forward slash (i.e. “/tmp/” will work, but “/tmp” will not). We have retained a single default “OpenOffice.org” mapping, but we have changed the editor command to that of LibreOffice 3.4:
That should be all that is needed. When you click the “Edit Online” icon from within Nuxeo you should observe LibreOffice launching and opening the document for editing automagically. Likewise, clicking on the “Save in Nuxeo” icon in LibreOffice should push the document back up to the server without error:
The fallacy of Firefox “bloat” apropos of comparisons to Google Chrome
Chrome users seem to use the “bloat” argument against Firefox any chance they get, seemingly without being able to back the claim up with anything of substance. So, these recent benchmarks are rather interesting.
Memory usage under Windows and Mac OS X:
http://www.tomshardware.com/reviews/macbook-air-chrome-16-firefox-9-benchmark,3108-13.html
“Under a heavy load of 40 tabs, Safari for Windows uses the least amount of memory (just 725 MB). Firefox comes in second at 910 MB, followed closely by Opera at 925 and Chrome at 995. Microsoft’s own IE9 uses the most memory (1.75 GB).
Opera is the only competitor to use less than a gigabyte of memory in Mac OS X. Safari comes in a close second, eating just over 1 GB, followed by Firefox at 1.25 GB. Chrome reports a whopping 2.3 GB of usage with 40 tabs open, which is significantly more than any other browser.”
Windows 7 and Ubuntu:
http://www.tomshardware.com/reviews/chrome-17-firefox-10-ubuntu,3129-14.html
Tres intéressant.
Freedom in video media production
ffmpeg to do screen captures: $0
Audacity to capture audio, perform clean-up and EQ: $0
GIMP to design titles and watermarks: $0
OpenShot to edit footage, add transitions and effects: $0
Web delivery transcoding to the free, patent-unencumbered Theora codec: $0
The Ubuntu OS to run it all on: $0
And seamless video playback (without stupid plugins) using Firefox…
Freedom rules.
Clear Mobile History add-on for Firefox Mobile
Although I’m sure plenty of users lump in their “private” data with their browsing history when using Firefox for mobile devices, it becomes a right pain in the butt when you are also using a local Firefox sync server, and clearing your private data (clearing your browsing history only is not an option) also hoses your passwords – along with your Sync account and settings.
The following add-on is therefore indispensable if you are using Firefox mobile with Firefox Sync:
https://addons.mozilla.org/en-US/mobile/addon/clear-mobile-history/
More information here.
Weird that it’s not included with Firefox, but hey, that’s what a plug-in ecosystem is for I guess :)
Set up Firefox Sync to connect to a PostgreSQL database
A quick follow up to my post here. Although connecting to a MySQL database for storage of user account credentials and sync data is (very) briefly discussed on the official server setup page here, there aren’t any docs for doing the same using PostgreSQL.
Getting basic connectivity up and running to a PostgreSQL database is pretty easy. I’m not going to cover PostgreSQL setup here, so will assume you already have a server and database good to go.
My Sync server is running in an Ubuntu 10.04 x86 VirtualBox VM. In Ubuntu, we need to install the “postgresql-server-dev-8.4″ package and dependencies – you can do this using Synaptic Package Manager for example. (This satisfies the error about the “pg_config” executable being missing that we would otherwise get in the subsequent steps.)
Next, we install the psycopg PostgreSQL adapter for Python, which will enable the Sync server to connect to the PostgreSQL database. Note that we install this using the Sync server utilities (in the server-full/bin directory), and not the Ubuntu package manager:
dave@Ubuntu-FirefoxSync:~/server-full$ sudo ./bin/easy_install psycopg2 Searching for psycopg2 Reading http://pypi.python.org/simple/psycopg2/ Reading http://initd.org/projects/psycopg2 Best match: psycopg2 2.4.2 Downloading http://initd.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.2.tar.gz Processing psycopg2-2.4.2.tar.gz Running psycopg2-2.4.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-SQwqs0/psycopg2-2.4.2/egg-dist-tmp-RtnRce no previously-included directories found matching 'doc/src/_build' zip_safe flag not set; analyzing archive contents... psycopg2.tests.types_basic: module references __file__ Adding psycopg2 2.4.2 to easy-install.pth file Installed /home/dave/server-full/lib/python2.6/site-packages/psycopg2-2.4.2-py2.6-linux-i686.egg Processing dependencies for psycopg2 Finished processing dependencies for psycopg2
Finally, we make the relevant changes in our Firefox Server sync.conf file to point to our database, specifically, the storage and auth sections. In this example, my database is called syncdb, located on the server with the IP address of 192.168.1.4, and the database connection credentials are the user syncdbadmin with the password password:
[storage] backend = syncstorage.storage.sql.SQLStorage sqluri = postgresql://syncdbadmin:password@192.168.1.4/syncdb standard_collections = false use_quota = true quota_size = 5120 pool_size = 100 pool_recycle = 3600 reset_on_return = true display_config = true create_tables = true [auth] backend = services.auth.sql.SQLAuth sqluri = postgresql://syncdbadmin:password@192.168.1.4/syncdb pool_size = 100 pool_recycle = 3600 create_tables = true fallback_node = http://localhost:5000/
Note that contrary to what is written in the official Sync setup guide at the time of this blog entry, the correct driver name to use for the sqluri value is postgresql (i.e.as written above), not postgres as stated in the official docs.
See also: http://www.wenks.ch/fabian/mozilla-custom-sync-server/
Setting up a local Firefox Sync server
I love Firefox. Aside from the quite awesome levels of cross-platform support, I’m a big fan of the built-in Sync feature. For those concerned about security and privacy, Mozilla provide instructions for setting up your own Sync server, and the good news is that it’s a snap to get a basic server up and running.
For a start, on an Ubuntu 10.04 x86 VirtualBox VM, I followed the “Prerequisites” and “Building the server” sections here:
http://docs.services.mozilla.com/howtos/run-sync.html
My server VM is running with bridged networking on my local network with its own IP address.
Upon running the server and attempting to connect from other Firefox clients, I ran into two problems which I don’t believe are documented at the above link.
First, I could not get clients to connect successfully to the server using the handy “Add a Device” Sync feature. To troubleshoot and resolve this, I performed the following steps.
Set up Firefox sync on the relevant client browser.In the Firefox client, launch the Firefox configuration page by entering about:config in the address bar (more information on this may be found here).Use the search filter to narrow down the entries relevant to Sync settings.
I noted that the setting named services.sync.serverURL was correctly pointing towards my server. I would have thought that this was sufficient to get Sync working, but apparently not: in my case, the setting named services.sync.clusterURL was pointing to localhost, and this also needed to be set to the server address (i.e. identical to the value set for services.sync.serverURL). Once done, the client could then successfully connect to the Sync server.
Update to the above: This is resolved by modifying the fallback_node property of the Sync server sync.conf file. There is a somewhat misleading reference to this in the official documentation, which says (at the time of writing):
“Warning: If you run behind a server, you need to set up the fallback_node option in the [auth] section accordingly…”
What is actually meant is if the server is serving multiple remote (i.e. non-local) clients, then the server address should be set in the fallback_node property. By default, the property is set to the following in the sync.conf file:
[auth] backend = services.auth.sql.SQLAuth sqluri = sqlite:////tmp/test.db pool_size = 100 pool_recycle = 3600 create_tables = true fallback_node = http://localhost:5000
If the IP address of my server is 192.168.1.4, then I would modify this to read:
[auth] backend = services.auth.sql.SQLAuth sqluri = sqlite:////tmp/test.db pool_size = 100 pool_recycle = 3600 create_tables = true fallback_node = http://192.168.1.4:5000
Clients should then connect to the Sync server seamlessly.
Second, once my clients were happily syncing up with my server, upon rebooting the server every one of them crapped out with a Sync authentication error. It turns out that the authentication database by default is stored at /tmp, so on reboot of course everything goes kablooey. Again, this is not documented clearly in the setup guide, but it can be resolved by performing the following.
Inspecting the contents of the Sync sync.conf file, the location of the storage and authentication databases can be specified. By default, the locations are defined as follows:
[storage] backend = syncstorage.storage.sql.SQLStorage sqluri = sqlite:////tmp/test.db standard_collections = false use_quota = true quota_size = 5120 pool_size = 100 pool_recycle = 3600 reset_on_return = true display_config = true create_tables = true [auth] backend = services.auth.sql.SQLAuth sqluri = sqlite:////tmp/test.db pool_size = 100 pool_recycle = 3600 create_tables = true fallback_node = http://localhost:5000
I changed these to point to a database that will instead be created at /var/sync:
[storage] backend = syncstorage.storage.sql.SQLStorage sqluri = sqlite:////var/sync/sync.db standard_collections = false use_quota = true quota_size = 5120 pool_size = 100 pool_recycle = 3600 reset_on_return = true display_config = true create_tables = true [auth] backend = services.auth.sql.SQLAuth sqluri = sqlite:////var/sync/sync.db pool_size = 100 pool_recycle = 3600 create_tables = true fallback_node = http://localhost:5000/
After reconfiguring all Firefox client Sync connections, authentication then continues to function after the Sync server is rebooted.
Sync also works successfully from Firefox running on the Eee Slider Pad as well, if the first troubleshooting step is performed.
See also: http://www.wenks.ch/fabian/mozilla-custom-sync-server/
Firefox 4 beta 10 on OpenIndiana x86
Snappy new levels of performance, slick window animations and transitions, built-in bookmark sync, video playback without having to piss around with plugins – along with all the usual Firefox customisation goodies and true cross-platform interoperability (sorry Safari!) – what’s not to like?
Grab it from here (for OpenIndiana/OpenSolaris): http://hub.opensolaris.org/bin/view/Community+Group+desktop/development
Firefox beta 4 for Android has PDF export capability…
Nothing worse than juggling a bunch of webpages over an expensive 3G connection, so what could be better than being able to export them as PDFs for offline viewing? Thanks to the latest Firefox beta for Android (as well as Adobe Reader for Android of course) this is now possible. :)
Available through the Android Market, although note it may have stability issues – be sure to read the release notes.
Resolving aliased fonts and PDF export issues in Firefox on OpenIndiana
For a while now, I’ve tolerated aliased fonts issues in Firefox on OpenSolaris, and now in OpenIndiana without giving it too much thought (it for me being a comparatively minor annoyance). After making a few recent enquiries, it turns out this is due to the omission of certain non-redistributable fonts in OpenIndiana (e.g. Arial, Helvetica). In certain cases, OpenIndiana will substitute these with bitmapped fonts instead – and hey presto, crappy-looking webpages galore.
Thankfully, the easy workaround in comment 13 here did the trick, substituting bitmapped fonts for nice free alternatives:
https://defect.opensolaris.org/bz/show_bug.cgi?id=4605#c13
Similarly, the issue where certain webpages exported from Firefox as PDFs having heavily aliased text (e.g. from the Apple online store) is also resolved by this.
For reference, here are the contents of my ~/.fonts.conf file:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- ~/.fonts.conf for per-user font configuration -->
<fontconfig>
<alias binding="same">
<family>Helvetica</family>
<prefer><family>Liberation Sans</family></prefer>
</alias>
<alias binding="same">
<family>Times</family>
<prefer><family>Liberation Serif</family></prefer>
</alias>
<alias binding="same">
<family>Georgia</family>
<prefer><family>Liberation Serif</family></prefer>
</alias>
<alias binding="same">
<family>Lucida</family>
<prefer><family>Liberation Sans</family></prefer>
</alias>
</fontconfig>





