Folks -
I apologize for such a long message, but it will give you an idea of what's out there now for test pilots, and coming in 2.5. There are a number of updates yet to come, but this covers the bulk of them.
- Dan ---------------------------------- Numerous enhancements related to Flash graphics... 1214FlashEditing-ar -- Andreas Raab -- 20 May 1999 Adds simple editing capabilities for Flash animations. You can open up a sorter from a flash player and use it for creating smaller chunks of movies out of the biggies. 1225FlashProjectZoom-ar -- Andreas Raab -- 2 June 1999 1229FlashZoomFix-ar -- Andreas Raab -- 5 June 1999 1229FlashZoomFix-ar -- Andreas Raab -- 5 June 1999 Adds Flash animations for project transitions. Details in preamble. 1273FlashFixes-ar -- Andreas Raab -- 28 June 1999 A bunch of fixes related to transparent gradient fills and undocumented (sigh!) alpha in color transformations
Numerous improvements to morphic flaps... 1220flapTweaks-sw -- Scott Wallace -- 27 May 1999 Avoids instantiating default global flaps unnecessarily when entering morphic projects. 1258window&FlapMenu-sw -- Scott Wallace -- 21 June 1999 Combines the world's flap menu with the window menu -- more in preamble. 1262flapAdvances-sw -- Scott Wallace -- 21 June 1999 Numerous improvements and bug fixes relating to flaps, of which some are: Flap tabs can now be dragged for positioning and flap-resizing whether or not open. When switching among textual, graphical, and solid choices, former choices are honored. (e.g. when you switch back to using a textual tab, the wording deployed when the tab last was textual is restored.) When you dismiss a flap tab via its halo, the corresponding flap is also dismissed. Flap-explanation window contents rewritten. Flap menu changes: * Can now be persistent (very useful!) * Menu items and title are self-updating. * Tab-color and flap-color can both be changed. * 'Slide' and 'Inboard' options removed from the UI. 1295flapFixes-sw -- Scott Wallace -- 6 July 1999 Preserve tab color upon switching back to textual form. Constrain tab to fit on screen when user tries to drag it out of view in its orthogonal direction."
Numerous piano roll improvements... 1222pianoRoll-jhm -- John Maloney -- 30 May 1999 Better performance (achievedby moving the cursor, rather than the notes Ability to hide muted parts. Also adds a bassoon sound and a cool new FM clarinet (clarinet2). Check it out! 1252F2KDemoPreps-di -- Dan Ingalls -- 15 June 1999 This changeSet adds the ability to scroll MidiScores and their PianoRolls. Allows dragging pitch of notes in the score. Plays all notes vertically if you click outside a note but within 30 pix vertically. Adds a note edit menu and a score edit menu. Allows selection of multiple notes in a track, and basic cut copy paste functions. 1255F2KDemoPreps2-di -- Dan Ingalls -- 20 June 1999 Adds ability to change time signature and enable display of measure lines Fixed a bug with slow backward scroling of the PianoRoll. Will play wherever you click (and drag!). Defines KeyboardMorphForInput for entering simple melodies. Autoscrolling is supported for both play along with the cursor, and melody selection. New 'paste...' command is like paste, but it will transpose the entire selection up or down.
Numerous improvements to Alice/Wonderland 3D... 1226WnldMorphicTextures-ar -- Andreas Raab -- 3 June 1999 This change set adds 'active' textures to WonderlandActors. See details in preamble -- you can actually project morphic onto a surface in 3D. 1228WnldInitFix-jsp -- Jeff Pierce -- 4 June 1999 A small fix so that the camera's name shows up in the actor browser 1275Alice2Pool-jsp -- Jeff Pierce -- 29 June 1999 Define the pool dictionary for Alice v2.0." 1276Alice2-jsp -- Jeff Pierce -- 29 June 1999 Some initial classes for Alice v2.0." 1277WnldCamClass-jsp -- Jeff Pierce -- 29 June 1999 Alter change logging for Cameras so that I can introduce a new subclass." 1280WnldCamClass2-jsp -- Jeff Pierce -- 29 June 1999 Ok, this actually does what the last change set should've done. =)" 1281WnldStillCamera-jsp -- Jeff Pierce -- 29 June 1999 Implements a still camera for Wonderlands (for use in the Actor Info tab)." 1282WnldUpdates-jsp -- Jeff Pierce -- 29 June 1999 Changes to Wonderland classes to improve the ActorViewer." 1304WnldActView-jsp -- Jeff Pierce -- 7 July 1999 This change set continues the development of the Actor Info tab for Wonderlands. Specifically, this change set adds some smarts so that the object the user is currently focusing on is correctly framed and at a suitable distance. This change set also changes rendering for WonderlandStillCameras so that they only return the object they're focusing on (and its children) from the scene graph." 1306WnldActorInfo-jsp -- Jeff Pierce -- 8 July 1999 Adds the first version of the WonderlandActorData morph to display information about an actor. Also integrates this morph into the WonderlandActorViewer (the Actor Info tab in the editor)." 1307WnldChanges-jsp -- Jeff Pierce -- 8 July 1999 This change set primarily makes the ActorViewer update its information every second. It also changes the way WonderlandCameras and WonderlandStillCameras determine change logging so that I can start using protoclasses for Cameras." 1308WnldProtoClasses-jsp -- Jeff Pierce -- 8 July 1999 Change the creation process for both lights and cameras so that both are created using prototype classes. Among other things, this means that becomeChild: works correctly when a camera or light is involved. Name changes also occur for these objects when reparenting just like other Actors now. This change set also modifies change logging for lights so that protoclasses aren't logged." 1309WnldUndoFix-jsp -- Jeff Pierce -- 9 July 1999 Prevents the act of the WonderlandStillCamera positioning itself and taking a snapshot from stomping on the UndoStack." 1312WnldRotInfo-jsp -- Jeff Pierce -- 9 July 1999 Adds the actor rotation data to the Actor Info tab. Also fixes the Actor Info tab to clear the selected actor on reset, and fixes reset so that prototype classes are created correctly for lights and cameras."
Major change that eliminates the distinction between WorldMorphs and PasteUpMorphs. 1235NewWorld1-di -- Dan Ingalls -- 7 June 1999 1236NewWorld2-di -- Dan Ingalls -- 8 June 1999 1237NewWorld3-di -- Dan Ingalls -- 10 June 1999 1238activeHandFix-sw -- Scott Wallace -- 10 June 1999 Henceforth, a world is simply a pasteUpMorph with no owner. Moves hand, canvas, and stepping logic to Project. While WorldMorph remains, it should not be used. The plan is that PasteUpMorph is the unit of storage on web pages, and the unit viewed by projects, books, and nested worlds
Numerous changes to Morphic Menus... 1246smartMenuItems-sw -- Scott Wallace -- 11 June 1999 1251SmartFlashMenus-ar -- Andreas Raab -- 16 June 1999 Adds a new kind of MenuItemMorph that updates its wording as necessary. 1259menuStuff-sw -- Scott Wallace -- 21 June 1999 A variety of improvements and fixes regarding menus in Morphic. See preamble. 1260playfieldMenu-sw -- Scott Wallace -- 21 June 1999 Considerable reworking of the playfield menu. See preamble 1286menuEnhancements-sw -- Scott Wallace -- 29 June 1999 Allows any individual menu item in a MorphicMenu to operate correctly -- as a stand-alone button, as it were -- even when not in a menu. To use, bring up the halo on any menu item and tear off a copy via the green 'duplication' handle; the item should then be usable on a stand-alone basis. Also, implements a personalizable morphic screen menu, brought up when you click on the desktop with the mac option key (or equivalent) held down."
Numerous changes to Scripting... 1248scriptCleanup-sw -- Scott Wallace -- 15 June 1999 See details in preamble. 1297newEtoyEnv-sw -- Scott Wallace -- 6 July 1999 Revised etoy UI as per Alan's 6/99 suggestions: * If preference #viewersInFlaps is true, then viewers for objects appear in flaps adhering to the right edge of the screen, with tabs derived from the object's own appearance. * If preference #oneViewerFlapAtATime is true, then when you open up one viewer flap, any currently-open viewer flap is closed, so that you see at most one at a time. * #automaticViewing option available in world. * Adds a protocol for determining whether a given morph is a likely candidate for automatic viewing (windows and menus and viewers themselves are good examples of things that are NOT). * Some fresh heuristics for mouse-over halos. Special rules apply for the World -- if it has mouse-over-halos turned on, they only pop up over objects that reside on the world at large and which are either SketchMorphs or have players. For smaller-than-the-world playfields, the existing rules prevail. 1301playfieldOrigin-sw -- Scott Wallace -- 7 July 1999 Adds an playfield option to have the center of a playfield as its origin, rather than the usual bottom-left corner, when figuring cartesian coordinates. By default, the origin is the bottom left of a playfield. But if you set the new origin-at-center option to true, then the origin of the playfield will be its current center." 1302viewerFlapTweaks-sw -- Scott Wallace -- 7 July 1999 The graphical tabs of viewer flaps are now active thumbnails that always reflect the current appearance of the viewee. Viewer flaps are preset to have the 'automaticPhraseExpansion' property, making them excellent places not only to view an object but also to script it. Now that the thumbnail is held in the flap tab, the viewer itself no longer needs to have one, so the thumbnail in a viewer-flap-resident viewer is replaced by a menu icon. Menus for viewer flaps are customized to have only appropriate items -- some items had been misleading or downright damaging."
Important change to the representation of Behaviors 1243SubclassesChange-di -- Dan Ingalls -- 10 June 1999 Moves the redundant structure, subclasses, down from Behavior to ClassDescription. It would have been moved down to Class, but that would have changed the order of variables in every class and metaclass. The slot is no longer used in Metaclasses. This simplifies operations on class structure. It also frees other subclasses of Behavior from carrying this burden as, for example, in lightweight behaviors for experiments with prototypes.
Major changes to morphic canvases and drawing. 1267CanvasPart1-ar -- Andreas Raab -- 17 June 1999 The first part of the changes to Morphic drawing. All of this stuff is (or at least should be ;-) *purely* structural - nothing at all should change in the way stuff looks or behaves. See preamble for an overview of the major changes 1271CanvasPart2Again -- Andreas Raab -- 22 June 1999 This is the second part of the Canvas changes. It introduces two new canvases: a ColorPatchCanvas used to replace the #fullDrawOn:without:andStopThere: methods and a ShadowDrawingCanvas which can (and eventually will) replace the shadow drawing in FormCanvas. Right now, shadow drawing is still part of the FormCanvas itself (see it as an 'optimization' ;-) but we might get rid of it for a cleaner structure. 1271CanvasPart2Again -- Andreas Raab -- 22 June 1999 This is the second part of the Canvas changes. It introduces two new canvases: a ColorPatchCanvas used to replace the #fullDrawOn:without:andStopThere: methods and a ShadowDrawingCanvas which can (and eventually will) replace the shadow drawing in FormCanvas. Right now, shadow drawing is still part of the FormCanvas itself (see it as an 'optimization' ;-) but we might get rid of it for a cleaner structure. 1272MorphicFillStyles-ar -- Andreas Raab -- 18 June 1999 This change set replaces colors by fill styles in the basic morphs: * Morph/BorderedMorph/RectangleMorph * EllipseMorph * PolygonMorph/CurveMorph After you have filed in this change set, create any of the above guys and start playing with the 'fill style' submenu (replacing the old 'change color').
Numerous changes to Preferences 1287prefSpruce-sw -- Scott Wallace -- 29 June 1999 (1) Removes reliance on the doesNotUnderstand mechanism for Preferences; instead, each defined preference is represented by an explicit retrieval method. The old mechanism remains in place, but could now be removed, or replaced by something that has the same effect but logs the call to the Transcript as a warning that an undefined preference is being invoked. (2) Adds a way that default values for new preferences, and help messages for preferences, can be added or changed without needing to modify huge monolithic methods. (3) Adds a method you can call to get hard-coded preferences compiled simply." 1296initPrefValues-sw -- Scott Wallace -- 1 July 1999 Allows specification of initial values for preferences to be distributed across multiple methods. Each method in category 'initial values' of Preferences class is expected to return a collection of pairs of the form: <prefSymbol> <initialValue> To make sure added preferences are propertly initialized in the dictionary, call Preferences initializeAddedPreferences .... this will set initial values for any preference not yet defined in the dictionary, while leaving any existing values unchanged. And it will also compile preference-accessor methods for all preferences mentioned in the initial-values category which lack them. Renames the pref formerly known as 'objectConversionMethodsAtFileOut' to be simply 'conversionMethodsAtFileOut' because the former was too long to fit in the standard prefs window."
Isolated projects - a new (and untested) modularity feature 1298isolateCng-tkKQ 1299activateIso-tkKQ Allows certain projects to have different methods from the rest of the system. When you accept a method, the entire system feels the change, except projects that are "isolated". In an "isolated" project, changes are revoked when you leave the project. When you enter another project, that project's changes are installed. To make a project be isolated, choose "isolate changes of this project" from the "changes..." section of the screen menu. You can use an isolated project for making a dangerous change to a system, and you can get out if it crashes. An imported application can have the separate environment it wants. An isolated project shares methods with all subprojects inside it, unless they are isolated themselves. Each isolated project is the head of a tree of projects it shares all methods with. You can also 'assert' all changes ever made in the current project to take effect everywhere. You are first informed if there are any direct method conflicts with other projects. The conflicts are presented in a ChangeList Browser. [Later: A project may be 'frozen'. Asserts do not apply to it after that. (Great for demos.) You should be informed when an assert was blocked in a frozen project] Class definitions are global. If you add an instance variable, it happens in all projects. All versions of the methods are recompiled, in all projects. If you remove an inst var that is in use in another isolated project, it will become an Undeclared global. It is best not to remove an inst var when it is being used in another isolated project. Senders and Implementors do not see other versions of a method in other isolated projects. When you ask for versions of a method, you will not get the history in other isolated projects. Moving methods and classes between changeSets, and merging changeSets has no effect on which methods are in force. But, when you look at a changeSet from a different isolated project, the methods will contain the 'wrong' code. A changeSet is just a list of method names, and has no code of its own.
Plus lots of other little things, many not listed... 1209MacFileDirectoryCase Refixes file name case match bug
1210connOpen-tkKI 1211FileListKeepOpen-ditk -- Dan Ingalls, Ted Kaehler -- 10 May 1999 Keeps sockets open across FTP transactions in the fileList. The socket is closed when you leave the window, and re-opened when you re-enter it. The net effect is to allow browsing remote files instantly, rather than waiting 10 seconds each time. Makes it much easier to browse goodies on servers.
1215ImageMorphWithSpotlight Cute visual effect
1217allCatFix-cncg -- Chris Norton and Carl Gundel -- 21 May 1999 1218allCatTweak-sw -- Scott Wallace -- 26 May 1999 Fixes some bugs that were introduced to the Browser when the '-- all --' category was introduced.
1223MovieSoundTrack-di -- Dan Ingalls -- 31 May 1999 Adds the ability for a moviePlayerMorph to add a sound track from a .wav or .aif file. Skip frames as appropriate when falling behind a sound track.
1224FreeUnusedPlayers-di Finally does an effective job of reclaiming unreferenced Players
1230ScreenMorphTweaks-di -- Dan Ingalls -- 3 June 1999 Improvements to ScreeningMorph -- another cute visual effect.
1232StrikeFontBuilder-di Assistance for building a StrikeFont from a bunch of forms
1256standardFile-acg Andrew Greenberg's nifty File chooser. 1257directFileEdit-sw -- Scott Wallace -- 9 June 1999 Exploiting the StandardFile capability kindly contributed by Andrew Greenberg, adds a direct way that a file can be open for editing from the screen menu."
1261alphaNewMorph-sw -- Scott Wallace -- 17 June 1999 Adds to the 'new morph' menu a new command allowing you to choose from an alphabetical list of morph types. The list is of course long, but at least this gives you a deterministic way to locate a morph without needing to know what category it is in." 1265betterAlphaNew-ar -- Andreas Raab -- 21 June 1999 Extends the alphabetical new morph menu to be dynamically split into 8 (roughly) equal groups."
1264WaveEditTweaks-di -- Dan Ingalls -- 21 June 1999 Adds a keyboard to the wave editor for trying out sounds at different pitches. Also fixes a couple of bugs (thanks to JM) relating to keyboard events and looped frequency.
1269TextOnCurveFix-di
1270EllipseDrawing-ar -- Andreas Raab -- 28 June 1999 Fixes ellipse drawing in the form canvas in several ways by using the Bresenham midpoint algorithms for ellipses; avoiding the extra pass for translucent ovals, drawing accurate wide borders and speeding up things a bit." 1274EllipseFix-ar -- Andreas Raab -- 28 June 1999 Fixes a problem introduced by resubmitting the CanvasPart2 change set."
1278menuFix-sw -- Scott Wallace -- 28 June 1999 Resolves a conflict in menus between updates 1259 and 1271"
1279versionsFix-sw -- Scott Wallace -- 28 June 1999 Fixes the bug manifested when you request versions for a method that has no logged source."
1283Shadows8bit -- Andreas Raab -- 29 June 1999 Fixes shadow drawing for an 8 bit deep Display."
1284flashSndLevel-jhm -- John Maloney -- 7 June 1999 Adds a global volume control for sounds played by Flash. The level is held in a class variable of FlashMorph. Does not apply to streamed sounds."
1285gcPolicy-jhm -- John Maloney -- 7 June 1999 Adds a mechanism for tweaking the default GC rate and tenuring threshold. This can be used to reduce tenuring in the (fairly rare) cases when the default VM tenuring threshold causes over-eager tenuring. This change set adds the mechanism, but does not actually change the defaults. To do so, you would edit SystemDictionary>setGCParameters (for example, 7000 allocations between GCs, 6000 survivor tenure threshold)."
1288bulletproofing-sw -- Scott Wallace -- 29 June 1999 Provides a mechanism for masking off all the programmers' facilities from a user who finds himself in morphic project, including: * halos * haloless morphic drag (cmd-drag, cmd-shift drag) * morph meta-menu (ctrl key) * world meta-menu (click on desktop) * cmd-dot * no-sources & no-changes warning * evaluation of expressions from keyboard * command characters in text Intended to provide a one-touch way that an end-user application (e.g. a web experience) can be configured to be bulletproofed against breaking and entering, and against unusual surprises such as the appearance of halos. For complete instructions, refer to the comment in the Preferences class method #disableProgrammerFacilities"
1289MenuColor-di -- Dan Ingalls -- 28 June 1999 Introduces a new preference, #menuColorFromWorld. When ennabled, this preference causes menus to appear raised, and with a color that is lighter or darker than the World color, depending on whether it is dark or light.
1290RoundedCorners-di -- Dan Ingalls -- 26 June 1999 A slightly dirty implementation of rounded window corners. See the comment in CornerRounder. Controlled by a new preference, #roundedWindowCorners. 1291roundedFlaps-sw -- Scott Wallace -- 1 July 1999 Makes the corners of textual flaps be rounded."
1293bmFillFix-ar -- Andreas Raab -- 2 July 1999 Fixes Morphs that have InfiniteForms as colors."
1294paintFixes-sw -- Scott Wallace -- 6 July 1999 * Paintbox position appropriate even when painting world in unlimitedPaintArea mode. * Only one painting experience allowed at a time. * If no paintbox is found when a painting gesture is received (because it got dismissed by halo, for example), one is hastily put up. * There is now support for keeping the paintbox in a flap, though the resulting effect was not very satisfactory and hence you need to perform a magical incantation to set things up for this to happen.
1300formTrimTweaks-jhm -- John Maloney -- 2 July 1999 Faster trimming of Forms. Also removes some unused and unneeded Form manipulation methods, adds a handy instance creation method for UpdatingStringMorph, and makes ADPCM compressAndDecompress: work for any of the supported bits-per-sample."
1303threeUnrelated-sw -- Scott Wallace -- 7 July 1999 ThumbnailMorph now correctly renders even when the object it represents is not in a world. This fixes a bug at least two years old. Locations of the debug & authoring menus in the menu flap are swapped, in order to accommodate the two new items Ted just added to the changes menu. When menus are stacked one upon the other, they are now centered within the stack. (Anyone object? I *think* this is nicer.) Uniclasses no longer show up in change sets (fixes bug introduced in update 1242convMeth.
1305haloFixes -- Doug Way -- 28 May 1999 Another fix to the Morphic Halo: If the halo reaches the bottom of the screen, the name of the morph will still be visible at the bottom. (original title: haloNameFix2) Also contains a fix to the placement of the debug halo handle by sw 7/7/99, merged in with Doug's fix for the name placement."
1310chgSorterAdditions-sw -- Scott Wallace -- 8 July 1999 Adds a new feature (accessible through the shifted change-set-list menu) which allows you to check for conflicts between the change-sets on the two sides of the sorter. (Formerly, you could only check for conflicts between one change set and *all other* change sets in the system; this new command lets you compare two change sets head to head. The other command is of course also still available.) In a dual change sorter, checks whether both sides of the sorter are pointing at the same change set before carrying out actions which, to be meaningful, require that the change sets on the two sides be different. While at it, reorders the shifted change set menu, and uses the more modern protocol to construct it, and also adds balloon help for all items in it."
1311optionalButtons-sw -- Scott Wallace -- 11 May 1999 Adds a few buttons to the morphic incarnations of changelist browser, debugger, and filelist. They only appear if you have the preference #optionalMorphicButtons set to true."
1313server-tkKS -- Ted Kaehler -- 9 July 1999 [ ] When you are putting out an update, and one of the servers is down, it gives you a simple message asking you to contact the administrator. [ ] When you get a secondary menu, like ""Open..."", and immediately drag it, it now stays up (if it can) rather than just going away. The old way was very frustrating. [ ] When you are prompted for a password for an FTP server (in the fileList), and its wrong, now you can enter another one. Or give up trying. This used to put you into an infinite loop of trying the bad password again."
1314menuII-tkKT
1315XguessDOLProxy -- John Maloney -- 10 July 1999 Code suppressed for external release."
1316reserveVMmem-jhm -- John Maloney and Andrew C. Greenberg -- 10 July 1999 Adds a VM parameter that allows you to specify an additional amount of memory to be reserved for use by the VM for things like plugins, file and socket buffers, etc. (This is especially useful on the Macintosh.) The memory request is recorded in the image header when the image is saved and is honored when the image is restarted. Many thanks to Andrew C. Greenberg for the original version of this facility."
1317sampledSndFix-jhm -- John Maloney -- 9 July 1999 Fixes a bug in SampledSound that caused a VM crash if the sound exceeded about 49 seconds. SampledSound now allows sounds up to 2^30 samples long. Add checks to prevent creating LoopedSampledSounds longer than the primitive supports. Typically, LoopedSampledSounds are used for sampled instruments, which are fairly short. For playing long sampled sounds (minutes or hours), use a SampledSound. Note: SampledSound's now play via a new primitive. The old primitive is still supported for backward compatability."
1318nextPrevFix-sw -- Scott Wallace -- 10 July 1999 Fixes the action of the 'smart' yellow next/prev buttons available in the supplies flap, etc; these had stopped working after the 'new world' transformation."
1319pastelColors-dwh -- Dwight Hughes -- 8 July 1999 Adds ten new pastel color constants, for use as background colors for the standard windows in a pastel scheme."
1320threeTiny-sw -- Scott Wallace -- 13 July 1999 (1) Adapted from a fix provided by Leandro Caniglia: Bulletproofs against a bug that could show up when a system window got dragged to the trashcan. (2) Puts life back into project-navigation buttons that became damaged when an inst variable was added to Project in a recent update, making the preexisting Project class object obsolete. (3) Bulletproofs Controller.viewHasCursor against the case that occasionally arises in which the view is nil."
1321windowColors-sw -- Scott Wallace -- 13 July 1999 Adds a little panel allowing user to choose from a set of window color schemes and to tune the color of any particular window type Places the menu item for opening such a panel, together with other appearance-related items, in a new 'appearance' branch of the screen menu."
1322menuTweaks-sw -- Scott Wallace -- 14 July 1999 (1) Restores visible lines to morphic menus for the case where menuColorFromWorld is false. (2) Keeps menus from failing when menuColorFromWorld is true and the world's color is an InfiniteForm."
1323wildDates-AL Alan Lovejoy's fixes to date arithmetic.
Hi Dan--
Once again I humbly suggest using the release naming scheme described at http://netjam.org/self/projects/smalltalk. I find it easier and more useful than any of the alternatives I've seen so far.
I'd appreciate feedback from anyone about it.
thanks!
-C
-- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com "Instant monotony! Just ad nauseam."
This appears to be a slight variation on the version numbering scheme used by Apple and many of its third party developers, which I have personally used at a couple of companies over dozens of products with great success, ie <major>.<minor>.<subminor><stage><release>. On the Mac, this format is directly supported by the 'vers' resource and editable by tools like ResEdit, thus encouraging standardization.
If we're seriously looking for something to replace the current system with only a slight detour, I would agree with Craig that something like this is a pretty good candidate. I would also propose that such a scheme be supported by the stock image with appropriate classes as we evolve toword better version management and modules/packages/namespaces/isolations/whatever.
-- Duane
Craig Latta writes:
Once again I humbly suggest using the release naming scheme described at http://netjam.org/self/projects/smalltalk. I find it easier and more useful than any of the alternatives I've seen so far.
On Thu, 15 Jul 1999, Duane Maxwell wrote:
This appears to be a slight variation on the version numbering scheme used by Apple and many of its third party developers, which I have personally used at a couple of companies over dozens of products with great success, ie <major>.<minor>.<subminor><stage><release>.
If I may...
Personally, I like the linux way which is basically the above with a minor detail "understanding":
<major>.<minor>.<subminor><stage><release> ^^^^^ | |
If this number is odd, it is a developer release (unstable), and if this number is even, it is a user release (stable).
- Martin J. Brown, Jr. -
- BEAUDESIGN.COM -
Martin Brown writes about Linux:
<major>.<minor>.<subminor><stage><release> ^^^^^ | |
If this number is odd, it is a developer release (unstable), and if this number is even, it is a user release (stable).
Seems a little "hacky" and somewhat arbitrary, don't you think? After all, the <stage> (developer, alpha, beta, final) is intended to encode this information directly. The odd/even thing is obscure, and I doubt many people on this list even knew about or even suspected such a scheme.
-- Duane
On Thu, Jul 15, 1999 at 04:34:41PM -0700, Craig Latta wrote:
Hi Dan--
Once again I humbly suggest using the release naming scheme described at http://netjam.org/self/projects/smalltalk. I find it easier and more useful than any of the alternatives I've seen so far.
I'd appreciate feedback from anyone about it.
This makes very good sense, and the description on your web page is clear and concise. Thanks.
Just some observations...not exhaustive however.
Well I got a CasioE105 (MIPS R4000 WindowsCE device...very slick) and a 64M compact flash card (for all the audio books and music), and decided hey, this might be a cool environment try to learn (no I don't really know Smalltalk) Smalltalk/Squeak again on those long flights that I have to take for work.
And coincidentally, I saw an email posted by Dean Swan on here about installing Squeak on his CasioE100 (same as the 105 but without the multimedia and the extra memory). So thanks to Dean for a pointer to the MIPS VM (http://wwwisq.cs.uni-magedeburg.de/~raab/squeak/WindowsCE/MIPS), I got it installed. The first decision I made was to keep the exe in main memory and take advantage of the 64M card for the image, source, changes. (I could have fit everything into main memory, but I don't like clogging it up). So the first observation is that the FULL Squeak 2.4 fits on a CasioE105.
Ok, I got it installed, now would it run. Double tapping the image file (you need to install a third-party file browser to do this on the E105) caused the usual Windows(CE) headache of "this file is not associated with an application error. Hm...and I know that Squeak won't let you open an image by launching the executible...too bad...I still think this should be standard. Drag and drop doesn't work on the CE. What to do. The Casio doesn't come with a nice utility to map an extension to an application. Ptui! I hate MS. Ok, scrounging through the shareware/freeware sites I came across a launcher/desktop utility called StarTap. One of its features is to associate documents to applications. Ok...image associated with Squeak executable. Double-tap the image file and ooooooo the familiar Squeak desktop appears. Wow in color too! Oh oh. The startup Play With Me windows aren't resized or positioned according to available screen real-estate.
Suggestion (Note to self) #1:
Resize the Play With Me windows (and all windows) so that they fit to the devices screen size. If screen is smaller than 'x' then set screen size to device size and position upper left corner to (0,0)
Ok, I can close out the Play With Me windows for now. That works fine. I wonder what other windows do. Open up a browser. Gee it sizes correctly. I wonder why the Play With Me windows act differently. The browser is sized to fit the device's screen. But the origin isn't (0,0)...it should be.
Suggestion (Note to self) #2:
Related to #1. All windows should reposition to (0,0) if the screen size is smaller than "x" to make use of the limited space available.
Ok...lets see if Morphic works ok. Morphic works nicely. And even the piano keyboard morph works and Squeak sound works fine on the Casio.
Ok...let's try Alice. This has the same problem with screen size. The windows that are open by default are too big for the screen. However, Energizer bunny seems to run fine.
Back to the base world. Popping up a menu seems a bit sluggish, more sluggish than the rest of the environment. Moving, resizing windows, and using the flap out menus seem to respond well. Wonder why popping up a menu by tapping on the desktop is so slow to respond.
Ok, lets try some code entry...lets see if that's usable. Bring up the virtual keyboard to tap in some code into a browser. That works and the code runs. Close out the virtual keyboard. Oh oh...Squeak doesn't recognize or respond to the fact that hte virtual keyboard is no longer displayed and Squeak doesn't refresh the screen. So I have a ghost keyboard image. Ok force a screen redraw from the Squeak menu. That works...sort of. I have some Keyboard droppings around the border and edges of the Squeak window.
Suggestion (Note to self) #3:
Either fix the screen refresh...probably too difficult and too closely tied to the Casio WinCE environment. Or build a Squeak virtual keyboard (sort of like the piano) for text entry via mouse/pen taps for systems that don't have physical keyboards....speech recognition is probably out of the question.
That's it for now. I haven't tried networking or any of the other Squeak goodies.
If anyone wants to tackle the above items feel free to do so. Or if someone wants to point me in the right direction, that would be appreciated as well, although as I said, I really don't know Squeak/Smalltalk and it would probably be faster if you did it ;-)
Generally speaking, I think the full Squeak would work VERY well on the CasioE105 (assuming you have the memory for all the pieces.) I did run Squeak with just the VM and the image. That works too with the normal limitations, and the startup warnings of missing files didn't fit the screen size ;-)
Thoughts, suggestions, etc. are all welcome.
Cheers, S
Serg (and all) --
Where did you get the CasioE105? -- I've had no luck with the dealers in LA that werelocated via the Casio website -- and the website sells the 100 but not the 105.
Cheers,
Alan
----------
At 12:47 PM -0800 8/5/99, Serg Koren wrote:
Just some observations...not exhaustive however.
Well I got a CasioE105 (MIPS R4000 WindowsCE device...very slick) and a 64M compact flash card (for all the audio books and music), and decided hey, this might be a cool environment try to learn (no I don't really know Smalltalk) Smalltalk/Squeak again on those long flights that I have to take for work.
And coincidentally, I saw an email posted by Dean Swan on here about installing Squeak on his CasioE100 (same as the 105 but without the multimedia and the extra memory). So thanks to Dean for a pointer to the MIPS VM (http://wwwisq.cs.uni-magedeburg.de/~raab/squeak/WindowsCE/MIPS), I got it installed. The first decision I made was to keep the exe in main memory and take advantage of the 64M card for the image, source, changes. (I could have fit everything into main memory, but I don't like clogging it up). So the first observation is that the FULL Squeak 2.4 fits on a CasioE105.
Ok, I got it installed, now would it run. Double tapping the image file (you need to install a third-party file browser to do this on the E105) caused the usual Windows(CE) headache of "this file is not associated with an application error. Hm...and I know that Squeak won't let you open an image by launching the executible...too bad...I still think this should be standard. Drag and drop doesn't work on the CE. What to do. The Casio doesn't come with a nice utility to map an extension to an application. Ptui! I hate MS. Ok, scrounging through the shareware/freeware sites I came across a launcher/desktop utility called StarTap. One of its features is to associate documents to applications. Ok...image associated with Squeak executable. Double-tap the image file and ooooooo the familiar Squeak desktop appears. Wow in color too! Oh oh. The startup Play With Me windows aren't resized or positioned according to available screen real-estate.
Suggestion (Note to self) #1:
Resize the Play With Me windows (and all windows) so that they fit to the devices screen size. If screen is smaller than 'x' then set screen size to device size and position upper left corner to (0,0)
Ok, I can close out the Play With Me windows for now. That works fine. I wonder what other windows do. Open up a browser. Gee it sizes correctly. I wonder why the Play With Me windows act differently. The browser is sized to fit the device's screen. But the origin isn't (0,0)...it should be.
Suggestion (Note to self) #2:
Related to #1. All windows should reposition to (0,0) if the screen size is smaller than "x" to make use of the limited space available.
Ok...lets see if Morphic works ok. Morphic works nicely. And even the piano keyboard morph works and Squeak sound works fine on the Casio.
Ok...let's try Alice. This has the same problem with screen size. The windows that are open by default are too big for the screen. However, Energizer bunny seems to run fine.
Back to the base world. Popping up a menu seems a bit sluggish, more sluggish than the rest of the environment. Moving, resizing windows, and using the flap out menus seem to respond well. Wonder why popping up a menu by tapping on the desktop is so slow to respond.
Ok, lets try some code entry...lets see if that's usable. Bring up the virtual keyboard to tap in some code into a browser. That works and the code runs. Close out the virtual keyboard. Oh oh...Squeak doesn't recognize or respond to the fact that hte virtual keyboard is no longer displayed and Squeak doesn't refresh the screen. So I have a ghost keyboard image. Ok force a screen redraw from the Squeak menu. That works...sort of. I have some Keyboard droppings around the border and edges of the Squeak window.
Suggestion (Note to self) #3:
Either fix the screen refresh...probably too difficult and too closely tied to the Casio WinCE environment. Or build a Squeak virtual keyboard (sort of like the piano) for text entry via mouse/pen taps for systems that don't have physical keyboards....speech recognition is probably out of the question.
That's it for now. I haven't tried networking or any of the other Squeak goodies.
If anyone wants to tackle the above items feel free to do so. Or if someone wants to point me in the right direction, that would be appreciated as well, although as I said, I really don't know Squeak/Smalltalk and it would probably be faster if you did it ;-)
Generally speaking, I think the full Squeak would work VERY well on the CasioE105 (assuming you have the memory for all the pieces.) I did run Squeak with just the VM and the image. That works too with the normal limitations, and the startup warnings of missing files didn't fit the screen size ;-)
Thoughts, suggestions, etc. are all welcome.
Cheers, S
squeak-dev@lists.squeakfoundation.org