Toolcube - A Simons Location Ad
News S2 Work
Interests Other About
  Projects

My Employer

Projects

Past Work

ImageBytes

At DDD this was my first big project. ImageBytes is a database written in FileMaker Pro, with assistant programs written in AppleScript and FaceSpan.

ImageBytes is design to track attributes about image files, where they've been used, and flag when a page cannot be processed due to an image on the page is pending replacement or modification. An image can consist of one or more files. It prevents anyone from duplicating an image file name, and associates descriptive copy, job information, and other client attributes with each file it manages. ImageBytes tracks if a file has been obsolete or replaced by another image file and flags operators when an obsolete or replaced image is used in a page. Page files (QuarkXpress documents) are read into ImageBytes with a assistant program. Detail information of the page is recorded (Size, fonts used, images used, image scaling, embedded color information, etc.). When a page is read, ImageBytes verifies that all the images used are known, loaded on the servers, and none are pending modifications or changes that must be made before the page is processed.

The last time I looked, ImageBytes had information on roughly a 1/4 million image files, 29,000 pages, 444,000 page items (usage of an image on a page), and has been in use for about 5 years.

QuarkXTensions

QuarkXpress in the primary layout program used in the design/graphics world. QuarkXTensions are C/C++ written modules that add functions to Xpress. I've written quite a few. Many simple ones, and a few extremely complex ones.

A detailed list of the XTensions are show in the S2 area of this web site. The largest and most sophisticated XTension has no name, was written to prepare data for a clients catalog. The client, QSP, a division of Readers Digest, produces a fundraiser catalog of magazines - used by kids who knock on your door and try to sell you a magazine or two. The catalog has roughly a thousand listings, each with a code, title, description, newsstand price and selling price. Depending on publishers advertising purchased, some listings would have a premium or super premium look (color and size), and those and other listing may have special bursts or other graphics that brought attention to the listing. The client did none of the layout, they provided a text data file, which contained the code, titles and codes that determined if the listing was to have a burst, arrow, premium level, and so on.

The XTension I wrote read the text data file, parsed the data elements for each listing, and built directly within QuarkXpress each listing completely formatted with graphics positioned (arrows pointing to correct price, burst positioned not to overlap text, etc.). It would build 900 listings on a medium powered computer in about a minute. The listings were then dragged to standard QuarkXpress templates that would become the actual catalog page.

There were multiple versions of every page, where the price included the different taxes required for different states. Here again I wrote an XTension to find every price on a page, and change it to reflect a given tax rate. This way, we only maintained a non-tax version of every page, and when a taxed version was needed, we select the Price Changer XT, enter the tax rate, and 5 seconds later the page's prices are updated.

Automation Server

Many things in the shop are repetitive. Especially things like finding and coping an image from the servers, making a low resolution version of an image for a client, making grayscale versions of color images for clients, and physically collecting, documenting, and delivering images to a client.

For many of these tasks I combined several commercial packages and wrote my own software to fill in the holes. Many of the applications I wrote or modified are AppleScript based. 24 hours a day a team of four servers wait and perform tasks of updating client color approvals in the database, finding high res images, making low res images, and sending picked up or created images to clients. Many of the tasks are triggered though email messages sent by the client. Other steps happen when a file appears in a 'hot' folder.

myObjects

This is the coolest stuff I've built. Unfortunately, it not something a non-programmer can really appreciate. myObjects is a set of objects, that provide a web programmer (me) an easy way to interface with a database and a web page. Adding 30 lines of code to a web page, I can query for, display multiple records, use popup's/checkboxes/radio buttons that are themselves built from database queries, edit multiple records containing fields from multiple files (even databases), manage relations between tables, and maintain a user state. Yeah I know, "huh?".

Basically, with myObjects I can build dynamic sites, with sophisticated data relations, very very quickly.