Tag Archives: hateful

The hidden depths of Adobe CS4

[Adobe][adobe]’s installers and updaters for the Creative Suite are amazingly bad. The updaters actually create a hidden directory `/Applications/.AdobePatchFiles` and store what I assume are the old versions of the files that get updated. Almost a gigabyte of data on my system!

What the fuck is wrong with [these guys][oobe]?

Not certain which is worse, that the updaters created a folder in `/Applications` that clearly belongs somewhere in `/Library/Application Support` (if it should exist at all) or that they made it hidden.

You can delete it.

[adobe]: http://www.adobe.com/
[oobe]: http://blogs.adobe.com/OOBE/

Crazy Acrobat installers love Python

Looking through the updaters for [Adobe Acrobat][acrobat] 9 for Mac I came across a bunch of scripts written in [Python][python]. My favourte was called `FindAndKill.py`:

Search for and kill app.
import os, sys
import commands
import signal

def main():
if len(sys.argv) != 2:
print ‘Missing or too many arguments.’
print ‘One argument and only one argument is required.’
print ‘Pass in the app name to find and kill (i.e. “Safari”).’
return 0

psCmd = ‘/bin/ps -x -c | grep ‘ + sys.argv[1]
st, output = commands.getstatusoutput( psCmd )

if st == 0:
appsToKill = output.split(‘\n’)
for app in appsToKill:
parts = app.split()
killCmd = ‘kill -s 15 ‘ + parts[0]
#print killCmd
os.system( killCmd )

if __name__ == “__main__”:

(You can [download the Acrobat 9.1.3 update][acrobat913] and find this script at `Acrobat 9 Pro Patch.app/Contents/Resources/FindAndKill.py`.)

Was the author not aware of the `killall` command for sending a kill signal to a named process? The [`killall` man page][mankillall] says it appeared in [FreeBSD 2.1, which was released in November 1995][fbsd]. Adobe CS4 was [released about 14 years later][cs4]. How is it Adobe’s product managers approve these things for release?

What is particularly galling about Adobe’s Acrobat 9 updaters is that they seem to re-implement so much of what the Apple installer application does, even down to their use of gzipped cpio archives for the payload.

[acrobat913]: http://www.adobe.com/support/downloads/detail.jsp?ftpID=4538
[acrobat]: http://www.adobe.com/products/acrobatpro/
[python]: http://www.python.org
[mankillall]: http://www.manpagez.com/man/1/killall/
[fbsd]: http://www.freebsd.org/releases/2.1R/announce.html
[cs4]: http://www.adobe.com/aboutadobe/pressroom/pressreleases/200809/092308AdobeCS4Family.html

Microsoft Update versus Internet Explorer 8

Fun implications of designing [your software update service][msupdate] as a pseudo-application that is actually an ActiveX plugin (that needs to guarantee the owning web page cannot be closed) include refusing to allow _any_ web page to come forward when the owning web page is one of many tabs in Internet Explorer 8.

It is a little satisfying seeing Microsoft’s chickens come home to roost, but I would much rather they hadn’t made such obvious, Web-hostile choices in the first place.

[msupdate]: http://update.microsoft.com/microsoftupdate/v6/default.aspx

Me and Adobe hates you

It’s not true, I don’t hate you, but the [Adobe CS4][cs4] installer does.

I was installing Adobe Creative Suite 4 today on a Macintosh. I had the amazing Adobe CS4 Master Collection media to install from, but all I needed was the Illustrator, InDesign, Photoshop and Bridge. So in the installation process I choose a custom install and de-select most everything except those applications. I un-ticked After Effects because I didn’t want to install After Effects. I un-ticked Soundbooth, I un-ticked Dreamweaver, I un-ticked all them other applications.

The installation process begins. Finally it finishes. Afterwards I had Illustrator CS4, InDesign CS4, Photoshop CS4 and Bridge CS4 installed on my Mac’s hard drive. They all worked a treat.

I also had a dog’s dinner of all the other flipping applications installed, all the applications I did not want to install, I had little vomit stains of Adobe installations that didn’t quite actually install, but installed.

So for example I had a new folder in the Applications folder called “Adobe After Effects CS4” and inside there was an application named “Adobe After Effects CS4.app”. Except it isn’t an actual flipping application. It has a great big no entry icon on it because it isn’t an actual executable application.

CS4 installation mistake

In one sense the installer did what I expected: it did not install a usable After Effects CS4. In another sense it effing ignored what I expected by creating an installation folder for After Effects CS4 and then created an incomplete stub of the After Effects CS4 application.

I wish the Adobe CS4 installer had just done what I asked for. [The Adobe installation and licensing blog is here][oobe].

[oobe]: http://blogs.adobe.com/OOBE/
[cs4]: http://www.adobe.com/products/creativesuite/

The nature and purpose of AppleScript

An amusing sentence from the first chapter of *[AppleScript The Definitive Guide][oreilly]* by Matt Neuberg:

> To find reasons to use AppleScript, just leave your mental annoyance meter turned on.

