Introduction to Tony
Our project is unofficially called Tony. No clever acronym–just a name (we’ll pick something more relevant later down the road). It’s basically an interactive board that allows a user to run programs in a construct that simulates the limited resources of a computer’s memory. The purpose is to demonstrate to the user how the amount of RAM in a computer can limit the number of tasks it can perform in a tangible way. In other words, without enough RAM, Tony is more cumbersome to use. Add some RAM (within Tony’s construct), and he becomes easier to use–much like that old Pentium 4 you have chugging along with 512mb of RAM, but which would benefit enormously from a 2gb RAM upgrade). Today, computers are ubiquitous. You’d be hard-pressed to find a person who doesn’t come into contact with computers on a daily basis. What’s surprising, however, is how little most people know about the fundamental concepts behind a computer’s operation. This information, though interesting for its own sake (at least, this author thinks so), is very important when someone is in the market for a new machine. Specifically, this project attempts to instill in the user an understanding of how RAM works and why more is usually better–but not always. After playing around with Tony, it’s our hope that a user will be able to make a more informed buying decision when next in the market for a new computer (and it doesn’t hurt that the user learned something in the process!).
Design Process
Our design process was very much an iterative one. We took a core concept–the idea that with limited memory, a computer must work harder to perform the actions expected by a user–and started with the most basic design possible. Initially, the vision was a flat board with a designated square on it that represented the program “in focus” (that is, the program the user is currently interacting with). Each program is represented by a tile, the size of which depends on the program’s RAM footprint. Photoshop, for example, would have a much larger tile than would a program like Notepad. To interact with our computer, the user would have to place a tile on the RAM board, where it can be moved only by sliding. As more programs are opened, the space on the RAM board starts to become cluttered. Consider the following scenario:• A user is interacting with Notepad (that is, the Notepad tile is in the “focus” square).• There are several other programs “open” (that is, other program tiles are on the RAM board’s surface)–iTunes, Photoshop, Firefox, Norton Anti-Virus, and Outlook.• The user wants to change the song playing in iTunes. In order to do so, he must move the Notepad tile out of the focus square and move the iTunes file into the focus square.• Depending on the position of the tiles, this seemingly simple action could take a lot of “work”, as the user may be forced to rearrange the other tiles on the board in order to make room for the Notepad tile to leave the focus square and for the iTunes tile to enter it.In this way, the user sees that the less RAM (ie surface area on the RAM board), the more work he must do in moving programs in and out of the focus square.
Design decisions
In conceptualizing this project, we were faced with several issues:• Is there a task for the user? Or, does the user do his own thing?• How do we prevent a user from picking up tiles off the board (and thus defeating the purpose of the project)?• How do we force the user to actually do the work of the processor? This involves decisions about the shape of the RAM board that would prevent the user from simply lining all the tiles up against one side (which would represent very efficient memory allocation, but would, again, also prevent the user from having to do the work of the processor. Currently, we’ve decided that providing a task for the user would demonstrate the concept more effectively than making it a free-form interface and hoping he stumbles upon the concept. Ideally, we’d have a computer connected to the board that runs programs according to what’s on the board. So, if a user wanted to open iTunes, Microsoft Word, and Photoshop, he’d have to place the iTunes token on the board. To bring a specific program into focus, he’d have to move that program’s token into the focus square. In this way, a user would utilize the RAM board to interact with the computer and complete an assigned task.To prevent a user from simply picking up a token and moving it, we’ve designed the board with a clear plastic covering, so that a program token may only be moved with a “processor token” (which, at this point, we envision to be a magnet, thus making the program tokens themselves magnetic as well).The third issue was solved (at least for the time being) during a discussion in class about the pyramid-shaped memory hierarchy. We figured that if the board were triangle-shaped, with the focus square (or “cell”, as it will be referred to from here on out) at the top, then a user would have to play a game of token shuffling before he would be able to put the appropriate program token in its place at the top and use the program.
Where do we go from here?
From here, we must continue to refine our ideas about how a user will interact with the interface. What, specifically, will we ask a user to do? Play a song, open a .doc file, and crop an image? What attribute of our program tokens will we use to impress upon a user the difference in RAM footprint of various programs? How will we make it more difficult to move a RAM-hungry program (ie Photoshop) as opposed to its opposed (Notepad, perhaps)? Do we even want to differentiate between RAM footprints of programs? Is it enough that the user simply understand that RAM is needed to run programs, and that it is a limited resource?Following these questions will be questions of implementation. How will we differentiate between different program tokens?• Weight?• RFID?• Computer Vision?Further, how will we arrange the program tokens on the RAM board? Will they be in a “snap-to-grid” fashion? This issue also effects how we design the tokens–if we decide to display RAM footprint by making the program tokens different sizes, will a larger program simply take up more space, or will it occupy more “cells”?
Looking Forward
Although it’s obvious there are still many decisions to be made, I feel this project has a lot of potential. The design issues are by no means insurmountable, and I think given lots of discussion and feedback, we can turn Tony into a very useful museum exhibit (or Apple Store exhibit!).