Thursday, April 24, 2008

Assistive Technology Blogging

Assistive technology (AT) is a topic that has become near and dear to me. For those unfamiliar with the term, it refers to devices that help people with disabilities perform a function better. There are low tech examples like pencil grips or colored text overlays, or high tech items like a pen-based optical character recognition text reader or advanced computer software. The reason I am familiar with the subject is that I was trained as a special education teacher and worked in that capacity until an accident imparted to me a disability of my own. After breaking my neck, assistive technology became essential for helping to recover as much of my former function as possible.

AT: Pencil grip and pen text scanner

This blog has not focused on AT per se, but several of my posts relate to the topic. ATMac made me aware of a blog carnival asking for submissions of bloggers' favorite AT posts. Mine are on the topic of text expansion tools.
Text Expansion: Wasting Time Trying to Save Time tells of my travails as I tried several tools to improve my typing speed. I recently added an addendum, Text Expanders Revisited. While this reads too much like an advertisement for my taste, it necessarily updates the topic of available text expansion software since newer versions have been released.

If I may be somewhat optimistic for a moment, I'd like to think that some people who never considered the topic of text expanders may read this information and use it to improve their ability to use a computer. No one has requested my abbreviations yet, but I hope they may be useful to someone in the future. In particular, users of head pointing systems with onscreen keyboards may benefit from using fewer keystrokes. Plus, anyone in a position similar to me, where finances impede the adoption of a full dictation system, could be able to type faster. The two linked posts, therefore, are my entries to the AT blog carnival.

Wednesday, April 23, 2008

Attachment in the Digital Age

Lately I've read several books involving Buddhism. One of the primary teachings of the Buddha is that attachment causes suffering. This was exemplified for me this morning by a dream. In it the roof of the house I lived in caught fire. After a brief effort by firefighters, the neighboring house caught fire and became the focus of their attention. We risked entering the first floor of our house to retrieve the kids' possessions, but the second floor, where my things were, was already lost. When questioned about what was up there, I could only remember a couple things, yet my feeling of loss was extreme. For the remainder of the dream, I had intermittent crying spells, and a few tears even crossed over into waking life.

For ages past the fear of loss was merely related to physical things. We were saddened by the death of a loved one or the breaking of a treasured memento. Now, however, a whole new breed of attachment has been born-- attachment to non-physical, digital media. Steve Jobs understands this. This was initially demonstrated by his comments on subscription music services, and then again by recent Apple product innovations.

Jobs has repeatedly declared that people want to own their music. It has been the rationale given for the iTunes Music Store eschewing any type of subscription download service. From a marketing perspective this choice was right on. The subscription-based music stores have all stuttered or folded, and Apple now controls 85% of the legal download market and is the number one music retailer in the world. That belief has also led Jobs to publicly call for music files free of Digital Rights Management (DRM) software, which makes it harder to use legal music when and where a person wants.

Along with ownership comes attachment. Apple has responded to this fear of loss in several software and hardware offerings. People can assuage their fears by making backups to other media or across the internet.

Probably the first such offering was the Dot Mac subscription service. For between $69 and $99 per year, a user gets a storage area on Apple's servers (called an iDisk), in addition to several other services. Many applications now include quick and easy back up to iDisk. In addition to Apple's own Backup utility, which will copy photos, purchased music, and other selected files, users can also store their book and CD collections on iDisk via Delicious Library, back up their taxes from Turbo Tax, and more. This service is an easy way to create off-site back ups of important digital documents.

A noted feature of the most recent release of OS X, Leopard, is the program called Time Machine. It is basically just a backup utility, but its innovations are that it runs automatically with little user intervention, and it provides a novel interface making restoration from backups simple and easy. The stated goal was to increase the number of people who actually back up their data.

In conjunction with Time Machine is a hardware offering called Time Capsule. It is a wireless router (aka Airport Base Station) with a built in hard drive for seamless backups for an entire home network with little user intervention. These innovations are obviously geared toward ensuring that more people are more comfortable with the digital world where music, movies, and memories only exist as pips on a disk.

If you imagine losing all of your digital photos and MP3 or AAC music, it may bring a tear to your eye. I for one have not become enlightened enough to release my attachment to these modern age materials. Which reminds me, I haven't made any backups for quite a while. Better go do that.

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
    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.

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.

Sunday, April 13, 2008

Why-Mac Part One: Window Management

Apple stock compared to the Nasdaq and Dow Jones.

