The end of information, the return of conversation

Dave Weinberger is writing and speaking about the end of information. Information has been the dominant metaphor for understanding the world and people, but this is changing.

The evidence of change is before us with the rise of stream interactions in Twitter, Facebook, and other social media. In and among the bots and the bot-like self-promotional behavior there are people talking to each other.

One problem with the current form of stream conversation is that it can be hard to see in a distributed environment – we need standards and tools to be able to re-assemble distributed conversations. Another problem is that conversation gets lost in time, as the stream scrolls back into history. Even though you can search to find information, the content is lost without context. There’s a need for search engine to evolve to be able to not only find out-of-context snippets, but to search the conversation.

Another need is to create curated conversations out of the raw material of the discussion. One for how to do this uses a wiki. In Wikipedia, encyclopedia entries have “talk pages” where editors can debate the content. The result of the debate is what appears on the page. In the wiki genre, the norm is to have the output be a single-voiced, smooth face. Maintaining multiple voices using “thread mode” is considered bad form in some communities. Sometimes you want to present a single face to the world – when you are writing an encyclopedia, a how to guide, software documentation, a pattern guide – you want to edit it down to a single voice; and if there are multiple voices, to present them as cleanly counterposed alternatives.

But at other times you don’t want a single voice, but to preserve a sense of the conversation, with the different voices and perspectives. To preserve some fascinating Twitter conversations and enable the conversation to continue after the moment, I put together this post, summarizing Howard Rheingold’s conversation about multi-tasking and this one on the thoughtful use of points in social systems based on a conversation with Kevin Marks, Tom Coates, Jane McGonigal, Tara Hunt, Josh Porter and others.

Clearly these summaries met a need – they were among the most popular posts in my (rather low-trafficed) blog and fostered ongoing conversation on the topics. But it’s difficult and painful to do – we need better tools for it. And we need words for it – a genre, a rhetoric, a recognized social practice.

Interestingly, there are pre-modern genres that have well-established genres of representing conversation-in-time with a conversation-in-text, itself intended to be the basis of of ongoing conversations. The Talmudic and Confucian forms both came out of oral traditions, and created genres to represent curated conversation based on earlier conversational layers (I don’t know much about the Confucian tradition but hope Audrey Tang or others who know can chime in).

Of course, the social structure of the conversation is different in these modern forms than in the tradition-oriented Rabbinic or Confucian society. Curated summaries and curators will be accepted by popular acclaim, as measured by references, traffic, list-hood, and other markers of community recognition, rather than a role in a traditional hierarchy. Conversations take place – vocabularies and norms are worked out – within communities. In our modern conversations, the communities will be shaped by self-organization and local governance, rather than by traditional boundaries. Tools to instantiate and reveal these self-organized community boudnaries include socially filtered lists and moderated groups.

There are other differences between the modern and premodern forms. We surely will not maintain the value, in the pre-modern genres, that older sources are presumed to be more authoritative and wiser than newer sources. Our references will be contemporary references and disciplines, not a canon of traditional texts.

Even with these differences, I suspect this is an example of convergent evolution. Curated conversation is a form that that arises when there is an ongoing an conversational discourse and a community of participants who wish to remember the conversation for the purposes of reference in ongoing conversation.

To build on David Weinberger’s points, we tend to think of words as either talk or text – but intermediate genre of a text that represents a conversation, and is itself an artifact in ongoing live conversation.

Are Twitter lists the new blogrolls?

Twitter is gradually rolling out lists, which let individuals create sets of twitter users they follow, and allow others to follow lists. I’m looking forward to the adoption of twitter lists, to all users and to clients, because they will help manage attention when following lots of people and find other interesting folk to follow. But I wonder how long the “lists” will last as a social game- will they stay interesting, or will they become 2010’s version of the blogroll?

In the early days of blogging, bloggers developed a practice of listing their favorite blogs in the sidebar of their own. This was a practice that fostered recognition, making visible community ties (political bloggers would link to those of like persuasion; tech bloggers to other tech blogs, etc) and reinforce emerging status hierarchy relationship (as smaller blogs linked to bigger blogs, but bigger blogs didn’t link down). For a time, blogrolls were the subject of social contention and squabbles about who linked to whom.

But over time, the attention to blogrolls died down. To some extent, this may be due to the weakening of blogs and their linkages as a (very loose) social network with the rise of explicit social networking services, and social messaging which weaves realtime lightweight social links among bloggers perhaps better than anything on the blog.

