eAccelerator is another PHP accelerator. It is based on the Turck mmCache source, but is actively being developed.
programmierung - 26.12.2004 - 1.2.2005
The Free Legal Advice for Open-Source Developers is certainly probably only really useful for US American developers - but perhaps something comparable will come to Europe as well.
Away with Trackback
Isotopp is pondering trackback spam on the occasion of spam day and presents several approaches. One of them uses a counter-check of the trackback URL against the IP of the submitting computer - if the computer has a different IP than the server advertised in the trackback, it would probably be spam. I've written down my own comments on this - and explained why I'd rather be rid of trackback today than tomorrow. Completely. And yes, that's a complete 180-degree turn on my part regarding trackback.
The IP test approach once again comes from the perspective of pure server-based blogs. But there's unfortunately a large heap of trackback-capable software installations that don't need to run (and often don't run) on the server where the blog pages are located - all tools that produce static output, for example. Large installations are Radio Userland blogs. Smaller PyDS blogs. Or also Blosxom variants in offline mode (provided there are now trackback-capable versions - but since they're typical hacker tools, they definitely exist).
Then there are the various tools that aren't trackback-capable, where users then use an external trackback agent to submit trackbacks.
And last but not least, there are also the various Blogger/MetaWeblogAPI clients that submit the trackback themselves because, for example, only MoveableType in the MetaWeblogAPI allows triggering trackbacks, but other APIs don't.
Because of this, the IP approach is either only to be seen as a filter that lets through some of the trackbacks, or it's a prevention of trackbacks from the users mentioned above. And the latter would be extremely unpleasant.
Actually, the problem is quite simple: Trackback is a sick protocol that was stitched together with a hot needle, without the developer giving even a moment's thought to the whole thing. And therefore belongs, in my opinion, on the garbage heap of API history. The fact that I support it here is simply because WordPress implemented it by default. Once the manual moderation effort becomes too high, trackback will be completely removed here.
Sorry, but on the trackback point the MoveableType makers really showed a closeness to Microsoft behavior: pushed through a completely inadequate pseudo-standard via market dominance - without giving even a thought to the security implications. Why do you think RFCs always have a corresponding section on security problems as mandatory? Unfortunately, all the blog developers faithfully followed along (yes, me too - at Python Desktop Server) and now we're stuck with this silly protocol. And its - completely predictable - problems.
Better to develop and push a better alternative now - for example PingBack. With PingBack, it's defined that the page that wants to execute a PingBack to another page must really contain this link there exactly as it is - in the API, two URLs are always transmitted, its own and the foreign URL. The own URL must point to the foreign URL in the source, only then will the foreign server accept the PingBack.
For spammers this is pretty absurd to handle - they would have to rebuild the page before every spam or ensure through appropriate server mechanisms that the spammed weblogs then present a page during testing that contains this link. Of course that's quite doable - but the effort is significantly higher and due to the necessary server technology, this is no longer feasible with foreign open proxies and/or dial-up access.
Because of this, the right approach would simply be to switch the link protocol. Away with Trackback. You can't plug the trackback hole. PS: anyone who looks at my trackback in Isotopp's post will immediately see the second problem with trackback: apart from the huge security problem, the character set support of trackbacks is simply a complete disaster. The original author of the pseudo-standard didn't think for a minute about possible problems here either. And then some people still wonder why TypeKey from the MoveableType people isn't so well accepted - sorry, but people who make such lousy standards won't be getting my login management either ...
Orange Data Mining
Another link for the number crunchers: Orange is a data mining library with Python integration and—at least judging by the screenshots—an interesting GUI.
darcs - Distributed Versioning
darcs is one of many version control systems vying to succeed CVS. Specifically, darcs belongs to the class of distributed version control systems and is thus naturally superior to Subversion with its centralist approach (at least if you want to manage a distributed project and can't just get by with the central repository). Normally I wouldn't say much about something like this — after all, there are currently more version control projects than there were editors in the 80s. But seriously now: who can ignore a version control system that is written in a functional programming language with lazy evaluation (yes, exactly, this thing is in Haskell — so much for the claim that Haskell is unsuitable for practical projects) and describes itself as being based on a "theory of patches" with roots in quantum mechanics? And the programmers even use literate programming — yes, that somewhat forgotten method by Knuth of combining documentation and code in a single source file and developing a program from a documentation-centric perspective. Simply cool.
Using the .Mac SDK - Objective C (and probably also Python via PyObjC) interface to .Mac.
freshmeat.net: Project details for JRuby - cool, JRuby has now reached Ruby 1.8. A nice alternative in the Java environment to simply program with Ruby. The Jython folks should get a move on and finally make Jython fully Python 2.3 compatible - there's still a lot that needs work there.
Introducing JSON - another object ASCII notation, this one based on JavaScript syntax. Quite interesting - not as fussy about whitespace as YAML and not as verbose in syntax as XML.
.: json-rpc.org :. - an RPC library based on JSON.
Asymptomatic » New "Secret" Project - something like a peer-to-peer network built on standard technologies like HTTP and DNS. DynDNS for mutual discovery, HTTP for file transfer, and RSS and HTML for file lists. Actually a nice idea.
RSS 1.1 and Postal's Law
The RSS 1.1: RDF Site Summary (DRAFT) contains a passage that I only noticed today ( through this posting). This fits well with the topic of developer arrogance. Because here again a developer has easily strayed from the path of reason. Of course, it's important that a standard is cleanly defined and that producers of formats adhere to these standards. It's also okay to require that a consumer of this format checks it and provides messages when deviations occur (though few users can make sense of their aggregator's messages anyway). But it's completely unrealistic to believe that aggregator users are satisfied when their aggregator just spits out an error message and no content. That's just as stupid as the same approach with XHTML - where some browsers actually implement it and don't go into Quirks Mode for broken XHTML, but simply deliver the XML parser error. Sorry, but that's complete nonsense. Every communication protocol has two ends - the producer and the consumer. And Postal's Law - be conservative in what you produce and liberal in what you accept - is simply the most sensible way to approach such communication protocols that transport content intended for humans. Requiring that consumer applications not display existing content due to format errors is simply unrealistic.
Thinking Forth
Thinking Forth is now available online. My first Forth book - it really fascinated me with the language back then. Especially because it was much more suitable for the computers that were accessible to me at the time than most other programming languages.
Audioscrobbler :: Development - Last.fm Streaming API - an API to access your last.fm station.
Build me money making website please
Rent A Coder - Build me money making website please - let me quote:
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, but if I could build a website that brings in $1000 per week - then I'd just sell it to some idiot like that. Makes sense. Sure. And pigs can fly.
(Found at Paul Tomblin)
A first Python example in Frontier is now online. Looks very interesting - I wish someone would build binaries now, because I still don't have XCode due to 10.2. And I'd really like to play around with it...
Subway is a Python implementation of the ideas behind Ruby on Rails. So if you're afraid of hurting yourself on all the sharp and curly brackets in Ruby ...
Microsoft lays off Windows testers and switches to automated tests instead. Tool worship has struck again. A rarely stupid idea, because automated tests only find what is automated. They lack the intuition that people (at least if they are good testers) have. But Microsoft software has never given me the impression of particularly good testing anyway...
D Programming Language
The reference manual for the D Programming Language (a successor to C and C++ with various high-level ideas) contains a very fascinating clause on the first page of the language description:
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.
I have the impression that such a clause — which automatically becomes binding for a user merely by reading the documentation and demands something that the user may not even be able to deliver — is a bit absurd. I would be interested in the opinion of the blawgers on this.
MonkeyTyping - The PEAK Developers' Center
MonkeyTyping is Phillip J. Eby's approach to optional static typing in Python. The idea looks very interesting. What always fascinates me about Phillip is his ability to look beyond the horizons of the language - just think of his work on generic functions in Python. Python urgently needs more of these kinds of breakthroughs - some discussions around Python show the first signs of language inbreeding (for example, these almost hateful reactions to mentions of Lisp and Lisp features by some Python advocates).
FBI versenkt 170 Mio Dollar Software Projekt - due to unexpected problems. Funny how problems in IT are still always unexpected...
PECL :: Package :: APC - PHP caching system, Open Source (no weird stunts like phpAccelerator and not as dead as turck mmCache)
Glossary for WordPress
I've written a small Wordpress Plugin that implements a glossary similar to Radio Userland or PyDS. The glossary simply replaces text that is delimited by | (pipe) symbols with replacement text (which can also contain XHTML markup). Saves typing ...
The plugin installs a small management page in the Wordpress backend, so the whole thing only works with Wordpress 1.5 (or possibly 1.3). The required database table is automatically created upon plugin activation when you first access the management page.
Second p0st: cElementTree now has a C variant to speed up execution. This makes it a real alternative to other DOM implementations.
dirtSimple.org: CLOS-style Method Combination for Generic Functions
Phillip J. Eby once again proves that every programming language that wants to amount to something is destined to eventually become Common Lisp
I like what he's doing - Python's object system is rather primitive, and generic functions and method combinations in CLOS style are very practical tools for programming. His extended object adaptation in PyProtocols was already interesting, but the quite complete object model based on CLOS is definitely appealing.
I would really wish that Guido van Rossum would give more thought to how he integrates PJE's work into Python than to how he introduces optional static data types.
IBM on Software Patents
IBM's Action is very interesting: not only are patents made freely available to free software, but there is also a clear declaration of war against litigious parties. Anyone who pursues lawsuits against Open Source runs the risk of losing the rights to use IBM patents. Of course, it's now interesting to see exactly which patents IBM is making available, but I could well imagine that IBM has some real blockbusters in there. After all, IBM is one of the companies with the largest patent portfolio (if not the company with the largest one).
GeSHi - Generic Syntax Highlighter :: Home - a syntax highlighter in PHP. I could use this if I post source code here...
Optional Static Typing -- Stop the Flames!
Well, it does work out. In his third article on optional static type declarations for Python, Guido van Rossum addresses all the comments and presents what I think is a compact and sensible proposal. Interfaces are a useful mechanism for stricter duck-typing - of course optional, so only where you need it. And automatic type adaptation is a good idea - it's about time that PEP 246 gets integrated into Python.
But the most important thing remains: it's optional. Whoever doesn't need it can leave it out.
The Implementation of Functional Programming Languages
Great. A classic of computer science literature (ok, a modern classic) is now readable online. The book is interesting because it explains many aspects of implementing a system environment suitable for Haskell or Miranda.
Unfortunately, it's only available online as scans in JPG format, so it's somewhat cumbersome to use - searching obviously doesn't work. But at least the table of contents is linked via an image map.
Modal Web Server Example Part 1
Those interested in learning more about continuation-based web servers and not afraid of a bit of parenthesization can find the linked article (there are 4 parts) addressing the topic from a Scheme perspective. This makes much more sense thanks to first-class continuations in Scheme than my wild hack in Python.
Aquarium - Web framework with MVC approach in Python - comparable to Rails?
Borges Home - Continuation-based web framework for Ruby
BottomFeeder - Cross-platform RSS/Atom News Aggregator - Aggregator in Smalltalk
Continuations with Python
Another article from the series: we make the impossible possible. This time I'm tackling Continuations and implementing a rather primitive variant in Python - and describing how to get a much nicer way of programming web servers with it. Just click on the title link. This time, however, in English. Here's the original article.
Glorp.org - Object-Relational Mapping for Smalltalk
appscript - Use Python as a replacement for AppleScript - full AppleEvent and OSA integration
CincomSmalltalkWiki: Seaside Tutorial - Seaside is a continuation-based web framework
Impostor - Continuation-based web applications with Python
Revision 8033: /user/arigo/greenlet - Minimalistic threads (tasklets as in Stackless Python) as a normal Python C module
VisualWorks: StORE for PostgreSQL Documentation - PostgreSQL as a versioning repository for VisualWorks Smalltalk
ASPN : Python Cookbook : A meta-class that provides class behavior like Ruby - Class overloading (definition of new methods) with Python in Ruby style
Gus Mueller's Website - Writing VooDooPad Plugins with Python and PyOBJC
recondite: You don't tug on Superman's cape... - Python zur virtuellen Maschine von VisualWorks Smalltalk compilieren
Hartz IV: Disaster in Unemployment Benefit II Payment [Update]
Botch. Total botch. With such monster projects, you always do a test run with real data in advance - to avoid exactly these kinds of catastrophes. But these federal bunglers have already shown with other major projects that they might know a thing or two, but they have no clue about IT.

The problem at hand is a banal interface issue that shouldn't have come up at this stage of the project - unless the people implementing it are completely incompetent and stupid.
The original article can be found at heise online news as the original article.
Logilab.org - Aspects documentation - AOP for Python
Alice - functional language and environment
Alice is a very exciting new language from the ML family. It offers many interesting approaches to well-known problems and extends ML with meaningful features such as a functional model for multithreading. What particularly fascinates me is the discussion of lazy evaluation, futures and promises in the Alice tour - that hit exactly the nerve, as I had just finished building my own package for Python (lazypy). I immediately extended it with futures. An OS X version of Alice is also planned - I'm really curious, as the screenshots of the environment suggest quite a lot of promise. Previous ML implementations have tended to be rather austere in their user interface.
Codewalker for Python - A code walker that can make various modifications to code from lambda expressions (specifically early binding etc.)
dirtSimple.org: More forward-chaining twists
Phillip J. Eby is thinking about how to implement a forward-chaining factbase (a fundamental mechanism of AI systems that enable rule- and fact-based programming) in Python. Very fascinating to read - he actually comes from the OO corner of Python (as one of the PEAK programmers - PEAK is basically the J2EE of the Python world) and here has his first hard encounters with functional programming. The whole thing also has practical implications: in PyProtocols (another project by Phillip), there is now already quite an advanced extension of Python's OO system towards a more CLOS-like environment with generic functions and multi-parameter dispatch for methods. Very interesting, as it opens up completely new possibilities. Here's the original article.
Xoltar Python Page - diverse functional extensions to Python - curry, lazy expressions, partial evaluation etc.
Python is a weakly typed language, which as any experienced Python programmer knows has both good and bad points - Traits - optionale Typdeklarationen für Attribute in Python