Sign Mobileconfig – Apple .mobileconfig configuration profile signing

Signed configuration profile is being installed on iPhone
Signed configuration profile is being installed on iPhone

During installation on iOS/macOS, digitally signed Apple configuration profile is shown with a green tick and corresponding note providing trust for the user. It is possible to use this command in Terminal to sign a .mobileconfig profile. However, it is easier to use a script which will request certificate file, private key and trust chain certificate in dialog.

First, create a new Automator Service named Sign MobileConfig.workflow in user folder
~/Library/Services

Then drag Run AppleScript element into Automator window, and fill it with the following code:
Continue reading "Sign Mobileconfig – Apple .mobileconfig configuration profile signing"

Device Icons (.icns)

When using various flash drives, hard disks and memory cards, I like to have them with respective custom icons in Finder in place of default image. So I made my own icons for frequently used devices. It's quite easy to do with iconutil. If you by any chance use the same devices, feel free to download ready icons in macOS .icns format.


Corsair P256 SSD

Eye-Fi Pro X2

Generic SD

LaCie 5big NAS Pro

LaCie 5big NAS Pro

LaCie PetiteKey
Continue reading "Device Icons (.icns)"

Remove from EXIF – removal of lens and camera info from an image file

It happens that you would like to avoid leaving information about which camera body and lens were used to create a photograph. These data could be removed from EXIF while keeping all the other metadata like location, aperture, shutter speed, etc. – with help of exiftool, a command-line utility to manipulate EXIF.

To make life easier, I created a small service application for macOS available from context menu. You right-click the image and select which information to remove from EXIF:

Remofe from EXIF...
Remofe from EXIF... options window

To have the same thing on your Mac, create an Automator Service named Remove from EXIF....workflow in the following folder:
~/Library/Services
Let it be applicable to image files only or to both files and folders – it′s up to you.
Continue reading "Remove from EXIF – removal of lens and camera info from an image file"

Image Geotagger


Ladoga lake, Karelia, Russia. Open in new window.

I have been using GPSPhotoLinker for years. I become bored recently with its dependance on old Perl libraries which were no longer shipped with OS X. Some workaround suggested on manufacturer's forum helped to deal with problem for the next two OS X releases. Nevertheless, GPSPhotoLinker started to crash with Fujifilm X100T RAF files and with large Canon CR2s as well.

Internally GPSPhotoLinker uses Exiftool to complete geotagging tasks. So I decided to develop my own solution which would essentially run Exiftool console utility with carefully adjusted parameters.

Geotagger context menu

The solution is made as OS X workflow and appears in Finder context menu. So it's very easy to georeference your fresh or old images. You have not even to remember the app name :)
Basically, it is straightforward and self-explanatory, however, I'd comment on the workflow logic.
Continue reading "Image Geotagger"

Icon for Leef Surge USB flash drive


LEGO Astronaut introduces Leef Surge 32 Gb USB flash drive

Recently I have bought a designer USB flash drive Leef Surge. It features an extremely compact design: USB plug is followed by a small cylinder actually containing flash memory. This flash drive is of the size of MacBook power plug, so you would not like to unplug it from your laptop.
For now I'm introducing an icon for Leef Surge USB drive.


ICNS format (for OS X)
Sizes: 16×16, 32×32, 128×128, 256×256, 512×512, 1024×1024.
File: LEEF Surge.icns (1.5 Mb), free usage.


ICO format (for Windows)
Sizes: 16×16, 24×24, 32×32, 48×48, 256×256.
File: LEEF Surge.ico (80 Kb), free usage.

Solve the problem: WD Scorpio Blue 640 Gb (WD6400BEVT) spins up and down in macOS

WD Scorpio blue 640 Gb drive

WD Scorpio Blue 640 Gb 2.5" hard drive.

Western Digital mobile hard drives, at least 640 Gb model, have some unpleasant features on Mac OS X, regardless whether is it a root volume or an external drive. When idle, disk spins down and then spins up several times a minute. Mac OS X's power saving settings do not matter. This behavior is not only annoying but also harmful for the device.

Community offers an efficient solution: HDAPM. This utility changes the power management settings for the device directly so it runs constantly. However hdapm works only with internal SATA drives and inapplicable with external drives connected by USB. So another solution is wanted.

My idea was to send the drive filesystem some tasks repeated with some interval. Initially I created this with AppleScript, but after N cycles (I do not know exactly how many) it reported "Stack overflow" error. Then I decided to migrate the script to bash engine. It seems to be simpler and I suppose will not give that stupid errors.

Here you can find a working script. It uses some variables such as disk name (or name of its first partition), notification type (text output in Terminal window or by Voice).

