Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Thursday, May 15, 2008

Universal Access Options for Everyone


As with most operating systems of the last decade or so Mac OS X contains options for accessibility by people with disabilities. What users may not realize is that some of these options are extremely useful to anyone.

OS X puts these functions in the Universal Access pane of System Preferences. This article will concentrate on a few options in the Seeing and Keyboard tabs.

The first item that is certainly of use is the zoom feature. Pressing Command- Option 8 zooms in on the screen around the mouse cursor. By default graphics are smoothed after the zooming takes place, so images that would otherwise appear pixilated still look decent. I often use this feature when watching low-quality web video. Rather than putting up with a tiny postage stamp sized video I simply press the short cut key and watch it much closer to full screen. Once in zoom mode the magnification can be adjusted by pressing Command- Option-minus or Command- Option-equals.


The Keyboard tab has features designed for people who have difficulty typing. However, one of the options in Sticky Keys is very useful for people creating screen casts. With Sticky Keys open and the option "Display pressed keys on screen" checked, the symbols for modifier keys, command, option, control, or shift, appear on the screen when they're pressed. In tutorial situations and with new users this is useful to provide a visual cue to go along with the name of the key being used.


Finally, the option "Enable access for assistive devices" appears at the bottom of the Universal Access pane all the time. This choice needs to be selected in order for tools like text expanders to work. It allows applications to access the keyboard buffer as you are typing.

For people with no challenges using a computer the Universal Access pane may be the last place they would look to add useful functionality to OS X. As you can see, there are some options, however, that can improve the computing experience for anyone. Hopefully people will be inspired to explore further.

Tuesday, April 22, 2008

Text Expanders Revisited


A couple months ago I posted an article about my experience with text expansion utilities. At the time I had chosen TypeIt4Me as the only alternative able to expand one-character shortcuts. Recently, both MacUpdate and MacHeist launched new shareware bundles. Since the former includes Typinator, and the latter originally was said to include TextExpander, and I was already interested in a few other offerings, I decided to give them one more try. To my surprise, Typinator exceeded my expectations and contradicted my memory.

As you may recall, I intended to use text expansion as a poor man's assistive technology for improving text input speed and accuracy. I had used CoWriter with elementary students but could not afford the price tag for my own use. As an alternative, I set up a large number of abbreviations in TypeIt4Me, allowing it to expand out the most common words as I typed the first few letters. However, I was not entirely satisfied with this solution either, since TypeIt4Me had the fewest features of the three programs I had tried but retained a fairly hefty $27 price tag. Therefore, I turned it off for the moment and located TextExpander and Typinator once again.

After a brief revisiting of TextExpander, it was clear once again that it would not fit my needs. As noted before, the one-letter abbreviations did not work. They gave a warning message, but were not highlighted in red and disabled like other illegal shortcuts. I sent the following email to their tech support.

      Subject: TextExpander snippets
      Date: April 11, 2008 5:55:59 PM PDT
      To: info@smileonmymac.com
    Hi,
    I've previewed your product, and it has very nice features. Unfortunately, it does not fit my needs because single letter abbreviations are not supported. (It seems to me a bug that it does not highlight them in red even though there is a warning message.) I use a text expander to facilitate all my typing because I cannot use one hand since I broke my neck. Being able to use "t" for "the" and "n" for "and", for example, saves me a lot of time. The only program that I have been able to do this with is TypeIt4Me.
    Please let me know of you will ever make single letter abbreviations possible.
    Thanks.

This email was sent almost two weeks ago, and I have not heard any reply, plus the MacHeist bundle does not in fact include the program, so I have written off TextExpander.

