BookMorphs and Compatibility -- looking for advice (was Re: [UPDATES] several more for 2.7)

Mark Guzdial guzdial at cc.gatech.edu
Mon Dec 13 15:16:59 UTC 1999


I waited out updating with the 2.7a stream until the new environments 
stuff was shaken out a bit, so I just updated to 1716 this morning -- 
and it went great!  I created some stuff, filed in old stuff, and 
found no problems at all.  I was concerned from the previous email 
that I was going to have to document new kinds of dialogs when doing 
simple things like creating class categories, but I was very pleased 
to see that the Environment mechanism seems invisible from a novice 
perspective.  YAY!  Great job, guys -- it's nice that such a dramatic 
change under the hood isn't impacting the Student Driver behind the 
wheel!

The reason that I updated today is that I'm starting to produce 
BookMorphs this week for my Squeak class starting in January, and I'm 
trying to decide how and where to build them.  I'd already tried 
building in an earlier version of Squeak 2.7a and then opening in 
Squeak 2.6, but that was hopeless -- I kept getting error notifiers 
that classes were redefined.  So I tried the reverse this morning, 
hoping that BookMorphs might be more easily forward compatible.

Here's what happened (trying to treat this as a novice experience):
- I created a three page BookMorph in 2.6 with various things 
(TextMorphs, SketchMorphs, JoystickMorph, BouncingAtomsMorph) on the 
pages.  I saved it all out to disk.
- In 2.7a (update 1716), I opened the BookMorph from the FileList. 
First page came in just fine.  Then I turned the page.
- I was told that AlignmentMorph had changed, and I could find or 
write a conversion method.  I click on Write, then an additional 
error notifier popped up that "Object did not end correctly."
- I abandoned the error notifier. A method browser popped up with a 
strangely-named conversion method.  I decided to just leave the new 
conversion method as it was, and closed the browser.
- I went back to the book and tried to turn the page again.  This 
time I was told that "An object is being loaded for a second time. 
This should not happen." I decided to "Proceed normally."  From then 
on, things went just fine.

That's a lot of notifiers and windows to go through in order to turn 
the page.  I'm glad that it did work just fine, but I'm worried about 
scaring off novices. I've dug into SmartRefStream to try to finesse 
some of these dialogs in the past, but I'm afraid that I don't grok 
serialization well enough to figure it all out.

So, I'm looking for advice.  What's the best way to create BookMorphs 
that should be readable by future Squeakers with a minimum of hassle?
- Are there particular morphs that I should use that will be the safest?
- Is there a setting I can use that says "This is a safe book -- just 
do the default conversions and don't prompt the user"?
- Can I use the new Environment mechanism to somehow encapsulate a 
BookMorph so that it's safe to use in future Squeaks (i.e., it loads 
in the classes that it needs, despite whatever is in the current 
image)?

Thanks!
  Mark
--------------------------
Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280
(404) 894-5618 : Fax (404) 894-0673 : guzdial at cc.gatech.edu
http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html





More information about the Squeak-dev mailing list