Weekly Thesis Post #29

Well, this will probably be the last Weekly Thesis Post. Just about everything’s buttoned up at this point. The thesis deliverables have been turned in, the presentation slides are finalized, and I think I’m pretty well rehearsed for the show tomorrow. Even the persistent bronchitis I’ve had for the past two weeks has started to clear up!


Here are the last few deliverables:

In the News

There was a writeup about Obtract on the New York Observer’s Betabeat blog last week. Neat! It’s great to see people interested after having my head down in it for so long.

Going Forward

Over the past week I’ve met with Chris Fahey and Jason Santa Maria to take a look at the application and get some ideas about what could be improved. I have yet to make a decision about what to do with it. For now I’m just going to wait and see what the reaction is. Stay tuned, and thanks for reading.

Weekly Thesis Post #28

One more week to go!

I’ve spent most of the last week tying up some of the loose ends. Here’s an overview.


I made an update to the prototype app that addresses some of the questions and problems that were identified in the first release. If you’ve already downloaded the app, it should automatically update through Sparkle, or “Check for updates…” in the app’s menu. I’ve been collecting feedback from other testers, and I’ll bring up the feedback in the final section of the process capture.

I also built an “expo” mode that generates some fake data every time the app launches. This should be especially helpful in the presentation, since it would be pretty confusing to start the app with a completely blank screen.

I also did a quick visual design for obtract.com that provides a better overview and better matches the visual style of the app.

Process Capture and Summary

Just about done. At this point, I’ve finalized the design so I need to record a final “overview” screencast that demonstrates the features for posterity. I’m also doing one last editing pass.


The business cards are designed, but I’m waiting for a new app icon design to come in before I send them out to print. That should arrive today or tomorrow.


I ran through a rehearsal yesterday, and it seems like it’s going pretty well. I’m going to modify the content a bit to spend a little longer on the demo and a little less on the setup.


I’ll probably only have one or two more entries after this one. For reference, all of the blog entries about the thesis can be accessed here.

Weekly Thesis Post #27

We’re quickly approaching the end of the semester, and with it, the end of the thesis project. There’s now less than two weeks — 12 days — until the final presentations. I’ve spent the last week preparing the final deliverables.

Here’s a quick status update:

  • Prototype. I released a public version of Obtract on its website, obtract.com. I’ve sent around the link to a few of my friends and classmates for testing. I’ve made a few changes based on their feedback, and hopefully I’ll be able to make another update before the show. I’ve also sent out emails to a few advisors to get some advice on the prototype and where to take it from here.
  • Presentation. I’ve removed the user journey from my prototype, and instead I’ll do a live demo. Otherwise, the presentation is coming together. I have a rehearsal with Paul on Tuesday.
  • Branding. This still isn’t quite finalized, and is taking longer than expected. I think I’ll have this finalized by Wednesday of the upcoming week.
  • Handouts. I’m working on this too, and I have a draft ready.
  • Process Capture. Pretty much done. It’s online at ericstonge.com/thesis.

There are a few other small deliverables, but overall, the end is in sight.

Weekly Thesis Post #26

Video update this week! This covers most of what I presented yesterday during our final thesis update. I hope to finish the prototype within the next day or two.

Obtract – April 13th Update from Eric St. Onge on Vimeo.

Weekly Thesis Post #25

A little overdue on the post this week, sorry! Here’s a quick update.

Visual Design

I spent a lot of time in the past week working on the visual design of the app. I’ve gone through two iterations so far, and have gone a long way toward implementing most of it. Here are a few images of the current implementation. The artwork for the icons is still temporary, but otherwise I think the layouts are getting close. I probably won’t change it too much before I get some user feedback.


This upcoming Tuesday we have a critique where I’ll show what I have so far. As far as the prototype goes, I only have the intervention screen left to work. I suspect that I can finish that up in a day or two, and then switch full time to the other deliverables. I’ll spend most of Tuesday talking about the prototype with a brief update on the other deliverables.

Weekly Thesis Post #24

Over the past week, I’ve continued to focus on my prototype. But I’ve also started to switch gears a little bit to move onto some of my other deliverables.


At this point, I’ve reached “feature complete” status for the prototype, with one exception. This means that:

  • No new features will be added, unless absolutely critical.
  • Bugs will be fixed when found.
  • Visual design still needs to be done and implemented.

The one big exception is something that I mentioned last week: Interventions. There’s some basic functionality in place, but at the moment it’s primarily a placeholder. The reason this is not complete is because I’ve paused to work on…


…the branding. I’ve been struggling a little bit in determining what exactly the interventions should be. My advisor suggested that by defining what the brand of Obtract is, I might be able to more easily figure it out. My classmate Colleen Miller helped me out last night by guiding me through a moodboard, and by pointing me to some resources for figuring out colors.

I’m also going to try and get some help from some of the students in the MPS Branding program here at SVA, just upstairs on the 11th floor. So that should be fun! After that, I’ll start working on the visual design of the application.


