Archiv 12.8.2005 - 1.9.2005

geocaching Status

4 Caches gehoben, 2 lokalisiert aber wegen Muggels nicht gehoben, 1 nicht gefunden (dafür aber ne Zecke). Garnicht so übel für den Anfang ...

GPS Receiver Information, Software, and Hardware Reviews of Garmin, Lowrance, Magellan and other GPS Receivers - genau das was dran steht: haufenweise Informationen und Links rund um GPS.

Working with Garmin Receivers - A User Manual - genau was der Titel sagt. Ein recht interessantes Buch über verschiedenste Garmin-Empfänger und Themen rund um Garmin GPS Geräte.

GEMA und das Internet

Und wieder erwischt es eine privat betriebene Site die diesmal Spieletrailer online gestellt hat und dafür jetzt für die Hintergrundmusik GEMA-Gebühren zahlen soll.

Und die GEMA und die Musikindustrie? Die machen weiter ihren Job und gehen dabei auch über virtuelle Leichen. Macht nix, ist ja nur Internet. Sind ja auch nur virtuell schon vor dem Einstieg ins Berufsleben verurteilte und verschuldete Jugendliche. Und überhaupt, wo kämen wir denn hin, wenn einfach jeder einfach so zum Spaß irgendwelche Filmchen ins Netz stellt…

Wobei es nicht nur das ist - es geht meines Erachtens weit darüber hinaus. Es werden nicht nur aus absurden Anlässen Menschen kriminalisiert für wirkliche Bagatellgeschichten, sondern letztendlich verdienen GEMA und Musikindustrie (und komm mir bitte jetzt keiner mit den Künstlern - die stecken in der Verwurstungskette ganz hinten und von den 5 Euro die die für die Spieletrailersite bekommen würden können die sicher ganz doll einen drauf machen) doppelt und dreifach an Verwertungsrechten - selbst wenn diese nur verstümmelt berührt werden, wie z.B. bei Spieletrailern (für deren Hintergrundmusik ja in der Regel schon - sofern es originale Spielmusik ist - der Spielehersteller abgedrückt hat).

Wo bleibt eigentlich das Recht auf Zitate in angemessenem Rahmen? Bei Schriftwerk gibt es das - warum gibt es sowas nicht bei Musik?

Mauscheleien vor Gericht

Nur noch mal zur Zusammenfassung der ganzen Pfahls Geschichte. Das war der Vorwurf:

Der frühere CSU-Politiker und Staatssekretär in der Regierung Kohl soll 1991 für ein Panzergeschäft mit Saudi-Arabien von Schreiber 3,8 Millionen Mark oder umgerechnet knapp zwei Millionen Euro Schmiergeld erhalten und nicht versteuert haben.

Und das ist der Deal:

Pfahls und seine Verteidigung trafen eine Absprache mit dem Gericht: Für ein Geständnis zu Beginn des Prozesses, in dem der 62-jährige Pfahls die Zahlungen des Waffenlobbyisten Karlheinz Schreiber zugegeben hatte, bekam der Angeklagte die Zusage auf eine Höchststrafe von zwei Jahren und drei Monaten und die Möglichkeit einer vorzeitigen Haftentlassung nach Verbüßen der Hälfte der Strafe.

Wer ausser mir hat noch den Eindruck das je höher die Summen sind um die es geht, desto banaler die Strafe ist? Vor dem Recht sind alle gleich? Vergesst es.

Wobei ich mich ernsthaft frage wieso ich was anderes erwartet habe nachdem schon Kohl mit dem Bruch seines Amtseides ohne grössere Probleme davongekommen ist - und mir werfen die Leute vor ich sei Zyniker - die Realität übertrifft mich doch regelmäßig bei weitem ...

Öffentliche Dienst-Nichtleistungen

Man stelle sich eine Einrichtung der Landesregierung vor, welche die Aufgabe hat das ganze Land zu vermessen. Sinnvolle Sache, schliesslich muss man ja wissen wo Platz ist und wo nicht, wo Flüsse, Häuser, Straßen, Eisenbahnen und Grundstücke sind und was noch so alles rumsteht.

Man stelle sich weiterhin vor, das diese Einrichtung natürlich von Steuergeldern betrieben wird - sinnvoll, da es ja eine Dienstleistung an der Gesellschaft ist. Die dort arbeitenden Vermessungstechniker werden aus dem Steuersäckel bezahlt und machen das, was sie am besten können - Gegend vermessen.

Man stelle sich weiter vor, das man diese Daten auch für Kartenmaterial für Privatleute nutzt. Löblich - auch wenn die Karten mit fast 8 Euro deutlich teurer sind als andere Karten, dafür basieren sie auf wesentlich präziseren Daten und sind mit 1:25000 schön detailliert - als Wanderkarten ideal.

Man stelle sich weiter vor, das diese Einrichtung auch einen Online-Dienst betreibt, in dem an in allen Karten reinzoomen kann - bis runter auf den Maßstab 1:1000. Sehr nett, um sich mal Gegend detaillierter anzuschauen. Leider ist das Fenster sehr klein und damit die Übersicht nicht wirklich sehr gut gegeben. Dafür kann man Luftbilder einmischen.

