Thursday, September 29, 2005

Wink: screen capture to SWF and PDF for free

I was browsing around the DVD compression/authoring site, DVDShrink, and stumbled upon a screen capture tool that effortlessly saves your presentation into a Flash SWF (ver. 3), standalone EXE, PDF, PostScript, or HTML. It's named Wink and it's freeware--even for businesses. It has Windows and Linux ports (sorry, iPeople). I only used Wink a few times and can vouch for it, but the other programs from DebugMode look awfully nice, too--even if they weren't for free.


Wednesday, September 28, 2005

The Creative Business Guide to Running a Graphic Design Business Review

I picked up this book at the library. It was recommended to me by Ryan Warren of L+R Media Group, a recent startup in Indianapolis.

The copy of this book that I read was published in 1996, but on most of the topics it still addresses today’s issues. At 400 pages and similar to a textbook in pace, I recommend browsing this book unless you are just about to start a business yourself--then memorize it or buy the book and reference it frequently.

Topics include what price to bill (billable and non-billable hours), information on partnerships and incorporation, time management, accounts billable, dealing with/attracting clients, and much of the necessaries of running a successful business that they don’t teach at arts and communication schools.

The Creative Business Guide to Running a Graphic Design Business by Cameron S. Foote

Currently watching: Q&A: Jimmy Wales, Wikipedia Founder (CSPAN)

--Stephen M. James

Tuesday, September 27, 2005

The Constant Gardner (abridged) Review

I decided to listen to The Constant Gardner (abridged) by to round out all the influence of Thomas Friedman (The World Is Flat, The Lexus and the Olive Tree) has had on me recently--not that journalism and fiction can balance each other out. Although it is no doubt that Upton Sinclair and Charles Dickens had some affect on child labor laws.

I have not seen the movie yet, but I can imagine some might get confused at the compression of (and all-out disregard for) time, the amount of characters, and the quick switching between the narrator, main character and main characters's wife's writing that is within this audio book. I’m a fan of chronology destroying movies such as Eternal Sunshine of the Spotless Mind and Adaptation, but the audio by itself is difficult to follow. It requires a fair amount of concentration from the listener and the unabridged version may be much better.


Saturday, September 24, 2005

Homemade Keyboard Shortcuts

The previous post inspired me to share some of my favorite macros/actions/shortcuts that I've created or discovered over the years.

Adobe Photoshop CS

F5 and F6

I have set two keys to rotate left and rotate right, respectively. I have a ergonomic Microsoft Natural Keyboard (a late ‘90’s model--I hear the newer ones break easily) and it splits between the F5 and F6 keys which make pressing them a tactile function instead of a visual.

F2 (Recorded Action)

This action adds two (hence F2) adjustment layers to a document (Curves and Hue/Saturation/Brightness). Being a photographer, I color correct frequently. My default for the HSB layer are a 15+ increase in Hue. You can create these individually with Ctrl+L and Ctrl+M though.

F3 (Recorded Action)

This key changes the image resolution to 300dpi (hence the F3 key) and converts the image to CMYK mode. Every print designer should have a shortcut that performs both these, especially since you have to de-check the “Resample Image” box at the bottom of the Edit/Image Size dialog. I don’t know what Adobe was thinking when they decided to make this the process for changing an image’s resolution.

Microsoft Word

Alt+S PasteSpecial (Macro)

I use this Macro at least 20 times a day. It is great for grabbing text off the Internet, because it removes all formatting from the copied text. Who wants to keep text formatting from a web page (especially with tables)? Record a macro that uses the command Edit/Paste Special…>Unformated Unicode Text.

Alt+X Xenter (Macro)

This may seem silly to some, but I use Alt+X to press enter when copying multiple web pages into a document. Why? The Alt+S PasteSpecial Macro will paste the unformatted text and right below it on the keyboard is the “X” key. Press Alt+X a few times to separate the blocks of text. Then, Alt+Tab back to FireFox (or your internet browser) and select more text with your mouse and copy it to the clipboard (Ctrl+C). Not having to press the enter key means you can keep your left hand closer to the Ctrl/Shift/Alt region of the keyboard and your right hand on the mouse. Although, I’m not sure what lefties should do.

*Note on Alt commands in Word (on a PC):

The Alt key highlights an application’s menu bar (Example: Alt+F selects File, Alt+E selects Edit, Alt+V selects View, etc.). This allows you to go to Print Preview by pressing Alt+F+V for example. The best though is Alt+Space, which selects the application’s drop down menu. This allows you to move an application window by pressing Alt+Space+M and using the arrow keys or Alt+Space+N to minimize a window.