Until recently, there were no real contenders to Microsoft's OS monopoly. Since the release of OS X and the iPod, however, Apple has steadily begun to challenge that dominance. Apple has over 19 billion dollars in cash stashed away. Their stock price, despite recent declines due to economic fears, has increased over 350% since 2005. Studies have shown 40% of incoming freshmen at some universities using Macs, and Apple has garnered a 25% market share by revenue for laptops sold by all manufacturers for February 2008.

Why-Mac will be a series of articles explaining in detail how I have found Mac OS X to be the best in usability, productivity, and aesthetics. Much has been written about switching to Mac or intricately tweaking OS X, but most of this information is either very basic or too technical. These articles will span the middle ground. For readers who are familiar with computer usage and MS Windows, recent switchers or those considering a Mac, it will present details about how Macs are different and how those differences can make you more productive. Hopefully even longtime Mac users will find some tips and tricks and come to understand their computer better.

First, a bit of background on what qualifies me to be writing these articles. I started using personal computers at the age of 11 on a Texas Instruments 99 4/A. My parents wouldn't buy any game cartridges for it, so my brother and I learned to program in Basic. Later, I became a fan of Atari computers. The Atari ST used the GEM interface, which was a knock-off of the Macintosh OS, but it offered more "Power Without the Price". In high school, the local newspaper published a letter to the editor in which I argued against the purchase of Macs for our school (infuriating our computer teacher). After high school, I worked at a couple of PC clone stores, selling, building, and repairing computers. I learned the workings of DOS and Windows. The promises of Microsoft for each revision of Windows would excite and then disappoint me. In 1995, I became an internet programmer and later learned Java. My experience with Macs began shortly after OS X was released. Having tinkered with Linux off and on for years, the stability of Unix coupled with a nice user interface appealed to me. I got my first Mac in 2001, spent a couple months learning OS 9.2 in order to understand some history, then plunged into OS X and never looked back. While I don't like to consider myself a "fanboy", as my friend said on the matter, "There is no fervor like that of the converted." Without further ado, here then is part one of Why-Mac.

One of the primary differences between Windows and OS X that is often overlooked is the basic way applications are run and windows handled. The Unix world uses the concept of a window manager. It decides how to arrange and display the individual windows of running applications. Though MS Windows and OS X lack a true window manager program, for ease of discussion I will nonetheless use this terminology.