But I suspect that blogrolls may have died before and regardless of these other trends, because there was another problem – the information was static. A blogger carefully composed a list of their favorite blogs, and then stopped paying attention, while blogs moved, bloggers retired, changed subjects, and the world otherwise moved on. There were tools that made it easier to update blogrolls, but they didn’t help – the fundamental problem is that people don’t update lists.

Today, as Twitter gradually rolls out the feature, early users are making lists to highlight the top people to follow in various categories. Like blogrolls, there are social dynamics – lists reinforce and help create prestige hierarchies. Presumably there will be preferencial attachment, as users who appear on lists will gain more followers, who will put them on their own lists. Lists are a competitive social game, with users competing for attention. The question is whether they will remain and grow in value, or fade like blogrolls did.

Twitter lists have a major potential advantage over blogrolls. If users use them actively to manage their own attention, then they will be motivated to keep the lists current, since non-interesting people will clutter the followers own stream. It will be interesting to see how lists will continue serve those dual roles: managing attention and curating lists for public audiences. Will the criteria for display be the same as the criteria for personal use? Will the very early adopters, who are using lists for display, keep them up?

Also, how will the asymmetry of Twitter lists affect use over time? A list is very different from a group, which establishes mutual visibility among its members – lists don’t seem to foster connection. A user can subscribe to another user’s list, and there is nothing mutual about that gesture. Now, the asymmetry of Twitter’s social model has had wonderful social results, in that it enables the gradual creation of social linkages without the obligation of mutual friending, and therefore helps the network grow and helps people discover others. The asymmetry of lists seems odder – people are seen in each other’s company without any relation.

As I mentioned, I’m eagerly looking forward to the broad rollout of lists – I’ve been “dunbarred” for a while – I see interesting new people often, but it’s hard to follow new people without better tools for managing my own attention. Just personally, I’m less eager for another status game. I care about who’s interesting, not who’s famous, and don’t find it intrinsically interesting to pursue fame. Will there be new social games for lists, or will it be primarily a fame game? (which is compelling for lots of people, just not me so much).

Profile-based social networks hit a wall, because there’s a limited amount of interest in static information, and people tend not to keep them up to date (perhaps more interesting to teenagers who need social self-definition). Streams are much more interesting because the now is always changing.

Will Twitter’s list pass the Delicious Test test of successful social software ecosystems, that it has value for the individual and gains more value with more users? Will it be temporarily interesting, like a blogroll or a profile, or have ongoing interest, like a stream?

Time will tell.

Update: several people have observed in Friday Twitter conversation that the lists people use to manage their own attention are more likely to be private, and the subject-matter focused lists that people use for display will be more likely to be public. If this trend plays out, this makes it less likely that the feature will pass the Delicious test over time, since people will be more likely to maintain the private lists that they need for their own use than the public ones.

Search the conversation

Now that Microsoft and Google are going to search Twitter, how to make that useful? Social search is clearly part of the answer – filtering results based on social proximity, based on friend/follow lists. There’s another piece that is missing – the context of the conversation. In Twitter, conversations are represented implicitly by a series of replies between users. Twitter itself does not show that explicitly, though there are clients that do so.

The thing is, in Twitter, each message is very short, and often depends for context on a poster’s previous tweet, and on her replies to other correspondents. So in order to deliver meaningful results, it would be useful to algorithmically reconstitute the conversation.

The border of a conversation is fuzzy. In the recent conversation between Howard Rheingold and his Twitter followers on multi-tasking, there were a series of back and forth exchanges, that interspersed a bit with other topics. An algorithm would approximate the cutoff points where the topic changes, and the conversation ends.

Then, the search result could be shown in the context of the conversation, and make more sense.

The spark for this post is a conversation between me, Thomas Vander Wal and Alan Lepofsky on Twitter.

Salmon – re-assembling distributed conversations

Salmon is a brand new protocol proposal that promises to solve a problem that’s gotten worse with social media, and has been around since the early days of blogging – the problem of distributed and disconnected conversation. People engage in conversation across multiple tools, and there’s no good way of assembling a coherent view of that conversation.

