Archive for software

concept: the active filesystem

Posted in Appsterdam, consulting, Naiad, Smalltalk, Spoon with tags , , , , , on 17 September 2012 by Craig Latta

The Spoon history memory’s embedded webserver presents the object memory as a WebDAV filesystem. Classes appear as directories, and methods appear as files in those directories. Developers can mount the filesystem so that it appears normally with the other volumes on their operating system. Because of this, they can also use familiar file-based tools like file browsers and text editors to interact with it. When a file is written with one of these tools, the corresponding method is compiled and installed in the running system. Other side effects can be associated with special locations in the filesystem; for example, when a special “do it” file is written, the expressions in it are evaluated and the answer is written to another special file.

This is an example of an active filesystem: a virtual filesystem with behavior associated with its typical operations. Since the WebDAV server is a Spoon app, we have complete control over the way a virtual filesystem interacts with a user. In particular, we can support commodity tools.

I’m making another active filesystem for the InnoViz project in Amsterdam. This one behaves as a general-purpose database. The class hierarchy still appears as directories, but the methods do not appear. Instead, each class can contain subdirectories representing queries on objects in the database. A query directory contains files indicating the code run by the query, and the objects answered by it. Since queries are just another part of the filesystem, they are persistent and can be reused in another queries by multiple authors. This enables a form of collaborative query.

Users need not be programmers in the traditional sense in order to interact with the database. For example, one may add a new object to the database by editing the another object’s file and saving it under a new name. Still, users who know how to write programs can also interact with the database with their favorite language, they only need to know how to read and write files.

I’m looking forward to finding more use cases for active filesystems…

Context 3 beta 1 released

Posted in Appsterdam, consulting, Context, Naiad, Smalltalk, Spoon with tags , , , , , , on 12 September 2012 by Craig Latta

I’ve released Context 3 beta 1. This is another “ignition check” release. On the Mac, the intended sequence of events is:

  • You double-click on the app.
  • The app is an AppleScript which starts an embedded Context virtual machine, which resumes a web server. The AppleScript also opens a web browser on the web server’s welcome page.
  • The welcome page tells you what to do next (but it currently refers to things which don’t exist).

I’m working on the equivalent magic for Microsoft Windows and GNU/Linux for the next release; suggestions welcome.

Please let me know if the startup sequence works for you, and any questions or comments you have. This is an exciting release, because it’s the first one that could be the basis for a self-supporting community.

Thanks!

Craig

%d bloggers like this: