Artikel - 14.8.2005 - 12.9.2005

Hirnfürze

Bayerns Hirnfurzproducer No 1 (ja, der schlägt sogar Scatman Eddy) fordert Internetfilter für Bombenbauanleitungen:

Bayerns Innenminister Günther Beckstein (CSU) hat die Wirtschaft aufgefordert, Lösungen für ein seiner Meinung nach sehr gravierendes Sicherheitsproblem zu finden: Bauanleitungen für Bomben im Internet.

Das viel grössere Sicherheitsproblem: durchgeknallte und inkompetente Innenminister. Kann man leider nicht einfach per Filter aus der Welt schaffen. Ok, kann man mit Bombenbauanleitungen auch nicht - die stehen ja eh in Büchern, die müsste man dann gleich mit verbrennen. Eine Lösung die sich vielleicht auch für Politikerauswurf anbietet ...

Die Träumer von der BfA

Aus meiner Renteninformation:

Sie können davon ausgehen, dass die errechnete Altersrente in Höhe von X.XXX,XX EUR aufgrund künftiger Rentenanpassungen tatsächlich höher ausfallen wird. Allerdings können auch wir die Entwicklung nicht vorhersehen. Deshalb haben wir - ohne Berücksichtigung des Kaufkraftverlustes - zwei mögliche Varianten für Sie gerechnet. Beträgt der jährliche Anpassungssatz 1,5 Prozent, so ergäbe sich ab dem 65. Lebensjahr eine monatliche Rente von Y.YYY EUR. Bei einem jährlichen Anpassungssatz von 2,5 Prozent ergäbe sich eine monatliche Rente von etwa Z.ZZZ EUR.

Ehm. Sorry, aber wenn ihr wirklich von 1.5 Prozent oder 2.5 Prozent Rentenanpassung pro Jahr träumt, dann könnt ihr die Entwicklung wirklich überhaupt nicht vorhersagen ...

Common Scheme

Common Scheme ist eine Implementation eines gemeinsamen Modul-Standards für verschiedene Scheme-Implementationen inklusive eines Paketinstallers der seine Sachen aus dem Netz holen kann. Dazu kommen eine Reihe von ersten Modulen die darüber verteilt werden. Könnte sowas wie CPAN für Scheme werden.

Ähnliche Ansätze gabs schon öfter, aber leider immer nur für einzelne Schemes (z.B. MZScheme hat sowas). Eine Scheme-übergreifende Lösung könnte auf Dauer doch einiges einfacher machen - und Scheme etwas aus der akademischen Ecke holen. Verdient hätte die Sprache es.

Und das beste: Gambit-C und Chicken sind bei den unterstützten Schems dabei

Leider fehlt MZScheme in der Liste der unterstützten Schemes - es wäre schon ziemlich cool seine Programme mit DrScheme zu entwickeln und dann hinterher einfach durch Chicken zu jagen um sie schnell zu bekommen ...

I want one!

Erste Lebenszeichen von Open Genera auf PowerMac - das wäre echt ein Hammer, wenn Open Genera nicht mehr nur auf seltsamen OpenVMS Kisten liefe, sondern auch auf einem PowerMac - da würd ich mir glatt doch noch einen Desktop-Rechner für kaufen

Beware the Monster Chick!

Dass Dinosaurier gefedert waren - geteert wurden sie erst beim Asteroideneinschlag (ok, sorry, blöder Witz) - ist ja schon lange in Diskussion, zumal es ja passende Funde gibt. Aber das hier war mir schon neu:

“The way these creatures are depicted can no longer be considered scientifically accurate,” he said. “All the evidence is that they looked more like birds than reptiles. Tyrannosaurs might have resembled giant chicks.”

Chicks? Wohl eher Chickens, oder?. Ausser die Chicks in der Heimatstadt des Schreiberlings sind overly impressed by feathers

Qualitätsjournallie

Im WDR wars vor kurzem noch korrekt im Morgenmagazin, aber die Tagesschau ist sich nicht zu blöd den dummen Witz nochmal auszuwalzen:

Den Straßburger Abgeordneten sei es gedankt, wir sind noch einmal davongekommen, an diesem sonnenverwöhnten Septembertag: Die EU-Richtlinie "zum Schutz vor optischer Strahlung am Arbeitsplatz" ist gekippt und bleibt somit für hoffentlich immer im Dunkel der Archivschränke verschwunden.