The problem has gotten significantly worse with social messaging and social RSS readers. Twitter doesn’t even have evident threading (although the reply target is in the metadata). The brief nature of Twitter and FB posts means that a conversation is even more broken up, and conversations often segue back and forth between shorter Twitter messages and longer posts elsewhere. Services such as Disqus provide a workaround for the fundamental problem with the architecture of web conversation.

When a user makes a comment at an aggregator (such as Friendfeed/Facebook or Google Reader), the comment is fed back to the source, and the comment can be re-assembled at the original blog post. Crosspost sharing (the common situation where a user shares a video or song from Youtube or Last.fm or Blip to Twitter or Facebook) is handled by a crosspost reference to the source. Oauth is used to authenticate users and help prevent spam and flooding.

While the use cases underlying the spec appear to be distributed comments on a single blog post, and distributed comments on a single shared object (a photo, video, song, presentation), I wonder whether the same method could even be used to coalesce distributed conversations in social messaging services themselves, where conversations are scattered and organizing them takes significant effort.

Social network visibility
In backchannel conversation about the need to make streaming conversations visible, Adrian Chan had this insight: “til posts refer to other posts there’s no communication system.” Salmon can potentially add the post references, and create a communication system out of today’s disconnected scattering of posts and comments.

If Salmon is adopted in tools and comes into common use, when posts link to posts, there will be a powerful consequence. Not only will the conversation will be visible. The conversationalists will be visible. The conversation flow will be visible. The social dynamic of conversation, which has been hidden in the bounces between services, suddenly becomes traceable. This has consequences for participants – it gives participants a more coherent sense of who’s talking to whom, and enables our primate-evolved senses of trust and reputation to work. It could also enable a new level of social network analysis across services, potentially facilitating content recommendations, search, and consumer marketing analysis.

Conversational curation
One of the things that we’ll find, when the decentralized conversation is suddenly more visible, that aggregation hasn’t solved the problem of sense-making. When the conversation is pulled back together, the result will often be a hairball of inter-related threads. The art, then, will be a process of curating the artifacts of conversation into something that does make sense for participants at the time and in the future. I suspect we will see the re-creation of some editorial techniques developed in some very old instances conversational discourse represented in text, from talmudic and confucian traditions. Just as conversations need “tummlers” to facilitate civil and congenial experiences, the artifacts of conversations will need curators, and curators’ tools to pull them together.

Here’s an example of a Twitter conversationsummarized and curated for folk to share later. The tools for this are very awkward today – manual gathering of each post, poster, and quote. It would be much easier to gather the thread with a gesture and then prune it. Wave on its own, as it is, won’t address the need yet either – replay is time-consuming for the reader, and Wave does’t yet have the curation affordances.

Looking forward to what’s coming next

One of my favorite quotes is Paul Saffo’s “never mistake a clear view from a short distance” – I wrote this post in 2002 and the problem is still unsolved, and has gotten worse. Salmon appears to be a promising approach. There are open questions, including how the approach will scale, the viability of the authentication process, and the adoption by tool vendors. I look forward to reading architectural analysis about how this might work in practice, and look forward to attempts to prove the model out. This could be another powerful step toward the decentralized social network of the future.

Synchronic and diachronic readings of activity streams

The meme of the moment is that online world is moving more realtime. Same conversation, played like Chipmonks Christmas. The anxious worry that Twitter and Facebook will kill cultural depth. Cheerier observers of the same trend see a bubbling flow of friendly social banter, where the compressed time-intensity gives people a sense of shared memorable experience that generates social bonding.

There’s more going on than what’s on the surface. Activity streams are surfacing conversations and information that weren’t seen as easily or as broadly – the much-maligned sandwich tweets that help friends feel connected and let fans see their heroes are human – and serious stuff like earthquake news and updates about critical business facts. With seismic activity on the brain, it’s like volcanic activity is raising an underwater mountain chain so the tops are above the water. You can see peaks above the waves, but the mountains are still there.

There are several important consequences.
* First is the observation that Twitter doesn’t replace long-form blogging but complements it. Twitter headlines draw attention to longer, more thoughtful exposition.
* Second is the related observation that what is surfaced doesn’t need to be something brand new, as Kevin Marks points out. Kevin uses this principle on a regular basis when he cites on Twitter blog posts that were written 3 months, 3 years, 8 years ago. Or for that matter when Carl Malamud quotes Jefferson on Twitter in the context of contemporary policy debate. So, what’s going on is banter, grooming, fire, flood and Michael Jackson, to be sure, but also potentially surface connections to underlying network of much longer-lasting conversations.
* Third is the idea that what’s under the surface can be measured, and the words and relationships that can be measured have economic value.