Man stelle sich weiter vor, das diese Einrichtung auch die Kartendaten in digitaler Form rausgibt - mit einer Software nur für Windows. Das ist doof. Das ist selten dämlich - Java gibts seit 15 Jahren, sollte auch in solchen Ämtern und Einrichtungen bekannt sein. Zudem ist die DVD mit ihren fast 50 Euro nicht ganz billig (bzw. ist es die 1:50000 nicht - die 1:25000 sind zwei DVDs, keine Ahnung über den Preis - warscheinlich das doppelte). Und sagte ich schon, das die so blöd waren das nur für Windows zu machen?

Man stelle sich jetzt noch vor, das die Daten auf der Windows-DVD zwar auf einem Standardformat als Grundlage basieren (GeoTIFF - im Prinzip Kartenmaterial als TIFF mit zusätzlichen Geo-Daten für die genaue Positionsbestimmung der grafischen Kacheln). Aber auf der Windows-DVD sind diese Daten verschlüsselt - um auch ja zu verhindern das irgendein User eines nicht öffentlich-amtlich zugelassenen Betriebssystems darauf zugreift. Das ist scheisse.

Jetzt stelle man sich noch vor, das auf Nachfragen dieses Amt einem mitteilt, das man selbstverständlich die Daten auch im Standardformat bekommen kann - für läppische 3 Euro pro Quadratkilometer Kartenabdeckung. Das ist eine Frechheit. Wenn man sich all das zusammen vorstellt, dann hat man das Landesvermessungsamt Nordrhein-Westfalen.

Wofür zahle ich nochmal meine Steuern? Damit ich doppelt verarscht werden kann?

Musiklabelchefs immer noch völlig verblödet

Denn ihnen reicht ihre Abzocke nicht mehr:

Zu viele eigene Online-Musik-Portale waren gescheitert und Apples Konzept der direkten Bindung an den iPod versprach Erfolg. Mittlerweile hat iTunes mehr als eine halbe Milliarde Titel verkauft und die Labels wollen einen größeren Teil des Kuchens abhaben. Derzeit bekommen sie von den 99 US-Cent pro Song "nur" rund 70 US-Cent.

Mal drüber nachzudenken das ihre eigenen Müllshops unter anderem genau an den absurden Kosten und den noch hahnebücheneren Rechtebeschneidungen gescheitert sind und das der Erfolg vom iTunes Music Store genau an seinen Eigenschaften wie Preis und Möglichkeiten liegt, das kommt diesen Knallköpfen nicht in den Sinn.

Sorry, aber eine Industrie die von derartig mental minderbemittelten Vollidioten geleitet wird hat es nicht anders verdient als gnadenlos unterzugehen. Klar, schade um die Arbeitsplätze und schade für manchen Musiker. Aber erst wenn dieser Moloch Musikindustrie von ihren Managern zur Bedeutungslosigkeit kaputtorganisiert wurde kann die Musik tatsächlich mal wieder einen Neuanfang machen - und dann vielleicht mal vernünftig.

Montgolfiade in Münster

Montgolfiade in Münster

Montgolfiade in Münster

Gabs heute beim Blick aus dem Fenster. War aber nicht alles - nachdem ich ein bischen rausgeguckt habe, waren ganze Schwärme von den Dingern zu sehen. Sah schon ziemlich cool aus.

Die Bilder sind nicht sonderlich gut, das waren Schnellschüsse ohne grosse Planung - auch wenn Ballone nicht wirklich schnell sind, wenn man sie so im Rudel sieht, merkt man erst das sie durchaus fix die Position ändern.

Und ja, da flogen wirklich ne Pulle Potts, ne Colapulle und eine Eistüte am Himmel rum ...

Montgolfiade in Münster

Montgolfiade in Münster

Montgolfiade in Münster

Nachrichten vom Galerieprojekt

Nachrichten von meinem Django Gallery Projekt: Es kommt gut voran. Wenn Sie Beispielcode für AJAX mit Django oder XML-RPC mit Django möchten - sehen Sie sich den Quellcode an. Ich habe Teile der Blogger API, metaWeblog API und MoveableType API implementiert - gerade genug, damit Photon Bilder in meine Galerie posten kann. AJAX wird verwendet, damit angemeldete Benutzer den Titel von Bildern und Ordnern einfach durch Klicken auf den Titel ändern können und um das Werkzeugkasten auf der Rückseite von Bildern zu aktivieren. Zusätzlich enthält die Galerie die üblichen PIL-Funktionen wie das Erstellen von Thumbnails - ich bin besonders stolz auf das Aussehen der umgedrehten Ecke für Ordner-Thumbnails. Andere interessante Dinge, die sich lohnen zu untersuchen, könnten die Verwendung von lazy evaluation sein, um Inhalte in die Vorlage zu schieben, ohne sie vorher zu berechnen - sie wird nur berechnet, wenn die Vorlage sie tatsächlich verwendet. Und interessant könnte die Abstraktion des dateisystembasierten Inhalts sein - nur der Basispfad wird im Datenbankmodell gespeichert, der Rest der Galerie befindet sich im Dateisystem (und kann so leicht mit FTP, SSH oder direkt auf der Unix-Shell verwaltet werden).

Zusätzlich können Sie es sich für die Handhabung der Authentifizierung ansehen - die Benutzerregistrierung ist noch nicht abgeschlossen, wird aber irgendwann folgen. Ebenso Kommentare und RSS - aber ich muss das zuerst schreiben. Und ich beginne, Dokumentation zu schreiben - Docstrings im Code und Dokumentationsseiten im Wiki.

iTAN-Verfahren auch nicht sicher

