Erlang on LLVM? or: Outsource your JIT!
[info]chanson
Has anyone been working on using LLVM to do just-in-time code generation for the Erlang virtual machine?

Depending on the design and structure of the Erlang virtual machine, it doesn't seem like it would be all that tough a project. And it could provide a nice performance boost for those projects that are starting to use Erlang like CouchDB and ejabberd.

For an example of what I'm talking about, there's a project called VMKit that has implemented the Java and .NET virtual machines atop LLVM with reasonable performance. Essentially, if you have a virtual machine, rather than skipping either just-in-time or static code generation entirely, or trying to do it all yourself for some specific platform on which you want to run, take a look at what you can do with LLVM and see if you can leverage its code generation instead.

Why is Twitter not just Jabber?
[info]chanson
Twitter is a way to post a short message to a wide group of subscribers, and to receive messages posted by a wide group of subscribers.

That's instant messaging. There's already a standard protocol for it: Jabber (XMPP).

Why not just use it? Why invent a new protocol?!

Actually, Twitter already does have experimental XMPP access to the full timeline — rather than to individual timelines, or to your friends' timelines — and you can use it to build things like TweetMaps and TweetClouds and Quotably and…

But Twitter should really be built entirely around XMPP. It shouldn't be a web app at all, though it could certainly have a web front-end. In case you doubt me, here's an example Twitter-like service implemented by Process One atop the ejabberd XMPP application server.

OLPC chat bug (and fix)
[info]chanson
One thing that became apparent as I tried out the collaboration features is that there's a bug in the Chat activity on the OLPC. As you chat, it will continually scroll to the end. It's very easy to fix though, just follow the directions here.

Furthermore, if you actually take a look at the fixed chat.py you can see a little bit of what goes into an Activity in Sugar, the OLPC human interface and high-level software stack.

Trying out the OLPC collaboration features with xochat.org
[info]chanson
The collaboration features on the OLPC use the Extensible Messaging and Presence Protocol (XMPP) — otherwise known as Jabber — to manage presence. There's an overview of the entire collaboration stack on the OLPC wiki under Shared Sugar Activities.

Essentially, what this means is that as long as there's a properly-configured Jabber server that you can connect to, you can find other OLPC users and interact with them over the network. Tom Hoffman graciously set up just such a server at xochat.org, and I've talked with a few different people there and visited a shared document.

To tell your XO to use the xochat.org Jabber server, you can just open the Terminal activity and do the following:
$ sugar-control-panel -g jabber > ~/old-jabber-server
$ sugar-control-panel -s jabber xochat.org
That will save your old Jabber server in the file old-jabber-server in your home directory, and tell the system to use a new one. However, the system won't automatically update itself after this change; to do that, you need to hold down the alt and ctrl keys, and press erase to restart the interface.

Once you've told your OLPC to use the xochat.org Jabber server and restarted the interface, you can just press the Neighborhood button — that's the circle with a ring of several dots in it — and you'll see everybody who's using an OLPC with that server. You can create group chats, share documents, and use all of the OLPC collaboration features because all they really require is a way to locate the users you want to collaborate with. The higher-level software on the OLPC will take care of the rest.