[Squeak-ev] SqueakInf11-Schlager Anmerkungen

stepken stepken at web.de
Son Mar 11 13:21:16 UTC 2007


SqueakInf11-Schlager.pdf

Hallo, Markus!

Vielen Dank für Dein Tutorial, hätte noch einige Anmerkungen dazu...:

Für den Einsteiger ist es schwer, aus der Fülle der Informationen ein korrektes, mentales Modell aufzubauen, und dann die Details korrekt einzuordnen. Aus didaktischer Sicht halte ich es für besser, zuerst ein mentales Modell von Smalltalk, Squeak, Etoys zu vermitteln und dann erst mit Details zu beginnen.
So fände ich es sehr hilfreich, wenn man auf die Unterschiede zwischen Smalltalk und konventionellen Programmiersprachen hinweist. In Smalltalk greift ein Programm nicht in einen Datenbereich hinein, es wird also ein Objekt nicht von außen verändert, sondern es wird kommuniziert -> Sender an Receiver - "Schminke Dich!", und das Objekt (Frau, z.B.) weiß dann selber, wie es sich anmalt, weil - nur es kennt sich selber am besten ... Das erklärt auch, daß viele Methoden nur bei bestimmten Objekten verfügbar sind. So weiß sich ein Text oder eine Kurve selber einzufärben, während z.B. das Farb-Halo bei Pixelgrafiken keine Auswirkungen hat. Weiterhin unterscheidet Squeak zwischen Vektor-Objekten und Pixelobjekten, wobei das Malprogramm nur geschickt suggeriert, daß man Pixel vergrößen könnte -> Es rechnet beim Vergrößern die Bauklötze weg. Das hast Du zwar später erklärt, aber der Zusammenhang mit Halo's die z.B. da sind, aber nix bewirken - der lohnt sich schon früher zu erwähnen ... -> Spart Frust ... 
Weiterhin wäre die Unterscheidung zwischen Objekt und seiner Repräsentation sehr wichtig. Erstelle ich nämlich mittels eines Behälters mit "Objekt an Zeiger..." eine Animation, so kann man z.B. nicht durch Skalieren eines Frames im Behälter in die Animation eingreifen -> es wird immer das Originalobjekt genommen, obwohl es im Behälter z.B. skaliert wurde. Nur so ist z.B. das mit Ziehe Kostüm an .. zu erklären -> der Behälter wird zu einer Kleiderkammer, wo immer abwechselnd ein Kostüm herausgegeben wird, was sich das Objekt dann überzieht.

S. 72 GGT -> Warum nicht auch den KGV daraus errechnen? KGV = Produkt beider Zahlen/GGT

S. 76 -> Kann ein Programm nicht aus vielen Algorithmen gleichzeitig bestehen?

S. 84 -> Warum Python? Warum nicht in Smalltalk das Beispiel?

S. 87 -> Flussdiagramme. Ist Dir schon aufgefallen, daß die Kacheln in den Etoys Skripten exakt den Nassi-Shneydermann - Diagrammen entsprechen? (Struktogramme bei Dir genannt?) Wozu also Flußdiagramme und UML?

.sar - Pakete, das Standard-Format für Softwarepakte, kann man laden mit SARInstall installSAR: 'Paman.sar'.

Überhaupt, warum nimmst Du Squeak 3.9? Das OLPC - Image 1111 (latest version) von tinlizzy mit den Online Patches hat sehr viele Bugs korrigiert, darunter z.B. Text in/über mehrere Kurven hintereinander fließen lassen funktioniert nun klasse, Installtion von Zusatzfonts, RepeatTimes - Kachel in Etoys, Connectoren - richtig geil ..(kann man Motor mit Kurbelwelle, Pleuel .. in wenigen Minuten animieren), schau Dir mal "Curvy Connectors" (mit Shift Taste ziehen) und das Verhalten von Random - Connectors an ... (Die rasten ineinander ein, "verfolgen" Mittelsenkrechten ...u.s.w.  ... feine Dinge. Erwähnst Du natürlich wegen dem Abstieg auf 3.9 nicht ... OLPC auf 3.8 basierend ist viel weiter, als sie 3.9 Version von Squeakland.

Daß man zuerst immer ein Projekt aufmachen soll, finde ich sehr wichtig. Ansonsten verstrickt man sich bei Projekten in Projekten, die sich plötzlich nicht mehr laden lassen ...  
 
Außerdem bin ich ungücklich, daß das Auto oder die Mondlandefähre als Beispiele von Dir nicht geschätzt werden.

Mich hat dies hier fasziniert, Physik Animation: 

http://icampus.mit.edu/MagicPaper/

Hier das Video:

http://vowe.net/archives/007742.html

Squeak kann sowas aber auch ... ich implementiere gerade in einige Etoys - Objekte spezielle Eigenschaften, die lernen fallen. So habe ich z.B. in Objekt Kugel folgendes implementiert. Die Kugel kann nun einen selbstgemalten Hang herunterrollen, beschleunigt, hüpft, springt, nimmt bergab fahrt auf und bremst ab, wenn ein Hügel kommt, und titscht mit anderen Kugeln herum ... Billiard... So kann ich z.B. eine Half-Pipe malen, und von rechts und links Kugeln fallen lassen, die sich treffen, übereinander springen, aneinander abprallen ... Ich habe da EToys - Kacheln gemacht - "feel gravity" "feel material" "feel friction" ... weiß noch nicht, ob das das richtige Konzept ist .. (Vorschläge?)
Jedenfalls fährt nun mein Auto schon den Berg herunter und springt über Schluchten ... das mit den Massenträgheitsmomenten muß ich noch implementieren ... etwas schwieriger ... dauert noch ein paar Tage ...
Ich werde es jedoch nur für das OLPC Image machen, 3.9 ist hinter dem Mond, und für mich tot ...

Interessant ist auch die Generierung von Morphen - Welt->Neuer Morph-> Alphabetische Liste ... Calendar ... eine Fülle von Objekten, die da unter OLPC - 1111 zur Verfügung stehen ... auch kann man Bilder in Squeak herein laden ...

So habe ich z.B. von der Merzedes - Benz Homepage ein Auto aus verschiedenen Perspektiven geladen, immer 5° - Winkel und fahre nun mit diesem 3-D Auto über einen Gelände Pacours, per Joystick gesteuert ... Photorealistisch ... Funktioniert mit EToys, Behälter und Zeiger auf Objekte in Behälter mit Richtungsänderung koppeln ... 

Auch läßt Du unerwähnt, daß diese Zeiger "Objekt auf Zeiger" eigentlich Iteratoren sind ... Etoys bietet ja nun fast alles an, was OO - Programmierung ausmacht ... 

Außerdem wäre hilfreich, wenn man z.B. Text aus einem Herzchen über eine Kurve in ein anderes Herzchen fließen läßt, das einmal zu zeigen, wie es in Etoys geht, und das dann mit 10 Zeilen reinem Smalltalk - Code zu vergeichen -> Das gibt einem das Gefühl, daß man wirklich versteht, was EToys eigentlich für Code generiert dahinter ... Ich habe auch einige Skripte, z.B. die Mondlandefähre mit Joysticksteuerung einfach mal händisch im Workspace nachprogrammiert ...
 
So, das wäre es erst einmal ... Soweit meine Anregungen ... 

Have fun, Guido