the Difficulty of using squeak

Lex Spoon lex at cc.gatech.edu
Tue May 17 18:54:49 UTC 2005


Ross Boylan <RossBoylan at stanfordalumni.org> wrote:
> > There is such a thing as "minimum extent" in Morphic but right now it is
> > not honored.  Just browse to #minimumExtent to see what I mean!  The
> 
> The method comment makes it sound as if it is only honored if you are
> using certain layouts.  Are you saying it doesn't even work then?

No, I wrote too hastily.  I meant to say, it is not honored *widely*. 
For example, the yellow halo handle ignores it.  IMHO, Morph>>extent:
itself should pay attention to this setting....


> By the way, I did develop a LayoutPolicy of my own, but it wasn't a
> cure all.  I guess I could say it was enough to move my main problem
> from understanding layout to understand Scrollers.

Heh.  Well, moving along.  One nice thing I bet you'll agree with, is
that Morphic does let you move forward incrementally.  You can make a
rough approximation of whatever you want and then improve it one step at
a time.  At least, that is my experience.

> > I think you are right that these infinite loops can
> > happen (and that sort of thing is high on *my*  wish list for making
> > Morphic nicer to use--Smalltalk should be a *safe* language that cannot
> > screw you up like that if you misstep). 
> They are a drag for sure, but it seems hard to avoid them when you're
> messing with GUI stuff.  I've dealt with it by putting various tests
> before my self halts (if a keyboard modifier is pressed; if this is
> the first time; if there has been no interrupt in the last second ...)

I mean, I think the system should not have these dragons wandering
around at all.  There is a general approach that has already been worked
out: if a method fails, then stop calling it until the user has asked
you to start calling it again.  We currently use this for stepping and
for drawOn:.  There is no reason not to use it for more things.


> That mostly works, although I typically don't do this until after I
> lock up my image :)  The other problem is that I have a feeling
> sometimes I'm not seeing key logic because it happens during a
> different incident than the one I stopped.

Yeah....  When things are happening in phases, it can be hard to get a
debugger on the one that matters to you....  For example:


> The problem was I wanted to see the layout logic.  I knew it happened
> when I resized the window.  So I stuck a halt near the top of the
> resize logic.  I then traced it through, but the new layout code never
> got hit.  Finally I realized it was happening in a different thread
> (hint: try fullBounds),




> Thanks.  I should say I have a lot of smalltalk experience, and even a
> significant amount of work in squeak/morphic.  Obviously there are
> still new worlds to conquer.

It would be really nice if Squeak were a good introduction for newcomers
to Smalltalk.  I think it can be, but morphic in particular seems to be
a real dragon's den.  :(


-Lex



More information about the Squeak-dev mailing list