Am Rande notiert ...

Dynamic Web Development with Seaside. Hatte ich schonmal, aber da ich mich in der nächsten Zeit evtl. mal wieder mehr mit Smalltalk und SeaSide  beschäftigen möchte, nochmal als Erinnerung geblogmarkt.

Pharo Open Source Smalltalk. Sollte ich mir mal wieder angucken, denn es sieht mitlerweile sehr schick aus und die Installation ist wirklich trivial geworden. Pfiffig wie da ein Pharo.App Verzeichnis geladen wird, welches für OSX gleich die App ist und für Linux und Windows einfache Startwerkzeuge (LNK für Windows und .sh für Linux) mit enthalten sind. Ausserdem gibt es eine neue VM und das ganze ist schon richtig fix geworden. Und sieht auch nicht mehr so altbacken aus (leider immer noch GUI-im-Fenster und keine nativen Fenster).

pure klingt sehr interessant, auch wenn es natürlich mal wieder eine Nischensprache ist. Aber wenigstens mal wieder ein selten begangener (nicht unbedingt neu, aber nicht so oft in Compilern verwendet) Weg. Was besonders interessant ist: der Interpreter setzt voll auf die LLVM Infrastruktur und seit 0.45 kann Pure verschiedene Sprachen für die LLVM Backends existieren direkt integrieren (z.B. C/C++ und mit Faust eine Spezialsprache für Audioverarbeitung). Pure geht damit deutlich über einfache Scriptsprachen hinaus und bietet damit eine sehr interessante Alternative zu klassischen FFIs.

Netzsperren: Großbritannien plant globalen Pornofilter und beweist damit, dass der Rinderwahnsinn von harmlosen Kühen auf Politiker und dann Chefs von ISPs überspringt. Die sich aufdrängende Überlegung einer analogen Behandlung wie bei den Rindern erscheint aber wohl nicht praktikabel. Gibt eben doch noch Unterschiede zwischen Firmenbossen, Politikern und Rindviechern. Erstaunlich. (irgendwelche Wettangebote ob denn das britische Modell flugs auf die EU übergreifen wird lehne ich wegen allzugroßer Offensichtlichkeit ab)

c’t aufm iPad. Danke dafür, auch wenn es erstmal nur aufgemotztes PDF ist. Ok, es ist peinlich, dass auf diesen Artikel nicht vernünftig gelinkt werden kann, weil ausgerechnet der hinter der Paywall verschwindet – wärs nicht sinnig gewesen, dazu einen Online-Artikel zu haben? Egal. Was aber verärgert: „bis Februar 2011 für Abonnenten kostenlos“ ist nicht das, was jemand lesen will der euch für das tote Holz bezahlt. Denn für schon verkaufte Inhalte zweimal die Hand aufhalten, das macht normalerweise nur der Bodensatz der Medienlandschaft. Falls ihr jetzt noch ein digital-only Abo auflegt, das mehr als die Printversion kostet, gibts aber verbale Haue. Übrigens, auch aufgemotztem PDF kann man ruhig ein Gedächtnis zur letzten besuchten Seite spendieren. Ehrlich. Ist nicht soooo schwer.

Alex Gaynor — Getting the most out of tox. Müsste ich mir mal angucken – derzeit bin ich ja noch recht faul beim Erstellen von unittests für meine Projekte, in der Regel teste ich nur gegen die eine Python-Version mit der ich primär arbeite und auch bei den Abhängigkeiten nehm ich nur die, die gerade auf meiner Kiste (bzw. im virtualenv) installiert sind. Wäre mal sinnig da ein etwas umfangreicheres System für aufzubauen, einfach um etwas aussagekräftigere Testergebnisse zu haben.

sparrow – The New Mail for Mac. Sieht richtig gut aus und ist der erste Mailclient, der mich überlegen lässt ob ich nicht von MailPlane wechseln sollte. Denn MailPlain unterstützt zwar – zwangsläufig – alle GMail Features, aber sieht eben auch genau so aus wie das was es ist: eine Webseite. Wenn Sparrow auch noch „universal inbox“ ala iPhone/iPad einbauen würde, wäre es ziemlich perfekt.

