Yahoo! UI Library - the JS/Ajax lib used by Yahoo for its own applications. BSD license!
Archive 2.2.2006 - 14.2.2006
You just have to love Ask MetaFilter
Honestly - someone has a hole in their head and tries to see how deep it is with a paperclip. And what's the comment?
Not to derail, but, does anyone else think it's a really really bad idea to put random objects down holes in your head?
What if it was a reset button?!
screen4DSLR : Changing Focusing screen for Canon DSLR - another provider for replacement focusing screens for digital SLRs (not just Canon!). This one has lower prices (probably because it uses standard focusing screens and just cuts them to size).
Spirit reaches Homeplate
Spirit hat Homeplate erreicht - a rather strange rock formation on Mars. The area really does look quite strange.
Kids ...
My image blog hugoesk.de (meanwhile deactivated again) seems to be enjoying great popularity lately - various images have appeared as background graphics on myspace.com and xanga.com sites. It's kind of strange to owe several GB of transfer volume (about ten times the traffic my main blog has) to some kids... (and I haven't even written anything about Tokio Hotel).
Well, so educational measures have been activated again (and no, the image used is neither obscene nor offensive - just a polite request):
# Deeplinking von http://www.xanga.com/
RewriteCond %{REQUEST_FILENAME} ^.*\.jpg$
RewriteCond %{HTTP_REFERER} ^http://www\.xanga\.com/.*$
RewriteRule .* /wp-images/bilderklau.jpeg [L]
# Deeplinking von http://www.myspace.com/
RewriteCond %{REQUEST_FILENAME} ^.*\.jpg$
RewriteCond %{HTTP_REFERER} ^http://.*\.myspace\.com/.*$
RewriteRule .* /wp-images/bilderklau.jpeg [L]
Of course, my images are all under a CC license, so they can take them if they want. But that doesn't mean my traffic and my computer resources are also under a CC license - and especially with full-size JPGs, that's quite a bit of volume and computer resources. One should at least follow the forms (e.g. ask first if you can't handle the traffic yourself).
A single image in January with 3500 and this month already with 1500 hits has easily consumed several GB of volume - and these are only two sites that link to it. They seem to have a really big (and online-active) circle of friends, those two girls.
And backlinks (which would have been the minimum according to the CC license I use) they naturally haven't set either...
Strategic Labor Market Policy
Müntefering wants to cut ALG II for young unemployed people - because if you don't want to do anything about youth unemployment and the lack of training places, then you at least want to reach into the pockets of those who have nothing. It's logical, right? No? Well, it's the SPD's idea of labor market policy ...
But no one knew anything about us
CIA asked Germans for Al-Masri information - the whole edifice of lies is slowly collapsing:
The news magazine "Der Spiegel" reports that there were contacts between US and German security authorities about the case during the abduction of the German Khaled Al Masri by the CIA. According to this, during Al Masri's captivity in Afghanistan in May 2004, two US agents contacted Bavarian and Baden-Württemberg investigators who were monitoring the Islamist scene in Al Masri's hometown of Neu-Ulm.
Online aerial images of Germany
Ok, I officially admit, I am impressed! Honestly, the idea of simply linking an address to a point on the map is great. Even if our area is only available with rather sparse resolution again. Great web application, big praise to the developers.
I'm not a hater, I just flush a lot.
It's always fascinating to see what questions are asked on the internet - and get answers!

Clear, I pack data to Google ...
Privacy advocates are not enthusiastic about Google Desktop Search 3:
On February 9, 2006, a beta version of Google Desktop Search was released, which allows you to find documents stored on different computers. This is achieved by storing the relevant files on the Google server, so you need to have and use a Google account to use this feature.
Great idea. Of course, I'll put data from my workplace on a Google server. Where it's readily available for anyone who gains access to the boxes. Very big idea. Google may have the motto "don't be evil" - but they should also think about the motto "don't be stupid" ...
Language Design Is Not Just Solving Puzzles
Language Design Is Not Just Solving Puzzles is a rather interesting article by Guido van Rossum about the impossibility of an elegant syntax for multi-line lambdas in Python. Worth reading, and in large parts I agree with him. However, I then stumble over such a last paragraph:
And there's the rub: there's no way to make a Rube Goldberg language feature appear simple. Features of a programming language, whether syntactic or semantic, are all part of the language's user interface. And a user interface can handle only so much complexity or it becomes unusable. This is also the reason why Python will never have continuations, and even why I'm uninterested in optimizing tail recursion. But that's for another installment.
I am quite willing to accept that continuations are complex - but not because of the interface. For the interface for continuations, you only need the callcc call to bind the continuation and a simple function syntax to trigger the continuation. The main problem with continuations lies in the cooperation with generators and exceptions - what happens when a continuation is triggered within a generator? What happens when an exception is triggered within a continuation? These are the difficult aspects - which, by the way, also make Scheme implementers sweat, which is why exceptions are not particularly popular there (the same problem, just viewed from the other direction).
So okay, no continuations in Python - even though we already have poor-man's continuations with pickable generators (or with greenlets, or with cloneable coroutines, or one of the many other approaches to obtain subsets of continuation features).
But what on earth is complex about tail-call optimization (because it's not just about tail recursion)? It is so primitive that it can be implemented transparently for the programmer - if a tail call is present, do not note a return address on the stack, but reload the parameters in the stack frame and note a simple jump. If you want to be nice, you can introduce a pseudo-function "tailcall" that throws an exception if it is not to be executed in a tail call position. There may be further conditions under which tail calls cannot be optimized - but these can also be incorporated into a corresponding check.
It is precisely the function overhead that makes some algorithms only awkwardly implementable in scripting languages. And tail-call optimization would definitely help here. Especially in situations where you have a chain of small function calls. As far as I'm concerned, it can also be an optimization that is only activated at -O (or -O2 or something else).
Powerful Remote X Displays with FreeNX - interesting for remote servers, as it has significantly better responses and lower bandwidth requirements than X or VNC.
RENAISSANCE Le site officiel du film de Christian Volckman - en salles en mars 2006. - looks interesting. Ok, I don't understand a word, but the pictures ...
Sin City
Sin City I somehow didn't manage to watch in the cinema - every time we wanted to there were either no tickets, or no one could, or then the movie was no longer in the cinema. Quite stupid - but now I bought it on DVD. Wow. Impressive - absolutely impressive. Of course, the plot is like in the comics - relatively little demand, relatively much violence. But the implementation is gigantic.
By the way, I now also know why the Apple cinema displays are called that.
VMware Server now free
VMware Server is now free like free beer - and it should remain so after the beta. Great deal, because VMware is after all still the undisputed king among virtualizers - even under Linux. The open-source projects still have a lot to offer to get close to what VMware Server offers.
But if you want to try it out on your own host (which is quite easy due to the simple installation): make sure that the host does not have any other user accounts. Because VMware Server mercilessly uses all accounts that are set up on the system itself. Every user with whom you can log in - and that can indeed be a trivial mail user - can then create virtual machines and control public virtual machines (which are basically all created as root) and delete them.
The whole permission management is generally a bit of a hairy topic with VMware Server - it is decided based on the system permissions for the configuration file of the virtual machine. This is convenient - you just need the known tools - but also quite unintuitive during a first installation. And for example, I couldn't get the permission management for creating machines activated (for this, a special check file is created, whose permissions then say whether a user is allowed to create a new machine or not).
But once it's running smoothly (I had more trouble with X11 on the Mac - ssh -Y instead of ssh -X is the answer), it's a fine thing. Debian guests use minimal memory through the VMware tools, at least when they are not actively in use - and the management with the graphical console or the web interface is also quite nice. I think with a new machine this could really appeal to me - especially since you can then set up such a machine from the beginning with minimal users and push all services into the virtual machines.
However, I have already noticed that my simon is somewhat underpowered when it comes to virtualization. But a Hetzner DS 5000 or 7000 with extra storage could fit quite well there.
Django Templates are not limited
shannon -jj behrens thinks that Django template language is limited - because it doesn't have functions with parameters to do html snippet reuse. Of course the official - and simplified - answer to this is, that Djangos template language is that simple by design, so that it can easily be learned by non-programmers (as often designers aren't necessarily programmers). This is a quite good reasoning, but I think it's a bit too simplified.
So here is the longer - more complete - answer to this accusition: the Django template language isn't limited at all. Yes, I know that the "include" and "block" tags aren't parameterizable and so aren't often that useful for more complex situations (at least if you don't want to end in namespace hell due to passing some template-globals in the context).
So what should you do if you notice that your templates would need more complex code? One way would be to precompute the data in the view function and pass it on via the context to the template - that way the template has the ready data and can directly present it.
But what to do if you can't precompute, because you are using generic views? You could wrap your generic view with your own code and call the original generic view in that function with the modified context. That way you have the same benefit as above - youre templates have the data readily available. If you have many view functions that all need the same context enrichment, you can write your wrapper as a decorator - and just decorate the generic views and use those decorated functions in your urlpatterns.
But what if even wrapping isn't the answer? Shouldn't there be some way to do more complex code without all that wrapping? Sure there is! The answer are custom template tags. This might sound like a bit of overkill, but believe me, writing some template tags isn't really that hard. There is documentation on using and extending the template system in python
An even easier way to write your own tags is to use the "simple_tag" or "inclusion_tag" helpers in django.template.Library. Those functions allow to build simple tags very easily - the inclusion tag will base it's output on some template snippet, so you can see it as a template function with paramerters. A lot of usage of custom templates is in the contrib/admin stuff.
The main problem with the newer stuff in the code is, there is documentation missing for it. Hopefully that will be solved over time. But please, if the next time someone tries to tell you that the Django Template Language is to primitive, don't believe him. The Django Template Language is easy to grasp for non-programmers - but it's very extensible for Python programmers. And you extend it in the language you like - in Python.
.eu Domain Debacle - about the dirty tricks used to infiltrate the Sunrise Period.
HolisTech Limited Free Software, pwsafe - Password-Safe for the Nokia Tablet.
People Sacrificed to the Markets
This is what Yahoo - which, according to Reporters Without Borders, has handed over data of dissidents to the Chinese police does:
The human rights organization Reporters Without Borders calls on the Internet service provider and portal operator Yahoo to publish a list of all "cyberdissidents" whose data the company has handed over to Chinese authorities, particularly. The organization claims to have uncovered that the dissident Li Zhi was sentenced to an eight-year prison term with the help of Yahoo in December 2003.
So people are sacrificed and betrayed just to reach the Chinese market, which is interesting for companies. What a great achievement. The arrogance of companies is sometimes really disgusting.