But don’t forget to switch off your brain once you do start using AppleScript; the frustration of getting anything done with the miserable Macintosh applications that expose their workings via AppleScript never fails to kick my mental annoyance meter into the red.

The following paragraph employs sarcasm. I’ve just being having a wonderful time figuring out that [Adobe InDesign CS3][adobe] keeps the list of items on a page sorted by layer, but sorted in reverse layer order and then sorted forward within each layer. This makes it super sweet when you want to determine if box A in layer 1 overlaps box B in layer 2. Thanks Adobe! Another genius implementation from you guys! You guys fucking rock!

And it isn’t just the fault of the applications you want to script, the language itself is intentionally imprecise in trying to allow programs to be written in natural language. “Whether this English-likeness is a good thing is debateable,” writes Matt Neuberg, but he is being polite because if there is any debate on this question it is a fucking short debate: AppleScript’s English-likeness only serves to have you make mistakes with more confidence.

There is an interesting [history of AppleScript][history] which tantalizes the present-day scripter with the revelation that the language authors wrote a syntax “which resembled Java” but never released it, preferring to support scripts written in fucking French and fucking Japanese!

[oreilly]: http://oreilly.com/catalog/9780596102111/
[history]: http://www.cs.utexas.edu/~wcook/Drafts/2006/ashopl.pdf
[adobe]: http://www.adobe.com/products/indesign/

Installers: correlate of hate

The degree of hatefulness for a Mac installer often correlates to the degree of hatefulness for the software it installs. [Adobe Creative Suite][adobecs] is this rule’s exemplar. And if you have a [Blackberry][blackberry] mobile phone you may have had fun trying to get the [PocketMac for Blackberry software][pocketmac] working.

The PocketMac installation experience is pretty poor. Not surprisingly it uses [Mindvision’s Installer Vise][installervise]. But the developers have really pushed the boat out and gone to the trouble of using an Apple installer package icon for the install application. Do not be deceived! It is an application, not a package.

The PocketMac installer

The PocketMac installer

And if you succeed in installing the sync application, don’t expect it to work unless you happen to have learnt that you should only connect the Blackberry to the USB cable *after* you have opened the sync application.

[adobecs]: http://www.adobe.com/products/creativesuite/
[blackberry]: http://www.blackberry.com/
[pocketmac]: http://na.blackberry.com/eng/services/desktop/mac.jsp
[installervise]: http://www.mindvision.com/macvise.asp

Fiery RIPs, old-fashioned installation hate

Whether you buy from Canon or Xerox (or Epson or Konica Minolta, etc.), if you are buying a printer for heavy-duty use in a Mac design studio then it will probably have a Fiery RIP[^1] manufactured by [Electronics For Imaging][efi].

There are lots of things to hate about Fiery RIPs.

But right now I am going to hate their backward attitude to Mac driver installation. It is the year 2009 and this lot have yet to supply drivers as anything other than [Installer Vise][vise] applications. So that means no simple command-line roll-outs with [Apple Remote Desktop][ard]. That means no way of looking at the installation manifest ahead of installation. No way of having any confidence that the installer won’t screw everything up.

To compound their sins, EFI like to give their installer applications a very pretty icon that looks just like a stylized Apple installer package. It is a very pretty icon of a box; a box full of hate.

Purple box of Installer Vise hate

Purple box of Installer Vise hate

[efi]: http://www.efi.com/
[vise]: http://www.mindvision.com/macvise.asp
[ard]: http://www.apple.com/remotedesktop/

[^1]: RIP stands for Raster Image Processor. Which leads to quite enjoyable conversations about ripping through pages.

Adobe AIR installer, a hateful tradition

[Tweetdeck][tweetdeck] seems to be the path of least resistance for a desktop
[Twitter][twitter] client on Mac OS X 10.4 (there are other free Mac desktop
clients, [Nambu][nambu] and [Tweetie][tweetie] but unfortunately they both
require 10.5).

But Tweetdeck requires the [Adobe AIR runtime][air]. And the Adobe AIR 1.5
installer takes Adobe’s favourite approach of ignoring Mac OS X’s package
installer format in favour of a custom installer application.

When you open the installer, it takes a few seconds and then gives you a
license agreement. Here’s an excerpt:

> 2.3 Distribution. This license does not grant you the right to sublicense
> or distribute the Software. For information about obtaining the right to
> distribute the Software on tangible media or through an internal network or
> with your product or service please refer to…

I read that as explicitly banning any efforts to create a package
to ease the pain of deploying AIR across a bunch of Macs. Damn it.

Clicking Accept moves you to the installation proper, and Adobe loses a few
more points by immediately throwing up an authentication dialog box. Why does
this dialog appear? What am I about to install? If only this was a package
installer I could have looked at the installation manifest to get an idea of
what was going to happen *before* granting the installer free rein to my

