heise online - Huygens Countdown: The day after - the first color image (ok, still quite monochrome despite the color) and a recording of the wind noise on Titan. Unfortunately, the server with the sound is currently overloaded.
Archive 9.1.2005 - 15.1.2005
Why Martin Schwimmer from the Trademark Blog on Bloglines asked Bloglines to remove his feed from their service - fits with the IzyNews discussion.
Morganically Grown » MiniPosts Plugin for WordPress - a plugin for blogmarks - these small titleless postings. I still make those with a patched template and my own category.
no status quo » RunPHP WordPress Plugin executes PHP code directly in posts. This gives you something like < ?php echo "Macros"; ?> in WordPress.
PHP Markdown - newer version than in Wordpress CVS. But I've sworn off Markdown - the performance was sometimes absurdly high.
Blogs - the new money machine?
A plugin I certainly won't install:
BlogMine enables content targeted ads in both feeds and web pages, simplifies and increases revenue generation for bloggers. The service provides a universal way to monetize all blog related content, regardless of whether it is published to the web or as an RSS feed.
DNS Stuff: DNS tools, WHOIS, tracert, ping, and other network tools.
A whole bag full of tools around nameservers, reachability etc. Very practical when you want to quickly check whether the reverse resolution of the server address also works reliably from outside. Or when you want to test a whole set of RBLs against an IP (I found rbls.org for that recently). Email tests. Routing information. And more ...
ESA - Cassini-Huygens - First image from Titan
ESA - Cassini-Huygens - First image from Titan - there it is, the first image from Titan, captured from 16 kilometers altitude. I want more of it
And Heise has more of it. Great. The landing site - wow.
FBI versenkt 170 Mio Dollar Software Projekt - due to unexpected problems. Funny how problems in IT are still always unexpected...
Court stops advertising campaign by cancer doctor Rath
It's embarrassing that such a charlatan can only be stopped due to formal errors in the first place. You'd think you could shut down such nonsense much earlier.
Google receives patent on search term highlighting
Google Gets Patent on Search Term Highlighting - and this means my website violates exactly this patent. Thanks to the Search Highlight plugin for WordPress (which comes as standard), search terms are highlighted in color when visitors come to my pages from a search engine. Well, sue me then, Google ...
Patents are problematic enough as it is, but such trivial patents are just infuriating.
heise online - Huygens Countdown +8h: But a few drops of bitterness after all
Damn, the weather forecast is cancelled ...
heise online - Neue ZĂĽrcher Zeitung digitizes all volumes since 1780 - somehow cool. Even cooler if the results were made freely accessible, I could imagine it being a fascinating information pool for historians.
Murder Investigation: Fashion Designer Moshammer is Dead | tagesschau.de
Why do I keep constantly reading "fashion investigations" instead?
PECL :: Package :: APC - PHP caching system, Open Source (no weird stunts like phpAccelerator and not as dead as turck mmCache)
The search term zeitgeist is back
I've recreated a search terms zeitgeist for this blog. Previously, this was created by the Community Server, but now I've written a Python script that generates this zeitgeist automatically. I then integrated the whole thing into Wordpress's template system so the layout is correct too.
Of course, I've excluded this page in my robots.txt for the search engines, so that these search terms and links back to the search engines aren't used by them again for PageRank calculation - otherwise users would eventually only load on my zeitgeist page. And that would be Google spamming.
I always find this type of search term analysis quite interesting (by the way, I evaluate a whole bunch of search engines for this), as it makes it much easier to see what the web is interested in than with the normal evaluations that log analysis tools offer.
SURBL -- Spam URI Realtime Blocklists - Real-time blocking list that can check hostnames from URLs.
VW payments: Federal parliamentarian resigns
Why are politicians basically so stupid to believe their lies won't come out? Or why do they try every time with things like side income, some Miles-and-More deals or whatever else is cooking in terms of petty corruption to get out of it with really banal lies?
Caching for PHP Systems
Caching Strategies for PHP-Based Systems
There are basically two ways to implement caching in a PHP-based system. Okay, there are many more, but two main approaches are clearly identifiable. I've compiled what's interesting in this context - especially since some colleagues are currently suffering under high server load. The whole thing is kept general, but for understandable reasons also considers the specific implications for WordPress.
- Caching of pre-compiled PHP pages
- Caching of page output
There are numerous variations for both main approaches. PHP pages themselves exist on web servers as source code - unprocessed and not optimized in any way for the loading process. With complex PHP systems running, parsing and compiling into internal code happens for every PHP file. With systems that have many includes and many class libraries, this can be quite substantial. The first main direction of caching starts at this point: the generated intermediate code is simply stored away. Either in shared memory (memory blocks that are available to many processes of a system collectively) or on the hard disk. There are a number of solutions here - I personally use turck-mmcache. The reason is mainly that it doesn't cache in shared memory but on the disk (which as far as I know the other similar solutions also do) and that there is a Debian package for turck-mmcache. And that I've had relatively few negative experiences with it so far (at least on Debian stable - on Debian testing things are different, where PHP applications crash on you). Since WordPress is based on a larger set of library modules with quite substantial source content, such a cache brings quite a bit to reduce WordPress's baseline load. Since these caches are usually completely transparent - with no visible effects except for the speed improvement - you can also generally enable such a cache.
The second main direction for caching is the intermediate storage of page contents. Here's a special feature: pages are often dynamically generated depending on parameters - and therefore a page doesn't always produce the same output. Just think of mundane things like displaying the username when a user is logged in (and has stored a cookie for it). Page contents can also be different due to HTTP Basic Authentication (the login technique where the popup window for username and password appears). And POST requests (forms that don't send their contents via the URL) also produce output that depends on this data.
Basically, an output cache must consider all these input parameters. A good strategy is often not to cache POST results at all - because error messages etc. would also appear there, which depending on external sources (databases) could produce different outputs even with identical input values. So really only GET requests (URLs with parameters directly in the URL) can be meaningfully cached. However, you must consider both the sent cookies and the sent parameters in the URL. If your own system works with basic authentication, that must also factor into the caching concept.
A second problem is that pages are rarely purely static - even static pages certainly contain elements that you'd prefer to have dynamically. Here you need to make a significant decision: is purely static output enough, or does a mix come in? Furthermore, you still need to decide how page updates should affect things - how does the cache notice that something has changed?
One approach you can pursue is a so-called reverse proxy. You simply put a normal web proxy in front of the web server so that all access to the web server itself is technically routed through this web proxy. The proxy sits directly in front of the web server and is thus mandatory for all users. Since web proxies should already handle the problem of user authentication, parameters, and POST/GET distinction quite well (in the normal application situation for proxies, the problems are the same), this is a very pragmatic solution. Updates are also usually handled quite well by such proxies - and in an emergency, users can persuade the proxy to fetch the contents anew through a forced reload. Unfortunately, this solution only works if you have the server under your own control - and the proxy also consumes additional resources, which means there might not be room for it on the server. It also heavily depends on the application how well it works with proxies - although problems between proxy and application would also occur with normal users and therefore need to be solved anyway.
The second approach is the software itself - ultimately, the software can know exactly when contents are recreated and what needs to be considered for caching. Here there are again two directions of implementation. MovableType, PyDS, Radio Userland, Frontier - these all generate static HTML pages and therefore don't have the problem with server load during page access. The disadvantage is obvious: data changes force the pages to be recreated, which can be annoying on large sites (and led me to switch from PyDS to WordPress).
The second direction is caching from the dynamic application itself: on first access, the output is stored under a cache key. On the next access to the cache key, you simply check whether the output is already available, and if so, it's delivered. The cache key is composed of the GET parameters and the cookies. When database contents change, the corresponding entries in the cache are deleted and thus the pages are recreated on the next access.
WordPress itself has Staticize, a very practical plugin for this purpose. In the current beta, it's already included in the standard scope. This plugin creates a cache entry for pages as described above. And takes parameters and cookies into account - basic authentication isn't used in WordPress anyway. The trick, though, is that Staticize saves the pages as PHP. The cache pages are thus themselves dynamic again. This dynamism can now be used to mark parts of the page with special comments - which allows dynamic function calls to be used again for these parts of the page. The advantage is obvious: while the big efforts for page creation like loading the various library modules and reading from the database are completely done, individual areas of the site can remain dynamic. Of course, the functions for this must be structured so they don't need WordPress's entire library infrastructure - but for example, dynamic counters or displays of currently active users or similar features can thus remain dynamic in the cached pages. Matt Mullenweg uses it, for example, to display a random image from his library even on cached pages. Staticize simply deletes the entire cache when a post is created or changed - very primitive and with many files in the cache it can take a while, but it's very effective and pragmatic.
Which caches should you sensibly deploy and how? With more complex systems, I would always check whether I can deploy a PHP code cache - so turck mCache or Zend Optimizer or phpAccelerator or whatever else there is.
I would personally only activate the application cache itself when it's really necessary due to load - with WordPress you can keep a plugin on hand and only activate it when needed. After all, caches with static page generation have their problems - layout changes only become active after cache deletion, etc.
If you can deploy a reverse proxy and the resources on the machine are sufficient for it, it's certainly always recommended. If only because you then experience the problems yourself that might exist in your own application regarding proxies - and which would also cause trouble to every user behind a web proxy. Especially if you use Zope, for example, there are very good opportunities in Zope to improve the communication with the reverse proxy - a cache manager is available in Zope for this. Other systems also offer good fundamentals for this - but ultimately, any system that produces clean ETag and Last-Modified headers and correctly handles conditional GET (conditional accesses that send which version you already have locally and then only want to see updated contents) should be suitable.
Vesper Against Expansion of FMO
Translation
Anyone who has ever taken off or landed at FMO knows that State Building Minister Vesper is right in assessing that extending the runway is nonsense - because I don't know of any other airport as dead as the one in MĂĽnster and OsnabrĂĽck. It's simply a wasteland. And a longer runway won't help with that - nor will the fancy terminal expansion. Now the terminal where nothing happens is simply bigger than before. And with the longer runway, larger aircraft could land and take off.
Apple - iLife
The new iLife05 sounds good too - especially of course the new iPhoto with RAW file support. What's ultimately quite annoying for me: I then have to ask myself even more why I actually bought iView Media Pro in the first place - especially since iPhoto 5 now has the calendar view and keyword search has been available for a long time anyway.
Evil secret paternity tests
I'm taking Pepilog's reaction as a starting point here. Simply because he's someone I read in my aggregator. But what I'm addressing applies to all men.
What absolutely fascinates me about this discussion is the rather twisted argumentation on the topic. The argument of the cuckoo child and the cheating mother keeps coming up—and how a man could defend himself against it, if not through secret paternity tests.
Now let's think about it from the other direction for a moment. What if secret paternity tests were legal? What would the consequences be: fathers could provide material from the—potentially shared—child for genetic analysis without the consent or knowledge of the mother. Mind you, the child probably wouldn't be asked either, which wouldn't be possible anyway at an infant age. But this would apply to all fathers—even those where the father only believes he's not the father because he's pathologically jealous or wants to shirk responsibility or has somehow gotten it into his head that the child isn't his. I'm exaggerating deliberately now—after all, the other side keeps acting like the cheating mother is the most normal situation in the world. But paternity support evasion by fathers is demonstrably a common situation...
The argument goes that one couldn't give the right to authorize the analysis to the woman alone, because then the man would be disadvantaged—he couldn't protect himself against cuckoo children. On the other hand, the secret test completely excludes the woman—how does that fit into this supposedly fair discussion? With a secret test, both the woman and the child are excluded to the point that they don't even know about it—unless the father unilaterally decides what he's doing.
The secret paternity test disrespects the woman's right to a say (it's not about the woman's sole right to decide—it's about having a say!) by completely negating that participation. It also disrespects the child's right—though one could debate whether at the point in time when this situation typically occurs (child in infancy) the child's right to self-determination should be weighted higher than the parents' right to a say.
Additionally, what really bothers me is the matter-of-factness with which the cheating mother is assumed—here something is being demanded that probably doesn't apply in 90 percent of cases—most couples probably still know quite well that their children are theirs together.
Actually, the whole thing is the archetypal self-reassurance obsession of men who, in every restriction of their absolute freedom, immediately suspect they're being discriminated against—something like an emancipation envy spreading since women have been fighting for their rights.
Sorry, but I have to tell us men something: a restriction of freedoms to protect the rights of others is not necessarily discrimination against yourself!
And it's precisely to protect the rights of the woman—namely her right to a say in matters concerning the child—that secret paternity tests definitively violate. Because no matter whether the father is the father or not: the woman is demonstrably the mother. Her rights are in no way in doubt. But they are violated by the secret test and denied to her—on the grounds that the man has no other way to defend himself. Poor male society, if such fears move us...
Appropriately, the Federal Court of Justice says it also doesn't think much of secret paternity tests. At least in court, they are not admissible as evidence.
Secret VW guideline for payments to politicians?
It's certainly reassuring to see how parties take care of their politicians. No, that's definitely not corruption, you can't even imagine such a thing, that politicians are corrupt and that corporations expect benefits from blowing money up politicians' asses.
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.
heise Security - News - Uncovered and Charged
How companies try to compensate for their incompetence through power. I hope the French court decides against these absurd demands. Full disclosure is often the only way for customers to defend themselves against stubbornness and unwillingness on the part of manufacturers - you can see this nicely in history, how companies (even industry giants like SUN) refused for years to acknowledge bugs and only were ultimately forced to take action through mailing lists like Bugtraq.
Companies must finally understand that security doesn't work in a quiet back room, but is only real security when it can withstand public scrutiny and analysis. Security by obscurity is no security at all ...
Comment Spam
Since comment spam has been increasingly occurring on WordPress blogs lately and I don't want to have to react only after it lands in the spam folder, I've proactively installed Spam-Karma. It's a pretty powerful tool where, fortunately, you can disable a lot of options. I hope this will prevent what will certainly be an onslaught on my comment function at some point.
Of course, such a tool always has potential negative side effects. So if you can't get a comment through, there's still the regular feedback form which sends a completely normal - and unfiltered - email to me. As long as it makes it through my mail spam filter, I'll know what's going on (with 300-400 spams a day just at home, I can't guarantee that I'll notice an email that was mistakenly flagged as spam - though apparently not much gets lost that way, statistical spam filters do their job).
It's kind of strange how we have to artificially neuter our communication tools just because people tend to exploit anything that can be exploited eventually...
Update: after it ate a trackback from Schockwellenreiter, I've disabled it for now. The main problem was that the trackback was eaten with an error message that supposedly was fixed in exactly the version I'm using.
Round and Healthy: Jan Ullrich in Mallorca
Business as usual at Team Telekom T-Mobile. Wild rumors, silly ideas (Zabael not going to the Tour? What nonsense) and a too-fat Jan Ullrich. And the competition is laughing up their sleeves again ... Well, if Armstrong really doesn't ride the Tour, at least one of the other riders (Klöden or Basso?) has a chance.
Second p0st: cElementTree now has a C variant to speed up execution. This makes it a real alternative to other DOM implementations.
symbolics.com is the oldest still registered domain. Very cool. By the way, I have a Symbolics sitting in my room.
And Mobile Phone Cramp Again
My mobile phone contract was about to end again and T-Mobile was eager to get me to extend it. So they threw phones at me. A Motorola E398 is what I ended up with - hey, my most modern phone was a Nokia 6110 and Jutta grabbed that one so I was left with just the S3 Com if I didn't want to use my work phone ...
Well, the E398 is nice - it has everything you can imagine. And a bit more. If you want to know the technical specs, Motorola will happily tell you. I'm really only interested in one thing about all this fuss: Apple can exchange data with the phone and use it as a modem, but iSync only synchronizes with it via cable. Why must everything in the mobile phone environment always be completely illogical, complicated and confusing?
Oh yes, and the fact that the Motorola manual contains a lot of text but explains nothing in many parts, I don't need to mention separately. The documentation of all the options you can set is crammed in there: these options are listed again in the manual. And named. And that's it. No explanation whatsoever of what exactly you're supposed to enter there and where you'd get the information. And of course everyone immediately knows what to make of APN, IMPS, etc. Just like you naturally know straight away which IM technology the IM client uses when it doesn't say anywhere. Only with Google's help was I able to figure some things out.
Mobile phones are stupid.
Wired News: Verizon's E-Mail Embargo Enrages
Verizon proves its incompetence once again. Verizon's spokesperson Edwards suggests alternative communication channels to customers waiting for mail from Europe: "If it's really important you might want to make a phone call," he said. Sorry, but if it's really important, you'd probably be better off switching providers right away... (via Schockwellenreiter)
Other Apple News
The Apple - iPod shuffle is cute - it could actually be called iPod Schnuffel too, it's so adorable. I just worry that Jutta would confuse it with a lighter and lose it just like she does with those ...
And iWork also makes a nice impression. Ok, just word processing and presentation - still a start for an Apple-proprietary office application that's a bit more modern than the old AppleWorks. And honestly: the fact alone that it's cheaper than the previous Keynote license I find quite remarkable.
Well, and why isn't it Christmas yet, so you have an excuse to buy all this stuff?
Apple - Mac mini
Come on, now tell us which blockhead at Apple accidentally stepped on a Cube
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).
Creative Communists

