2003


June 2003

Co-won Sales Impact Award, Asia Pacific for 2003. Won “Creative” section of internal Worldwide Sales Team presentation.

March 2003

Assigned management of Channel Sales team, along with the Presales Technical team.

April 2003

ACE in Photoshop 7, Acrobat 5 and InDesign 2.0.

First experiments with DIV Positioning

The new design is almost fully implemented. I used Photoshop 7 and ImageReady 7 to create the base design. I used the CSS layer HTML export format from ImageReady to create the base layers. Heavy text editing and previewing in GoLive 6.0 made the process of refining (and learning) easier.

The inspiration for the current design came directly from Russell Brown and Nick Hodge in New Zealand. The west-coast beaches in the Waitakare Ranges of New Zealand are awe inspiring. Russell took the shot of myself near Lion Rock at Piha that sits on the front page.

I was in the bad habit of using HTML tables as the base construct of web pages. This is based on a historic comfort, a hesitation based on Netscape 4.x’s lack of full CSS1 let alone 2 compliance, the base export out of tools like GoLive and ImageReady producing tables and a general reluctance to persist with learning something new.

Things I learnt on this journey:

  • CSS positioning and DIV layers result in smaller, more compact and easier to read HTML. Once you understand that you can nest the DIV layers, and that the positioning can be relative to the enclosing DIV layer (as a box), its easy to position elements. It would be cool if boxes expanded/shrank in relation to their parents to make it easier to implement layouts. This would then make it similar to the Java GridBag et al layout system.
  • Implementing a few minor changes to colours and rollover styles was simple. Mungenet already used CSS for font/style type formatting to separate design from content. Adding DIV layers was as simple next step.
  • Separating the content from the design also helped implement the new design. By placing the new template into the CMS, the implementation took seconds, not hours or days.
  • I only had to add 3 lines to the mungenetengine PHP code to implement a new way of rendering image references for the inline CSS. 8 lines were commented out due to a bug in some regular expressions. No other deeper changes were needed to the code that worked for the previous table design.
  • The site will not work in Netscape 4.7 or earlier. In fact, the previous version of Mungenet would not have worked with Netscape 4.7. As I use the br/ tag in its correct XHTML syntax form, Netscape’s parser doesn’t see this and ignores the tag. Some may call me browser elitist, but you need your head read if you are still using Netscape 4.7!
  • Opera 6.x and Netscape 6.x interprets the CSS DIV positioning differently. For instance, the next/previous buttons in IE render at the top of the content DIV layer. In Netscape 6.x, they render at the bottom. Overall, rendered in Netscape 6.x this site looks ok, but Opera 6.x needs a little work.
  • Whilst largely tested in IE6/NS6 on WindowsXP, I also tested this with Internet Explorer 5.1 on MacOS X. I notice in my logs the odd Internet Explorer 5.0 on Windows 98 passing this site. As Internet Explorer 5.0 MacOS 9 is one of the best and most complete CSS1/2 browser out there, I trust it works ok. Notice I didn’t use the word assume!
  • I long for full PNG-24 support including the correct rendering of alpha channels in Internet Explorer. Using transparency as a part of design is something with InDesign 2.0 makes easy for print. Now we need a similar, standardised way in XHTML and PNG-24. Without resorting to Flash SWF or SVG.
  • PNG-24 aside, its easy to get some interesting design effects by placing images as background elements of layers: see the navigation piece on the left hand side, and footer at the bottom of this page.

To investigate and complete:

  • True W3C HTML conformance. This site presently doesn’t pass the full test due to some tagging issues. Whilst these do not effect the rendering in most popular browsers, I would like to ensure it passes.
  • Conditional rendering of elements to permit PNG-24 to Netscape 6/Opera 6 and dumb, single bit transparency in GIFs for Internet Explorer
  • Different CSS for Opera 6.0
  • Clean up the external CSS and reduce size by removing unused elements and truly inheriting styles.
  • Replacing tables that render the navigation pieces into CSS layers

The best resources I found on the web for understanding CSS positioning and layers:

The W3C on Cascading Style Sheets
Discussion at Webmaster World
The CSS Shark

If you are a HTML table jockey, I think its time to make the switch to CSS positioning and layers.

InDesign 2.0: Spot Colors, Transparency

[1546] InDesign CS LogoVisit the new InDesign Prepress Section: Adobe InDesign: Prepress Techniques

InDesign 2.0, Spot Colors, Transparency.