coleifer/peewee at master – GitHub. Hatte ich bestimmt schon, kleiner ORM für Python der an Django angelehnt ist und mit sqlite tut. Gerade für kleine Webservices interessant, wenn man eben nicht ein großes Framework reinziehen will, sondern einfach nur den Code etwas lesbarer gestalten will. Vorsicht: unterstützt direkt keine vom Programmierer gesteuerten Transaktionen, sondern ist im Prinzip immer im Autocommit Modus. Kann man aber mit relativ wenig Handgriffen anders machen, wenn man will – einfach UpdateQuery, InsertQuery und DeleteQuery ableiten und requires_commit an den Klassen auf False setzen, und eine erweiterte execute Methode definieren, welche einen expliziten commit-Parameter nimmt.

Middleware_and_Utilities – WSGI Wiki. Wenn man mit wsgi als Basis arbeitet, ist es eine gute Idee hier zu gucken was es an WSGI Applikationen und Middleware schon so alles gibt.

Python Package Index : urlrelay 0.7.1. Webservices mit gevent als Basis brauchen URL dispatching, urlrelay scheint da eine interessante kleine WSGI-Library zu sein, die im Gegensatz zu anderen Systemen nur genau das macht und nichts anderes.

Bug 1044 – CVE-2010-4345 exim privilege escalation. Der zweite Teil des Exim-Durchmarsches. Dieser ist die Rechteeskalation über Exim und ein alternatives Config-File. Denn dadurch, dass Exim ein monolitischer Server unter suid Rechten (also Start mit Root-Rechten auch wenn als anderer Benutzer ausgeführt) ist, gibt es ein kleines Zeitfenster in dem der Dienst immer als root läuft – und durch das alternative Configfile wird das dann ausgenutzt. Der Patch beschränkt die Orte an denen diese Config-Files liegen dürfen und kombiniert mit der Konfiguration der Schreibrechte auf diesen Ort kann man damit vermeiden, dass nicht-root-User eigene Configs einschleusen.

Bug 787 – memory corruption in string_format code. Wichtig, wenn man Debian älter als Lenny betreibt, denn dafür gibt es dann keine Sicherheitsupdates mehr und man muss  selber patchen. Der hier macht die Tür zu. Übrigens durchaus interessant mal auf das Datum zu gucken – der ist seit 2008 gefixt, aber durch die frühe Aufgabe von Security-Updates von auslaufenden Debian-Releases ist es in vielen Debian-Systemen auf Etch Basis (und älter) noch drin. Debian ist nur noch empfehlenswert einzusetzen wenn man tatsächlich auch jeden Releasewechsel zeitnah mitmachen kann. Ansonsten sind Lösungen wie Ubuntu LTS deutlich die bessere Wahl. Abgesehen davon ist es doch reichlich peinlich, dass Lenny noch so eine gammelalte Exim hatte …

rhodecode ist sowas wie bitbucket oder github. Benutzt wie bitbucket mercurial und bietet diverse Werkzeuge in der Oberfläche. Das besondere? Der Code ist frei und damit sowas wie Bitbucket zum selber hosten. Vielleicht eine Alternative zu Trac.

HP Storage Hardware Harbors Secret Back Door | threatpost – erledigt hoffentlich die regelmäßigen „wir müssen auf hp umsteigen weil die ist ja viel besser als die NetApp“ Diskussionen. Und ja, das war Sarkasmus.

The Self Publishing Revolution: Amazon in the Book Banning Business. Diesmal gehts gegen erotische (ok, seien wir ehrlich: pornographische) Bücher von Selena Kitt. Aber wer sagt, dass Amazon da aufhört? Und selbst wenn natürlich Amazon das Recht hat zukünftig ein Buch nicht anzubieten (gibt genug Alternativen für eBook Stores), was ausser ihren ToS gibt ihnen das Recht verkaufte Bücher zu löschen? Nach der 1984 Peinlichkeit dachte man ja, sie hätten es begriffen. Dabei war dort die Ursache ein Rechteverstoß des Publishers auf den Amazon reagiert hat – diesmal ist es reine Willkür. Das ganze bestätigt meinen Ansatz nie eBooks zu kaufen, die ich nicht von ihrem DRM befreien kann. Allein als Investitonsschutz notwendig. (und natürlich vorzugsweise Bücher gleich ohne DRM kaufen wenn möglich)

Bottle: Python Web Framework sollte ich mir auch mal als Alternative angucken zu web.py – denn in Bottle ist die App einfach eine Sammlung von Funktionen mit Routen und Mappings und nicht immer gleich eine Klasse. Ausserdem können die Funktionen für unterschiedliche Verben verschiedene Parameter haben und JSON wird direkt als Outputformat unterstützt. Für Webservices klingt das noch eine Runde schlanker als web.py – und Sieht für mich auch sauberer in der Struktur aus.