Liebe Journaillie: bei der Verordnung ging es primär um künstliche optische Belastung, nicht um die Sonne. Es ging keinesfalls darum irgendwen zu verhüllen der Bierseidel schleppt - es ging darum, das Arbeitgeber verpflichtet würden, Mitarbeiter auf Belastung durch UV-Strahlen aktiv hinzuweisen und darüber zu informieren. Der Hinweis hier: >Nackte Oberkörper auf der Baustelle, tiefe Dekolletés im Biergarten, Bademeister ohne Vermummung.

ist also kompletter Mumpitz.

Man mag sich fragen ob so eine Verordnung Sinn macht - aber dieses dumme Rumgereite auf etwas das nicht Ziel der Verordnung war ist eigentlich nur peinlich und lächerlich. Peinlicher und lächerlicher als jede EU-Verordnung jemals sein könnte ...

Erster Fallout von Schwarz-Gelb

Schwarz-Gelb auf dem ideologischen Kreuzzug gegen Windenergie:

Das Bundesumweltministerium sieht in der Initiative der Landesregierung eine "frontale Kampfansage" an die Windenergie. "Dies bedeutet, dass in NRW keine Windkraftwerke mehr gebaut werden dürfen", sagte ein Ministeriumssprecher am Dienstag zu wdr.de. Wenn das Beispiel Nordrhein-Westfalen Schule mache, seien die deutschen Klimaschutzziele nicht mehr zu erreichen. CDU und FDP kämpften "aus ideologischen Gründen" gegen die Windenergie.

War ja klar, die Union muss ja fleissig den Energie-Monopolisten in den Arsch kriechen, da stört das Flattern der Windrotoren ...

Alles nur geklaut

CDU gesteht: Merkel schrieb bei Reagan ab:

Ja, das Schluss-Statement von Unions-Kanzlerkanidatin Angela Merkel beim TV-Duell mit Bundeskanzler Gerhard Schröder war an eine Rede des früheren US-Präsidenten Ronald Reagan angelehnt.

Soso, nicht mal das eigene Lobhudeln und Rumblähen kann sie selber. Darf sowas Kanzler werden?

Django Gallery Status

