Friday, November 26, 2004

Filters and Tasks in Croquet

I have started writing my C5 paper and I have found some very interesting related papers. Probably the most interesting is a Xerox PARC paper from '93: Toolglass and Magic Lenses: The See-Through Interface
written by Eric A. Bier, Maureen C. Stone, Ken Pier, William Buxton, Tony D. DeRose. From the abstract:

"Toolglass(TM) widgets are new user interface tools that can appear, as though on a transparent sheet of glass, between an application and a traditional cursor. They can be positioned with one hand while the other positions the cursor. The widgets provide a rich and concise vocabulary for operating on application objects. These widgets may incorporate visual filters, called Magic Lens(TM) filters, that modify the presentation of application objects to reveal hidden information, to enhance data of interest, or to suppress distracting information. Together, these tools form a see-through interface that offers many advantages over traditional controls. They provide a new style of interaction that better exploits the user's everyday skills. They can reduce steps, cursor motion, and errors. Many widgets can be provided in a user interface, by designers and by users, without requiring dedicated screen space. In addition, lenses provide rich context-dependent feedback and the ability to view details and context simultaneously. Our widgets and lenses can be combined to form operation and viewing macros, and can be used over multiple applications."

These ideas were applied to 3D spaces in this paper: 3D Magic Lenses by John Viega, Matthew J. Conway, George Williams, and Randy Pausch. This does a nice job explaining the visualization capabilities of a both a 2D magic lens in a 3D space and a 3D box lens - that is, the contents of a box are rendered differently than the elements outside the box. The also cover the WIM - world in miniature concept that we implemented in Croquet.

The major additions we have are in the model of interaction - that is using these objects as toolglasses as described above, and in managing them as part of a collaborative system. Further, I think that this UI model is exactly the right way to create complex applications in Croquet.

Wednesday, November 17, 2004

Wicket in Python

I have decided to write the Wicket editor in Python. There are a number of good reasons for this:

- We need to have a number of alternative languages available in Croquet. It would be a shame for people to get turned off of it just because they don't want to learn Smalltalk.
- This is a forcing function for us to get the Python compiler done so that I can begin work. Andreas thinks he can have it by Monday.
- I don't know Python. For some reason, I don't seem to have much problem switching languages, as they all are pretty much the same to me with slight differences in syntax. APL is a bit different, but since it was my first real language it seems quite natural to me. In fact, I really miss it's array/matrix handling.
- It would be nice to have a substantial application running in Croquet in another language as part of the demonstration of the systems capabilities.

The Wicket architecture is going to be really neat. It is the first application that will utilize the Replicant/Interactor/Task model and the new UI that we have come up with.

Sunday, November 14, 2004

To Do

There are still a few major gotchas in Jasmine that need to be sorted out before I jump into the Next Big Thing. This list is far from complete, but at least you can see what I am looking at doing.

- Removed TObjects do not go away sometimes. The reason is they may be sending themselves future messages, which in turn send future messages. Hence, these loose objects are hanging around simply by keeping themselves in the future message queue.

- The Wicket CAD system is in bad shape. For some reason, the corner handles are in the wrong place.

- Sometimes, when we first connect, an error occurs because before the connection, we are sharing the same TAvatar. The complicated thing is that this avatar is removed from the scene graph but doesn't know it yet.

- There is a very noticable performance hit sometimes after we connect. Andreas just upgraded the MessageTally system so that I can better track where our time is going.

Hope to have these figured out in the next day or so.

Thursday, November 11, 2004

Broken Collaboration

We currently have a bug in Croquet where if you are connected to a group of peers and bring up the pop-up button menu, if you click on the top left x to make the pop-up go away, the remote parties get an error because they do not have this object. The pop-up is not a replicated object, hence the meta message that gets sent has no where to go. This is where the TeaTime architecture will be required. In this case, all of the overlay objects will be placed into the users personal TeaParty - hence it will not generate any replicated messages. Until this is in place, we will probably have to ignore messages that are sent to non-existent remote objects.

Monday, November 08, 2004

I am really back

Back from Boston where I met with Andreas and David R for a couple of days. We made significant progress in planning for the next major steps in Croquet and in understanding the nature of the dichotomy between TeaTime and the meta architecture - why one approach seems to be better for some things and the other approach seems to be better for other things. This understanding led us to a very useful insight that will have a direct impact on the nature of the architecture moving forward. I will attempt to discuss this further later on.

I am also back from being really sick. Today I feel -almost- normal, so I hope I can catch up on my work. My wife points out that this never happens. No matter how much I get done, I always feel like I am behind. Oh, well...

So the major tasks in front of me at the moment are:

- Enhance Alan's demos for the Kyoto prize. I need to get this done by Wed. Preferrably get it done today.
- Write the C5 paper. This is due on Nov. 15. We just decided on the topic on Friday and I need to actually write some code for this.
- Build Wicket 2. This is part of the C5 paper, but is more important to have for the actual talk in January.
- Debug Croquet. There are a lot of things that need to get done there.
- Minimal Croquet Documentation. This will have to wait a bit, as I have more pressing matters (I know you all hate me for saying that, but there it is...)

At least I feel better now, so I can get this done. I didn't get anything accomplished except for the Boston discussions last week.

Onward, onward...

Tuesday, November 02, 2004

Been sick - gettin better

I haven't posted for a while since I have had a terrible respiratory problem. I think I picked it up on the way to Vancouver. I am slowly getting better, but haven't had much energy to do much more than listen to CNN. Today I started coding again, but tomorrow I fly to Boston to work with Andreas and David to plan for integrating TeaTime as well as prioritize a number of other missing pieces of Croquet. Should be back to normal soon.