In the meantime, I’ve started to think more carefully about the interventions. Previously, I had been thinking about things like typing a word in, or entering a passcode. Now, I’m leaning towards different kinds of things.

Basically, I’m looking for activities to act as counter-distractions. The activities need to have qualities including:

  • Simple to understand, or already understood
  • Not (too) fun
  • Scaling well from simple to complex
  • Can involve a social component

Simple games and toys have started to come to mind, including:

  • Moving objects into a box
  • Mazes
  • Jigsaw puzzles
  • Sorting objects from biggest to smallest
  • Connect the dots
  • Paint by numbers
  • Tangrams

To put it into a scenario: When you become distracted, a dialog box will appear that has maze in it. To dismiss the dialog, you must either switch to a productive task, or you must complete the maze. The more distracted you become, the more difficult the maze will become. Eventually, the maze will become so complex that you get back to work. At certain points, teammates might be required to help you by unlocking a door in the maze so that you can complete it.

I’ll be working on these over the next week along with the visual design. Ideally I can implement 2 or 3 of them for the prototype.

Weekly Thesis Post #23

Over the past week, I’ve continued to focus on building my prototype. I think it’s been a very productive week.


Here are some screenshots of where the app stands this week.

Account & Sign In

You can now visit obtract.com to create an account. (Though, you won’t be able to do anything without the app.) If you do have the app, you can now sign in to the service.


Once you sign in, the screen changes to a Profile screen that shows your name, email address, and phone number. The same screen will later be used to show your teammates’ profiles so that you can get in touch with them.


The trends screen shows your score over the past hour. It’s now been updated so that it shows your teammates’ scores, too. In this picture, my trendline is in blue, and my teammate NotEric (who does the opposite of what I do) is in green. A milestone/message/annotation/tweet/status update (“Working on something new!”) is also visible when you mouse over.


New this week is the activities view, which shows you a summary of the activities you’ve been doing. For example, I’ve been working in Xcode for 944 minutes. Apps and websites are shown in the same list.


The intervention window has also been updated, so now it appropriately appears and disappears when you switch between distracting and productive activities.

Behind the Scenes

Some of the additional things I’ve been working are not visible in screenshots. For instance:

  • Every piece of data (users, activities, messages, and teams) now syncs to obtract.com if you’re signed in, so that your teammates can also access the data.
  • The system builds a blacklist of distracting websites and applications based on your votes. Basically, every time you mark an activity as “distracting,” it adds your vote to the tally and uses that to determine how the activity should be classified by default. A new blacklist is downloaded daily. (Yes, this actually works.)

Next Up

I think the prototype is starting to look pretty good. Maybe even almost “feature complete.” I’m approaching the point where I need to slow down my work on the prototype and move on to some of my other deliverables. And also do a prettier visual design for the app.

In my current schedule, I’ve allowed about three weeks for development. After that, I’d like to work on the visual design and get in a few rounds of user testing. Before I switch gears, here’s what I need to:

  1. Team management, so that you can (at least) add and approve new members to your team.
  2. Team profiles, so that you can see your teammates’ names, email addresses, and phone numbers.
  3. Improved interventions, so that they’re harder to ignore and actually steer you back to work.
  4. A feed showing your team’s most recent activities and milestones.
  5. User icons/avatars, to give the app a little more of your own team’s personality.

As part of this plan, I think that I need to scale back a few other items:

  • Focus on distraction interventions rather than breaks. Breaks work to pause the system, which I think is fine for the time being. I do not plan to have break interventions ready for the final prototype.
  • Work on a single visualization for feeds, trends, and activities. It will not be customizable for the final prototype.

Weekly Thesis Post #22

It’s been two weeks since the last update. During spring break last week, I made some good progress on the software development, and I’ve also given some more thought to the interventions that the system will use.


It was a fairly productive week for the prototype software development. Here are some of the highlights:

  • I did a lot of work to refactor the software so that it will be easier to build interventions later on. This was an unfortunate amount of work for relatively little progress, but it was necessary. As an example, previously I could not have built something that said, “When the distraction score hits this level, do something,” and now I can. So that’s pretty big.
  • I got the intervention window working. This is a window that intentionally tries to get in your way if you get too distracted. The goal is not to prevent you from being distracted. Instead, the goal is to make it more unpleasant and more difficult to distract yourself when you become distracted, so that you’ll get back to work. This window is the placeholder for all of the later interventions I’ll build in once I make some more progress. I would say that this is the primary interaction that the system uses.
  • I started working on the web service aspect of the system. Now, you can visit a website to register for an account that you can use to log in through the app. Ideally, you could register for an account through the app, but it’s much quick to build a website to do it. Since time is my primary limiting factor here, I’m generally choosing the fastest (but not necessarily technically best) options for the prototype.
  • I decided to build the web services on SSL. This decision is similar to the last one: it’s the fastest way to get a base level of security into the system. The other options would involve cryptography and hashing, but unfortunately I don’t have time right now to work on those.
  • This week, I will be working on the sync aspects of the service, so that you can publish your data to the service as well as subscribe to your teammate’s data. Ideally, there would be an awesome way to do this using web sockets or XMPP or something cooler, but instead I’m using the relatively lame (but quickly prototypable) method of polling via JSON.

