MuZume is a web application inspired by my favorite launcher and power utility Quicksilver. MuZume is unfinished, buggy and only works (sort of) in Firefox; but, when I saw this article about podipodi, I decided to put MuZume out there. MuZume is running in the background of this page, so press CTRL + SPACEBAR to try it out! MuZume does a lot, and it is not documented at all. But, here is a short list of commands to try:
www.tenpow.com
john@johndoe.com
alias
*Hint: press TAB to switch focus between between "OBJECT" and "ACTION"*
You can drag the following link to your bookmark bar to install MuZume and use it anywhere: MuZume.
XaeiOS (MSIL to JavaScript compiler): Senior Thesis - 2007
Enables developers to build JavaScript applications using a .NET language such as C#. The benefit is increased productivity/maintainability due to the better set of development tools available for the .NET platform and language features such as strong-typing. It also features interoperability with existing JavaScript, runtime metadata for reflection, and full support for threading, which includes a set of synchronization primitives.
The key advantages over similar frameworks, such as Google Web Toolkit, Script#, Microsoft Volta, are support for threading and the process model. Among other things, multi-threading provides greater reliability for client side software ecosystems such as iGoogle or meebo - no one widget/gadget/application can lock up the browser. The process model maintains isolation between each running process in the runtime and provides reliable resource cleanup. Another key advantage is the Adobe Flash VM compiler backend. Most applications compiled to run on the Flash VM can run anywhere from 2x to 8x faster. Similarly, Volta and Script# can also target the Microsoft Silverlight VM for better performance.
The key disadvantage is the lack of a runtime debugger. Debugging is currently done using a CLR debugger such as Visual Studio, but no in-browser debugger exists as yet. GWT and Volta both include an in-browser debugging facility. Script# does not.
** 9/24/2008 - I have received more than one message about the performance of the regression test suite in different JavaScript VMs (V8, SFX, TraceMonkey, etc).
You can find a test suite that omits all the functional tests, and focuses solely on performance, here.
Note that these performance tests do not at all fall into the intended application domain targetted by the compiler. They exist solely to identify performance characteristics.
You can browse the source for the regression test suite here.
** The regression test suite runs against the active development build. Failures can occur as I make changes.
You can try the sample AJAX application here. This non-interactive application uses JSON and XMLHTTPRequest for RPC. The underlying JSON RPC framework provides the plumbing for parameter/return value marshalling and exception handling. The server can invoke methods on the client as well. Most of this is facilitated by the runtime reflection APIs.
You can browse the source for the JSON RPC client application here.
You can browse the source for the JSON RPC server here.
You can run try the string ranking application here. This was the first, working, multi-threaded application consumed with the compiler.
Cool fact: This page contains an embedded XaeiOS kernel. It powers the "What have I been doing?" (Twitter) and photo slideshow applications - each with its own, separate process.
You can see the source here. You can click "XaeiOS console" at the bottom of the page to see the process viewer and console. The brave can see the compiled and linked binary here.
Rich client windowing toolkit: Summer 2004
A prototype windowing toolkit written in JavaScript that leverages Flash to render primitives. A demo is available here and another here.
** Works with IE on Windows only and requires Flash 7 or higher
Web-based signature recognition authentication system: Fall 2005
A JavaScript-based signature recognition system built as a project for a Human Computer Interface class at Princeton University. A demo is available here.
** Works with Mozilla 1.5 and higher only