Friday, October 22, 2004


I managed to force Scott's Gallery Builder into the Jasmine image. It's a little bit crippled by my pattented "hack off any code that generates an error" approach, but it is still functional. Yay! Now to get it talking to Croquet. I had this working back in August, with Solar, so it should go pretty quick...but not probably not quick enough for our Citris Corporate Sponsors Day presentation on Tuesday. Ah well, one last chance to show off the cute Citris Alien from the Torque engine.

Squeak Change Sets

Scott has explaned to me why his change set could not be filed-out and then filed back in. Turns out there are timing issues with his change set & he had to hand edit his .cs file before it could be filed-in. I guess B1llG must be right about my naivette, because I find this new bit of information horrifying.

Scott also gave me an overview of the steps that would be needed to get Jasmine working in the 3.7 image, and it is pretty hairy, and not even possible unless I get currently unpublished bits from the Croquet dev team. So it looks like I need to continue hacking pieces out of the Gallery Builder until it will work under 3.6. Scott gave me another clue there too: the 3.7 image automatically calls initialize on objects when they are new'd...which Morphs do in 3.6, but non-Morphs do not.

Thursday, October 21, 2004

Merging headaches

Looks like I was asking the wrong question last week when I asked about running Jasmine under the 3.7 VM. As everyone said, that is no problem, the Jasmine image runs just fine with the 3.7 VM. But Scott's code relies on infrastructure in the 3.7 image, not the VM. Infrastructure which does not exist in the Jasmine image. Oops. So, I spent today alternating between:

  1. Failing to get Scott's code running in the Jasmine image. I was able to chop out most of the references to horizontal scrollbars, but ran into an unknown message that I cannot track down.
  2. Failing to get Jasmine to run in Scott's 3.7 image. I thought doing a file out on all the Croquet catagories might work, but the Croquet image has changed some of the basic Squeak syntax rules to allow calls like gl glVertex(0.0, 0.0, 0.0), and I don't know how to get those changes into the 3.7 image. So I just get lots and lots of syntax errors.
  3. Being really really surprised when I did the following: file-in one of Scott's .cs files, immediately file-out it, then close Squeak w/out saving, reopen Squeak, file-in my new .cs file and presto - a stream of errors. I don't know if this is a bug in Squeak, something really weird with Scott's change set, or, more likely, my mental model of how change sets work is completely wrong.

Tuesday, October 19, 2004

We're going for it

Not yet fully blessed by the powers-that-be, but it looks like we are going to push ahead with using Croquet as the technology behind our IT & Humanities project. It's been a tough choice (and one I know I still might live to regret), but Croquet wins out by: being open sources; having a vision that is closely aligned with ours; and seeming to be on the road to developing a vibrant user community. Fingers crossed.

First step is to get Orion up to speed on Squeak. The cursing you hear in the background is him learing the new keyboard combinations. Not that I am much farther along the learing curve than he is. Scott spent the summer teaching me to become one with Squeak, but my instincts are still java/perl/c++ based. Right now I am tweaking Scott's UI on the Gallery Builder to suit my more Window's flavored preferences.

The goal is to replace Torque in our demo by the end of the month, in time for our next meeting with the Stanford Humanity Labs folk.

Interesting things to try:
  1. File-out'ing the Jasmine code and running it in the 3.7 image, with the Gallery Builder.
  2. Putting the Gallery Builder into a project and openning it inside of Jasmine. This will be amazingly cool if it works.
  3. Writing some SUnit tests.

Community Developements
  1. Julian has a blog. Yay!
  2. The Squeak guys at Georgia Tech have set up a Croquet wiki. I suspect this will become the defacto offical one.

Thursday, October 14, 2004

Reminders & torrent

Need to remember to talk to David S about his blog post: Walkthrough in Croquet - this seems very closely related to what we are trying to do with our Gallery Builder.

Also, need to figure out how to persist changes to a world. SolarCroquet could save images with a running Croquet window, TeaTime could not...according to the wiki, Jasmine is like TeaTime in this regard, but I need to confirm for myself. Also examine the export & import functions...I believe they are used for caching models, but maybe that can also save an entire space.