The OS X window manager offers many usability and productivity advantages over Windows. As most anyone who has used a PC and a Mac knows, the running application in OS X displays its menu options, File, Edit, et cetera, at the very top of the screen. Windows on the other hand, puts these options within the window of the program. Ergonomics experts talk about Fitts's Law, which calculates the amount of time for a desired target to be accessed when doing something like moving a mouse. It has been shown that having these common options on a border makes them easier and faster to access.
Safari windows revealed by Exposé.
The next OS X feature that is often overlooked is how multiple documents within one program are handled. Unlike Windows, Mac OS distinguishes between an application and its separate documents. This enables several advantageous usage scenarios. Take the Safari web browser, for example. If several separate windows are opened, they can be quickly switched between by using Command and ~, the tilde key, (i.e. Apple-~). To view the open windows graphically, press F-10 to activate what Apple calls Expose, which also gives the ability to click on a desired document. If you want to switch to a different program altogether, say going to iTunes to change playlists, pressing and holding Command-Tab shows the current apps. Sensibly, they are shown only once, not once for each open document. Similarly, the Dock shows running applications, not their individual windows.
Alt-Tab reveals running applications.
There is even more granularity available, though. Minimizing a document by pressing the yellow minus sign removes it from this internal list, so it no longer appears in Exposé or when switching with Command-~. This is useful, for example, when there is a website I want to read but not right at the moment. A tiny screenshot of the minimized window appears in the Dock, complete with the icon from its parent application to make distinguishing it easier.
Safari windows minimized in the Dock.
OS X has also retained the Macintosh feature of hiding an application. Pressing Command-H makes a program hide. Its minimized windows are removed from the Dock (though the program's icon remains), and Exposé no longer shows any of its documents. The program can be unhidden by selecting it with Alt-Tab or clicking on the Dock icon.

The differentiation between windows and applications provides still more benefits. Pressing Command-W on a Mac will consistently close only the current document window. Pressing Command-Q will quit the entire application and close all of its documents. In MS Windows it tends to be a crap shoot whether Alt-F4 (the shortcut for closing a window) will exit just that document or the entire program. In addition, an option available only in OS X is running a program with no open documents. At first this seems nonsensical and confusing. If you close all a program's documents, it remains running with its menu bar at the top of the screen but nothing below. An obvious use for this functionality is loading a program like Photoshop and leaving it run even when no images are currently being edited. Photoshop has many plug-ins and takes a long time to load. Being able to leave it open in this way is a real productivity boost.

The newest OS X, Leopard's window manager also gives the option of placing programs on various virtual desktops. This feature is called Spaces. It provides a simple way to segregate your work into separate domains; a further option that eliminates the clutter of running many applications and makes accessing information faster and easier.

The final area of window management in which OS X excels is maximizing windows. In the Microsoft world, maximizing a window means making it take up the entire screen regardless of how much information it actually presents. In most OS X applications the documents are smart enough to resize only as much as needed. For example, when zooming in and out on images in Photoshop, a maximized image window will fit the size of the image on screen as long as there is available real estate and not cover additional space with a blank window.

This concludes part one of my Why-Mac series. Understanding window management is key to maximizing productive computer use. Mac OS X facilitates efficiency by providing the aforementioned means of organizing, viewing, and switching between applications. The rest of this series will look at more ways Macs enable a more pleasant and productive computing experience.

Saturday, April 12, 2008

Playing Games with Python and Volity.Net

A few years ago my friends and I used to get together just about every Friday night to play board games. Our old standby was Risk in all its variations. One week, however, a guy brought over a new card game he had bought called Fluxx by Looney Labs. It was fast-paced and fun and quickly became a regular at game night.

The game Fluxx on

Then about a year ago I met someone who serendipitously mentioned that she played Fluxx. She introduced me to a free online version hosted by It's a great implementation of the game, complete with the original artwork and decks from two different versions of the game., though it has largely failed to do so, aspires to build an online community for gamers interested in traditional card and board games played by computer. They have developed an infrastructure using the Jabber network for interested programmers to develop their own games. The great thing is that the implementation is open source and very expandable. There are several games I would love to see electronic versions of, and having quite a bit of programming experience, I decided to take a look.

While the games available on Volity are fairly impressive, I unfortunately found their documentation and infrastructure underwhelming. The following is a log of the steps I followed in trying to use their Application Programming Interface (API). Hopefully it will not only serve as a critique of the Volity service but also be helpful to others considering using it to implement their own games.

I found a developers' guide on the Volity wiki. The first thing to do was decide what language to use. Volity has libraries for Perl and Python. I have a passing familiarity with both, but decided to go the Python route in order to learn it better. After a bit of searching, I headed to another wiki page to download the following libraries: volity.tar.gz, games.tar.gz, zymb.tar.gz, and from another wiki (I didn't feel like dealing with a Subversion server.) Some people will recognize these as *nix compressed files, which they are indeed. They need to be ungzipped and untarred in a working directory.

Next, rather than trying to implement a whole new game off the bat, I decided to modify an existing sample in order to get a feel for the API. I chose the classic, and very simple, Rock Paper Scissors (called RPS for short in the Volity docs).

Following the tradition of many a shoddy programmer, the best documentation I eventually found was in a source code file, It explains how to get things running. It's a bit complicated (fortunately OS X includes Python, so I did not need to install it), but basically there is the concept of a Parlor. It is a specialized Jabber client that knows about one type of game and lets users sit down at a Table to play that game. Making a new game means creating a new Python class that extends the class

To get things going, I made a simple change to games/, commenting out the logic that decides the winner so that white was always victorious. In order to test my changes I had to register my Parlor with Volity's servers. This was a simple process on the Volity web site. Note that if I had created a whole new game rather than just modifying an existing game, I would also need to register a RuleSet document and a User Interface.

I fired up Gamut, the Java-based user interface application for Gamut requires a Volity user ID, which I had already created for playing Fluxx. After logging in, I chose Game/New Table At... and typed in my Volity/Jabber ID for my Parlor. The RPS interface came up. I could add a bot (computer player), take a seat, and play the game. As white I won every time, sort of.

Apparently the user interface code has its own logic for determining the winner. The Game (ie referee) knew that I won and registered that fact with the server, but the UI would show the result of the original implementation. This is obviously far from ideal, especially in a distributed system.

At this point my initiative was about spent. I explored the UI implementation for a time. It basically requires creation of an SVG file to create the graphics and Javascript to implement interface interaction. Even though for this game the interface file is surprisingly short and straightforward, dealing with two more technologies was a bit more than I was willing to bite off at the moment.

For others more adventurous than myself, I did locate the following resources. Within Gamut, selecting Game/Game Info... and clicking the UI tab tells the location of the current user interface SVG file. This can be downloaded and modified. Then choosing Game/Select New Interface... can load a local SVG file. There is also a UI tutorial available on the Volity web site, and an SVG Testbench application.