The most visible time axis in the world of streaming is what’s on the surface. But what’s under the surface is also meaningful and increasingly valuable.

At the one formal class in literary theory I took as an undergrad at Yale – I say one formal class; the ideas of lit theory flowed through the place like the smoke wafting from the cigarettes of undergrads and grad students as they tossed their scarves over their shoulders, and flipped their asymmetric hair, but I digress – the instructor introduced us to the concept of “synchronic” and “diachronic” analysis from the field of lingustics, often pictured as a 2d graph.

Synchronic readings focus on what’s going on at a fixed moment of time. Diachronic readings compare what happens and develops across time. In the world of streaming social media, people are fixating on the synchronic axis, but the diachronic axis is also worth watching.

Why FourSquare drives me bananas – conflicting motivations in social design

FourSquare drives me nuts, because of the inherent conflict between the social and competitive aspects of the social design. A social tool for people who like to go out, FourSquare builds in social incentives – when you attend a venue, the system sends out a message asking your friends to “stop by and say hi,” bringing frends out from the woodwork to join you at a bar or event. At the same time, it has built-in competitive incentives – participants accrue “mayor” awards and various badges for visiting the same venue the most times, and for racking up various types of social activities.

You might think that the diversity of incentives is good, since different users have differing motivations. In the conversation about the use of leaderboards in social software, Kevin Marks referenced the classic paper by Richard Bartle- Hearts, Clubs, Diamonds, Spades – about the different personality types who participate in online games. Hearts are motivated by social connection. Diamonds are motivated by racking up points to “win” the game. Spades are motivated by information and exploration. And Clubs are motivated by motivated by causing trouble and pain for others.

So, if you appeal to more than one type of player, more the better, right? Problem is, there are conflicts between the different incentives. For “Hearts”, the incentive is social. Hearts are truly charmed by the idea that a application can draw your friends from nearby and increase serendipitous chances for meeting. For “Diamonds”, the incentive is competitive. Diamonds want to “win” the game by being the mayor of the most places, and racking up other types of points. In FourSquare, you see people competing to be the mayor of SafeWay – it’s not like anyone is actually seeking to meet up with a friend at the supermarket.

So, for a “Heart” – if someone checks into a nearby location on FourSquare – are they actually seeking to meet up with other friends nearby? Or are they a “Spade” seeking to rack up points, and would they be annoyed by someone stopping by, or even hailing to see if the the checkin calls for visiting? The conflict between the motivations makes my head hurt. I don’t check in very often on FourSquare, since the “points” and making public noise about going out to a lot of places about don’t do very much for me. I contribute to the social game, occasionally, but the ambiguity of it makes the game a lot less fun. I’d much rather send out a hail on Twitter – when I want to signal an open social meetup opportunity, I want to do so unambiguously – whether it’s little or big.

I have no idea how many other people feel caught in the middle of FourSquare’s conflicting social incentives. I just know that the combination is rather awkwardnessful for me. What do you think? Does FourSquare’s combination of motivates work nicely for you, or also drive you crazy?

And from the perspective of social design, appealing to more than one “type” may in theory increase the audience for a given tool/site/event. But care needs to be given that in appealing to one “type”, you are not discouraging other types at the same time.

Social context for distributed social networks

I am glad to see the increased interest and discussion in distributed social networks. And it’s intriguing to think about the ideas described by Om Malik, Anil Dash, Dave Winer and others describing blogs as the home base and source for such distributed social networks. But blogs and individual interests aren’t enough to be sources and points of aggregation.

Social context, I think, will be a critical factor in the adoption of distributed social networks. The vision of a “universal identity”, and full “data portability” sharing everything with everyone, is much to broad, not simply for reasons of privacy, but of attention. It’s in no way a secret when I go bicycling, but only a small number of people will care about my bike routes.

So what do I mean by sharing in social context? Social context is the way that people think about what’s relevant to share to whom. If I have a photo to share from SouthBySouthwest, I want to share with others who went there (or are interested in it). The category of “photos” is too coarse-grained. The category of “friends” vs. “business” is too coarse-grained and in the context of SXSW makes my head hurt. We need to be able to define social context, and then share appropriately in the context.