Die iTANs (indizierte TANs - wie von der Postbank jetzt eingeführt) sind auch nicht der Weisheit letzter Schluss gegen Phishing-Attacken. Der klassische Angriff wäre einfach beim Phishing den Benutzer auf eine eigene Site umzuleiten und dann parallel mit den Eingaben des Benutzers die Transaktion mit der Bank abzuwickeln - nur natürlich in anderer Form als dem Benutzer gezeigt wird. Statt einfach eine TAN abzufordern wird eben erst der Bankserver angesprochen und die von dort verlangte TAN dann vom Benutzer abgefordert. Mit dieser TAN kann dann problemlos eine Buchung vorgenommen werden wärend der Benutzer im vermeintlichen Sicherheitsupdate - oder was auch immer die Phishing-Attacke vorgegaukelt hat - verbringt.

Das RedTeam hat dazu ein Szenario zusammengestellt und mit den Banken gesprochen:

Laut Umfrage des RedTeams wurde das geschilderte Problem von den Banken zwar weitestgehend verstanden, allerdings nicht ganz ernst genommen. Man wolle an der Darstellung der sicheren iTANs weiterhin festhalten. Eine Bank argumentierte, dass der Angriff sehr schnell sein und innerhalb von sieben Minuten stattfinden müsse. Ein anderes Institut wolle erst dann von seinen Aussagen Abstand nehmen, wenn der erste Schadensfall bei einem Kunden eingetreten sei.

Die selbe arrogante Haltung die bei Banken schon immer gegen Missbrauch eingenommen wurde - anstell die Probleme selber anzugehen oder auch mal Sicherheitsprobleme aktiv zu beschreiben und so die Mündigkeit der Kunden ernstzunehmen wird abgewiegelt und gelogen. Und für so einen Mist müssen wir dann Buchungsgebühren bezahlen.

JavaScript + CSS Box-Modell Rätsel

Also ich hab da so eine HTML-Table. In der sind alle TDs mittels text-align: center zentriert von ihrem Inhalt her. In diesen TDs hab ich zwei DIVs, die übereinander angezeigt werden. Die obere enthält ein IMG, die untere einfach nur einen Text. Beide Inhalte werden auch brav zentriert. Jetzt tausche ich per JavaScript DOM Funktionen die obere DIV mit dem IMG drin gegen eine andere DIV aus, die nur zwei DIVs enthält, die wiederum Text enthalten. Die Texte in den inneren DIVs der neuen DIV sind brav zentriert. Nur die DIV selber, in der die inneren DIVs liegen, ist bezogen auf die umfassende TD nicht mehr zentriert. Das Problem ist mit Safari und Camino reproduzierbar - irgendwie geht die Eigenschaft "Inhalt zentriert ausrichten" flöten für die neu zugefügten Element. Ich hab schon alle möglichen CSS Attribute durchgeguckt und mit allem möglichen rumprobiert (z.B. gucken ob die alte DIV mit dem IMG drin oder das IMG selber einen Wert für left hinterlegt hat), aber irgendwie will das ums Verrecken nicht funktionieren.

Der Hintergrund für das ganze: per Klick auf ein Icon soll ein IMG komplett gegen eine gleichgrosse DIV ausgetauscht werden, in der ein paar Schalter drin sind mit denen Eigenschaften des IMG geändert werden können. Im Prinzip sowas ähnliches wie die Widgets bei Dashboard machen - Konfiguration auf der "Rückseite" eines Bildes.

Im Moment übernehme ich nur die Höhe des Bildes, damit passt die vertikale Ausrichtung perfekt. Nur halt bei der horizontalen Ausrichtung bleibt jetzt alles dynamisch an der Stelle. Wenn ich zwei Zellen übereinanderstehen habe und beide umschalte auf Konfiguration wird die Tabelle in der Breite verändert. Was dann hässliches Zucken gibt. Aber ich will jetzt nicht die TDs statisch aufspannen, denn dann würde sich das Layout nicht mehr dynamisch an die Browserbreite anpassen.

Achso, das ganze muss auch noch mit dem Safari funktionieren, ist schliesslich mein Hauptbrowser

Upadte: in den Kommentaren stehen Links auf Testseiten mit denen man sich das ganze im Effekt mal angucken kann.

Karlsruhe macht Weg für Neuwahlen frei

Bin das nur ich, oder hat sonst noch jemand das Gefühl das sich Karlsruhe aus der Diskussion um die rechtmäßigkeit der Neuwahlen verpissen wollte? Die Begründungen lesen sich jedenfalls so als ob damit jetzt ein Freibrief für Kanzler und Präsident ausgestellt wurden - sind die beiden sich einig, gehts ratzfatz weg mit dem Bundestag. Eine angeblich schlechte Prognose und die Zustimmung dazu reichen ...

Wozu haben wir dann eigentlich noch Regeln zur Auflösung des Bundestages im Grundgesetzt, wenn es selbst das Verfassungsgericht scheinbar nicht mehr sonderlich interessiert?

JavaScript und die escape() Funktion

Note to self: escape() in JavaScript ist nur latin-1 tauglich - ein utf-8 String mit Sonderzeichen schickt diese als latin-1 Zeichen über die Leitung. Ziemlich dämlich wenn man mit Ajax ein Formular dengelt und dann daraus einen Wert an eine Funktion im Backend schickt und das eigentlich utf-8 erwartet. encodeURIComponent ist die Antwort, nicht escape.

MochiKit – erste Erfahrungen

