Open aadsm opened 11 months ago
Hi! Sorry for taking so long to respond. Back in November ... I couldn't.
You are right that development appears to be a bit "chaotic". That's mostly because until very recently it was only Dan and me working on this (after the initial work leading up to the paper in 2014), and Dan prefers to use the live system rather than git, and we moved from the lively-web
site to smalltalkzoo
. I'm now referring to the Smalltalk Zoo as our "lively" version. Probably
I added a "final" changeset to the lively-web
update stream that automatically changes the image's updateURL
to the smalltalkzoo
stream. And I changed the lively page there to direct visitors to the Zoo site.
See #6 for some recent discussions around collaborating.
When Dan publishes an update on the Smalltalkzoo site, I need to go in manually and push that to the smalltalkzoo
branch, and then merge that into main
. Similarly, if I commit an update to main
, I need to merge that into the smalltalkzoo
branch and pull on the Smalltalkzoo site. Both git and zoo are supposed to be identical. Update 363 is there now, it just took me a log time to merge (it was only in the Smalltalkzoo stream but not committed to git).
I recently added copy/paste to the stand-alone version too, as well as support for HTTP put so you can work with local files more easily (I added a dev server accepting PUT requests, too).
I initially intended the stand-alone version only for testing, but it is useful in its own right, partly because it loads so much faster than Lively, and can be used without an internet connection.
I have not had time to look at your fork yet but would welcome PRs (relative to my main
). I hope the above makes some sense, I'm happy to work on finding a process that's comfortable for every contributor (thank you so much!)
You can find the additional methods for the NoteTaker's Display
morph by bringing up the lively halo for the display, and clicking its orange script handle (see screenshot below)
Hi,
While trying to use the "standalone" version for my own purposes, I found some bugs in the image itself and in the Smalltalk78.js file. I've fixed them and have them locally, but to be honest while I was debugging and understanding how everything work together, the whole development process seems a bit chaotic to me. Here's what I found that looks confusing, at least to me that has never seen this project before.
As far as I can see there are a couple of different versions or deviations of the code here:
main repo (https://github.com/codefrau/Smalltalk78/tree/main) It stands on itself through Smalltalk78.js. This is the one I forked and worked with. It has updates up to 362.
github page (https://codefrau.github.io/Smalltalk78/) The image used has updates up to 346 (https://smalltalkzoo.thechm.org/images/updated.st78). This can be fixed by running
UserView updates
that will update up to 363 (this is 1 more than what is found on the main branch). The reason is because theSmalltalk.updateURL
used is "https://smalltalkzoo.thechm.org/users/codefrau/St78/updates/" and not the expected (at least by me 😅) "https://codefrau.github.io/Smalltalk78/updates". However, I don't know where this0363ChangesApr10.st
is coming from, as it doesn't exist in this git repo.smalltalkzoo version (https://smalltalkzoo.thechm.org/users/codefrau/St78/updates/) This seems to be the source of the image and updates used on the github page. From the looks of its .git, the contents seem to be coming from the smalltalkzoo branch. Not sure why the github page version is using the same "data" as the smalltalkzoo version.
lively version (https://lively-web.org/users/bert/Smalltalk-78.html, sorry about the url but codefrau seems to be empty) "lively-web" branch. It uses the image https://lively-web.org/users/bert/St78/updates/updated.st78, but it gets its updates from the smalltalkzoo version (which is probably a good thing given how behind https://lively-web.org/users/bert/St78/updates is). This version works differently because lively is supporting its bootstrap instead Smalltalk78.js. The other big difference I found is the image of the lively world as well. I found a bunch of updates added to the lively side, for which I do not know the source. An example is
onKeyDown
on an instance ofCanvasMorph
(Notetaker.Display
).lively.morphic.CanvasMorph
definition doesn't have this function. It kind of seems that it was patched in for theNotetaker.Display
only? Anyway, a bunch of issues I found was related to a few of theseNotetaker.Display
scripts that do not exist in Smalltalk78.js but the onkeydown there assumes they do. This is why copy/paste is not working over there.I've also added some new features that I needed (what led me to this rabbit hole in the first place). I wanted to do PRs with my fixes, etc. but not really sure the best way to do that, and on which branch. I will be pushing these to my fork pretty soon though: https://github.com/aadsm/Smalltalk78/.