Brain Dump #1

Steven H. Rogers, PhD. <>
Sat Feb 8 14:38:14 CET 2003


Joe Armstrong wrote:
>...
>   I read  all the books (one per  subject) - all these  things had the
> same  property - they  were high  on features  (i.e.  they  did useful
> things) - but the internal representations and algorithms were not (to
> put it politely) beautiful.
>
>   I   thought  to   myself   -  any   of   the  things   they  do   in
> zope/jabber/blogger we could do *much* better in Erlang.
> 

Concur.  I find Zope compelling as an idea, but think an Erlang 
implementation would be more robust and scalable.

> 
>   Here's what I'd like to do:
> 
>   1) Merge together zope+jabber+blogger into ONE framework
> 

Yes!  BTW, there is activity to integrate the Jabber and Blogger APIs 
into Zope.

>      Why do this:
> 
>      Jabber is about instant messaging - 
>      Zope is about content management

Mostly, but Zope is also a web appication development platform.

>...
>   I once started on a system I called "things that do stuff" - the idea
> was to extend the idea of e-mail.
> 
>   Again you can send e-mail to a person, but not to a web page, or an object.
> 
>   I was thinking about things like booking rooms for meetings -
> 
>   My can't you send the following email to a room
> 
>    mailto 
>    subject: booking
>    Can I book you next tuesday between 12 - 14?
> 
>  And get a reply
> 
>    mailfrom: 
>    subject: booking
> 	
>    Yes
> 	/have a nice day
> 	your friend the room :-)
> 
>  Why can't I send email to a web-page
> 
>   mailto: www.sics.se/~joe/talks/this.pdf
>   subject: typo
> 
> 	you mis-spelt "program" in line 22 
> 
>  And get the page to correct itself -
> 
>  Why can't I get an instant message when a data base is updated?
> 
>  Why do we have separate worlds for managing content/instant messaging/
> and non-instant messaging.
> 
>  I'd like to *combine* these three.
> 
>   Our world has  active objects (servers) we can  send them messages -
> or instant messages.
> 
>  << a message is like email - connect to the server, send the message,
>     disconnect. An *instant message* is like MSN or Jabber, connect to the
>     server and *stay* connected >>
> 
>   Our servers have state and are connected in a peer-to-peer network.
> 
>   We can change content - by sending tagged messages to objects in the
> servers.
> 
> << I'd like to things like webdav, irc, file transfer etc. all done
> using pure erlang communication. By which I mean, you *only* send
> things like:
>   
>    gen_tcp:send(Socket, term_to_binary({get_file, F}))
> 
>    No XML - XDR - anything just binary encoded erlang terms
> 

For internal use, I agree, but despite it's flaws, XML is widely used. 
Supporting the Jabber and Blogger protocols would help to win over a 
critical mass of users.

> 
> A while back I wrote a "undedicated daemon" - this is just a daemon that
> does nothing - to this basic infrastructure I could plug in a web server
> of an irc server etc.
> 
> Luke and I chatted using once (or was it twice) - I'll turn this into
> a tutorial.

Please do.

> 
>    2) Use the framework (the one above) so solve some worthwhile projects
> 
> I three pet projects - which are all bubbling along (slowly) - and I'd love
> volunteers to help with these. I'll call them
> 
> 	- store
> 	- find
> 	- publish
> 
> Once they work we can glue everything together and make
> a nice electronic newspaper :-)
> 
> 
> I'll briefly explain:
> 
> 	store
> 	=====
> 
>   Each machine should  have a data store. When  you put something into
> the store it remains their *forever*
> 
> << In the back of my mind *store* is a peer-to-peer backup system.
> - "you can use my disk if I can use your disk" - I use a variant of
> store between home and work for backup purposes -
> it involves an rsync server and a chrontab job ... >>
> 
>   If store worked properly we could *eliminate* backup.
> 
> 	find
> 	====
> 
>   I want  to index *everything* I have  every done so that  I can find
> it.

This is one of the things that attracted me to Zope.

> 
>   I want *every* document to  have a GUID (globally unique identifier)
> - If I know the GUI I want to be able to find the document.
> 

This is another attrative feature of Zope.

>   I want  to index every  document (ideally, when  I add an  object to
> *store* it would  be automatically indexed - I have no  idea how to do
> this -  has anybody  got a  good "abstracting" algorithm  - I  need to
> extract  information   bearing  words  from  a   document  and  remove
> non-information bearing words ...)
> 
>       publish
>       =======
> 
>   Goals make *beautiful* documents from text input (which might be XML)
>         make *beautiful* GUIs from same language as the above.
>   
>   I  want to  create *beautiful*  documents and  GUIs from  the *same*
> layout abstractions - I'm  thinking display postscript/PDF for documents
> and GUIs - so  far I can create PDF *directly* from  XML and have been
> playing with freetype to get nice anti-aliased fonts on the screen.
> 
>

Essentially, you're proposing Zope "done right", or at least better with 
Erlang.  This is a wonderful idea, and I'd be interested in participating.

I've played around with Zope a bit, and while I like the things that it 
does, I'm not happy with the implementation.

Mitch Kapor is doing something similar to what you're proposing with his 
Chandler (Interpersonal Information Management) project: 
http://www.osafoundation.org/architecture.htm  He and his group have put 
a lot of thought into this.

Steve
-- 
  _    Steven H. Rogers, PhD.
<_`   email: 
|_>   Weblog http://shrogers.com/portal/Members/steve/blog
| \   "A language that doesn't affect the way you think about
       programming is not worth knowing." - Alan Perlis



More information about the erlang-questions mailing list