Ich hatte ja schon kurz MochiKit – A lightweight Javascript library erwähnt. Jetzt hab ich es bei viele-bunte-bilder.de (seit 2007 offline) benutzt (damit der Besitzer einer Galerie die Bildnamen und Ordnernamen ändern kann). Ziemlich geniale kleine Library für JavaScript. Macht die Arbeit mit JavaScript deutlich angenehmer.

Armstrong EPO-gedoped bei erstem Toursieg?

Scheinbar gibt es Belege dafür, das Armstrong beim ersten Toursieg gedoped hat:

In sechs Urinproben, die während der Tour de France 1999 bei Armstrong genommen wurden, fanden Dopingforscher bei zu wissenschaftlichen Zwecken durchgeführten Tests fünf Jahre später EPO. Dr. Jacques de Ceaurriz, der Direktor des Labors, das diese Tests durchführte, bestätigte am Dienstag einen entsprechenden Bericht in der Dienstagsausgabe der Sportzeitung L'Equipe.

Ein ziemlicher Hammer, das ganze. Und es sieht nicht so aus das es diesmal nur unbeweisbare Behauptungen sind.

Aldag hört auf?

Och menno: Rolf Aldag beendet zum Ende der Saison seine 15-jährige Karriere als Radprofi. Geht doch nicht so einfach. Mir hat die Gerüchteversion - in der er mit Zabel zu Domina Milka - abwandert besser gefallen. Ok, ich gönn ihm seinen Ruhestand und vielleicht kriegt man ihn ja öfter dazu Radrennen zu kommentieren, denn das kann er definitiv kompetenter als die Schlaftabletten der ARD und ZDF Sportredaktionen, aber irgendwie wird er mir fehlen als Fahrer.

Canon EOS 5D, full-frame 12.8 megapixel

Tja, die Gerüchte waren also spot on bezüglich der Canon EOS 5D - leider auch beim Preis. Ein paar Hunderter runter wären doch schon schöner. Die technischen Daten klingen jedenfalls auch beim zweiten Mal noch klasse. Jetzt müsste ich nur irgendwie mein Konto überreden das richtige Vorzeichen anzunehmen und mal die Farbe zu wechseln

Armer Jörg Jaksche - schon wieder

Och menno, schon wieder ein Defekt auf der Etappe im letzten Anstieg und dann auch noch wieder jemand der ihm den Etappensieg wegschnappt, obwohl er sich nochmal nach dem Defekt rangekämpft hat. Irgendwie wills einfach nicht klappen mit einem Etappensieg für ihn. Wirklich schade, denn er kämpft wirklich beeindruckend an diesen extrem steilen Bergankünften.

Auch beeindruckend: 30 Sekunden hat Jan Ullrich auf Levi Leipheimer verloren. Das ist schon ein deutlich besseres Polster für Leipheimer für das Zeitfahren. In der Tour waren es auf 55 Kilometer 2:50 - bei dem 33 Kilometer Rennen bei der Deutschlandtour könnte das den Gesamtsieg von Leipheimer unter Umständen retten, das er heute auf 1:29 Vorsprung ausbauen konnte.

Jetzt wirds sich beim Zeitfahren zeigen wie stark Leipheimer da ist - er kanns eigentlich, vor allem wenn er gut drauf ist. Und das scheint er im Moment ja zu sein. Andererseits ist Jan Ullrich ein absolut überragender Zeitfahrer, von daher ist da definitiv alles offen.

PostgresPy ist eine Sammlung verschiedener Python-Module rund um Postgres. Serverseite und Clientseite.

DjangoGallery - Beispiel-App mit Beispielinstallation

Wieder einmal auf Englisch, da auch für #django interessant

Ich habe den Quellcode hochgeladen und das Repository sowie eine Trac-Instanz für meine Django-Projekte verfügbar gemacht. Das erste Projekt, das dort zu finden ist, ist die DjangoGallery - das ist das, was ich auf viele-bunte-bilder.de verwende. Ich habe eine erste Version einer Installationsanleitung geschrieben, die zeigt, wie man die Galerie auf der eigenen Website zum Laufen bringt - man könnte sie sogar in das eigene Projekt integrieren (allerdings werden einige kleinere Änderungen am Quellcode erforderlich sein - hauptsächlich das Ersetzen des Projektnamens "gallery" durch den Namen Ihres Projekts).

Die Anwendung ist noch nicht vollständig fertig. Es gibt viele Pläne, wie man sie erweitern kann, da sie meine Hauptmotivation sein wird, alle anderen Galerie-Software, die ich betreibe, zu entfernen (ich habe bereits PHP Gallery ersetzt und jetzt ziele ich auf meine alten mod_perl-Dinge ab und das letzte wird meine Wordpress-basierte Galerie sein), also seien Sie gewarnt, dass sie sich im Laufe der Zeit ändern wird.

Wenn Sie Fehler finden, können Sie gerne Tickets einreichen. Sie können auch Verbesserungswünsche einreichen - aber da das Hauptziel dieses Projekts darin besteht, meine eigenen anderen Galerieprojekte zu ersetzen, ist es unwahrscheinlich, dass ich viel Arbeit neben dem investieren werde, was nötig ist, um dieses Ziel zu erreichen. Zumindest vorerst - es gibt keine Grenzen dafür, was mit dem Code gemacht werden kann, nachdem ich alle PHP- und Perl-Codes ausgelagert habe.

Seit 2007 sind diese Links nicht mehr funktionsfähig, daher habe ich sie entfernt.

