Function Call vs. Message Send

written by Martin Häcker on

Oder: Wieso mich die Lisp Syntax so stört.

In meiner Freizeit beschäftige ich mich gerade mit dem Buch Practical Common Lisp.

Das Buch gefällt mir auch ganz gut - vielleicht abgesehen davon das er 'loop etwas zu häufig verwendet - ohne es zu erklären - was den Code gerade am Anfang reichlich magisch macht.

Aber: Worum es mir eigentlich geht, ist die Syntax von Lips. Nicht die Klammern, nicht die EinrĂĽckung, nicht die Art wie man es schreibt, sondern schlicht die Reihenfolge.

Weil: in Lisp ist erst einmal alles auf Funktionen abgebildet. Und das hat Vorteile aber eben auch einen gravierenden Nachteil: Jede Funktion muss immer als erstes in einem Funktionsaufruf Tupel stehen.

(funktion argument-eins argument-zwei)

Das ist ein Problem, weil man bei verschachtelten Funktionsaufrufen (auch schon bei nur sehr wenigen Ebenen) sehr schnell den Überblick verliert welcher Funktionsaufruf zu welchem argument gehört.

(funktion (funktion-zwei argument-eins (funktion-drei argument-eins argument-zwei)) argument-zwei)

Das kann man jetzt natĂĽrlich auch als Feature sehen, weil man gezwungen wird seinen Code vernĂĽnftig einzurĂĽcken und keine zu langen Funktionen zu schreiben

(funktion (funktion-zwei argument-eins
                     (funktion-drei argument-eins argument-zwei)) 
        argument-zwei)

Das hilft, aber eben nur so weit. Vor allem weil man beim Lesen von Code immer eine interne herumdrehung machen muss um den Code korrekt zu lesen.

(defparameter a-list (list 1 2 3 4 5))

(car (cdr (cdr (cdr a-list))))

Soll (wenn (ich) (mich nicht verschrieben) habe) 5 ergeben.

Aber man muss es von innen nach aussen lesen, damit man es richtig versteht.

Und das erfordert jede menge Geistige Kapazität, die besser beim finden von guten Namen für Variablen und Funktionen aufgehoben ist. Viel besser.

Jetzt zum Message-Passing - das ist zwar fundamental "weniger mächtig" als der Funktionsaufruf, weil man zum Beispiel generische Funktionen nicht oder nicht so gut implementieren kann, ABER: man kann viel besser mit dem resultat eines vorherigen Aufrufes das nächste tun.

Weil die Reihenfolge in der die Sachen ausgefĂĽhrt werden die gleiche ist in der die Sachen auf dem Bildschirm stehen.

Und das ist eine ganze Menge besser les- und versteh-bar als die Funktion es jemals sein kann.

Das war es was Alan Kay meinte, als er sagt das das wichtigste an Smalltalk) nicht die Objektorientierung, sondern das Message Passing gewesen ist.

Yay, wir sind im Fernsehen!

written by Martin Häcker on

RKA hat es als Berliner Vorstand ins 3sat geschafft.

Gleich er erste Beitrag.

:-) GlĂĽckwunsch!

Programme sind auch nur eine Sprache

written by Martin Häcker on

Das wissen wir ja alle - sind schlieĂźlich Informatiker.

Und Programme sollte man analysieren, damit man sich darĂĽber im Klaren ist was sie tun.

Und aus Programm == Sprache folgt damit das man auch Sprache genau analysieren sollte, damit man versteht was sie tut.

Und das macht MaHa hervorragend im Chaosradio 81.

Dieser Song kostete jetzt nur noch.... 100€!

written by Martin Häcker on

Heimlich still und leise wurde die Urheberrechtsnovelle durchgefĂĽhrt - und jetzt haben wir den Salat.

Wieder mal hat die Bundesregierung innovative neue Geschäftsmodelle kaputt gemacht und einer jungen und enorm wachsenden Branche den Hals gebrochen.

Denn, die erstmalige Abmahnung wegen privatem Urheberrechtsbruch darf jetzt nur mehr 100 € kosten.

Yay!

Der FDP war das natĂĽrlich zu billig, den GrĂĽnen zu teuer - ich finds ok.

Lustig find ich das ein Staatssekretär Hartenbach wohl die Deckelung ganz wesentlich vorangetrieben hatte, weil er selber schon zweimal abgemahnt wurde.

:-) Demokratur ist doch was feines.

Via: KĂĽchenradio iRights

Geil...

written by Martin Häcker on

... So möche ich gerne Jonglieren können. (via Fefe).

Wuala vs. Tahoe

written by Martin Häcker on

