Tags and Stickers

As I noted before in Tags and Divergence and attempted to address in Emulating Errors for Tag Convergence, tagging as practiced today could use more convergence features. While thinking about this and wiki-related problems, I came up with stickers.

I came up with the idea of stickers when I remembered the opening chapter of Snow Crash in which a girl tagged a bad driver's car with a sticker. Stickers on wiki entries? Stickers on Flickr pictures? Stickers on links?

Stickers are like graphical tags that users can attach to text or images. While textual stickers can be applied likes tags are, similar to the way adjectives work, I think graphical stickers offer better user experiences. An open system can allow users to create custom stickers and variations of stickers (like icons with modifier pieces) to help users create a graphical language. Time and effort needed to create new graphical stickers is not a liability but a convergence feature.

I think the best way to use stickers is to combine it with limits in availability and time. So a user gets N number of stickers of various types to start with and will get M more per week or month and each sticker type has specific time limits (meaning they come off after a while).

I am still not done thinking about stickers but I thought it was interesting enough as is.

Bank of America announces SiteKey

Bank of America just announced the SiteKey service, a very effective protection against phishing and pharming. The service will launch in Tennessee next month and roll out across the country by the end of 2005.

SiteKey service is based on the patented 2-way 2-factor authentication solution from PassMark Systems. For the most part of last year, I've been helping them build their core authentication technology. This year, my focus at PassMark has been the forensic technology.

Oh yeah. Hurrah!

Update:

News.com has a screenshot of a SiteKey screen for those more visually minded. That was actually a screenshot of this page at BoA.

uitags: Taglib for Common Webapp UI Problems

uitags is an interesting open source project that tries to package solutions to common webapp UI problems (i.e. blog post/comment input and session timeout) into a taglib. I think what they are doing is valuable but they need to allow developers to try alternate, possibly browser-specific, solutions beside their own.

For example, telling the user that session is about to expire is not very helpful because the user has only three choices, a) do nothing, b) submit incomplete form, or c) manually save incomplete content and then try again.

A more friendly solution monitors user activity to decide automatically whether to transparently rekindle session or save the entered text (without formal submission) using AJAX techniques. If saved, saved input box can be replaced with a friendly message with a link to renew session and content. If saving content scraps at the server is not an option then there are other techniques such as client-side Flash Shared Object storage.

Easy RCP Recipes

Benjamine Booth updated his simple recipe-style RCP tutorial for Eclipse 3.1M7. FYI, RCP is a platform for building Eclipse-based rich clients and Eclipse 3.1M7 is the first version of Eclipse 3.1 releases to make it relatively painfree to create RCPs. Before it was like laying dodo eggs which is a problem if you are not a dodo.

BTW, eRCP might interest you if you are into mobiles. eRCP is embedded version of RCP so that you can run java apps using SWT UI on mobile devices. Looks like Motorola is one of the sponsors behind this project.

Writing Down Passwords

While I agree with Jesper Johansson's view that discouraging people from writng down passwords just encourages them to reuse passwords across systems, I don't think passwords should be written down. Instead, they should be printed. Print not just one password but tens of them scattered across a page. All but one will trigger an alarm and lock all the doors nearby automatically.

3D stereograms (aka Magic Eye) could be a fun part of the solution too so people will have cross their eyes to signin. LOL.

Persona Category Conversation Post


Persona Category

Fumes from my Role-Bloggers post made me think of personas as blog post categories. With categories, each post belonging to zero or more categories. With personas, each post is more of a topic on which one or more personas comments on.

Conversation Post

Fumes from the paragraph above made me think of conversations as blog posts. Starting with the persona as category idea, replace personas with people and allow iterations to get conversation captured as a post. Too many ways leads to this idea. Each Gillmor Gang podcast is, in essence, a conversation post. Each courtroom hearing is a conversation post.

In short, I took the boat to Timbuktu to get to New York. Hey, it's more fun this way! Besides, there are still too many No Left Turn signs in my head.

Wrong Atom

To me, the intricate pile of MUSTs and SHOULDs piling up in Atom format spec is a display of short-sighted technocrat bullshit.

For example, what is the point of requiring all entries to have a unique identifier when feed clients have no incentives to reject feeds that violate that requirement? Filtering of duplicate entries from multiple sources is a quality of service problem that is best dealt with in a separate opt-in specification. Clients and servers that support the opt-in spec will be more popular if resulting differences in user experience and distribution are significant enough. If not, there was no need for it anyway.

Ignored mandates are much worse than ignored opt-ins because mandates leave no room for failures, competitions, nor changing needs. Opt-in approach can also embrace RSS so that clients can check for the extension elements regardless of what the container feed format is.

Will the Atom WG see the light? I doubt it because they are thinking more about their product than the market.

Over the Java 1.5 Wall

I noticed that MyEclipse update for Eclipse 3.1M7 was available, so I finally made the switch to JDK 1.5, Tomcat 5.5, and Eclipse 3.1M7 which took about 30 minutes of scavenging and scrambling. The combo is so unreasonably stable and functional that it's almost boring.

Oh, I've also been using Visual Studio 2005 Beta2. Unlike Eclipse 3.1M7, it's quite unstable and annoying to use. I guess VS team had another experience drain because it feels more like a pile of parts and features instead of a luxury SUV we all need to ride over the unexplored territories in comfort. Maybe they need some fresh ideas. So, I am still using VS2003 for real Win32 and .NET works.

Eclipse Performance Bloopers

While reading about new and noteworthy features in Eclipse 3.1M7, I ran across Eclipse performance bloopers page which I found interesting.

For example, I didn't know that String.substring().intern() can prevent garbage collection of original string's character buffer because substring() grabs a reference of the buffer which intern() adds another reference at that won't be released until VM shutdown. I think some XML parser, DOM, and XSLT implementors might be doing this unintentionally.

Another blooper is, IMHO, a general design problem with Java stream I/O API. Specifically, there is no direct way for library implementors to tell whether an InputStream or OutputStream passed into their library (i.e. XML parser) is buffered or not.

If the implementor assumes it is and the caller forgets to buffer, then I/O performance crawls. If the implementor always buffers and the caller also does, then I/O performance suffers again. Of the two evils, double buffering is better than unbuffered I/O but, if you have N layers of libraries, you could end up with N buffers.

IMHO, the code that creates a stream should buffer the stream as needed. Libraries can also use markSupported() for input treams, which returns true for most buffering input stream implementations, to decide whether to add buffering or not. For output streams, you are out of luck.