People are definately interested in Croquet. In 48 hours my torrent has uploaded 35 copies worth of data to other downloaders.

Wednesday, October 13, 2004


My last post mentioned Takashi Yamamiya's blog Squeak Everyday, which served as the final bit of motivation to get me to start blogging my Croquet experiences (which I wish I had been doing over the summer - I think if I had been expressing my problems a bit more publicly we would have resolved the communication issues much faster). Anyway, more important than inspiring me, Takashi's blog also inspired David Smith, Croquet's project lead, to start his blog Croqueteer. I think this is great way to communicate. It helps build up a sense of community, and I know that it is a real comfort to those of us building projects on top of Croquet, to have an idea of what the dev team is thinking about.

I found out about David's Blog on the page of Croquet links Julian Lombardi (U of Wisc) is putting together here. I have asked him to put a link to this blog up there too...which makes me nervous, but I figure if I expose my ignorance to the world I will learn the truth faster.


Well, my day two impressions are mixed. Jasmine has lots & lots of bugs. Seems like I cannot go for more than minute without doing something that pops up one of those cute debug dialogs. But, they are doing an amazing job of responding to bug reports and fixing things ("They" being David Smith, Andreas Raab & Mark McCahill). They fixed one of my bug reports within 12 hours. This is exactly why it was so important to me (and them too, I am sure), that they get out a public release. A small group just keeps repeating the same tests.

They could use some automated tests to help avoid regression thou. Takashi Yamamiya mentions in his blog entry that he got a Croquet Unit Test runner working with TeaTime (which then changed breaking his code) and that he has started porting all his work over to Jasmine. Very exciting.

I am told that Takashi (a core squeak developer) is working on a Croquet game project, Chain Reaction, with Yoshiki Ohshima (ditto re: squeak, out of U of Kyoto) & 3DSolve (a North Carolina simulation and learning software company). I should find out more about this project.

Tuesday, October 12, 2004

Jasmine under Squeak 3.7

Good news from the mailing list. Jasmine should work under Squeak 3.7. That is good for my project, because over the summer we had a squeak contractor (Scott Wallace, one of the original Squeak developers, and all-around good guy) build a great 2D gallery construction tool, which uses some 3.7 specific tools.

This is potentially doubly good, since the reported lack of upward-compatability has been a concern of mine about squeak in general. I suspect I have not fully grokked the relationship between an particular VM and a particular image.

Jasmine: First Look

This blog will be about my experiences evaluating the Jasmine release of OpenCroquet (ie: The Croquet Project) for the CITRIS IT & Humanities Project. I am just relating my impressions & observations, in no way to I speak for the Croquet development team.

I first attempted to evaluate a pre-release version of TeaTime 4 or 5 months ago & found it unacceptably fragile. I then spent some time with SolarCroquet, which had been used for creating all the demos that the Croquet team has been showing for the last year. I found solar a little rough, but basically stable, and a joy to use compared to TeaTime. Unfortunately work on Solar had stopped in preference to TeaTime, so the odds of ever getting the bugs that were in Solar fixed seemed slim. I decided to evaluate other approaches.

Fast Forward to now. The Croquet team has wisely decided to split their efforts: TeaTime has become MadHatter, and continues as a research branch; SolarCroquet has been brought back from the dead, gotten all the TeaTime advances that can be safely backported to it, polished considerably and just released to the public yesterday as Croquet0.1 aka Jasmine. Very exciting. The plan seems to be to ripen the advanced networking features in MadHatter, and move them into Jasmine once they are stable, while attempting to maintain upwards-compatibility.

Honestly, the most exciting change I have seen so far is that a week ago the dev team started using a bug tracking system. This shows that they are serious and it is a great way for the rest of us to see what they are working on, their rate of progress, etc. The U of Wisc guys have also set up a Croquet wiki (croquet/any0ne to access (0=zero)), which is a great idea, but so far no one is using it.