A key reason why fine-grained sharing has been a failure til now is that tools ask users to make decisions based on content type (who do I want to share videos with) or by broad categories (are you my friend or colleague). (By the way, if you’ve successfully figured out facebook’s system, please explain it to me, I’ve tried and failed). I’ve written before about the need for decentralized profile data as a key piece of the distributed social network. Another key element, I think, is likely to be tagged activity streams. Within a given social context, it becomes pretty obvious what profile fields you wish to share or types of Tweets you want to share.

Fortunately, people already use ad hoc tags to define events and interests, and use these socially-defined tags to aggregate across tools such as flicker and twitter. However, this functionality isn’t very explicit or well-defined, so it’s hard to make it usable or automatable. I think that the practice of using tags to define social contexts, and usable tools to share information in those context, will become important. When tags become valuable, they also attract spam, so a layer of authentication and explicit group definition will be needed when spam becomes an issue.

Summary – if you ask someone what data elements they want to share with whom, in a general fashion, people will give up, overwhelmed. But when tools enable people to share profile information, stream updates, and content in social context, people will be able to make pretty good decisions. Supporting standards, features, and usability to enable sharing in context will help make distributed social networking real.

Tags for ActivityStrea.ms

I’ve been looking at the promising new ActivityStrea.ms proposed standard, based on the existing Atom standard. ActivityStrea.ms promises to enable sharing activity streams across applications. This is a key piece of the “distributed social network” vision, where people can distribute and aggregate their activities across multiple sites and tools.

I was thinking through a distributed community potential use case – and saw what seems to be an item that is missing but easy to add. The current ActivityStrea.ms proposal seems logically based on an assumption that a user would want to distribute or aggregate all of their updates. Or, perhaps choose to share updates based on *type* of content or action – I want to share my blog post updates, but not my photos.

What’s missing is the concept of syndicating or aggregating by *topic*. Let’s say I have a stream of messages talking about web standards, politics, and music. I want to syndicate only music-related updates to a music site. What’s needed seems simple – a way of adding a piece of metadata – a tag – that identifies a given update as a music-related update. Then, I can choose to share only those updates to the music site.

Fortunately, there are ways to represent Tags in Atom – see this representation in WordPress.. So it would be possible to address this need fairly simply, by adding the use of Tag as a recommended best practice for ActivityStrea.ms implementors. No need for a new standard, just leverage the existing one for this new use case.

As the uses of Activity Streams proliferate, and the social contexts in which they are used become more complex, people are going to want to choose discretion about what to share where — not just for reasons of privacy, but for reasons of attention management. Baking in a tag best practice could lay the groundwork for more socially useful Activity Stream sharing.

What do you think? Am I missing something obvious?

Agile social incentives

A poster at Codexon wrote a blog post bragging about the way he took advantage of the points system on Stack Overflow, the programming Q&A site. Reflecting on Adrian Chan’s recent post about the weaknesses of structured, game-like incentives in social media, I more-than-half-expected a situation where griefers were gaming the points system and messing up the community. I found something else instead.

Stack Overflow is a community for programmers to ask and answer questions. It has a detailed reputation system designed to reward participation and high quality responses. For those unfamiliar with the site, the points system well thought out with respect to the behavior it’s trying to foster really geeky, and rewards those who are feel motivated and amused by thinking quantitatively about the ways their constructive participation gains them more status and powers on the site. The design of the site and its reputation system hits all four attributes in Peter Kollock’s taxonomy of social motivations as cited by Joshua Porter: reputation, reciprocity (you can see who responds to whom), efficacy (it’s intended to reward fast and good answers), and attachment to group.

The reputation troll bragged about his techniques for racking up reputation points: answering quickly, regardless of the quality of response; downrating comments that are ahead of you, and using formatting to make your points stand out.

In the comments to the post itself, a good number of commenters called him out for obnoxious behavior, despite the poster’s insistence that he was merely gaming the system for his own entertainment and to point out its weaknesses. One example: “But isn’t that missing the point? I use SO and gathered some (+2000) rep but my main goal is to provide answers to actual questions and not to abuse the achievement system.” It was mildly encouraging in that the comments thread didn’t reveal a throng of trolls outing themselves for self-serving anti-social behavior. But it was only mildly encouraging. The overall tone in the conversation on the poster’s site was one of frustration that the poster is willing to go through the trouble to decrease the quality of information for the community in order to gain an essentially pointless reward.