I give the Volity developers a lot of credit for creating a usable infrastructure with many good game implementations. It is also great that they have made it open source and tried to lure further developers. Unfortunately, the system fails in the way many open source projects do. The documentation is hard to locate and often incomplete, and the implementation is exceedingly complex. Granted, if I dedicated several days to understanding the intricacies of the system, I'm sure it would all be very straightforward, but in reality how many people are going to take the time to do that before getting started on a project?

In addition, to be fair, my choice of Python may have been non-optimal. The Volity reference implementation is in Perl, so that language may be better documented. There is also a developer forum available on the web site that I did not take advantage of. Overall, I found a good effort but disappointing for new development.

Wednesday, April 9, 2008

The Psychology Behind Apple's Success

Believe it or not, psychologists can watch a 10 minute conversation between spouses and predict with a high degree of accuracy which couples will remain together. Or would you believe that adding a sprig of parsley to the apostrophe in a soup can's logo can compel taste-testers to use the term "fresh" in their comments? These studies and more are described in the book Blink: The Power of Thinking Without Thinking by Malcolm Gladwell.

A couple of the stories in particular had me thinking about Apple's product lines, marketing, and psychology. Whether conscious of it or not, Steve Jobs's company does a great job of appealing to people's underlying decision-making factors in their corporate strategies. Blink illuminates some of these otherwise murky processes.

One counter-intuitive factor in decision-making is that more options does not mean greater sales. Most people would think that we would rather get exactly what we want rather than have our choices limited. However, a study by Sheena Iyengar described in Blink found just the opposite. She set up a stand selling jelly. When offered 24 flavor options, only 3% of customers made a purchase, whereas 30% of customers bought when given only six choices.

Apple follows this example in several ways. The iPod line has always been limited to three or four base models, each with only two or three capacity choices and up to five color choices. Each of these decisions has few enough options to be quite manageable. Similarly, while slightly more complicated, Apple hardware is divided into a few simple categories. There are laptops or desktops. Within each category there is a consumer-level machine and a professional model. For example, in laptops there is the MacBook and the MacBook Pro. They are named to easily distinguish the intended market. Finally, for each model there are usually three basic configurations. Advanced users can specify components more precisely, but the average consumer has only a few limited choices to make. As a final example, Apple has made a point of the confusion surrounding the numerous versions of Microsoft Vista as compared to their own latest release, OS X Leopard. Leopard comes in only one version, with all the options included.

The Aeron office chair.

On the other hand, some of Apple's choices butt up against another psychological propensity, fear of the unfamiliar. Jobs tends to take product design risks, keeping Apple on the cutting edge. An analogous situation is described in Blink with the creation of the now ubiquitous Aeron office chair. It was the first such product to incorporate many ergonomic advances. The back was designed to fit the contours of a person's body, smaller at the base and larger at the top-- the opposite of traditional chairs. The chosen material was a thin, breathable plastic stretched tight over the frame, no padding or leather as in most high-end office products. The design was rated by early users extremely high in comfort but remarkably low in aesthetics. It took quite a while for people to get used to the chair and appreciate it. As Gladwell writes, "The problem is that buried among the things that we hate is a class of products that are in that category only because they are weird. They make us nervous. They are sufficiently different that it takes us some time to understand that we actually like them."

Apple's iMac and the later Dell XPS One

Following the maxim, Think Different, Apple has not been afraid to create "weird" products. The original berry-colored iMacs, all-in-one computers, were extremely novel, and they did end up being liked by many people. The more recent LCD iMacs have set design standards copied by other companies. The Mac Cube, on the other hand, was never well-received, but its reincarnation a few years later as the Mac Mini has done quite well. Apple has also been first to dispense with older technologies. They stopped putting floppy drives in Macs while PC's continued to incorporate them for years. The recent MacBook Air, despite its high price tag, does not include any optical drive. It has been decried by many pundits for this fact, but sales have been extremely strong nonetheless. In each case it may have taken time for customers to adapt to these changes, but in most cases they eventually get entered into the collective culture as part of the standard, just as the Aeron is now a prototype for many office chairs.

The psychology of consumerism is a large and complex topic. Gladwell's book focuses more on how our snap judgments can be useful once we are trained at recognizing situations where the subconscious can lead us astray. An article in Time magazine, "The Why of Buy", further discusses the neuroscience of buying decisions. They conclude that 95% of consumer purchasing is decided subconsciously. Also, "brands are so powerful that we are sometimes more likely to buy something we identify with than something we like better or that is better for us." The Apple brand has certainly been successful at entrenching itself in consumers' psyches. Whether they are conscious of it or not, Apple has very adroitly navigated the complexities of marketing.