The other program, Typinator, was a pleasant surprise. I believe the version was updated to 3.0 since the last time I examined it, and the changes were dramatic. First and most noticeably, Typinator now runs nearly invisibly, with just a small icon in the menu bar. Next, when I went to import my TypeIt4Me shortcuts, I had none of the problems that I had had before. I simply dragged and dropped the file into the list of abbreviation sets, and it worked. Finally, my one-letter shortcuts worked! It may be in part due to my faulty memory, but the new version of Typinator was well worth trying.
There were some differences to adjust to in switching from TypeIt4Me. In Typinator features like whether to expand immediately or after a delimiter and how to treat case sensitivity can be set on a shortcut by shortcut basis. Unfortunately, the default on my imported abbreviations was not what I needed for most cases. In the long run, though, having this level of control will enable better functionality. Another issue I had was trying to create an expansion with a backspace in it. In TypeIt4Me I used this to enable typing " g" instead of "ing". The program would backspace over the initial space before adding the "ing". Typinator allows setting the cursor position, but not using the backspace key as far as I can tell.

Overall, I am happy I gave Typinator another try. I have over 200 abbreviations set up, and it is pretty amazing how many of the words I type are abbreviated now. The application is part of the 10-program bundle being offered by MacUpdate for $64.99. I was seriously considering the package before, but Typinator sealed the deal. I would love to have the full functionality of CoWriter or dictation software, but Typinator is not a bad replacement, and right now the price is right.

If anyone else is interested in my abbreviation file, I would be happy to share it. If you purchase the MU bundle through the link above, I earn a $3 credit.

Monday, March 24, 2008

MS Idealists Gaining Ground

I recently commented to friends that the continual shunning of web standards by Microsoft's Internet Explorer team would surely lead to the demise of that browser in the long run. My point was that as other browsers gain market share, I think more sites will follow the standards. It seems self-destructive to be non-compliant. My thoughts were prompted by the release of the Acid3 test, which the beta of IE8 scores a whopping 18% on. The result of my comment was a brief debate that left me with an altered opinion on the state of Microsoft.

My friend referred to an article by Joel on Software. With the danger of blogging on bloggers fully recognized, I do have some comments. Joel seems to ignore a few things in his discussion of the difficulties of choosing standards (such as those measured by Acid) versus compatibility (with IE7) mode for the new IE. First, an easy solution does exist. Simply return a different string for the browser name when asked. User agent detection code in existing web sites searches for the string, "MSIE". It'd be pretty easy for version 8 to return "MicrosoftIE" or any of the 1000 variations you can think of. Then those sites looking to include the new version just update their script, while the majority of sites that would break with the newly more compliant browser treat it as an unknown standard browser.

Second, Joel bemoans the triumph of the "Idealists" when in fact it is a good thing. It should have happened when Windows 95 came out. MS tried to maintain backward compatibility with 3.1 at the expense of quality (and to sidetrack OS/2). Then, the NT kernel was supposed to eliminate the DOS layer from the consumer Windows, but this did not happen until a decade later with Vista. 


