2018-09-21
___A_n_o_t_h_e_r__S_m_a_l_l_t_a_l_k__j_o_u_r_n_e_y___________________

I have spent the last weeks with another visit to the land of
Smalltalk.  As I have described earlier[0] Smalltalk is a really
interesting OO langugage with its own eco system.

This time I have been choosing Squeak[1] as my platform in
preparation of a little talk[2] I gave at my local computer club.

Thanks to krono[3] for all the help and codezeilen[4] for helping out
with my patches.

While the talk had the goal to give a small introduction into
Smalltalk I wanted to write some little program to get back into the
explorative development mode of Smalltalk writing.

So naturally I have implemented a small gopher client[5] that will
display gopher sites as a BookMorph and is able to render images as
well.

You can finde screenshots here[6] and here[7].

As always finding the right classes has been the biggest obstacle for
me. This time Squeak has been an even bigger target in terms of
classes as Cuis. That's ~2250 classes vs. ~550.

So after some unsuccessful attempts with just a TextMorph inside a
Scrollpane inside a PasteUpMorph, I finally settled with a BookMorph
whose original intent has been to do interactive books and
presentations.

So you will get a widget with history 'paging' (even with cheesy page
turning sounds!) for free. Which is excellent for implementing gopher
on it turned out.

The rendering logic has been written in an afternoon. Most of the
rest of the 2-3 days of time went into diagnosing resizing /
scrolling bugs which have been mitigated by moving to BookMorph.

The next step for me is to learn how to really build a UI in
Smalltalk. Krono pointed me to the Toolbuilder classes and their
building spec and I have started to create a client based on my
initial set of classes, this time refactored as a Smalltalk model. I
want to do it with the model/viewer paradigm as I hope to gain some
insights about how this all really works and whether that's a good
fit for another ongoing project of mine.

Another issue is to learn how to do UTF-8 properly with Smalltalk /
Squeak and setup a proper code repository with my own gitd.  Learning
all the tools has been a challenging but pleasant experience. Also
the community in itself is very newcommer friendly and welcoming.

Stay tuned for further Smalltalk news!


___References________________________________________________________

[0]: gopher://vernunftzentrum.de:70/0/ckeen/phlog/2018-03-11-On-smalltalk.md
[1]: https://squeak.org/
[2]: gopher://vernunftzentrum.de:70/9/ckeen/smalltalk.pdf
[3]: https://toot.berlin/@krono
[4]: https://freehold.earth/@codezeilen
[5]: gopher://vernunftzentrum.de:70/9/ckeen/Gopher-ck.1.mcz
[6]: https://vernunftzentrum.de/media/e90c868d-594c-4cb6-bd16-47c55937b6f4/FirstMorph.png
[7]: https://vernunftzentrum.de/media/70e376da-0a5d-4405-b908-d2927c27f092/Book.png