Even before BYOD further blurred the lines between work and home life, employees used their corporate supplied devices for personal use. Regardless, keeping personal browsing separated from work related browsing is a good idea. Perfect hygiene would dictate using different computers for personal and corporate use, that’s rarely ever happens. There are a number of different ways you can use the same computer for both personal and corporate browsing including having separate accounts on the machine (if you have permissions), running personal stuff in a virtual machine, or running different browsers for each purpose.

The last is probably the easiest and I have a co-worker who claims to run 5 different browsers on his laptop just for this purpose. Mind you, there are a lot of other reasons for wanting to run different browsers for different purposes. You could be running different browsers for testing, performance, and security reasons. I’m not going to delve into that. I’m just focusing on using the same browser for different tasks that are isolated from each other.

In this case I’m using Google Chrome and I want to use it for both personal and work-related browsing. I also need to make sure to keep the activities of one isolated from the other. Using private browsing for personal stuff might suffice in many cases. Since I sync stuff among personal machines, though, private browsing won’t work. Instead, here’s how I run multiple instances of Chrome on the same machine at the same time.

The following are instructions for OS X, but should work similarly on a Linux desktop adjusting paths as necessary. I haven’t touched a Microsoft Windows PC in nearly a decade, so I have no idea how to pull this off there.

Initializing a New User Data Directory

Chrome stores user configurations, extensions, bookmarks, cookies, caches, stored forms, and other transient data in a user data directory. Knowing this, you can setup different data directories for each type of “user” while having just one Chrome binary installed. Here are the steps to get that going.

The default location for Chrome to store the user data is /Users/[username]/Library/Application Support/Google/Chrome/. I use this default for my work account. To create and initialize a new user directory perform the following tasks in a Terminal window.

  • export chromeApp="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
  • mkdir ~/Library/Application Support/Google/Chrome-personal
  • "${chromeApp}" --user-data-dir="/Users/andy/Library/Application Support/Google/Chrome-personal" >/dev/null 2>& Notice that in the quoted line in item 3 you need to use the full path to the data directory. Tilde (~) expansion will not work within the quoted string.


The last command should start up a new Chrome browser. First Chrome will pop-up with a “Welcome to Google Chrome” window. Upon clicking “Start Google Chrome” it will populate the Chrome-personal directory with initial user data, and then bring forward a browser window. This will ask you to log into Chrome. Whether you do that is up to you.

With the new Chrome window open, you will need to install any extensions, bookmarks, etc you want to customize this browser. I would highly suggest setting a theme to this window so that it is easily visually different from any other copies of Chrome you might run at the same time.

Lather, rinse, repeat for any additional entities you’d like to create.

Startup Script

I wrote a simple shell script to start my browsers up with the requisite user directories. Since Chrome is set as the default browser on my system, it is important to note that the first Chrome process started will be the one that gets used for opening new links from other applications. In the example below, this makes my personal session the default for new tabs/windows from other applications.

Chromes.sh – gist link

#!/bin/sh
## Chrome App
app="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

## Non-default user data directories
usrDir="/Users/andy/Library/Application Support/Google/Chrome-personal"

## Fire up Chrome
"${app}" --user-data-dir="${usrDir}" >/dev/null 2>&1 &
"${app}" >/dev/null 2>&1 &

## If Chrome is default browser, then the first process fired will be
## where new links/tabs are spawned from other applications.

Remember to chmod u+x chromes after you are done editing.

You can now fire off this script from any open Terminal window. Or you can do the following to make it run when double-clicked in the Finder.

Make a Shell Script Run Like a Native App

