social entrepreneurship company that partners with the top universities in the world to offer courses online for anyone to take, for free. We envision a future where the top universities are educating not only thousands of students, but millions. Our technology enables the best professors to teach tens or hundreds of thousands of students.
After having completed this course, I feel that Coursera provides an amazing service. It’s not perfect, but it is far superior to any online courses I’ve taken so far.
I have been fascinated with design and making things ‘user friendly’ ever since reading Donald Norman’s The Design of Everyday Things in college. This book details why certain designs fail while others are intuitive and obvious. One of the things that stuck with me is the concept of affordances – buttons ‘afford’ being pressed, dials ‘afford’ being turned, handles ‘afford’ being pulled. To this day, it is one of my biggest pet peeves to find doors that open the wrong way. During a recent trip to Paris, I took pictures of some of the design failures I saw, including this particularly nasty door in the hotel.
It’s the exact same handle on both sides of the door, but it is designed to swing in only one direction. We walked through that door at least 10 times but each and every time we had to think about how to open it; we had to push an interface that was clearly designed to be pulled.
This is a somewhat trivial example, but design can have incredible safety implications as well. A recent article claims that poor design contributed to the 2009 Air France Flight 447 crash:
In the next 40 seconds AF447 fell 3,000 feet, losing more and more speed as the angle of attack increased to 40 degrees. The wings were now like bulldozer blades against the sky. Bonin failed to grasp this fact, and though angle of attack readings are sent to onboard computers, there are no displays in modern jets to convey this critical information to the crews. One of the provisional recommendations of the BEA inquiry has been to challenge this absence.
When I heard from a coworker that Coursera was offering a course on Human Computer Interaction, I knew I had to take it.
The course was slated to last 5 weeks though it actually took 6 due to an extension in one of the assignments. Some of the topics included needfinding (determining what actual people need in an interface and how they make do with the status quo), paper prototyping techniques, storyboarding techniques, heuristic evaluation, lab usability studies.
The course had four main components each week:
- peer assessment
The lectures were presented as a series of videos broken into approximately ten minute chunks. Each video had the same slides that the professor presented as downloadable attachments. Most of the videos also had subtitles for a few different languages; I heard complaints on the forums that some of the later videos were without subtitles but as I am a native English speaker, it did not affect me.
There were two nice touches I liked in the lectures: embedded quizzes and video playback speed.
In almost every video, there would be a break in the video where an interactive quiz was presented based off of what Professor Klemmer had just presented. It’s a nice pedagogical trick to make sure you’re paying attention and understanding the material.
I found the default pace of the lectures a little slow, but the embedded video player allowed me to speed up the videos. I found the lectures were comfortable to watch at 1.75x speed.
In addition to the mini quizzes embedded in the videos, there were multiple choice quizzes each week based off of the lectures. These quizzes gave instant feedback after submission, which I appreciated. Students could retake the quizzes a few times until they pass; in general I found that the quizzes were easy if you paid attention to the video lectures.
The course hammered home the point that designers and implementers are the worst people to judge their own work. They have too much knowledge, and their mental model is nothing like that of the ‘average’ user. Furthermore, they are too close to the system to provide an objective evaluation – if they labored weeks on a particular feature, they’re going to inflate its importance, even if the design as a whole would improve without it. The meat of the course, namely the assignments and peer evaluations, were imbued with this idea. We were tasked with building a software prototype and enlisting the help of users to test it and improve its design.
At the start of the course, we were presented with three options for themes our design projects could take on. From the design briefs page:
- Change – “Use the power of new technology to create an application or service that facilitates personal or social behavior change”
- Glance – “Find people and design a personal dashboard tailored to their needs”
- Time – “Redesign the way we experience or interact with time”
I chose the Glance design brief. My inspiration was a hideously complicated board game named Twilight Imperium. It’s a fun turn based conquer-the-galaxy board game, but it has some serious usability issues.
It takes an incredibly long time to learn the rules, and an even longer time to play. The first game I played took literally 16 hours over the course of a few days, and the fastest game I’ve ever completed took 5 hours. Two aspects of the game struck me as particularly frustrating:
- The technology tree (there are 24 technologies grouped into four categories, spread across two massive pages in the instruction manual)
- Combat (each of the ~6 ship types has a different base attack rate, which can be modified by your race, action cards, and political cards in effect)
In every game I’ve played, choosing technologies to buy and the combat bring the game to a screeching halt. I decided that my project would be to build an application of some sort to help make one of these aspects more intuitive and fun.
I designed two storyboards, one for the combat app and one for the tech tree app idea, in order to solidify who the app was for (board gamers who play TI), where it would be used (wherever they play), and the problems it solved (takes too long to pick technologies and/or fight, too much has to be kept in players’ heads)
Next I decided to focus on the technology tree idea and came up with two mockups of divergent designs of this application using the wireframing software Balsamiq. (Longtime readers of this blog might remember that I used Balsamiq to make the illustrations for my post explaining how ListView works in Android). I decided that I wanted to drastically simplify the tree structure as laid out in the instruction manual and instead only display the prerequisites when necessary. (Technology X cannot be purchased until you purchase A AND B or C…).
One of my designs was inspired by the slick UI of Diablo 3 for crafting items:
Here’s the Balsamiq wireframe for that design:
The second design I created was a grid layout:
After receiving (and performing) a ‘heuristic evaluation’ of the prototype, I decided to actually implement the grid layout after making a few modifications. In the final few weeks, I implemented an interactive version using d3.js and HTML tables. I am no web designer, and I’m embarrassed by some of the hacks and nonfunctioning pieces of the prototype, but overall I am pleased with how it came out. The final assignment was to perform an honest to goodness usability test with at least three participants. The feedback I received from them will be invaluable for improving the prototype in the coming weeks. You can play with the same version of the prototype that my testers did if you’d like.
Coursera aims to allow tens or hundreds of thousands of people to be taught in one class, and this course proves that it can be done. According to Professor Klemmer, almost 30,000 students from watched the lecture material, and about 800 completed all of the coursework.
I alluded to it earlier, but the only way that this many students can be graded in a timely manner is through the use of peer evaluations. Before you complete each assignment, you are given exactly the same rubric as your peer assessors will have to grade your work. After the deadline for submission is up, you must go through a training exercise, grading five sample assignments in order to calibrate your scores with that of the professor. After this, you must grade at least five other students’ assignments; failure to do so results in a penalty to your grade. After you have seen these ten examples of other students’ assignments, you grade yourself using that same rubric. While this peer evaluation process was time consuming, it was an invaluable feedback tool, as it allowed me to measure myself relative to my classmates. In a traditional class, it’s rare to ever see others’ completed work, and in some cases it’s even against the honor code. In this online form, it is an absolutely crucial aspect of the course, as it allows the class to scale to a size unimaginable in physical classrooms.
I recently had the opportunity to speak with William Wilson, the man behind Fret Tester, the best guitar fretboard learning application available for iOS, and one of the nicest designed apps I’ve used. I wrote about its great UI features in my previous post, The Best iPhone Guitar Fretboard App: Usability Lessons Learned. I wanted to pick the designer’s brain to see what lessons he could impart about designing usable applications. Here’s what he had to say.
Please tell me a little about your background. Do you design mobile applications for a living or as a hobby?
I’m actually a professional guitarist. I make my living teaching and performing classical and Spanish guitar in San Diego. I’ve always loved programming, starting with Basic, then HyperCard, Java, Flash, and eventually C. I started designing apps for my guitar students as a way to compete with Guitar Hero. I got tired of hearing: “Sorry Mr. Wilson, I didn’t practice, but I played Guitar Hero, does that count?” My first attempts were in Java, and were really awful. I’ve since done about 15 flash games (on my site guitargames.net) and 4 iOS apps. I’ve mostly learned from books and online tutorials. Right now it’s a hobby, but I’d love to do more of it.
As a musician first and foremost, what were the deficiencies you saw in the other published guitar apps and how did you aim to address them?
Traditionally when learning the neck students start with the natural (not sharp and flat) notes. That way they establish landmarks on the neck. I didn’t see this feature being a big part of any app. For me having the iPhone version just display the natural notes made sense (with a button to shift into sharps). Plus it’s tough to fit 12 buttons on the screen without clutter.
One of the biggest challenges I saw was how to zoom in on the neck. With many of the apps, I tried I lost a sense of where I was on the neck. But if the whole neck was shown it was too small. I decided to have my app zoom to the area that was being tested, but to allow sufficient area on either side so the user had a sense for where they were. Plus I included the option to zoom all the way out should the user prefer it. Related to this, I thought many of the apps lacked reinforcement. When you pushed the correct answer your finger covered it. I added the key style buttons so users could see what note the pushed and thus reinforce the correct answer.
How have your students received your work? Have you seen a measurable improvement in their progress?
I wish I could say that the app was a runaway success with my students… Unfortunately there is a mindset out there that you aren’t practicing unless you have a guitar in your hand. Mental practice is too often neglected, both with note naming and music theory. For the students who have taken my advice and used the app I’ve seen good things. I think separating the mental and physical complexities of the guitar is the way to go.
What advice would you offer to other people who are not programmers by trade but have an idea for a program or application that could simplify or improve some aspect of their everyday life? What resources have you found that were useful in turning your dream into reality?
There are tons of great resources out there. I always recommend http://masters-of-the-void.com/ as a first step. Also Steven Kochan’s Programming in Objective C is great for learning to write for iOS.
Outside “traditional” programming there were three books that greatly influenced me. One is The Non-Designer’s Design Book by Robin Williams, it will help you design a decent looking app. Second is Dave Woolridge’s Business of iPhone App Development, make sure you can sell one or two before you spend a year creating an app. And finally Don’t Make Me Think by Steve Krug, a guide for good UI principles.
Also I would say make sure to beta test often. I had about 8 people test Fret Tester and learned something from everyone. I like to hand someone my phone and say, try this. You’d be amazed at how they struggle to find something you thought was obvious.
You mentioned making sure that you can sell a product before you invest too much time in producing it. How do you recommend that app developers do this? Do you create a bare bones v 0.0 prototype and put it on the app store to gauge interest? Or do you have an alternative technique for market research?
First I look around and see if there are similar apps already out there. If there are a ton, and they’re good, I move on. If there are none I also move on, since there probably isn’t a market for what I’m designing, I want to at least see things that are similar. My goal is to design an app that reaches an already existing need. Not that I’m always successful in it. After reading Woolridge’s book, as well as listening to Seth Godin’s Purple Cow (Audio Book) I’ve improved in this area. I also just talk to people about my idea. If my wife looks at me like I’m nuts (which happens frequently) I try to rethink things.
Are you working on any new projects currently? Or do you have ideas for the next thing you want to work on?
Yes, I’ve been playing around with Adobe’s new Stage 3D and the Starling Framework. It seems promising. I’m hoping to release my first game using it soon. It is called Tab Warrior and is kind of a cross between Fret Tester and Space Invaders. Also, I’m going to try my hand at an Android app this year.
Great to hear. Thank you for taking the time to speak with me. Do you have any parting thoughts for the readers?
One thing I read in Apple’s docs was to only include features in an app that 80% of users will use. That totally changed my approach. If you look at Apple’s success I think its largely the result of keeping things simple and easy to use, and gearing products for the average user. Take the same approach in your apps.
I just tried to leave a post on a site which uses a CAPTCHA to prevent bots from leaving spam comments. I must be a bot, because I failed the test – not once, not twice… not even three times. I tried over ten times in a row and it kept rejecting me after offering a new option each time. I assume this is a software glitch, and I gave up.
For the purposes of validating comments, I find CAPTCHAs completely unnecessary. There’s a better solution – it’s called machine learning. I use Akismet in WordPress as my spam filter and it performs incredibly well.
Let the computers do the hard work of spam filtering. Don’t frustrate and slow down legitimate users by making them fill out these things unnecessarily.
In my search for an app which would help me learn the frets of the guitar, I learned some general lessons on mobile apps and user interface design.
I have been playing guitar for about 3 years but have never mastered the fretboard. Now that I’m paying for lessons, there’s an economic incentive to learn – the faster I can locate notes on the fretboard, the less time and money I waste in my lesson.
At one point I toyed with writing an application myself, but I thought I’d look and see what was out there first before spending my time and effort. I’m glad I did, because there are some excellent offerings. I found five apps that fit the bill: Guitar Trainer HDx, Electric Guitar Fretboard Addict, Fretboard Warrior, Fretronome, and Fret Tester. Here’s the bottom line:
- Aesthetics matter
- Design for fat fingers and not a mouse – touch targets must be large and separated
- What’s most convenient for the programmer is not necessarily best for the user
- Focus on the core functionality and and usability rather than extraneous features
- Do not make me accidentally click the ‘buy’ button – I can guarantee I will not complete the transaction
- Think twice about animation
- Don’t be cheap! The difference in quality between free and even a $2 app can be enormous
To those unfamiliar with the guitar anatomy, I’d recommend reading the Wikipedia article. For the purposes of this post, all you have to know is that a real guitar neck is typically about two inches wide, about 25 inches long, has 6 strings, and about 20 frets. By pressing on a fret, you shorten the string and produce a higher note when the string vibrates. Each fret raises the pitch of the note by half a step.
Mastering the fretboard involves learning the correspondence between frets and note names. This can be tested in two directions – given a fret, name the note, and given a note and a string, identifying the corresponding fret.
As previously mentioned, an actual guitar neck is much, much larger than a mobile device’s screen. (By way of reference, my iPhone 4s screen is approximately 3.5 inches diagonal). How then can the app present an interactive fretboard when the strings are so close together on the physical screen?
Of the apps I tested, they took two approaches. Either they displayed the entire fretboard (usually only 12 frets, since that’s all you need to represent a full octave), or they displayed a zoomed in view of a few frets. Here are some of the pros and cons of each approach:
Global view (zoomed out)
- Better simulates what you see while actually playing guitar
- Provides global picture – easier to see relationship between notes and where frets fall in absolute and relative terms
- Frets and strings can be very close together and hard to distinguish
Zoomed in view (partial fretboard)
- Able to provide much more separation between strings, providing larger touch targets
- Hard to get a sense of where notes are relative to one another
- Does not simulate reality, unless you play guitar with blinders on with your nose an inch or two from the fretboard
Now that we’re acquainted with the fundamental UI challenge of a fretboard teaching/testing app, let us examine the competition.
Guitar Trainer HDx
I tried the free version; a paid version is available for $2.99.
This app takes the zoomed in approach to the fretboard, only showing approximately 4 frets at a time. While this gives a great amount of separation between the strings, it feels wrong. It uses the familiar inertial scroll pane that most iPhone apps do, but it seems ill-suited to the task. The view is so zoomed in that it’s very hard to get any sense of where you are in absolute terms.
An additional problem is that the app presents far too much information by default. The names of each note are displayed in a large font, as well as the number of each fret. On a real guitar, there are dots which indicate certain fret landmarks (3, 5, 7, 9, 12, 15, 17, on my guitar), and these crutches that the game provides will not force you to learn them. You can turn them off in the settings, but due to the cramped, zoomed in nature, it is hard to figure out where you are.
In training mode, the app presents you with random notes and you must identify them by name. The app supports both landscape and portrait modes, but there is something very off in its determination of your orientation. When the view switches, the fretboard stays static; the only thing that moves is the buttons at the bottom of the screen with the names of the potential notes. Often you will be holding it in one orientation and the notes suddenly shift 180 degrees as if it thinks you are holding the phone upside down. It’s supremely annoying.
Don’t even bother trying to play the game in portrait/vertical mode; the buttons are so small and close together that you will often hit the wrong one. Even more annoying is the “Unlock Guitar for $2.99” button that resides approximately 10 pixels beneath the bottom row of buttons. I cannot tell you how many times I accidentally hit the button while trying to test it out.
There is a training mode and then a testing/game mode in which you must identify a certain number of notes in the allotted amount of time. Throughout these modes, the app tracks the number of correct notes, misses, hit percentage, and total time. Additionally, there is an option to view the portion of the fretboard that you’ve mastered. This is one of the best parts of the app.
Aside from the previous annoyances, the game feels extremely sluggish. This is due in large part to the extraneous animation that occurs each and every time you identify a note. It’s as if you are watching someone who is learning PowerPoint for the first time and adds flying transitions to every slide – it might look OK the first time, but waiting a good 2 seconds each and every time gets old fast.
Finally, the game gives you one chance to identify the note. If you misidentify it (most likely due to the problems of the button size/placement I mentioned), it immediately flags it wrong and moves on. This is problematic as a pedagogical device because it does not give you a chance to correct your mistake before moving on. As you will see later, other apps handle this better.
All in all I cannot recommend this app, even for free.
Rating: 2 stars
Electric Guitar Fretboard Addict v1.4.3
Products by Michael Rylee
Once again, I tested the free version; a paid version is available for $4.99
This app provides a photograph of a guitar neck rather than the vector graphics of some other apps. This is problematic because the photo suffers from perspective distortion – the bottom of the fretboard is much wider than the top of the fretboard, meaning the touch targets for the top notes are impossibly close together. The tab bar at the bottom of the screen wastes additional screen real estate, as does the large (approximately 1/4 of the screen width) bar on the right indicating which note to touch.
This app aims to teach you the fretboard in a much more regimented way. There are a total of 133 Rounds (approximately 30 are available in the free version) moving down the fretboard. Sometimes a note is presented and you must choose which string on the given fret matches it; sometimes a fret is highlighted and you must pick from the available notes on the right side of the screen. In a third mode, the note is represented not as its name but by its position on the musical staff.
The touch targets for identifying the note names are fairly large, but identifying which string corresponds to the given note is a harder feat, given the small amount of separation between the touch areas.
While I prefer the zoomed out view that this app provides, in general, the aesthetics are lacking. The logo looks like bad clipart and the app is littered with tiny, illegible thumbnails advertising his other products. The developer’s tagline says “Now you can practice anywhere you have a Mac, iPhone, iPod Touch, iPad, PC, or Windows Mobile Device!”, and unfortunately it shows. The look and feel is just not up to par with standard iOS apps.
I admire the different ways in which the app tests you (note -> fret, fret -> note, note on staff -> fret), though I want less of a methodical walk through the fretboard and more of a drill to test my knowledge. The paid version is very highly rated but I did not get hooked on the free version enough to warrant a purchase.
Rating: 3 stars
Fretboard Warrior is an extremely minimalist app for testing your knowledge of the fretboard. You pick a duration of either 1, 2, 5, or 10 minutes and try to identify as many note names for the given fret as possible.
As I prefer, the app uses a zoomed out view of the fretboard to display the first twelve frets. Furthermore, since you are not touching the individual notes themselves, the fact that the strings are close together is not an issue. The issue comes from the fact that the buttons at the bottom of the screen are absolutely tiny. There’s really no reason the buttons need to be so small – there is an enormous amount of wasted vertical space on either side of the guitar neck, as well as on the top. If more vertical space were taken up, then the accidental notes could be moved out of line from the rest of the natural keys to provide more separation among the notes.
While I do appreciate minimalism, a little more functionality would be nice. For instance, it would be useful to be able to limit the range of frets and/or strings that are tested for students that are just starting out. If you already know the whole fretboard and are looking for a way to drill yourself and speed up your ability to identify the notes, then this app might do you well.
Rating: 3 stars
Ahhh. Using Fretronome after some of these other products is like night and day – this is how an iOS app should look.
It provides a beautiful vector based graphic of the neck, which is slightly distorted in order to provide better separation between the strings. Unlike Fretboard Warrior, this allows you to restrict your practice to a string of your choice (though not a range of frets).
I really admire the developer of Fretronome for doing something ballsy and completely different than all the other developers. Rather than providing a list of buttons (with all the problems previously mentioned), he provides a single enormous button for revealing the hidden note name. Another tap of the button hides the note and queues up a new note to identify.
Since you never indicate the note, the app cannot automatically keep track of whether you got the note right or wrong. Nevertheless, it provides a great flashcard approach to learning the fretboard.
The app features an Intervals mode in which two frets are indicated and you must identify (again, in your head) what the musical interval is between them. It’s a great feature that I’m sure I will use more after I learn the rudiments of the fretboard.
Rating: 4 stars
$1.99 App store link
I decided to try a paid app to see how it differs from these free ones. I’m glad I did – I use it exclusively now.
This app gives a horizontal view of the fretboard, defaulting to a zoomed in view of 6 of the frets, but optionally zooming out to show 12. Unlike Guitar Trainer HDx, the fretboard does not scroll in the zoomed in view; rather only the region of interest is displayed. Like Fretronome, the fretboard is rendered as an idealized graphical form rather than as a photograph. This ensures that there is no distortion of the fretboard. The aesthetics are excellent.
There are four modes – Name Note, Find Note, Notation, and Notes on Staff.
Name Note is the standard mode which all of these apps provide. Unlike Fretboard Warrior, it does not try to cram twelve notes into the bottom of the screen. Instead, the names of the 7 natural notes are displayed as large touch targets on the bottom of the screen (A, B, C, D, E, F, G). The accidentals (sharps and flats) are hidden and only revealed when the sharp key is pressed. When in that mode, the A turns to A#, C to C#, and so on and so forth.
This is a great design choice for two reasons. First, the natural notes are more common (7 out of 12 possible notes) so it makes sense that they should be more readily accessible. Second, by restricting the choices to 7 as opposed to 12, as many of the other apps do, the touch targets can be much bigger with more separation between them. This makes a huge difference in the usability of the app, as you will rarely, if ever, click the wrong button on accident.
When you misidentify a note twice in a row, the correct answer will be highlighted green, but you must still make the correct choice before the next note is displayed. This is a good feature, as you must always get the right answer to move on, even if the app helps. In contrast, and as discussed earlier, Guitar Trainer HDx immediately flags your answer as “WRONG!” and automatically moves you to the next note.
Unlike some of the other apps, there is no timed mode. I don’t mind this, as I find a ticking clock stressful and distracting. It does give you a measure of your speed by displaying a ‘beats per minute’ value (the rate at which you are identifying notes/frets), as well as a graphical representation (turtle, hare, car, rocket ship). I like the simplicity of the icons and prefer this way of measuring speed to a time trial.
Playing with this app provides a much more fluid experience and helps me enter the flow state much more than the others. I struggled to determine why that was until I noticed two main differences.
The first is that there is no extraneous animation between the identification of one note and the display of the next. For instance, Guitar Trainer HDx hides all the other answers after you’ve made the correct choice, and displays a huge CORRECT! on the screen which rotates around and leaves the screen. I’m all for positive reinforcement, but I don’t need that much, and I don’t need the second or two pause between the identification of one note and the display of the next. This app moves on to the next note with no hesitation, allowing you to drill yourself as fast as you can think.
The second difference is more technical. To explain it, first some background. What we think of as a mouse click (or tap on the mobile world) is really two separate actions – the mouse button is pressed and subsequently released. In most cases the time between these two actions is so tiny that we can treat the two as the same. The distinction between the press and release is important. Why? Try this test – press and hold the mouse over the following link. Now drag the mouse out of the url and release the mouse. Note that you have effectively canceled the navigation. The same is true of most button implementations – the action does not occur until the mouse is released within the button area. This pattern of having actions occur on mouse release is, in general, a great thing – it allows you to rethink your decision before commiting to it.
Instead of doing what is standard, Fret Tester uses the press on the note button, rather than release, to trigger the action. This means that by the time your finger has come off the screen the hit has already been registered and the next note displayed. This contributes to the feeling of speed. Since there are no real negative consequences for making a wrong note choice (it’s not like you’re going to delete an important document, for instance), the extra speed increase is worth the lack of a safety net. It’s a very subtle touch but it makes a big difference.
In terms of features, this mode goes beyond all the others I tried. The options allow you to focus on the areas you need to improve. For instance, you can restrict the range of the fretboard tested (e.g. frets 3-6) as well as the specific string or strings (the B string is a weak area for me personally). You can also choose whether to test accidentals (sharps or flats) or only the natural notes. I personally choose to play on the natural note mode since it works so well with the seven large notes displayed at the bottom of the screen. I find this combination of options extremely appealing as it allows you to focus just on the weak areas rather than wasting your time with what you have already mastered.
You can track your progress by means of a graphical representation of your mastery of each fret, accessible via the Stats menu. I have one minor complaint about this display – the level of mastery is mapped to seemingly arbitrary colors. In my opinion, this should have been a linear interpolation between two colors (e.g. white to black) in order to more easily determine which frets were strongest and which were weakest, without having to continually consult the color code. Nevertheless, it is very compelling to track your progress and try to turn all of the frets black.
Find Note is a rarer mode; only Electric Guitar Fretboard Addict had this feature. In this mode, you are given a note name and four consecutive dots on a string and must choose the correct fret. The touch targets are big and well-spaced in the zoomed in mode. When zoomed out, it’s ocasionally hard to select the correct fret, but the fact that the choices are limited to one string (rather than adjacent strings) obviates most of the annoyance.
In notation, a note on the staff appears and you must touch the corresponding fret. I haven’t used this mode much yet, but it’s a nice bonus.
Notes on Staff
Similar to Notation, this mode has you name a note on the staff rather than find its place on the fretboard. I have many years of experience reading sheet music, but it’s also been awhile, so this is a nice refresher.
This app is just about perfect. The core Find Note experience is by far the best out of all the apps I tried, in large part due to the care put into the user interface concerns. Even if you never touch the other modes and features (e.g. bass, mandolin, 5 string bass, left handed mode, alternate tunings), $2 is a steal for the core Find Notes drill.
Rating: 4.5 stars
This post explored five different applications’ approaches to the user interface challenge of representing a large physical guitar fretboard on a small mobile screen. We saw that certain applications did not pay enough attention to the separation needed between adjacent touch targets, or to the size of each target. We also saw how the ubiquitous scroll pane works well for standard apps but does not work well for a task where global positioning and spatial relationships are important.
Fret Tester was the clear winner of the contest, due to its great aesthetics, usability, and design. Its modes eschewed flash and animation for a fast, accurate, responsive testing environment. There is no ticking clock to exert pressure on you, but there are clear visual indications of progress (both in terms of speed, accuracy, and overall progression on the fretboard).
While this post focused on guitar fretboard applications, many of these user interface lessons can be applied to any mobile endeavor.
Please see the Google doc summarizing the various featured of the tested products.
arc90 has a free service called Readability which is invaluable for reading articles on the web. In a nutshell, it strips out all the extraneous content on a page and presents just the main article text, in a beautifully formatted way. You can configure the way the final page is rendered using the previously linked page, with such options as margin width, text size, the ability to convert hyperlinks to footnotes to avoid distraction, and a few different typographical options. Once you’ve done that, you merely drag button up to your bookmarks as a link; whenever you’re on a page that’s overly busy, you just choose that bookmark and the page instantly converts to a more readable document.
The one drawback I’ve found is that nicely formatted code in an original document does not come out that way in the Readability version. Still, if what you’re reading is not full of source code, this site is absolutely vital.
I’ve posted previously about TextMate, a great text editor for Mac OSX. While it is one of the best text editors I’ve used due to its simplicity, elegance, and power, there are a few UI features that drive me up the wall, and make it fall short of being perfect.
Tab key behavior
Here I have a bunch of text selected. What will happen when I hit tab?
If you answered, delete your selection and insert a literal tab, you win the prize. What happens in Microsoft Word, NetBeans Platform, and any number of other IDEs and text editors? The text is indented. This is clearly the better alternative in my mind because it is non-destructive, and you can get the destructive tab with a simple addition of any delete/backspace key before hitting tab.
Furthermore, it’s inconsistent – if I had selected that text and hit quote, I’d have the text surrounded by quotes, not a single quote replacing all my test. I would argue that it does more harm than good to
To indent the region, you have to do ⌘-]; to unindent you do ⌘-[. I’m sure there’s a way to remap tab and shift tab to indent the region, but it’s not immediately clear to me how to do that. If you know how, please comment so people can see. Every time I switch between Netbeans and TextMate I invariably delete a whole region of text I meant to indent by forgetting to context switch and use ⌘-]. Fortunately TextMate has extremely good undo support, so it’s not the end of the world, but it’s that little bit of friction that slows down work and adds up to frustration over multiple instances.
EDIT: The following sneaks up on me all the time and also is very irksome. Here’s a rather typical situation:
Here I want to move the block of text backward; I resist the urge to hit shift tab, and instead press ⌘-[. What happens? Not what you’d think.
I really cannot think of a valid reason for this behavior; I have the first line selected, but it does not respond to the indentation command. Very frustrating.
Syntax highlighting with unsaved files
If you are working on an unsaved file, there is no way to tell TextMate to treat it as a file of a certain programming language, and thus which syntax highlighting rules apply.
Why is this irksome? When I’m writing a blog post, for instance, I have a lot of snippets I compose in TextMate. In order to get the syntax highlighting to work correctly, I need to save each individual file.
Now, I’m not suggesting TextMate is magical and can read my mind as to what ruleset to apply to an unsaved file. What I’m suggesting is the addition of a menu that allows you to apply the syntax rules of a given language to the current file, regardless of whether it’s saved or not. Notepad++, a Windows text editor, has precisely this feature.
EDIT: Thanks to the comment by Marshall, I realize that this complaint is way off base – I didn’t realize where the menu was but it’s there. Right where it says “Plain text” in the above screen shot, click that and you get a full list of languages to treat the file as.
Tab support is abysmal. There is no support for closing tabs with the middle mouse button, a convention followed by most major web browsers, as well as NetBeans and Eclipse. Instead, you are forced to click a small close icon on each tab. Fitts’s Law states that the smaller a button is, the longer it will take a user to navigate to; this is part of the reason that Apple has adopted menu bars at the top of the screen rather than floating with each window. Doing so gives the menu effectively infinite height, as the user can slam the mouse up and not go past it. Long story short, having the only means of closing tabs be a tiny button is bad UI design.
I could forgive the lack of middle button close IF the tabs supported sensible context menus to close other tabs. Compare for instance the options of some other products that support tabs:
Firefox’s popup menu on tab
When you right click a tab in TextMate, no context menu appears – there is absolutely no menu option I can find to close all tabs. Any system providing tabs should allow the user to make a blank slate for himself and focus on one (or zero) files at a time. As it stands, you must click each tiny x button individually on all the tabs.
Finally, you cannot undock tabs. Again, maybe I’ve just been spoiled by other products like Adium, Firefox, and NetBeans, but I consider it a very important feature to be able to undock tabs to show two windows side by side. While tabs are certainly more space efficient than tiling windows side by side, sometimes you really need to compare two files side by side. TextMate makes it very difficult to do that, especially when you have opened a project rather than individual files.
Here is the workflow in FireFox:
Before drag is initiated on the tab
While tab is being dragged; note that a translucent version of the page follows the cursor to indicate what is happening
After the drop is completed, the tab is split off from the original window and becomes a separate frame.
TextMate is an excellent text editor but not without some usability flaws. I’ve detailed some features that irritate me about TextMate, due to their violation of the principle of least astonishment; I’ve used enough other similar systems to expect certain functionality, and this expectation is violated in a few ways. These ways include the fact that hitting tab while text is selected replaces the contents with a literal tab rather than indenting the region, lack of a feature to syntax highlight unsaved files, an inability to close multiple tabs at once, and finally an inability to drag tabs out of the frame to become separate frames, so as to be able to compare documents side by side. Software designers take note – if you are going to have tabs, you must build in these features or your users will feel seriously limited.