Monday, November 21, 2005

Apple hardware resell value

In case you didn't believe that Apple hardware keeps its value, head over to craigslist where everything is super cheap and you can even get a Piano's for free, but the Apple hardware still sells for a more then fair price. So next time you buy a whole new computer to run Linux it probably would be well worth your investment to pick up an Apple computer. With Apple soon to sell x86 hardware, spending a little more now for the Apple logo means you can re-sell it for way ($500+ easily) more in two years then x86 hardware which seems to depreciate like cars (the moment you own it it is worth 1/2 as much used and only goes down). If Windows ran fine on the new Apple hardware it would be interesting to see if lease companies leased Apple hardware (to run Windows) for a lot less then Dell hardware because they can actually resell it for a good chunk of change after the three years is up.

Wednesday, November 16, 2005

Type Managers and KDE

Today was a fun day. The past week I have been putting together an article on Type Managers. The article was really meant for here as a blog entry, but it grew and grew and I ended up making a full article that I put on my website. After debating the name over and over I finally kept it the way it was. Just to see if it would get accepted I submitted it to Slashdot and hey cool it was accepted. :) Type Manager on Slashdot. Putting it up on Slashdot is a fun test of my website. I made a static html page and had Apache temporarily forward the php page to the html page. The server seemed to survive just fine. What makes this even more interesting is that I signed up for Google Analytics the other day so I eagerly await to see what amusing stats it gives me tomorrow. Over on Slashdot most people (like normally there) didn't care to discuss the idea, but liked to talk about how the name was a bad choice or that it was obvious. My feelings aren't hurt though sense they weren't my primary target and I got to test out some of my website stuff in the process. Now, done with the /. part of this post and on onto the real part. The reason I wrote the article was for you, the KDE developers.

Those on kdedevelopers.org might have noticed some similar polls the last few weeks asking about managers that they use. Such as How do you manager your music more then %60 use amarok and another 15% use Juk or iTunes. When I asked about photos similar results for digiKam. So people on /. can yell all they want about managing there files only on the filesystem, but that is your fringe user. I use KMail to manage e-mail, Juk for music, digiKam for photos, and akregator for rss feeds. When I used aKregator and iTunes for the first time I knew that I was seeing something special even if I couldn't put my finger on it then. Putting together the article on type managers was very interesting. For example *today* Konq meets most of the file manager spec that I put together, but you wouldn't know about half of the features because the interface is so cluttered. A number of us in the last six months have discussed separating Konq the file manager and Konq the all in one viewer/web browser. Putting together this article solidifies my belief that this is the right direction to take Konq (the file manager).

The article isn't just for Konq, KMail, amarok, and digiKam. There are many other Type Manager applications in KDE such as akregator and kdevelop. One of the original goals of the article was to make the list of features that a type manager should have. This way KDE applications that are type managers can see the list and understand what they are missing that would really benefit their users.

Juk has excellent meta editing and does a fantastic job of separating the file system from the user, and it has a good search interface, but it doesn't have the import export functionality like amarok has. Could this be why amarok is doing better? It is almost the opposite with amarok. amarok has good search, import and export, but not good abstraction or as good meta editing (in my personal opinion). I have said this before, but just to reiterate here I plan on integrating audiocd into Juk and amarok and once that is done i'll move KAudioCreator into extragear and perhaps retire it.

There are other Type Managers that KDE doesn't have at all. We don't have a movie manager that I know of. There are a number of movie tools such as dvd ripper, encoding, transcending, burners, and so on. You can probably think of a few more Type Managers that KDE doesn't have (add to the comments). So if you are looking to make a KDE application here might be a perfect idea to tackle.
One thing I noticed when looking around is that you don't want to call your Type Manager a manager on your website. Users don't want to manage music, they want to play with their files! That is why iTunes is a Music Jukebox and iPhoto is a photo organizer. The name of your Type Manager shouldn't include "Manager" in its name nor should you use the word manager when describing your application for end users on your website :)

Another feature that is very KDE specific has to do with the last feature I listed under Type Managers. That had to do with the interface that they provide. In OS X if you have iPhotos installed your desktop background applet will automatically let you select photos from your photo collection and in iPhotos when viewing a slideshow you can select a song to play from iTunes. This feature of Type Managers I think as a desktop KDE can really take advantage of to provide real value to us and our users.

End users like using Type Managers, they make their life easier through many different means that compliment each other. If KDE [type manager] applications integrate more Type Manager features I do believe that they will get more users.

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 exif.py, 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.

Saturday, November 12, 2005

Microsoft, Applications, and $159 Computers

Earlier this year I wrote an article discussing what I think is Microsoft's biggest problem with their Windows Operating system. Why Microsoft's market share wont grow. The gist being the fact that you have to be the system administrator to use Microsoft Windows. At the time I felt that the article wasn't my best and needed more polish and ... I forgot about it. I came across it the other day and so I posted it up on my site in the hope that others might get something out of it.

As many of you know I enjoy playing the original Quake from time to time and a few months ago I was given the source code to the Quake 1 level editor BSP from its author. I spent some time cleaning up the source and now I have posted up the original source and my modifications for anyone else who might want to explore/use it. BSP source project page.

I have done a lot of Qtopia work in the past and about two years ago I created a game similar to Microsoft's InkBall in Qt/KDE called Ballow. The basic selling point of the game is that rather then using a mouse/keyboard/joystick you play the game by drawing on the screen with your stylus. I have no plans to do anything more with this application (got it to demo stage and didn't do anything else) so I have packaged it up and put it on my website for whomever would be interested (there is a screenshot too).

If you can't tell I cleaned up my hard drive this past week :)

And for those developers out there looking for a spare computer to help your compiles via distcc (and something like distccKnoppix) here is a $159 AMD computer that would be perfect for that job.

Popular Posts