Linkblog - 2.12.2010 - 20.12.2010

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.

Mainz/Landau: Erdwärmekraftwerk wohl für Erdbeben verantwortlich. Tja, aber in Emsdetten und Nordwalde will Exxon Wasser in Erdgasblasen pressen um dieses dort zu fördern. In bisher ungetesetet großer Tiefe und mit bisher nicht wirklich im Dauerbetrieb getesteten Methoden. Aber schon ein Geothermiekraftwerk kann durch eine ähnliche Vorgehensweise zu Erdbeben führen, die Schäden anrichten. Ich glaub Hausbesitzer in Emsdetten und Nordwalde sollen das mal ganz scharf im Auge behalten ...

Gundo - Visualize your Vim Undo Tree. Vim hat ja auch beim Undo etwas mehr als übliche Editoren haben - der ganz Baum an Undo/Do/Redo Aktionen wird gespeichert und man kann sich frei darin bewegen. Nur kapiert das niemand mit den normalen Vim Mitteln. Mit dem Gundo Plugin kann man sich diesen Baum direkt visualisieren lassen und damit vielleicht ja mal was anfangen. Sicher, man kann sowas über regelmäßiges Commit und eine Versionsverwaltung auch realisieren. Und klar, wir alle committen ja immer früh und ständig und haben nie irgendwelche langen Editsitzungen, oder?

Chromium Blog: A New Crankshaft for V8. Und damit wird JavaScript noch ne Runde schneller. V8 ist auch die Basis für Node.Js, womit es diese Performanceverbesserung in Bälde wohl auch für den Server gibt.

Bin jetzt auch bei instagr.am zu finden - natürlich als rfc1437. Ich mach ja eh schon geraume Zeit sowas ähnliches auf tumblr, und Instagram ist ein erstaunlich praktischer Uploader für tumblr.

The Risks of Cloud: Lessons from Wikileaks - Simon Says.... Zusammenfassung der Aktionen gegen Wikileaks und was diese für Business im Web bedeuten. Denn das, was der Wau Holland Stiftung mit PayPal passiert ist (denen ist nämlich das PayPal gesperrt worden, nicht Wikileaks) kann auch jedem anderen passieren, wenn wem deine Nase nicht passt. Ohne auch nur einen rudimentären Rechtsweg. Da wird einfach mal behauptet die ToS wären nicht eingehalten worden. Und auch selber hosten hilft nicht wirklich denn man ist immer noch von vielen anderen abhängig (der Laden wo der Server läuft, die Domains ...). Komischerweise wird diese Willkür im Netz nie erwähnt, wenn Politiker vom schlimmen "rechtsfreien Raum Internet" schwafeln.

pyquery: a jquery-like library for python — pyquery v0.6.1 documentation. Drin was drauf steht. Im Prinzip ein subset von dem was jQuery kann, da jQuery eigene Selektorerweiterungen hat und das hier einfach auf lxml aufsetzt (aber dafür dann vollständige css3 Selektorenunterstützung hat).

stream – Lazily-evaluated, parallelizable pipeline — stream v0.8 documentation. Interessantes kleines Modul zur einfacheren Programmierung von Berechnungsketten mit Iteratoren. Macht Sourcecode deutlich kompakter für passende Anwendungsfälle (z.B. Transformationen und Selektionen von Massendaten). Geblogmarkt, da ich sowas diverse male selber adhoc innerhalb Projekten implementiert habe.

Wau-Holland-Stiftung: Geldgebern von Wikileaks drohen Sanktionen. Liegt aber eigentlich weniger an Wikileaks als an der Torfnasigkeit der Stiftung. Rechenschaftsberichte sind für Stiftungen übliches Geschäft, wenn man sowas einfach weglässt, kanns schon mal - erwartbaren - Ärger mit den Behörden geben.

About - pyconditions - About the module - Project Hosting on Google Code. Noch eine andere Implementierung von Common Lisp Conditions in Python.

Python Package Index : withrestart 0.2.6. Klingt ganz interessant - die interaktiven Restarts von Common Lisp sind oft sehr praktisch, gerade bei interaktivem Arbeiten.

snipMate - TextMate-style snippets for Vim : vim online - weil ich gerade Sachen liste die eigentlich für mich nicht so interessant sind, aber trotzdem irgendwie cool, hier eine Implementation von TextMate-ähnlichen Snippets für Vim.

vcscommand.vim - CVS/SVN/SVK/git/hg/bzr integration plugin : vim online - auch sowas das ich eher in einer Shell als im Editor mache. Allein schon weil ich selten single-file commits habe. Aber für die Abfragen der Historie könnte es doch noch interessant sein. Ist auch eines der aktiveren Vim Plugins - manche von denen sind echt erschreckend alt, tun aber trotzdem noch gut. Bei einem Plugin war sogar der Verweis auf seine Homepage bei GeoCities ...

