Salesforce Security Health Check


Back in Spring ’16, Salesforce added a tool for assessing an org’s security – Setup > Security Controls > Health Check. I hadn’t had a reason to use it until recently. Despite having the standard System Administrator profile, I got the following error when trying to use it.

Insufficient Privileges

You do not have the level of access necessary to perform the operation you requested. Please contact the owner of the record or your administrator if access is necessary. For more information, see Insufficient Privileges Errors.

Click here to return to the previous page.

It took me a bit of Googling to figure out what was going on. According to the Security Implementation Guide;

To view Health Check:
• “View Setup and Configuration” AND “Modify All Data”

Easy enough. My profile didn’t have those enabled so, I created a permission set, updated those two permissions, and assigned the set to my user.

No luck.

After yet a bit more searching, I noticed two permissions called “View Health Check” and “Manage Health Check”. Enabling those finally gave me access.

Hope this helps save you some head scratching.

Related Resources:

Posted in Salesforce | 1 Comment

DIY Monitor Hood

_dsc2373-editGiven recent upgrades in my printing capabilties, I decided to treat myself to a new monitor as well. After some research, I selected a Dell U2413, a sub-$500, backlit IPS with wide-gamut coverage  (99% Adobe RGB, 100% sRGB). With good reviews on TFT Central and elsewhere, it’s probably one of the best options for amateur photographers who can’t justify spending $2,200 on an Eizo ColorEdge .

While purportedly marketing their flagship monitor to prosumer photographers, Dell unfortunately didn’t see fit to manufacture a hood for it. I wanted a monitor hood to block the light coming in from my large windows (and more honestly, because pimping my monitor adds a little photog street cred).

Options on eBay were either expensive or cheaply made. So, I decided to go the DIY route and build my own inspired by Roger Sacul’s, post on DIY Photography. I took his concept a few steps closer to professional hoods I’ve seen. First, my design eliminates any gaps that would be noticeable if a light source were behind your monitor by extending the supports the width and length of the monitors’s top and sides. Secondly, I incorporate microsuede to eliminate any reflections off the smooth surface of the plastic. The end result looks a lot closer to the real deal (for a lot less money).

While his post contains a basic framework and some nicely taken photos of the end product, it’s a bit short on the details one would normally find on an Instructable. While I’m not as good a photographer, I do have some skill with Google SketchUp. So, hopefully, this post fills some of those gaps (pun intended).

First of those shortcomings was a inadequate Bill of Materials. Here you go;

Plastruct 90007 Angle ABS 5/16″ (Pack of 4) (They’re grey. Don’t worry. We’ll take care of that later)
ABS Sheet – .118″ Thick, Black, 12″ x 24″ (or 24″ x 24″ for full length sides)
12″ X 36″ Self-Adhesive MicroSuede
Testors Enamel 1/4 Oz Bottle Flat Black
1.75oz Testors Enamel Plastic Model Paint Thinner
Surehold Plastic Surgery Super Glue
Velcro strips (Pack of 4)
Heavy Duty Utility Knife or hacksaw
Medium Grit Sandpaper
Backing board (larger than 6″ x 12″)

The second shortcoming of Roger’s post was a lack of comprehensive measurements. Those that were present had some weird “cm” notation that my ruler didn’t have on it. Here in ‘Merica we use the Imperial units of measure just like the Queen intended!

You could use these instructions to construct a hood for another brand or size monitor. You can adjust the top and side dimensions accordingly. You’ll obviously need a larger ABS sheet for monitors wider than 24″.


The ABS sheet has a textured and smooth end. All cuts should be made smooth side up. This will serve as the interior face of the hood. Don’t worry about stray marks since we’ll eventually cover things up with paint and the adhesive suede.

First, cut the ABS sheet down the middle lengthwise to form two 6″ x 24″ sections. If you have a hacksaw, you may be able to do this is one cut. I only had a utility blade. While this eats up less material in the cutting (i.e. the width of the blade equals the amount of material lost), it takes longer because you need to “score” the material. If you’re not familiar with scoring, that’s where you don’t cut the material in one operation but, instead do a progression of cuts, each deeper than the next, to eventually cut all the way through. One trick I found was that I only need to score about halfway through before I could fold the sheet and get a fairly clean cut.

Another tip to get a nice clean score; once I had my straightedge laid out and measured correctly, I used blue painter’s tape to “lock it down” on the non-cutting side. This keeps the straightedge from moving between scores (cuts). Resist the urge to try adding too much pressure on each cut. This first one is the longest and I honestly had to walk away from it because my hand went numb after a while. Taking a 30 minute break, some aspirin, and some beer helped me. I highly recommend it.

Now, you have two sections of 6″ x 24″. Take one and cut it in half as well. Same process as before. The resulting 6″ X 12″ sections will be the sides of the hood.

Now, here’s the only part that varies depending on your specific monitor; the length of the top section. The U2413 has curved corners so just running a tape measure along the top is a inaccurate. The better option is to run the tape measure across the face of the monitor and measure to the outtermost edges. Now here’s the most important part; be very exact and remember to add the width of the ABS angles. Here’s how it worked in my case; edge to edge the U2413 is 21 7/8″ wide (like I said, be exact to 16th’s of an inch). If you bought the same angle as in my bill of materials, the wall width of the angle is 1/16″. We will use two angles; one on each side.

21 7/8″ + 1/16″ + 1/16″ = 22″

If you have a U2413 like me, then just take the 6″ x 24″ section and cut the length to exactly 22 inches.

First cuts

Left: The 6″x 12″ sides – Right: The 22″ top with a bit of scrap left over.

NOTE: At a 12″ length my sides are about 2 3/4″ short of the bottom of the monitor. If you’d like longer sides (as I would, were I to do it again) use a 24″ x 24″ ABS sheet. You’ll have to adjust your measurements slightly and make a few more cuts.

If you’re tired of cutting, you could just leave the sides squares and go straight to gluing. However, curved edges will make your end result look that much more professional. Here’s where I found Roger’s post the most lacking in detail. He just referenced an Eizo manual and a small diagram of the hood that comes with it. I found that difficult to adjust to the dimensions I needed. So, I created my own using OmniGraffle. You can download my PDF Template.

