incubator-esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vassil Dichev <vdic...@apache.org>
Subject Re: Turtles all the way down (or how I learned to love math in computing)
Date Wed, 05 Aug 2009 11:42:32 GMT
David,

Holy tortoise, what have I started? Seriously, this is very
interesting because ESME's focus for a while has been on interactions
where one endpoint is not necessarily a human, and in processing these
interactions. The formula of events and rules for processing them
provides ultimate power by being able to mix and match and even
compose chains of routing and processing transformations. The fact
that you have found an important practical application of this is
undoubtedly exciting.

This power makes it possible to create synergies (oh noes, I'm using
marketing-speak) with other software components. My current company is
using Apache Camel in a project and there are many similarities and
areas where Camel and ESME could work together well. As an aside, the
Camel project seems to be into Scala as well, and it has as a
committer the same guy who stirred some buzz by saying "I can honestly
say if someone had shown me the Programming in Scala book by by Martin
Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never
created Groovy.". I believe that "Beginning Scala" would have done the
trick as well, but I digress.

And yes, the power of composition also means there are security and
stability issues. As another example, it's fairly easy to create an
action by accident, which recursively generates events which apply for
the same action and loops, flooding the timeline with messages.

It seems that most of the important features which were a personal
itch to scratch in ESME are already in place. This means that after
squashing a couple of bugs and documenting I could conceivably refocus
on G2 (but I do want to know more details) and let the UI masters work
their magic.

There's one major thing, which I'm currently working on and want to
get done. It's related to the vision of easy discovery which was one
of the inspiration for ESME an year ago. To continue with the animal
analogies, what's hot about Twitter trends is one of the things which
has made bees successful for millions of years. When a bee finds a
more suitable place to relocate the nest, it comes back to the colony
and dances a little dance, which describes how to find the place.
Other bees would randomly get convinced by the dancer and go out to
explore this place of interest. If they find it worthwhile, they would
come back and do the dance themselves. Eventually, when enough dancers
appear in front of the bee nest, the swarm would decide where to
relocate. Thus the collective mind would find out unerringly something
which no individual bee knows with certainty.

If we replace bees with humans and bee dancing with retweeting, you
have the exact same model which makes social networks so popular. Bees
retweet messages. We could get much more useful knowledge if we
aggregate the information. This is what drives Amazon recommendations
and Google suggestions. In the context of ESME we are using aggregated
information in tags, but we could learn much more.

I am currently trying to implement a simple actor collecting
popularity statistics of certain events in the course of a certain
time period. My current idea is to use it for tracking popularity of
resent messages (retweets) and links clicked- we can easily do the
latter in ESME, since there's an embedded URL shortener service, which
redirects the request.

In the context of David's suggestion for assembling custom
applications, sorted collections of data also make sense. Being able
to create a rule, which collects statistical information is quite
valuable for time billing and project management. What have I spent
most time on? What are the most resource-intensive projects? Which
projects have the biggest gap between available and necessary
resources? To get back to databases, sorting and aggregation functions
are important selling points of databases.

OK, that's enough rambling for one day. Does any of this make sense?

Have fun,
Vassil

Mime
View raw message