Sunday, December 23, 2012

dpkg: error processing icaclient (--configure)

When trying to install the Citrix Receiver application (icalient) on Ubuntu 12.10 x64, ran into an issue with one of the post installation scripts (thanks Citrix!?).

You will notice that when setting up the icaclient or any package thereafter you get a post installation error as seen below:
dpkg: error processing icaclient (--configure):
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
icaclient
To fix this, you have to make a simple change to the following file
/var/lib/dpkg/info/icaclient.postinst
Open the file in your favor text editor and find the following line (typically Line Num: 2648)
echo $Arch|grep "i[0-9]86" >/dev/null
Change it to the following (pay close attention to the -E, changes have been bolded)
echo $Arch|grep -E "i[0-9]86|x86_64" >/dev/null
Now the setup should complete successfully after running the following command
dpkg --configure icaclient

Saturday, December 22, 2012

Challenges when configuring i1 Profiler Display Pro

Recently I was requested to assist with developing a color correction profile for photo editing workstation.  I used a XRite i1 Display Pro to develop the profile against a Dell U2410 and a Dell 1907FP dual monitor setup.  I thought this would be an easy 5 minute process.  I was wrong.

Couple of things you need to remember:

  1. Turn UAC off.  Seems that i1Profiler needs to read in LUT values and write new system ICC profiles.  UAC sometimes interferes with that.  You can turn it back on when you have finished with the calibration process.
  2. Make sure that "Use Windows display calibration is set" otherwise you might get the dreaded "Failed to apply video LUTS" error message after the calibration sequence finishes.  Follow the instructions from XRite on how to correct this. 
  1. Open Control Panel and then"‘Color Management", a Color Management setup window for the User Level appears. In the "Devices" tab, add a check to "Use My Settings for this Device". Make sure that the X-Rite created monitor profile is selected as the default. Click on the "Advanced" tab and check the box to "Use Windows Display Calibration" to control loading the video LUTs. Note: if the option "Use Windows Display Calibration" is grayed out, click on "Change System Defaults" bottom left in the window. A Color Management setup window for the System Level appears. Do not apply any changes for assigned profiles here. Click on "Advanced" tab and select the option to "Use Windows Display Calibration". Select "Close" and the exit "Color Management".

After you get everything calibrated, you still might run into issues such as Windows Photo Viewer showing your images a lot darker than you would expect.  Photoshop and Lightroom will show the proper color, luminance and saturation but Windows Photo Viewer will show images that are dark unless you "play" then in Slideshow mode.  If so, the reason is you need to tell i1 Profiler to save the ICC profile in version 2 format.  The instructions here are a little dated but will get you down the right path.

Once you create the ICC profile, verify the profile by opening up the Color Management control page, clicking All Profiles, then selecting your custom profile under ICC Profiles and verifying the version.

Thursday, August 30, 2012

Suppress or Hide Network Error Dialog Boxes

If you are like me, you often work with a portable computer and sleep your computer between commutes from the office, home, and road.  If you wake up your computer on a different network than the one you were on previously, you might be in for quite the annoyance if you had bunch of Explorer windows with UNC paths open.  Suddenly those paths are not found and potentially dozens of "Network Error Windows cannot access \\serverfoo\some\path\bar" messages. Of course, they cannot be accessed, that network is no longer available.  Clicking Cancel on each dialog is annoying.  This is where AutoHotKey can step in.

This nifty program allows you to script all sorts of "macros" to automate various tasks on your computer.  In many ways its similar to AppleScript but more powerful.  You can create shortcuts, remap keys, or in this case, eliminate pesky dialog boxes.

In this script, we are going to create a persistent script, one that will stay running and continue to refire the timer using the interval we specify:


#Persistent
SetTimer, CloseNetworkErrorDialog, 20000
return

CloseNetworkErrorDialog:
SetTitleMatchMode, 2
WinGet, id, list, Network Error
Loop, %id%
{
    this_id := id%A_Index%
    WinGetTitle, this_title, ahk_id %this_id%
    PostMessage, 0x112, 0xF060,,, %this_title%
}
Return


As you can see, this is a really simple script that has a function named CloseNetworkErrorDialog that is called every 20 seconds.  CloseNetworkErrorDialog loops through the open windows whose title contain the phrase "Network Error", gets the exact title of the window, and sends it a Close Window command.  You can read more about creating AutoHotKey scripts here.

Peace at last and it only took 5 minutes to write.