To use the script, copy the text below, paste it into a text editor, edit the disk_name variable and save with .command extension.
Create a blank (or a small text) file named driveWakeUp at the drive's root.
Now you can run the script:

#/bin/bash
disk_connected=0
disk_name="WD 640 Gb"
disk_path="/Volumes/$disk_name"
waker_file="$disk_path/driveWakeUp"
waker_filecp="$disk_path/driveWakeUp0"
string_connected="Backup drive connected."
string_disconnected="Backup drive disconnected."
string_activated="Disk waker activated."
string_voice="Victoria"
voice_output=true
cycle_number=0
cycles_number=60*60*24*7*4
echo "Target disk is "$disk_name"."

reportDriveStatus () {
disk_connected_prev=$disk_connected
checkDriveStatus
if ! [ "$disk_connected" = "$disk_connected_prev" ]
then
if [ "$disk_connected" = 1 ]
then
if $voice_output
then
say -v "$string_voice" "$string_connected"
else
echo "$string_connected"
fi
else
if $voice_output
then
say -v "$string_voice" "$string_disconnected"
else
echo "$string_disconnected"
fi
fi
fi
}

checkDriveStatus () {
disks_count=0

if [ -d "$disk_path" ]
then
disk_connected=1
else
disk_connected=0
fi
}

wakeDrive() {
if [ -f "$waker_filecp" ]
then
rm "$waker_filecp"
else
cp "$waker_file" "$waker_filecp"
fi
}

if $voice_output
then
say -v "$string_voice" "$string_activated"
else
echo "$string_activated"
fi

coreCycle() {
for ((i=1; i <= cycles_number ; i++))
do
reportDriveStatus
# echo -n "$i "
if [ "$disk_connected" = 1 ]
then
wakeDrive
sleep 1
else
sleep 15
fi
done
}

coreCycle

Okay, I also could dedicate a separate function for notifications, but I was lazy to the time (:

How to optimize Lightroom performance


Have you ever thought about speeding up your Adobe Photoshop Lightroom experience? Well, it is the great application for pro photography workflow, but sometimes it's not yet as quick as you would like to. So how can you optimize it?
To install an SSD into your system is a great option, but pricey. We'll speed up the app for free.

You may google this topic and found several advices on a) tricking with Camera RAW cache size, and b) disabling .XMP file option. Personally I dislike disabling .XMP's. That's why: if a Lightroom catalog file fails you'll stay with fresh unprocessed RAWs and all your work with developing files will be lost. (Of course you can manually export develop settings, but should you remember?)

Hence I offer another method. Idea is simple: turn off some of abundant Lightroom modules, or plug-ins, and application will start and work faster.

Adobe Photoshop Lightroom architecture provides several functional modules in separate files stored in application folder. You decide what modules to disable:

AdobeHelpClient.lrmodule - help and support for Lightroom. Rarely needed. This file is present only in Mac OS X version.
Develop.lrmodule - one of the main modules. You should not disable it.
Import.lrmodule - this is used to enrich your catalog with new photos. Do not disable.
MultipleMonitor.lrmodule - this module is responsive to Multiple Monitor mode. If you are not that happy one who work on dual monitor system, feel free to disable.
Print.lrmodule - printing support. As for me, I almost never print photographs with my computer, only in Pro Lab.
Slideshow.lrmodule - this is used to make slideshows. If you aren't running slides time to time, disable this. * Note this module is somehow important for multiple monitor configuration.
Web.lrmodule - this is used to generate web galleries. You may disable this if your workflow consists of only sorting and developing photos.
Windows version also includes Gallery.lrmodule. That's not lots of fun to disable it.

I'm disabling AdobeHelpClient, Print and Slideshow.

Well, how to disable? Here's how:

Mac OS X

1. Quit Lightroom in case you are using it.
2. Open Finder, navigate to Applications folder and find "Adobe Photoshop Lightroom 2.app" there. Right click it and select "Show Package Contents":

3. A new Finder window opens, go to /Contents/PlugIns/ and select some unneeded module files. Move them somewhere not far, i.e. right to application Contents folder:

4. You're done! Launch Lightroom, notice the speed increase and see what's changed.

Windows XP/Vista/7

1. Quit Lightroom in case you are using it.
2. Open Explorer, navigate to C:Program FilesAdobeAdobe Photoshop Lightroom 2.6.
3. Select .lrmodule files you wish to get disabled:

4. Cut them (Ctrl-X) and paste, say, to parent folder.
5. You're done! Launch Lightroom, notice the speed increase and see what's changed.

You have now less modules in top-right of the Lightroom application. It also runs faster due to less memory usage.