Using Profiles in Firefox

Since Google has released Chrome, its minimalistic, speed-oriented approach has attracted millions of users, both among neophytes and professionals alike. It’s a well-designed browser with lots to love. But I still use Firefox, and many folks I work with don’t understand why. One of Firefox’s killer features is profiles. Many users are aware that Firefox supports profiles, but don’t make use of them in their everyday use of the browser. But there are several instances where they can prove to be quite useful.

Working with Profiles

Creating a new profile is a simple matter. If you’re invoking Firefox from the command line you can use the -p option to select a profile. For example, if I wanted to select the Personal profile, I would do so with

firefox -p Personal

If a profile named Personal didn’t exist yet, Firefox would bring up the profile management dialog, which would allow me to create it.

One of common problems working with profiles is that Firefox tends to (by default) want to attach to a running session of itself when it is invoked. That makes it tricky to run multiple profiles simultaneously. You can avoid this behavior by using the –no-remote option, which prevents the new instance of Firefox from connecting to an already running process. So, the full command line to bring up Firefox with a given profile is:

firefox -p <profile-name> --no-remote

Maintaining Multiple Workspaces

So, what are profiles useful for? One situation I find them useful is at work. I often need to log into the same site, but with two different accounts. One excellent use of “Private Browsing” or “Incognito” modes is to provide a quick way to create empty profiles on-the-fly that are then thrown away when they are closed. This is great if someone is going to borrow your computer to log into GMail, for example, but if you are going to maintain multiple personas on a particular site, Firefox’s profiles are often better. In my case, I like to keep my personal GMail account open in one profile and my Google Apps account for work open in another.

But logging into the same site with different credentials is only one benefit of this approach. You also get distinct sets of bookmarks, history and add-ons. So, for my work profile, my bookmarks and history all relate to things I do for work. All my GitHub projects for work are bookmarked and autocompleted perfectly, and there is no pollution of my GitHub history in my work profile with projects on GitHub I would check out for side projects.

Likewise, I use certain add-ons for my personal profile that I don’t use in my work profile, like my TT-RSS add-on and LessChrome HD, which hides the address bar and bookmarks bar until I need it. Likewise, Firebug and other development-related add-ons reside only in my work profile.

Create ‘Apps’ From Websites

Sometimes there are sites that I use so frequently that they become apps in their own right. This idea has been explored extensively by all major browsers, and Firefox has made several attempts at streamlining the process of sandboxing sites into applications, all of which are now defunct as far as I know. Nevertheless, there are some sites that I treat like applications and like to launch and shutdown independently of all my other tabs. Often, I like to run these sites in fullscreen, or at least turn off the menu bar, tab bar and address bar to maximize my screen usage. By sandboxing these pages into a separate Firefox profile, each ‘app’ can have its own Firefox UI settings and add-ons and can be launched independently of whatever other browsing sessions I have going on.

My primary use case for this is my RSS reader (a private instance of TT-RSS), which runs pseudo-fullscreen and has its homepage set appropriately. To launch it (I use Linux), I simply wrote a shell script and put it in my path:

$ cat ttrss

#!/usr/bin/env bash
firefox -p ttrss --no-remote

This script could be attached to a desktop icon, menu item or other shortcut, but I launch it using Synapse. In the absence of Prism, and Chromeless (both of which are around, but unmaintained), I find that Firefox profiles is an effective replacement.

Google Supports the Web (Not the Internet)

For years I’ve held Google as the prime example of a corporation throwing its full weight behind the open internet. But it gives me pause when people start saying that Google is “rapidly turning its back on every single open standard”.

Using Dreamhost DreamObjects With S3 Tools

S3 has become so prevalent as a data storage service that its API has become something of a de facto standard for data storage. While Amazon promotes Cloud Drive as the consumer-focused product based on S3, S3 itself is quite accessible to end users through various clients. Many of those clients are proprietary, but there are two that I use that are free and open source.

The first is part of the s3tools suite, and is called s3cmd. Given your access key and secret key, s3cmd gives you full access to the S3 service, allow creation, modification and deletion of S3 buckets. It even supports an interface for syncing entire directories to S3 in one command.

Building a Library

Since childhood, I have been drawn to the idea of amassing a collection of literary cultural artifacts that I can share and discuss with my family, and pass down to them to expand. This was quite ambitious in the days when entire rooms of your house would have to be devoted to storing books, but with the advent of digital books, I can not only store as many as I could ever read and carry them with me most anywhere, but I can store them for all time without fear of the bindings breaking down or the pages yellowing with age in the sun. We live in a time in which we have unprecedented access to literature globally via the internet.

