denn sie hat 804 Mitglieder.
Also im letzten Jahr etwas mehr als ein Mitglied pro Tag.
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.
Mal ein paar Stichworte:
schnief
Von dem Mitgliederausweis hinten:
Der Besitzer dieses Dokumentes ist berechtigt, sich seines Verstandes zu bedienen, Informationen zu produzieren, replizieren und konsumieren, sich frei und ohne Kontrolle zu entfalten in Privatspähre[sic] und Öffentlichkeit.
Behinderung dieser Rechte wird geahndet durch die Piratenpartei Deutschland.
GroĂźartig!
Das sind an sich identische Tätigkeiten - hat mir mein Vater heute klargemacht.
Klar, er ist ein alter Physiker und trauert immer noch ein wenig der Tatsache nach das ich keiner geworden bin.
Oder auch nicht, denn: Ein guter Experimentalphysiker arbeitet so, dass er in einer Versuchsreihe in jedem Schritt immer nur eine Variable verändert um methodisch vorzugehen. Entweder nimmt er eine (wirklich nur eine) Änderung an seinen Messinstrumenten, oder an dem Experiment vor.
Dazu dann natürlich noch einiges an Intuition welche Veränderung sinnvoll ist - experimentelle Physik ist eben auch eine Kunst, genau wie das Programmieren.
Ach ja, und natürlich schreibt er ein Protokoll um hinterher nachvollziehen zu können, was er eigentlich getan hat.
Beim Programmieren kann man diese Techniken genau so wiederfinden. Die Messinstrumente sind in der Regel UnitTests oder etwas äquivalentes (wobei UnitTests besser geeignet sind, da sie exakter messen können) und damit wird eine API dann abgeklopft.
Jetzt kommt bei uns Programmierern aber noch eine komplette Dimension dazu. Denn während ein Experimentalphysiker die Welt um ihn herum so hinnehmen muss wie sie ist, können wir Programmierer den Gegenstand unserer Tests beliebig verändern. Nur unser Phantasie schränkt uns ein.
Aber es läuft genauso: Ein Messinstrument, ein Stück Weltveränderung, ad infinitum.
Das letzte fehlende Detail ist das Logbuch: Das sind die schon geschriebenen Tests, die dokumentieren was wir schon herausgefunden haben.
Ich war wirklich überrascht wie weit die analogie trägt. Und auch die Implikation gefällt mir als UnitTest-Fan natürlich sehr. Und natürlich auch der Fakt das wir als Informatiker 'wieder mal' mehr können als die Physiker.
:-)
…die Syntax einer Sprache modifizieren?
In C natürlich. Das Problem ist klar: Makros können ja beliebige Ersetzungen im Text vornehmen und dann mit vielen Makros aus C Pascal zu machen geht auch - aber das will man ja nicht, denn sonst hat man das gleiche Problem wie die Bourne-Shell die irgendwann niemand mehr weiterentwickeln konnte.
Klar.
Andererseits nervt es wirklich unter Cocoa z.B. fĂĽr jede Iteration ĂĽber einen Array das hier zu schreiben:
NSArray *someStrings = [NSArray arrayWithObjects:@"first", @"second", @"third", @"fourth", nil]; NSString *eachString = nil; NSEnumerator *enumerator = [someStrings objectEnumerator]; while (eachString = [enumerator nextObject]) { NSLog(@"eachString is %@", eachString); }
Das heiĂźt, fĂĽr eine Schleife (zwei Zeilen) ha man noch mal mindestens zwei weitere Zeilen nur fĂĽr das Setup.
Das nervt so sehr, das viele Leute das etwas kĂĽrzen:
NSArray *someStrings = [NSArray arrayWithObjects:@"first", @"second", @"third", @"fourth", nil]; id eachString, enumerator = [someStrings objectEnumerator]; while (eachString = [enumerator nextObject]) { NSLog(@"eachString is %@", eachString); }
Schon besser, aber man verliert die Typchecks (falls man die haben will) und man muss trotzdem noch eine langweilige Zeile schreiben, die immer gleich ist und sich nicht wirklich kürzen lässt.
Jetzt kann man natürlich unter C schön ein Makro bauen, was das schöner macht - aber, siehe Bourne Shell...
Aber, mit ObjC 2.0 gibt es das for(String *each in someStrings)
konstrukt, das schon deutlich kĂĽrzer (und auch schneller - aber aus anderen GrĂĽnden) ist.
Also, doch mal ein Makro. Nach reiflichem (2 Minuten) ĂĽberlegen hab ich mich entschieden es erst einmal mit einer for
Schleife zu probieren, da das bedeutet das der Scope der Variablen schön beschränkt ist.
Ziel wäre es also, das hier schreiben zu können:
NSArray *someStrings = [NSArray arrayWithObjects:@"first", @"second", @"third", @"fourth", nil]; FOREACH(eachString, someStrings) { NSLog(@"eachString is %@", eachString); }
Und das sähe dann so aus:
#define FOREACH(each, collection) \ for(id __enumerator = [collection objectEnumerator], each = [__enumerator nextObject]; \ each; \ each = [__enumerator nextObject])
In der Praxis hab ich es auf Wunsch meiner Kollegen noch etwas modifiziert, damit man den Typ der Variablen noch einstellen kann (auch wenn er bisher noch nicht verwendet wird - immerhin kann man ihn aber als Startpunkt fĂĽr Dokumentations-Lookup verwenden).
/// Use like this: // FOREACH(NSString *, each, arrayOfStrings) // { // if ([each hasPrefix:@"foo"]) // [self doSomething]; // } // This macro is in preparation of the ObjC 2.0 Fast enumeration protocol #define FOREACH(typeOfEach, each, collection) \ for(id __enumerator = [collection objectEnumerator], each = [__enumerator nextObject]; \ each; \ each = [__enumerator nextObject])
Bei Verwendung, bitte e-mail. :-)
sag ich heute nicht, aber dafür welch hervorragenden Podcasts ich gerade gehört habe:
Beides hoch spannend. :-)
cu Martin