With that said, when you record a macro assign it a place on the toolbar and edit the text of the button with an "&" before the letter you want to use in combination with the Alt key ("paste&Special" or "&Xenter" for example).

--Stephen M. James

Friday, September 23, 2005

Keyboard Shortcuts for SMJdesign

I'm a sucker for keyboard shortcuts. They reduce hand and wrist strain and, of course, are faster. So in the spirit of keyboard shortcuts and those that love them, I added them to my Flash portfolio. If watching BookTV on CSPAN2 the night until 3am proved that I was a current events nerd, this proves I'm a Flash nerd.

The PC shortcuts are:
Ctrl+Right Arrow: Load next piece in album
Ctrl+Left Arrow: Load previous piece in album
Ctrl+Up Arrow: Scroll piece caption text up
Ctrl+Down Arrow: Scroll piece caption text down

I have yet to test this on a Mac on which I would assume would be the Command key. If anyone can confirm this, I would appreciate it.

--Stephen M. James

Thursday, September 22, 2005

The Democratization of Stock Photography

It's been around for a while. I first heard of iStockPhoto while interning at Cre8tive Group back in 2004 when my co-worker, Peter Cook said "Have you checked out iStock?"

Well, I have plenty of 4MP photographs to upload to iStock (especially from my work in Greece), but haven't found the time to write 10 keywords each. I have learned of other stock photo sites. Some messageboards say they pay better.

I've been told (from by a friend, Andy Didyk, who collects about $50+/month now) is that it's all about the keywords ("People don't search for animal when they want a lion.") and adding a photograph a day for six months.


2 free audio books at

As of now (Sept 22nd), you can get 2 free audio books at You can get a full refund if you want if you cancel within a month.