Of course, we face different challenges today in building a library. Some of these are new problems that come with the rapid pace of technological development. It turns out that there are some inherent difficulties in storing data in enduring formats that will be readable in the next few decades. Plain text seems to be a good choice, and I expect HTML and its derivative formats (like epub) will age well.

In addition to these new technical challenges, we also face challenges imposed by publishers, many of whom have historically demonstrated some resistance to adopting the benefits of instant global access to data via the internet because of the obvious implications to their business model based on scarcity. The most direct manifestation of this resistance comes in the form of DRM, which encrypts the data they sell you so that it is only readable on your devices. Most every major online bookstore makes it quite difficult to read content you buy with devices or programs not authorized by that store by encrypting it. Some have taken this a step further (like the Kindle Fire) and now make it quite difficult to read anything but the encrypted content they sell you.

The Retro Gaming Fad

As 2012 draws to a close, I think its worth taking a look at retro gaming. Near the dawn of virtual reality and well into the teens for globally shared MMOs, it’s popular to be playing and making “retro” games. What I’ve noticed, though, is that this is only true so long as the games aren’t too retro.

Real Retro

GOG.com has given really good old titles new life, which is a good thing for everyone, as I see it. As Jeff Vogel of Spiderweb Software said in his 2009 blog post The Joy of Rereleasing Old Games:

One of the most frustrating things for me about video games as an art is that individual titles die out. The older a game gets, the better the chance it will stop working on new machines. … The machines that will run it grow ever older and dustier. I think this is HUGELY wasteful.

Portals and Tiles: A Better User Interface

According to Wikipedia, Alan Kay introduced the desktop metaphor in 1970 when he was working at Xerox PARC. I think it has served us well because it has allowed novice computer users to approach computers in ways that were familiar to them using old tools: trash cans, file folders, filing cabinets, and pieces of paper. Programs themselves occupied the screen real estate in the same way a piece of paper occupied the space on a desk; programs appeared in windows that could be moved around and could overlap, just as their tree-based counterparts. Although we’ve all worked in offices that had all those things, I’d venture a guess that no one under 40 today has ever worked in an office without a computer. I assert that it’s time to retire the desktop metaphor in modern computing.

Virtual Reality: Creating Immersion

The purpose of my last post was to explain one reason why, in 2012, virtual reality is more than a pipe dream. It was meant to preempt a reaction of “Well, they’ve been talking about 3D movies and photos for 20 years also, and we have only made modest progress on that front.” As a coworker said when he heard I was excited about virtual reality: “That sounds like the 90s.” If you hype a technology for 20 years and it doesn’t really go anywhere, people become jaded and give up. I’m writing this because I believe there is good reason to have hope. Virtual reality is real, and it is cool. Let me explain why.

This post is meant to get into more detail about the current challenges associated with virtual reality, and the state of the art. Almost everything I’m going to write about is sourced from John Carmack’s 2012 QuakeCon keynote, and the follow-up panel discussion with Michael Abrash (seminal FPS developer with John Carmack, now researching VR at Valve Software) and Palmer Luckey (VR headset enthusiast and founder of Oculus, the makers of the Rift VR headset due for release in 2013). These discussions are the most comprehensive treatment of the current state of VR I’ve seen or read anywhere, and they are extraordinarily timely.

The VR Revolution Begins Now

Virtual Reality has been a geek dream for decades. If you haven’t been following closely, you might have missed the fact that all the technology needed to make it happen is here, right now. It’s not years off, it is being used right now, and it will be available to consumers in the coming months. To be honest, I haven’t been so excited for a gaming phenomenon since I rode my bike to Babbage’s to pay $6 for a few floppies that had Doom Shareware on them. How did this happen? After years of talk and marketing, we’ve made some modest inroads with 3D movies, and yet, all of a sudden, we have virtual reality. People are building it, and it is affordable.

Welcome to the desert of the real.

Gollum: The Ultimate Personal Wiki

You may already know that this blog is powered by Octopress (it says so at the bottom), which is a Ruby-powered static site generator. In the course of my travels, I found a wiki written in Ruby as well, courtesy of the folks over at GitHub. The wiki is called Gollum, and it powers GitHub’s project pages.

Gollum is badass.

For one, it accepts a whole slew of markup formats, including Org Mode (via org-ruby), but also the usual suspects, including Markdown, Textile and Creole.