eAccelerator ist ein weiterer PHP Accelerator. Er baut auf dem Turck mmCache Source auf, ist aber aktiv in der Entwicklung.
programmierung - 26.12.2004 - 1.2.2005
Die Kostenlose Rechtsberatung für Open-Source-Entwickler ist sicherlich wohl nur für US-amerikanische Entwickler wirklich nutzbar - aber vielleicht kommt vergleichbares ja auch nach Europa.
Weg mit Trackback
Isotopp grübelt anlässlich des Spamtags über Trackback Spam und stellt mehrere Ansätze vor. Einer davon arbeitet mit einer Gegenprüfung der Trackback-URL gegen die IP des einsendenden Rechners - wenn der Rechner eine andere IP hat als der im Trackback beworbene Server, dann wäre das warscheinlich Spam. Ich hab mal meine eigenen Kommentare dazu zusammengeschrieben - und begründet, warum ich Trackback lieber heute als morgen los wäre. Komplett. Und ja, das ist eine komlette 180-Grad Wendung meinerseits zum Thema Trackback.
Der IP-Test-Ansatz kommt mal wieder aus der Sicht der reinen servererstellten Blogs. Es gibt aber dummerweise einen grossen Haufen Trackback-fähiger Softwareinstallationen die nicht auf dem Server laufen müssen (oft auch nicht laufen) auf dem die Blogseiten liegen - alle Tools die statischen Output produzieren zum Beispiel. Grosse Installationen sind Radio Userland Blogs. Kleinere PyDS Blogs. Oder auch Blosxom-Varianten im offline-Modus (sofern es da mitlerweile trackbackfähige Versionen gibt - aber das es typische Hackertools sind, gibts das mit Sicherheit).
Dann gibts noch die diversen Tools die nicht Trackback-fähig sind, wo die User dann einen externen Trackback-Agent benutzen um die Trackbacks abzusetzen.
Und last but not least kommen auch noch die diversen Blogger/MetaWeblogAPI-Clients hinzu, die selber den Trackback absetzen weil z.B. nur MoveableType im MetaWeblogAPI das Triggern von Trackbacks erlaubt, aber andere APIs nicht.
Von daher ist der Ansatz mit der IP entweder nur als ein Filter zu sehen der einen Teil der Trackbacks durchwinkt, oder aber eine Verhinderung von Trackbacks von den oben genannten Usern. Und letzteres wäre ausgesprochen unschön.
Eigentlich ist das Problem ganz einfach: Trackback ist ein krankes Protokoll das mit der heissen Nadel gestrickt wurde, ohne das sich der Entwickler auch nur einen Hauch von Gedanken zu dem ganzen Thema gemacht hat. Und gehört daher IMO auf den Müllhaufen der API-Geschichte. Das ich es hier unterstütze liegt einfach nur daran, das WordPress es standardmäßig implementiert hat. Sobald der manuelle Moderationsaufwand zu hoch wird, fliegt Trackback hier ganz raus.
Sorry, aber in dem Punkt Trackback haben die MoveableType-Macher wirklich Nähe zu Microsoft-Verhalten gezeigt: einen völlig unzureichenden Pseudo-Standard durch Marktdominanz durchgedrückt - ohne sich überhaupt mal über die Sicherheitsimplikationen Gedanken zu machen. Warum wohl bei RFCs immer ein entsprechender Absatz über Sicherheitsprobleme zwingend ist? Leider haben die ganzen Blogentwickler alle fleissig mitgezogen (ja, ich auch - bei Python Desktop Server) und wir haben dieses alberne Protokoll am Hals. Und seine - völlig erwartbaren - Probleme.
Besser jetzt eine bessere Alternative entwickeln und forcieren - z.B. PingBack. Bei PingBack ist definiert, das die Seite die einen PingBack auf eine andere Seite ausführen will auch wirklich diesen Link dort exakt so enthalten muss - im API werden immer zwei URLs übertragen, die eigene und die fremde URL. Die eigene URL muss im Source auf die fremde URL zeigen, nur dann wird der fremde Server den PingBack annehmen.
Für Spammer ist das ziemlich absurd zu handhaben - sie müssten vor jedem Spam die Seite umschiessen oder über entsprechende Servermechanismen dafür sorgen, das die gespammten Weblogs dann beim Test entsprechend eine Seite vorgegaukelt bekommen, in der dieser Link drin ist. Natürlich ist das durchaus machbar - aber der Aufwand ist deutlich höher und durch die nötige Servertechnik ist das nicht mehr mit fremden offenen Proxies und/oder Dialup-Zugang machbar.
Von daher wäre der richtige Weg einfach der Wechsel des Linkprotokolls. Weg mit Trackback. Das Trackback-Loch kann man nicht stopfen. PS: wer sich mal meinen Trackback in Isotopps Posting anguckt sieht gleich das zweite Problem von Trackback: abgesehen vom riesigen Sicherheitsproblem ist nämlich die Zeichensatzunterstützung von Trackbacks schlichtweg ein totales Debakel. Auch hier hat der ursprüngliche Autor des Pseudo-Standards keine Minute über mögliche Probleme nachgedacht. Und dann wundern sich noch manche Leute wenn TypeKey von den Moveable-Type-Leuten nicht so richtig akzeptiert wird - sorry, aber Leute die so bescheidene Standards machen werde ich auch noch gerade die Loginverwaltung übertragen ...
Orange Data Mining
Mal wieder ein Link für die Zahlenfresser: Orange ist eine Datamining-Library mit Python-Integration und eine - zumindestens nach den Screenshots - interessanten GUI.
darcs - Distributed Versioning
darcs ist eines der vielen Versionsverwaltungssysteme die als Nachfolger von CVS antreten. Speziell gehört darcs in die Klasse der verteilten Versionsverwaltungen und ist damit natürlich Subversion mit seinem zentralistischen Ansatz überlegen (jedenfalls wenn man ein verteiltes Projekt verwalten will und nicht einfach mit dem zentralen Repository klar kommen kann). Normalerweise würde ich über sowas nicht viele Worte verlieren - schliesslich gibts im Moment mehr Versionsverwaltungsprojekte als in den 80ern Editoren. Aber jetzt mal ernsthaft: wer kann ein Versionsverwaltungssystem ignorieren das in einer funktionalen Programmiersprache mit lazy evaluation geschrieben ist (ja, genau, das Teil ist in Haskell - soviel dazu das Haskell für praktische Projekte untauglich sei) und sich selber als auf einer "theory of patches" with roots in quantum mechanics basierend beschreibt? Und die Programmierer benutzen auch noch literate Programming - ja, diese etwas in Vergessenheit geratene Methode von Knuth in einem Source sowohl Dokumentation als auch Code unterzubringen und ein Programm dokumentationszentrisch zu entwickeln. Einfach nur cool.
Using the .Mac SDK - Objective C (und über PyObjC dann wohl auch Python) Schnittstelle zu .Mac.
freshmeat.net: Project details for JRuby - cool, JRuby ist mitlerweile bei Ruby 1.8 angekommen. Eine nette Alternative im Java-Umfeld einfach mit Ruby zu programmieren. Die Jython-Leute sollten mal aus den Puschen kommen und endlich Jython voll Python 2.3 kompatibel machen - da happerts noch gewaltig.
Introducing JSON - eine weitere Objekt-Ascii-Notation, diese hier angelehnt an JavaScript Syntax. Ganz interessant - nicht so pingelig was Leerzeichen angeht wie YAML und nicht so schwafelig in der Syntax wie XML.
.: json-rpc.org :. - eine auf JSON aufbauende RPC Bibliothek.
Asymptomatic » New “Secret” Project - sowas wie ein Peer2Peer-Netz, das auf Standardtechniken wie HTTP und DNS aufbaut. DynDNS zum gegenseitigen Finden, HTTP zum Filetransfer und RSS und HTML für die Filelisten. Eigentlich ne nette Idee.
RSS 1.1 und Postals Law
Der RSS 1.1: RDF Site Summary (DRAFT) enthält eine stelle die mir erst heute aufgefallen ist ( durch dieses Posting). Das passt gut zu dem Thema Arroganz von Entwicklern . Denn hier hat wieder mal ein Entwickler leicht den Pfad der Vernunft verlassen. Klar, es ist wichtig das ein Standard sauber definiert ist und das sich Produzenten der Formate an diese Standards halten. Es ist auch in Ordnung zu verlangen das ein Komsument dieses Format prüft und bei Abweichungen Meldungen gibt (wobei die wenigsten Benutzer mit diesen Meldungen ihres Aggregators was anfangen können). Es ist aber völlig utopisch zu glauben das Aggregator-Benutzer damit zufrieden sind, das ihr Aggregator nur eine Fehlermeldung ausspuckt und keinen Content. Das ist genauso dämlich wie der gleiche Antritt bei XHTML - wo einige Browser das durchaus umsetzen und bei defektem XHTML nicht in den Quirks-Mode gehen, sondern einfach den XML-Par4ser-Fehler liefern. Sorry, aber das ist komplette Moppelkotze. Jedes Kommunikationsprotokoll hat nunmal zwei Enden - den Produzenten und den Konsumenten. Und Postals Law - be conservative in what you produce and liberal in what you accept - ist nunmal der sinnvollste Weg wie man solche Kommunikationsprotokolle angehen sollte, die für Menschen bestimmten Content transportieren. Zu fordern das Konsumentenanwendungen vorhandenen Content nicht zeigen aufgrund von Formatfehlern ist schlicht unrealistisch.
Thinking Forth
Thinking Forth ist jetzt online verfügbar. Mein erstes Forth-Buch - hat mich damals für die Sprache sehr begeistert. Vor allem weil es den mir damals zugänglichen Rechnern wesentlich angemessener war als die meisten anderen Programmiersprachen.
Audioscrobbler :: Development - Last.fm Streaming API - ein API zum auf seinen last.fm Sender zuzugreifen.
Build me money making website please
Rent A Coder - Build me money making website please - ich zitiere mal:
I would like someone to build me a good website that will make me around $1000 a week or more. The website should be useful and not have any popups. I would like you to design the whole entire website. The content as well. Would like the website to have a lot of traffic as well.
Sorry, aber wenn ich eine Website bauen könnte die 1000 Dollar wöchentlich einbringt - dann würd ich die gerade so einem Dummbatz verkaufen. Logisch. Klar. Und Schweine können Fliegen.
(Gefunden bei Paul Tomblin)
Ein erstes Python Beispiel in Frontier ist jetzt online. Sieht sehr interessant aus - ich würd mir wünschen das jetzt mal jemand Binaries baut, denn XCode habe ich ja - wegen 10.2 - noch nicht. Und ich würd damit doch so gerne rumspielen ...
Subway ist eine Python-Implementierung der Ideen von Ruby on Rails. Wer also Angst hat sich an den ganzen spitzen und geschweiften Klammern in Ruby zu verletzen ...
Microsoft entlässt Windows-Tester und setzt statt dessen auf automatische Tests. Wieder mal hat die Tool-Gläubigkeit zugeschlagen. Eine selten dämliche Idee, denn automatisierte Tests finden nur das was automatisiert ist. Es fehlt ihnen an der Intuition die Menschen (zumindestens wenn es gute Tester sind) haben. Aber Microsoft-Software hat auf mich eh noch nie den Eindruck besonders guter Tests gemacht ...
D Programming Language
Das Referenzbuch zur D Programming Language(einem Nachfolger von C und C++ mit diversen Highlevel-Ideen) hat eine sehr faszinierende Klausel in der ersten Seite der Sprachbeschreibung stehen:
Note: all D users agree that by downloading and using D, or reading the D specs, they will explicitly identify any claims to intellectual property rights with a copyright or patent notice in any posted or emailed feedback sent to Digital Mars.
Ich habe so die Vorstellung das eine solche Klausel - die automatisch nur durch das Lesen der Dokumentation für einen Benutzer zwingend wird und etwas fordert, das der Benutzer unter Umständen garnicht leisten kann - ein bischen absurd ist. Mich würde mal die Meinung der Blawger dazu interessieren
MonkeyTyping - The PEAK Developers' Center
MonkeyTyping ist Phillip J. Ebys Ansatz für optional statisches Typing in Python. Sieht sehr interessant aus, die Idee. Was mich an Phillip immer wieder begeistert ist seine Fähigkeit über den Sprachtellerrand zu gucken - man denke nur an seine Arbeiten für generische Funktionen in Python. Genau solche Schübe braucht Python mal dringend wieder - einige Diskussionen rund um Python zeigen die ersten Anzeichen von Sprach-Inzucht (zum Beispiel diese nahezu Hass-Reaktionen auf die Erwähnung von Lisp und Lips-Features bei einigen Python-Advocates).
FBI versenkt 170 Mio Dollar Software Projekt - wegen unerwarteter Probleme . Komisch, das die Probleme in der IT immer noch unerwartet sind ...
PECL :: Package :: APC - PHP caching System, Open Source (nicht so komische Stunts wie phpAccelerator und nicht so tot wie turck mmCache)
Glossary für WordPress
Ich habe ein kleines Wordpress Plugin geschrieben das ein Glossary ähnlich wie bei Radio Userland oder PyDS implementiert. Mit dem Glossary werden einfach Texte die durch | (Pipe) Symbole begrenzt werden durch einen Ersatztext (der auch XHTML Markup enthalten kann) ersetzt. Spart Tipperei ...
Das Plugin installiert eine kleine Managementseite im Wordpress-Backend, das ganze funktioniert also nur mit Wordpress 1.5 (oder evtl. 1.3). Die nötige Datenbanktabelle wird nach Aktivierung des Plugins automatisch erstellt beim ersten Zugriff auf die Managementseite.
Second p0st: cElementTree hat jetzt eine C-Variante zur Beschleunigung des Ablaufs. Damit wird es eine echte Alternative zu anderen DOM Implementierungen.
dirtSimple.org: CLOS-style Method Combination for Generic Functions
Phillip J. Eby beweist einmal mehr das jede Programmiersprache die was werden will dazu verdammt ist irgendwann Common Lisp zu werden
Mir gefällt was er macht - gerade das Objektsystem von Python ist doch etwas primitiv und generische Funktionen und Methodenkombinationen im CLOS Stil sind sehr praktische Mittel bei der Programmierung. Auch seine erweiterte Objektadaption in PyProtocols war schon interessant, aber das recht vollständige Objektmodell mit Anlehnung an CLOS ist definitiv reizvoll.
Ich würde mir ja wünschen das sich Guido van Rossum mehr Gedanken darüber macht wie er PJEs Zeug in Python integriert als darüber wie er optional statische Datentypen einführt.
IBM on Software Patents
IBM's Aktion ist sehr interessant: nicht nur das Patente der freien Software frei zur Verfügung gestellt werden, auch wird klar eine Kampfansage gegen Klagegeister gemacht. Wer mit Klagen gegen Open Source vorgeht, gerät in die Gefahr die Rechte an der Nutzung der IBM Patente zu verlieren. Natürlich ist es jetzt interessant was genau IBM da an Patenten verfügbar macht, aber ich könnte mir bei IBM durchaus vorstellen das da ein paar Knaller dabei sind. IBM ist immerhin eines der Unternehmen mit dem grössten (wenn nicht sogar das Unternehmen mit dem grössten) Patentportfolio.
GeSHi - Generic Syntax Highlighter :: Home - ein Syntaxhighlighter in PHP. Könnte ich benutzen wenn ich hier Sourcecode poste ...
Optional Static Typing -- Stop the Flames!
Na also, geht doch. In seinem dritten Artikel über optionale statische Typdeklarationen für Python nimmt Guido van Rossum die ganzen Kommentare auf und bringt einen meiner Meinung nach kompakten und sinnvollen Vorschlag. Interfaces sind eine sinnvolle Einrichtung für stringenteres Duck-Typing - natürlich optional, also nur dort wo man es braucht. Und automatische Typadaption ist eine gute Idee - wird auch Zeit, das der PEP 246 in Python integriert wird.
Das wichtigste aber ist und bleibt: es wird optional. Wer es nicht braucht, lässt es weg.
The Implementation of Functional Programming Languages
Klasse. Ein Klassiker der Informatikliteratur (ok, ein moderner Klassiker ) ist jetzt online lesbar. Das Buch ist deshalb interessant, weil es viele Aspekte der Realisierung einer für Haskell oder Miranda geeigneten Systemumgebung erläutert.
Es ist allerdings leider nur als Scans im JPG-Format online, also etwas mühsam zu benutzen - vor allem Suchen klappt natürlich nicht. Aber immerhin ist das Inhaltsverzeichnis mittels Imagemap verlinkt.
Modal Web Server Example Part 1
Wer sich mehr mit continuation-basierten Webservern beschäftigen will und nicht vor Klammereien zurückschreckt, der verlinkte Artikel (es gibt 4 Teile) widmet sich dem Thema aus der Scheme-Richtung. Was dank first-class-Continuations in Scheme auch wesentlich sinnvoller ist als mein wilder Hack in Python
Aquarium - Webframework mit MVC Ansatz in Python - vergleichbar Rails?
Borges Home - Continuation basiertes Webframework für Ruby
BottomFeeder - Plattformübergreifender RSS/Atom-News-Aggregator - Aggregator in Smalltalk
Continuations mit Python
Ein weiterer Artikel aus der Reihe: wir machen das unmögliche möglich . Diesmal nehme ich mir Continuations vor und implementiere eine recht primitive Variante in Python - und beschreibe wie man damit eine wesentlich nettere Art der Webserverprogrammierung erhält. Einfach auf den Titel-Link klicken. Diesmal allerdings in Englisch. Hier gibts den Originalartikel.
Glorp.org - Objekt-Relationales Mapping für Smalltalk
appscript - Python als Ersatz für AppleScript nutzen - volle AppleEvent und OSA Einbindung
CincomSmalltalkWiki: Seaside Tutorial - Seaside ist ein Continuation-basiertes Webframework
Impostor - Continuation-basierte Webanwendungen mit Python
Revision 8033: /user/arigo/greenlet - Minimalistische Threads (Tasklets wie in Stackless Python) als normales Python C Modul
VisualWorks: StORE for PostgreSQL Documentation - PostgreSQL als Versionierungsspeicher für VisualWorks Smalltalk
ASPN : Python Cookbook : A meta-class that provides class behavior like Ruby - Klassenüberladung (Definition neuer Methoden) mit Python im Ruby-Stil
Gus Mueller's Website - VooDooPad Plugins mit Python und PyOBJC schreiben
recondite: You don't tug on Superman's cape... - Python zur virtuellen Maschine von VisualWorks Smalltalk compilieren
Hartz IV: GAU bei der Arbeitslosengeld-II-Zahlung [Update]
Pfusch. Totaler Pfusch. Man macht bei solchen Monsterprojekten immer einen Problelauf mit Echtdaten im Voraus - um genau solche Katastrophen zu vermeiden. Aber diese Bundestölpel haben ja schon bei anderen Grossprojekten gezeigt das sie von tuten und blasen vielleicht Ahnung haben, aber nicht von EDV.

