Archive for the ‘Product Ideas’ Category

I’ve always wanted some simple ‘personal relationship manager’, i.e. the problem is that I’ve got friends and acquaintances I want to keep up with – but I am lousy at reminding myself to follow-up when I don’t see them regularly. I want a way to:

get a dashboard that shows me what’s new with people in my social networks

organize the dashboard based on some heuristics on what social networks are more important than others (e.g. ex-Excite people, current co-workers, etc.)

default and customizable alerts to notify me

when it’s been a long time since I communicated with someone

when something about those people or their company has changed

a single place to view and edit some basic info on a person (e.g. notes)

all based on an understanding of my social networks (e.g. declared social networks like LinkedIn, Facebook, twitter and implicit social networks like email)

How to solve this? Up to now, I’ve thought about ways to augment my email, i.e. using my email history and address book. From the looks of it, Xobni does something similar with Outlook and there’s chatter they may do this eventually for hosted email (e.g. gmail). However, last night I realized that (for the moment) much of what I care about could be in LinkedIn. Surely someone has solved this via a LinkedIn application… Unfortunately, no, e.g I didn’t even find any way to keep notes on other people in my network. No problem, I’ll write an application… but right away their stance isn’t encouraging. While their wording does not encourage me to take an exploratory run at something new on LinkedIn, I’ll apply and see what happens.

Ok, so why are my friends and co-workers noticing my minor obsession about CouchDB? There’s a few reasons. First, I have a long-term unlove-affair with RDBMS. Why?

I started off working in the UNIX kernel (V6 anyone?) and there’s no stinking databases in there… just some filesystem stuff

After learning and using C, I jumped to Smalltalk and like a newborn duckling, I was imprinted by the Smalltalk view of the world – which forever set my idea about persistent data + behavior.

Along the way, I bumped into Thomas Malone’s work on Object Lens and OVAL – which further evolved my thinking about collaborative work, semi-structured data and toolkits to enable end-users to compose their own tools; incuding the notion that not every object needs behavior- sometimes it’s just data (e.g. the archetypical business card is just some useful semi-structure data).

And finally – the cognitive dissonance between the relational model and the common OO / prototype-based languages / domain models was constantly bothered me.

Yes – I know they’ve been effective and have benefit in lots of scenarios, however…

Secondly, for a piece of ‘middleware’, CouchDB has great elegance and great congruence with the bevy of potential uses, i.e. it appears to afford us the possibility to think about our problem/solution domains and our softwares internal models in in very similar fashions – with some very interesting beneficial side-effects (e.g. eventual consistency, availability)

And finally, there’s some rumblings of a new application model all together – reminiscent of the agents buzz from over a decade ago, i.e. Chris Anderson’s Sharable apps – where a CouchDB instance is sufficiently capable to become an application platform and that via the synchronization model, multiple instances of an application could run in a distributed & isolated manner and then synchronize and migrate as needed to different environments, i.e. run locally on laptops and sync and migrate up to centralized servers and then back down as needed. Instead of a rigid & pre-defined deployment structure, it’s more of an organic ‘shape’ adjusting as needed. If this is a new degree of freedom, the potential is huge.

So, while I’m looking for the right opportunity to try some of these ideas out – I’ll continue this minor obsession and see where it leads.

I think that my recent purchase of the iPhone has tipped the balance in quandry I’ve had.

It goes something like this: I’ve wanted a better tool to manage my professional relationships (something I’ve been thinking of as a personal CRM). As a result, I’ve been looking for what Mac apps fill that niche – and there are some nice candidates (e.g. Contactizer, Daylite, even Crm4Mac). At the same time, I see web-based solutions as well (and here’s the ‘in the clouds’ part), such as Highrise, Etelos, even a customized SugarCRM.

Unfortunately, none of these has the right set of features – which would have closed the deal and locked me in (either as a source of recurring revenue for the SaaS solutions or as a grateful customer for a Mac app)

At the same time, it’s itched my concern about whether to committee further ‘down’ into my local box with a Mac app or ‘up’ into the clouds with a web app.

All that leads to this – now that I’ve used my iPhone for a few days, and I’m successful at doing some of my basic tasks on it (e.g. reading blogs, web pages, email) it’s tipped the balance ‘up ot the clouds’. In other words, with no clear feature leader, I will make a solution work that’s an SaaS so that I can use it on my iPhone whereever and when ever I want.

So if vertical social networks become popular, then the horizontal problem becomes intestering, e.g. how to manage one identity across multiple services. OpenID provides authentication, but nothing beyond that. What about profile data ala Google’s form-fill?

How? Consider this – if an OpenID enabled set of tools existed to extend OpenId so that when you registered, a plugin (ala greasemonkey) would run to take your OpenID related profile data and place it into the registration.

It would require a community of trusted “registration plugins” to be created that used your augmented OpenID data.

Nice tool, nice example of using Firefox as a platform, and nice example of how small ideas are proliferating: Firedoodle …

is a Firefox Add-On that allows you to mark up any page as if it was projected onto a white board. You can download the plugin at Firedoodle.com and if you register an account, any highlights you created can be saved (and later shared).

Patterns in Oggidigaw – using the notion of events with their attributes of who, what, where (spatial), when (temporal) and how (causal) – as a type of data model for representing patterns.

What’s beyond objects: the notion of object-orientation has some strong limitations, one of which is the representation of time. There’s some useful thoughts here about what paradigm is beyond OO – is it event based (which by virtue of the what attribute may embrace and extend OO).

Some of the assumptions that drive shared information and the shared concepts that underly them:

There exists cognitive patterns (also called processes, structures, templates, metaphorical structures, relationships, frames, cognitive models, etc.) that are repeatedly used across across a variety of contexts, i.e. disciplines, domains or fields.

That there is no single body of knowledge that explicitly captures and specifies these patterns and their related contexts, and by implication there is no discipline which owns them.

That more often than not, we are unaware that these patterns exist and that we use them.

And most importantly: that there is some (as yet unrealized) benefit to the intentional reuse of these patterns, and their relationships to contexts.

As with many computerized things, I’ve been frustrated with the commercial state of the art for software to manage information, especially personal information for quite some time. Let me provide some context to better explain.

While I’m often challenged to explain what I do, I can say it involves doing all sorts of actions on information (e.g. creating, manipluating, reasoning with, etc.). Much of my effort is in support of goals in the domains of software engineering or psychology. Given that software engineering by necessity deals with well structured sets of information, (e.g. programming code, design models, architectural models) it’s a natural place to look for mature information managment tools. In addition, there’s a healthy industry around supporting software engineering. Yet despite this, the level of tools for managing informaiton specific to software engieneering is very immature. If you look more broadly, the commercial state-of-the-art for information management is even worse.

How is information management immature? Usign the following scenario, let’s look at some gaps.

Bob is responsible for capturing informal natural language information (e.g. the beginning of the a set of software requirments) and over time hea nd others will transform it into formal models that for use by different types of audiences (e.g. users, customers, software designers, user interface designers).

What are some of the actions Bob and others will want to do with this information? Consider the following:

Refine something, i.e. take a whole and identify it’s parts. This process is very At any point, he’d like to understand relationships b
There’s an interesting process that (it’s theorized) we go through when categorizing something. As I model it, it includes the notion of distinctions: e.g. how many Essentially, the boundary of categorization is crossed when we begin to recognize distinctions. An oft used example is snow – while someone from the southern United States may have one word for (and implicitly no distinctions for) snow, an