Kibot ist ein in Python geschriebener IRC bot. Mit einfacher Pluginschnittstelle, so das man den gut als alround-bot auf einen Channel loslassen könnte.

Kompetenz, Inkompetenz, Inkontinenz?

Keine Ahnung was es ist, aber ich finds putzig jemanden in ein Kompetenzteam zu berufen, dessen Ideen mit dem eigenen Parteiprogramm nicht konform gehen. Ich mein, anständige Sozis warten normalerweise mit der Demontage ihrer Experten bis diese wenigstens die Chance hatten so zu tun als ob sie ihren Job verstünden, aber das was der Unionskauder hier abzieht ist nur noch als Brandbeschleuniger zu bezeichnen

Posting 5000

Wow. Das hier ist ernsthaft jetzt das Posting 5000 in der Datenbank.

erstauntes Gesicht

erste Django-Anwendung life

So, meine erste Django-Anwendung ist life - noch nicht fertig, aber im Moment schon mal so gut, das sie besser ist als das alte PHP-Gemölter das da vorher lief. Und zwar gehts hier um meine Bildergalerie unter viele-bunte-bilder.de. Im Moment gibts zwar die Benutzerregistrierung und alles was damit zusammenhängt - aber das werd ich noch irgendwann mal einbauen. Oder auch nicht. Schaun mer mal.

Auf jeden Fall ist es schon mal ganz nett - ich kann Bilder wieder direkt aus iPhoto hochladen (was der wichtigste Vorteil der alten Galeriesoftware war) und die Sachen liegen im Filesystem, nicht in einer Datenbank - was ebenfalls ein recht wichtiger Punkt war.

Die Software selber ist natürlich verfügbar - wer stöbern will, ich hab eine Trac-Instanz mit meinen Django-Spielereien aufgesetzt.

Seit 2007 ist nix mehr davon online.

ObjectiveCLIPS

Way cool: Objective CLIPS ist eine neue Entwicklungsumgebung für OS X. Aus der Beschreibung:

Using Objective C runtime introspection, CLIPS, and FScript, it is possible to write intelligent Cocoa applications. Any Objective C object can be asserted as a fact in CLIPS, however, CoreData provides an additional meta model along with object persistence.

CLIPS ist eine Expertensystemumgebung die im Prinzip auf einem Lisp-Dialekt aufbaut und die Verwaltung von Regeln und Fakten ermöglicht, sowie das Reasoning darüber. FScript ist eine an Smalltalk angelehnte Scriptsprache die direkt mit den ObjectiveC-Klassen im OS X zusammenarbeitet. Beides zusammen sollte ziemlich coole Sachen ermöglichen, zumal mit CoreData auch einfach Datenbanken und Dokumente erstellt werden können. Und beide Sprachen (CLIPS und FScript) fand ich bei meinen Spielereien damit recht interessant - CLIPS war sogar längere Zeit bei mir als "Lisp-Ersatz" im Einsatz, weil es zwar ein recht altmodisches Lisp ist, aber dafür eben mit mächtigen zusätzlichen Abstraktionsmöglichkeiten ausgestattet ist.

RSS 3 - gleich zweimal

Mal wieder jemand der meint er könne ein tolles neues Format kreieren: RSS 3.0 - und der jemand ist zu blöd vorher mal zu googlen. Denn sonnst wäre er über RSS 3.0 gestolpert und hätte vielleicht mal nachgedacht.

Ach watt, nachdenken zählt nicht zu den üblichen Tätigkeiten von tollen Erfindern von Syndizierungsformaten, hat man ja schon in der Diskussion rund um Atom gemerkt. Ich bin immer noch überzeugt das die ganze Syndizierungsformate nur ein grossangelegter netzpsychologischer Test sind.

Heise hat auch was drüber. Und genauso Rogers Cadenhead - der ja im RSS Advisory Board sitzt.

Writing PlugIns beschreibt wie man iPhoto Exporter Plugins erstellt. Könnte mal ganz interessant sein.

SHA-1 geht weiter den Bach runter

Jedenfalls wenn der 2^63 Angriff gegen SHA-1 der jetzt verlautbart wurde trifft. Jetzt werden wohl bald die ersten Referenzimplementationen angegangen werden. 2^63 ist mit heutigen Maschinenleistungen durchaus knackbar, da gibts schon erste Erfahrungen. Und damit ist es wohl nur noch eine Frage der Zeit bis ähnlich wie bei MD5 Hash-Kollisionen für reale Dokumente produzierbar sind. Schon strange wenn man sich anguckt wie sich das Feld verändert hat in Bezug auf die Rechenleistung die aufgebracht werden kann.

1&1 spinnt

Denn da gibts jetzt eine Zwangsumleitung:

Wenn Karlsruher Kunden des Providers 1&1 eine neue DSL-Verbindung aufbauen und danach den Browser starten, bekommen sie neuerdings stets das 1&1-Portal angezeigt.

Na toll. Und wenn diese ersten Requests von irgendwelchen Scripten eines Servers an dem DSL-Anschluss stammen, fallen Scripte da auf die Nase. Nur weil 1&1 mal wieder eine selten dumme Idee hatte. Und wir dürfen das dann den Kunden wieder erklären, warum da irgendwas obskures nicht funktioniert - und das alles nur für Marketingscheiss.

2029 geht die Welt unter

