Xmarks Top Site in Adobe Scripting


Archive for the ‘Recipes’ Category

InDesign ExtendScript Toolkit and Soxy

Wednesday, January 27th, 2010

If you design and create ExtendScripts targeting Adobe InDesign for other people, like we often do, you probably also need Soxy.

Our customers use a diverse range of InDesign versions (CS, CS2, CS3, CS4), so we need to make sure the custom scripts we develop are tested against the same version of InDesign as the customer’s.

So, if my customer uses, say, CS2, I’ll use InDesign CS2 to test my script before e-mailing it off to the customer. (Of course, I could use InDesign CS4, and make InDesign CS4 switch to the CS2 script object model, but I rather play it safe, and test the script in the same environment as my customer).

During these tests, I often have the need to debug the script – so I need to use ExtendScript Toolkit.

The problem is somewhat convoluted, but very annoying.

First of all, I have multiple copies of the ExtendScript Toolkit on my computer. There is ExtendScript Toolkit (goes with CS2), ExtendScript Toolkit v2 (goes with CS3), and ExtendScript Toolkit CS4.

When I want to test a script in InDesign CS2, I first make sure it resides in the appropriate InDesign scripts folder.

Then, when I see the script appear on the Scripts Palette (oops *) Panel, I’d love to right-click the script and select Edit Script from the context menu.

Here’s where it goes wrong if you don’t have Soxy: when you select that Edit Script menu item, one of the three installed copies of ExtendScript Toolkit will ‘grab’ the script – and it’s often the wrong one.

So, you need to quit the wrong ESTK, then manually launch the version of ESTK that is associated with the version of InDesign you’re using, and then File – Open… the script from there. Or alternatively, you need to drag your script onto the appropriate ExtendScript Toolkit icon. Not exactly straightforward – it’s what I call an ‘aaargh’ moment.

Thanks to Soxy, you can forget all that – simply set up Soxy to handle .jsx files, and to pick the proper copy of ExtendScript Toolkit. So, when you’re slaving away on an InDesign CS2 script, you can simply right-click the script name, and select Edit Script. The script will be opened by Soxy, Soxy checks which Scripts Panel folder the script resides in (CS2, CS3 or CS4?) and immediately forwards the script to the proper version of ExtendScript Toolkit. It’s all but invisible – and no more ‘aaargh’!

So, next time you need to debug an InDesign CS2 ExtendScript – give Soxy a try! More info and a fully functional, time limited demo can be found here:

http://www.rorohiko.com/wordpress/downloads/lightning-brain-soxy/

* Footnote: Click here to see what the Palette Panel  ’oops’ is about ;-)

ShowPaths 1.0 for Macintosh Released

Thursday, January 7th, 2010

ShowPaths for Macintosh is a very simple app, with only one purpose: give you easy copy/paste access to the file path of a file or folder.

It’s released as donationware.

Have a look here for the download link:

http://www.rorohiko.com/showpaths

Distinguishing Photoshop EPS From Illustrator EPS

Monday, January 4th, 2010

Soxy 1.0.4 for Macintosh adds support for EPS files. Thanks to Soxy, one can double-click an EPS file icon in the Finder – and any Photoshop EPS file will open in Photoshop; any Illustrator EPS files will open in Illustrator.

You can download Soxy from this page:

http://www.rorohiko.com/wordpress/downloads/lightning-brain-soxy/

When that CD filled with EPS files arrives, there’s no more guessing. Simply double-click any EPS file’s icon – and Soxy will take care of it!

Here’s a small demo of how it could go.

I just upgraded my workstation to Soxy 1.0.4, but I have not configured it yet to handle EPS files.

Let’s do that first. The Soxy preferences screen can be accessed by simply double-clicking the Soxy application icon.

I now tick the Open with Soxy checkbox for the EPS file format – and from then on, my EPS file worries are over!

I have a disk with some images that originated on from a PC; when I mounted it on my desktop earlier, before I installed Soxy, I saw this:

