[squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz

Eliot Miranda eliot.miranda at gmail.com
Thu Jun 23 17:25:31 UTC 2022


On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <eliot.miranda at gmail.com>
wrote:

> +100 for pushing this to trunk
>

Easier to review & edit there.

>
> On Tue, Jun 21, 2022 at 2:14 PM <
> christoph.thiede at student.hpi.uni-potsdam.de> wrote:
>
>> Community service: Read the HTML-rendered copy of the proposed book below:
>>
>>
>>
>>
>> *Contributing To Squeak *
>>
>> As you might have noticed, Squeak is a *completely open system*, which
>> makes it very easy not only to explore every interesting detail in the
>> image but also to customize everything at your will. Whether you would like
>> to
>> adjust some colors
>> , fix a
>> bug
>> you have stumbled upon, or
>> add a new feature
>> , everything is flexible and under your control.
>>
>>
>> *Squeak lives from your contributions!* Squeak is powered to 100% by
>> volunteer open-source contributions. Whenever you make an adjustment to the
>> base system, you might ask yourself: *could others benefit from this
>> change, too?*, and if the answer is yes, we invite you to consider
>> contributing back to the community. Also, if you just discovered a bug,
>> have a question, or would like to discuss an idea, our forums are open!
>>
>>
>>
>> *The Squeak Community Model*
>>
>>
>> The majority of communication about the Squeak development takes place on
>> the
>> squeak-dev mailing list
>> <http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev>
>> . There is a public
>> mailing list archive
>> <http://lists.squeakfoundation.org/pipermail/squeak-dev/>
>> , but to engage in any discussion, you have to
>> sign up
>> <http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev>
>> to the list. Alternatively, you can report issues on our
>> GitHub issue tracker
>> <https://github.com/squeak-smalltalk/squeak-object-memory/issues>
>> .
>>
>>
>> On the mailing list, ideas, bug reports, and patches are exchanged.
>> Version control for all Squeak packages is run via
>> Monticello. All versions that are uploaded to any Squeak package will
>> automatically be forwarded to the list for further discussion. There are
>> three package repositories:
>>
>>     * The *Trunk repository* contains the latest integrated patches.
>> Only core developers have write access.
>>     * The *Inbox repository* is the place for all new suggestions and
>> requests for review. Everyone can upload proposals here without the need to
>> create an account. (You can still create an account on
>> https://source.squeak.org/ and *edit the repository info* of the inbox
>> repository with your credentials.)
>>     * The *Treated Inbox* repository is the sidetrack for versions that
>> have been dealt with or that have been superseded.
>>
>>
>>
>> The usual workflow for a new contribution is to upload it to the inbox,
>> where others will discuss and review it on squeak-dev, and from where it
>> usually will be merged into the Trunk eventually. Here you can learn more
>> about the development process:
>> https://squeak.org/development_process/
>>
>>     <squeakDevelopmentProcess.png>
>>
>>
>> *Making your first contribution*
>>
>>
>> *
>> Install the latest Trunk updates
>>
>>
>> * Make your change, preferably from a clean image (to avoid configuration
>> drift)
>>
>> *
>> Open the Monticello Browser:
>>         *
>> *On the left,* select the *package* you have changed (denoted with a
>> **star*).
>>
>>     * *On the right,* select the *inbox* repository.
>>
>>     * On the top, press *save.*
>>
>> * Review your changes, enter a meaningful version message, and *accept*
>> the new version to upload it.
>>
>> * *That's it!* Your contribution has arrived in the inbox and soon you
>> will receive feedback from the community through the mailing list. Keep an
>> eye on your mailbox!
>>
>>
>>
>> *Squeak Inbox Talk*
>>
>>
>> Squeak Inbox Talk is a third-party tool that attempts to simplify the
>> development process by bringing together all the different artifacts that
>> belong to the development process - mailing list, archives, and Monticello
>> versions - and allowing you to interact with them directly from your image.
>> You can access it
>> from the Tools menu
>> or install it via:
>>
>>         Installer installSqueakInboxTalk.
>>
>>     <
>> https://raw.githubusercontent.com/hpi-swa-lab/squeak-inbox-talk/main/assets/SqueakInboxTalk.png
>> >
>>
>>     Further information can be found on GitHub:
>> https://github.com/hpi-swa-lab/squeak-inbox-talk
>>
>>
>> *Further Concepts*
>>
>>
>> * *Change sets:* Usually, new proposals are best exchanged through an
>> inbox version. However, some ideas consist of changes to multiple packages,
>> when it becomes tricky to work with multiple inbox versions. In this case,
>> a change set is a good alternative. You can open a *dual change sorter*
>> from the
>> Tools
>> and
>> Changes
>> menus in the docking bar and make a yellow click on the change set list
>> on the left to bring up some options. *Create a new change set* and
>> *copy* or *move* all relevant changes to it. *Add a preamble* to the
>> change set to add an explaining message and finally *file out* or *mail
>> to list* it directly. To install a change set, you can *file in* it from
>> the
>> file list
>> or by dragging it into the image.
>>
>> * *Preambles and postscripts:* Some changes make it necessary to run
>> some scripts before or after loading the new code to perform any migrations
>> or changes to the object graph. This is possible through preambles and
>> postscripts. To add or edit a script for a Monticello package, select it in
>> the
>> Monticello browser
>> and press the *Scripts* button. Add your logic to the code, test it,
>> accept it, and include it in your next inbox version. Note that preambles
>> and postscripts in Trunk packages are required to be idempotent and may be
>> evaluated multiple times. For changesets, you can add a preamble and a
>> postscript as well from the yellow-button menu of the change set list in
>> the change sorter.
>>
>> * If you identify any other contribution-related concepts that should be
>> mentioned or explained in greater detail here, please feel free to add them
>> here. This would make an ideal first contribution. :-)
>>
>>
>> Open to all your feedback. But, please, let's not prolong the review
>> process too much to not hinder this from going into the RC. :-)
>>
>> Best,
>> Christoph
>>
>> ---
>> *Sent from **Squeak Inbox Talk
>> <https://github.com/hpi-swa-lab/squeak-inbox-talk>*
>>
>> On 2022-06-21T20:59:48+00:00, commits at source.squeak.org wrote:
>>
>> > A new version of Help-Squeak-Project was added to project The Inbox:
>> > http://source.squeak.org/inbox/Help-Squeak-Project-ct.94.mcz
>> >
>> > ==================== Summary ====================
>> >
>> > Name: Help-Squeak-Project-ct.94
>> > Author: ct
>> > Time: 21 June 2022, 10:59:45.096176 pm
>> > UUID: e922e850-4074-764e-bb2d-a7754075a639
>> > Ancestors: Help-Squeak-Project-ct.93
>> >
>> > Proposal: Adds help on how to contribute to Squeak. Short description
>> of the community model, the development process, and some
>> required/recommended tools. Updates the URLs in the page 'Squeak Resources
>> Online' and adds a link to the new tutorial. Reorders project pages. Adds a
>> very simple way to include figures to the new help book.
>> >
>> > =============== Diff against Help-Squeak-Project-ct.93 ===============
>> >
>> > Item was added:
>> > + SqueakProjectHelp subclass: #SqueakContributionHelp
>> > +     instanceVariableNames: ''
>> > +     classVariableNames: ''
>> > +     poolDictionaries: ''
>> > +     category: 'Help-Squeak-Project'!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>bookBlurb (in category
>> 'accessing') -----
>> > + bookBlurb
>> > +
>> > +     self flag: #moveUpstream.
>> > +     ^ (self perform: self defaultPage) contents!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>bookName (in category
>> 'accessing') -----
>> > + bookName
>> > +
>> > +     ^ 'Contributing to Squeak'!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>communityModel (in
>> category 'pages') -----
>> > (excessive size, no diff calculated)
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>contributingToSqueak (in
>> category 'pages') -----
>> > + contributingToSqueak
>> > +     "This method was automatically generated. Edit it using:"
>> > +     "SqueakContributionHelp edit: #contributingToSqueak"
>> > +     <generated>
>> > +     ^(HelpTopic
>> > +         title: 'Contributing'
>> > +         contents:
>> > + 'Contributing To Squeak
>> > +
>> > + As you might have noticed, Squeak is a completely open system, which
>> makes it very easy not only to explore every interesting detail in the
>> image but also to customize everything at your will. Whether you would like
>> to adjust some colors, fix a bug you have stumbled upon, or add a new
>> feature, everything is flexible and under your control.
>> > +
>> > + Squeak lives from your contributions!!!! Squeak is powered to 100% by
>> volunteer open-source contributions. Whenever you make an adjustment to the
>> base system, you might ask yourself: could others benefit from this change,
>> too?, and if the answer is yes, we invite you to consider contributing back
>> to the community. Also, if you just discovered a bug, have a question, or
>> would like to discuss an idea, our forums are open!!!!!!
>> > + ]style[(24 39 22 158 18 8 3 28 17 50 37 143 43
>> 197)a0b,a0,a0i,a0,Rcode:// SqueakTheme
>> class>>#addSyntaxHighlighting:;,a0,Rcode://
>> > + self systemNavigation browseAllImplementorsOf:
>> #expectedFailures;,a0,,a0,a0i,a0,a0i,a0!!' readStream nextChunkText)
>> > +             key: #contributingToSqueak;
>> > +             shouldStyle: false;
>> > +             yourself!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>defaultPage (in category
>> 'accessing') -----
>> > + defaultPage
>> > +
>> > +     ^ #contributingToSqueak!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>firstContribution (in
>> category 'pages') -----
>> > + firstContribution
>> > +     "This method was automatically generated. Edit it using:"
>> > +     "SqueakContributionHelp edit: #firstContribution"
>> > +     <generated>
>> > +     ^(HelpTopic
>> > +         title: 'First Contribution'
>> > +         contents:
>> > + 'Making your first contribution
>> > +
>> > + * Install the latest Trunk updates
>> > + * Make your change, preferably from a clean image (to avoid
>> configuration drift)
>> > + * Open the Monticello Browser:
>> > +     * On the left, select the package you have changed (denoted with
>> a *star).
>> > +     * On the right, select the inbox repository.
>> > +     * On the top, press save.
>> > + * Review your changes, enter a meaningful version message, and accept
>> the new version to upload it.
>> > + * That''s it!!!! Your contribution has arrived in the inbox and soon
>> you will receive feedback from the community through the mailing list. Keep
>> an eye on your mailbox!!!!!!
>> > + ]style[(30 4 32 84 27 5 12 12 7 34 5 6 13 12 5 34 5 64 6 33 10
>> 152)a0b,a0,Rcode://
>> > + SqueakContributionHelp
>> > +     openDockingBarMenuThat: [:m | (m owner submorphIndexOf: m) = 1]
>> > +     filterItem: ''Update'';,a0,Rcode://
>> > + SqueakContributionHelp
>> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
>> > +     filterItem: ''Monticello
>> Browser'';,,a0b,a0,a0b,a0,a0i,a0,a0b,a0,a0b,a0,a0b,a0,a0b,a0,a0i,a0!!'
>> readStream nextChunkText)
>> > +             key: #firstContribution;
>> > +             shouldStyle: false;
>> > +             yourself!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>furtherConcepts (in
>> category 'pages') -----
>> > + furtherConcepts
>> > +     "This method was automatically generated. Edit it using:"
>> > +     "SqueakContributionHelp edit: #furtherConcepts"
>> > +     <generated>
>> > +     ^(HelpTopic
>> > +         title: 'Further Concepts'
>> > +         contents:
>> > + 'Further Concepts
>> > +
>> > + * Change sets: Usually, new proposals are best exchanged through an
>> inbox version. However, some ideas consist of changes to multiple packages,
>> when it becomes tricky to work with multiple inbox versions. In this case,
>> a change set is a good alternative. You can open a dual change sorter from
>> the Tools and Changes menus in the docking bar and make a yellow click on
>> the change set list on the left to bring up some options. Create a new
>> change set and copy or move all relevant changes to it. Add a preamble to
>> the change set to add an explaining message and finally file out or mail to
>> list it directly. To install a change set, you can file in it from the file
>> list or by dragging it into the image.
>> > + * Preambles and postscripts: Some changes make it necessary to run
>> some scripts before or after loading the new code to perform any migrations
>> or changes to the object graph. This is possible through preambles and
>> postscripts. To add or edit a script for a Monticello package, select it in
>> the Monticello browser and press the Scripts button. Add your logic to the
>> code, test it, accept it, and include it in your next inbox version. Note
>> that preambles and postscripts in Trunk packages are required to be
>> idempotent and may be evaluated multiple times. For changesets, you can add
>> a preamble and a postscript as well from the yellow-button menu of the
>> change set list in the change sorter.
>> > + * If you identify any other contribution-related concepts that should
>> be mentioned or explained in greater detail here, please feel free to add
>> them here. This would make an ideal first contribution. :-)!!
>> > + ]style[(16 4 12 256 18 10 5 5 7 111 23 5 4 4 4 29 14 60 8 4 12 47 7
>> 13 9 37 26 266 18 15 7 561)a0b,a0,a0b,a0,a0i,a0,Rcode://
>> > + SqueakContributionHelp
>> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
>> > +     filterItem: ''Dual Change Sorter'';,a0,Rcode://
>> > + SqueakContributionHelp
>> > +     openDockingBarMenuThat: [:item | (item respondsTo:
>> #updateContents) and: [(item instVarNamed: ''wordingSelector'') =
>> #browseChangesLabel]]
>> > +     filterItem: ''Dual Change
>> Sorter'';,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,Rcode://
>> > + SqueakContributionHelp
>> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
>> > +     filterItem: ''File List'';,a0,a0b,a0,Rcode://
>> > + SqueakContributionHelp
>> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
>> > +     filterItem: ''Monticello Browser'';,a0,a0i,a0!!' readStream
>> nextChunkText)
>> > +             key: #furtherConcepts;
>> > +             shouldStyle: false;
>> > +             yourself!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp
>> class>>openDockingBarMenuThat:filterItem: (in category 'support') -----
>> > + openDockingBarMenuThat: menuBlock filterItem: filterString
>> > +
>> > +     | dockingBar menu |
>> > +     dockingBar := (self currentWorld mainDockingBars ifEmpty: [^
>> self]) first.
>> > +     menu := (dockingBar submorphs select: #isMenuItemMorph) detect:
>> menuBlock ifNone: [^ self].
>> > +     dockingBar selectItem: menu event: self currentEvent.
>> > +     menu subMenu setProperty: #matchString toValue: filterString.
>> > +     menu subMenu displayFiltered: self currentEvent.
>> > +     ^ nil "do not answer a Behavior here, which would trigger another
>> browser when sending this message from a TextURL"!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>pages (in category
>> 'accessing') -----
>> > + pages
>> > +
>> > +     ^ #(contributingToSqueak communityModel firstContribution
>> squeakInboxTalk furtherConcepts)!
>> >
>> > Item was added:
>> > + ----- Method: SqueakContributionHelp class>>squeakInboxTalk (in
>> category 'pages') -----
>> > (excessive size, no diff calculated)
>> >
>> > Item was added:
>> > + TextAnchor subclass: #SqueakHelpTextImage
>> > +     instanceVariableNames: ''
>> > +     classVariableNames: ''
>> > +     poolDictionaries: ''
>> > +     category: 'Help-Squeak-Project'!
>> > +
>> > + !SqueakHelpTextImage commentStamp: 'ct 6/21/2022 22:54' prior: 0!
>> > + I embed a form into a text as a text anchor. I add support for
>> fileIn/fileOut by storing the form as a base64 string. In the future, I'd
>> like to make a great carrier and be moved "upstream" to a real Trunk
>> package. For now, I still provide my humble service to some pages in the
>> Squeak help.!
>> >
>> > Item was added:
>> > + ----- Method: SqueakHelpTextImage class>>forForm: (in category
>> 'instance creation') -----
>> > + forForm: aForm
>> > +
>> > +     ^ self new
>> > +         form: aForm;
>> > +         yourself!
>> >
>> > Item was added:
>> > + ----- Method: SqueakHelpTextImage class>>scanCharacter (in category
>> 'fileIn/Out') -----
>> > + scanCharacter
>> > +
>> > +     ^ $m!
>> >
>> > Item was added:
>> > + ----- Method: SqueakHelpTextImage class>>scanFrom: (in category
>> 'fileIn/Out') -----
>> > + scanFrom: aStream
>> > +
>> > +     | base64 data form |
>> > +     base64 := aStream upTo: $;.
>> > +     data := Base64MimeConverter mimeDecodeToBytes: base64 readStream.
>> > +     form := ImageReadWriter formFromStream: data.
>> > +     ^ self forForm: form!
>> >
>> > Item was added:
>> > + ----- Method: SqueakHelpTextImage>>exportBase64 (in category
>> 'fileIn/fileOut') -----
>> > + exportBase64
>> > +
>> > +     ^ (ByteArray streamContents: [:stream |
>> > +         PNGReadWriter putForm: self form onStream: stream])
>> > +             base64Encoded
>> > + !
>> >
>> > Item was added:
>> > + ----- Method: SqueakHelpTextImage>>form (in category 'accessing')
>> -----
>> > + form
>> > +
>> > +     ^ self anchoredMorph image!
>> >
>> > Item was added:
>> > + ----- Method: SqueakHelpTextImage>>form: (in category 'accessing')
>> -----
>> > + form: aForm
>> > +
>> > +     self anchoredMorph: aForm asMorph.!
>> >
>> > Item was added:
>> > + ----- Method: SqueakHelpTextImage>>writeScanOn: (in category
>> 'fileIn/fileOut') -----
>> > + writeScanOn: aStream
>> > +
>> > +     aStream
>> > +         nextPut: self class scanCharacter;
>> > +         nextPutAll: self exportBase64;
>> > +         nextPut: $;.!
>> >
>> > Item was changed:
>> > ----- Method: SqueakProjectHelp class>>pages (in category 'accessing')
>> -----
>> > pages
>> > +     ^#(workingWithSqueak squeakUserInterface extendingTheSystem
>> squeakResourcesOnline)!
>> > -     ^#(extendingTheSystem squeakResourcesOnline squeakUserInterface
>> workingWithSqueak)!
>> >
>> > Item was changed:
>> > ----- Method: SqueakProjectHelp class>>squeakResourcesOnline (in
>> category 'pages') -----
>> > squeakResourcesOnline
>> >     "This method was automatically generated. Edit it using:"
>> >     "SqueakProjectHelp edit: #squeakResourcesOnline"
>> > +     <generated>
>> >     ^(HelpTopic
>> >         title: 'Squeak Resources Online'
>> >         contents:
>> > 'Web sites
>> >
>> > Main site of Squeak
>> >     http://www.squeak.org
>> > Weekly Squeak
>> >     http://news.squeak.org
>> > Downloads for many versions
>> >     http://www.squeak.org/downloads
>> > Main site of OpenSmalltalk VM
>> >     https://github.com/OpenSmalltalk/opensmalltalk-vm
>> > + GitHub Issue Tracker
>> > +     https://github.com/squeak-smalltalk/squeak-object-memory/issues
>> >
>> > Mailing lists
>> >
>> > beginners
>> >     This is the place to ask even the most basic questions. Don''t be
>> afraid. Just ask. The community will help you get started with Squeak.
>> >     http://lists.squeakfoundation.org/mailman/listinfo/beginners
>> > +     http://forum.world.st/Squeak-Beginners-f107673.html (currently
>> defect)
>> > -     http://forum.world.st/Squeak-Beginners-f107673.html
>> >
>> > squeak-dev
>> >     This is the main Squeak mailing list. Join that list to be part in
>> the community. Subscribe to the mail server or read on a forum.
>> > +     For more information on the community and the contribution
>> process, check out the tutorial Contributing to Squeak in the following
>> pages.
>> >     http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev
>> > +     http://forum.world.st/Squeak-Dev-f45488.html (currently defect)
>> > -     http://forum.world.st/Squeak-Dev-f45488.html
>> >
>> > vm-beginners
>> >     This is the entry point for people who want to learn more about how
>> Squeak runs on your operating system. You may ask even basic questions. :-)
>> >     http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
>> > +     http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html
>> (currently defect)
>> > -     http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html
>> >
>> > vm-dev
>> >     This is the place where discussions about the OpenSmalltalk virtual
>> machine happen. Join that list the be a part of the community.
>> >     http://lists.squeakfoundation.org/mailman/listinfo/vm-dev
>> > +     http://forum.world.st/Squeak-VM-f104410.html (currently defect)
>> > -     http://forum.world.st/Squeak-VM-f104410.html
>> >
>> > Books
>> >
>> > Squeak By Example
>> >     A beginners textbook, based on Squeak 3.9 and so a little out of
>> date in some visual aspects and some details. Still a valuable resource.
>> The content is maintained in github at
>> > https://github.com/SquareBracketAssociates/SqueakByExample-english
>> > but a prepared and ready to read pdf version can be found at
>> >
>> https://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac
>> >
>> > Other books
>> >     Many books about Squeak and Smalltalk in general have been made
>> available and are hosted at
>> > http://stephane.ducasse.free.fr/FreeBooks.html!!
>> > + ]style[(11 19 2 21 1 15 22 1 27 2 31 1 29 2 49 1 20 2 63 2 13 1 1 11
>> 135 2 60 2 51 21 10 2 223 22 26 61 2 44 21 14 145 63 2 58 21 6 134 57 2 44
>> 21 5 2 17 2 177 66 62 87 2 11 94 46)b,I0i,I0,Rhttp://www.squeak.org
>> ;,I0,I0i,Rhttp://news.squeak.org;,I0,I0i,I0,Rhttp://
>> www.squeak.org/downloads;,I0,I0i,I0,Rhttps://
>> github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://
>> github.com/squeak-smalltalk/squeak-object-memory/issues
>> ;,I0,I0b,I0,,i,,b,Rhttp://
>> lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://
>> forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://
>> HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://
>> lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://
>> forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
>> ;,,Rhttp://
>> forum.world.st/Smalltalk-VM-Beginners-f3068605.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev
>> ;,,Rhttp://forum.world.st/Squeak-VM-f104410.html;=,,b,,i,b,,Rhttps
>> > ://
>> github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac;I1,,i,,Rhttp://stephane.ducasse.free.fr/FreeBooks.html;I1!!'
>> readStream nextChunkText)
>> > - ]style[(11 19 2 21 1 15 22 1 27 2 31 32 49 2 13 1 1 11 135 2 60 2 51
>> 2 10 2 132 61 2 44 2 14 145 63 2 58 2 6 134 57 2 44 2 5 2 17 2 177 66 62 87
>> 2 11 94 46)b,I0i,I0,Rhttp://www.squeak.org;,I0,I0i,Rhttp://
>> news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloads;,I0,Rhttps://
>> github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://
>> lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://
>> forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://
>> lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://
>> forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://
>> lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://
>> forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://
>> lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://
>> forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://
>> github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac;I1,,i,,Rht
>> > tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream
>> nextChunkText)
>> >             key: #squeakResourcesOnline;
>> >             shouldStyle: false;
>> >             yourself!
>> >
>> >
>>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220623/07ac94a8/attachment.html>


More information about the Squeak-dev mailing list