Print the template file on US Legal paper (8.5″ x 14″). Cut it out along the lines and you have your first template. Now, paper isn’t thick enough to use as a straightedge. So, take your paper template and transfer it onto the matboard. I taped the paper to the board on the three straight edges (line it up corner to corner). Use the utility knife to cut along the curve and bottom edge. TIP: Use a pen to write LEFT on one side of the matboard and RIGHT on the other. This will remind you to flip the matboard between cuts and keep you from ending up making duplicates of the same side. You don’t have a lot of margin for error with materials here, so measure twice and cut once always.

Matboard Template

Matboard Template

Using the matboard as a cutting template. (Ignore that mine is longer than the plastic)

Using the matboard as a cutting template. (Ignore that mine is longer than the plastic)

Repeat the same steps (tape included), this time with the matboard  to transfer the shape to the two 6″ x 12″ pieces of ABS plastic. Use the same scoring techniques as before; smooth side facing up. Again be sure which side you’re cutting on, otherwise you could end up creating two of the same side.

Now you have to cut the L-shaped angle pieces that will serve as the connectors and frame for the top and sides. Again you can use a saw or knife. Same techniques apply. I found it was easy to use my blade to cut through one part of the angle and then just fold it to make a clean break, rather than cut through the entire thing. That will save some time.

If you bought the same item I have in my bill of materials, you have four sections 24″ long. You’ll need only three of these with some material left over.

Take one section and cut it into 4 equal lengths of 6″ each. These will be the top left and right inner and outer corners.

Take a second section, and cut it in half; two lengths of 11 1/2″ each.  These will be the left and right vertical edges.

Take the third section and cut it to 21 3/8″. This will be your top horizontal section. It will go between the two vertical sections so, we subtract their width from our top measurement (22″ – 1/16″ – 1/16″) .


Finally, all the cutting is done. Now comes the assembly. A word of advice, try fitting pieces together before gluing. Once you lay down glue, you’re committed. Sanding the areas to be glued helps gives the glue a better surface to adhere to. You may also need to sand edges just to make sure things marry up correctly.

Also, I highly recommend the Plastic Surgery glue. It’s like Krazy Glue only better suited for plastics. I started off using PermaPoxy PlasticWeld and it was terrible for such detailed work. Epoxy expands on drying; creating gaps and leaving residue all over the place. After switching, I was much happier with the results.

Take the 22″ x 6″ panel of black ABS that will serve as the top of the hood and place it textured side down. Use the sand paper to scuff up the smooth surface on the left and right face. This will help the glue adhere better. Take two of your 6″ lengths of the gray angles and sand the outer sides as well.

Glue the angles flush to the left and right sides of the sheet, angle facing inwards. I used a wood block to make sure the angle was flush to the side. Don’t leave it there too long or it might get glued as well!

Glue the angles to the left and right sides of the top.

Glue the angles to the left and right sides of the top facing inward and flush to the edge.

Next, take the longest 21 3/8″ gray angle section, sand and glue it parallel to the long edge of the black sheet, 11/16″ from that edge. Make sure the inside of the angle is facing the same edge as in the image below.


Overview: Place the cross angle between the side angles and perpendicular to the back edge.


Place the angle facing the edge and 11/16" from the egde.

Detail: Place the angle facing the edge and 11/16″ from the edge.

Wait about 30 minutes to let the glue dry sufficiently. Now, you can move on to gluing on the sides. Sand the smooth face on the top edge of the side panel and glue it to the side angle on the top section. Repeat on the other side.

Glue on the sides. The smooth part facing in and the curve on the opposite side as the cross angle.

Glue on the sides with the smooth part facing in and the curve facing away from the cross angle.

I used a stack of books to hold the side panels vertical while the glue dried. I was concerned about the possibility of dripping glue adhering the whole thing to my desk, so I shifted the whole piece slightly every few second for the first 30 seconds. Give the glue another 30 minutes to dry after that.

Take the two remaining 6″ lengths of gray angle and glue them to the outside corners of the top and sides. This will cover up any imperfections in the cuts and make the whole thing more stable.

This exterior angle helps add stability and makes the glue-up look nicer.

This exterior angle helps add stability and makes the glue-up look nicer.

Next part is a bit tricky. Remember you have an extra angle piece if you F* it up.

You have two remaining angles 11 1/2″ long. We’ll glue those to the sides, perpendicular to the cross angle. Cut a notch in the top of the angle to make it fit flush and covers any gaps. Again the angle is 11/16″ from the edge.

Overview: Placement of vertical side angles.

Overview: Placement of vertical side angles.



Detail: Notching the end of the angle allows it to sit flush.

It’s easier to confuse sides here, so take your time and do one side at a time. Sand and glue the angles with the inside corner facing the back.

Overview: Top down view of completed assembly.

Finishing Touches

Sand down any sharp edges or overlapping sections where things aren’t flush. You may have some white on the edges of the black plastic sheet from where you folded it. Sanding it will get it back to black. We’ll also use the paint at the end for touchups.

Cut out a section of the microsuede 23″ x 5 7/16″. This is one inch longer than the top piece so, you have overlap with the suede on the side walls.  I scored the backing in the middle so i could do one half at a time. Line up the suede flush to the front edge and fold the back edge over the cross angle. Binder clips or clamps can help here.

Apply the microsuede to the top front of the monitor hood. It will overlap the sides a bit to cover the interior angle.

Apply the microsuede to the top front of the monitor hood. It will overlap the sides a bit to cover the interior angle.

Use the matboard form you used to make the curved sides to cut out two pieces of the microsuede. Make sure to make all your cuts are adhesive side up and make sure to flip the form over from LEFT to RIGHT. Otherwise, you’ll end up getting making duplicates of one side rather than two sides (as I did).

The adhesive is quite strong so take your time to line things up. The suede should be flush to the front curved edge (not the back). Remove the backing and starting from the front curved edge, lay down the microsuede. When you get to the L- shaped side angles fold the microsuede over them. You may need the utility knife to make some cuts on the top and bottom. I used binder clips to ensure a solid adhesion on the angles. Trim the material between the back edge and the angle since that’s where we’ll place the velcro strips.

Apply the microsuede on the sides. Make sure it is flush to the front (curved) edge.

Apply the microsuede on the sides. Make sure it is flush to the front (curved) edge.

You can cut extra pieces to cover any gaps, but if you did this correctly the only exposed plastic on the interior will be covered by the monitor itself. If the edges have frayed threads coming out, light a match and run the flame quickly down the edge. This will melt the synthetic threads and keep them from unraveling.

