.. bin ich mal wieder in Wards Wiki gestolpert.
Lovely. :-)
.. bin ich mal wieder in Wards Wiki gestolpert.
Lovely. :-)
Eines meiner Lieblingszitate über Objektorientierung kommt von Ward Cunningham: "Jedes Objekt ist eine kleine Sprache".
Ich verstehe das so das man mit jedem Objekt das man entwirft eine kleine Sprache schreibt. Eine Sprache die es einfach macht die lösung für ein spezifisches Problem darzustellen.
Fast noch wichtiger finde ich aber jetzt gerade (wo ich mich auf Arbeit mit vielen globalen Variablen herumschlage) das jedes Objekt eben auch einen eigenen Namensraum darstellt - der optimaler weise auch verschachtelt werden kann.
Wunderschön finde ich das zum Beispiel bei Ruby sichtbar: Wenn man in eine Datei direkt Code schreibt, dann ist dieser Code teil eines top-level objekts. Schreibt mann in einer Datei dann weitere Objekte, sind diese Objekte in diesem top-level objekt eingebettet.
Das Prinzip erweitert sich wunderbar zu paketen und paketen von paketen - öffentlichen und privaten klassen (fals man das braucht) etc.
Und das alles ohne ein weiteres Konzept einzuführen - nur die Objektabstraktion. (schnief Java?)
Warum nur machen das so wenige Programmiersprachen so? Objective-C jedenfalls hat noch nix in die Richtung. In C++ hat man sowieso verloren - C hat gar keine Objekte - aber man kann dafür jede Bibliothek als Objekt sehen (so man will).
Stellt sich die Frage: Übersehe ich irgend ein total geiles Feature das man erhält wenn man Pakete als ein eigenes Feature in eine Sprache einbaut?
Hmpf.
Heute habe ich mir mit Felix den Template Teil des Blogs, an dem wir gerade schrauben, angeschaut. Ziel war es eine Blog-Posting Seite zu bauen die möglichst einfach zu warten ist und gleichzeitig möglichst alle Features bietet die auch die Standard Wiki-Editier-Seite von Trac bietet.
Das geht überraschenderweise sogar ganz gut. Denn: Trac ab 0.11 verwendet Genshi als Template-Sprache und Genshi wiederum ist XML mit XPath allüren.
Will heißen wir konnten uns das Template für die normale Wiki-Eingabe nehmen und dann sagen: Aber die Überschrift oben "Editing XXXXX" soll bitte weg und dafür soll da stehen "Create Blog Entry" - ein Feature das die meisten Template-Engines schon mal nicht bieten.
Und das ist natürlich geil, weil wir nicht den kompletten Template-Source kopieren müssen um das gleiche look und feel zu kriegen.
Nur das XPath natürlich wie alles bei XML total kompliziert macht. Das heißt zum Beispiel das man damit nicht sagen kann, nimm dass und ersetze darin das gegen dies. Neeeiiiin. Natürlich ist alles andersherum.
Man sagt also: Meine Welt ist so definiert, das dies immer wenn es auftritt durch das ersetzt wird und jetzt hole ich mal das original in meine Welt hinein und magisch wird darin alles ersetzt.
Großartig.
Klar das geht - aber das hätte man auch einfacher haben können.
p.s.: Weiß jemand wie man mit XPath aus dieser Struktur
<fieldset id="changeinfo"> <legend>Change information</legend> <div class="field"> <label for="tags">Tag under: (<a href="http://xn--hcker-gra.net/cgi-bin/trac.cgi/tags"> view all tags</a>)</label><BR/> <input title="Comma separated list of tags" type="text" id='tags' name="tags" size="30" value="blog"> </div> <div class="field"> <label>Comment about this change (optional):<br /> <input id="comment" type="text" name="comment" size="60" value="" /></label> </div><br /> <div class="options"> <label><input type="checkbox" name="readonly" id="readonly" /> Page is read-only</label> </div> </fieldset>
nur das div mit dem label und input für den Kommentar herausmatchen kann?
Unsere Versuche sind erst einmal bei diesem XPath query stehen geblieben div[@id='changeinfo1']/div[@class='field']
.
GRANDIOS.
Boah war ich gestresst von der Versammlung - aber zumindest ist das Ergebnis zufrieden stellend - die wichtigsten Änderungen zur Satzung sind durchgekommen: Die neue Finanzordnung und die Regelung zum dezentralen Parteitag.
Sonst war aber leider nicht viel los - die Tatsache das so viele Piraten auf einem Fleck saßen konnte nicht genutzt werden - ausser um über GO-Anträge zu streiten.
Der Inhaltlich produktivste Teil der Veranstaltung wohl das gemeinschaftliche Besäufnis am Abend nach dem ersten Tag. Da wurde wenigstens mal überhaupt etwas Inhaltliches getan (Wenn ich mich auch nicht mehr an alles erinnern kann).
Also ein gemischtes Fazit.
denn sie hat 804 Mitglieder.
Also im letzten Jahr etwas mehr als ein Mitglied pro Tag.
GO Antrag auf:
ARGHHHHHHH
Interessante Begriffe: Filibuster
"Nur haarscharf ist das amerikanische Volk heute der Dollarkatastrophe vorbeigeschrammt" so Winfried Engelke.
Engelke hatte in einem Akt heroischer Selbstaufopferung bei der Versteigerung des letzten und einzigen Dollars in der Piraten Barkasse (nein, nicht diese) den Preis auf die Spitze getrieben und ihn für astronomische 20 € erworben.
"Dies ist der Beginn einer neuen Ära" mit diesen Worten leitete Engelke die Tradition des immer wieder versteigerns dieses Dollars zu jedem Parteitag ein.
Wir sind begeistert.
haben immer einen Grund aus dem heraus sie entwickelt wurden. Nur leider wird dieser Grund viel zu oft beim Vermitteln der Regeln nicht mehr mitgereicht.
So gibt es Programmierer die ihren Code nicht einrücken weil sie den Grund dafür nicht kennen oder verstehen und Politiker die z.B. am Patentsystem schrauben ohne zu verstehen was der Grund dafür eigentlich war.
Und genau das ist ein Problem - jede Regel hat einen Sinn - und diesen Sinn kann man nur bewerten wenn man eben genau weiß warum sie eingeführt wurde.
Denn wenn dieser Sinn nicht mehr erfüllt wird, dann muss man die Regel verändern.
Und das fällt schwer - vor allem wenn es eine Gruppe von Menschen ist (sagen wir 40-100) die sich jetzt gerade an ein paar Regeln gewöhnt hat und noch nicht weiß wie ihre Zusammenarbeit unter den neuen Regeln aussehen wird.
... ist schnell ausgeträumt wenn man sich die Liste der Änderungsanträge für den Piratenparteitag anschaut.
Da kann man wirklich nur noch von einer DOS Attacke sprechen.
Ich bin mal gespannt was wir daraus machen werden - ob sich wohl dieses Jahr mehr Leute vorbereitet und alles mal gelesen und sich eine Meinung gebildet haben?
Ich hoffe ja für das nächste Jahr, das man im Wiki jedem Antrag Punkte geben kann, damit wenigstens die wichtigsten nach vorne kommen.
Für dieses Jahr wünsche ich mir, dass alle, die noch Diskussionsbedarf haben, in einem Raum eingeschlossen werden und dort Diskutieren bis sie genug haben, während der Rest sich um andere Dinge kümmern kann. Die Abstimmungen werden dann gerafft in einem Zeitraum ohne viel Diskussion gemacht damit es schnell geht.
Na mal schaun.
Update: Tja, die Merhheit hat sich nicht vorbereitet und möchte das sich der Rest auch mit ihnen in Diskussionen abbricht. Mal schauen wie viel Zeit dann noch übrig bleibt.