In Albanien und Bosnien fällt der Visa-Zwang. Und warum nicht für Russland? Wäre für mich wesentlich wichtiger …

Mehrheit in NRW gegen neuen Staatsvertrag für Jugendschutz im Internet – Computer. Der Versuch der Union, das ganze als Blamage für Rot/Grün hinzustellen, ist schon ausgesprochen putzig. Ich mein, für wie blöd halten diese Prolethiker in Düsseldorf den Wähler eigentlich? Das Rumgeeiere von Rot/Grün ist zwar peinlich – besonders bei den Grünen hätte man nach ihren vollmundigen Äußerungen eigentlich nur eine Ablehnung akzeptieren können – aber die Lächerlichkeit der Grünen kann sich die Union kaum als Erfolg auf die Fahnen schreiben, das kriegen die Grünen auch ganz alleine hin. Gut, dass dieser unsägliche Vertrag jetzt erstmal aufgeschoben ist (wer glaubt, das Thema sei jetzt auf länger erledigt, macht sich die Hosen auch mit der Kneifzange zu), aber ein Verdienst einer der Parteien ist kaum zu erkennen. Alle haben sich dabei lächerlich gemacht, selbst die Linken (mit ihrer Zustimmung in Berlin).

Nicholas Piël » Benchmark of Python Web Servers. Sehr interessantes Benchmarking, ich muss mir definitiv gevent angucken, die Leistung in den Tests ist schon beeindruckend. Update: nachdem ich mir gevent angeguckt habe – ich bin beeindruckt. Für Webservices muss man aufpassen: gevent.wsgi unterstützt nur GET und POST, nur gevent.pywsgi unterstützt auch PUT und DELETE.

RecordExtension – Mercurial. Genial, war mir bisher nicht aufgefallen. Damit kann man einzelne Patches zum Commit auswählen, wenn man mal mehrere Sachen in einem Rutsch gemacht hat, aber nicht zusammen committen will.

Sicherheit: Angeblich Backdoor im IPSEC-Stack von OpenBSD. Autsch. Wenn da was dran ist, brauchen wir wohl mal ein WikiLeaks für Open Source. Und das ausgerechnet bei OpenBSD, das sich Sicherheit auf die oberste Stelle der TODO geschrieben hat.

Home | The FinePix X100 Professional Photographer’s compact digital camera from Fujifilm. Sieht alles doch schon recht interessant aus. Aber solange man sie nicht in den Händen halten kann, ist es alles eh noch Spekulatius.

mrdoob/three.js – GitHub. 3D Engine in JavaScript. Eigentlich hab ich keine echte Anwendung derzeit für sowas, aber für Visualisierungen könnte das mal ganz praktisch sein. Und nunja, es ist einfach cool, allein das rechtfertigt ja schon ein Blogmark.

Namespacing in JavaScript. Alles was man dazu immer schon wissen wollte, aber nicht zu fragen gewagt hat. Oder auch: warum syntaktischer Support für Namespaces überbewertet ist und plain old objects reichen.

The Ball Revealed – Sphero « The Orbotix Blog. Will. Haben.

Wer mit Bytes in Clojure rumfummeln muss: gloss. Im Moment hab ich keine Anwendung dafür, aber mal geblogmarkt für später, wenn ich mal wieder mit Binärdaten zu tun habe.

Mac OS X Automation: Services. Ein Beispiel wie man einen integrierten HUD Browser für Twitter mit Automator und OSX Services bauen kann. Garnicht mal so uncool.

Clojure Libs and Namespaces: require, use, import, and ns – 8th Light Blog. Einfach nur ein kurzer Abriss über die verschiedenen Namespace-Funktionen in Clojure.

ninjudd/cake – GitHub. Nochmal genauer angeguckt, ist mitlerweile ein wirklich praktikabler Weg um Clojure zum Laufen zu bekommen. Vor allem lädt der nicht gleich das halbe Internet herunter wie andere Build-Tools im Java-Umfeld. Lässt sich auch mit einem kleinen Helper-Script in MacVim mittels slimv integrieren und ist zumindestens für mein Rumspielen mit Clojure brauchbar.

slimv.vim – SLIME-like Lisp and Clojure REPL inside Vim with Profiling, Hyperspec, Paredit. Ganz interessant, da deutlich leichtgewichtiger und simpler zu installieren als Slime oder VimClojure oder eine der anderen dicken Lösungen. Und man kann einfach aus Vim heraus Common Lisp oder Clojure programmieren. Ist zwar derzeit nur im „rumspielen und gucken“ Modus, aber klingt durchaus interessant.