In your Terminal window perform the following:

  • mkdir -p ~/Applications/Chromes.app/Contents/MacOS
  • copy your shell script to ~/Applications/Chromes.app/Contents/MacOS/*

    e.g. cp Chromes.sh ~/Applications/Chromes.app/Contents/MacOS/

  • open ~/Applications/Chromes.app/Contents/MacOS/ Chromes in Finder
    Chromes script in Finder
  • In the Finder window that opens, select Chromes.sh and type ⌘-i to open the information pane for the shell script. Then change Open with to Terminal.app. Chromes Finder Info panel: Open With
    Open with Terminal.app
  • Run open ~/Applications to open a Finder window with the local user Applications. Chromes.app in Finder
    Chromes.app in Finder
  • Select Chromes.app in Finder type ⌘-i to open the information pane for the Application. Download and open in Preview the following png file. In Preview select all (⌘-a) and copy (⌘-c) the image. Then select the Icon at the top of the Application Information pane and paste the image (⌘-v). You will see the size of the application change and after a few seconds the Icon for Chromes.app will change as well.

    Chromes.app Finder Info
    Chromes.app Finder Info

  • You can now double-click the Chromes.app and fire up your multi-Chrome browsers. You can also drag the Application Icon from the Finder into your Dock for future use.


Example Icon


The Results:

Two Different Chrome Processes
Two Different Chrome Processes

Alcohol content: low (clearly huffing glue)


Parking at one of the Veritas/Symantec building in Mountain View and I saw this posted on a nearby dumpster enclosure.  Considering that this particular piece of real estate has cycled from Fairchild, National Semiconductor, Cisco, Netscape, AOL, VeriSign, Symantec, Veritas, and is owned now by Google, I was surprised and depressed that this is about the only relic from that first dot-com boom.

I probably already have co-workers who look at Netscape as a historical item in the same way a PDP-11 was to me.

Alcohol content: stone code sobriety (a 40 poured out in memorial)

Continue reading

1999… One day I worked for a company I liked and then next day I was part of a major corporate conglomerate. The days before the deal everyone was told from the highest levels that things would not change so much– at least not for a while. Reassurances were made that certain people would keep there jobs and that those jobs would be crucial to the new merged company. Mostly we were told that this was a merger and not a buyout. All that changed the day the deal was completed.

The HR department ended up spending the entire night processing the list of people who would get laid off the next morning. Then there was the paperwork that needed to be generated for the people would would allowed to stay. No longer would you be an employee of Netscape, but an AOL drone. The offers to stay were boilerplate and everyone was given a gift of 100 stock options. The options though, were completely worthless at a strike price of $108.00 on an already sinking stock. Many people left after the deal even though they had not been laid off. Many people left before the deal with completely on shear principle. Others, like yourself, stayed on, still believing that there really wouldn’t be that much change and that things could not get that bad.

Initially, after the shock of the layoffs was over, things had stabilized and were fine. Life was nearly normal. For a few months nothing really changed except some additional responsibilities and the addition of a new project. The drink machine remained free and the price of snacks didn’t change, so overall, everything was fine.

Work continued and a new project lent itself to discovering more and more disturbing things about the “merger.” Since the computer systems that would run this new service you were about to bring up would be housed in AOL datacenter space, you ended up having to deal with more AOL personnel than would normally be the case. You discovered their internal disorganization and the great inertia to change. There was one way to operate and that was the AOL way. Even when that way was old and outdated and served no function, that was the only way to operate. Groups within AOL were highly compartmentalized and there was little to no communication between groups. Attempting to get the AOL NOC to get in touch with the persons responsible for a machine was a nightmare of fruitless hunting. They didn’t have the answers and it took them hours to find the answer. Then, typically, the person in question would be completely unreachable except from their desk.

The event that broke the camel’s back, though happened one lovely Thursday morning when a PDU (Power Distribution Unit) failed back at AOL’s main datacenter. Even though all your machines had dual power and been specified as being powered through redundant PDUs, they were down. The first call to the AOL NOC went something like this:

“Hi, this is Andy from Netscape Operations, and the servers in section Z, row 24, cabinets 4 through 9 are unreachable. What’s going on?”

The NOC drone responds after a pause, “We had a PDU fail, sir.”

“Those machines are dual-power they should be on a redundant PDU.”

“Uh, I don’t know. I’ll look into it. What’s your number so I can call you back in a half hour.”

A half-hour turned out to be the minimum turn around time for any NOC request, I would come to find out.

“Wait,” I asked, “What’s the ETA on the PDU getting fixed?”

“Not sure, sir,” the drone responded, “I’ll get back to you on that.”

For thirty minutes, I ping and retest to see if the site has returned. At the fifteen minute mark, per Netscape protocol, I escalated up the chain of command to let folks know what’s down and why. The lack of an ETA doesn’t make anyone happy. A few minutes after the 30 pass and I get my call back.

“What’s the story,” I ask without allowing for a greeting.

“The PDU will take another 4 to 5 hours to replace. Then everything should come up.”

“WHAT,” I shout down the line,

“These are production systems. They shouldn’t have been allowed to be down this long. Why aren’t the secondary power plugs in a different PDU?”

“I don’t know. The ticket on the order for power was closed as completed.”

“Well, can we get someone to change the plugs now,” I ask attempting to calm down.

“I could create you another ticket. But since all the power folks are working on the PDU, I doubt they’ll be able to look at this until Monday,” the drone responds without emotion.

“Make the ticket and escalate it sev 1,” I demand.

The ticket gets made and I’m told I’ll get a call back in another half hour on the status of that and the original PDU. Through the regular half hour calls, I badger my management chain to bug their AOL peers. The lack of availability by desk phone, mobile phone, email, or pager strains credulity. While contacts are made and home phone numbers exchanged, no real progress is made. In slightly more than four hours, the replacement PDU comes online and my servers start lighting up. But not all of them.

I call the NOC, “Has power been completely restored?”

“Yes, sir.”

“Some of my servers are not coming up. Can you check if they have power?”

“Sure, let me get back to you in a half hour,” comes the typical response and not unexpected.

At least at this point I have more work I can do to continue restoring the system. By the time I get the call back to tell me that the machines have power and show as on, I have a theory as to the problem.

“Can you get someone on the console and have them type boot on the following machines,” I ask the NOC drone.

“Sorry, I can’t do that.”

“That’s fine. Just find someone who can.”

“No, sir, I can’t have anyone do that until after the change freeze.”

A change freeze is where nothing is modified within a system for a given amount of time in order to ensure stability. It’s fairly standard practice, but usually break-fix work does not apply.

“What do you mean there’s a change freeze? This is a production system which is down. It should’ve been back up hours ago. When can someone get in there to fix it?”

Without a sense of urgency the drone responds, “The freeze is in effect from four pm Thursday through Monday at 9.”

In a fit of apoplexy, I hang up my cell phone and then start slamming the receiver of my desk phone. The latter being so much more satisfactory. Running to find my VP, I explain the inanity of the situation with far too many expletives to be politically correct. A few calls and 45 minutes later some monkey is in the datacenter typing boot on about a dozen servers and validating that they come up. After giving the all clear, your boss and VP come over to tell you to go home.

“You can write up the post-mortem later in the week. Get some rest.” “Yeah, you look like you might kill someone.”

I apologize for my behavior and slouch in my chair.

“It’s fine,” explains the VP, “They need to learn from us. It is completely unacceptable how much of their infrastructure is down at any time. And the lack of response is really bad.”

I shrug as they leave and pack up my gear and go home.

As much talk as their was about AOL learning from us, the fiefdoms and bureaucracy were too well entrenched to really change. Netscape was just another conquered bit of territory. Bits of it were shut down or given away to partners. Over time almost everything was moved from California to headquarters in Dulles, Virginia. Before that happened, though, I left for a startup. It was a better choice than waiting to get laid off some other week. It was a better choice than walking around the empty sad halls of Netscape.

A startup. That was the ticket…

Alcohol content: None (They killed Beer Friday)

Continue reading


Gather around children and hear my tale of years yonder when music was consumed on physical media.  The primary form factor of the late 1990s through early aughts being the Compact Disc or CD.  These fragile plastic discs came in a protective shell of even more fragile plastic that was designed to shatter while attempting to remove the protective plastic film that wrapped the shell.  So the device seen above was invented to slice open this plastic film in hopes that you could retrieve your CD without anything breaking.

The particular example above came from my short stint at Napster after they had been shut down by the courts, but before they filed bankruptcy and sold everything to Roxio.

I’ll have to check if these work on Blu-Ray cases before those go obsolete as well.

Alcohol content: Pliny (beer)

Continue reading


I’m fairly ready for this year to be over.  I was actually fairly ready before January ended, but decided to wait and see.  February is drawing to its short close at this point and with a +/- margin of 5%, I’m 70% certain I could be done for the year.

Either it’s karmic retribution for some truly bad choices I’ve made over the last couple of years, or my warrantee has expired.  Things have gone from bad to worse with a few moments of greatness and a lot of sadness.  The background noise of another  person  of  note  dying  this year just adds to the general mood.  I’m certainly done with the shouting match that’s become of the election season.

It would seem that a recurring upper respiratory infection has taken a hold of me.  Each cycle lingering longer with more convulsive coughing fits and lung butter.  Cops have taken to staking out my domicile as a potential meth lab.  My pharmacist must have narced on me with my frequent and regular pseudoephedrine purchases this year.

Whatever I’ve got appears to be a viral infection.  Chest x-rays and other tests always come back negative for bacterial.  Some ingested and inhaled steroids are the call to order to kill that off for good.  And this time, the doctors mean it.

If that were my only problem, then I’d tell myself to shut up and stop whinging (actually, I do that anyway, but I keep typing nonetheless).  Because for added fun, I’ve gone four 12-lead EKGs, a chest x-ray, and a CT scan in February alone.  Three different blood draws were done in the last 7 days.  On the blood panels, everything looks damned near normal.

So at this point, all the doctors can’t seem to understand what’s going on with the Tin Man.

Monday is a new day, with more doctors.  Maybe some answers will come.

Alcohol content: other ( cough syrup codeine counterindicated)

Continue reading