What can come out of such an "unholy alliance" should also be considered for Europe - because here too, the demands of law enforcement are becoming louder and louder, it is only a matter of time before authorities in Europe also ask for search queries and similar protocols from search engines. And such a demand could even be covered by the absurd laws. And whether search engine operators will really stand up against this is rather questionable in view of the recent activities of Google, Yahoo and MSN.
Password Safe - by Bruce Schneier. The Java version 0.5 is compatible with the Maemo version.
pwsafe password database - Command line tool for Password Safe databases.
Traces on the Net
Older, but very interesting: Rogers Cadenhead demonstrates, what you can find out about a person just from comments on websites. He only uses the comments on Metafilter to create a profile of a regular Metafilter user.
One should indeed think about what data and information one voluntarily gives away - bloggers and frequent commentators are often quite generous with their information. Efficient search engines can certainly help create a profile of a person that can be far more detailed than what Rogers did on Metafilter.
Benford's Law - why so many numbers in statistical series start with 1.
EU loses GMO dispute with the USA
The WTO rules against the EU's Genfood moratorium:
Andreas Bauer, a genetic engineering expert from the Umweltinstitut München e.V., comments: "The WTO's decision puts the interests of genetic engineering corporations like Monsanto, Dow, and Dupont/Pioneer above those of European consumers and farmers. The majority of Europeans reject agro-genetic engineering."
Not only do the majority of European citizens reject this, but a large number of regions also do not want to import or cultivate genetically modified foods. Very fitting is Germany's stance, which believes it must pave the way for American corporations here instead of joining the genfood-critical states and regions in Europe.
Hedgehog - Never underestimate the power of a small tactical Lisp interpreter.
LEGO Technic Difference Engine - Babbage would be jealous
Holes in the Java Sandbox
Unauthorized file access through Java vulnerabilities - ouch. A sandbox is only as good as its programmers, unfortunately. It must be admitted, however, that the sandbox rarely shows holes. But just because Java is now also spreading further to mobile devices and other devices, such things are naturally becoming more interesting.
Scientists find new species in 'Garden of Eden' - hopefully it will remain a Garden of Eden. Areas like this should be immediately placed under nature protection, otherwise it will be exploited by "exotic enthusiasts" sooner or later.
CSS Fisheye - CSS magnifying glass effect in a text block.
GREYCSTORATION - denoising algorithm as an open source CLI tool.
Lightbox JS - Display photos with JS on the page. Nice effect.
AVM could simply write drivers under GPL
AVM warns of restrictions for proprietary kernel modules:
The consequence for AVM would be to stop supporting Linux. A reaction to the email is not yet available. The kernel developers are likely to be little bothered by AVM's threat, as their goal of keeping the kernel and its entire environment free seems to take priority due to their mixed experiences with proprietary drivers. Alternatives to AVM exist, and GPL drivers for AVM hardware are not excluded, even if they do not come from AVM.
Exactly that: Alternatives exist. It's time for the alternatives to pay off with better Linux support - then maybe AVM will also become reasonable. The binary modules without source cause more trouble than joy.
HOWTO: Bluetooth GPS and GPSDrive on the Nokia 770 - because someone recently told me that the Nokia 770 is useless without a navigation system: here it is.
It all seems so familiar
CIA presents dubious evidence against Iran
A report by the ARD magazine "Report Mainz" (tonight at 21.45 on Das Erste) sheds new light on the nuclear dispute with Iran. One piece of evidence in the chain of evidence presented by the US government against Tehran's nuclear program is an Iranian laptop allegedly containing data for the construction of an atomic warhead. However, a US nuclear weapons expert found no evidence of this in the computer documents.
The US administration could really come up with new approaches, couldn't they? After all, the CIA has also served as a scapegoat later on: once is an accident, twice is stupidity ...
lambda remains in Python
Let's just keep lambda - GvR gives up
Call me a pessimist ...
... but I feel uncomfortable with such ideas:
Companies should in the future acquire the electronic equivalent of a stamp if they want to be sure that their email reaches the recipients. For fees of up to one cent per message, the mails sent via the service provider Goodmail Systems will be forwarded without spam filtering and confirmed as received.
When will emails from private individuals no longer be delivered unless they go through one of the large providers participating in the payment system? When will citizens' networks or privately operated providers be excluded because they cannot belong to the club of payers?
The possibly upcoming argumentation is simple: only those who pay to a central authority for their website will be enabled for HTTP access in the mandatory proxy of the large providers - because otherwise they are suspected of being a phishing site. And soon, outside of email, some sites would simply no longer exist. It also fits perfectly with the efforts of telcos and cable providers in the USA, who also want to deliver paid content (i.e., content paid for by the telcos) on a priority basis.
Apart from the fact that I definitely trust my own filters more than filters operated for payment by some company on the net. When will there be the first scandal that a spammer has bought access? My statistical spam filter on my server is not corruptible - not perfect, but also not corruptible.
In the establishment of further central filters and control points, I see a real danger to the structure of the Internet - how quickly companies are bought, one could see in recent times. And even if a company like Yahoo today possibly - due to the necessary positioning against Google - is a bit on a cozy course with the user, who guarantees that a media giant does not take over the whole thing? Not everyone is as incompetent as Time Warner ...
Ösi-Pässe also vulnerable
Not that anyone thinks our Austrian neighbors have better chip passports than our Dutch neighbors:
When reading the passports on an official reading device, the data can be eavesdropped on by third parties from a short distance with relatively modest effort and then quite easily decrypted.
The electronic data that can be captured corresponds to the [name, date of birth, place of residence, etc.] noted in the passport in writing, but the passport photo is also included in the form of a JPEG.
Well, we will probably have a lot of fun with the idiotic tags in passports in Germany in the long run ...
BMW kicked out of Google
Just freshly chased through the blogosphere, the pig, already caught German BMW Banned From Google. Well, if you engage in search engine spamming, you might get kicked out of Google. Some marketing guys probably wanted to be too clever again.

