Let's Get Bizzy

Dan Ingalls Dan.Ingalls at disney.com
Sun Nov 21 17:55:30 UTC 1999


Folks -

>>World Within a World Window.
>>Collecting Recent Submissions to 2.7alpha
>
>FYI, we have two volunteers -- Bob Arning for World Windows, and Dwight Hughes for recent submissions.  Thanks much, guys!

First of all, I want to thank Bob and Dwight.  Bob's first pass (with a bit more from here) is already out in the 2.7a stream, and Dwight is nearly done culling recent submissions.  These both make a real difference.

>This makes me wonder...  Would people like more requests like this?

Several people responded in the affirmative.  So here goes...

NOTE 1:  If you are seriously interested in any of these projects, I suggest that you announce it to the Squeak List in order to avoid duplication (ar at least to be aware of it).  This is important also because I have suggested some of these as possible student projects at various times in the past.

NOTE 2:  This list overlaps the Squeak Projects Swiki pages.  The difference is that it is a selfish mixture of things SqC needs and wants, and some of my pet projects that I would love to kibbitz on, since I'm too busy with other stuff right now (and have been for a couple of years ;-).  It doesn't necessarily address other similarly interesting and important projects that have arisen from the rest of the Squeak community.

Alan has a bunch of other good challenges in a slightly different dimension.  I wouldn't be surprised if he comes forward with some of his favorites to balance this list.

ProtoObject (1-2 days)
We have several subclasses of nil already, with a few more waiting in the wings.  While instances of these classes must not respond to normal messages, things are much more convenient if they do have a small kernel of methods to support generic object maintenance.  So this project is to make such a class, slip it into the class hierarchy above Object (will require some pointer surgery (and don't forget to re-route Object class's superclass pointer)), and incorporate the methods in that are now in all the other subclasses of nil.  It would also be nice to include or point to summary explanations of doesNotUnderstand:, cannotInterpret:, and any other related mechanisms.  This is actually simple, but it has to be done right.

Integrate ThingLab with Morphic (1-2 weeks)
The current ThingLab package consists of a constraint compilation engine and a user interface.  The UI is embedded in an MVC browser, with a fair amount of extra display code devoted to double-buffered display.  If Things were Morphs, then all the UI stuff could be dropped from the ThingLab package, and it would be simple to incorporate constraints into any morphic structure.  Only a few things need to be done:  define attachers in Morphic, and figure out how to cause existing Morphs to respond to attachers.

Fabrik (1-2 weeks)
Get Fabrik working in Squeak the way it should (see original paper).  Fabrik has two parts -- a concrete layout with pin and wire connection scheme, and a bidirectional dataflow engine.  The point of PlayWithMe-6 was to show that the first part, which was hugely complex in the original implementation, could be simple in Morphic -- I did the whole thing in less than a week.  The second part is about a page worth of dataflow, plus an interface to the Compiler.  PWM6 finessed this with change propagation, which can do the job, but it's not very efficient.  There are lots of fun demos that once worked in Fabrik, and I would be happy to advise on how to proceed.

Fabrik UI Construction Kit (1-2 weeks)
Fabrik IS a UI construction kit, but this project means applying Fabrik to the construction of its own widgets.  In other words, once you have a few aritmetic and graphical objects in Fabrik, it becomes possible to build the button, scrollbars and listviews that make up the Fabrik widget library.  An interesting result would be the set of primitive components needed to build all the rest of the morphic UI with nothing but concrete construction.

ThingLab UI Construction Kit (2-4 weeks)
This is the same domain as the one above, but its approach makes use of somewhat more textual programming, and provides a more general model of constraints.  Alan Borning and others have played around with specifying constraints graphically.  This would extend the project, but also , prsumably, enhance its results.

A Practical Text-to-Speech System (2-4 weeks)
Luciano has done some wonderful work in this area, and I believe he is already on this project.  I mention it because he might like help, or you might be interested in extending or perfecting his work when he's done.

Double-Clickable Apps (2-4 weeks, platform details)
There is still strong interest in dropping out Squeak "applications".  Reduced size is a desired property, but the most visible convenience is the production of a single "double-clickable" application file.  What is involved is to graft a copy of the image onto the VM, and, possibly, to allow saving an updated image back into a similar copy.

Squeak Self-extracting Archive (1-2 weeks)
The most immediate application for this is a Squeak self-extracting archive for each platform.  This amounts to building a decompression program as a double-clickable app, and gluing a compressed archive of all the Squeak files onto that.

Obviously, any one can come up with such lists, and you should feel free to do so.  My point in putting this out is to create some possible foci for synergy, with some commitment on our end to help the projects along, and incorporate them in future Squeak releases or associated easily-downloadable extensions (if you know what I mean).

Enjoy
	- Dan





More information about the Squeak-dev mailing list