Wednesday, November 16, 2005

Type Manager

The Problem

We need to first go back to the middle of the nineties for a short history lesson. Users had DOS, Windows 3.11, and the Macintosh. These operating systems came with a simple useable file manager, but back then there weren't many files to manage either. Very quickly there was a market for file manager applications that had all sorts of features beyond file manipulation, image slideshows, text editing, hex editing, process management. You might have bought one yourself. No application was complete until it integrated e-mail somehow. Of course this type of application could not grow forever and we ended for the most part with file managers that didn't do everything very well.

While FileManager++'s were being created tools began to show up and get new features left and right. There are tools for everything, from ripping a CD and rotating images to converting Word Perfect documents to PDF. Over time these tools grew just like the file managers had. CD drive applications such as Nero are a good example. Today they rip CDs, burn audio CDs, burn DVD movies, create ISO images, let you browse ISO images and many more features all related to the CD drive (but not to each other). The real kicker is that today you do not use that CD application by itself but several tools in combination.

User goals

When I buy a CD my goal is to put the music on my mp3 player. To do that I might have to go through a dozen different smaller tasks before I can achieve my goal. It is not unrealistic just a few years ago (or even today for some people) to first rip the wav file, then encode to a desired format, add id3 tags via cddb, store the files in some home grown system, and finally transfer the files to the mp3 player. These might be all completely different tools. These days with iTunes you plug in your iPod, put in your CD, click Rip and come back in five minutes.

iTunes is a Music File Manager. You drop in your music files and iTunes automatically puts it where it wants on your filesystem. You can even configure this in its preferences, but not that you would care because when you want to access the music you will use iTunes. iTunes and a music file managers are able to provide features above and beyond what a normal file manager could. It can read meta information such as the id3 tags, rating, show covers, and provide links on the web about the artists. Music managers can of course play the file, but also you can rip CDs and burn musical CDs. When iTunes first came out one of the very surprising things I heard was how people who had spent years carefully crafting a system for managing their music didn't mind giving up that control to iTunes. And those who had just dumped every mp3 into one folder loved their new management that iTunes gave them as part of the application.

iTunes lets you do everything related to music files in a interface perfect for managing music files. If you tried to use iTunes interface for managing your photos you would be laughed at because it just wouldn't work. If you have Linux you can of use digiKam, another Type Manager, made for photos of course.

Type Managers

Type Managers are intentional interfaces for files that have similar or the same type of data. The type in Type Manager literally refers to a set of mime types such as images, videos, music, or e-mails. Type Manager applications are not new, in fact you probably have been using one since you got an internet connection. No it is not a web browser, but your e-mail client. E-mail clients let you manage countless e-mail files in an interface that well suited for e-mail messages. Depending upon how your client stores your messages (one fat file or as separate files) you can use your file manager to view, sort, find, etc your e-mails. Type Manager applications are file managers in disguise. They present a user interface for a specific file type. They also do something much more useful. They often do the file management for the user. Many users like to save things to the desktop and they just let it sit there, they don't actually manage the files. Yes, some users do enjoy managing their files, but if given the option don't mind having an application do it for them.

One of the key features that will make Type Managers successful is the number of tools that are integrated for that file type. For the Unix users out there, think of what small tools you would use on images. Basic editing with mogrify, information with identify, exif editing and viewing with perhaps, web page gallery generating with curator, a different tool for simple local slideshows, and gphoto for actually getting the images from your camera. Last but not least grep and find to locate the image you want. Whew! Not only do you have to find each one of these applications, but you have to learn each of their different interfaces and quirks. If you tried to incorporate all these features into your file manager you might succeed, but when you try to also integrate all the features that a music and video manager have you end up with a very cluttered and unusable file manager. When you create a Type Manager with a lot of tools users will only want to use your application and no other.

Features of a Type Manager

What about Photoshop? Photoshop isn't a Type Manager, where does it fall? There are two other types of user applications, Content Viewing and Content Creation. Content Creators is any application who let the users create and edit new files such as Microsoft Word, Gimp, and GarageBand. Content Viewers are applications that don't necessarily create files, this includes games, web browsers, image viewers, and chat clients. This leaves Type Managers which are fairly new to the scene. Although not all of the following applications have all of the features: iTunes, iPhoto, Juk, Amarok, and digiKam all can be classified as Type Managers.

So what features make up a Type Manager?
  1. Type Managers need to remove the user from the details of the file system. They need to present the files in a hierarchy that best suits the files. The application should not show the filesystem from within the application's view at all. The applications can even hide the files entirely such as with iTunes where the default view is not browsing the music hierarchy. The application should provide the functionality for automatically managing the location of the files on the filesystem, but should be able to still work if the user doesn't want to move the files.

  2. Type Managers must provide the means for viewing and editing that file meta information.
    • File managers should let you set the permissions.

    • Music managers should let you set the artist, album and track name and other id3 tags.

    • Photo manager should let you view and edit the exif information such as the time that the photo was taken.

  3. Type Managers should include that typical tools that would be used for import and export.
    • Audio managers should have CD rippers of audio disks.

    • Video managers should have DVD burning for your movies.

    • Photo managers should let you import your photos from your camera

    • Game system ROM manager it should include the tools needed to obtain the ROM's off your old game cartridges.

  4. Type Managers can include basic manipulation, but should not be a full blown editor.
    • Music managers should let you equalize music.

    • Photo managers should let you crop photos.

  5. A Type Manager must include full search capability.

    • It must allows the user to search the current context (e.g. group or folder) as well as the global collection (a single line edit is always good enough, even when you think it isn't).

    • Type Managers should supports virtual folders which are really dynamic, real-time searches represented as a group or folder.

    • Additionally, a Type Manager should provide a set of virtual folders which cover the common use cases, for example:
      • A music manager would provide virtual folders for highest rated and most listened to.

      • A photo manager would show recent photos.

      • An eBook manager would list the last N read books.

  6. Type Managers must allow the user to manually group files. While search will often be used by the user, there are times when manually grouping is more appropriate. How the grouping is represented is dependant on the type of content. While it may be a folder in a file manager, it may be a playlist in a music application. It is also common to present new or external files in their own group. For instance:

    • File manager shows a new disk or folder when a CD or USB stick is inserted.

    • iPhoto shows a new group when a user shares their photos over the network (zeroconf).

  7. Type Managers should expose well defined, domain specific interfaces for other applications to use rather then implementing it themselves. In iPhotos when viewing a slideshow I can select a song to play with the slideshow. iPhotos uses iTunes to help me find that perfect song. The average interface should be able to get the list of top level folders and to search.

  8. Type Managers by the design of what they do need to be extensible. Providing a framework for enhancements and third parties to add more utilities will ensure that the application will have a long life. Make sure that enhancements only include features for the manager type.

Type Managers that provide the above features will find themselves suddenly having a rapid fan base which is the best kind. The best part is that there are very few of them currently out there, so it is your market to loose.

Files and Documents

According to the rules of being a Type Manager we can create a specification for what a file manager should be:

  1. While providing a means for the user to view the literal file system hierarchy, the default view would be the user's home folder along with a set of virtual folders that sort their content logically. (or something like that anyways))

  2. Let users change permissions, tell you the size, what application opens the file, etc

  3. Let users burn data CD's. They should also provide means for accessing remote filesystem such as webdav, fish (ssh), ftp etc. And they should let users compress and uncompress files.

  4. Let users rename and delete.

  5. Let users browse media such as CD's, zip drives, floppies, etc.

  6. Search the current directory such as only show all files that match '*.jpg', Search the entire computer 'i.e. all mounted devices' and Show searches such as recently added and modified files.

  7. Utilize other Type Managers and viewers to show previews of files.

Sounds like a pretty good file manager now doesn't it?

What about documents? Can you have a Document Manager? If you can have one, why hasn't anyone created it yet? Searching is typically already provided by the system so that can't be the major drive for adoption, but what about integration of other tools? While discussing this me and a friend tried coming up with features such as word count and revision control but found that we don't maintain enough office documents to do make a proper list. That is until we looked at it from the unix command line perspective. What if the document manager integrated features provided by sed, cat, less, wc, grep, awk, perl etc. Now suddenly the document manager is a very interesting product.

User Interface

On the right is a mockup of a generic Type Manager interface. On the left you have the list of folders including a search folder, a user folder and a mounted media. On the right you have a list of the currently selected folder. This area is typically a view that is best for that type of data be it list, tree, icon or other. You might have multiple panes such as in an e-mail client where there is another area dedicated to showing one full e-mail. On top there is a search bar. Type Managers will of course have other widgets depending upon their type, but you can expect these features to be prevalent in most designs.

Type Managers Everywhere

Anywhere that you deal with a large number of files that contain the same data a Type Manager would make sense. Virus scanning companies probably have an internal tool to deal with all of their virus definitions. Valve has their Steam application which is a game manager. Linux distributions often have some sort of GUI tool for dealing with the thousands of packages. Most Mame front-ends are a Type Manager. IDEs are yet another Type Manager, this time for source files in a project. I use a RSS manager aKregator to read news. You could even make a nice Type Manager for dealing with system processes.

Type Managers are part of the future of the desktop computers. Those that implement all of the features of a Type Manager will be more successful. It is not one specific feature that makes Type Managers so useful, but all of them put together, including search.

No comments:

Popular Posts