Question John Voiklis February 04, 2004: As part of my graduate research on children, cognition, and programming / authoring, I will be conducting some user-interaction field experiments with Squeak to look at usability, software requirements, and the ethnology of the child-programmer.

In order to do this I would like to modify my experimental version of Squeak in three ways:

1.0) No matter how the user quits–menu options or closing window–I would like to save a snapshot of the image named with the date and time (without user prompting or override).

1.1) When started, I would like Squeak to load the most recently saved image (again without user prompting or override).

1.2) I would like this forced saving to be controlled with a preference option so that Squeak can be returned to normal behavior after the study.

2.0) I would like to record all events without a visible EventRecorderMorph and without having to turn on/off recording or save by hand (no prompting or override),

2.1) I would like for recording to start when Squeak starts or when someone enters a project and to stop recording and save as they leave a project or quit Squeak.

2.2) As with the image snapshots, I want the tapes to be saved with date and time (and possibly project name) as a name (no prompting or override).

2.3) Also like the snapshots, I want the forced record to be toggled with a preference.

3.0) I would like all instant messaging/chat to be saved with date and time (and no prompting or override).

3.1) This big-brother feature can also be turned off using preferences.

The above list is not a shopping list; I do not expect others to do the work for me (though, I wouldn't turn away the programming help of an experienced Squeaker). Instead, I am writing for practical advice and guidance on how I should try to tackle these requirements. Answer knightofsadcountenance: I'll try to offer some suggestions,

1.0) No matter how the user quits... Look at message like "#snapshot:andQuit:". It takes true/false parameters and if you browse that method you can probably abort the logic there that pays attention to these and "force" the save every time with your timestamp even. So you don't actually snapshot, you save as a new version (#saveImageInFileNamed:) then quit without the snapshot. But this would catch the any user quits; or you would think so. I haven't exhaustively tested.

1.1) When started...My suggestion for the automatic loading of the most recent would be to archive out-dated images into another directory, so that only the most recent is at the same default directory as your VM. Then, as you can imagine on the platforms I've used Squeak on - when you have one image the VM is at least clever enough to load that one instead of that annoying prompt.

1.2) To make this a preference, I guess you could have a Preferences at: #forceTimestampSnapshots or something and for that method (#snapshot:andQuit:) just have a big #ifTrue:ifFalse: depending on that Pref.

2.0) I would like to record all events ... No ideas on how to do this

3.0) I would like all instant messaging/chat to be saved ...Instant messaging? squeamish package?