They download as ".aa" files that need to be activated by Audible to listen to them (So don't think that you can cancel and still listen to the ".aa" files). There are two ways around this problem. One is burn them all to CDs or you can save the files as MP3s if you use Goldwave 5 and the Lame plug-in. It is shareware, although I have registered. The only side effect is that you do not have the chapter divisions.

Tonight, I downloaded Gladwell's older book, The Tipping Point (Unabridged), and Seth Godin's All Marketers Are Liars (Unabridged).

Currently listening/watching: In Depth: Thomas Friedman (Book TV)


*I've been informed that one can cancel their subscription to and still activate their ".aa" I have to say though that converting to mp3 and having to worry about having a network connection seems like the best plan to me, especially if you are on the road.

*There is also a "NetFlix" of the audio book world called Simply Audio Books. I don't anything about them though. They are $25 per month for 2 rentals out at once.

* Added 10/27/05 :: I called customer support at (1-888-283-5051) to cancel my subscription and recieve a full refund as the site said I could. The customer support woman had no idea was I was talking about. She said didn't give refunds and wanted to tell me how I could save $100 off of an iPod. I told her that her website said they did give refunds and directed her to this page and asked her to explain the meaning of "Enjoy your first two audio programs with your FIRST MONTH of AudibleListener 100% RISK FREE. Within one month of joining, you may call to cancel and receive a full refund." After reading the statement she seemed befuddled and transfered me to the Sales department where I talked to Jay. Jay said that he would refund my money within 48 hours.

I guess that makes me a demon. (Angel Customers and Demon Customers by Larry Selden).

Sunday, September 11, 2005

Book review: Blink

I just finished reading the latest from Malcolm Gladwell (Blink: The Power of Thinking Without Thinking). It was an interesting read. He connects anecdotes across areas of medicine, medicine, murder, music, and military strategy. The connections are loose and essentially involve the premise that decision-making is often best with narrow yet prioritized key information (he calls this “thin-slicing”). He adds that this doesn’t always work though.

I felt good while reading this book, because I was already familiar with a few of the anecdotes. Besides the loose connection between possible statistical anomalies, Gladwell repeats himself especially at the end of chapters. It is an easy read because much of it is not Gladwell’s words, but those of his interviewees.


Friday, September 09, 2005

SMJ's Actionscript Standards and Practices

The debugging situation did improved with ActionScript 2.0. I have yet to use Flash 8, but I hope this continues to improve. Something tells me that the Adobe buyout of Macromedia isn't going to help with the programming interface. It will only lead to more components packaged into the box.

I've spent more than a little time trying to explain timelines and event handlers to my media friends. These are some of the practices that I try to convey. The majority of the time though, they just want to finish the project. “As long as it works. . .” they say.

Well, the following are a few practices that I use to keep my code readable and easier to update in case you do use the similar framework in a second project. This is programming after all--no one will ever know.

Naming Schemes for Movie Clips

Sample path


someTextMovie_mc :: This is the container movie clip that contains the animation timeline. I started out with the suffix “Container” but decided that it was too long and now use the suffix, “Movie”.

someText_mc :: This is the movie clip that is animated. It is the movie clip that is tweened across a timeline This clip is needed, so that the text box inside of it is encapsulated. If the font of text box inside is changed, then all instances of someText_mc will change with it.

someClip_txt :: This is a TextBox inside the animated movie clip.

The above example includes object suffixes that enable the Flash editor to provide code hints.

Common code hint suffixes

Array :: _array; Button :: _btn; Color :: _color; LoadVars :: _lv; LocalConnection :: _lc; MovieClip :: _mc; MovieClipLoader :: _mcl; Sound :: _sound; String :: _str; TextField :: _txt; TextFormat :: _fmt; Video :: _video; XML :: _xml; XMLNode :: _xmlnode; XMLSocket :: _xmlsocket

Using Movieclips vs. Buttons

There is not much advantage to defining an object (Symbol) on the stage as a “Graphic” unless the symbol is animation or static. A “Button” can be used for a quick way to cause events to occur based on user interaction, but both these seem like limited “MovieClips”. I've never used a “Graphic” or a “Button” inside a Flash project. Often movie clips that function as buttons have a similar function. An example would be when the mouse is placed over this movie clip increase the brightness of the movie clip. In the following ActionScript, frame 2 is a highlighted (selected) version of the movie clip while frame 1 is the regular version.

_root.menuBar.menuFilm.menuSummary.onRollOver = function() {



_root.menuBar.menuFilm.menuSummary.onRollOut = function() {



If you have a series of similar movie clips that all brighten when the mouse is over them, then having the same exact code inside each and every “onRollOut” and “onRollOver” allows changes to be easily made. If it is decided that you need to animated the transition between the brightened movie clip and the original. A simple find and replace can replace ALL occurrences of “gotoAndStop(2)” with “gotoAndStop(10)”

Loading Modules from a menu

First let me state that if you are wanting to make menu, you will need to be familiar with setInterval and clearInterval to make menus appear and disappear with a short delay

The easiest paradigm to imagine is that every section that can be clicked on a menu downloads a new swf file from the server. The drawback of this method is that every click causes a pre-loader to appear. If there are a few sections (external swf files) that have subsections (specific frames in the timeline of each external swf file).

Another technique that makes entering code more efficient is using variables to refer to movie clips. If you have a series of menu items (that have the prefix “menu”) that you want to each load content into a certain movie clip so that you have a modular site. If you name the movie clips similar names like “section.subsection”, then you can use the movie clip property, “_name”, with a substring function to grab the section's name. “substr(4)” removes all the characters before the fifth letter from the name of the movie (“menuFilm”). “substr(10)” would start reading the characters at the eleventh character.

An examples is:

The user clicks the item, “menuFilm.menuSummary”. “menuFilm” is the section of the short film web site. “menuSummary” is the subsection of the web site. The onRelease() of this item calls the following line:


This takes the name of the parent movie clip of the movie clip instance that was clicked (menuFilm) and minuses the first four characters. This loads an external movie clip with the name “Film”. The problem with this is that if you have a subsection clicked (menuFilm.menuSummary), then you need to create a function that tells “Film.swf” to go to the subsection, “Summary”. This might look like the following:


The inside of loadContent might look like:

function loadContent(clickedSection,clickedSubSection){

//load the correct swf file into the movie clip “content”

loadMovie(clickedSection +".swf",_root.content);

/* go to the frame of the swf file just loaded that corresponds

to the subsection clicked on the menu)



--Stephen M. James

Friday, September 02, 2005

Reading anyone? 113 Voice articles

Well, it took a few hours, but I feel like a veteran grokker. If you would like to read any articles posted on AIGA's journal, Voice, at then you can search them all on one page at:

Then click "aigavoice"

It's over 200 pages of text. This script should work as long as the AIGA doesn't change their ColdFusion URL structure or article database ids.

I'm working on an archival grok of Fast Company Magazine. It's going to a more difficult due to where they place the ads and the hierarchy of the site.

Does anyone know of open source (or compiled and free!) programs that grab text from HTML?