Paint all outer gray angles and cover any other imperfections with the matte black paint.

Lastly, use the Command strips or adhesive Velcro to attach the hood to the monitor. I placed a one velcro strip on each side and two on top. You’ll need to trim the pieces to fit.

One day when I get a hacksaw, maybe I’ll cut a section out of the top center so I cant use my display calibration with the hood on. (See step 7 in Roger’s post.) My hand was too cramped after all that cutting to bother.

Final Product

Here’s a few attempts at documenting the final product as beautifully as Roger did.

_dsc2373-edit _dsc2376-edit _dsc2379-edit


Posted in Uncategorized | Tagged , | Leave a comment

Profiling an Epson 9600 with an X-rite i1 Pro and ArgyllCMS

This is part 3 of my continuing experience with an old Epson 9600 i picked up on Craigslist. (See part 1 and Part 2)

Do you see what I see?

After spending as much on paper, ink, and parts as I did purchasing the printer, I decided to put another ($400) drop in the bucket to pick up a X-rite (formerly GregtagMacbeth) i1 Basic Pro spectrophotometer (a.k.a Eye-One Pro, EFI ES-1000) on Ebay. This tool handles profiling both my display and my printer. Display profiling confirms that the colors on the screen are actually what’s in the image file. Printer profiling confirms that the ink hitting the paper matches what the computer thinks it’s sending. Having both sides of the equation in place means what you see on the screen should match what you see on the page.

Calibrating my printer and looking good doing it.

Calibrating my printer and looking good doing it.

In my last few projects, I’ve been dealing with lack of supported software for older hardware. This effort is no exception. The i1 Basic Pro (Is that an oxymoron or what?) originally came with i1Match, ProfileMaker and MonacoPROFILER all of which won’t run on my Intel-based Macbook running OSX 10.8. X-Rite recommends upgrading to i1Profiler. You can download it from their site easily enough, but unless your device has a license key for it, it will run in evaluation only mode. There is an upgrade path you can buy, but that will run you $699. For that I could have bought a brand new i1 Basic Pro 2 at $1200. Though, more likely, I would have gotten the popular and less-expensive prosumer version, the ColorMunki Photo.

From previous experience, I was aware that the open-source software, ArgyllCMSsupported the i1 without purchasing the upgrade. It’s worth noting that with X-Rite and Spyder a lot of their offerings have the same device and it’s only the software included that limits or enables the device’s capabilities. So, using ArgyllCMS can allow you to get more for less (i.e. free).

ArgyllCMS to the Rescue

Installing Argyll is very straightforward. The website has some instructions for Mac installation which I needed to modify for my newer OS. Here is a revised version that should work on 10.8.5 and later.

Download the latest version and unzip it. I put the resulting folder in my Application directory. I also recommend removing the version number from the folder name so that when you upgrade, you can just drop the updated files in this directory without having to redo the next step.

On the Mac, you will need to add the ArgyllCMS to the path.

Step 1: Open Terminal

Step 2: Enter the follow commands:

    open ~/.bash_profile

Step 3: Add the following line to the end of the file adding whatever additional directory you want in your path in the format PATH=$PATH:$HOME/PATH_TO_DIRECTORY/Argyll/bin


Step 4: Save the .bash_profile file and Quit

Step 5: Force the .bash_profile to execute. This loads the values immediately without having to reboot. In your Terminal window, run the following command.

    source ~/.bash_profile

Step 6: You can confirm the new path by opening a new Terminal window and running:

    echo $PATH

So, once you’re done, you just need to open Terminal, navigate to the ArgyllCMS directory and run the commands that follow. I keep the commands saved in a text document so it’s a cut n’ paste operation. Easy peasy! See my earlier post for a handy utility that opens terminal directly from a Finder window.

Color Management for Doctorates 

The ArgyllCMS site has a page that gives a run down on the steps involved in creating a printer profile. It’s detailed. Very detailed. Very, very detailed. To quote;

“Most printers running through simple drivers will appear as if they are RGB devices. In fact there is no such thing as a real RGB printer, since printers use white media and the colorant must subtract from the light reflected on it to create color, but the printer itself turns the incoming RGB into the native print colorspace, so for this reason we will tell targen to use the “Print RGB” colorspace, so that it knows that it’s really a subtractive media. Other drivers will drive a printer more directly, and will expect a CMYK profile. [Currently Argyll is not capable of creating an ICC profile for devices with more colorants than CMYK. When this capability is introduced, it will by creating an additional separation profile which then allows the printer to be treated as a CMY or CMYK printer.] “

Hmm. Yup. Yup. Yeah. I recognize some of these words. Yup, definitely words.

Even if you know what Color Management is, the documentation can be a bit dense; detailed to the point of obscurity, some might say. If you don’t know what Color Management is, then you may want to start backing away very slowly. While I lack an advanced degree in color theory, I do have quite a bit experience with command-line programs. So, after a few days of trial, error, and Google, I have developed a simple workflow that should help other newbies get started.

image from

In summary, you’ll create a print target, one or many pages with rows of colored squares, and then read that target with your spectrophotometer. From that reading, ArgyllCMS generates a printer profile (.icc). There are five steps;

  1. targen – this command tells ArgyllCMS how many patches to put in the target
  2. printtarg – here you generate TIF file(s) of your target
  3. Print the TIF file(s) without Color Management
  4. chartread – captures the data coming from the spectrophotometer
  5. colprof – creates the printer profile from the chart scan

Technically, you only need to do the first two steps once, because once you have your TIF file generated, you can just reprint that for any subsequent re-profiling. (Though this may not be entirely correct, since the ArgyllCMS documentation differentiates between printer profiling and printer calibration with the latter being used to “allow day to day correction of device drift without resorting to a full re-profile”. Honestly, it’s outside the scope of my understanding thus far and maybe I’ll revisit it after I delve into it more.)

If you just want the ArgyllCMS commands I used without the details and colored commentary (pun intended), jump to the Summary at the end.

Step 1 – Targen

By default, targen with the minimum options for an RGB printer [-d2] will generate 836 patches, which when printed on US Letter, will span a little under 2 pages.


targen -v -d2 FileName

targen -v -d2 FileName