In June 2001 I had the opportunity to spend some time at Australian Consolidated Press (ACP) looking at the implementation of InDesign as a replacement to QuarkXpress and Heidelberg DaVinci systems.
Replacing QuarkXpress is something that is pretty straight forward: understanding the implications with users, feature comparison, PDF generation and system requirements just some of the tasks that were looked at.

Personally, I am getting sick of so-called expert users stating that PDF does not support spot colours! This document, and InDesign 2.0, proves beyond a doubt that PDF does, in fact, support spot colours!

DaVinci system, however, are a completely different kettle of fish. These high end systems, commonly used in prepress where spot/special colours are involved require skilled operators and talent mixing artistic skills and a traditional prepress trade background.

One of the problems with tools such as Photoshop, QuarkXpress and Illustrator is their lack of strong support for jobs containing spot/special colours.

When working with bitmap images with spot colours into QuarkXpress, you must use DCS format files. DCS stands for “desktop colour separation” – applications like Photoshop take an image containing CMYK data + spot channels, and produce a file that contains all the data — but preseparated into each of the plates. After placing this element into InDesign or QuarkXpress, the only way to print high quality is to print separations.

In a world of composite Postscript and composite PDF, separated output is usually only seen at a late stage of film or plate generation. You cannot send a separated PDF to a non-print savvy client and expect a positive response.

With QuarkXpress and other applications all support a mixed CMYK + spot colour workflow. The spot colour separations are usually restricted to vector elements as created in Illustrator or the application itself. Application will generate the 5th or 6th colours when printing separations.

One “white lie” in the prepress world is that PDFs cannot retain spot colours. This is incorrect. This is a residual myth left over from the days of Acrobat 3.0 Distiller. There was a special magic trick of placing the Prologue.ps and Epilogue.ps files into the Distiller folder and turning on the “Use Prologue and Epilogue.ps” in the Distiller job options. These special .ps files can be throught of as “extensions” to Distiller. One of the side benefits was that they permitted the retaining of Spot inks in the PDFs that were generated. With Acrobat Distiller 4.0 and later in February 1999, this is not required. PDFs can contain spot colours, tools like CrackerJack and RIPs will see the extra plate and separate these correctly.

