shimon/my brilliant ideas


photo of shimon The Christian Science Monitor has a nice treadmill desk story. The story is by Amy Farnsworth and the accompanying photo is by Mary Knox Merril. Makes for a good intro to the treadmill desk idea… not that I’m biased. :)

link

Subfloptimal (n): pertaining to a point so insignificant, that the time lost in debate outweighs the potential benefit/cost of any outcome in consideration.

Suppose you’re about to drive to a concert with some friends. Friend A suggests a shortcut. Friend B suggests a different shortcut. Letting friends A and B argue about their shortcuts for five minutes is subfloptimal, because while one shortcut may indeed be better than the other, the time spent arguing is going to slow you down more than just choosing a path and going.

This comes up a lot in software projects. Someone will suggest we rename all our floobs and, instead, call them zorts. You might think “hey, there are good reasons we called them floobs” but if you can tolerate “zorts” without worrying much, the distinction is subfloptimal. It’s easier to just make the change than to argue about it, as long as you’re not one of those people who finds it offensive to call something a zort.

In which case you can go zort yourself.

Maybe this would be a good project for DevHouse Boston.

You have a cell phone. But you’re visiting family and don’t have an alarm clock with you. Why not schedule your wake-up calls via the phone?

Or suppose you remember you’ve got to start preparing lunch at 12:45. Why not have an automated reminder service call you?

This is just about the simplest possible VoiceXML service, but it’s still not done well on the web. The closest thing I’ve found is ifbyphone.com, which has basically the right services and business model but an interface that’s about 50% more cumbersome than it needs to be. They’ve taken the approach of offering as many options as possible, and thus it takes a while to find the free 10-day trial. When you call their number to schedule a reminder you have to wait through the greeting, say “wake up calls” (probably more than once), and then choose the day (say “Tuesday” or dial 1, say “Wednesday” or dial 2, etc… you can’t just say “today” or “tomorrow”) and enter or say the time. Then it asks you for your time zone, even though you entered a time zone during website registration. And finally it requires you to choose the phone number, since it’s soooo likely you’ll want to schedule a reminder call to a phone other than the one you’re using.

It should go like this:

IVR: Hello Shimon. Thank you for cal…
me: wake up calls
IVR: When should we call you?
me: today at twelve forty five
IVR: We’ll call you on Tuesday, November 21st at 12:45pm Eastern Standard Time. Hang up now to finish, or say “timezone” or “start over” to make changes. You can also say “note” to add a voice note, or “recurring” to make this a recurring reminder.
me: <click>

Blending prompts together, and allowing revision rather than requiring confirmation, reduces interaction time in half. Blend this with a simple web interface and you’ve got a self-contained, obvious product that I’d wager people wouldn’t mind paying $5/mo for.

Why not just use your cell phone’s built-in alarm or calendar? I think this would be significantly faster to use, and it would have a consistent interface across different phones. But maybe that’s not enough to make this an idea worth pursuing. I’m not sure.

A friend of mine who is getting married asked for some advice about changing (or not changing) her name. Here is my take on it, with names changed to protect the innocent. The couple shall herein be known as Emilia Gambino and Lucas Gustaffson.


As interbreeding becomes the norm, we should expect family names to increasingly lose their ethnic significance. In a couple of generations, people will find it so much harder to pin their family tree to a specific country, and there will probably be redheaded brown-skinned people named Gambino (who knows?). So, at least on a theoretical level, I think we should bite the bullet now and give up on the historical/ethnic significance of last names.

Given that, what good is a last name?

  • helps to uniquely identify a person
  • identifies membership in a family group
  • very frequently associated with an individual bearing it

In other words, your last name is a huge branding opportunity. As it is used for identification, frequently associated with the people it includes, and denotes group membership, it is not at all unlike a company name. I am not kidding.

What does one want in a company name? Well, it has to be unique. You'd never call a new company or a new family "Smith". Second, you have to be able to register a sensible domain name; that's why my Rura is so convenient, because it's short and phonetically reasonable, yet unusual enough to have been available in y2k. Your name should be easy to say and spell (perhaps easier than "Rura", but I'm still thankful family names pass partilineally and I don't have an 8:2 consonant:vowel ratio in my last name). Finally, it can be used to communicate part of the mission or culture of the group (e.g. Microsoft, New Balance) but it needn't do so (e.g. GoDaddy, Nike). This last exception is especially important in the case of something as long-lasting and non-goal-specific as a family name.