Weil uns dann der Himmel auf den Kopf fällt. Was auch gut so ist, denn 2037 läuft die Unix Epoch über und alle Computer spielen verrückt. Und so bleibt uns das Chaos erspart.

Achso, und wer mir das alles glaubt, ich hätte da noch eine recht nette Brücke zu verkaufen ...

Django hat einen wichtigen Schritt für den Release 1.0 gemacht: anonyme Sessions. Bisher waren ja Sessions bei Django an eine Benutzeranmeldung gekoppelt, aber jetzt gehts auch ohne Registrierung. Wesentlich netter als tausende Cookies beim Benutzer zu erzeugen.

Cooperative Linux ist ein Port des Linux-Kernel als Windows-Applikation. Dadurch kann man Linux als Windows-Anwendung laufen lassen, ohne einen Virtualisierer wie VMWare bemühen zu müssen.

CRUD mit Django

Create, Read, Update, Delete - die Standardfunktionen klassischer Interfaces - kann man mit Django sehr einfach zusammenbauen. Dazu gibt es die Generic Views. Auf Postneo gibts jetzt ein CRUD Tutorial, welches zeigt wie simpel solche Oberflächen mit Django zusammengestellt werden können.

London: Zweifel an Polizeiversion im Fall Menezes

Es gibt berechtigte Zweifel an Polizeiversion im Fall Menezes in London:

Ein Überwachungsvideo zeige, dass der 27-Jährige eine leichte Jeansjacke getragen und sich in der U-Bahn-Station nicht auffällig verhalten habe, berichtete der Sender. Er habe die Haltestelle ruhig betreten, eine Gratiszeitung entgegengenommen und sei mit dem Aufzug zum Bahnsteig gefahren. Erst dort sei Menezes zu einem Zug gerannt und habe in einem Wagon Platz genommen. Ein Zeuge habe zudem ausgesagt, der gelernte Elektriker sei von einem Beamten überwältigt worden. Wenig später schossen Polizisten Menezes mehrfach gezielt in den Kopf. Eine Obduktion ergab, dass die Leiche sieben Kopfschüsse und einen Einschuss in der Schulter aufwies. Allerdings hätten die Polizisten noch drei weitere Schüsse abgefeuert, deren Projektile noch nicht gefunden worden seien, heißt es bei ITV weiter.

Und wie erklären sich die ganzen Shoot-To-Kill-Verfechter das jetzt beiseite? Damit sie nicht über den Wahnsinn ihrer Haltung nachdenken müssen?

Mal was interessantes in Rails

Endlich mal eine Anwendung in Ruby on Rails die über die üblichen Beispielanwendungen hinaus geht - und nicht einfach ein Weblog oder eine total sinnlose Todo-Listen-Verwaltung oder Artverwandtes ist: VitalSource ist eine iTunes-ähnliche Anwendung für Bücher mit einem entsprechenden Backend und einem ebenfalls auf Rails aufbauenden (aber in der Anwendung integrierten) Frontend:

Apparently their backend applications have been running Rails for a while. But they've recently released their client software, and it runs Rails as well. Except... you won't see it running in a conventional browser. As the picture shows, the Rails app runs embedded within the client executable: in the case of the Mac client it uses WebKit to render the responses from the Rails app.

Mir gingen schon die ganzen Rails-Anwendungen - die irgendwie alle nach Übungsbuchaufgaben klangen - auf den Wecker.

A comparison of Django with Rails ist ein recht guter Vergleich von Rails und Django. Wobei Vergleich bei zwei Systemen die durchaus unterschiedliche Themen adressieren natürlich recht schwierig ist - aber der Artikel versucht zumindestens die beiden Frameworks gegeneinander zu positionieren.

Armer Jörg Jaksche

Also ehrlich. Klaut ihm da ein Abstauber auf der Ziellinie den Etappensieg. Sorry, aber manchmal ist Radsport wirklich unfair. Schade - ich hätte den Tagessieg heute dem Jörg Jaksche gegönnt, er hat wirklich immer wieder attackiert. Zweimal weniger umgeguckt und vielleicht hätte er doch noch gewonnen.

Lebende Daten

Komischer Titel, oder? Naja, mir ist einfach nur was aufgefallen bei der Beschäftigung mit Webframeworks und anderen Anwendungen, speziell im Ruby und Pyhton Umfeld. Und zwar die Art und Weise wie Minidaten gespeichert werden und wie zum Beispiel Konfigurationsdaten gehalten werden.

Im Java-Umfeld gibts da eine Inflation von XML-Mini-Languages - Berge von toten Daten. Tot deshalb, weil diese Daten eben nur im XML-Format leben und nur über XML-Werkzeuge bearbeitet und verändert werden können - habe ich zum Beispiel sich ständig wiederholende oder algorithmisch beschreibbare Konfigurationsblöcke (z.B. einen Berg von sich ziemlich ähnlich sehenden URL-Mustern für ein Webframework), kann ich diese nur über XML-Werkzeuge generieren - z.B. mittels XSLT aus einfacheren Formaten generieren. Oder ich schreib mir kleine Tools dafür.

In Ruby sieht die Situation ähnlich aus - nur das da statt XML dann eben YAML genommen wird. Letztendlich ist das aber auch nicht besser - die Konfiguration ist immer noch ein totes File.