Look at Apple as a counterpoint. They have effectively abandoned their entire installed base (OS 9 "classic" apps don't work on OS X.5), switched to a new hardware platform, and with the latest OS X introduced a number of API's that will quickly make it the standard for new applications. Their numbers are up to the point that in February 2008, Apple captured 25% of the PC market by revenue. The great improvements in Macs have come from a willingness to stick to the "Ideal", and that is in a niche market.

Apple Mac share of web surfers for two years.

If Microsoft had maintained technological integrity, it could have deployed better operating systems with less regard to old software. Certainly the monopoly OS has the ability to deploy standards and have people come around. They have done this repeatedly by "embracing and extending" industry standards. The same philosophy of breaking interoperability could be used for nice (technological advancement) rather than naughty (monopoly maintenance). Stop selling XP, and Vista will catch on inevitably.

The third thing the article ignores is the fact that, for the most part the "bugs" he talks about were intentionally put into IE 7 and before in order to differentiate it and build its market share. Why people cared back then whose browser people ended up using is beyond me, but the war was so hard fought that standards were ignored, and web developers have paid the price for last decade and more. It makes perfect sense for people to be fed up with coding browser specific hacks to get a site working. Code to the standards and let the "buggy" browsers wither on the vine.

Sunday, March 16, 2008

Making a Virtual Virtual PC


Before the transition from PowerPC to Intel CPU's by Apple, Mac users had to rely on various other means if they needed to run the occasional Windows app on their computer. The most popular and practical solution was the commercial software package, Virtual PC. It was created by the company, Connectix, but subsequently purchased by Microsoft. Virtual PC would emulate a full Pentium II computer system. Unfortunately, translating instructions between processors is time-consuming and fraught with errors. The program worked for the most part, but was slow at best.

Recently, some of my friends conspired to get me voice recognition software. As I have posted in the past, here and here, my ability to type has been greatly decreased, and I have sought ways to make entering information into the computer faster and easier. Dictation is certainly a good option. It so happened that my friend had gotten a free copy of IBM's ViaVoice for Windows. The system requirements call for a 600MHz Pentium III. Obviously, my emulated Pentium wouldn't cut it.

The native Mac options for speech recognition are very limited. The company, MacSpeech, makes a product called iListen that would run on my G4 PowerBook. There is also a Mac version of ViaVoice. Unfortunately, these products have gotten fairly negative reviews and cost between $50 and $100. A new, superior product called Dictate is being released by MacSpeech, but it will only run on Intel Macs. The answer to this conundrum, my friends figured, was to just send me another computer.

So I have inherited my friend's Gateway 1.6GHz Pentium 4 with Windows XP. Since he wasn't using the computer, this became the most economical option. However, there were a couple of issues to overcome in order for this system to be useful to me.

Issue one: No wireless
First of all, my computer is set up in the garage, far away from any physical network cabling. I use the Mac's Airport card to connect to our wireless network. The Gateway, being an older desktop model, has no wireless available. Thanks to OS X's amazing networking, though, this problem was easily resolved. The first step was to connect the Gateway and the Powerbook with an ethernet cable. Normally this kind of direct connection would require a crossover cable, but I recalled reading that Mac network adaptors automatically detect when a crossover cable would be needed and adjust accordingly to use a regular cable, so I gave it a try. The next step was to enable Internet sharing in the Mac's System Preferences. This was as simple as choosing Airport from the drop-down list and clicking Ethernet for the other computer's connection. I hooked up the cable, started the sharing, and it just worked.

OS X Tiger Internet Sharing

Issue two: Only one monitor
The second issue was that I only have one monitor available (and really no room for another). Normally, I could just use my laptop's display and hook the monitor to the PC. Unfortunately, due primarily to some very rough treatment by its previous owner, my Powerbook's hinge broke, disconnecting the LCD from the computer internals and effectively rendering the display useless. Therefore, sharing the one monitor was the only option.

For several reasons I decided to continue using the Mac as my main computer and run the Gateway remotely as needed. To facilitate this I installed VNC on both systems. For the Windows VNC server, I used Alkit VNC, which allows the sharing of a single application window or the whole screen. I figured this would enable me to just have a ViaVoice window or IE window displayed within the laptop's applications. On the client side I used JollysFastVNC. Though technically just an Alpha release, this app eliminates the biggest problem in using VNC; this client is actually fast. In my limited use I have not had any problems with it. You can see the Gateway's XP desktop running half size in the screenshot beginning this post.

Final issue: No disc!
After getting everything set so I had a virtual Virtual PC, a real PC in a VNC window, it was time to install ViaVoice, the whole reason for all this effort. When I opened the box, I found a nice USB headset mic and a directional desktop mic, a user manual, and an empty CD case! When I asked my friend about it, he said he had never opened the box. Someone must have taken the disc before my friend got the package.

This last problem was one I couldn't overcome. I had successfully set up the computer, but obviously couldn't do dictation with no software. In the end I have a surprisingly responsive "virtual" Windows computing solution. Now I just need some reason for using Windows.

Thursday, March 13, 2008

Future-Proofing Applications: another purpose of design docs

I was doing some reading recently on statistics and testing, and I came upon a free online book, The Basics of Item Response Theory, by Frank B. Baker. It had originally been published in 1985, with this second edition from 2001. What had made it very popular, it said, was the availability of free, as in beer, software to use while following along with the book. The first edition application was written in AppleBasic for the Apple ][. Fifteen or so years later, the program was ported to Microsoft Visual Basic 5 for Windows 95. I don't know if the program runs on modern Windows computers. It certainly does not work on my PowerPC Mac. I found it unfortunate that a freely available educational program would be limited in this way.

Bouncing these ideas around got me thinking about how it would be possible to future-proof an application. It is clear to anyone who has worked at a large company more than 20 years old that aged software platforms are a real problem. Internally developed applications become a mainstay of business operations, but more and more quickly, it seems, the computers and operating systems to run these programs become obsolete. Companies in the situation of upgrading their computer systems can use one of several strategies. Most common, perhaps, is to port the app to a new platform. This usually involves a large expenditure in software development and user retraining and many headaches as new systems attempt to replace the old while having the kinks worked out of them. Many resist porting and end up keeping legacy systems in place long past their expected life cycle. Another possibility is to upgrade computers but keep legacy applications alive through emulation software, which can have a slew of problems of its own.

It is a fact of modern life that programming languages, operating systems, even user interface devices change over time. To truly archive the functionality of an application would require isolation from all of these factors. One such means which would work for simple applications at least, occurred to me. Basically, the idea is to record the functionality of the program in an easily read and understood design document.

To illustrate, I will create a description for a game of tic-tac-toe as a dialog between the user and the computer. This technique is similar to a Use Case, but to me is much more clear. The questions the computer asks are the parameters necessary for the program to run. Note that this example is incomplete in that the rules for deciding if the game has ended would have to be specified, but I left this out to keep it short and simple.

  • User: I want to play tic-tac-toe.
  • Computer: Do you want to be X's or O's, or should I choose?
  • U: You choose.
  • [Assign symbols randomly with an equal chance User is X's or O's.]
  • C: You are X's. You go first. Please choose a location for your X.
  • U: Middle box.
  • [See if the game has ended. If not, randomly choose one of the remaining plays.] 
  • C: I go in the upper left.
    [See if the game has ended. If not, repeat the turns until the game ends.]
  • C: You win. Do you want to play again?
  • U: No.

The important point of this trivial example is that it describes the functionality of the system while remaining entirely interface-independent. If written for the Apple ][, it would probably use a simple text prompt for user interaction. More modern computers would likely allow the user to click on the game board to mark their move. The choice of X's or O's could be made by a GUI button. The computer of the future might use synthesized speech and voice recognition to interact with the user in a very similar manner to how this dialog is written.

Even the algorithms employed can be written in plain language and left up to the programmer to implement in the most reasonable way for the current architecture. For example, assigning the X's or O's randomly in Java could entail use of java.util.Random class to perhaps check whether the next random integer is even or odd. In Python, the "random" module provides the following easy syntax: human = random.choice(['X', 'O']). As long as the implementation follows the documentation of assigning the marker with equal probabilities, the details are unimportant.

There is another advantage to such documentation. In some cases, especially in the sciences and education, the person creating a computer application is not a professional programmer. However, a domain expert could specify the exact functioning of a desired program and leave the actual implementation to others with more expertise. Even if an implementation is created, the functional specification can be made freely available, allowing others to make versions without needing access to the original source code.

Obviously, the more complex a program is, the longer and more complex its design document will be. Full-blown design languages like UML provide the standardized means to create such documentation. For applications that will be around for a long time, a proper functional specification becomes vital to allow for changes in the computing environment. This is clearly the case with many educational computer programs as well as integral business systems. Well documented design is not just for the initial implementation as most people think it is. It can also be one of the best ways to future-proof applications.

Monday, January 28, 2008

Text Expansion: Wasting time trying to save time

Perhaps nothing is more irritating than trying to set up some time-saving software, having problems, and wasting lots of time resolving them. That's one reason why I found OS X so compelling when I first started using it; for the most part things just worked. Rather than fighting with the computer just to get the proper tools in place, I could actually get things done.

For reasons I'll go into some other time I have been searching for quite a while for ways to speed up my text input. My most recent endeavor was based on the idea of using text expansion to minimize the number of keystrokes I have to enter. As a special education teacher I had worked with the application Co:Writer by Don Johnston software, which does a fine job of text prediction as letters and sentences are typed. Unfortunately, a single license is $325. Since that is far too rich for my blood, I decided to set up a system of abbreviations myself. That can't be too hard, right? Guess again.

I found three programs that work as text expanders for OS X, Typinator, TypeIt4Me, and TextExpander. All are available as free trials with full licenses costing 19.95 Euros, $27, and $29.95, respectively.

All three programs work the same way. They run in the background watching your keystrokes. When you type a space, punctuation, or other defined key, the programs compare the keyboard buffer to the list of abbreviations you have defined. If there is a match, they backspace over what you have just typed, copy the expansion onto the clipboard, and paste its contents. A sound can also play when this happens.

To give you an example, I have "ty" defined as a shortcut for "thank you". When I start a new word with "ty" (typing it right after a space or other delimiter) and then type, say, a period, the text expansion program backspaces three times, deleting the delimiter and the "ty". Then it copies the expansion and the period onto the clipboard and pastes it into place, effectively replacing the "ty." with "thank you.". It may sound complicated, but it's really not.

The product pages for each program tend to emphasize the use of abbreviations for larger snippets of repetitive text like form letters. My usage goal was a little different. I wanted to use very short abbreviations for very common, but sometimes also very short, words. According to teacher school, if you take the 100 most common words in the English language, you can read (or write) 50% of all elementary text. One of the popular lists of words by frequency is Fry's First 100, named for its creator, Edward Fry. I figured that would be a good starting place for my abbreviations. Of course that is where the trouble started.

The Fry 100 Word List

I began simply enough. I had a text file of Fry's List with one word per line. The programs all had options for importing text files, so I started typing abbreviations after each word, with a comma in between. If a word was only one letter (like "I") or not easily abbreviated (like "in"), I deleted it from the list. For very common and short words I used one-letter abbreviations ("t" for "the", "n" for "and", etc.)

Unbeknownst to me, there were several problems with this. First of all, the programs would accept tab-delimited but not comma-delimited text. I had to search and replace all my commas with tabs, but not too big of a deal. Next, however, I discovered that the order I had put the abbreviation and expanded text were reversed. I didn't want to retype all of that (though it probably would have been faster in the long run), so I found a simple Java program that read in a comma delimited file and wrote it out differently and modified it to fit my needs. Unfortunately, after all of this I still had a problem with the encoding of the text. The text expansion programs would not accept Unicode, so I had to resave the file.

After all this conversion I finally had my abbreviations loaded into TextExpander. The program installs itself as a System Preferences pane and has a nice interface with some advanced features. You can decide on a "snippet" by snippet basis whether to type the delimiter and how to treat upper case. I started using the program while doing emails and blogging. As I encountered a new word that I use a lot, I would add a snippet if there was not one already. It was gratifying to hear the little beeps as I typed, knowing that I was saving keystrokes each time the sound played.

But my troubles were not over. For some reason my one-letter abbreviations were not working. It turns out that TextExpander and Typinator set a minimum of two letters for an abbreviation. While TextExpander correctly highlighted my snippets in red if I accidently created duplicates, it did not flag the one-letter snippets. This limitation eliminated much of the benefit of text expansion as I was using it. Fortunately TypeIt4Me allows single letter abbreviations, but changing programs led to another problem.

I had used TextExpander for a while and added some 50 new expansions. Once again I had new abbreviations that I had to transfer into a program. TypeIt4Me's "Open File..." would allow me to choose the TextExpander file, but no new words would appear. I took a look at the two programs' abbreviation files, both plain text XML. Both are standard Apple plists, even using the same name for most attributes. However, TypeIt4Me capitalized the first letter of each, while TextExpander did not, and XML is case-sensitive. In this case close did not count.

In my stubborn refusal to do data entry when something is already in a computer, I ended up with another time consuming solution. I took the TextExpander XML file and used XSLT to parse out each abbreviation and expansion and write them to a tab-delimited text file for import into TypeIt4Me. I'll try to be an optimist and imagine that maybe somewhere all this foolishness of mine will be useful to someone else.

I have since gotten TypeIt4Me set up to my liking. I have a shortcut key to toggle it on and off, and another to add a new abbreviation. My abbreviation file has grown to over 200 items. I have also learned not to type too fast after a replacement is triggered, or sometimes I end up typing in the middle of the copy and paste.

TypeIt4Me has a nice feature where it tracks the number of expansions done and keystrokes saved. As you can see below, it will be a while before I make up the hours spent mucking around with these programs, but I did get to polish up my Java and XML knowledge and eventually solve my problems.
TypeIt4Me shows how many keystrokes have been saved.

Friday, January 25, 2008

C64 Movie Maker for the 21st Century, Review of Anime Studio


Back in "the day" (1985 to be exact) my friends and I had the state-of-the-art gaming machine, the Commodore 64. In addition to classic games like Alternate Reality, Archon, M.U.L.E., and the Ultima series there was a great animation program for us aspiring young movie makers entitled, fittingly, Movie Maker by Electronic Arts.

Movie Maker character editor.

That simple 8-bit program running on a machine with 64k of RAM (yes, 64 kilobytes, not even one megabyte) allowed us to draw the different stages of movement of an animated character, situate them over a background we could also draw, and specify changes to make them come alive. Despite the low resolution it was a step up, both in productivity and movement quality, from the Betamax camcorder stopmotion animation we were also attempting.

In recent years I have returned to those roots for the occasional hobbyist animated short. My default methodology evolved around the tools at hand, Photoshop and iMovie. I would start with a scanned drawing of a complete scene and chop up the characters into Photoshop layers, moving, rotating or scaling them as needed. Then I would make the appropriate layers visible and save the image off as a jpeg to be imported into iMovie. The occasional transition or Ken Burns effect, some sounds and music, and voilĂ , a movie.

While working on a similar project of late I began to long for the good old days of computer animation. I imagined a program that would simply allow me to place images as objects in a scene, move, rotate, or scale them, and take a snapshot to use as a frame of the movie. It'd be even better if it could interpolate the results for smooth animation. My final wish would be to slice up the image of a character into parts that could be moved independently.

I happily found Anime Studio by e frontier that makes all of the preceding not only possible, but surprisingly easy. The program is available for Mac OS X and Windows and has two versions available: the basic version sells for $50, and a Pro version, which adds some 3d capability, is $200. I reviewed the downloadable demo (30 day trial) version of Anime Studio 5.5 on a Powerbook G4, 667mHz, with 1 GB of RAM running OS X version 10.4.11.

The Good

For basic animation, AS made things easy. Simply import the image of your character or draw one from scratch using the vector drawing tools provided. Then add a skeleton layer, defining the bones by simply clicking and dragging to draw them. The bones are automatically associated with the body part they are drawn over. Click on the timeline below to choose a frame, then move the character by manipulating its bones. The program immediately interpolates the intermediate frames. Using the right and left arrow keys you can scrub through the new animation.

It is equally easy to do other effects like moving, resizing, or rotating a layer, or moving or zooming the camera. Each time a change is made a new dot appears on the timeline. These can be selected and moved around to refine the animation or deleted if a mistake was made.
Anime Studio's user interface.

More advanced features are also available. Objects are arranged in layers, which can be given a Z value to determine their order as they pass by each other or the camera moves. They can also be set up as masks much like you would use in Photoshop. This can enable pretty sophisticated interactions.

One great feature of AS is the ability to add a soundtrack to your animation. I used Quicktime Pro to create a simple voice-over and added it to my project. The waveform of the audio immediately appears overlaid on the timeline. This makes it much easier to sync the character's movement to the sound file.

For lip-syncing, AS uses the concept of Switch Layers. These allow more than one image to be associated with a single position and switched out as needed. To generate the mapping between mouth positions and sound, a free program called Papagayo is available. This is an open source GPL application supported by Lost Marble software. I'm not sure what the relationship is between e frontier and Lost Marble (if any), but one of the tutorials uses the Papagayo lip-sync. I was not incredibly impressed with the results, nor with the fact that only the small selection of included mouths can be used by the program, but it is nice that this feature exists at all in a low-end product.

The tutorials built in to the AS user manual go through most aspects of the animation process, logically building from the very basics to more advanced topics. All of the files are included in the Anime Studio directory so it is also possible to skip some of the steps and simply load the finished product to see how it all came together. After spending a few hours with the tutorials I felt pretty comfortable with the program.

There are more tutorials and user forums available online. It is plenty to get you started. The 30-day trial is fully functional except for the ability to export the final video. A preview export is available, but it stamps a "Free Demo" watermark on the file.

In addition to the tutorial files, the program has the option of importing sample characters, props, backgrounds, and more, that are included with the program. The sample below was created using an included background and characters. The explosion movie came from one of the tutorials. I added the beaker and cylinder and the sound. Putting this short animation together only took a few minutes.


Sample movie.
The Bad

I do have some gripes with Anime Studio. In perhaps 30 hours of use the program crashed about three or four times. Granted my test system is rather old and underpowered, but it can be very frustrating to work on a project for some time and then lose that work due to a crash.

Even less forgivable is that the tutorials, while having excellent content, frequently refer to options and features not available in the demo. For example, they tell you to do a preview to see gradient shading, but this option does not exist. The worst part is that e frontier has been aware of the documentation problems for over a year (via messages on their forums) and hasn't bothered to fix the problems. Some of the later tutorials are entirely focused on options that only exist in the Pro version.

As far as I could tell, the option for exporting a sample movie was completely undocumented. I found on the forums that pressing F5 does the trick; however sometimes this keystroke was ignored. I believe the secret was to make sure a preview was not already open in another window before pressing F5.


The Ugly

For all its goodness, Anime Studio also had a lot of simple interface problems that, if fixed, could make AS much more pleasant to use. In general, the windows and icons look like they came from a 1990's OS 9 application. The dialogs are not standard OS X Cocoa windows, and the icon images are not only ugly, but are very confusing. Some of the options' icons are virtually identical. I found it easier to memorize the keyboard shortcuts for each tool than to try to decipher the corresponding icons.

Anime Studio icons and dialog window.

Similarly minor but annoying issues were the program's handling of zoom and the layout of the windows. By default there are windows for Tools, Styles, the Timeline, and the main display window. On my 1024x768 display, three of these four overlap. If I am using the timeline, I cannot see the play, rewind, etc. controls in the main window. To resize the main window I have to hide or resize the timeline first. The preview is resized along with the main window, so maximizing it causes it to take up the whole screen and be obscured by the other windows. I much prefer the Photoshop or Safari style where a maximized window simply expands until everything is visible. This would, for me, make the zoom tool much more intuitive.

Obviously maintaining a cross-platform application has its tradeoffs. In this case the look and feel are decidedly un-Mac-like.

Overall

On the whole, I found Anime Studio very easy to use for 2d animation. It was good enough, in fact, that I will be purchasing the basic version. Sometimes I went into the app with a quick idea I wanted to try out and would find myself several hours later still at the computer, working on other ideas that had occurred to me. Being able to move drawings with the skeleton effects, sync with a soundtrack, put objects on layers, and see the whole thing smoothly animated is exactly what I was looking for. If you have similar cravings, I recommend giving Anime Studio 5 a try!