Note also that in family names, there is a small, probably temporary incentive to use certain traditional-sounding names if you live in the United States or Canada and desire admission for your children to elite colleges. If your child's last name is distinctly Hispanic, it may trigger poorly calibrated affirmative action features in the college admissions process. For this reason, you should consider changing your names to "Emilia Rodriguez" or "Lucas Hernandez". However, a child named LaKeysha Rodriguez-Hernandez might be unduly scrutinized for her uncanny combination of affirmative-action-triggering name archetypes with the characteristically yuppie hyphen, so beware.

Short-term admissions strategizing aside, I recommend that you invent a new family name and use it for yourselves and your children. You might consider something that blends "Gustaffson" and "Gambino", such as "Gambison" or "Gusbino". However, if you are serious about achieving a lasting brand for your family, it may be worth bringing in a full-fledged naming/branding agency. While these guys mostly sit around thinking of names like "Verizon", there is no reason they couldn't expand into family names. In fact, the idea may be novel enough that an agency might be happy to donate their services if you let them write a few press releases about it. Just imagine the envy of the "Joneses" when their Tommy has his first play date with your young Mr. Campione or the way boys will melt for the on-demand attractiveness of Ms. SeducTiVo.

Someone should build a standard vocabulary of CSS elements for site customization. That has probably been said before, but for web apps to become even more integrated with user desktops, they need to be as easily themable as their desktop environment. This is not just a question of making everything pretty and slick, but a real usability issue. Needless change is distracting to users and makes new tools hard to learn.

I think this can be accomplished using the right blend of technology and advocacy. From the technology end, participating websites can include a stylesheet reference to http://usercss.org/my.css which would send the user's chosen theme (stored in a browser cookie). If the user hasn't yet registered with usercss.org, it should send the default theme for the referring site. Each site can provide a "choose theme" link that would display a co-branded, but consistently-designed configuration tool.

On the other hand, this usercss.org would also be in a great position to collect site viewing statistics and provide single sign-on, and thus subject to much of the same skepticism. Maybe it really isn't feasible.

link

It's mostly off topic now, but I was wondering why (as this article suggests) we are still having problems counting votes. In particular, if the polling place has incomplete or incorrect information about you, you may be stuck with a provisional ballot. After you vote your provisional ballot, you'll never know if your vote was counted; you just have to trust the election authorities. What if we did something like this:

  • All ballots have a serial number.
  • When you vote, you keep a chit with your ballot's serial number.
  • Serial numbers are distributed at random so that your ballot cannot be associated with you solely by knowing the serial number. (Preserves secret ballot.)
  • At end of election, elections board publishes a text file that lists each ballot serial number and the votes counted for that serial number. This must be public and can be because serial numbers are anonymous.
  • Voters, or organizations acting on their behalf, can verify that their votes have been counted as intended by searching the published list for their serial number.
  • A number of organizations that support this behavior could take down your information right outside the polling place (like an exit poll) and verify it later for you automatically. You'd pick an organization that you trust and has some incentive for arguing that your votes were counted.

Wouldn't this solve the provisional ballots problem? Are there any problems with it that I haven't foreseen?

link

Thanks to feedster, I have won an iPod mini in their developer contest. My winning entry was a feedster memory game, like the game you used to play as a child. Cards are arrayed in a grid in front of you, and you can flip over any two. If they match, you remove them from play.

The difference is that unlike the normal memory game, the flip-side of each card doesn't have a picture. It has a search result, based on a query you type in. And you don't match literal results, you match the blog they came from. And finally, if you are clicking repeatedly on an item and can't figure out what blog it came from, the feedster memory game reveals more information: first, the blog's icon from feedster (if it has one), and then the actual title of the blog.

Play a round »

link

Philip Greenspun asked, "what kind of business should one start given that one already has a person on the ground in Shanghai?" Here's my response.

You should start a firm that, rather than doing commodity IT outsourcing, generates solutions to hard problems using a high-volume competition model. The goal is to drive creativity through competition: a customer provides a high-level challenge (I need to improve the efficiency of our widget manufacturing process), and you bring many different minds to bear on that challenge.

This is contrary to the conventional wisdom that Chinese offshoring is for uncreative work, but I think that (1) it has a chance of actually working, and if does work it will be huge and (2) it can exploit the population size advantage. The key is the competition model. In a nation as populous yet per-capita poor as China, those who get as far as technical school have made the cut over and over again. They are ruthlessly competitive, expert in doing things exactly right.

