[CCC DEV] Build, Editor

Matt Jadud matt at jadud.com
Sat Apr 20 04:00:54 BST 2013

Hi all,

Re: a native build.

I have a new Windows 7 VM, installed the MinGW tools, and started a build,
but forgot Python. I will try and make more progress this weekend. If
anyone has a 64-bit Linux around, and can help Rick with his build
question, that would be great, otherwise, I'll try and set that up, too,
but this is a bad time of the term.

Re: a web-based editor

I have a web-based editor that has the following features:

1. It has real-time collaborative editing, much like Etherpad or Google
Docs. I've currently embedded the Firepad editor (http://www.firepad.io/);
other solutions are possible. So far, I've written code with myself in
different browsers, but I expect it will "just work."

2. It has the ability to load and save files from the local filesystem,
Dropbox, Google Docs, Github, and several other services. It does this with

It is possible to replace #1 with a solution that is completely free and
open. It is more difficult to address #2, but it is obviously possible.
That said, both were easy to integrate and provide a lot of power, so I'm
hoping I can exist in the free tier for a while.

3. A toy (remote) server that compiles code for the Arduino, binhexes it,
and sends it back to the client.

4. A proof-of-concept (local) server/library that can drive AVRdude and
send that code to an attached Arduino. (I developed that last summer, and
used it successfully in the classroom.)

#1/#2 need more work, but can be brought to a good, usable state without
too much difficulty. (This is largely because I'm standing on the shoulders
of giants here.) #3 and #4 are in Scheme, because I can compile it to a
binary on all platforms trivially; only #4 is needed on a user's machine.

What I would like to do:

1. I would like to set up a chroot jail on concurrency.cc, if that is OK
with everyone.

2. Install the toolchain there, under the jail.

3. Rewrite the server side in Python, using web.py or some other simple
framework. (All it does is catch one or two URLs, compile things, and send
it back.) This turns a stand-alone server process into a CGI-based process,
which I think is good.

4. Clean up the client-side component, and bundle it for distribution.

At this point, I think I'd have an environment that lets you write occam-pi
programs for the Arduino collaboratively with friends. All you'd need to
install would be a small, stand-alone server that runs on your local
machine, and invokes avrdude appropriately. This would eliminate the need
for a native Windows or Mac build of the entire toolchain, and make it
easier to update firmwares, libraries, and other code, as it would be
centralized on the server. (I don't need a .deb/.rpm package, or PPA, or
whatever, either.)

Not ideal, but I'm trying to figure out how to support people doing
parallel programming on the Arduino sooner rather than later, and this
seems to be the path of least resistance.

1. Anyone willing to help set up the jail on the server?

2. Christian: if I send you a new SSH key, could you give me access to the
server again. :)

3. If you're excited about Javascript and the like, help finishing the
webapp side is welcome, too.

Any help on this as it moves forward is, of course, welcome. I'm trying to
get my students programming o-pi on the AVR as quickly as possible, without
rebuilding all of our installers. This would also work for members of our
community, I think, as it would eliminate some of the platform issues we've
seen in the past (eg. Java weirdness on new versions of Windows, avrdude
problems, etc.)

Thoughts? Offers to do stuffs?

Currently living at


but I can move it to our team github account, too. And, I need to put a
license on things. And make sure I'm not violating any licenses...

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.concurrency.cc/pipermail/developers/attachments/20130419/d8e5cfda/attachment.htm>

More information about the developers mailing list