Klaus Füller wrote:
So.
Die erste Unterrichtseinheit mit Squeak zum Thema OOP im Jahrgang 12, Grundkurs Informatik, ist vorbei. Hinter mir sitzen gerade meine Schülerinnen und Schüler und schreiben einen Kurstest.
Gratuliere :-)
Ab dem nächsten oder übernächsten Durchlauf gibt es in Hessen Zentralabitur. Dann ist unklar, ob innovative Ansätze noch möglich sein werden. Vielleicht legen die uns auf Java oder gar auf Borland fest.
Aber jetzt meine Fragen:
Ich möchte Squeak-Code "verbreiten". Wie macht man das am Besten?
Ich empfinde es als unheimlich, wenn ich ein Projekt abspeichere und wieder 'reinlade. Ich weiß nie genau, welche meiner Objekte, die vielleicht noch irgend wo in lokalen Variablen eines Workspace stecken, da mit transportiert werden. Ich will möglichst saubere Software "exportieren".
Außerdem habe ich manchmal seltsame Effekte / Inkompatibilitäten, wenn man Morphic-Projects von einer Squeak-Version zur nächsten transportiert.
Also bin ich dazu übergegangen, meine "Packages" zu exportieren, ein neues Squeak "out of the box" zu starten, die Packages dort wieder zu importieren, einen Workspace, wie ich ihn mir wünsche, aufzusetzen und dann diesen Workspace zu speichern.
Wie macht ihr das?
Wenn du mit "Packages" ChangeSets meinst, dann machen das die meisten so. Es gibt aber weitere Möglichkeiten, siehe z.B. die FAQ: http://minnow.cc.gatech.edu/squeak/779
Wo kann man im Netz deutsche Squeak-Codes ablegen?
Da haben wir noch keine öffentliche Stelle. Möglich wäre es auf dem Squeak e.V. Swiki. Besser wäre vielleicht auf SqueakMap. Später könnte man bei Göran (betreut SqueakMap) Bedarf für einen neue Kategorie lokalisierter Software anmelden.
Wie sieht es mit Namensräumen aus? Offensichtlich sind die Klassen ein flacher Namensraum. Wie verhindert man da Kollissionen? Gibt es Namensregeln?
Üblich sind Präfixe, so wie KFSensor (für deine Initialen). Um Kollisionen zu verhindern, kann man sein Präfix registrieren: http://minnow.cc.gatech.edu/squeak/3318
Es gab Ansätze für "Environments" (NameSpaces), die aber noch nicht etabliert sind. Vielleicht in einer der nächsten Squeak-Versionen.
Wo finde ich eigentlich die Klasse "Sensor"? Ein Browser findet die Klasse nicht, wenn ich sie anlegen will, sagt mir Squeak, das es die schon gibt.
Da hilft dir der Kontext-Menü-Befehl "explain" weiter. Markiere einfach das Wort Sensor, wähle "explain", und dann siehst du das:
Sensor "is a global variable. Sensor is an EventSensor"
Sensor ist ein Überbleibsel aus der MVC-Programmierung und wird in Morphic eigentlich nicht mehr benötigt. Aus Kompatibilitätsgründen (und weil es so schön einfach ist) ist der aber noch da. Probier' mal beispielsweise "Sensor mousePoint".
- Bert