With Soxy installed and configured, I can now simply select the two EPS file icons and double-click:

In a unnoticeable split second, Soxy analyzes both files, and hands them over to the proper applications. At the same time, it also updates the file icons to show which is which.

Turns out image1.eps is a Photoshop file, and image2.eps is an Illustrator file.

Try Soxy out today – once you’ve tried it, you will have a hard time imagining how you ever lived without it!

http://www.rorohiko.com/wordpress/downloads/lightning-brain-soxy/

How and why to use Script Labels in InDesign

Tuesday, November 17th, 2009

In this blog post, I want to talk a bit about the secretive Script Label in InDesign.

You might have noticed the Script Label palette, and wondered what it was used for – it’s under Windows – Automation – Script Label.

First I’ll explain what it is all about, and then I’ll dive into some practical scenarios to show you how you can use the Script Label to save lots of time. Most of the info in this blog post is applicable to Mac and Windows versions of InDesign CS, CS2, CS3 or CS4.

1. Big Word of the Day: Meta-Information

In most companies or institutions, ‘Adobe InDesign’ does not live on an island. It’s a cog in a bigger system.

There is a natural ‘flow’ of information throughout the company – orders or requests come in, and somewhere along the line, designers build or modify InDesign documents based on information they receive one way or another – a project brief, a meeting, an e-mail, a telephone call…

Then they pass the result of their work on to the next person or system down the line – as an InDesign file, an InCopy file, a PDF file, a web page, a stack of physical paper,…

In some companies, this flow of information is informal and unstructured.

In other companies (typically larger ones), the flow of information has more or less structure. There are rules and procedures and regulations. You’ll hear about things like ‘order forms’ or ‘job tickets’ or ‘job jackets’ being passed around.

Sometimes there are tangible envelopes or manilla folders with stuff in them, sometimes there is just electronic data being passed around via a central computer system…

In all this hustle and bustle, having a way to keep some tidbits of extra information about an InDesign document inside the document can come in very handy.

This extra info is not meant to be part of the printed end-result. Instead it provides you with critical info about the document: who is the customer? By when is it due? Who should you ring if you have questions? What inks can you use? What is the target resolution? How many pages can you have? And so on…

All such information is sometimes referred to as meta-information – it’s information about how to treat the information in the document.

Having the answers to questions like the ones above readily available ‘inside’ the InDesign document can make a world of difference. No need to ring around in order to figure something out if the info is right there for you to read, inside the document.

There are many ways to do this.