Wuala und Tahoe sind zwei technisch ähnliche Systeme mit dem gleichen Ziel: Sicher Online Dateien tauschen und speichern können.

Und das Verteilt, Verschlüsselt, Dateisystemsemantik. Als Modell haben sich beide ein Verschlüsselungs und Rechtesystem ausgedacht die ein Friendt-to-Friend Netzwerk möglich machen - also ein Netzwerk in dem man alles einstellen kann was man möchte, aber mit der Sicherheit, das nur derjenige dem man das erlaubt hat die Daten sehen kann.

Naja, eigentlich ein etwas unfaierer Vergleich.

Denn, hinter Wuala steht ein Startup, eine Firma also die jede Menge Geld in den Aufbau des Netzwerkes steckt (Interessanterweise handelt es sich dabei um eine AusgrĂĽndung aus der ETH ZĂĽrich. Das erlaubt es dem Netzwerk jedem Benutzer erst einmal 1 Gigabyte Speicherplatz zu schenken (und ein weiteres fĂĽr jeden Benutzer den man wirbt) und eben auch mittels zentraler Server, die Benutzung das Projekt vor allem am Anfang enorm zu beschleunigen und damit eine bessere User Experience zu bieten.

Auf der anderen Seite ist Tahoe ein reinrassiges Open Source Projekt. Buildserver, Repositories (Darcs), Trac... alles da.

Dafür ist das Programm noch deutlich unfertig. Immerhin gibt es am Anfang einen schönen Login Dialog - aber das war es auch erstmal.

Ah well, die Entwickler im IRC-Kanal #tahoe sind jedenfalls sehr hilfreich und nett - und der größte Teil des Projekts ist in Python geschrieben. Das ist doch schon mal was.

:-)

"Das Grundgesetzt ist die Institutionalisierung des Misstrauens der BĂĽrger gegen den Staat"

written by Martin Häcker on

Die Grundrechte sind ein Institutionalisiertes Misstrauen gegen den Staat. Der Bürger hat Sorge vor einem übermächtigen Staat und deswegen werden ihm als Schutzmaßnahme die Grundrechte zur verfügung gestellt. Herr Schäuble und andere machen das genau umgekehrt. Die haben ein prinzipielles Misstrauen des Staates gegen den Bürger.

Sagt Wolfgang Nešković in einem Interview beim Küchenradio.

Wolfgang Nešković ist übrigens der Bundesrichter dem wir die Gesetzgebung der Geringen Menge zu verdanken haben.

Ja, das Interview ist schon eine Weile her, aber an Aktualität kaum zu übertreffen.

OpenWRT

written by Martin Häcker on

Funkt.

Jetzt endlich sogar kabellos verbunden mit meiner restlichen Infrastruktur.

Schon spannend was das System alles an Paketen mitbringt.

  • Aircrack-ng
  • Aircrack-ptw
  • etc...

Die volle Ausstattung um Unsinn zu treiben. :-)

Dazu noch die Pläne der Freifunker, einen La Fonera Router mit Notebook-Baterien im Rucksack liegen zu haben, der Mesh und gleichzeitig vorhandene Netze Attakieren öffnen kann...

:-)

Leider kann das gegenwärtige OpenWRT noch keinen AdHoc Modus gleichzeitig mit etwas anderem anbieten (sonst könnte der Accesspoint bis zu 4 Netzwerke gleichzeitig anbieten) so dass es nicht möglich ist, das er über ein Normales WLAN Netz sein Internet bezieht und diesen dann über das Mesh weiter gibt.

Andererseits gibt es den La Fonera Pack, der auf das normale Fonera zusätzlich zu der Fonera Dienstleistung noch das Meshing anbietet.

Also muss es wohl doch irgendwie gehen.

Nur wie?

Freifunk

written by Martin Häcker on

Ha!

Es Funkt. Frei.

Naja fast. Jedenfalls funkt das OpenWRT schon mal. An dem Freifunk arbeite ich noch.

Immerhin gibt es ein paar StraĂźen weiter wohl noch weitere 3 Leute die Freifunk machen. Interessanterweise wohl auch immer gleich sowohl OLSR als auch B.A.T.M.A.N..

Na mal schaun wie das läuft. Auf dem Fonera soll ja zusätzlich auch noch FON als Dienst laufen.

Ah well, schaun mer mal.

Wenn die Hardware tatsächlich an Hitzeproblemen verstirbt, muss ich halt ein neueres Modell nachbestellen.

Wer, wer, wer, wer, wer hat uns verraten?

written by Martin Häcker on

Marc-Uwe Kling fasst die Stimmung nicht nur der Geeks zur gegenwärtigen Politik sehr krass zusammen.