Now you may be asking yourself, “Do I have an RGB printer?” If in doubt, try answering the following questions;

  1. Name an aquatic animal that can see more than RGB?
  2. How the heck does the K in CMYK mean black?
  3. Is RIP something that only pertains to funerals?
  4. Did you buy your fine art printer at Costco?

Answers: 1) The Mantis Shrimp, 2) The K in CMYK stands for “Key Plate”. In CMYK, this is usually done with black ink. Plus, B already meant Blue. 3) No. See Raster Image Processor. 4) Seriously?

If you answered “What the what?” to most or all of these questions, you probably have a printer that uses an RGB driver regardless of how many ink colors are physically put into it. If you have a driver or RIP that is printing directly to CMYK, than you should probably be writing this article. I humbly await your comments.

But, I digress… Good paper’s not cheap. So, I wanted to maximize the patches per square inch. If you look at the chart at the bottom of the targen documentation, it lists the ideal patches/page for your device. For the Eye-One Pro, it’s 462 for 1 page, 924 for 2 pages, and in multiples of that so forth.

targen -v -d2 -G -e8 -g128 -f700 EyeOne1pg

targen -v -d2 -G -e8 -g128 -f700 EyeOne1pg

With some fiddling, I got 700 patches on a single letter sized sheet. Let’s break down how.

targen -v -d2 -G -e8 -g128 -f700 EyeOne1pg

  • [-v] – Shows progress on the screen so, you aren’t just left listening to the fan whirr and wondering what’s going on
  • [-d2] – Because you have an RGB printer from Costco
  • [-G] – “Generate good optimized points rather than Fast” because good is better than fast. That’s what she said.
  • [-e8] – White color test patches. Default is 4.
  • [-g128] – Prints 128 greyscale patches so you can do accurate B&W prints later. Probably want to multiply this if you do multiple pages.
  • [-f700] – Overall patch count.

Some threads I read suggested patch counts of 2000-3000 for accurate profiles on large format printers. That seems excessive to me. The profiles I produced with a single sheet looked great. Though if you wanted to, just scale the [-f] number accordingly; 1400 for 2 pages, 2100 for 3 pages, etc.

Step 2 – Printtarg

This is the part that I spent the most time tweaking. Setting the number of patches is easy. Getting it to fit properly on the page will kill a few trees. Here’s how I got the one pager above.

printtarg -v -ii1 -L -a0.87 -m8 -M8 -T360 -P -pLetter EyeOne1pg

  • [-v] – Because watching the text output makes me feel like Neo.
  • [-ii1] – Specifies the device; i1. For example, Colormonki would be [-iCM]
  • [-L] – Gets rid of the extra whitespace created for the clip on the scanning board. You don’t need it. It’s a over-engineered gimmick.
  • [-a0.87] – Scales down the patches. The i1 can read patches a minimum of 7mm2. Default is 10mm2.
  • [-m8 -M8] – Sets the top/bottom and left/right margins to 8mm.
  • [-T360] – Create a TIF (postscript is default) at 360 dpi
  • [-P] – Doesn’t limit the strip length.
  • [-pLetter] – set the page size to US Letter (8.5″ x 11″)
  • EyeOne1pg – name of the resulting TIF

If you want to print multiple pages and modified the patch count accordingly inTargen, you don’t need to change anything here.

Step 3 – Print the Target

Use the Adobe Color Printer Utility application to print your targets without color management applied. Don’t use Photoshop, since newer versions don’t let you print without color management. With Epson printers, you also want to be sure you’re not using the color controls built into the printer.

I’ve also heard you can also use Mac’s native ColorSync (Applications > Utilities), if you select “Print as Color Target” under ColorSync Utility on the print options. While I couldn’t see any difference between the outputs of the two methods, I went with the Abobe utility as it was recommended by more users.

In the Adobe Color Printer Utility, select the TIF created in the previous step. Go to File > Page Setup and select your printer and paper size, US Letter. Your paper size options may be named differently and you may have several options within US Letter. Just be sure to select the one that has the minimum borders or is borderless. Hover over the option to see the margin sizes.

Page setup

Adobe Color Printer Utility – Page Setup

Select the Letter option with the smallest margins.

Select the Letter option with the smallest margins.

Next, select File > Print. Under Printer Settings, select the correct media type. If you’re using a non-Epson brand paper, look on the manufacturer’s website for the media equivalent. For example, I’m using Canson Baryta Photographique 310gsm which according to their website is equivalent to Epson’s Premium Semi Gloss Photo Paper.

Print Options

Print Options

Set your print quality. Confirm ColorSettings is disabled and print away. Let the print dry for a few hours (or even overnight) before scanning.

Step 4 – Chartread

Go back to terminal and enter;

chartread -T0.4 EyeOne1pg

The program will run you through a set off prompts to complete the scan. First it will ask you to place the i1 on its calibraton plate. Next, it will ask you to start scanning starting a row A.

i1 on its calibration plate

i1 on its calibration plate

The i1 and target on the backing board

The i1, printed target, and scanning ruler on the backing board

Here are some tips on scanning;

  • The scan starts when you press the button on the side of the i1, but there is a delay. So, wait till you hear the “Bonk” sound on your computer before starting to move the device. The sound plays through the computer not the device and is very low, so make sure your volume is turned up.
  • You can scan in either direction; top to bottom or vice versa. Alternating each line makes the whole process go faster.
  • Center the row vertically in the ruler opening so there is whitespace on both ends.
  • Line the row up horizontally in the center in ruler opening so that the patches aren’t touching the edges.
  • If you have to retry a row of a few times, try re-positioning the ruler.
  • Because we eliminated the white space on the left you can’t clip the page and use the ruler on the first few rows. Once you’re past those rows you can move the paper and clip it if you want to. I find the weight of the ruler hold the paper in place even without the clip.
  • If you don’t have a backing board any flat surface will do but, be careful, because the color of that surface can show through the paper. Put another sheet of the same paper beneath it to prevent any color bleeding through.

Step 5 – Colprof

The last step is to generate the printer profile from the scan.

First, copy AdobeRBB1988.icc (located in HD > System > Library > Colorsync > Profiles) to the ArgyllCMS Directory.

Next, here’s the command I used and the breakdown.