“By default, Acrobat Distiller 3.0x does not retain spot colors or separation information in composite PostScript files, but instead retains this information in the Epilogue.ps and Prologue.ps files. Separated PostScript files, however, already contain spot color and separation information, so Acrobat Distiller 3.0x doesn’t need the Epilogue.ps and Prologue.ps files. If Acrobat Distiller 3.0x uses the Epilogue.ps and Prologue.ps files on a separated PostScript file, the resulting PDF file will not contain correct spot color or separation information.” (from http://www.adobe.com/support/techdocs/1b656.htm)

When it comes to transparency, soft-edged images and drop shadows – InDesign 2.0 changes the landscape significantly. Outputting from InDesign 2.0 works today – even when generating Acrobat 4.0 (PDF 1.3) documents. The Flattener is a magic piece of work that has taken many years of advanced development. It first appeared in Illustrator 9, and received bad word of mouth. This is largely due to incorrect configuration of the Flattener settings. Personally, as these settings appeared in 3 different places, it is not surprising that it has caused heartache in prepress departments world wide. (Illustrator 9, Transparency and Printing)

InDesign 2.0 has a later revision of the Flattener, and the settings are in one place: Edit>Transparency Flattener Styles. Today people are flattening complex images: usually in Photoshop 6.0 when saving as a .eps or a .tiff. Using the Flattener in InDesign 2.0 is no different: just that it is happening at a later stage of the process. (InDesign CS Printing Guide)

What about Spot colours? Are they retained in this flattening process. It would be OK if these features worked in a pure CMYK world, but disappointing if Spots were not retained.

Yes, Spot colours are retained.

In June 2001, I sent a slightly panicky email to Tim Cole in the US:

“A slightly technical question; how will Anna deal with Spot colours?
What if I create a piece of text using a Spot Colour, and apply drop shadow? (consider shadow is a Process Black) Will the Spot be retained?”

The retention of Spot colours is highly important in the world of front covers of magazines; also packaging, outdoor/promotional posters and complex documents like annual reports.

A day later, I received the following answer from Matt, an InDesign engineer through Tim:

“The spot will remain a spot. In fact, unless specifically requested (e.g., through the ink manager, or through your spot/overprint mode selection at output time) Anna will never convert a spot to process.”

Lets look at the workflow.

  • Save images from Photoshop CMYK as images with transparency defining the edges of the image(Photoshop PSD or Photoshop PDF ensuring you are Saving Transparency)
    [1127] Saving Photoshop CMYK as PDF with Transparency

  • Create and use Spot colours in InDesign 2.0 assigning colours to any elements; text etc. In this example, I have defined a large, ful;l bleed rectangle in Pantone 662C and the text “Ski NZ” in Pantone 7405 C
    [1128] InDesign 2.0 with two Spot Colours defined

  • Place Photoshop file into InDesign document.
    [1129] InDesign 2.0 with two Spot Colours, now placed Photoshop PDF

  • Print Composite CMYK, Separations (in the Ink Manager, ensure that the Spot colours are going to a separate plate)
  • The result looks something like this:
    [1130] InDesign 2.0 with two Spot Colours: Separations in Acrobat
    Lets look at the Black (K), Pantone 662 C and 7405 C plates:
    [1131] InDesign 2.0 with Spot Colours: Black (K) Plate
    [1132] InDesign 2.0 with Spot Colours: Pantone 662 C
    [1133] InDesign 2.0 with Spot Colours: Pantone 7504 C

As you can see, InDesign 2.0 is correctly holding the spot colours, feathering the spot where the CMYK image is knocking it out, and holding the drop shadow in the Black plate.

Please note: If you have a PDF with Spot colours and transparency generated from InDesign 2.0 and are viewing it in Acrobat 5.0: ensure you have View>Overprint Preview turned on. This will ensure that you are seeing a closer representation of what is going to print. Otherwise, you will see white boxes where there is a transparency interaction.

What about composite output? Composite is usually expected to be pure CMYK. But when printing out of InDesign 2.0 as Composite CMYK, the Spot colours are held (that is, not converted to process unless you tell InDesign to do it that way). Here is a screen dump of a Composite PDF (created from Composite Postscript printed out of InDesign 2.0). To show that there is still two Spot plates, I am using Quite Revealing from Quite Software to ‘reveal’ the Spot plate.

[1134] InDesign 2.0 with Spot Colours: Composite output, revealed

Thanks to the guys at ACP, Tim Cole, Michael Stoddart and Matt Phillips.

A Postscript: I hear that the DaVinci’s were turned off at the end of April. All front covers of magazines, including those with spots are now completed using Photoshop and InDesign 2.0.

Tricks of the HyperTalk Masters

[1115] Tricks of the HyperTalk Masters
Front Cover, Tricks of the HyperTalk Masters. The Waite Group 1989.

In 1987 Apple released an application called Hypercard. Once I saw Hypercard, my life changed. The inbuilt programming language, HyperTalk, combined with the UI/database made it extremely easy to write small applications. Many of the features of HyperCard predate the web, but I believe heavily influenced Tim Berners-Lee in the HTTP/HTML design he was perfecting at the same time.

At about the same time, there was no world-wide web as we know it today. Bulletin Board Systems (BBS) and large online services such as CompuServe ruled the roost. To work with these systems, you used a terminal emulator, XModem/ZModem downloads and command line systems. CompuServe created a MacOS UI over this complex interface.

In 1988 Brian Musker, IT Manager of the Australian Submarine Corporation, was also a HyperCard fan – and wanted to know if you could write an interface over complex terminal-based systems. Born from this was a great relationship between both companies and the building of a career (in my case)

Another side benefit were some postings into the HyperCard forum in CompuServe. Mitchell Waite, of the Waite Group asked me if I was interested in writing a chapter for a book they were planning “Tricks of the HyperTalk Masters”. Mitch asked me to write a front end to CompuServe using HyperCard.

I have never written anything of note in my life. My english sucks. Blame a poor country school education! By 1989 I had completed the HyperCard “stack” with scripting – and had written the text that described what the stack was doing. Naming the application Chauffeur, it was meant to assist you through the complex process of CompuServe.

My fee was all of US$500 for this project, and personally paid about AU$1200 in CompuServe fees! The contract I signed was longer than the chapter I submitted.

[1116] Page 420, Tricks of the HyperTalk Masters
Page 420 of the Chauffeur chapter

[1117] From Pacific Computer Weekly, May 1989
[1118] TOTHM: Adelaide Advertiser

A paradigm shift in software

A paradigm shift is due in the realm of what I call distributed computing. In my definition, this is where the processing for a particular task is “done somewhere else” other than the desktop. In the web model, you can think of this as dynamic web sites. You tell the server what you want by clicking on a URL, and the web server generates a result designed for what you can display – web browser, phone, pocketpc using flash, pdf, html, wml, svg or image.

If we extend this to incorporate intelligent desktop software, you could have server based Photoshop plugins. You “hire time” with these plugins to do some smart processing on part of an image. Ie: select a badly photographed face in an image; click on a special “heal” button, and this image is sent to a server, processed and returned. If an engineer finds a smarter way to process the images – the protocol between the desktop application and server doesn’t change – just the code on the server. Everyone who uses this web service gets a better service, and the installed based of software on the desktop just gets smarter.

Another example is taking a collection of images and text and telling the server “to assemble this into a catalog”. The server returns an 80% completed catalog as an InDesign file. There are smarts in the InDesign app to tell the server what you change (positioning, text formatting) so the next time you ask the server to process something similar, it learns from its mistakes first time around. This time, the catalog is 90% completed. And so forth.

In this model, software companies like Adobe produce standardised “hooks” into their server plugins. Desktop applications are purchased with certain “rights” to use these plugins. Other desktop applications can also use these hooks, but at a different cost. The application is therefore a smart front end to the server. Larger organisations could purchase the server for internal use too.

Adobe is already experimenting with this model: Adobe Studio Design Team and CreatePDF (to name two)

It relies on increased bandwidth and smart connections from the desktop to the server. Smart protocols (like SOAP, XML-RPC and WebDAV) are also a part of this model. The use of artificial intelligence (another re-emerging paradigm) also permits smarter servers making changes. In fact, the client and server are smart enough to scale the process to a point where bandwidth is a function of the process used.

Using neural models (self learning software: what does this user expect) and iterative requests (the last time you did this, I found that this item needed to be moved a little to the left) — AI comes into its own as a process of producing smarter automated output.

Interestingly enough, I’ve seen some stuff coming in our pipeline of products that shows we are thinking in these manners. I love Adobe – lots of very smart people. I am also glad we are harnessing the best in the world, too.

InDesign 2.0: Automating Adding Words to the Dictionary


InDesign 2.0: Automating Adding Words to the Dictionary

Updated for InDesign CS: Import Words into InDesign CS Dictionary

A question from a customer: how do you import dictionaries into InDesign 2.0?

There are two real axioms about working for Adobe. (a) there is always someone smarter than you who can help (b) InDesign is scriptable.

By doing a Euclidean join of these axioms, I was able to solve the problem. Thanks to Olav from Adobe in Seattle for the coding. What Olav turned around in hours would have taken me days. Essentially what he has created is a little Visual Basic application that will import a text file of words into the exception dictionary of InDesign. This dictionary is attached to a specific language dictonary.

Download the ZIP file containing the IDAddWords application: InDesign 2.0 Dictionary Script

[1102] 01 addwords zip contents

This .zip file contains the source code (frm) and Visual Basic Project (vbp) If you do not have Visual Basic, it is also supplied as a .exe. Just Unzip the contents anywhere.

Double clicking on the .exe, you will see the following screen:

[1103] 02 initial screen

The Language: popup allows you to select which language dictionary you would like to insert the words into.

The Add Words button allows you to select a text file that contains a word per line, this file contains the extra words you would like to add to the currently selected Language: InDesign dictionary. It will prompt you for a text file, and the words inside this file will be inserted as exceptions into the Language: InDesign dictionary.

The text file would look like the following in Notepad or similar:

[1104] 03 text file in notepad

Remove All removes all exception words (not the original words supplied by InDesign in the Dictionary).

View Word List allows you to view the exception words in the current Language: InDesign dictionary in the scrolling panel.

Save Word List will save a text file; a word per line, of the current exception words in the dictionary.

Please note (from the InDesign 2.0 Online Help Files:)

By default, hyphenation and spelling rules are based on the dictionary for the language specified for the text. When you customize the words in a dictionary, you actually create exception lists of added words (words that aren’t already in the dictionary) and removed words (existing dictionary words you want InDesign to ignore).

By default, hyphenation and spelling exceptions are located only in user dictionary files stored outside the document on the computer where InDesign is installed (dictionary filenames end with the extensions .udc and .not). However, you can also store exception lists inside any InDesign document. In addition, you can specify that the text-composition engine composes text using the word list stored in the external user dictionary, the word list stored in the current document, or both. Specify storage and composition settings in the Dictionary panel of the Preferences dialog box.

PDFs for Onscreen Presentations


On Screen Presentations with Adobe PDF.

Adobe Acrobat (including the free Reader) has the capability of taking any PDF and displaying it “full screen” In this mode, a black background is drawn to the screen, and then each page of the PDF is displayed.

Using the arrow keys or mouse button, the next page of the PDF can be displayed.

By making PDF files that fix the scale of the screen (a ratio of 1.3 to 1; ie: 1024 x 768 pixels) – the onscreen presentation can match a presentation made in an application such as Microsoft PowerPoint. In Adobe InDesign, you would create a document where its measurement is in this ratio.

In fact, you can create presentations in PowerPoint, and using the PDFMaker plugin (comes as a part of Acrobat 4 and 5) PDFs for onscreen presentation.

By using PDF, the fonts are embedded into the PDF (no need to send them along with the PPT file)

Displaying Fullscreen

From the View>Full Screen option, a PDF will be displayed in full screen. It is also worthwhile remembering the keyboard commands for zooming in (control +) or zooming out (control -) — all the keyboard shortcuts still work in Full Screen mode.

In Edit>Preferences>General, and specifically in the Full Screen section of Acrobat you are able to customise:

– auto advance of slides every n seconds
– keyboard/mouse advancing of slides
– background colour

In File>Document Properties>Open Options you can specify that when a PDF is opened, it defaults to Full Screen mode.

Scripting Spot Colour Changes in Illustrator 10


Scripting Spot/Special Colors in Illustrator 10

A question from an Adobe Systems collegue- how do you script changing a named spot or special colour to a CMYK colour in Illustrator 10?

In this piece of AppleScript, it assumes that the first document is the one we are interested in. Change to suit your own purposes.

The object new_definition contains a record detailing the new CMYK object’s colour definition.

The variable change_swatch is the named swatch we are looking for.

Finally, the line starting set color... does the changing. It gets the named colour and changes it to the new colour definition.

tell application "Adobe Illustrator 10"

tell document 1

set new_definition to {cyan:0.0, magenta:75.0, yellow:10.0, black:50.0}
set change_swatch to swatch "changing_this_colour"
set color of spot of color of change_swatch to new_definition

end tell

end tell

I hope this helps someone out

InDesign 2.0: Word Count using Visual Basic


Adding a Word Count to InDesign 2.0

TextCounter (Win) on Adobe Studio Exchange

One of the features missing from InDesign since its first version is a word count feature. In a fit of quiet rage and sheer stupidity, I wrote this simple Visual Basic 6.0 application that pops up a small window displaying the word count of the current selected story.

There is a Timer named tLexLuthor that waits around for a period of time

[1008] 01 lois lane timer

Just in case the user doesn’t want this turned on, there is a status button called bStart that toggles the timer tLexLuthor on and off.

[1009] 02 lois lane button

And finally there is a status field (read only) called lStatus. This is where the current word count is stored.

[1010] 03 lois lane label status

… And when running, this is how it looks.

[1011] 04 lois lane in action

The Visual Basic source that sits behind this small application is as follows:


Dim myInDesign As InDesign.Application

Dim myPub As InDesign.Document

'button named bStart (toggles on/off of Timer)

'lStatus as a label that contains the word count text

'tLexLuthor as a Timer object

Private Sub bStart_Click()
If (bStart.Caption = "Start") Then
bStart.Caption = "Stop"
tLexLuthor.Enabled = True
lStatus.Caption = ""
Else
bStart.Caption = "Start"
tLexLuthor.Enabled = False
lStatus.Caption = "waiting"
End If

End Sub

Private Sub tLexLuthor_Timer()
processEvent

End Sub

Private Sub processEvent()
Dim mySel As Object 'untyped object because we don't know what the selection is
On Error GoTo fail 'if anything goes wrong, don't call me
Set myInDesign = CreateObject("InDesign.Application")
Set myPub = myInDesign.ActiveDocument
Set mySel = myPub.Selection(1) 'a selection can be multiple objects, this time just get the first (and potentially only)
If (TypeOf mySel(1) Is InDesign.TextFrame) Then 'if it is a text frame, then
myCount = mySel(1).ParentStory.TextWords.Count 'get the word count from the text frame
ElseIf (TypeOf mySel(1) Is InDesign.InsertionPoint) Then 'or if its a insertion point, that is the user is typing
myCount = mySel(1).ParentTextFrame.ParentStory.TextWords.Count 'get the word count through the frame's text object
End If
lStatus.Caption = "word count: " & CStr(myCount) 'set the status
Exit Sub

fail:
lStatus.Caption = ""

End Sub

The project and executable is here:Lois Lane example downloadable (3K)