Das Vorliegende Problem jedenfalls ist ein banales Schnittstellenproblem das zu einem solchen Stadium des Projektes garnicht mehr auftauchen hätte dürfen - ausser die Durchführenden sind komplett inkompetent und verblödet.
Bei heise online news gibts den Originalartikel.
Logilab.org - Aspects documentation - AOP für Python
Alice - funktionale Sprache und Umgebung
Alice ist eine sehr spannende neue Sprache aus der ML-Familie. Sie bietet viele interessante Denkansätze für bekannte Probleme und erweitert ML um sinnvolle Punkte wie zum Beispiel ein funktionales Modell für Multithreading. Sehr spannend für mich die Diskussion von lazy evaluation , futures und promises in der Alice-Tour - das traf genau den Nerv, nachdem ich gerade erst mein eigenes Paket für Python ( lazypy) gebaut habe. Ich habs dann gleich mal um die futures erweitert Von Alice ist auch eine OS X Version geplant - ich bin echt gespannt, denn die Screenshots der Umgebung lassen auf einiges hoffen. Bisherige ML-Implementierungen waren ja eher spröde in der Oberfläche.
Codewalker für Pyton - Ein Codewalker der diverse Änderungen am Code von Lambda-Ausdrücken machen kann (speziell early binding etc.)
dirtSimple.org: More forward-chaining twists
Phillip J. Eby macht sich Gedanken darüber wie man eine Forward-Chaining Factbase (ein Grundmechanismus von AI-Systemen die regel- und faktbasiertes Programmieren ermöglichen) in Python implementieren kann. Sehr faszinierend zu lesen - er kommt ja eigentlich aus der OO Ecke von Python (als einer der PEAK Programmierer - PEAK ist sozusagen das J2EE der Python-Welt) und hat hier die ersten harten Begegnungen mit der funktionalen Programmierung. Praktische Auswirkungen hat das ganze auch: in PyProtocols (einem anderen Projekt von Phillip) gibt es mitlerweile eine schon recht fortgeschrittene Erweiterung des OO-Systems von Python hin zu einer mehr CLOS-ähnlichen Umgebung mit generischen Funktionen und Multi-Parameter-Dispatch für Methoden. Sehr interessant, da sich damit ganz neue Möglichkeiten eröffnen. Hier gibts den Originalartikel.
Xoltar Python Page - diverse Funktionale Erweiterungen zu Python - curry, lazy expressions, partial evaluation etc.
Python ist eine schwach typisierte Sprache, was, wie jeder erfahrene Python-Programmierer weiß, sowohl Vor- als auch Nachteile hat - Traits - optionale Typdeklarationen für Attribute in Python