Ideas for a supervisor UI
The supervisor web UI (screenshot) is not so great. It sends corrupt pages some of the time, such that you see a white page or raw html or some other incomplete load. The button background images often fail to come in. The log tail pages rarely work for me; they usually show nothing. There's no 'stop' button on a process that's in the 'starting' state, even though that's a useful transition. The pages' internal links are all /absolute so you can't proxy the site to somewhere/deeper/in/your/existing/site/.
Supervisor, itself, is pretty wonderful. It just needs a new web UI, which can easily be developed separately since it could talk to supervisor via xmlrpc.
Here are some ideas for a better UI:
- the process states should update live; no manual refresh
- have a compact mode that can fit in the corner of my screen when I'm developing
- have a mode where one process's reset button is huge, so I can click it quickly when I'm troubleshooting that process
- display more process stats, like top
- let me select multiple processes and do actions to the whole group
- display arbitrary additional fields that I configure for each process, such as the port number I set the server to run on, or the name and phone number of the person to call if the process is crashing
- there should be a simple REST interface to the process states that's easier to use than the xmlrpc one. I should be able to do process restarts with curl or XHR in some other page.
- tail the logs really well: I should be able to expand several logs at once, or look at a mixed view (like "tail -f *"). They should update live. I should be able to get any log at its own URL so I can pass that URL to someone else. I should be able to color the log lines based on patterns; abbreviate out boring lines or parts of lines; and shade the lines according to their age. (I did a project like this 9 years ago.)
For supervisor, but not the web UI:
- I'd like a config-generating tool that looks at a running pid and makes a supervisor config section that would run that process with the same user/env/cwd/etc. This tool should be able to POST new configs to a running supervisor via the new web ui! The out-of-the-box experience with supervisor should be to simply launch it and then add some of your already-running programs to it.
Better online surveys
Seth Godin wrote a short piece about bad surveys, but there's one point that I think he fumbled, in that he didn't make it convincing enough to the audience that would benefit from it.
"a vague question with vague answers (extremely satisfied...acceptable...extremely dissatisfied and no scale to compare them to) is a total waste of time"
I fear people will read that part, recall their own silly reason for using a dumb scale on survey questions, and discount the rest of the post. Let me try to make it a bit louder: we all hate your grids of 15 questions with 10-choice answers, and they make us think worse of your current project and all your future projects.
Surveys are good when they get you data: noncalibrated scales (like 'very true - somewhat true - neither true nor false ...') barely measure anything. For starters, 10 response choices don't tell you more than 5.
Surveys are good when they make your customers feel like they've been listened to: long grid-style surveys don't do that at all.
Now it's possible that some obsessive customers actually enjoy picking between a 6 and a 7, because they've made up some reasons in their head why this answer should earn the extra point for a 7, or whatever. Learn those reasons! These obsessive customers already write multi-paragraph reviews on amazon and yelp-- why constrain them into giving you a contentless '7'?
All Seth's other points apply, and #5 ("let people compare things") is totally underused. Comparing things is fun and fast, and the response scale is already calibrated. You don't have to guess anything from the stats. That's a very winning combination of attributes for a survey question.
Suggestions for twine.com
Here's what I think twine.com should do to make me use it:
* Optimize page loads. Here are some page load times i'm getting from clicking around: 2.8s 4.5s 30.5s 8.1s 6.1s 3.5s. Now I'll press reload on /home a few times: 13.6s 13.0s 15.0s 19.8s
* Continuously import delicious bookmarks.
* Make the imported delicious bookmarks public, just like they were on delicious.
* Make it so i can find the delicious importer! http://www.twine.com/import says "Twine is importing your bookmarks." and then does nothing. And has an 'ok' button, as if it was a modal dialog box or something.
* Make the front page interesting. I imported thousands of delicious bookmarks a few months ago, I started some of my own twines, but the interest feed still isn't interesting. As in, you'd do better taking the list of blogs I read and just displaying those for a while. I'd be happy to use one interface to read my blogs, tag and collect them, and fill twine.com with content. Getting the RDF for it all is a huge plus for me. But you have to be better than the workflow I'm using now.
jott.com UX is not great
jott.com, what's going on?
I called to record an idea I had on the drive home. This was not an expected use case for jott.com, so I'll explain it in more detail: I had an idea; I was concerned I would forget it; so I speed-dialed jott.com to speak my idea and get a transcription in my email inbox. The jott.com prompt said something like "Before you record, please listen to this special announcement. There's something new on your account at jott.com. Please remember to check your account later. Record your note now."
I forgot my note, of course. Not having to hold little todo items in my head is why I use jott.com. Apparently jott transcribes slow, confused words pretty well, although they omit muttered swearing.
When I got home, I followed the new email link to read my note, and I didn't get any important account messages. Jott does not log you in even when you click the link in the email they sent to you. That's lousy, and it's not a security issue since they know when they're sending to the same address they use for password resets.
When I did log in, all I got was "Upgrade your plan to connect to Remember the Milk by phone." I think the big news might have been this, which is a link I found on their blog.
Moral: if your product is made to gather some information quickly, gather the information before making silly announcements.
Otherwise, I highly recommend jott.com for its free transcribing of voice messages!
I think I hate the rememberthemilk.com UI