Again news from my gallery project - it's making good progress, even if some of my latest stuff isn't directly visible. I did a lot of reworking in the code and a lot of admin interface changes. Things in the source that might be interesting for other djangonistas:

  • I still have a fully filesystem based gallery - but I added a database stored cache. So now when contents is pulled from the filesystem, the code directly checks with it's database cache and updates that accordingly. This led to a heavy rework of the code so that now actually all stuff is driven by model objects - the cache entries are just part of the django model. Makes code much easier and allows the next two changes.
  • I added an automatic sitemap for galleries. First versions traversed the filesystem, but now it just uses the database cache to draw a folder hierarchy with thumbnails.
  • I added RSS support. The main gallery selection references a RSS feed over all galleries and the folder and image views within a gallery reference a RSS feed only for images within that gallery. This makes use of the RSS framework of Django.
  • the view that showed gallery folders and images was reworked to make much more use of django-like stuff: instead of lazy closures that are passed in to the template, I now use custom templates that help to reduce the code of the view drastically (ok, the code is moved to the taglib, but that's much better decoupling than before).

The result: the gallery is much faster, I have RSS up and running and I have automatic sitemaps. The code itself is much easier as it is more model-driven - the former clash between picturefolder model stuff on the one side and FSObject instances on the other side ist gone - and cache maintenance is automatic. And the XMLRPC integration is much faster, too. All in all some very useful internal changes.

Other changes are in the management interface where you now not only have the AJAX-stuff to change object names and hidden state, but can do that from a filemanager, too. That filemanager will be extended for simple management functions like moving, deleting etc., too. It already is able to create new folders.

Manchmal spinnen die Debianistas

Aus der Antwort auf einen Bugreport von mir über eine völlig falsche Version von mod_perl 2:

I'm afraid you will be out of luck here, if I understand the issues correctly. The official release of mod_perl 2.0 never made it to Sarge, the 1.999.21-1 packages in Sarge is a pre-release. The problem was that shortly before mod perl2 went stable, the upstream developers decided to rename lots of things in the API, and Sarge shipped the old API. Thus, mod perl 2.0 as shipped with Sarge won't run in the rest of the world, and vice-versa. Also, the documentation will be confusing. [...] So, well, this isn't a good situation, but it is something we have to live with.

Bitte was? Die haben ja wohl ein Rad ab. Nochmal zum Mitmeißeln: die mod perl 2 Version in Debian Sarge - die aktuelle stabile Debian - ist weder mit der alten mod perl 1 Version noch mit der wirklichen mod perl 2 Version kompatibel, weil es eine 1.99sonstwas ist, die ein ziemlich an deres API hat. Anwendungen die darauf aufbauen sind nicht portabel von der alten Version und nicht portabel zur neuen Version. Wer mit der Debian Sarge und Apache2 und mod perl arbeiten will, muss sich erst einen Backport besorgen, denn die Version da drin ist einfach nur völlig falsch.

Sowas ist doch hirnrissig. Klar, gut, die mod perl 2 ist nicht rechtzeitig zum Release fertig geworden, aber die derzeitig in Sarge befindliche Version ist schlichtweg Müll. Und anstatt die rauszuwerfen wird so eine Zwischenversion reingepackt und jedem der mod perl Anwendungen auf Apache 2 portieren will das Leben schwer gemacht - und zwar gleich doppelt, denn mit dem nächsten Release darf man dann nochmal portieren.

Und heute nacht dann der Hammer:

The only valid complaint in this bug report is the fact that we don't include pre-2.0 API docs in sarge. Debian makes absolutely no guarantees that the version of a package shipped in a stable release will match whatever the current API is on its upstream website.

Zusammenfassung: wir haben nichts verstanden und bestehen darauf uns wie Vollidioten zu verhalten. Statt die schrottige Release - die auch von Upstream als "don't use" eingeordnet ist - wenigstens rauszuwerfen wird jetzt einfach nur als Wishlist-Bug die fehlende Dokumentation gelistet.

Nacht der Museen in Münster

Wie jedes Jahr war wieder mal die lange Nacht der Museen in Münster. Irgendwas muss aber gegenüber letztem Jahr passiert sein. Letztes Jahr war das Interesse zwar gross, aber man konnte es noch als durchaus erträglich bezeichnen. In den Museen konnte man sich - zwar mit mehr Besuchern also sonst - durch die Räume bewegen. Nur das Picasso-Museum war auch letztes Jahr schon überfüllt und wurde nur Grüppchenweise zum Betreten freigegeben.

Diesesmal war daran nicht zu denken - das Landesmuseum für Kunst und Kultur ist ja nicht gerade klein. Trotzdem kam man in manche Räume nicht mehr rein vor lauter Leuten - die dann auch noch mit Führungen zu regelrechten Besucherpfropfen ganze Teile des Museums unerreichbar machten.

Absolut irre das ganze. Wahre Menschenhorden wälzten sich da durch die Stadt und bliesen zum gesammelten Angriff auf die Museen. Irgendwie leicht surreal das ganze

Parser für Python-ähnliche Konfigfiles

Philip J. Eby hackt mal wieder. Diesmal einen Parser für Konfigurationssprachen deren Syntax an Python angelehnt ist. Besonders interessant: mit dem Parser kann man sehr schön abstrakte Sprachen aufbauen die in Teilen einfach Python für Code benutzen - man kann enthaltene Python-Blöcke nämlich von der Token-Form wieder in sauber formatierten und eingerückten Python-Code umwandeln. Der Parser kennt natürlich all die Randfälle der Sourceformatierung in Python und kommt mit denen auch klar.

Interessant ist das ganze deshalb, weil man mit Python ja leider keine Makrosprache hat und deshalb eigene Syntaxerweiterungen und Sprachen mit domain-spezifischer Syntax und Semantik nicht direkt in Python abbildbar sind - aber man kann über diesen Parser einen Translator für solche DSLs bauen und diese dann wieder in Python wandeln. Dazu dann noch ein bischen Import-Magic und man hätte sowas wie poor-mans-macros für Python ...

Prioritäten

Eigentlich wollte ich mir ja jeden Kommentar zu New Orleans verkneifen - schliesslich weiss man nicht was das Denken mehr bestimmt, die Trauer über die unnötigen Opfer oder die Wut auf die Stümperhaften Aktivitäten der Regierung dort, aber wenn ich sowas wie bei Rogers Cadenhead lese: Go to the Back of the Bus Line dann wird mir echt übel. Denn das ist nicht mehr nur noch stümperhaftes Vorgehen, das ist Rassismus pur (und bevor mir wieder Antiamerikanismus und anders vorgeworfen wird: guckt euch die Hautfarbe der Mehrheit derer an, die in New Orleans komischerweise nicht evakuiert werden konnten).

Es ist schlicht zum Kotzen. Und jetzt kommt auch noch die religiöse Rechte und gibt Schwulen und Abtreibungskliniken die Schuld am Hurrican.

Und der Präsident? Macht einen Abstecher nach Biloxi und lässt von Hilfskräften vorher genau die Stelle räumen, die er besucht - und nach dem Besuch verschwinden die Hilfskräfte wieder. War übrigens in der Tagesschau - die Reporterin konnte das selber nicht ganz fassen was da abgegangen ist ...

ID ist grober Unfug

Intelligent Design ist keine Wissenschaft:

Sie speist sich aus Denkfaulheit und Arroganz: »Ich bin ein kluger Kerl, und ich kann nicht verstehen, wie das alles durch Evolution entstehen konnte. Also konnte es nicht durch Evolution entstehen.«

Ein sehr guter (weil ehrlich verärgerter) Artikel in der Zeit über den Mumpitz mit dem Kreationisten immer wieder ihre Hirnfürze an die Schulen zwingen wollen. Ein Thema, das eigentlich schon seit Darwin zu den Akten gelegt worden sein sollte - und leider trotzdem immer wieder von Religionsspinnern hochgekocht wird.

Es wäre ja mal an der Zeit das die grossen Kirchen klare Stellung zu dem Thema beziehen und die Spinner als das deklarieren was sie sind - aber zu sowas kann man sich dort nicht durchringen. Immerhin verdient man mit den simplen Antworten auf komplexe Probleme ja einen Haufen Geld. Und wen schert da schon die Realität ...

MochiKit Tutorial Teil 1

Es ist der erste Teil des MochiKit Tutorial online. Sehr interessante Lektüre - einige der Punkte sind durchaus bedenkenswert. Und MochiKit hat sich bei mir im Echteinsatz auch schon bewehrt - und ja, ich benutze fast ausschließlich JSON dabei.

Und sie laufen immer noch

Unsere kleinen Freunde auf dem Mars sind immer noch unterwegs. Spirit hat jetzt einen Berg erstiegen und geniesst die Aussicht auf die Landschaft.

Neben Cassini-Huygens ist die Mars-Geschichte mit dem Mars-Explorer und den beiden sympatischen Fernlenkrobbis eines der für mich spannendsten Raumfahrt-Projekten. Viel spannender als veraltete Space-Shuttles zu langweiligen Routine-Aktionen mit ausgedehnten Reparatureinlagen zu schicken ...

Von der Mars-Sorte hätte ich gerne noch ein paar mehr.

Wahlkampfbeitrag?

Achne, die Ausstellung ist ja Schmarotzer in Bonn - und der Bundestag liegt ja jetzt in Berlin ...

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 ...

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.

News from the Gallery project

News from my Django Gallery project: it's coming along nicely. If you want sample code for AJAX with Django or XML-RPC with Django - look into it's source. I implemented parts of the blogger API, metaWeblog API and MoveableType API - just enough so that Photon can post pictures to my gallery. AJAX is used for logged in users to change the title of pictures and folders by just clicking the title and for activating the toolbox on the backside of pictures. Additionally the gallery includes the usual PIL stuff like thumbnailing - I am especially proud of the flipped corner look for folder thumbnails Other stuff worth looking into might be the usage of lazy evaluation to push stuff into the template without precalculating it - it's only calculated when the template actually uses it. And interesting might be the abstraction of the filesystem based content - only the base path is stored in the database model, the rest of the gallery is in the filesystem (and can so be easily managed with FTP, SSH or directly on the unix shell).

Additionally you might look into it for handling of authentication - user registration isn't yet done, but will follow some day. As will comments and RSS - but I have to write that, first. And I am starting to write documentation - docstrings in the code and documentation pages in the 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.

DjangoGallery - sample app with sample installation

Mal wieder englisch, da auch für #django interessant I have uploaded the source and made available the repository and a trac instance for my django projects. The first one that's there is the DjangoGallery - that's what I am using at viele-bunte-bilder.de. I have written a first take at an installation instruction that shows how to get the gallery running on your own site - you could even integrate it into your own project (although you will have to do some minor source changes - mostly replacing the projectname "gallery" by whatever your project is called).

The application isn't fully done, yet. There are many plans on how to extend it, as it will be my main motiviation to remove all other gallery software I am running (I already replaced PHP Gallery and now I am targeting my old mod_perl stuff and last one will be attacking my Wordpress based gallery), so be warned that it will change over time.

If you find bugs, feel free to file tickets. You can file enhancement wishes, too - but since the main target of this project will be to replace my own other gallery projects, it's doubtfull that I will do much work besides what is needed to reach that goal. At least for now - there's no limit to what can be done to the code after I phased out all PHP and Perl code

Since 2007 these links are non-functional, so I removed them.

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.

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 ...

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.

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 ...

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 ...