colprof -v -A “Epson” -M “Stylus Pro 9600” -D “*Epson 9600 Canson Baryta Photographique CCpro” -qh -S AdobeRGB1998.icc -cmt -dpp -O  Epson9600BarytaPaperCCPro.icc EyeOne1pg

  • [-v] – You’ll definitely want progress shown. This process can take a while.
  • [-A] – Manufacturer (optional)
  • [-M] – Model (optional)
  • [-D] – Very important. This is what you’ll see as the profile name in Photoshop and Lightroom. I put a leading * in the name to bring it to the top of the list and clearly differentiate the custom from standard profiles (see image below). In this example, I use the printer model, paper name, and ink type (CCpro = ConeColor Pro K3).
  • [-qh] -Set quality to  ‘High”
  • [-S AdobeRGB1998.icc] – I used Adobe1998 as source profile for gamut mapping. I confess to doing this only because most of the threads I read suggested doing so. That’s all the color profile I use in Photoshop, so it made sense. Reading About ICC profiling and Gamut Mapping didn’t exactly clarify things. So, let’s take this one on faith.
  • [-cmt] – “Monitor in typical work environment” Taking this one on faith, too.
  • [-dpp] – “Monitor in typical work environment” And this one as well.
  • [-O Epson9600BarytaPaperCCpro.icc] – resulting filename

The last step is to copy the .icc file from the ArgyllCMS directory to Macintosh HD > Library > ColorSync > Profiles. You’ll have to enter your password to do so.

The new profile appears in the Photoshop print menu

The new profile appears in the Photoshop print menu


Open up Photoshop, go to print and now you’ll see your new profile available in the list of available Printer Profiles under Color Management. If you don’t see it listed, try restarting your computer.


In summary, the steps are;

  1. targen -v -d2 -G -e8 -g128 -f700 FileName
  2. printtarg -v -ii1 -L -a0.87 -m8 -M8 -T360 -P -pLetter FileName
  3. Print the TIF file
  4. chartread -T0.4 FileName
  5. colprof -v -A “Printer Brand” -M “Printer model” -D “Profile Name/Description” -qh -S AdobeRGB1998.icc -cmt -dpp -O  ProfileName.icc FileName

To test my results, I compared a test image I printed on my 2200 using third party inks and Epson’s standard profile with the same image printed with the same inks and my new custom profile; both on Epson Photo Glossy paper. (I’m using my Epson 2200 instead of my 9600 because there was a more noticeable improvement with that printer/ink combination.)


‘Before’ print on top. ‘After’ print on bottom.


Above, I put my ‘before’ print on top of my ‘after’ print and took an (admittedly poorly lit) photo of the two to illustrate the difference, which I found most pronounced in the skin tones on my test image. The bottom print made with my custom inks and profile had less of a color cast and much more natural colors in the faces.

I also compared the ‘after’ print to a test image I printed a few months ago on my 2200 using Epson’s inks and profile. Using the custom ink/profile combination gave results that looked much closer to output from Epson’s standard ink/profile combination.

In closing, ArgyllCMS is a very sophisticated application of which, like Photoshop, I feel I am only scratching the surface of. From the forums I’ve read, its level of sophistication is on par with X-rite’s i1Profiler and superior to the Colormunki’s software. As my understanding of color management practices increases I may revisit some of the options I used here and get even better results. That being said, I was able to get results I was very happy with with only a small learning curve. Some users may be turned off using a command line interface, but having gone through the steps once and saving the commands in a text document, I feel that the next go around would be painless.

On the hardware side, the i1 may be an advanced piece of kit, but in my opinion, it could use some better product design. You can tell it was engineered for one purpose and then retrofitted to serve others. The form factor is clearly designed for reading printed targets. Which is evident by all the awkward accessories needed to set it up to do display or projector calibrations. The Colormunki, with its single-body multi-purpose design, is superior in comparison even if it’s inner-workings are inferior. If I had to make the choice again, I might opt for the one that took up far less room in my small NYC apartment.

Hope this was helpful.



Posted in Photography, Web/Tech | Tagged , , , , , , , , | 1 Comment

Futureproofing the Epson 9600

» This is part 2 of my continuing experience with an old Epson 9600 i picked up on Craigslist. Be sure to check out Part 1 and Part 3)

That’s so 20th Century

First, I wanted to update the firmware to the latest version.  The biggest challenge was that for the Mac, the installer was only available for Mac System 9. (I know, right?) So, being the techno-wizard I am, I dived head-first into looking at emulators to run the older Mac OS (like Sheepshaver and Basilisk II) but they couldn’t access printer drivers. Even using a DOS emulator like DosBox or a Virtual Machine like VirtualBox didn’t help. Eventually I tossed in the towel and went with the path of least resistance (or so I thought), dug up an old PC, some boot disks, and a copy of Windows XP (I know, right?) After several hours of being reminded why I made the switch to Mac, I finally was able to get XP running. I installed the printer driver, and then the Printer Service Utility v1.33 but the utility would not “see” the printer despite being able to print test pages. I uninstalled the utility, installed Status Monitor3 v3.1b to check the connection and that application worked fine. After rebooting and reinstalling, the utility finally recognized the printer and I was able to update to Firmware version BW1452_Q.UPG .

Hello Windows, my old friend...

Hello Windows, my old friend…

Gather ye Spare Parts while ye may…

The printer came to me in fairly good shape; no clogs or any of the major issues I saw commonly cited on Luminous Landscape and in the Epson Wide Format Yahoo group. So my concern with such an old printer was more on future-proofing; guarding against some of the planned obsolescense inherent in today’s hardware.

There are only a few parts distributors listed on Epson’s Support Page for user replaceable parts. Most of these sites are god-awful, user-unfriendly garbage.

  • CompassMicro – Surprisingly, this website was updated in 2013. I hope they didn’t pay a lot. Of the few parts listed for my model, most are marked as unavailable.
  • Encompass Parts – Looks like it has a lot of parts but once you drill into the details and check the Total Availability or Estimated Ship Date you’ll see there actually aren’t.
  • National Parts Depot
  • TSAWorld – Shows one part, but if you search by part number it has some listed under the 7600. Requires login to view pricing.
  • PC Parts Canada – no pricing/availability just quotes.