Console Password Manager - very interesting tool, stores passwords encrypted with GPG and uses existing GPG keyrings. This way you can also encrypt password files for others (e.g. shared passwords in the company for multiple admins). And it runs on the console.
The End of the Internet?
A frightening observation of telecom activities in the USA. Those who think this doesn't concern us: many carriers in Europe are US subsidiaries. And those that are purely EU companies are often telcos themselves - and therefore similarly "susceptible" to megalomania. The efforts of telcos and cable providers are therefore definitely critical - especially in the discussion of Quality-of-Service configurations on the Internet, there are indeed technical means to restrict or prevent citizen communication. Only registered network blocks and registered protocols would get the corresponding bandwidths, P2P protocols would be restricted - the entertainment industry would immediately be on board, after all, this would factually slow down data exchange. And how quickly the bandwidths for citizen networks, private internet projects, weblogs operated outside large providers, etc. would be restricted, everyone can imagine for themselves.
Not a nice vision of the future. Especially because we are dependent on the reason of a state and a government that starts wars with fabricated motives and forged evidence, whose government is even more driven by lobbying than the one in Germany, which spies on its own citizens under the guise of "fight against terrorism" and grinds away their freedoms and whose current president allegedly receives his inspirations from God ...
Bielefeld Rail Theft
Not only does Bielefeld not exist - the tracks in Lohra don't exist either:
According to police reports, the company had commissioned two firms with forged orders from the railway. The workers had work to do for at least two weeks. The tracks laid on steel sleepers were completely torn out of the ballast. Afterwards, the tracks went to scrap dealers. A ton of scrap currently costs 200 euros.
Well, if I had to come up with a joke, I wouldn't think of the idea that you could steal tracks. Reality can only be that absurd ...
Signs of Intelligence
JPEG-Patent is being reviewed:
The US Patent and Trademark Office has agreed to review the so-called JPEG patent with the Public Patent Foundation (PUBPAT). This is evident from a statement by the non-profit organization. In November 2005, they had submitted a formal application to review the patent of the company Forgent with the number 4,698,672 from 1987. PUBPAT believes that the technology was not new at the time. Now the patent office has responded that PUBPAT has raised "fundamentally new questions of patentability." The organization estimates the chances to be good that the patent will be declared invalid.
It would be very good if this patent would disappear. Because even if the open-source area has not been directly affected so far - with such patents, it is simply a matter of time before this area is also targeted. And to go through the mess that ran with GIF really doesn't have to be.
Book Review -- The Debian System: Concepts and Techniques | Linux Journal - interestingly sounding book about the concepts in Debian.
The Lie of Information Freedom
What the Federal Foreign Office understands by freedom of information:
The applicant requested a decree of the Federal Foreign Office to the visa offices dated November 22 of the previous year with the file reference 508-1-516.20. Such decrees are the daily tools of consular officers in the more than 150 visa offices worldwide, attaching the document to an email should take such an officer a few minutes of work.
And what was the bill for this request? 107.20 euros. For a copy of a standard document. So much for the proportionality of the prices for information access. Exactly what I already expected is happening - the Freedom of Information Act is becoming an absolute farce.
Fischertechnik and the Mac
Fischertechnik now has a robot kit that runs on Mac OS X. As usual with Fischertechnik: significantly more professional programming options, a significantly more professional-looking device, and a significantly higher overall price than Lego. Somehow a shame - I used to like Fischertechnik, but the stuff was simply too expensive to own in sufficient quantities. And again here - 255 euros just for the interface, it doesn't help that the construction kit itself only costs 170 euros. And autonomous robots are not possible with it, the whole thing is wired.
So I will probably continue to wait for Mindstorms NXT, because I already have a lot of material for Lego. And the RSXe are also fun.
Internet Tablet Talk - Gnumeric 1.6.2 Released - Spreadsheet for the Nokia 770 Tablet. Wow.
Head in the Sand
Ostrich policy in the EU Commission:
The EU Commission currently does not consider it necessary to conduct a compatibility study on the effects of the directive on data retention without suspicion, which was decided by the EU Parliament in December.
Because one does not want to know what effects one's own idiotic decisions can have. Then one can claim afterwards that one did not know it beforehand. And planning ahead - where do we end up there?
One feels somewhat abused ...
... if the monthly traffic statistics show 1.79 GB for normal visitors, but 1.83 GB for bots and stuff. And if you then realize that 1 GB alone was wasted on the Google bot, 0.5 GB on Inktomi and still 125 MB on the MSN bot. Somehow it seems that the whole internet is mainly read by bots, not by humans: bots had 235071 page views, humans only 114158 page views.
If there is ever a Terminator, it will probably be controlled by an internet search engine ...
Mandelbrot Set - Labix - Example source code that draws little apples with PyGame on the Nokia Tablet.
Nokia 770 Internet Tablet
Well, here it is. Very nice piece - since Tuesday I have it. It's really fun - the integration of Bluetooth and WLAN is quite well done, the device can connect with any WLAN. Even WPA and WPA2 - both also with certificate - work. When pairing with Bluetooth phones, it is a bit stubborn and picky, but with some persistence it also worked with my Motorola E398.
The installed software is quite usable - the browser is a stripped-down Opera, very user-friendly and quite complete in its support of HTML, CSS and JS. However, it lacks some of the nice features of Opera for the desktop - especially it does not save passwords that you have entered. Which is rather inconvenient for a device without a keyboard, if you have to enter passwords again and again.
The hardware itself is well made - lies nicely in the hand, is significantly smaller than I would have expected and you can tell that the manufacturer has experience with small devices. However, they could have given the tablet a scroll wheel so that you don't always have to take the pen and the touchscreen to scroll through web pages. The cursor keys jump from link to link on the page, so they are not directly usable for normal browsing. With touchscreens I am always a bit skeptical about long-term usability - many of them have defects and calibration problems (with heavy use rather earlier than later) sooner or later.
The possibility to add more software is of course great - especially very easy to solve. You simply click on a Debian package and it installs it. Games, tools, applications - there is already quite a lot. Even a complete Python port with all libraries for on-board development of Python programs with GUI for the tablet is available. However, you should probably get a Bluetooth keyboard for this - this funny fabric keyboard might be quite interesting for this.
Well, the next version of the software should also support VOIP and IM - this could become even more interesting if you combine it with a Bluetooth headset, this could be quite a practical device for telephony as well - at least if a free WLAN hotspot is available.
It could be that I will now start writing an organizer software with Django - because then I could access it everywhere via the device and also use it from normal computers. Probably more practical in the long run than all these not really functioning synchronization solutions.