Running an SSH client inside your Firefox web browser

I recently came across FireSSH, which is an SSH client that runs inside Firefox. The FireSSH plug-in allows you to create an SSH connection to a remote host using just a web browser, and I can see all kinds of uses for this! The plug-in is written entirely in javascript, and uses a couple of features that require Firefox 4 (Firefox 4 rocks, so upgrading to it should be a no brainer). To access the plug-in, you will first need to surf over to the mozilla plug-in site and install it using your choice of installation options. Once installed, you can run FireSSH by opening Firefox and running Tools->FireSSH. This will present the following screen:

null

Once you fill in the connection attributes you will we logged in and presented with an interactive SSH window similar to this:

null

FireSSH also supports public-key authentication, so you don’t need to rely on passwords to get into your hosts. This is a killer app, and I LOVE Firefox 4. It loads quickly, it’s super fast and the UI layout rocks. Niiiice!

Firefox HTTP header plugin

If you are periodically tasked with debugging web applications, you may have heard of the Firefox HTTP Live Headers plug-in. This plug-in is useful for displaying HTTP request and response headers, and allows regular expressions to be used to control which pages and content are retrieved. I can’t figure out if I like this plug-in or the greasemonkey plug-in better. Choices Choices!

Speeding up firefox

As a UNIX and network guy, I try to optimize systems and networks to deliver the most bang for the buck. I recently came across the following post on the Mozilla Zine web forums:

http://forums.mozillazine.org/viewtopic.php?t=53650

This link covers several tunables for Firefox, several of which can significantly speedup page load times (especially when you have a tabbed list of news sites):

network.http.max-connections: This value controls the maximum number of outbound TCP connections. network.http.max-connections accepts an integer value and defaults to 24.

network.http.max-connections-per-server: This value controls the number of concurrent requests to a single site. For sites that contains hundreds of URIs in a single page, this should speedup page load times (barring the remote site isn’t rate limiting inbound connections). network.http.max-connections-per-server accepts an integer value and defaults to 8.

network.http.max-persistent-connections-per-server && network.http.max-persistent-connections-per-proxy: These values control the number of persistent HTTP connections that can be maintainted to a website. Both parameters accept integer values and default to 2 and 4.

network.http.pipelining && network.http.proxy.pipelining: These values control the HTTP 1.1 pipelining feature, which allows multiple HTTP requests to be requested at connection setup. Both parameters accept boolean “true”/”false” values and default to “false.”

network.http.pipelining.maxrequests: This value controls the number of requests that will be issued at connection setup. network.http.pipelining.maxrequests accepts an integer value and defaults to 4.

You can tweak these settings by typing “about:config” into the Firefox navigation toolbar, or by directly editing the user.js preferences file. I picked my current values by adjusting the current values, clearing the cache, and calculating the time it took Firefox to load 50 tabs. I was able to cut 14 seconds off my news site load time by doubling, and sometimes tripling the default values :)