You might have a simple text frame out on the pasteboard with information typed into it. (On a related note – you might want to check out our free HistoryLog plug-in – it uses this idea to provide you with an automatic document history. http://www.rorohiko.com/wordpress/indesign-downloads/history-log/).

You might be using part of the document name to refer to the customer code or hold a deadline date (e.g. so you’d know that a document called RORO12_20091112.indd is related to customer code RORO12 and is due by 12-Nov-2009).

Meta-information is where the Script Label comes in handy: the Script Label is a convenient way to attach a little bit of text, any text, to a page item.

InDesign does not care what text you attach. Whatever you put into the script label won’t normally affect the output of your document – but it’ll keep the text with the page item.

2. Practical Use of the Script Label

Some people use the Script Label to tag page items for automated processing by a script – hence its name ‘Script Label’: it is very often used by script developers.

However, it is not limited to just that. Your imagination is the limit.

I’ve made up a sample scenario here – read it, and that might give you some new ideas. I’ve called this scenario ‘the todo-list-scenario’.

There’s some scripting involved, but you don’t need any scripting knowledge to make use of it – if you can follow instructions, you should be able to make this work.

The problem: imagine I have a spread with heaps of text frames, and all of these page items need to be inspected. Some of them need to be modified depending on what I find.

Suppose all these text frames contain customer comments for the Playamathing toy, and they might or might not contain a reference to a color.

There’s a frame that contains the text “I really love the red Playamathing”. Another says “The yellow Playamathing with the extra knobs is my favourite”, and so on… Imagine there are hundreds of those frames, scattered all over the layout in a fairly haphazard layout.

My task is to read all these bits of text, and change the background of the frames to match the color mentioned, if there is one. If no color is mentioned, I am to leave the background white.

How do I keep track of which ones I’ve inspected and which ones I still need to do? Script Label to the rescue!

2.1 Marking page items with a script label

First of all, I select all text frames. Then I bring up the Script Label palette and type ‘TODO’ in it. Then I click somewhere in the pasteboard area. Through that simple manipulation, I’ve now ‘marked’ all selected text frames with a script label ‘TODO’.

snap1

I now keep the Script Label palette open, and each time I finish one of the text frames, I simply remove the ‘TODO’ from the script label for that text frame.

snap2

2.2 Using Scripts

This approach is still rather cumbersome, and we’ll improve it through a few simple scripts and keyboard shortcuts. Here’s how!

Open a text editor. You could use Notepad on Windows, or TextWrangler (http://www.barebones.com) on Mac.

Don’t use the Apple-provided TextEditor – it will try to save your script in RTF format instead of plain text, and then it won’t work.

Tip: if you’re really in a bind, Stickies (the sticky-note app that comes with Mac OS X) works better than TextEditor when it comes to creating plain text files.

Type the following text into a new text file:

app.selection[0].label = "TODO";

This is a one-line script. There are a few small ‘gotchas’, and I’ll discuss those later, but it’ll do.

Save the one-line text document into a file called mark_todo.jsx

Make sure the file extension is .jsx, not something else. It’s easy to accidentally create a file called mark_todo.jsx.txt (with an extra .txt file name extension). To compound that problem, the Windows Explorer or Mac Finder are often configured to not show the final .txt, and hence such a file might look OK, yet refuse to work. Be aware that what looks like a .jsx file might not be one.

Now, store this mark_todo.jsx file in the InDesign Scripts – Scripts Panels folder. Go to your InDesign application folder, then into Scripts, then into Scripts Panels. Put the mark_todo.jsx file there.

(A method to quickly get to the Scripts Panel folder is to right-click or control-click the Application folder on the Scripts Palette in InDesign and then select Reveal in Finder or Reveal in Explorer).

snap3

Now duplicate mark_todo.jsx file, and rename the duplicated file to unmark_todo.jsx. Then open unmark_todo.jsx in your text editor and eliminate the four letters of TODO, so it reads:

app.selection[0].label = "";

snap3a

Go back to InDesign. On the Scripts Palette in InDesign, when you double-click either mark_todo.jsx or unmark_todo.jsx, they will look at the current selection, then take the very first item in that selection, and adjust the script label of that item to either be TODO or nothing.

These two scripts have some limitations, as you’ll find out. Try this: make sure no page item is selected and then double-click either one of them on the scripts palette.

blog_scriptlabel_errormessage

You get a nice big fat error dialog: the script is trying to access part of ‘the selection’ and nothing is selected, so InDesign is a little bit unhappy about that.

Not to worry! You can safely ignore this – nothing bad has happened. We’ll just live with that behavior for now – simply keep in mind that you must have a single item selected before running either script.

2.3 Using Keyboard Shortcuts

The next step is to assign some keyboard shortcuts to these two scripts. Go to Edit – Keyboard Shortcuts, and create a new set if necessary – I created a set called Todo Script Set. Go into the Product Area Scripts, and then assign shortcuts to the two scripts – on my Mac, I’ve assigned them Ctrl+T and Ctrl+U. On Windows you might want to pick some other shortcuts – pick something that works for you.

blog_scriptlabel_keyboardshortcuts

The scripts palette should now show these shortcuts next to the scripts. Bring the Script Label palette into view, select a page item and repeatedly hit Ctrl+T followed by Ctrl+U while observing the Script Label palette. The word TODO should appear and disappear from the Script Label palette each time you hit the shortcut.

That’s another step in the right direction – marking and unmarking individual page items just became a whole lot easier.

2.4 Finding marked items

Now the next question is: how to quickly find page items that still have a ‘TODO’ script label? Sadly enough the standard ‘Find’ function in InDesign does not seem to be of much help.

Scripting to the rescue! Below a script that finds the next item with a ‘TODO’ script label.

do
{
  if (app.documents.length == 0)
  {
    break;
  }

  var document = app.activeDocument;
  if (! (document instanceof Document))
  {
    break;
  }

  var currentItem = null;
  if (app.selection.length > 0)
  {
    currentItem = app.selection[0];
  }

  var undoneItems = [];
  for (var idx = 0; idx < document.allPageItems.length; idx++)
  {
    var pageItem = document.allPageItems[idx];
    if (pageItem.label == "TODO")
    {
      undoneItems.push(pageItem);
    }
  }
  if (undoneItems.length <= 0)
  {
    break;
  }

  var nextItemIdx = 0;

  if (currentItem != null)
  {
    var currentItemIdx = -1;
    var searchItemIdx = 0;
    while (currentItemIdx == -1 && searchItemIdx < undoneItems.length)
    {
       if (undoneItems[searchItemIdx] == currentItem)
       {
         currentItemIdx = searchItemIdx;
       }
       searchItemIdx++;
    }
    if (currentItemIdx >= 0)
    {
      nextItemIdx = currentItemIdx + 1;
      if (nextItemIdx >= undoneItems.length)
      {
        nextItemIdx = 0;
      }
    }
  }

  app.select(undoneItems[nextItemIdx]);
}
while (false);

I won’t elaborate on how this script works – if you’ve done some ExtendScript-ing before it should be fairly easy to follow. If you’re new to ExtendScript – simply make sure you copy the script verbatim.

Save this script to your Scripts Panel folder as next_todo.jsx.

Each time you double-click this script, the currently selected item will ‘jump’ to the next item that still has a TODO label. You can assign another shortcut key to this script – I used Ctrl+N on my Mac. Each time I hit Ctrl+N, my selection jumps to the next page item with a TODO label.

2.5 Seeing Marked Items

We’re not done yet! If you install our FrameReporter plug-in (http://www.rorohiko.com/framereporter) you can configure it to visually show the script labels. With FrameReporter active, and configured like this:

Screen shot 2009-11-18 at 3.26.27 PM

I can do Select All on my spread, and I get to see this:

Screen shot 2009-11-18 at 3.29.23 PM

I can immediately see that two of the three items still haven’t been examined. Unlike most of our plug-ins, FrameReporter is not a freebie, but it’s still a steal at just US$29.

2.6 InDesign CS4 Live Preflight

But wait, there is more! Soon, we’ll have the YeShore plug-in available which extends the InDesign CS4 Live Preflight (http://www.rorohiko.com/wordpress/yeshore). It has a number of powerful new preflight rules, one of which involves script labels.

If you have YeShore installed (e.g. because you’re on our beta program – check the web page to find out more), you can configure a rule to find all unfinished page items:

Screen shot 2009-11-18 at 3.34.43 PM

I’ve made a preflight profile called ‘Check all done’ and added a rule that says that the script label should not be TODO. With this profile active, it becomes very easy to see how many items I still have to handle, and to ‘hop’ to any items that are still marked as TODO. I simply click on one of the lines in the Preflight panel and InDesign immediately selects the corresponding item.

Screen shot 2009-11-18 at 3.37.12 PM3. Conclusion

I hope that these samples are useful! And if you’re interested, check out FrameReporter, or stay tuned to hear more about YeShore!

Cheers,

Kris

How To Nudge And Shift a Whole Layer

Thursday, October 29th, 2009

The latest version of our LayerLifter tool includes an optional layer shifter feature, which allows you to do document-wide ‘layer nudging’

Imagine you made a picture grid layout, with captions below the pictures – something like this:

Screen shot 2009-10-30 at 11.11.02 AM

You’ve put pictures into the picture frames (to do that fast, you might have used our ImageLibraryLoader tool), and the caption text is all neatly styled using a paragraph style Caption.

The caption frames are on their own separate layer.

Imagine there are many tens of pages like this. Now, for the sake of the argument, suppose we want to make the caption frames overlap the pictures instead of sitting underneath.

First select the API – LayerLifter – Preferences menu item, and make sure the Drag Attached Layer On All Spreads option is enabled.

Screen shot 2009-10-30 at 11.15.34 AMSelect any one of the caption frames, and then pick the API – LayerLifter – Attach To Layer menu item.

snap4The caption frame should now display a little paperclip icon near its top left corner.

Screen shot 2009-10-30 at 11.20.19 AM

The caption frame is now ‘attached’ to the layer it is on – anytime you move this particular frame, you will ‘drag’ the whole layer along, as well as any other page items on that layer.

Drag the caption frame so it overlaps the picture above it. As soon as you let go of the mouse button, all other caption frames on all pages will shift the same amount – so they now all overlap – they were all on the same layer, so they all move along. (Yeah, I know the result does not look good – good thing this is only a dummy layout just for the sake of the demo, eh).

snap5

Finally, with the attached caption frame still selected, use the API – LayerLifter -Detach From Layer menu item to remove the paperclip, and detach the caption frame from its layer.

Important: this layer shifter feature is only enabled for LayerLifter users that also have a valid APID ToolAssistant license installed.

FrameReporter 1.0.5 Released

Friday, October 9th, 2009

We’ve been hard at work these last few months – a beta of StoryTweaker, a new version of TextExporter, and also a new version of FrameReporter for InDesign.

This update adds the ability to display the image file name and/or the image file path next to any placed image on the InDesign page.

Here’s a sample of what it can do for you – imagine you’ve been asked to place a whole lot of images, and it’s really important that the images are placed on the pages in alphabetical order of their file name.

The problem is that the images look very similar, and carry similar names – how do you verify quickly you’ve placed them correctly?

Furthermore, all images should be placed at the exact same scaling factor, so their effective resolution is the same. Again, how do you quickly find that out if there are any outliers?

Here’s a screen shot of my InDesign page – I can immediately see that DSC_8755 is out of order, that it is missing (hence the red background behind the name) and that the fourth image has been scaled to a different effective resolution than the other three.

Screen shot 2009-10-05 at 6.11.36 PM

With FrameReporter, it takes all of two seconds: Select All, and quickly inspect the file names.

And rest assured – these little labels are purely informational, and they are non-printing – they won’t appear on the printed page.

FrameReporter uses little non-printing labels to display interesting info about selected page items.  A lot of this info can also be found on the various InDesign palettes – but you need to click around to dig up the info. With FrameReporter, the relevant info is displayed exactly in the area where you are working, and you can immediately see the necessary info for multiple items in the flick of an eye.

Another example: FrameReporter will show overset text warnings on the frame of any text frame that’s part of a linked set of frames.

Check it out – click here for more info:

http://www.rorohiko.com/framereporter

How to Populate a Template With Images in No Time At All

Wednesday, September 16th, 2009

This short article will explain how you can set up a template with a bunch of image frames, and then populate this template with images, much faster than you’d expect, using Adobe InDesign CS3 or above.

The secret to this are two of our popular tools: ImageHorn and ImageLibraryLoader.

Both are free, but for maximum efficiency you will also want a licensed version (or a non-lapsed demo version) of our APID ToolAssistant plug-in installed.

That’s because the Paste Into Selected Frame feature of ImageLibraryLoader is only available for people that have a licensed APID ToolAssistant installed – that particular feature is not available if you are using the free, unlicensed version of APID ToolAssistant.

Now, it works fine without the Paste Into Selected Frame feature, but as you’ll see, having this feature allows you to save even more mouse clicks.

Here’s how it works: first you need to install the plug-ins (three in total – ImageHorn.spln, ImageLibraryLoader.spln, and an appropriate copy of the APID ToolAssistant plug-in).

Launch InDesign CS3 or above, and create a new document. Create a few empty image frames – something like this:

Picture 2

Now, select all the frames (hit Command-A or Control-A), and then select the API – ImageHorn – Dynamic Fill Proportionally menu item. This will ‘mark’ all page items to (re)apply a ‘Fill Proportionally’ each time any of these frames changes – for example, when an image is placed into a frame.

Picture 3

The next step: fill the ImageLibraryLoader palette with images – select the API – ImageLibraryLoader – Reload Image Library… menu item, then navigate to a folder with some images you want to use as content for this layout. The ImageLibraryLoader will ‘grab’ all of these images, and quickly build a little floating palette with them – many people prefer this approach to using Adobe Bridge.

Picture 4

Now the magic bit: select any one of the frames on the page, and also select any one of the images on the AutoImageLibrary palette. Then select the API – ImageLibraryLoader – Paste Into Selected Frame menu item. The image will be copied from the palette, straight into the frame, and then ImageHorn kicks in, and the placed image will be resized to fill the frame proportionally – all in one quick operation.

To make it really fast, you’d assign a keyboard shortcut to the Paste Into Selected Frame menu item. Click-click-tap, done!

Picture 8

If you don’t have a licensed version of APID ToolAssistant, you won’t be able to use the Paste Into Selected Frame menu item. In that case you need a few more clicks to achieve the same effect. Drag the desired image from the AutoImageLibrary palette onto your pasteboard. This creates a new frame with the image inside it. Next, use the direct selection tool (hollow arrow) to select the frame content. Cut, and then Paste Into the destination frame. Delete the remaining empty frame from your pasteboard.

Of course, this trick is no panacea: it all depends on your workflow whether this approach is usable or not; in many cases, there are factors like image resolution to consider – but often, this is ‘good enough’.

Now, a bit more about APID ToolAssistant – it is a seemingly featureless plug-in, but it is actually a critical component for many popular plug-ins, and behind the screens it helps tools like ImageHorn and ImageLibraryLoader work their magic. APID ToolAssistant has two ‘modes’ – licensed and unlicensed.

When you install the downloadable demo of APID ToolAssistant for the very first time, it will work (for the purpose of demonstration) as a licensed version for about a month, and then it will fall back to the unlicensed mode.

If you’ve never installed APID ToolAssistant before, you’ll be able to try out the above trick during the demo period. On the other hand, if your demo version of APID ToolAssistant has already dropped back to unlicensed mode, you’ll need to shell out US$25 for a license before you can use the above trick.

Getting a license is easy – select the API – APID ToolAssistant… menu item. In the following dialog, click the line that says APID ToolAssistant and then click the Get License… button – you’ll be directed to a web page for purchase.

Picture 10

Follow the links below to read more about each of the three plug-ins:

Generate brand new 6×6 Sudoku puzzles straight into an InDesign page

Sunday, June 28th, 2009

The SudokuGenerator has been updated to version 1.1.0 – this latest version adds support for 6×6 sudoku, with 3×2 (HxV) subcells. 6×6 sudoku puzzles are smaller, and less intensive to solve than their 9×9 brethern – I estimate they would take the average puzzler about a minute or less to solve. Good fun when you only have a minute to spare! Click here for more info.

Here’s one to try – the clues in this puzzle are arranged in a visually symmetrical pattern: more pleasing to the eye, but that makes the puzzle also a bit easier to solve. If you want slightly more difficult 6×6 puzzles, you should not use the visual symmetry-options that our generator offers.

Picture 1

Things that didn’t work – BootCamp and Backup

Thursday, June 18th, 2009

I thought I’d share some failures with the world – this might save someone some headache and hassle, who knows.

Here’s the deal: I had Windows Vista installed on a BootCamp partition on my MacBook Pro. I am pretty religous about backups, and I had made a number of consecutive backups – some recent ones made with Acronis True Image Home, which I purchased recently, and some with Image For Windows, which I had been using before that.

For the Mac side of things, I use Carbon Copy ClonerCarbon Copy Cloner and SuperDuper! are two ‘imaging’ softwares for Mac, and to me the single most important feature they have is their ‘restore’ functionality – there is none!

You don’t need restore – the backups you make with those two programs are ‘good to go’: they are bootable, as-is, so they slot right in as a replacement of the broken drive.

Most backup softwares, especially on PC, are good at making backups, but in my experience, they stink at restoring: it’s an endless hassle of fiddling with boot disks, partition tables, formats and so on. If a PC drive dies on me, I know from experience that it’ll take me 2-3 days to rebuild the system back to usability. If a Mac drive dies on me, I can be back in business in an hour or so.

The reason why I switched to Acronis True Image Home is that I was hoping it would give me some functionality somewhat close to what Carbon Copy Cloner does – i.e. in case of disaster, I was hoping to reboot off some CD, put in the backup, and have it restore the hard drive to its original self.

So, disaster struck, and the 500GB hard drive in my trusty MacBook Pro gave up – click-click-click… forever, just the day before I had to leave overseas. The drive was partitioned into one 320GB partition for Mac, and then the remainder used as a BootCamp with Vista.

Not to worry – I simply opened the machine, and replaced the internal hard drive with the backup drive I made with Carbon Copy Cloner. Within the hour I was back in business with all my Mac stuff back where it was supposed to go, except for the changes of the last few days. Those remaining files I got off my Time Machine. Saved!

However, the BootCamp partition was a different story; I did not look into it immediately, as I had no immediate need for it. A few months go by, and a few days ago, I decided to try and rebuild my BootCamp setup – easy peasy, I had backups aplenty, right?

Wrong, it turned out. The backup drive had an empty, unused Mac partition the same size as my BootCamp setup – the idea being that when ‘restore time’ came around I would repurpose that partition as ‘BootCamp’ and tell Acronis to put the BootCamp stuff there.

But it turned out I could find no easy way to tell the Mac that I wanted to ‘convert’ the Mac partition for use by BootCamp/Windows. The BootCamp utility insists on starting from one big Mac-only partition, and then shrinking it down to allow room for a BootCamp partition.

The way I got around that was by Carbon Copy cloning all my stuff off the Mac, repartition the drive as a single, large partition, then Carbon Copy cloning all my stuff back onto the Mac. Total time needed for this little back-and-forth escapade: about 12 hours. Great.

Morale: don’t ’save’ room for a BootCamp partition on your clone-to backup drive. Instead, make your backup drive one big Mac partition.

Ok, that was one hard lesson. I now told the BootCamp utility to get me going with BootCamp. Booted into Windows, installed a basic copy of Vista. Installed the BootCamp drivers. Didn’t work. Grmm. After some head-scratching I realized I’d used the BootCamp drivers from a generic Mac OS X install disk – instead, I should have used the Mac OS X install disk that came with the MacBook Pro.

Morale: use your Mac’s install disk to install the BootCamp drivers on Windows.

Onwards, ever onwards. I now installed Acronis into Vista, and got to a point where I was ready to restore my BootCamp partition: I made an Acronis boot disk on a CD, rebooted the Mac off the Acronis boot disk, and… no way to do the restore: the Acronis software simply has no idea how to read the partition tables on my Mac’s drive, and it simply told me to go away. Bummer.

Not to be deterred – I rebooted my Mac under Mac OS X, started VMware Fusion, and ‘grabbed’ the BootCamp partition as a virtual machine.

A VMware-fusion-ed BootCamp has a lot of emulated hardware and so, so I reckoned Acronis might work this time around. I plunked in the Acronis boot disk, fired up BootCamp under VMware Fusion, and hit the F2 key as soon as the screen flickered (so I could get into the virtual machine’s BIOS settings). In the BIOS screen I changed the boot order to boot off CD instead of from the internal hard disk.

Ok – we’re booting off the Acronis CD – great! It recognizes the hard drive – great! It recognizes my backups – great!

Oh, wait – that is way too much success in one go – so I was punished, in a cruel and painful way.

Turns out the Acronis boot disk has its own mouse driver software, and it’s almost impossible to use in a VMware Fusion virtual machine – you can only move the big yellow mouse cursor a wee bit left or right, and then it jumps somewhere else. The mouse cursor had a mind of its own, and I had very little control over its movement.

To make matters even more frustrating, the Acronis software does have some keyboard navigation – but it is not consistent. Some things can only be clicked with the mouse – no keyboard shortcut to it. With persistence, luck, pounding of the keyboard, and lots of frantic mouse skating, I managed to occasionally get the mouse cursor positioned over a button I needed to click.

So, I slowly, slowly waded through the selection screens until I came to a point where I needed to tell it what partition to restore to – and there things locked up. Any further keystroke or mouse click would make the virtual PC emit beeps. Nothing could make it budge. Beep beeperdebeep beep. Grrr.

So, I redid the whole procedure – rebooted, spent another hour flapping my mouse around to get to the same point. Same phenomenon: no way to get past that screen. Total time lost: at least 4 hours. I gave up; Acronis was not going to do it. It’s probably great for ‘real’ PC’s but it is useless with BootCamp.

Morale: don’t bet your life on Acronis True Image Home when you use BootCamp.

All was not lost – I still had some older backups made with Image For Windows. Image For Windows is not good-looking, and it is downright clunky at times – but this thing has a lot of knowledge and experience packed into it. The procedure was similar to Acronis: make a boot CD, boot VMware Fusion off it, connect backup drive.

This time around, it was smooth sailing: the software picked up the NTFS-formatted USB backup drive, and so on, and the restore was underway! … still underway … still underway. About 24 hours!! later, the restore was finally complete – man, that was incredibly s-l-o-w. But it worked! Or did it?

I rebooted BootCamp in VMware fusion – it thought about it long, and hard, and eventually booted right up. We’re in business, we’re in business!

Then I tried rebooting straight off the BootCamp drive. Shattered dreams – some message like ‘a bootable drive cannot be found’. Tried rebooting off a Vista boot disk and doing all kinds of repairs – to no avail; it never saw the hard disk partition. Tried rebooting Bootcamp in VMware Fusion: nope. Dead as a dodo.

I gave up there – I’d been at it for days!

Later on, when the frustration has worn off a bit, I’ll reinstall BootCamp from scratch and forget about the backups – it might be possible to restore them, but it’s just too hard!

Morale: backup just the data stored under BootCamp and be prepared to reinstall Windows under BootCamp from scratch after a disaster, and then pour the data back in after rebuilding the PC side.

So, that’s my sorry tale – I hope this helps someone else avoid the mistakes I’ve made!

Cheers,

Kris

Soxy 0.1.5 Released

Monday, June 1st, 2009

Soxy for Macintosh has some new features.

The latest version knows how to handle InDesign .jsx script files. Instead of stashing your .jsx files into the InDesign Scripts Panel folder, you can now simply tell the Mac Finder to assign the .jsx file name extension to be opened with Soxy.

Soxy then looks inside the .jsx file for any comments that indicate the version of InDesign the script is destined for, and it then runs the .jsx file with that version.

This means that InDesign .jsx files become almost like little stand-alone applications: you can store them wherever you like on your hard disk, and simply double-clicking them will make the script run inside the proper copy of InDesign.

Soxy must be able to guess what version of InDesign needs to be launched – it will scan the beginning of the .jsx script file for comment lines like

// InDesign CS4

or

// InDesign 6.0

or entries like

#target indesign-6

and use these to decide what version of InDesign this script ‘belongs to’. Most script .jsx files have such a comment – and if they don’t you can always open them in a text editor and add such a line at the beginning of the script.

Make way for double-clickable .jsx files!

For more info click here.