MicroThoughts A thought managing system for the Android platform MicroThoughts is a very special thought management system designed for mobile phones. It takes advantage of two key aspects of mobile technology. First, it leverages the ease of recording audio over text entry on small devices. Our notes are all audio-based; the user simply speaks her mind into the phone as if having a conversation with a friend that never forgets. The second interesting aspect of MicroThoughts is the use of location information to manage notes. Thoughts are inherently bound to the place where they occur, and this is an immensely useful means of organizing and searching through them. We make use of both the location tracking and the map capabilities of the phone to provide a rich interface for managing the recorded thoughts. Finally, with the ability to find nearby users and share thoughts with them, MicroThoughts provides a form of social interaction that is faster than email and infinitely more useful than voicemail for searching and playback. Read on to get an understanding of how the system works, or just start up the application and begin the journey of storing your thoughts – it’s that easy! Our team is a firm believer in MicroThoughts and, in fact, is building it because we need it to keep up with our lives. To help you get started we have converted some of the thoughts one of our devs had saved in a notebook over the last few months into a set of sample data that will be loaded when you start the application for the first time. Enjoy! Table of Contents Frequently Asked Questions ........................................... 3 The MicroThoughts Menu ............................................... 4 Recording Thoughts ...................................................... 4 Tags ................................................................... 5 Location .............................................................. 5 Sharing ............................................................... 6 The Server Side ............................................................ 6 Playback Mode.............................................................. 7 The Map Visualization .................................................... 8 The Filter Panel .................................................... 8 The Player Panel................................................... 8 Managing Places ................................................... 10 Why Places?......................................................... 11 2 Frequently Asked Questions Q: Why does it take so long to start up? A: When you create a new user, there is a good bit of initialization that needs to be done. Additionally, test data is being creating and saved to the device. This results in about a minute or so of wait for new user creation. Subsequent loads do not suffer from this. Q: The stock audio is nice and all, but can I record my own notes? A: Yes. Because Android didn’t ship with Mic support, we wrote our own. It uses the network connection to transmit audio from a computer running a bit of code we call AudioSource Prime. You can configure the host and port that it’s looking for under the Options menu from the MicroThoughts main screen. AudioSource Prime is available for download at http://www.okcoder.com/mt/ Q: What gives with the MapVis? You promised drag-and-drop but when I touch a Place and move my hand it doesn’t follow. A: Understand that drag-and-drop is something we added in ourselves, and as such it has a few idiosyncrasies. One of these is that an object must be selected with a tap event before you can drag it. So remember, tap the center once first (the place will change from cyan to blue), and then touch and drag! Q: I was playing around on the MapVis screen and now my notes are assigned to strange places – or none at all. What happened? A: When you move a Place on the MapVis screen, all the notes that are in its radius are adjusted. If you move a Place over a note, that note will change its location to that of the Place. Conversely, if you move a Place off a note, the note will no longer be a part of that Place. Q: If I have questions or comments how can I tell you? A: We’d love to hear from you! You can find a contact form link on http://www.okcoder.com/mt/ or e-mail us directly, bask@okcoder.com 3 The MicroThoughts Menu MicroThoughts is a system for recording, storing, and playing aural notes. Given this, the first two options of our main menu are pretty self explanatory; Play allows you to search through, play, and edit your old thoughts, while Record is the starting point for creating a new thought. Binding thoughts to location is one thing that makes our application special, and the MapViz provides a natural way to explore thoughts dispersed through space. Since the Android emulator does not currently support audio recording, we wrote an optional socket audio server to make the app feel more life-like. If you have our audio server, great! You can set up the host and port in the Options menu. If not, no worries at all, we’ll provide pre-recorded audio whenever you record a note. The Options menu also allows you to set some user specific settings – such as how many thoughts to cache and how often to sync with the server. The main menu has basic MicroThoughts features: playing, recording, and visualizing your thoughts. Recording Thoughts The Recording screen is fairly simple. Tap the record button and start talking in your phone to record a note, and press the stop button when you’re done. You can record as many times as you like until you’re satisfied with the thought; use the play button to hear what you’ve recorded. If you’d like, give your note a title for easy searching later. The Record screen is the starting point for creating a thought, along with audio, tagging and sharing. 4 At this point, you can either save your thought as-is or tap the Edit button to see additional options. Besides the audio track and title, a thought has three other attributes: tags, location, and sharing. We’ll deal with each of these in turn. Tags Tags are a way of adding additional textual information to your note for use in searching, categorizing, etc. Eventually we hope that the MicroThoughts system will be backed by a Speech-To-Text engine that will auto-generate tags, but, until then, user-created tags serve well to fill that gap. On the Tags screen just type in an associated keyword and tap Add to add it to the list of tags for this thought. To remove a tag, simply tap on it in the list. Besides audio, you can edit four aspects of a microthought: location, sharing, tags, and title. Location Location is a vital aspect of each microthought. When you record a thought, it is automatically bound to your current location (latitude and longitude). In the Edit Location screen you can do two useful things. First, you can give a name to your current location, so that all thoughts saved in that location become grouped in a special way. Second, you can save a thought to a different location that you have already named. We’ll talk about this in more depth later, when we discuss the map view and its place-management features, but for now understand that this gives you a lot of flexibility in where thoughts end up spatially. Tags are a nice feature for adding additional information to a note. Simply type in a keyword and tap add to assign a tag to a note. 5 Sharing Sharing is a powerful feature of the MicroThoughts system. There are thoughts that you want to keep to yourself, but there are also times when you want to share a thought with the people around you. Say, for instance, you’re in a project meeting and something just came up that is important for everyone there to remember. With just two taps on your phone you’re ready to record the audio reminder and with two more you can share it with the people around you through the Edit Sharing option. The system automatically detects and presents a list of nearby users. All you have to do is tap their user name and the note will be shared with them. The application will poll the server every so often to check for shared thoughts and download the relevant meta-data if it finds one. When editing the location of a thought, you can either give a name to your current location or choose a different one altogether. The Server Side While we’re discussing the server side, you might be interested to know that MicroThoughts keeps the memory limitations of your phone in mind. A large set of audio notes could become unwieldy, so we help by offloading the bulk of the audio to an external server (via a web service). Whenever you have an internet connection, the phone will push a copy of your thoughts to the server. The phone itself has a cache for storing recently recorded and played audio. If an audio clip isn’t in the local cache, MicroThoughts will attempt to retrieve it from the server, and let you know if it had a problem (say in areas with Toggle sharing with nearby users that your phone automatically detects by just tapping their name. 6 limited internet connectivity). The meta-data for each note is always stored on the phone, however, so you can easily search for notes based on title, time, location, and tags without having all the audio cached locally. Playback Mode Once you’ve recorded a bunch of thoughts, you probably want the ability to search through them and play them back. From the main menu, tap the Play button to view a list of your recorded thoughts (those shared with you will appear italicized). You can sort them by title or start time, or you can search based on title or tags by typing in the field at the top. When you scroll through the list it expands to show you the duration, location, and tags for each note, as well. The Play button on the main menu first takes you to this screen, where you can sort or search for a particular thought. When you tap on a note in the list, you are taken to the playback screen for that note. This screen is nearly identical to the recording screen, only the record option isn’t present (no, you can’t go back in time and change your thoughts). From here you can play the note and edit all the features you saw earlier. Remember to hit Save when you are happy with your updates! If you want to delete a note, there is a menu option on this screen that allows you to do just that. There is also a menu option for returning to the main menu, though hitting back works, too. Once you pick a thought, you are taken to this screen where you can play the audio and edit the note. 7 The Map Visualization Next up is the Map Visualization. Since location is at the heart of each microthought, having the ability to visualize and search through notes on a map is essential. This view of our application has three parts: filtering, audio playback, and managing places. You can change modes via the buttons at the top; the map in the center is fixed in each mode, while the panel at the bottom swaps out to reveal more functionality. Before you ask, the little black dot running around the map is you! The Filter Panel First we’ll discuss the Filter panel. In this mode, you can filter notes on both a date range and on a set of named places (more on places later). When the visualization first comes up, only the current day’s notes are displayed. If you haven’t recorded any notes yet, the map simply centers on your current location. Each dot on the map represents a note. The brightest red is the newest note in the selected range. Whenever you adjust the filters in this view, the map automatically pans and zooms to frame the set of notes that satisfy your filter. The notes are colored on a gradient, with the darkest red representing the oldest and the brightest red the newest note in the set. This provides a useful cue for selecting notes and also serves to help overlapping notes stand out. The Player Panel Tapping on any note on the screen automatically selects that note and Tapping on the From or To buttons pops up a date picker for changing the date range. 8 swaps to Player mode. In this mode, the title, date, and time of the note are displayed. If the note is old or newly shared, it may not be in your device cache, so the system will start loading it from the remote service. Note that simple playback is controlled with buttons at the bottom. The Edit button takes you directly to the playback/edit screen for this particular note. When you’re done editing, save and press the back button to come back to this screen; any changes you made will automatically be updated in the map visualization. The small yellow dot shows which note you currently have selected. This brings up an interesting problem though – what happens when you tap on a cluster of notes? Touch interfaces don’t provide the fidelity required to pick one overlapping note over another. We take care of this problem by presenting a spinner with the names of all notes that fall under a tap, if there is more than one. Simply pick the desired note from the list, hit select, and you are brought to the Player screen for that note. The selected note is highlighted with a yellow dot, and the audio belonging to that note is prepared for playback. Overlapping notes will be a natural occurrence in the use of this application, as we visit the same places often throughout our daily lives. The next section describes how we can give meaning to the places we frequent, adding another layer of usability to the system and meaning to our microthoughts. When you tap an area with several overlapping notes a spinner appears to help you select one. 9 Managing Places Finally, this is the Places pane. As mentioned, having a sense of “place” is a nice feature for an application that makes heavy use of location. The user probably doesn’t care about latitude and longitude, but there is certainly value in being able to name this or that particular corner “my favorite coffee shop” or “my workplace.” Notes can be bound to these meaningful places, which allows you to do a few interesting things that we’ll talk about in a bit. For now we will describe how you can add and manage places. We’ve added some nice functionality to the map overlay that makes working with places a breeze. Tap anywhere on the screen to drop a default-sized “place”, which consists of a center point and a radius of effect. Touch the center and drag to move the place anywhere on the map. Touch the outer rim of the place and drag to change its size. As you can see, we’ve dragged and resized our place to cover the two notes we took at the coffee shop earlier in the day. Give the place a name and tap save, and all the notes within its range are automatically assigned to it. For more granularity in place radius, you can zoom in or out on the map. You can also manage existing places; just tap the center circle of any place in view to select it and you can begin dragging and resizing as you like. All notes are updated as the place is changed. You can also tap the delete button to discard the selected place. In this view you can tap the screen to add a place, drag it to the desired location, and drag the outline to change its radius. Give the place a name and hit save when you’re ready. All the notes under it are instantly assigned. 10 Back to the Filter panel, you can now see that a list of all your places is available at the bottom. When you select a place from the list, the map centers and zooms to show you that place and all the notes inside it (for the given date range). Saved places are represented by cyan circles on the map. Remember, if you want to change a place you can just go back to the Add Place screen, tap the center to select it and then either change or delete it. Why Places? There are two important use cases that a sense of places provides us. The first is simply the extra filtering functionality you see here. The second is even more powerful, however. With a list of places, you can now decide to record a note that belongs to a location other than your current one. For instance, you might be at work but want to make a note to remember something at the grocery store this evening. If you have your neighborhood grocery store saved as a place, you can pick it from the dropdown after you record your note and the note will automatically be relocated to that place. When you arrive at the grocery store that evening, you can use this screen to filter based on place name and the note will be right there. This concludes our introduction to MicroThoughts. We hope you find it as exciting and useful as we do, and we look forward to your feedback! Once you’ve saved some places their names appear in the Filter view. Select a place to jump to that location and find notes there. When you select a place the map zooms to frame it, and you can easily see all the notes inside. 11