Volume Number: 19 (2003)
Issue Number: 6
Column Tag: iPod
by Dave Mark
OK, I'll try to explain this as best I can.
Seems to me it was just a few days ago when the darn thing arrived. I had already started writing my WWDC column. Basically, a follow-on to last month's TinyViewer Interface Builder column.
That's when the doorbell rang.
It was an innocuous looking package, return address Apple Computer, Cupertino, California. I immediately ripped it open, ignored the disk and other trimmings, and pulled out...COOL...a new iPod! Better put it aside - gotta get that column finished.
Hrm...it's just so shiny. Must focus. Must put down shiny iPod.
With great force of will, I put the iPod back in its box and returned to my computer. And that's when I got the email. Guess what, Dave? The new iPods support this cool new markup language so you can create your own linked iPod content. Wha? Huh? And there are these cool new AppleScripts you can play with to manage your iPod notes?
It was all over. All semblance of willpower was lost. iPod madness had taken over.
As you can tell, I love the new iPods. The case design is gorgeous. The new design is much slimmer and the controls sleeker. The 15 and 30 gig units ship with a cradle and the cradle works quite well. Tie it all up with a new iTunes release and the integrated iTunes Music Store and you've got a marketing windfall for Apple. Can you say ka-ching?
When you double-click your iPod's Finder icon, you'll see three top-level folders: Calendars, Contacts, and Notes. Any items placed in the Notes folder are fair game for the Note Reader, an app built into each of the new iPods (but, sadly, not in any of the older models).
By default, the iPod ships with a single file, named Instructions, in the Notes folder. The Instructions file consists of a single text string, "<INSTRUCTIONS>". Welcome to your first iPod Notes tag. Though not particularly useful for your purposes, the <INSTRUCTIONS> tag tells the Notes Reader to display a simple set of instructions built into the iPod. One cool thing about this tag. Change the language, the instruction language changes. Change the language setting to Espanol, and the instructions appear in Spanish. As it should be.
From the user's perspective, the Notes folder is simply a collecting point for relatively small (notes are limited to 4kb - any bigger, they get truncated) text files. Got a collection of recipes? Put one per file in a collection of folders and drag the folder hierarchy to the iPod's Notes folder. For example, you might organize your recipes in a Recipes folder, with subfolders for Soups, Hors D'oeuvres, Salads, Entrees, and Desserts. You might store each recipe in its own text file, then organize the text files in the correct folder (soup recipe files in the Soups folder, etc.). Now drag the entire Recipes folder into the iPod's Notes folder.
If you are trying this at home, be sure the Enable FireWire disk use checkbox is checked in the iPod preferences in iTunes 4. If you can't find that preference, attach your iPod to your Mac. Then, when it appears in the iTunes list, click on the iPod's icon in the list on the left-hand-side, then click the iPod icon on the bottom-right corner of the window (left-most of the 4 bottom icons).
When you fire up your iPod, click on Extras, then Notes. On the Notes page, you'll see Instructions as well as a Recipes item. Select Recipes and you'll see the Soups, Hors D'oeuvres, Salads, Entrees, and Desserts folder (see Figure 1). Select Soups, you'll see a list of the Soups text files. Select one of those and the text from that file is displayed. To get back, click the Menu button. Note that the Menu button is more like a browser's back button than a "move up a level" button. When you start playing with links, you'll see what I mean.
Figure 1. The Recipes categories on my iPod.
Limitations: A single note can be up to 4kb. The current iPods support up to 1,000 notes. The Notes cache is 64kb. Once the cache is exceeded, the cache is flushed, the hard drive spins up and new notes are cached as needed.
iPod Note Tags
Currently, the Notes Reader supports a very small set of HTML tags. All tags are case insensitive.
Use <BR> or the pairing of <P> and </P> to force a paragraph break in your running text.
You'll use <TITLE> and </TITLE> to create a title for your page. If your text file does not contain a <TITLE> tag, the file name is used as the title. If the <TITLE> tag is there, the <TITLE> specified will be displayed at the top of the screen when the text file is shown, and is also used in the scrolling list that contains the text file.
The iPod link tag looks just like its HTML counterpart and allows you to link notes together. Here's an example. I started by creating a text file named Ideal Meal, saving it in the Recipes folder:
<TITLE>An Ideal Meal</TITLE>
The ideal meal always start with a nice piece
of <A HREF="Halvah">halvah</A>, followed immediately by a healthy serving of Mama's
secret <A HREF="Gravlax">gravlax recipe</A>
I then created a file called Halvah, also saving it in the Recipes folder:
A confection made out of crushed sesame seeds and honey. Have a nice piece of Halvah today. It
couldn't hoit. Goes well with <A HREF="Gravlax">gravlax</A>.
<BR><BR>Back to <A HREF="/Recipes">Recipes</A>.
And finally, a file called Gravlax, also saved in the Recipes folder:
Raw salmon, usually seasoned with dill. Have a nice piece of gravlax with your
<A HREF="Halvah">halvah</A>. Eat. Eat.
A note on editing your note files. If you use an editor like Word, be sure smart quotes are turned off. When I created some notes with smart quotes, the iPod displayed them with extreme funkiness. This is because the text encoding used by Word does not match the default encoding of the Notes Reader. More on this in next month's column.
Also, don't put a hard return in your notes unless you really want a hard return in there. When I use BBEdit, I select Text Options from the Edit menu, then click the Soft Wrap Text radio button and set it to Window Width.
Remember, this is rev 1 of iPod Notes. Over time, I suspect we'll see more tags and other text handling options. And a color screen? With image tag support and an Ethernet port? Huh? Couldja? Please? J
Figure 2 shows the Recipes notes folder after I copied my 3 new notes over to the iPod.
Figure 2. The Recipes folder with 3 added files.
Click on An Ideal Meal (Figure 3). Notice that there are 2 links in this text. The first link is selected by default, with the underline of the second link barely visible. How do you get from link to link? The scroll wheel, of course! Scrolling the wheel counterclockwise moves you up a link, stepping from link to link, stopping at the first one on the page. Scrolling the wheel clockwise moves you down the page, link by link. Keep scrolling and you stop at the last link on the page. There is no wraparound effect if you keep scrolling.
Figure 3. What happens when I click on An Ideal Meal.
Figure 4 shows the Gravlax note, with the halvah link selected. Click on the halvah link and you'll jump to the Halvah note (Figure 5). Note that if you keep selecting links, you'll pop back and forth between Gravlax and Halvah. The interesting thing here is that the links are stacked (like a browser), so when you click the Menu button, you'll bounce back to the previous page, as opposed to moving up in the folder hierarchy.
Figure 4. The Gravlax note, with a link to halvah.
Note that the Halvah note contains a link back up to the Recipes folder. Click this link, and you'll be back up to the screen shot shown in Figure 2. We'll explore link formats in the next section.
Figure 5. The Halvah note, with a links to gravlax and the Recipes folder.
Relative v. Absolute
Just as you can with your web files, you can refer to other notes using relative or absolute link paths. Note that / refers to the inside of the Notes folder, so /Recipes/Halvah really refers to /Notes/Recipes/Halvah. For example, here are some absolute links:
<A HREF=file:///Gravlax>Link to /Gravlax (an error)</A>
<A HREF=file:///Recipes/Halvah>Link to /Recipes/Halvah</A>
<A HREF=/Gravlax>Link to /Gravlax (an error)</A>
<A HREF=/Recipes/Halvah>Link to /Recipes/Halvah</A>
Here are some relative links:
<A HREF=file://Gravlax>Link to Gravlax (in the current
<A HREF=file://Recipes/Halvah>Link to Recipes/Halvah
(only works if the linking file is in the same
dir as Recipes)</A>
<A HREF=Gravlax>Link to Gravlax (in the current
<A HREF=Recipes/Halvah>Link to Recipes/Halvah, where
Recipes/ is in the current directory</A>
Note that file names are not case sensitive. Feel free to use any of /, \, or : as a file delimiter, but remember that none of these are legal FAT file name characters and that : is not legal in an HFS+ file name. Use a backslash to escape special characters that are part of the file name itself. For example:
<HREF="Ferret recipes, 6\/23\/03">
Note also that you cannot link to the Notes folder itself, nor can you link outside the Notes folder. You will simply annoy the Notes Reader.
The Note Reader automatically checks every note for dead links. To see the results of this test, include an <ERRORS> tag in one your notes. The note containing the <ERRORS> tag is completely replaced with a list of all the errors found in all the notes. This means you only need one <ERRORS> tag for your entire hierarchy. Use a testing note for this purpose, not a note containing useful content. Once you've tested your notes, you can delete the error checking note.
Figure 6 shows the results of a couple of purposely malformed links. Bad iPod, bad.
Figure 6. The <ERRORS> tag at work.
Just as you might use a file to redirect a user from one url to another, you can use a .link file to redirect a link and a .linx file to spoof a folder of links. Here's how this works.
Create a file named pizza.link that contains the following text:
<A HREF="Real Pizza">Blap</A>
Next, create a file named Real Pizza with this text:
Hey, I'm the REAL pizza file. Not that other phony. My file name is Real Pizza.
Put them both in the same folder, somewhere inside the Notes hierarchy. When you scroll to that folder, you'll see two files listed, one named Pizza Link and one named Real Pizza. Click on either one and the Real Pizza content is displayed. Since we never display the link inside pizza.link, the text Blap never appears. Hmmm. Maybe this is a good place to put your favorite bad words.
.link files let you store content in one file and refer to it from other directories. Can you say alias?
A .linx file is similar, but it is used to spoof a folder. Here's an example. Create a file named evil.linx with this content:
<TITLE>Evil, Do Not Taunt</TITLE>
<A HREF="doctors/Dr. Sardonacus">Dr. Sardonacus</A>
<A HREF="doctors/Doc Ock">Doc Ock</A>
<A HREF="doctors/Dr. Strangelove">Dr. Strangelove</A>
<A HREF="doctors/Dr. No">Dr. No</A>
<A HREF="doctors/Dr. Evil">Dr. Evil</A>
Next, create a folder named doctors in the same folder as evil.linx. Finally, create note files named Dr. Sardonacus, Doc Ock, Dr. Stragelove, Dr. No and, of course, Dr. Evil in the doctors folder. Figure 7 shows what happens when you scroll to the folder named Evil, Do Not Taunt. Notice that the notes listed in this directory are listed in the order we specified in the .linx file, not in alphabetical order. This can be useful!
Figure 7. Been to the doctor lately?
When you navigate into the Notes folder, Notes Reader looks for a file named Main.linx in the Notes folder. If it finds Main.linx, it uses that list to replace anything else in the Notes listing it would normally show. For example, this is a sample I created for the new Macintosh Art Museum Annex (MAMA), just south of Cupertino in Veerkidnya.
<A HREF="Art/Woman in Kimono">Kimono</A>
<A HREF="Art/Clarus">Dog Cow</A>
<A HREF="Art/Zebra Lady">Zebra Lady</A>
Figure 8 shows what happens when I click on the Notes folder. Note that none of my other content is shown. The only things listed are the links in Main.linx.
Figure 8. The Mac Museum, in all its glory.
For those of you playing at home, note that links in a .linx file are checked before they are listed. So if you are trying to follow along and you have trouble getting the links in your .linx file to appear, be sure you've created the files referenced in the individual links. The example above won't work properly until I create the Art folder and the three files within that folder. Capisce?
Worth a look: A new app named iPodNotes from XtremeMac along with a site named http://www.iPodNotes.com. Pretty interesting. The app is designed to help you create and manage your iPod note projects. You can create a new project (essentially, a notes folder hierarchy), add files and folders, edit the files, and even create links to text and audio files.
The web site borrows from the iCal concept and allows you to share your projects with other folks. For example, my buddy David could upload his list of things he thinks I should do when I make that trek to Iceland I've been dreaming about, along with notes for each item in the list. Or maybe someone would upload the Red Stripes touring schedule for the summer. Or how about if someone put together an audio tour of historic Civil War battlefields that you could download and take with you. It's all good.
Though this puppy is still in its early stages, I really like this concept. Check it out.
Till Next Month...
Imagine walking down the halls of the Louvre with an iPod in your hand, headsets in place. You click on the Notes folder and see a series of folders, each corresponding to one of the 9 main sections of the Louvre. Click on Salles des Peintures, and you might find a list of the major works of art in that section, including the Mona Lisa. Click on Mona Lisa and you might see a textual description of the painting, along with an embedded link to an audio file describing recent restoration projects related to the Mona Lisa. This model really touches on the power and potential of the Notes Reader.
Next month, we'll dig a little deeper into iPod Notes. We'll see how to create links to audio files and how to work with Note Reader preferences. One of these preferences, NotesOnly, puts your iPod into Museum Mode which causes your iPod to boot right into Note Reader. Perfect for the Louvre example above. We'll also mess with some cool AppleScripts designed especially to help you manage your notes. Remember, if you are at WWDC, come say hello! See you then...
Dave Mark is a long-time Mac developer and blah, blah, blah... We interrupt this important bio to bring you an important message: Gonna be at WWDC? Be sure to find Dave and say hi (His pic is up on mactech.com and spiderworks.com). Bring your comments, suggestions, and maybe even a nice piece of gum.