pyclewn. Weiss noch nicht ob ich da mich reinwühlen will - ich benutze Debugger eigentlich nicht. Aber der hier ist in Vim integriert und damit direkt aus dem Editor nutzbar. Genutzt werden kann gdb und pdb (für Python).

Vim Taglist plugin manual. Ein weiterer wichtiger Baustein um mit dem MacVim richtig arbeiten zu können. Empfehlenswert sich auch mit brew install ctags das exuberant-ctags zu installieren, wenn man richtige Sprachen benutzen will (wie z.B. Python).

Harte Kritik an französischem Concorde-Urteil. Ok, dass Continental Schuld hat, ist sicherlich klar - war schliesslich ihr Flugzeug, das schlecht gewartet war. Bei 113 Toten ist allerdings wohl nur für sarkasmustriefende Kabarettisten nachvollziehbar, dass diese Gesellschaft dann 200000 Euro Strafe zahlt - aber 1 Million Euro an Air France für den Imageschaden. Passt dann ja auch, dass der Mechaniker, der - möglicherweise mit mangelnder Sorgfalt, aber eben als Mechaniker schlicht ein Angestellter - seinen Job gemacht hat und eine Lamelle an das Flugzeug drangenietet hat in den Knast wandert. Komische Welt.

Vim autocomplete, Django and virtualenv | rosemanblog. Besonders die Integration von VirtualEnv und MacVim ist hilfreich, weil sonst Omnicomplete nicht sauber mit VirtualEnv zusammenarbeitet, da es nix von den dort liegenden Modulen weiss. Übrigens ist das Installieren von MacVim mit Homebrew trivial ...

Homebrew — MacPorts driving you to drink? Try Homebrew!. Kann ich nur unterstützen, den Aufruf. Nachdem ich jahrelang MacPorts benutzt habe, bin ich auf dem Air jetzt auf Homebrew gewechselt und es ist um Längen schlanker. Und da es nicht bei jedem kleinen Paket das halbe Internet installieren will, hat man sogar realistische Chancen die Tools auf der kleineren Platte des Air zu installieren. Schön auch, dass man an vielen Stellen eingreifen kann, wenn man das denn möchte (da ich ja nunmal Programmierer bin, ist das durchaus ein naheliegender Wunsch mal selber den Configure zu machen oder ähnliches). Übrigens sind die Recipes ziemlich aktuell, z.B. Node.js ist in der neuesten Version drin, pypy ebenfalls, genauso wie Scala und Clojure. Passt gut zu meinen derzeit geplanten Spielereien.

chrisdickinson's wilson. Einen noch vor dem Mittagessen, denn das Framework orientiert sich stark an Django, und da ich ja Django-Fan bin, ist das sicherlich einen eigenen Link wert.

Modules - node. Viele Module für Node.js, mehr als ich auf die Schnelle durchgucken kann (oder will), also erstmal nur als for-future-perusal weggeblogmarkt.

persistence.js: An Asynchronous Javascript ORM for HTML5/Gears. Weil man ja dann doch immer mal Daten speichern will, hier ein Link auf eine Client-Side ORM Lib für JavaScript. Schaut ganz ok aus und könnte vielleicht auch für die Serverseite benutzt werden. (hab noch einen anderen Link dafür gefunden, der explizit Node.js mit MySQL unterstützt).

Express - node web framework. Gut, wenn man mit Node.js einfach mal schnell kleine Webservices bauen will. Ich finde das passt gerade gut zu Node.js Installationen und jQuery auf der Client-Seite. Im Moment drängelt sich JavaScript bei mir in viele Nischen, in denen vorher Python beheimatet war. Nicht zuletzt weil JavaScript tatsächlich eine gar nicht mal so üble Sprache ist.

Socket.IO ist eine kleine JavaScript Library, die Socket-Kommunikation vom Browser unterstützt und dabei verschiedenste Techniken anwenden kann und die beste verfügbare automatisch auswählt. Dadurch also auch über verschiedene Browser und Browsergenerationen funktioniert.

Nigeria to charge Dick Cheney in $180 million bribery case, issue Interpol arrest warrant | Raw Story. Ob jetzt wohl Spam mit Dick Cheney kommt? GOOD DAY! MY NAME IS DICK CHENEY, I AM THE FORMER VICE PRESIDENT OF THE USA AND A LEADING BOARD MEMBER OF HALIBURTON. I HAVE A PROPOSAL FOR YOU ...

Mono Lake bacteria build their DNA using arsenic (and no, this isn’t about aliens) | Not Exactly Rocket Science | Discover Magazine. Noch ein bischen mehr Info über unsere arsenliebenden Neuankömmlinge. Sind einfach eine weitere Art von Extremophilen, allerdings welche mit einem wirklich beeindruckenden Trick.