This is not the first time I've been completely lost in the RTM UI. On this page, I have no idea what's going on.
- What is that orange box at the top? Did I start an action but not finish it, and what was that action? What happens if I press neither 'share' nor 'cancel'?
- How do I get back to my todo lists (i.e. the primary document I'm here to edit)?
- Why should I create some groups? Stop yelling at me about what I should do! I understand that a group would be a container of contacts, but if I haven't thought of the use case for that yet, I'm not going to create some groups just because I "have no groups" yet.
- On the right, in the biggest cluster of text on the whole page, they're telling me how to name my groups. Is this really the right time for that? How about after I click 'add group'?
- "1 contact selected"?! Who is it, and is he or she going to matter on this screen?
- Why is 'Delete' rendered as a form button but 'Add group' rendered as an image-plus-link? Are those different? Will one of them make another crazy orange box header? What is the rule with small blue circles with a symbol in them? The add group one seems clickable, but the other three aren't.
- The main box on the page is on a groups tab, and there's another single-tab box on the right labeled "Group". What is the meaning of the right-hand one? Isn't the main one going to list my groups? (See below for the answer)
- What is the 'Key' box doing here? I suspect that my contact groups will not have priorities or due dates. The stack of boxes on the right is somewhat dependent on what I'm doing, since the top "tab" box and the instructions box have both adjusted for this view. It's really better to keep the Key box bouncing around below the other ones even when I have no use for it? I would critique the need for a key/legend in the first place, but that's for another time.
- The relationship between contacts and groups suggests that tabs are not used correctly here. That right-hand-side box devoted to telling me how many objects I have selected on the other tab, that's a pretty huge clue that I don't want to flip between contacts and groups. And the contents of the 'invite' tab are not even close to parallel to the types of things in the other two tabs. The first two tabs at least each show a type of object in my account; the invite tab is a form for sending a single invitation.
Dying of curiosity, I made some groups:

I now learn that the top box on the right displays some info about the group that I'm hovering over in the main list. I still don't know how to add members to a group that I've made. I have "1 contact and 2 groups selected", but there seems to be nothing to click that would affect the membership of any groups. Dare I suggest that the behavior of groups (they contain users) be reflected in the visual layout of the page (the depiction of a group contains depictions of users)?
Finally, we're out of laundry soap, so please get some if you go to a store before I do and you're Kelsi.
Notes from Intelligence at the Interface
Event: http://sdforum.org/index.cfm?fuseaction=Calendar.eventDetail&eventId=13012&nodeID=1
tom gruber, tomgruber.org
Progress in the user experience on the web, if we look at what the user has to do and what the rest of the system has to do:
- breadcrumbs (just links, user does everything)
- -then-> portals (user picks yahoo, yahoo does more work) -then-> search (user queries, search engine does work) -then-> room service (agents)
examples:
'sandy' is an email reminder assistant
'farecast' for airfare. suggests alternate cheaper flights, trends. Looked cool from the screenshot and description.
Tom remarked at the end that finally, intelligence and computation will be able to be what we compete with, instead of just having "brand bullies" :)
And, "each time AI does a job well, it always disappears"
twine, nova
Remember when you started using delicious? it took 5 mins to learn most of the functionality, but then several days to notice that this is really worthwhile and it's going to help a lot. I expect a similar, but stronger, effect from twine. You learn the mechanics of checking information in, then after doing it for a while you notice which of your former laborious tasks have melted away. I also have high hopes for systems connected to twine. It's like a more polished version of piggybank. And they're going to add in recommendations, which may bring the 'smarts' closer to what magitti or calo is doing.
check Nova's blog for slideshow
semweb says, put metadata in the data so new software can reuse the past work (naturally!)
seems very close to that friendlist thing from that other blogger i read, i forget the exact name
builds a 'semantic interest profile' about you. picks people/places/organizations/topics you're interested in
create a 'twine' (like squidoo lens, page about a topic). The twines had surprising urls: like http://twine.com/twine/my-house, right at the global level. Are the urls different depending on who's logged in? Or does Nova's own stuff just go to the top? :)
A bookmarklet opens a transparent frame right on top of an external page you want to tag. From there, it's like delicious, but gathers a bit more data automatically.
When he used the bookmarklet on an amazon page, twine pulled some more fields from the page about the book
on the marked pages, twine finds words and topics and makes the links
edit-in-place UI to fix the fields of the data it found; add more fields. like freebase
they do some auto-summary of text from a wikipedia page
query is like newegg power search (or most semweb stuff for that matter), pick a type, add your filters
email in your own items to your 'recent items' list, just like a ticketing system would accept new tickets. URLs in the mail get crawled and those sites show up in your items too. (calo had a more turbocharged version of this, where they'd go hunting for info about everything and build big profiles about users and stuff)
goal of twine is organization. is this automating my tasks? the users will reveal what is valuable to automate.
PARC magitti
Finally, some novel UI work on a phone-based UI. It looked really nice-- low on sparkles and icons, high on usability. The app itself (recommendations and guides for your leisure time) seems good, and it was amazing to see a Japanese paper-printing company looking for ways to get into new media. Feels like the only stories I hear in the USA are about old companies putting their effort in keeping their old businesses going (e.g. big oil). Anyway, there was some cool personal activity prediction stuff like where they look at your messages and your past trends to guess what you want to do -right now-. I hope to get into exactly that kind of thing on my home automation project.
the name = magic + (something) + digital grafitti
19-25 year olds have 2x as much free time as other youth (japan, at least)
important for them to know what everyone else is thinking
predicts what to do, e.g. 'eat' (when it thinks you're hungry based on time, place, your emails, your explicit queries). Nice.
it reads emails only to guess what kind of activity you're currently doing. 11% of the test email dataset had information related to leisure activities (which is all magitti cares about). That seems low to me. Maybe that's all the ones they were able to correctly process (or maybe there's something I'm not estimating right about the emails of 20-somethings in Japan)
look at your past behavior to learn your patterns of eat/see/shop/... They can make plots based on day-of-week and time. This is what I want for my home automation.
ppl want to use the phone UI with one hand. 6 big buttons surrounding the content
pie menu on the phone. 4 quadrants only, sometimes more narrow ones for the border buttons. They looked really usable.
see yelp-style ratings on businesses, takes your star rating as you look at the page. collaborative recommendation stuff
- the action buttons were arranged like this:
- 'M' [camera capture] [settings] (some content here) [any [eat]] [your location] 'clock'
hit the lower-left one to change your activity from 'any' to something else. Even if you dont say anything, they still list good ideas from their best matches of your activity, place, reviews, etc
you can force the activity ('shopping for clothes') and it refilters.
- From the QA session: "what does the next 10 years of AI look like?"
- answer: "busy"
yahoo
The phone-photo-tag part of this demo gave the most feeling of "you are looking into the future of technology" of all the presentations tonight. The UI was not elaborate. Mainly, it's that your phone camera is helping you tag your photos in real time (like delicious, except it knows your position and millions of past flickr tags too) and it's readily presenting you with other photos of interest. Everyone using this would essentially be running their own little version of justin.tv (photos, not video). The heavily-assisted tagging helps you organize your photos, and therefore organize your memories. Valuable! The speaker mentioned an example of looking up where you last had dinner with that friend. Since it was so easy at the time, you would have taken a photo and tagged it with the friend and the restaurant. Problem solved.
flickr photo locations plus tags shows popular tags on the map. 'tagmaps' from yahoo research berkeley. pretty cool to zoom in and out. using 4M photos, last year's data
upcoming version has 30M photos. Sometimes, these tags annotate world maps better than the pros do.
autotag your vacation photos by using the place of the photo
see the 'fireeagle' project for how web apps can know your location
i dont have live notes about the best demos, since I had to change seats to see the screen. The phone app that shows various feeds of pics included "wallet" (the photos you often show people), "my wife" (the photos she's taking now), "any flickr photos tagged with 'happy' near this location".
when reviewing all the tags on flickr, they consider the time too so as to figure out which things that are actually events ('bluegrass festival') and not places ('the mission'). This is like a topic I got into at a semweb meetup once: with just the tags on delicious, could you produce the names of all the states and their capitols? (I think yes)
CALO
The calo express part of the demo was pretty nice. It's a much smarter desktop search that would easily beat whatever you're using now. Especially what I'm using now, which is nothing (and I've tried a few OSS projects a little). Things took a turn for the industrial-strength-awesome when it got into the meeting planning and recording features, mainly for the amount of tech they're throwing at the problem. The AI testing stuff was also amazing, and it helped connect the project back to real life: if they don't make a certain amount of progress in their AI evalutions, they don't get funded for the next year.
This is a big research project that covers CPOF (recently in a Wired article) and has some kind of cross funding and sharing with many other projects, including twine.
cognitive assistant that learns and organizes
SRI, darpa
includes Command Post of the Future
builds 'relational model' of user's world. not sure if it's rdf
guesses what emails are about, what tasks they go with. you give feedback
'meeting understanding'. remote people are in everyone's headsets. CALO writes transcript, action items, Q/A pairs.
when he comes to a mtg, calo knows what all the people have been doing
has some kind of chat bot for scheduling a meeting (and other tasks, apparently). you use limited natural language
AI uses 'probable beliefs', revises them as new facts come in. 'probabilistic consistency engine' can update knowledge with new facts.
each year, they test the system (like an SAT test) and it has to improve. questions like "what to do when tom can't make a meeting: A. reschedule; B. tell tom; ...". They compare the baseline untrained CALO to an instance with 16 users for 2 weeks, and note whether calo does better at the test after that learning.
they have a full self-contained office environment, and a lite version (used by DARPA). lite one has almost no interface
the lite version does: google desktop search PLUS nlp (!). calo found someone's home page, pulled number and address and job title. Noted the person's publications and web pages to see what the person does.
followup query: "people with expertise in learning" then ".. that work at SRI" to narrow it down
A query for "slides about iris" finds individual slides in past presentations. then you search for similar slides to a near-match. Apparently the normal desktop searches look for keywords and stuff in a whole .ppt, which is obviously not as useful.
make a new presentation just based on title. digs up all relevant slides
'preppak' for a meeting. finds all documents that are required or recommended for the meeting
in the meeting, you can watch the transcript, which knows the person since everyone wears a mic. Testing within the government
calo is a personal assistant, doesn't share much with groups. some things (e.g. meeting schedule) are shared. you dont reveal all your meeting time prefs, but the calos negotiate it
interval.py review
http://members.cox.net/apoco/interval/
This is an excellent model of how to write and publish doctests. Try http://members.cox.net/apoco/interval/docs/public/interval.Interval-class.html and click the 'between' method. You get a longer docstring and doctest examples of the two interesting modes.
The module itself seems to be doing a good job of cleaning up a lot of min/max junk in my code, too, which is just what I wanted.
Atom feed of this blog