Aber sowohl im Python-Umfeld als auch bei diversen anderen dynamischen Sprachen gibt es eine gute Alternative dazu: nimm einfach ein Modul in deiner Programmiersprache. Denn zum Beispiel Pythonmodule leben - ist die Struktur komplexer, aber teilweise repetitiv - einfach eine kleine Python-Funktion schreiben die bei der dynamischen Erstellung der Config hilft. Soll die Config teilweise aus Datenbankinhalten kommen - einfach eine Python-Funktion schreiben die diese Daten zur Laufzeit aus der DB liest und in die Config einmischt. Lebende Konfigurationdaten eben.

Natürlich kommen so Sicherheitsprobleme mit ins Spiel - wir wollen ja nicht den PHP-Fehler mit dem ewigen eval wiederholen. Was dazu also dringend notwendig wäre, wäre eine saubere Sandbox für solche Module. Leider ist genau da in Python ein massives Loch in der Implementierung. Es gab früher mal die Bytecodehacks, die auch wiederbelebt wurden - aber das sind eben nur Hacks. Auch die Methode mittels eingeschränkter Imports und Proxy-Objekten eine Scheinsandbox aufzubauen wie es Zope macht ist nicht der Weisheit letzter Schluss.

Perl bietet hier - wie bei allen Sicherheitsfeatures in Perl üblich wird das natürlich von fast keinem Projekt verwendet - eine sehr saubere Methode über die safe execution. Man kann bis ins kleinste hinein reglementieren was der Code in einer solchen Sandbox darf - und damit ist eine Konfiguration über Perl-Modul definitiv besser abzusichern als in Sprachen ohne so ein Konzept.

Java selber hat natürlich ein ziemlich ausgefeiltes Sicherheitsmanagement - zwangsweise, es soll ja auch in Browsern mit sehr stark beschränkten Rechten laufen. Dieses Security-Modell ist auch für Anwendungen nutzbar und könnte zum Beispiel für Servlets oder eben auch Java-Configs zum Einsatz kommen - vor allem da man mit Java ja auch problemlos Files zur Laufzeit übersetzen und dynamisch laden kann. Erklär mir jetzt mal einer warum die Java-Leute so fixiert auf XML sind, wo sie doch die besten Grundlagen für sichere lebende Daten haben ...

Das Safe-Modell von PHP ignorieren wir hier mal geflissentlich, denn das ist ein Sekt-oder-Selters-Modell - entweder läuft jeder Code unter safemode, oder garkeiner. Was wir bräuchten wäre aber eine selektive Aktivierung unterschiedlicher Sicherheitsklassen für einen einzelnen Codeblock oder Modulimport (ok, Modulimporte hat PHP auch nicht, nur Includes - ich sag ja, wir ignorieren es einfach mal).

Bisher kann man also bei Python nur dann mit lebenden Konfigurationen arbeiten, wenn man sich sicher ist das die Konfigurationen nur von Usern ohne böse Absichten bearbeitet werden. Django zum Beispiel benutzt nur lebende Konfigurationen - es wäre daher eine ziemlich dumme Idee, würde man z.B. die Konfigurationdateien bei zentral gehosteten Anwendungen über das Web editierbar machen.

Wir brauchen dringend eine saubere Sandbox für Python. Ich glaube sogar das wäre ein wichtigeres Teilprojekt als die diversen syntaktischen Erweiterungen die immer wieder angegangen werden.

wxWindows jetzt auch für Common Lisp

wxCL bietet Common Lisp Libraries für die Nutzung der genialen wxWindows GUI Bibliothek. Sehr schön - ich habe wxWindows in seiner Python-Inkarnation schon zu schätzen gelernt, auch in Scheme (über DrScheme) ist es sehr hilfreich, jetzt dürfen auch Common Lisper. Ich weiss das bei Common Lisp natürlich CLIM (heute oft in der Form von McCLIM) das Toolkit der Wahl ist, zumal es wesentlich mächtiger als wxWindows ist. Aber trotzdem ist es schon nett eine Cross-Plattform GUI Bibliothek zu haben, auch und gerade weil es diese eben für mehr als eine Programmiersprache gibt.

die seltsame Neigung der PHP-Programmierer zu eval

Schwachstellen in PHP-Modulen gefährden (mal wieder) zahlreiche Webapplikationen - und zwar wieder mal XML-RPC. Da wird immer noch eval benutzt - und zwar zur Auswertung von Tags. Bitte was? Sorry, Leute, aber das ist einfach nur noch albern - eval ist euch schon mal um die Ohren geflogen, warum wurden die ganzen Aufrufe nicht damals schon rausgeworfen? Oder wenigstens vernünftig gesichert?

Und da wundern sich Leute wenn ich von PHP-Software nicht allzuviel halte ...

lahmes Posten in WordPress

Das neue Wordpress 1.5.2 soll endlich das lahme Posten - verursacht durch das Pingen - beheben, in dem das Pingen in den Shutdown geschoben wird, also hinter die eigentliche Request-Response-Kette. Auf Deutsch: mit der 1.5.2 sollte das Pingen nicht mehr ein ewiges Warten auf den Browser verursachen. Wäre ja sehr nett, wenn das auch klappt.

Da auch Security-Fixes drin sind, ist eh ein Upgrade sinnvoll. Wobei WordPress für eine PHP-Anwendung erstaunlich stabil funktioniert - aber eben trotzdem durchaus noch die eine oder andere Leiche im Keller gammelt.

Update: naja, schneller ist das ja nun doch eher nicht geworden beim Posten ...

