[squeak-dev] SqueakMap server
goran at krampe.se
Tue Apr 15 07:34:46 UTC 2014
Just FYI, I don't track all of squeak-dev (no time), but I can promise
to read and reply (to questions) on all threads mentioning SqueakMap in
Chris Muller knows SM in-and-out I would say and yes, the web UI is
separated from the domain model. In fact, the *exact same* domain model
is used in your image when you use SMLoader (or its cousins), SMLoader
is just a "different UI" on top of it.
That was indeed one of the *key design points* that unfortunately was
never really understood by large parts of the community - my guess at least!
The idea was always that we would maintain a map together, the domain
model, and we could operate on it *in our own images*. This means that
say, iterating over all packages and selecting a subset of them and
installing them - that is trivially done in a few lines of code.
Frank: There is "no" client-server protocol to speak of. The client just
does a HTTP GET to check the transaction counter of the domain model at
the SqueakMap server - if its higher than the local counter - we do
another GET to fetch a gzipped ImageSegment of the domain model.
...anyway, if anyone has any questions, feel free to ask and I will do
my best to answer.
SIDENOTE: The web UI really sucks code wise. It was written using
HttpView, my own web layer which actually inspired Avi in some ways when
he did Seaside. Today I would personally just clone off the UI of
SmalltalkHub (written all in Amber) or write a new one in Seaside or
some other proper web layer. Both those approaches need some attention
to "bookmarkable URLs though", SM is very restful which is IMHO very
important to make things googlable. And oh, for any restful API I would
use Seaside-REST, its really nice and I use it now in a project at 3DICC.
More information about the Squeak-dev