Here’s a video of the intervention window as it currently works:

Obtract – March 16th Update from Eric St. Onge on Vimeo.


Lately, I’ve been thinking a lot about the idea of throttling. I don’t know that I’ve verbalized it so far, but I think that Obtract aims to throttle your distractions. It’s not about stopping distractions entirely, but it aims to put a barrier up to becoming distracted so that it takes more effort (i.e., has a higher biocost) to distract yourself.

For breaks, the opposite can also be true. By increasing the biocost of productivity, the system could push someone toward a distraction or toward a break.

I made a chart to show how interventions might work:

To summarize, as the distraction score drops, increasingly complex interventions will be used. Likewise, as the amount of time since the previous break increases, increasingly complex interventions will be used.

Now to build those interventions…

Weekly Thesis Post #21


I’ve been busy with development over the past week. Let’s try something new this week: A video update!

For the sake of posterity and Googlability, here are the highlights:

  • The system is now accurately measuring the productive time and distracted time. Using that, it creates a score comprised of the productive minutes over the full amount of time (60 minutes.)
  • The app now shows the last 60 minutes of working. The 60 minutes do not have to be consecutive. It picks up where you left off when you last stopped using the application. Though, if there’s been a gap of more than four hours, the score will reset.
  • The app has an auxiliary window that shows your current score. It also lets you mark the current activity (app or website) as productive or distracting.
  • The app has an auto-hide feature. When you’re productive, it peeks off the side of the screen and reveals itself with a mouseover. When you’re distracted, it shows all of the time to remind you of the time you’re using.
  • You can now take breaks. 10 minutes out of every hour, as long as you have more than 5 minutes of break available.

Obviously, it’s still a work in progress. The transitions to/from breaks in particular need more work. For the rest of the week, I’m going to be working on milestones, and on some of the basic interventions.


This week I’m also participating in a workshop with Jack Schulze and Matt Jones from BERG in London. Initially, they pointed me to a project called Glancing by another designer at BERG, Matt Webb. Here’s the scenario from his description:

Three people sitting at their computers with Glancing running: Blue, White and Red. That’s what the eye looks like on everyone’s computer.

The way you look to see who’s around you is by opening the menu, and there are their names there. Just by looking to see who’s around, seeing their names, Glancing understands that as a higher activity: it’s a glance. So Blue does this, opens the menu.

Then the eye opens on everyone’s computer.

After thirty minutes or so, Red glances too, and coincidentally White is just thinking about what to write in her report and idly opens the menu also. The eye gets even more focused.

Right, and that’s about it.

This is a really nice concept. I especially like how the mechanism for checking to see if other people are glancing feeds back into the system to get other people to glance. It’s a really nice touch.


Yesterday, we also had a session at R/GA where we talked about user journeys, storytelling, and video production. In addition to some helpful tips about making videos on the cheap, they emphasized the importance of the story that you’re communicating. The same topic came up in the BERG workshop again.

At the end of the thesis, I ultimately will have one or two minutes of video that need to clearly and compellingly communicate my topic. As Jack said, my topic is clearly practical and there will be a “truth” behind it in a software app. But how can I tell a story about in a way that’s witty, exciting, and fun? Or in a way that potentially shows logical extensions of the system that I won’t have time to build?

Weekly Thesis Post #20


I spent a little bit of time this week working on the story/pitch for my thesis. Here’s a revised version:

Obtract is a service to help knowledge workers focus on their work. Using a desktop app, it keeps track of individuals’ activities over the course of a work day. The app connects to a centralized service where people on the same team can share activities and progress. When Obtract notices that a team member has become too distracted or is in need of a break, it generates interventions using desktop notifications and text messages that encourage in-person collaboration and renew focus.


The bulk of my work over the past week has gone towards prototype development. Things are looking pretty good so far. I’ve captured a few screen shots of the app in progress.

Here’s one image of the early “feed” section, which shows the last few activities you’ve done on your computer:

And here’s the “trend” section, which shows how distracted you’ve been over the past hour. A higher point means that I was more focused and less distracted.

Currently, the app will keep track of applications and the websites you visit in Safari and Chrome (but not Firefox.) Right now, it counts Safari as distracting, but everything else is productive. Next up, I’m going to work on the mini-window and the “break” feature. As part of that will be a system that lets workers rate apps and websites as being distracted or not. I would say that currently I’m within range of my schedule, but maybe a few days behind. I’m trying to get it as quickly as possible to a state where I can get some user testing.