Even more interesting was the “meta conversation” on the Stack Overflow site itself. There, participants analyzed the troll’s behavior and identified what about the reputation gaming tactics were actually destructive to the community. In practice, posting a quick low-quality response is not that harmful, since other people quickly comment with better quality responses that get up-rated, and the original low-quality comment will float down below the fold. On the whole, adding formatting and images to posts is a good thing, since the visual emphasis makes the content easier to understand.

The one thing that site participants saw as truly harmful was the strategic downvoting of others’ comments in order to have one’s one comments increase in value. Jeff Atwood, aka @codinghorror, the site’s lead developer, commented on this point, saying this is the one thing they are considering changing the algorithm to discourage.

In reaction to the griefer, you can see the community assessing its own practices and identifying an area to improve. The developer with the power to make changes is participating in the conversation and resolving to make changes to protect against the problem. Watching the StackOverflow community react to an antisocial participant suggest something that is as important in a social system as any particular rule or feature – the ability to evolve the rules.

One of the agile practices that the Socialtext development team uses is the retrospective. We produce software in two week iterations. At the end of each two week period the team reviews the iteration – how people feel about it, what worked well, what needs improvement, and we identify items to improve. For example, we observed that the review of stories for the upcoming iteration had a tendency to fall through the cracks. So we tweaked the use of wiki page tags, which serve as a lightweight workflow reminder to identify when a story is in good enough shape for review.

What’s important here is not the specific process we use, or the specific improvement the process, but the ability of the team to reflect, identify a problem, make a change to address the problem, and assess whether the solution is working. It does help to use lightweight tools that can easily be changed, e.g. define a tag that can be applied when a story needs review. Unlike the StackOverflow community, our team does not calculate and display the team’s metrics on an individual basis – we’re striving for team goals to deliver software that meets customer’s needs, when we said we’d do it. So we look at the team data explicitly, and handle individual variance informally. The point is that we have a system to fit the culture, and we can evolve the system to address problems.

So, in response to Chan’s post, it may matter less what sort of feedback system is used – implicit or explicit, numeric or social – and it matter’s more that the community itself is able to change the rules.

The value of interface design patterns

Amy Hoy writes a provocative blog post, “screw interface patterns” arguing that following interface patterns leads to boring designs. The thing is that originality is a primary goal only when you are making art. And even artists – especially artists – rely on some combination of established structure and variation – the genius is choosing what to keep familiar and what to vary.

When you are building software that people use, conventions are especially important. People need to recognize the objects and functions, otherwise they will get confused, frustrated, and go away. If a design element isn’t exactly what users are familiar with, it at least needs to be learnable. A completely original signup pattern might be creative, but it’s probably not good design if your users can’t get in to use your software.

Also, in some cases, the existing established patterns are actually unhealthy. For example, in public web applications, using a different username and password per site, and forcing users to enter usernames and passwords for other sites when using integrated services. In this case, adopting OpenID and Oauth are new good patterns to adopt. A design pattern writeup, in this case, can argue for a new solution in place of an old one.

Unless your goal is to clone another existing piece of software, you’re probably trying to add some kind of new behavior, something different from what exists already. At Socialtext, we do this all the time when we seek to adapt social software patterns developed in the public internet for use in companies and organizations. When you do this, you need to make decisions all the time about what conventions to keep, based on the models you’re using, and what new designs to add. For example, when creating a social network for use in organizations, explicit “friending” doesn’t make much sense – what does it mean to “friend” your boss or colleage. We left it out, and implement asymmetrical “following” instead. A key part of the value of design patterns is to help you think, with some richness and nuance, about the items you want to keep conventional vs. the items you want to vary.

The Amy Hoy article criticizes design patterns as if they were intended to be used like a textbook to cram for a test – learn the answers to repeat in the book. But that’s not the goal of patterns, and I’d argue that if anyone uses them that way they’re doing it wrong. One of my favorite quotes: “It’s not a religion, it’s just a technique.” Design patterns are tools for designers to make their own decisions, not an AI module intended to replace decisions.

I am a big fan of the O’Reilly Designing Social Interfaces project (disclosure: I was a reader of the manuscript, but I was a fan first). Not because I agree with everything in the book, but because I use the material to help assess which conventions to use and which to vary.