Thanks to Bill Gates, we now finally know what we are. Creative Communists. I'm happy to admit to that and have immediately placed this blog under a Creative Commons license.
Friendly Feudalism - The Tibet Myth
Friendly Fuedalism - The Tibet Myth is an article that critically examines the myths about Tibet that are repeatedly told by various pro-Tibet groups. It goes well with the book by Colin Goldner.
A list of domain registries for various top-level domains is something I've been looking for for a while, and now I've found one. It also appears to be complete. So if you're looking for exotic spoiler domains, you might find what you're looking for there.
Mile-high Account [zeitwissen:log]
Frequent flyer miles are the most widespread currency on Earth - but also the most impractical. Except perhaps at airports, you can't buy rolls with them, can't pay for a cinema visit, and their production generates even more pollutants than metal coins.
:: t e k t o n i c a ::
mo:Blog is something I should take another look at after switching to WordPress, it could be even more interesting now. Especially since it should integrate better. Maybe I'll finally start moblogging before that trend becomes outdated ...
Update: So my initial experiments have been quite positive. What still bothers me is the fact that an HTTP timeout occurs at the end of an image upload. But if you browse through the menus a bit, you can actually find all the necessary settings. Somewhat spartan interface, but it is a Palm after all.
What I don't like at all though: the timeout doesn't go away even with corresponding configuration changes. And occasionally the program crashes my Clie. I didn't experience that a single time in all that time, I only had two system hangs with mo:Blog. And that in turn is a reason not to like the software ...
Canned !! -- my Atropine » iG:Syntax Hiliter - and here's another WordPress plugin that uses Geshi right away.
. clare fader & the vaudevillains . cabaret for the 21st century .
Clare Fader really brings great music. I just bought Elephants Baby with Cabin Fever and Isle of Summer on it. Wonderful.
GeSHi - Generic Syntax Highlighter :: Home - a syntax highlighter in PHP. I could use this if I post source code here...
hobix&you!! feel yeah!!
hobix&you!! feel yeah!! is a weblog software written in Ruby. It comes from the author of Why's (Poignant) Guide to Ruby and the project's homepage is accordingly off the wall. You have to give him that: either he's completely out of his mind or he's a genius. Anything in between definitely doesn't fit (found at but she's a girl)
kasia in a nutshell: Spam breeds more spam
Kasia is conducting a fascinating experiment: she simply leaves two comment spam entries standing and waits for Google to index them. Less than 24 hours later, this entry was bombarded with spam - several hundred pieces.
One can therefore conclude that the spambots work at least partially in two stages and that it really is about Google ranking. The first entry is, so to speak, a test entry. If it remains standing so that it can be found again via Google, it is an entry where one can spam well - it is unattended and is indexed quickly by Google. Ideal fodder for spammers.
Google is thus an integral tool and target simultaneously for the spammers. One can certainly reduce the wind from the spammers' sails through technical separation of one's own comments (as my old blog had, where the comments were not only on a separate page behind a popup link, but additionally also on a completely different web server) and through indexing prohibition for these comment addresses. You would still be caught by the test samples, but the gigantic momentum afterward should be absent.
This could possibly also explain the Schockwellenreiter's problems: due to its exposed position, Google should visit it very frequently and if a spam comment once remains standing longer and could be indexed (it could also only happen by the spammer's luck if they spam just before Google's visit) the spammer has entered the server into spam lists. In principle, he only needs to have found the Schockwellenreiter once via Google regarding his test spams.
Now I just need to come up with a good idea how to implement the whole thing for WordPress. Popup comments already exist, but I would also have to place it on a different virtual address and exclude search engines there via robots.txt.
