[Newbies] Image Best Practices

Ron Teitelbaum Ron at USMedRec.com
Fri May 5 12:34:04 UTC 2006

> -----Original Message-----
> From: Shawn MacIntyre
> Sent: Thursday, May 04, 2006 8:50 PM
> On May 4, 2006, at 9:03, Ron Teitelbaum wrote:
> I now have about 20 somewhat functioning images. :)

Having a number of images par for the course.  In my opinion, the issue is
can you save your changes, do you know how to retrieve your changes, and do
you know how to rescue your changes from a change set.  Having a base image
is a good way to go and being able to start over and bring your code into a
new base image is very important.  Saved images should be only check points
to base images and not development images.  In other words develop all you
want but when you are done make a new version in the repository, then if
loading that version becomes too time consuming in the future, start a base
image, load the changes to bring you up to some checkpoint level, save that
image and use it as a new base.  This will just save you time getting
started.  As you have already determined, you will need different bases for
different activities esp. when components don't play well together.  But
that's the fun of programming in Squeak!  Hopefully some day the entire
world will find balance, and all of squeak will follow the path and a
beautiful rainbow, and make their way to one version!  Personally I would
love to see wxSqueak incorporated as soon as possible.
> My next step was augmenting the base 3.8 with packages that I have
> found that work together and that I like: such as Seaside and the
> shout workspace. I am now using this a my base for my
> experimentation. Is this the normal process?

Yes.  I understand that 3.7 is popular for Seaside, but I don't know what
the issues are.
> Basically, I have lived all my life with files, how should I
> understand the workflow with images? Could you describe your standard
> workflow while developing under squeak?

For me the image is not just development but a deployment vehicle.  Think of
the image as your compiled code base, there are some tools for changing the
development image into a deployable image.  If you consider the image as
your run time, and your versions in the repository as your code, files,
source or what ever you want to call them, it makes more sense.  You just do
not have to go through that compile phase to create an image.
> How can I rollback package adds from Squeakmap or loading new
> versions with Monticello? Or is this always a risk process since
> anything in the system can be modified a package or a change set?
> That would be fine if it was the case; I would just have to modify my
> practices then.
I'm not sure I know the answer here but it's never been an issue for me.  I
always start with a base image and add from squeak map, or Monticello.  If I
want to roll something back I don't load it in the future and I only include
things I know I want to keep in my check point images. 

> What about versions of the image. From lurking around I see some
> people using 3.7 and some using 3.8. Now with the beta of 3.9 (which
> looks very pretty)  out ... is there any recommend image version to
> use? I have been using 3.8 because it seems to be the "official"
> version. What do most squeak developers do in this situation? Is it
> okay to run a different version of the VM from the image? It seems to
> work for me.

I'm working with 3.8 now, but only because I'm looking for stability.  I
want to make sure, as much as possible, that the things that I'm having
problems with are my fault and not because of something that was recently
introduced.  I plan to move my code to 3.9 as soon as it's blessed by the
community.  Although I may be stuck with the wxSqueak version for the UI.
For loading packages I've been pretty comfortable trying them out even if
there is no version for the image I'm on.  There is no guarantee but I find
it's helpful and educational to find out why something breaks, it may
highlight a new feature in the latest image that you wouldn't have found
> One last key binding question: Is there anything like Alt-Tab to
> rotate windows? Or close/minimize/maximize windows? Or minimize all
> windows? I do most of my experiment on my 12" powerbook and I quickly
> find that I fill the screen with windows. What is the most manageable
> way to deal with this?

There is a window menu that is pretty helpful.  Open the world menu and
click on windows.  There is no key that I'm aware of for switching windows,
but the window menu is useful for that.  wxSqueak breaks out of the single
window paradigm and allows for OS level window switching.
> Finally, let talk browsers. I have been using the standard browser
> but I have seen the Star browser and heard of the re-factoring
> browser. For a new user working on building an app with Seaside, is
> there a recommended browser?

I'm not sure maybe some of the Seaside folks can answer this question.

> phew .... thank you again! I think I have made more progress today
> then in the past three months! The pieces fit together a bit better.
> Shawn

I'm glad to help!  Keep Squeaking!!  I wasn't sure how much traffic we would
have on the beginners list so it's nice to see that someone is benefiting
from it!

Ron Teitelbaum
President / Principal Software Engineer
US Medical Record Specialists
Ron at USMedRec.com 

More information about the Beginners mailing list