Seashore ist ein auf Gimp-Libraries und Formaten aufbauender Bildeditor für OS X. Sieht schon ganz nett aus, auch wenn es natürlich derzeit noch fast keine Features hat (vor allem die ganzen Filter fehlen). Aber vielleicht wird aus sowas mal irgendwann ein OS X nativer Gimp ...

spotlight auf Wechsellaufwerk ausschalten

sudo mdutil -i off -E /Volumes/VOLNAME/ soll spotlight auf einem Volumen disablen und den Index wegwerfen. Hoffentlich - das nervt, wenn meine Backup-Laufwerke jedesmal indiziert werden sollen. Oder wenn dann die gefundenen Anwendungen in den Open With Listen auftauchen, auch wenn das Laufwerk garnicht angeschlossen ist ...

trac - Softwareprojektmanagement leicht gemacht

trac ist ein Webinterface für Subversion -Repositories. Allerdings ist es nicht nur die passende Weboberfläche - dazu kommt ein Wiki, ein Bugtracking-System, eine Meilensteinverwaltung und sehr komfortabel zu erstellende Reports auf Basis des Bugtrackings. Und das ganze in einer sehr leicht installierbaren Packung - bei Debian genügt ein apt-get install trac und dann mit trac-admin initenv eine Trac-Instanz erzeugen. Das ganze sieht auch noch recht ansprechend aus und die Funktionen sind sehr gut integriert - Links aus den Tickets ins Wiki oder Links von Changeset-Bescheibungen in das Wiki oder das Bugtracking sind einfach zu machen und helfen natürlich gewaltig bei der Verwaltung der Softwareänderungen. Dazu kommt eine nette Timeline die Änderungen am System dann zeitlich dokumentiert und verlinkt - unter anderem auch auf einen sehr komfortablen Changeset-Browser.

Ich hab für TooFpy jetzt das ganze handgestrickte Zeugs weggeworfen und auf trac umgestellt. Allein schon die Möglichkeit meine bisher im Sourcetree verwaltete ToDo-Liste jetzt über Tickets den geplanten Releases zuzuordnen bringt eine Menge Überblick über das Projekt.

Yep, wer ein Softwareprojekt verwalten muss sollte sich definitiv trac mal angucken, denn wer nicht unbedingt Kontrollfetischist ist wird sicherlich mit der eher offenen Struktur von trac glücklicher als mit manchem overengineered Teil.

kenosis ist eine Python Library für ein einfaches P2P-Protokoll das auf XMLRPC aufbaut. Simpel und schlicht, allerdings ohne jegliche Form von Verschlüsselung - sollte also über extern verschlüsselte oder anderweitig gesicherte Wege benutzt werden.

Nitro ist ein Webframework für Ruby. Klar als Konkurrenz zu Rails ausgelegt adressiert es einige der Schwächen von Rails - zum Beispiel die recht mageren Object-Relation-Mapper in Rails über ActiveRecords. Nitro benutzt da Og. Auch sonst sind die Features deutlich besser ausgebaut - mehr Code, weniger Hype.

RBL Betreiber mal wieder

Nachdem ich schon im April drüber geschrieben habe, ists jetzt auch endlich im Heise Ticker: RFC-ignorant: Alle .de-Domains unter Spamverdacht. Die Ignoranten von RFC-Ignorant werden sicherlich ihre Meinung nicht ändern, aber vielleicht nimmt jetzt der eine oder andere Provider diese hirnrissige Sperrliste aus der Mailkonfiguration raus.

Fuck, langsam geht mir awstats.pl ziemlich auf den Senkel. Bin schon am Überlegen ob ich nicht doch wieder auf webalizer umsteige, der produziert nur doofen statischen Output. Kann aber leider auch weniger.

Privacy-Update unter OS X

In IRC, identd und Privacy hatte ich mich drüber mokiert das die Proxies mit SOCKS-Support eher dünn gesäht sind - mitlerweile ist das deutlich besser geworden. Denn X-Chat Aqua ist mitlerweile in einem Zustand der als sehr brauchbar bezeichnet werden kann - nach vielen Jahren Snak-Benutzung bin ich jetzt tatsächlich umgestiegen.

X-Chat Aqua unterstützt SOCKS und erlaubt es damit direkt tor zu benutzen. Allerdings ist das nicht SOCKS4A - von daher werden Nameserver-Auflösungen immer noch sichtbar. Idealerweise trägt man einfach die IP-Adresse des Servers ein, dann braucht keine Namensauflösung zu passieren.

Bei Jabber siehts mitlerweile mit PSI auch sehr gut aus - PSI ist unter OS X sehr brauchbar und die Darstellungsprobleme älterer Versionen sind auch behoben. Und PSI arbeitet ebenfalls mit tor zusammen.

Browsen über tor ging schon vorher problemlos, aber mit den aktuellen Mac OS X Builds von tor ist das ganze auch noch nett einfach zu installieren. Als Tipp: ich habe mir eine eigene Netzwerkkonfiguration angelegt, mit der ich die Proxy-Einstellungen leicht wechseln kann. Damit kann ich dann einfach im Apfelmenü Privoxy+Tor ein- und ausschalten wie ich es brauche. Funktioniert natürlich nur mit Browsern die ihre Proxy-Einstellungen aus den Systemeinstellungen holen.

ssh-Nutzung über tor ist mit dem ProxyCommand-Kram einfach machbar. Eine Anleitung ist in der Torify HowTo. Viele der dort genannten Tipps funktionieren auch unter OS X, da ja ein normales Unix drunter liegt.