Turns out that everything you care about is installed in `/Library/Frameworks/Adobe AIR.framework` and `/Applications/Utilities/Adobe AIR Application Installer.app` and `/Applications/Utilities/Adobe AIR Uninstaller.app`. For some reason the installer also touches a couple of files in `/Users/Shared/Library/Application Support/Adobe/AIR/Updater` and slips a couple utility apps in your `Library` somewhere. You can ignore those.

It feels particularly wrong when non-system applications put things in the `Utilities` folder – it is effectively a special system directory, and its contents are tools for tinkering with the system configuration or for diagnostics. Adobe Creative Suite 3 likes to create a folder `Adobe Installers` in there *and* `Adobe Utilities`, just in case you haven’t worked out how much you need their software on your computer.

Heaven is almost certainly running System 6.0.8. Nothing is installed without [Font DA Mover][fontdamover].

[air]: http://www.adobe.com/products/air/
[tweetdeck]: http://www.tweetdeck.com/
[nambu]: http://nambu.com/
[tweetie]: http://www.atebits.com/tweetie-mac/
[twitter]: http://twitter.com/
[fontdamover]: http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/English-North_American/Macintosh/System/Older_System/System_6.0.x/TrueType/

Adobe’s download manager

I had to install a trial version of [Adobe Flash CS4][1] the other day, and came across their latest tactic in making the world more complicated and hateful: the Adobe download manager.


From [the miserable user guide][2]:

> Adobe Download Manager is a stand-alone application that improves the process of downloading files from Adobe. Adobe Download Manager provides the following benefits:

Here the document explains the benefits point by point. I dislike those benefits.

> * Selects an Adobe product download destination

On a Mac, Adobe download manager ignores your download destination as set in the browser’s preferences. For Mac OS X 10.5 Apple went so far as to add a “Downloads” folder to the standard set of folders in an account. Adobe download manager prefers the “Desktop” and thinks you are wrong.

> * Allows you to pause downloads
> * Allows you to resume interrupted downloads

My browser already allows me to pause and resume downloads.

> * Allows you to download multiple files from a single links

I don’t see why clicking a single link and unexpectedly getting multiple downloads is good. Other single links don’t do that.

> * Allows you to download your products securely

As well as supporting HTTP, my browser supports an encrypted version known as HTTPS.

> * Verifies download integrity and completion

I accept that a regular download says nothing about the integrity of the file itself, and that this can be a problem. The geeky / secure way to fix this is to provide verifiable checksums for file downloads. But if the file is inadvertently corrupted then a disk image is likely to fail to mount (so you would know it was incomplete). If the file is maliciously corrupted then why would trusting Adobe’s Java download manager to verify the file be any better than trusting the file in the first place?

> * Leads you to the installation of your product

On a Mac there are [existing guidelines for packaging software][3] which do a better job of leading the user to the start of the installation process.

> * Provides a simple interface

It is simple. But the existing download methods are simple, and are familiar. Why would a new simple interface be necessary?

> * Provides System Tray downloading (Windows only)

Good for them. But irrelevant for Macintosh users, as is the helpful text on the download page that explains I will be downloading two files, an .exe and a 7zip archive, both of which are needed (unless you download the Mac version).

> * Provides background downloading

You mean even when I’ve explicitly quit my browser session your downloader ignores me and keeps working? Why?

> * Provides assistance with finding the download

If the download was saved in the expected folder and used the recommended install behaviour then I wouldn’t flipping need your assistance you arrogant twats.


Download managers were genuinely useful ten years ago when large file transfers were likely to be interrupted either because the server was at capacity or the client’s connection was unreliable (i.e. dial-up modems being forcibly disconnected every hour by your ISP). But I don’t need a download manager in 2009, not even when downloading a 1.36 gigabyte disk image file. I have a 40 megabit pipe and I don’t want to download another piece of software just so I can download a piece of software.

However Adobe’s download manager is not optional. If you want to download the Flash CS4 trial then you are required to use their downloader. Other Adobe patches and updaters are available without having to install the download manager, but this one absolutely will not work without you running a Java application in your browser!

But it is unnecessary. My browser is perfectly capable of saving the file to disk in a timely fashion, and it even knows how to pause and resume a transfer because it understands how to send the Range header in an HTTP request.

I wish Adobe would put the right people back in charge. The Java downloader is a pretty minor thing, but it smacks of a disregard for the simple and standardized mechanisms provided by a platform. In this respect it is much like Adobe’s continued refusal to kill [their terrible custom Mac installers][4].

Once I got Flash CS4 up and running I found myself wondering why it kept crashing. And then I realized that Adobe has changed the behaviour for Flash CS4 so that [*closing the final window quits the application…*][5]

My spirits sank lower.

[1]: http://www.adobe.com/products/flash/
[2]: http://kb.adobe.com/selfservice/viewContent.do?externalId=159990ae
[3]: http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareDistribution/Containers/chapter_3_section_1.html
[4]: http://www.betalogue.com/2008/11/13/adobe-cs4-installer/
[5]: http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGWindows/chapter_18_section_5.html#//apple_ref/doc/uid/20000961-TPXREF56