We haven't provided much by way of status updates for a while, so I
thought now would be a good time to do so. Here's what we have been
up to.
-----
The most useful thing that has happened in the past year is that we
got going on building real applications. We've had people outside the
group build real things, but that doesn't teach us enough. So we
built two real applications:
- Continue 2.0, a paper manager for computer science conferences
- Resume 2.0, a job-search manager for academic departments
Both Continue and Resume had been implemented previously in PLT
Scheme; both are now in Flapjax.
Better still, we also had these used in anger. Continue has been used
by several conferences, and you can find it here:
http://continue2.cs.brown.edu/
One of the neat things on that site is the demo. Static screenshots
don't do justice to such a dynamic application; but giving people a
guest account is not very helpful either (the user constantly wonders,
"What do I do next?"). We combined the two with a demo mode which
prompts you for where to click next and guides you through the
software, while still letting you run it for real. The demo mode is
written in, guess what, Flapjax.
Resume was also used at Brown to run a real job search (and a highly
successful one, so if you want lucky software, use Flapjax <-;).
We aren't currently hosting it for anyone else (I doubt any other
CS department would want us having their search data...) but we would
be glad to provide the software to anyone who wants it.
This was done almost entirely by Jacob Baskin.
-----
The process of building these two applications greatly streamlined the
Flapjax implementation and produced some very useful abstractions.
There will soon be a new release of Flapjax itself, and we should also
bundle up those abstractions in their own right.
This was done by Jacob Baskin and Arjun Guha.
-----
We built an intrusion-detection system for Flapjax applications. The
idea (which was first propounded by Wagner and Dean) is to perform
static analysis of the client application and generate a graph of
requests to monitor. The devil's all in the details, but we've been
able to successfully build a monitor for several applications (or
fragments thereof), and even catch some XSS errors.
This was done by Arjun Guha.
-----
We ran a grad course this past spring to investigate distributed data
management issues for such applications. While the course covered a
lot of interesting topics, I can't say as we felt we'd nailed down
anything that is particularly appropriate for Flapjax. Of course
that's what graduate courses are for, but sadly the effect isn't what
we desired. Onward.
-----
We have also investigated how to build better persistent store server
software. Our idea is to take specifications written in Alloy, a
lightweight relational specification language, and automatically
translate these into executables. One neat feature of this work is
that it handles integrity constraints automatically: if a procedure
puts the database in an inconsistent state, the generated system
repairs the database to once again obey integrity. Lots of details
here, and many more to be fleshed out to get past the prototype.
This was done with Danny Yoo, Dan Dougherty, and Kathi Fisler.
-----
This summer we are working either on refining the above or on new
problems related to Flapjax, so I'm hoping that by the end of the
summer we will have new ideas to report.
Special thanks to Jacob Baskin, who was such a big part of last year's
efforts. Jacob has graduated and joined Google. Taking his place (if
such a thing is ever possible), though, is a bright young crop of
fresh students, so look out for more neat things!
Shriram
--
Jaime Vargas
PC MAC S.A. (www.pcmacsa.com)
E. j...@mac.com
T. 301-547-3532
US Address:
19013 Willow Grove Rd
Olney MD 20832
United States
Colombia HQ:
Cra 13a No 86a-84
Bogota D.C.
Colombia
While that is a significantly more long term project, I am currently
playing with bindings for Google gears and an as of yet undetermined
server system for the short term.
- Leo