This has the unfortunate consequence of making them somewhat less creative, focusing on efficiency and correctness of product rather than originality. Still, out of a hundred top Chinese programmers, there must be a handful of already creative ones. In the right environment, others around them can learn to appreciate creativity. And if you want to motivate those others to learn faster, why not use the same motivator that has pushed them through years of difficult schooling? You can even recruit by inviting solutions to open research problems and offering a cash prize. Within the corporation, give the most creative employees a higher status (but do not stratify too much within these ranks in order to encourage mixing, freeform discussion, and serendipity).

Think of it as the marriage of Silicon Valley risk-taking and Chinese labor costs.

link

Feedster is giving away 12 iPod minis in a developer (and writer) contest. Here's an idea for a feedster-powered service that would be really cool, but I don't have the time to implement myself.

Find Related Blog Posts with Feedster Searches and Statistics
If your blog has statistics (all frassle users do now, thanks to Josh) you probably enjoy learning what search queries bring users to your site. You might even sometimes try looking at those search results yourself. Perhaps you find that people are coming up with some pretty interesting search queries, and those websites appearing next to yours in the results are worth reading.

There is no need for this to be a manual process.

  1. Your blog software records what search terms lead viewers to a given post. Perhaps for this post, a day's queries might be "free ipod mini" and "feedster contest".
  2. Every night, your blog goes to feedster and records the top 10 results for each of those search terms.
  3. If a given blog posts appears as a result for more than one of the search queries, it is ranked as especially relevant.
  4. Related posts on other blogs are automatically displayed with your post. Best of all, they're found based on what people have actually been looking for.

I think this would make an excellent plugin for a blog publishing system. I'm not certain it would actually produce useful information, but it's probably worth trying.

(Incidentally, I first thought of automating this while chatting on the phone with Bill Ives a few months ago. I'm not sure how we got onto the topic, but he told me how he sometimes finds useful material in this manner.)

link

After much background thought, I believe I know how to best add file management to frassle. (This is a long-term goal, but has been getting some attention recently.) It's simple.

Each file is a blog post, just like any other content fragment in frassle.

The note body, when viewing the blog on a web page or RSS feed, shows an HTML representation of that content fragment. There is also a link to the original file. So if you uploaded a PDF, it would get converted to HTML for the note body. A photo would be represented as a thumbnail. An XML document would apply any appropriate XSLT transformations and display as XHTML or just a document tree. A text file would become preformatted HTML. An unknown format would just give you file name and size.

This approach has some significant advantages over email-style attachments. In no particular order:

  • you can categorize individual files
  • you automatically get the same renaming, editing, deleting, and sharing/privacy options as anything else in your blog
  • you can easily browse by timestamp or category
  • you can subscribe to updates
  • you can use the regular search to search the HTML representations of files; i.e. you get to do text searches of PDFs and MS Word documents.

On the other hand, if you're used to handling files as attachments, this seems a little weird. Some files just don't stand on their own: photos are part of an album; PDFs are final print-ready renderings of a long-term effort; source code files are parts of complicated projects. If we just treat them all like time-ordered blog posts, won't it just be chaos?

Yes. And that's a good thing.

See, this problem is orthogonal to file uploading. Any piece of content has a context that is more or less important to properly understanding what it means. Showing you that context is one of frassle's most fundamental goals. Time, categorizations, and inter-feed threading of conversations are the basic tools we use to accomplish that goal. Why not expand the challenge? Detecting and expressing more meaningful relationships between content will make all of frassle more powerful.

And hey, I have the feeling categories and timestamps will prevent a lot of chaos by themselves.


Example: One of the first applications of the multimedia post framework can be a tool to help you show posts in context. The scrapbook is a simple list of blog posts (notes in frassle parlance), chosen from any blog. Each note is identified by permalink, and can be included in whole, selectively excerpted, or simply referenced. You can also add text anywhere in the scrapbook. As you browse through frassle, each note has an "add to scrapbook" button.

I like the way this sounds. You could not only use the scrapbook to, say, collect a number of related discussions from around the web—you could actually build photo albums with it! The same concept—a binder with pages covered in taped-on papers in real life, a list of permalinks online—works to gather and share related pieces of content.

Still better, the scrapbook itself can be a piece of content. Under the multimedia post framework, we could represent the scrapbook as an XML document, probably in OPML. Then you can share scrapbooks easily, rename/delete/edit them in the standard way, and even incorporate one scrapbook into another!

Next Page »