20130223

Wochenrückblick

Also diese Woche habe ich ja nochmal wieder viel Zeit mit Kleinkram verbracht. Aber ich bin zufrieden: ich habe viel gelernt, und Lino ist “von innen schöner” geworden.

Die Testsuite läuft noch immer nicht, und ich denke inzwischen, dass ich die nochmal wieder links liegen lassen sollte, um mich dringenderen Dingen zu widmen. Unit Tests sind zwar wichtig, machen Spaß und bringen mir “Vertrauen in meinen Code”, aber sie sind kein sichtbares Resultat. Momentan braucht Lino zuerst mal eine weitere benutzbare Anwendung. Stabilität wird erst wichtig, wenn es genügend Kunden gibt, die bereit sind, die Kosten dafür zu zahlen.

Insbesondere sollte also mal endlich ein erster Prototyp von Lino Così fertig werden, damit Andreas mit Testen anfangen kann.

Vielleicht ebenso wichtig wäre die Zuendeführung der begonnen Aufteilung von Lino in drei Teile.

Was Lino eigentlich ist

Was ist lino.Lino eigentlich für ein Ding?

  1. Es ist ein Django-Setting, also ein globaler Name in der settings.py, der einmal gesetzt wird und dann im gesamten Leben des Prozesses konstant bleibt und von überall her abgerufen werden kann.

  2. Es ist ein spezielles Setting, dessen Datentyp nicht wie bei allen anderen Settings string oder list oder dict ist, sondern object.

    Im Gegensatz zu normalen Settings hat dieses Setting also selber Attribute, die dann nicht mehr groß geschrien zu werden brauchen. Diese Attribute können Variablen oder Methoden sein. Die Instanzvariablen dieses Objekts können sich ändern, ohne dass Django davon etwas mitbekommt. Außerdem kann man es unterklassieren, wie z.B. lino.ui.Lino es tut.

  3. Es hat insbesondere auch eine hoch komplexe Methode namens startup, die automagisch zu Beginn jedes Prozesses aufgerufen wird, nachdem Django seinen module cache fertig gefüllt hat.

Aber der Name ist nicht gut, weil settings.LINO nichts aussagt über all dies.

Weiter geht’s im eigens dafür eröffneten Ticket docs/tickets/74.

A quick release

I promised to Gerd a bugfix release for this week-end, so here it is: Lino 1.5.1 and Welfare 1.0.13

A bug in lino.modlib.school

The “Events” panel on a teacher in lino.modlib.school didn’t show any rows. It shows all Events which are indirectly assigned to this teacher because they are on a course of this teacher.

Note that lino.projects.homeworkschool is a sleeping project which isn’t even in prototype phase.

Renamed lino.apps to lino.projects

Uff: I renamed the lino.apps package to lino.projects. This was another move inspired (or encouraged) by Two scoops of Django (see also docs/tickets/72).

I still think that Django’s vocabulary is unfortunate: Django’s “apps” are in fact “plugins” or “modules”, and Django just has no namespace left for what I would call an “application”, but I want Lino to be easily understandable by an average Django user, and the name lino.apps was clearly too irritating.