My foray into these virtual junkyards made me feel only more certain that I needed to stockpile some parts if and when I could find them. So the next stop, of course, was Ebay. I picked up an Automatic cutter (part # C12C815291) for $60, less than the $95 Epson charges.

I also bought three (at $6 each plus shipping) Head Cleaners aka Wipers (part #1230744 or #1113691 depending on where you look) from American Injet Systems because I didn’t trust the cheap knockoffs from China floating around on Ebay. Manual says they last about a year each and the status page I printed said mine was about 3/4th of the way through its useful life.

Epson 9600 cutter replacement and wipers

Epson 9600 cutter replacement and wipers

US invasion of Epson imminent

A 220ml cartridge of Epson Ink for the 9600 retails at $138. So while people go crazy when gas goes above $4/gallon, a gallon of printer ink will set you back over $2,300.

High-quality third-party ink like Ink2Image’s Cave Paint and InkJetMall’s ConeColor inks run about 50% less (a reasonable $1,150/gallon). That discount and the possibility that Epson may discontinue manufacturing cartridges for this model — as ConeColor just recently discontinued their K2 inks in favor of the K3 used by newer Epson models — led me to invest in refillable cartridges. ConeColor’s cartridges were highly recommended but, in my opinion, over-priced at $242. I ended up getting a full set of eight from for $153. The same set were cheaper at InkPro2Day and InkOwl but InkJetCarts had a better reputation for support on some of the forums. Which turned out to be true, since one cartridge was missing a stopper and chip. I contacted them and the next day received a replacement. Be sure to check the chips on you set aren’t loose and apply a bit of glue if they are (be care not to get glue on the contacts). If any one falls off inside the bay, you might have to dismantle the whole thing to retrieve it. (Edit: I’m now on my second set which I purchased from InkOwl . Looking at another vendor on Amazon they must come from from a common supplier because they look exactly the same, only less expensive.)

Refillable cartridges

Refillable cartridges

I wasn’t completely happy right off the bat. I found the cartridges wouldn’t stay in their slots like the OEM carts and constantly pop back out. Because of this, I couldn’t get the printer to recognize that all new the cartridges were installed. It ended up being a game of whack-a-mole. When I got one working, the red light on another turned on. What finally worked was turning off the chip counter that keeps track of ink levels. I had planned to do that anyway to reduce the wear and tear on the delicate gaskets and chips caused by taking the cartridges in and out.

Bump in the road

When I installed the cartridges, I hadn’t received my inks from ConeColor yet. I was too eager to play with my new toy and transferred the ink from my old OEM cartridges using a syringe. However, I was really low on Light Magenta and the amount in the cartridge wasn’t enough to keep air from getting into the line when I first ran the Int Fill procedure. My heart dropped when I saw bubbles in the line. I had to deal with the same issue for hours once with my 2200 and now I had the same problem on a printer 5 times as big and complex. Nearly all suggestions I read talked about taking out the dampers or running cleaner through the lines; actions that require lots of dismantling, replacing, and praying. My heart dropped with every word.

Air bubbles than can potentially kill your print head.

Air bubbles than can potentially kill your print head.

One forum suggested just running the Int Fill procedure again. This seemed the least invasive course of action. So when my ink arrived, I filled up the carts, primed each one again (just to make sure), and ran int fill. I watched it run, thinking there’s no way it’ll be this easy. Once it finished, however, a quick inspection showed the line was clear of bubbles. Nice! The printer gods must be smiling upon me. Next step was to print a nozzle check. “Error: Maintenance Tank Full”. Curse you, printer gods!

The maintenance tank gets filled up quickly with all the ink the printer wastes constantly cleaning the print head. So, you always needs a spare. Epson charges $40 for this plastic container filled with absorbent material. Luckily, the chip resetter that came with my ink cartridges (more on those) also also worked on the tank. So my plan was just to crack open the tank, replace the material, reset the counter, and feel better about not adding needless waste to our landfills. Edit

When I took out the tank, I could feel that it weighed about 5 pounds (in other words, a few hundred dollars worth of ink). Mind you, I had just installed this new tank less than a month ago. When you crack it open to get the used material out, you’re going to want to do this over the sink because a good amount of the ink will pour out. I rinsed out the whole thing being carefull not to get the chip on the side wet. (I was also able to rinse out the material — which comes in pre-cut slices — and save it for future reuse.) Then I stuffed the dried tank full with 2 packs of 2×2 Cotton Squares that I had bought for $5. Incidentally, I did look at using diapers but, damn!, they are expensive for something that just gets sh*t on. Paper towels are not a good choice since tend to disintegrate as they get wet. Cotton holds together better and, when placed on their side, I was able to pack the squares in much tighter than cotton balls. I used the chip resetter, popped the tank back in, and everything was good to go at 1/10th the cost.

Packing an emptied maintenance tank with cotton squares.

Packing an emptied maintenance tank with cotton squares.

Before and after

Before and after

Next Steps or The Long March to Diminishing Returns

Since I’m not using official Epson inks anymore and I’ve heard about the 9600 exhibiting color drift over time, I’m planning to color calibrate the printer. My recent effort with my Spyder 2 helped calibrate my display so, I know what I see on the screen is what’s getting sent to the printer’s driver. However, without measuring the final output, I still haven’t closed the color management loop. For that I’ll need a Spectrophotometer. Back to Ebay, I guess.

Posted in Photography, Web/Tech | Tagged , | 2 Comments

Getting the DataColor Spyder 2 to work with Mac OS X 10.8

Spyder2Given my recent foray into large format printing, I needed to dig into the old junk drawer and excavate my Spyder2 Color Calibrator to profile my monitor. It’s been a few years since I last used it, so off to DataColor’s website to download the latest and greatest software. But lo and behold, as has become a recent trend in my digital archeology, the Spyder2 software doesn’t have a version that runs on Mac 10.8.5.

Hopes rose anew when I read that I could use the slightly newer Spyder3Express software to run my older Spyder 2 device. Furthermore, DataColor asserted that it’s software (including Spyder3Express) should work with Mountain Lion (OS X 10.8). This has not been my experience.

Following their own instructions for Mac OSX, I installed the Spyder3Express software for use with my Spyder2 device. The installation was flawless. The software recognized my hardware and ran all the way through the calibration. When the calibration process said Measuring is Complete and I clicked Finish, I got the following error;


Sorry, there was a problem getting the Color directory name (GetColorDirectory)
CMSSupport.cpp 445
-48 (OxFFFFFFD0)

Clicking OK only brought up a second error message;


Sorry, there was a problem creating the profile. (1) >>>file://localhost/Applications/Datacolor/<<<
CMSSupport 355
-170 (0xFFFFFF56)

Clicking OK on the second message brought me to the preview screen. Flipping between the uncorrected and corrected profile options did change the display and the change remained after closing the application. But once the laptop rebooted, the default (old) profile was re-applied.

From some research on the Interwebs, I didn’t find any solutions but started to suspect it was a permissions issue. A response from DataColor support confirmed this suspicion. I had assumed that the applications was trying to write to /Library/ColorSync/Profiles, which is where I had put all the custom ICC profiles for my printer. Support told me that the app is actually trying to write to /Users/YOUR USERNAME/Library/ColorSync/Profiles/. Problem is that staring from 10.7 Lion, Apple has set the User Library to be hidden. So the solution, is to make that directory writable either temporarily or permanently.

I opened up Terminal (Applications > Utilities > Terminal for those who don’t have in in the dock) and cut and paste in the following command.

sudo chflags nohidden ~/Library


Verify the profile is created in Display preferences

You’ll be prompted for your password. Once that’s done, this will make the directory visible and writable. Next, I navigated to /Users/YOUR USERNAME/Library/ in Finder. There wasn’t a folder called Colorsync as I expected. However, there was a text file with that name. I moved the file to my desktop for safe keeping and then created the ColorSync folder and then the Profiles folder within in. (I’m fairly certain the names are case-sensitive.) Afterwards, I was able to run the Spyder3Express application and get all the way through without error. In System Preferences, I could see the new Spyder3Express profile listed.

If you want to hide the User Library again, you could go back to Terminal and run the command line;

sudo chflags hidden ~/Library

I didn’t do this, because I didn’t want to have to do this everytime I ran another calibration.


Postscript – dispCalGui

In my troubleshooting research I came accross an open source color calibration software that supports the Spyder2; dispCalGui – by Florian Höch

Here are the installation steps (lifted from the Quickstart guide)

  1. Download Spyder PRO_2.3.5_Setup.exe from–win (yes, I know its an EXE file)
  2. Download Argyll CMS –
  3. Open the Argyll CMZ archive file. Copy the newly created folder to Applications.
  4. Download DispCalGui –
  5. Install DispCalGui–  double click the DMG to extract the content. Create new folder called DispCalGui under Applications and copy contents over.
  6. Run the app dispcalGUI – It will first ask you for the location of the Argyllcms. It wants the bin folder in the directory you created.
  7. Go to Tools > Enable Sypder 2 Colorimeter. It will ask for the location of the Spyder PRO_2.3.5_Setup.exe  from step 1.
  8. I had to run the aforementioned sudo chflags nohidden ~/Library command in terminal before it would save the profiles. This seems to be a known bug and may be fixed in later releases.
  9. You’re ready to go.

The dispCalGUI is much more complex than the push-button Spyder app but, you have many more levels of control and options to choose from.

This youTube video gives a fairly good tutorial on running your first calibration using DispcalGUI – Display Calibration Tutorial – How to calibrate your monitor correctly


Posted in Photography, Web/Tech | Tagged , , , , , | 6 Comments

Resurrecting an Epson Stylus Pro 9600 large format printer

» This is Part 1 of 3 part series. Be sure to check out Part 2 and Part 3.


In NYC we keep our large format printers in the kitchen.

So, what started as a simple desire to enlarge some of my photos ended up with me on Craigslist and ultimately hauling a six foot wide, 100+ lb printer from South Jersey into my one bedroom NYC apartment. Go big or go home, right?

Is it Y2k compliant?

The Epson Stylus Pro 9600 with Ultrachrome ink is a bit of a throwback (mine was manufactured in 2004) but, from what I’ve read, it is still the workhorse of many print shops and photographers. However, the biggest con of buying antiquated (and used) hardware is digging up all the manuals and software necessary to get things running. In my ongoing effort to give back to the internet, I’m documenting my experience and trying to centralize some of the information I’ve found thus far.

One of the more interesting things I’ve noticed is that given that this printer was first introduced over a decade ago, some of the web pages devoted to it (like here and here) look like something you’d find on the Wayback Machine; lots of pixelated gifs and centered white text on black backgrounds, if you catch my drift.

My Mac OS X 10.8.x didn’t recognize the 9600 when I first plugged in the USB. So, my first stop was the Official Epson 9600 product page. Luckily they have drivers compatible with the latest versions of Mac OS X. Not as much luck with the utilities, ICC profiles, and firmware, however.

On the Drivers and Downloads page, there is a link to a set of ICC profiles produced by Bill Atkinson, which are purportedly better than those that come with the standard printer driver. Unfortunately, the files available for Mac’s all have a .SEA.HQX extension which is an ancient compression format (Mac 9 or earlier). You’ll be able to use the standard Archive Utility app to extract the .SEA file from the .HQX archive, but the resulting .SEA file is an executable archive can’t be opened in newer versions of Mac OS (Leopard, Snow Leopard, Lion, Mountain Lion, Maverick). If you don’t understand what all that meant, ignore it, and just know that using some Technomancery©, I was able to extract the profiles and a link to a Mac OS X-compatible file containing all the Bill Atkinson 9600/7600 icc profiles is available below. All you need to do is double click the zip file and copy the .ICC files to Macintosh HD > Library > ColorSync > Profiles. You’ll be prompted for your password to copy files into this directory.

Once you’ve loaded the profiles they will appear in the list of the Printer Profiles when you print from Photoshop.

Icc Profile

Moment of Truth

From the previous owner I learned that the printer had been sitting idle for a few months (at least). The first thing I did was to print off a standard test file on a sheet of 8.5’x11″ Epson Premium Photo Glossy paper to see where things stood. First results were promising. No noise from the printer that would imply any worrisome mechanical issues and the print itself was fairly sharp. I was so pleased I even went ahead and shot off a 36″x44″ print using a roll of Epson Premium luster paper.

A second test with Epson Enhanced Matte Paper showed some fairly significant horizontal banding. A post to the Epson Wide Format Yahoo Group told me that this could be resolved by running through the Head Alignment utility on the control panel (details in the Epson Stylus Pro 7600/9600 Printer Guide, page 57). After a few runs, I was able to get rid of the banding. Thanks, jrstewart8.

Getting under the hood

Now you think I’d leave well enough alone, but dealing with the head alignment issue got me thinking about getting ahead any other potential maintenance issues. One of the most common issues cited on the forums was the printer head clogging. First stop, Nozzle Check. Result, not so good. There were very noticeable gaps in the Magenta and Yellow sections.

From a few of the resources below, I understood that I needed to get some windex and clean the printer head, capping station, flushing box, and wiper blade. This page from Northlight Images has a nice set of instructions on how to do this. This video shows how to get the head free and use a saturated paper towel to clean it. This video gives you a slight out-of-focus view into cleaning the wiper and capping station, albeit on a Epson 4600 (I think). The previous videos in conjunction with the repair manual from American Inkjet Systems should help illustrate the process for you (see Figs 2-15 & 2-15 on pgs. 12-13).

When I opened up the front cover, moved the head, and first inspected the station, I was not completely surprised to see tons (probably years worth) of dust and dried ink all over. I saturated a strip of paper towel with Windex and put it behind the head and let that sit while I worked on the rest. Now the AIS manual shows how to take of the whole side to get at the cleaning station, but I thought that would be tempting the Gods. (The Gods and I have have some history when it comes to electronics repair.) So, I left the screwdriver in the toolbox and worked on what I could access from the small opening. I had a syringe that I used to set up the continuous ink system on my Epson 2200 which gave me the reach I needed to saturate the capping station and flushing box. The wiper was a bit more difficult. I was able to reach it with some q-tips but wasn’t able to clean it as thoroughly as I would have liked. I ran through the steps three times with a standard clean (press the control panel button for 3 seconds) and nozzle check after each. (Hint; use plain cheap printer paper for the nozzle checks) It got worse before it got better. At the end however, I still had one tiny gap in the Magenta that would not go away.

I ran a power clean but that didn’t help and only succeeded in killing my Photo Black cartridge. Luckily, I had an extra. That’s the worse thing about using the clean cycles; they consume ink across the board -not just for the nozzle you’re trying to clear — and a lot if it. That gave me an idea (sure enough some others have come to the same conclusion before me) to just print a page of only that color to simulate a clean. An additional suggestion was to use as high a resolution as possible to do this, so I sacrificed a sheet of photo glossy to the cause and printed out a single sheet of magenta. Well, it was a nice idea in theory but in the end I still had that small gap.

I probably could waste more ink, paper, and time on this but, perfection is the enemy of done. So, I decided to let it go and move on. Given some of the severe head clogging posts I’ve read, I’m in good shape and probably approaching the point to diminishing returns. If I ever want to revisit this, it looks like the next option is to purchase cartridges filled with cleaning solution and run that (AbsoluteInkjet, Inksupply , and Amazon have them). Unfortunately, that’s a expensive investment and people seem to have mixed experiences with it.


I believe the 9600 isn’t officially supported by Epson anymore. If it is, I have to imagine it’s soon approaching end-of-life status. So, if they’re going to stop making parts for it, I wanted to see where things stood with the consumables and hardware. I’ll probably want to stock up on some items now rather than when they become scarce and presumably more expensive. The Printer Status page (see page 131 in the EPSON 7600/9600 Quick Reference Guide) told me that the two motors and head were in great condition (5 stars). Great news given how expensive and difficult to replace those parts are. The automatic paper cutter blade was good (4 stars) but the Cleaner (2 stars) and Maintenance Tank (1 star) less so.

From what I’ve read the paper cutter blade (part # C12C815291) can’t be sharpened, so the only option is to lay down ~$100 for a replacement. Might be worth stocking up on one of these. Though, since this same part is used in the newer 9800, I’m not as worried about future availability. Also, I’ve been know to wield an X-Acto with some degree of skill.

An extra Maintenance Tank came with the printer when I bought it. Even then, this is where are the extra ink is dumped during ink cartridge changes and cleans, which happen frequently. It’s just a plastic tank with some absorbant material to catch the excess ink that somehow costs ~$25-$30. I read more than one forum that suggested reseting the maintenance tank chip and just replacing the absorbant material with .. *ahem* … tampons. For those men wanting to save themselves the awkwardness of buying feminine pads at CVS, you can use the chip resetter that came with the InkOwl Refillable Cartridges I ended up buying. When it gets full, I dump out the contents, pack it with 2 boxes of 2×2 Cotton Squares, and reset the chip.

I had no idea what “Cleaner” meant. Maybe it referred to the cleaner head (a.k.a wiper, part # 1113691) or the flushing box (part # 1112239) or cap assembly (part # 1091110), all of which I had tried to clean earlier. Wipers were hard to find. AIS and Ebay had them for $6 – $20. The other items are even harder to find. The few that google showed where in Europe and more than I spent on the printer itself. This might require more research.

Really though, the biggest concern is the ink cartridges. OEM inks range from $87 – $138. That’s likely to increase if Epson stops producing them. I bought a Continuous Ink System for my Stylus Pro 2200 for exactly the same reason. There are a number of refillable cartridges available at Ink2Image, InkOwl, Inksupply, InkPro2Day, InkJetMall, and of course Ebay. Though, I’m less concerned with the cartridge than I am with the quality of the ink. ConeColor seems to have well-regarded ink that allows people to use the standard Epson ICC profiles, which goes a long way in simplifying my digital workflow. After all this, I’m not investing in printer profiling hardware. (Edit: I ended up buying the InkOwl Refillable Cartridges on Amazon and eventually getting profiling hardware. Read more.)

I’ll follow up with another post when I’ve decided a course of action of these last items. Until then, here are some resources I found very helpful.


Useful Links:

Posted in Uncategorized | Tagged , , | 26 Comments

Too Legit to Quit

I've maintained this blog for a few years now, posting Salesforce related items on and off (admittedly more off than on). Recently, however, I was asked to kick it up a notch and become an offical blogger at's DeveloperForce for both the Blog and Wiki. I know, right?

My first effort was to co-author the article Apex Design Patterns along with two other top experts at; Dennis Thong and Manu Erwin. To give credit where credit is due, the article is based on a presentation Dennis delivered back at Dreamforce 2012. So, my contribution was a bit more Ctrl-C/Crtl-V than coming up with original content. Though, now that I've been given the keys to the kingdom I'm feeling a bit more motivated to take on some off my personal blog posts that have been languishing in draft mode. Stay tuned.

Posted in Uncategorized | Leave a comment