<: my %dates; :>
<define-tag entry endtag=required>
<preserve date title description/>
<set-var %attributes>
<:if ($RSS_OUTPUT eq "yes") {:>
<preserve body/>
<set-var body="%body">
<:$rss->add_item(title => "<get-var title>",
                 link => "http://delysid.org/Blog.html#<get-var date>",
                 dc => { date => "<get-var date>" },
                 description  => <<EOF
<get-var description>
EOF
	);:>
<restore body/>
<:} else {
    my ($date, $time) = split(/T/, "<get-var date>");
    if (!defined %dates->{$date}) {
        %dates->{$date} = 1;
	print '<div class="date-heading">'.$date.'</div>';
    }:>
<div class="entry">
<h2><a name="<get-var date>"><: print $time :></a>: <get-var title>
    <en: (also available in <a href="Blog.html.de#<get-var date>">german</a>)>
    <de: (auch in <a href="Blog.html.en#<get-var date>">englisch</a> verf&uuml;gbar)></h2>
<div class="entry-body">
<p class="summary"><en: Summary:><de: Zusammenfassung (englisch):> <get-var description></p>
%body
</div>
<div class="entry-comments">
<p>
<en: Comments? Send><de: Kommentare? Sende>
<a href="mailto:blog<: print $date :>@delysid.org">
<en: a mail><de: ein Mail></a>.
</p>
</div>
</div>
<:}:>
<restore date title description/>
</define-tag>
<:
my $rss;
if ($RSS_OUTPUT eq "yes") {
  use XML::RSS;
  $rss = new XML::RSS (version => '1.0');
  $rss->channel(
    title        => "Radical Accessibility",
    link         => "http://delysid.org/Blog.html",
    description  => "The internet seen from the perspective of a blind guy",
    dc => {
      date       => join('T', split(' ','$(WML_GEN_ISOTIME)')),
      creator    => 'mlang@delysid.org',
      publisher  => 'mlang@delysid.org',
      rights     => 'Copyright 2008 Mario Lang',
      language   => 'en',
    },
    syn => {
      updatePeriod     => "hourly",
      updateFrequency  => "1",
      updateBase       => "1901-01-01T00:00+00:00",
    },
    taxo => [
      'http://dmoz.org/Computers/Internet/',
      'http://dmoz.org/Computers/Internet/Web_Design_and_Development/Accessibility/',
      'http://dmoz.org/Computers/Internet/Web_Design_and_Development/Authoring/Online_Tools/Checking_and_Debugging/Accessibility/',
      'http://dmoz.org/Society/Issues/Disabilities/Accessibility/',
      'http://dmoz.org/Society/Disabled/Universal_Design/'
    ]);
} else {:>
#use wml::tmpl::main title="Radi<en: cal Accessibility><de: kale Barrierefreiheit> -- <en: The internet seen from the perspective of a blind guy><de: Das Internet aus der Sicht eines Blinden>" PAGE=blog

<:}:>

<define-tag irc endtag=required>
<preserve server channel/>
<set-var %attributes>
<div class="irc-quote">
<a href="irc://<get-var server>/<get-var channel>">irc://<get-var server>/<get-var channel></a>:
<pre>
%body
</pre>
</div>
<restore server channel/>
</define-tag>

<entry date=2010-03-18T21:07
       title="Martial arts for the blind?"
       description="I might have found a martial arts technique that seems
to have good chances of working even if you are totally blind.">
Wing Chun promotes two principles which do indeed read and sound like
it might be exactly what a blind person wants to practice:
<a href="http://en.wikipedia.org/wiki/Wing_Chun#Close_range">Close range</a>
and
<a href="http://en.wikipedia.org/wiki/Wing_Chun#Uncommitted_techniques">uncommitted techniques</a>.
I can't really tell you more just now except what you can already
read on the Internet.  Just one more very relevant
pointer: <a href="http://en.wikipedia.org/wiki/Wing_Chun#Chi_sao">Chi sao</a>
(sticking hands).  The idea is to develop reflexes especially
for close range combat, and the principle is to always stay
in contact with your opponent, something that very much resonates
with me (obviously, keeping in touch with your opponent
is exactly what you need if you have no sight at all).
</entry>

<entry date=2009-06-22T11:25
       title="CAPTCHA: The great new legal way of getting rid of blind people"
       description="I just tried to register a twitter account.  After seven
unsuccessful attempts to unriddle the audio CAPTCHA I had to give up before
my anger would hurt anything in my proximity.  This is a post in rant mode,
so be prepared, however, I think it has some valid points seen from the perspective
of those that fell victim to the recent CAPTCHA movement.

I hate CAPTCHAs, for the obvious reasons.  At first, it ment that I started
to be excluded from all sorts of services on the net, basically everything that
requires me to register an account and thinks of itself being leet or something.

I find it particularily funny (in the chinese sense) that CAPTCHAs started to
emerge after the W3C's Web Accessibility initiatives finally made
some progress in educating web designers.  So while the internet is now
officially accessible (at least its easy to claim this today) "they"
have now found a much better way to exclude us blind people categorically.
They just pretend we are no humans anymore (thats actually nothing new in perceived
real life, but it feels new to me in information technology).">
<p>
Now, of course, you will say, these days there are audio CAPTCHAs.
However, this is what I tried to use on twitter.com.
They tell me they are looking for two words I am supposed to enter,
and I am also supposed to not worry, the best guess is OK.
As mentioned above, I tried this seven times.  With some attempts,
I didn't understand a single word at all, with other attempts,
I understood way more than two words.  It was never marked clearly which of the
excess words are supposed to be ignored.  No matter what I
entered, I apparently failed to solve the CAPTCHA and proof my humanity.
</p>
<p>
And I am even lucky, I tend to think of myself as someone that does
understand english quite well when listening to it, a ability that not everyone
has in my country that has german as its primary language.
Supposing that twitter is an international service and not really linked to
english as a primary communication language, the audio CAPTCHA
is also excluding all the people that do not speak/hear english
very well.  Besides, this point doesnt matter, because I bet you can't solve
that CAPTCHA on first try even if you are a native speaker, its just too damn crazy.
</p>
<p>
So, what to do?  I have no idea.  I guess my frustration will
just grow boundlessly.  CAPTCHAs are the first events in IT that make
me think about my ability to do this job in the future.
If these trends persists, I dunno how I am supposed to take part in the
Internet in the future.
</p>
</entry>
<entry date=2009-01-02T23:03
       title="FreeDots news: <en: Work started again!><de: Arbeiter wieder aufgenommen!>"
       description="While FreeDots development has feature-wise halted
in the last few months due to me exploring a few implementation details,
work is continuing again.">
<p>
<a href="http://code.google.com/p/freedots/">FreeDots</a> <en: is a
MusicXML to braille music transcription project with interactive features.>
<de: ist ein MusicXML zu Braille Musik transkriptions Programm mit
interaktiven Features.></p>
<p>
<en: I originally started to implement my prototype in Python.
While I was very happy with the programming language and dynamic nature of
Python I couldn't manage to find a cross-platform accessible
GUI for Python.>
<de: Ich habe meinen ersten Prototypen in Python geschrieben.
Obwohl ich mit der Programmiersprache und ihren dynamischen Eigenschaften
sehr zufrieden war konnte ich leider kein platform&uuml;bergreifend
barrierefreies grafische Toolkit f&uuml;r Python finden.>
<en: In this particular case, I can't ignore users on MS Windows.>
<de: In diesem speziellen Fall allerdings kann ich Benutzer die MS Windows
verwenden nicht einfach ignorieren.>
<en: I want FreeDots to run on the major platforms, as well as the one I am
using (Linux).>
<de: Ich m&ouml;chte das FreeDots auf den meist verwendeten
Betreibssystemen l&auml;uft sowie auch auf dem Betreibssystem das ich
selbst verwende (Linux).></p>
<p>
<en: Due to my love to Lisp, I also explored how it would feel
to implement FreeDots in Common Lisp and in Emacs-Lisp.>
<de: Durch meine Liebe zu Lisp habe ich auch ausprobiert wie es sich
anf&uuml;hlen w&uuml;rde FreeDots in Common Lisp und/oder
in Emacs-Lisp zu implementieren.>
<en: Both choices however do fail due to certain real-world issues.>
<de: Beide Sprachen k&ouml;nnen aus pratkischen Gr&uuml;nden allerdings
nicht als brauchbar eingestuft werden.>
<en: Common Lisp has no cross-platform accessible GUI framework
either, and Emacs-Lisp is too slow for processing big XML files as well
as probably a bit too heavy when it comes to app delivery.>
<de: Common Lisp hat ebenfalls kein Platformunabh&auml;ngiges
barrierefreies GUI Toolkit und Emacs-Lips ist leider einfach zu
langsam um sehr gro&szlig;e XML files in vern&uuml;nftiger Zeit
zu verarbeiten.>
<en: So while both experiments were fun (and I kind of build on
the ideas I was able to explore due to extreme dynamic nature
of Lisp languages now) I had to continue my search.>
<de: Obwohl beide Experimente sehr spannend waren musste ich also
weiter suchen.>
</p>
<p>
<en: I can't believe it while I type this, but I finally had to settle
for Java.>
<de: Ich kann es selbst noch nicht ganz fassen, aber ich habe mich
schliesslich f&uuml;r Java entschieden.>
<en: The Swing (and SWT) Toolkit is accessible on Linux and Windows.>
<de: Das Swing (und SWT) toolkit ist unter Linux und Windows
barrierefrei bediehnbar.>
<en: Java already has a host of XML processing features.>
<de: Java hat auch alles was man zum XML bearbeiten braucht.>
</p>
<p>
<en: However, this ment for me to learn a totally new language.
While the principle is simple if you know the C family, the devil
appear to be hidden in the details.>
<de: Dies bedeutete allerdings auch, das ich nun eine total neue
Programmiersprache lernen musste.  Obwohl das Prinzip hinter
Java f&uuml;r jemanden der die C Familie kennt nicht so schwer ist,
liegt der Teufel wie immer im Detail.>
<en: I made yet another de tour by examining how Eclipse could help me in this
adventure.  The summary is basically that it works kind of after you figured
out the necessary key shortcuts and tricks, but there are a few nasty bugs in
Eclipse SWT which make real comfortable use impossible.>
</p>
<p>
<en: However, the Java implementation of FreeDots is now growing
again, and the previous experiments have helped me at least to have a pretty
good idea of what I need to complete it.  The task is still pretty
complicated, at least for my level of experise.  I hope I can overcome
the bigger issues soon.>
</p>
</entry>


<entry date=2009-01-02T22:39
       title="85x32: <en: More dots at once!><de: Mehr Punkte!>"
       description="I happen to use a Handy Tech Modular Evolution 88,
which is a 88-cell braille display.  Old school text mode users will
probably all be familiar with 80 character wide terminals and why most braille
displays have a size that easily fits into 80 (20, 40, 80).
This is a story about how to use a little more space on your 88-cell display.
We reconfigure the Linux framebuffer console to use a 1024x768 resolution and
load a 12x24 font.  Voila, we get 85x32!  And with the recent rewrite of BRLTTY
status cell handling, we can configure the remaining 3 cells to be used as
status indicators.">
<p>
<a href="http://mielke.cc/brltty/">BRLTTY</a> <en>recently gained the ability
to dynamically reconfigure the amount of status cells being used (for those
displays that have no fixed status cells).  As I use a 88-cell
braille display, this opened up the ability (to name one example) to use
a slightly wider text terminal configuration.  But how to achieve this?</en></p>
<p>
<en>On Linux, we have the so-called framebuffer console.  All we need to
do is to load a framebuffer kernel module (use the one that most closely
suites your card) and use the program fbset to configure a certain
screen dimension.  In our case, as we'd like to use slightly
more than 80 characters, we are settling for 1024x768.  There
is a font (in the console-terminus package on Debian GNU/Linux systems)
which is 12 pixel wide (12x24).  1024 divided by 12 equals to 85 (and a 
few pixels on the side that we are not going to miss).</en>
</p>
<p>
<en>Additionally, we will have to configure our system to permanently load
this font.  You can do this in /etc/kbd/config:</en>
<pre>
CONSOLE_FONT="Lat15-Terminus24x12"
</pre>
</p>
<p>
<en>Voila.  How to use fbset to configure 1024x768 and how to make
this permanent is left as an exercise for the reader.</en>
</p>
</entry>

<entry date=2008-10-30T11:41
       title="<en: How to use Eclipse with Orca on Linux><de: Tips zur Benutzung von Eclipse mit Orca unter Linux>"
       description="While my initial look at Eclipse a few months
ago was a bit disappointing, I gave it a second try a short while ago.
Fortunately, it turns out to be much easier than originally thought, Eclipse
is really pretty accessible once you know the important keyboard shortcuts.
Most of the currently visible problems seem to be focus related, read this
article if you are a Eclipse Dev and want to get an insight into
what you could fix to make it even better!">
<p>
Here is a list of the shortcuts I found very valuable as a blind
eclipse user:
<ul>
<li>Alt+Shift+Q P: Jumps to "Package explorer", very useful if you want to
     navigate to an editor window showing a particular class.</li>
<li>Alt+Shift+X J: Run your application.</li>
<li>Alt+Shift+Q X: Shows the Problems view.  You invoke this after
    building and/or running your app.  The view contains a Tree of
    errors and warnings, expand the collapsed items to see the actual
    erorrs/warnings.  Hitting return/enter on a error/warning jumps
    to the location in an editor window and highlights the problematic
    problematic expression (see next item)..</li>
<li>Ctrl+1: Quick Fix.  If a problematic expression was highlighted
    this gives you a list of things you can automatically do about it to
    fix it.  Once you press Ctrl+1 this window doesn't have focus, so
    you need to hit TAB once immediately after Ctrl+1 to see
    the choices.  Select one by hitting return and the magic takes place.</li>
<li>Ctrl+SPACE: Complete a method while typing.  This has the same
    problem as quick fix, the popup window doesn't get focus automatically,
    just hit TAB to get around this problem.</li>
<li>Alt+Shift+Q C: Go to console output window.  I usually do this
    after running my app to check if there was any unexpected output.</li>
<li>Ctrl+F6: Switch to next editor window.  Sometimes, Eclipse looses
    focus and you end up in nowhere land.  Either F10 followed by escape
    or Ctrl+F6 helps a lot here.</li>
</ul>
</p>
</entry>

<entry date=2008-10-21T14:17
       title="<en: An accessible Linux Live System for German braille users><de: Ein barrierefreies Linux Live System f&uuml;r deutschsprachige Braille Benutzer>"
       description="My braille display has a built-in USB storage
which can neatly be turned off and on by a switch on the backside of the
device.  While I haven't had any real use for this yet, recently an
idea came to mind: Why not put a live system on the USB storage
for rescue situations?  After thinking this through I realized that it
might be interesting as a live system in general for blind users
to quickly be able to try out Linux and its capabilities.
Since I am a german speaking person, I feel there is a need for
preconfigured systems in my language area.  So I went ahead
and created a USB stick image of a Live system with
brltty, orca and espeak preconfigured.  This system boots up
and automatically detects all (to brltty) known USB braille
displays.  It uses a german braille translation table.  When
Orca is started, a german espeak voice is preconfigured.
Firefox and OpenOffice.Org are preinstalled and ready to go and Java platform
applications do also work out of the box.
The system is based on Debian and uses (as far as possible) the
latest stable versions of accessibility infrastructure like AT-SPI (2.24.0)
and Orca 2.24.
And there is even a easter-egg for those of us that like to do some gaming!">
<p>
<en: I was never really attracted by the concept of live systems since
I am using Linux at work and at home since more than 10 years
now and all my Linux systems are installed on the computer,
no need to repartition or dual-boot.>
<de: Live Systeme haben mich in der Vergangenheit nie wirklich interessiert
da ich Linux privat und beruflich schon seit mehr als 10 Jahren nutze,
und es auf allen meinen Computern direkt installiert ist.
Ich hatte nie das Problem mein System repartitionieren zu m&uuml;ssen
oder mich mit Dual-Boot herumschlagen zu m&uuml;ssen.>
<en: But the idea of being able to demo Linux and its accessibility
capabilities to blind and visually impaired friends in my area
is floating around in my head for a long time now.>
<de: Allerdings spukt der Wunsch Linux und dessen m&ouml;glichkeiten
rund um Barrierefreiheit anderen blinden Benutzern zeigen zu k&ouml;nnen
schon lange in mir.>
</p>
<p>
<en: There are a number of use cases for such a project:>
<de: Es gibt einige Anwendungsbeispiele f&uuml;r ein derartiges Projekt:>
<ul>
<li><en: Rescue system in case your installed Linux refuses to boot>
    <de: Rettungssystem falls das installierte Linux mal nicht mehr starten will></li>
<li><en: Portable Linux system on a USB stick, just walk up to a PC, connect your
    braille display and the USB stick and boot.>
    <de: Portables barrierefreies Linux.></li>
<li><en: Demo system to show off what Linux Accessibility can do these days>
    <de: Demo-system um blinden Benutzern ohne gro&szlig;en Aufwandt
         barrierefreies Linux n&auml;her zu bringen></li>
</ul>
</p>
<p>
<en: You can find prebuilt images of this live system>
<de: Du kannst images dieses Live Systems>
<a href="http://lamp.tugraz.at/~lang/isix/"><en: here><de: hier></a>
<de: herunterladen>.
<en: Please send comments if you are interested or make any use
of this system so that I can evaluate if it makes sense to further publish
releases, or if I should just keep this my own personal little secret :-).>
<de: Bitte sendet mir Kommentar via e-Mail solltet ihr dieses Live System
benutzen damit ich absch&auml;tzen kann ob es Sinn macht
weiterhin Versionen zu publizieren oder ob ich das besser
als mein "kleines Geheimnis" weiterbetreibe :-).>
</p>
<p>
<en: The system is <a href="http://debian.org/">Debian</a> based and
uses the latest stable releases of accessibility
software like AT-SPI (2.24.0) and <a href="http://live.gnome.org/Orca">Orca</a>
2.24.0.>
</p>
<p>
The first who finds the easter-egg (not really hidden at all) and reports
it via e-Mail will be mentioned in my next posting :-).
</p>
</entry>

<entry date=2008-09-17T23:50
       title="<en: Reading from the monitor with a mobile phone><de: Lesen des Bildschirminhaltes mit hilfe eines Mobiltelefons>"
       description="Some of you might already know about this piece of
software for Symbian phones (for the N82 in particular) that does
OCR directly from the phones built-in camera.  I have such a thing (a
big thanks to my employer) and find it very valueable in daily usage.
But this is a story about a use case that I never would have dared to
hope for.  I can use my mobile phone to read the content of my monitor!
This is the first time I feel like experiencing technology from the
21st century.  From now on, if something fails unexpectedly
I am no longer required to ask someone to read whats displayed
on the monitor, I have a new possibility to try first.  While this
is not practical when you actually try to interact with a
program, it can at least help to figure out what error message is displayed.">
<p>
<en: Yesterday evening I had a pretty simple job to do: Create
a partition table on a new 2GB CompactFlash card, transfer
old partition content to it and make the card bootable.>
<de: Gestern abend hatte ich eine ansich recht einfache Aufgabenstellung:
Erzeuge eine neue Partitionstabelle auf einer 2GB CompactFlash
Karte, transferiere die Daten aus den alten Partitionen und
sorge daf&uuml;r das die neue Karte bootbar ist.>
<en: So far, so good.  I did what I needed to do, and then slotted the
CF-card into the test machine.  After turning the device on, the
usual thing happened: nothing.  Since the machine didn't show
up on my network with the IP address I configured, something
must have gone wrong.>
<de: So weit so gut.  Nachdem ich mit dem erstellen der neuen CF Karte
fertig war habe ich sie in die Testmaschine gesteckt und das
ger&auml;t eingeschalten.  Wie man fast erwarten k&ouml;nnte ist
erstmal das offensichtliche passiert: Nichts.  Da die Testmaschine
mit der von mir konfigurierten IP Adresse nicht in meinem LAN
aufgetaucht ist musste irgend etwas schief gegangen sein.>
<en: Damn.   At this point you are usually pretty stuck if
you are blind and without a sighted coworker.  While serial consoles
are a nice thing to have, PC BIOSes are usually a bitch when it comes
to working serial consoles.  This test machine has a pretty
old BIOS too, so forget about that route.  Since it was already
past midnight, there was no one around whom I could
ask to read the monitor content to me either.>
<de: An dieser Stelle geht es normalerweise nicht weiter wenn
man blind ist und gerade kein sehender helfen kann.
Serielle Konsolen sind zwar eine echt tolle Erfindung, aber
PC BIOSen unterst&uuml;tzen normalerweise keine seriellen Konsolen,
vorallem nicht wenn sie schon etwas &auml;lter sind, wie in diesem Fall.>
<en: Which lead me to an idea: Why not use my>
<de: Da kam mir aber eine Idee: Warum nicht den>
<a href="http://www.knfbreader.com/">KNFB Reader</a>
<en: to figure out whats going on?>
<de: verwenden um herauszufinden was hier falsch l&auml;uft?>
</p>
<p>
<en: To make a long story short: Yes, it works!  I had to turn
off the light in my room to get optimal results,
but after that, it basically works as reliable as with print on paper!>
<de: Ja, es hat funktioniert! Ich musste zwar zuerst das Licht in meinem
Zimmer ausschalten um bessere Ergebnisse zu erzielen.  Danach
funktionierte es allerdings fast so gut wie mit gedrucktem Text auf Papier.>
<en: The tabular data displayed didn't get read correct, but that was not
what I was after.  The last sentence my phone said was what I needed to
know:>
<de: Die tabellarischen Daten die dargestellt waren wurden nicht
richtig erkannt, aber das war nicht was ich suchte.
Der letzte Satz den mir mein Mobiltelefon vorgelesen hatte war das eigentlich
interessante:>
<blockquote>
"Insert disk and press a key to continue"
</blockquote>
</p>
<p>
<en: So while I haven't been able to fix the actual problem at hand
(the BIOS does not support CF cards larger than 1GB) I was
at least able to narrow the problem down to the BIOS not recognising
my new CF card as bootable media.>
<de: Obwohl ich also das eigentliche Problem nicht beheben konnte
(das BIOS unterst&uuml;tzt einfach keine CF Karten die gr&ouml;&szlig;er
als 1GB sind) konnte ich das Problem zumindest darauf eingrenzen
das meine CF Karte von diesem BIOS einfach nicht als
Bootmedium erkannt wird.>
</p>
<p>
<en: This opens up completely new possibilities of independence in my
profession.>
<de: Dies &ouml;ffnet total neue M&ouml;glichkeiten in meiner beruflichen
T&auml;tigkeit.>
</p>
<p>
<en: Now who is going to put together a special version of>
<de: Wer macht jetzt eine spezielle Version von>
<a href="http://code.google.com/p/ocropus/">OCRopus(tm)</a>
<en: for mobile devices?>
<de: f&uuml;r mobile Ger&auml;te?>
<en: A coworker of mine is already thinking about writing a tool
for doing things like color analysis using a mobile phone camera.
I think this is a very exciting idea loaded with possibilities.>
<en: The world needs more practically oriented open source projects
related to optical recognition!>
</p>
</entry>

<entry date=2008-09-15T12:16
       title="OCR HTTP proxy in Perl <en: for><de: f&uuml;r> thomann.de"
       description="About two years ago thomann.de decided to change its
website to encode all price information in images (without alternative tags).
This is of course extremely problematic for low-vision or blind users.
In a personal mail they explained to me they do this to prevent
automated price comparisons.  They also claimed that their way of
doing it is a good measure against what they want to prevent.  Well...
If a *BLIND* person can come up with a script on their own (source included),
I bet my ass off that anyone with an interest in
automated information retrieval would be able to do the same.
Seems like the management of thomann.de was fooled very much
by their webmaster.">
<p>
<en: I have to explain that I really like musical instruments.>
<de: Ich sollte vielleicht erkl&auml;ren das ich Musikinstrumente liebe.>
<en: They seem to excert a magical pull on me.>
<de: Sie scheinen mich fast magisch anzuziehen.>
<en: Whenever I am in a new city, I need to visit the local music store.>
<de: Immer wenn ich in einer neuen Stadt bin m&ouml;chte ich gerne das
ans&auml;ssige Musikgesch&auml;ft besuchen.>
<en: So you probably understand that I felt an attack on my personal freedom
to browse when I figured out that one of the biggest online
music instrument resellers in my area changed its website to deliberately
encode all price information in images without alternative tags and
with randomized filenames.>
<de: Da wirst du vielleicht verstehen wenn ich es als Angriff auf meine
pers&ouml;nliche Freiheit emtpfunden habe als einer der gr&ouml;&szlig;ten
Online Musikinstrumentenh&auml;ndler in meiner Umgebung
seine Webseite ge&auml;ndert hat und absichtlich alle Preise
nur mehr mit hilfe von Bildern ohne alterantiv Text darstellt.>
</p>
<p>
<en: Here is what thomman.de had to say about this (text is in german):>
<de: Folgendes ist die Aussage von thomann.de zu diesem Thema:>
<blockquote>
Leider hatten wir mit unserer alten Website das Problem,
dass unsere Preise regelm&auml;&szlig;ig von unseren Mitbewerbern
mit sogenannten Spider-Programmen automatisch ausgelesen
wurde und wenn wir mal irgendwo zu billig waren, hagelte
es Proteste seitens der Lieferanten.

Dies ging soweit, dass wichtige Eink&auml;ufer den halben
Tag nur noch mit Preisdiskussionen besch&auml;ftigt waren und
es teilweise zu unvorgesehenen "Lieferengp&auml;ssen" kam.

Da wir unseren Kunden weiterhin den bestm&ouml;glichen Preis
anbieten m&ouml;chten, haben wir uns deshalb entschlossen,
die Preise auf unserer Website als Graphik anzuzeigen,
damit sie nicht mehr automatisch ausgelesen werden k&ouml;nnen.
</blockquote>
</p>
<p>
<en: Haha, this is a case of pointy haired boss telling foo to someone!>
<en: The small HTTP Proxy I wrote demonstrates that there is nothing at all
which prevents a "bot" from retrieving the price.>
<de: Der kleine HTTP Proxy den ich geschrieben habe beweisst wunderbar das
es hier garnichts gibt was "bots" davon abhalten w&uml;rde die
Preise automatisiert zu lesen.>
<en: All they achieved is making their website harder to use for
people with visual disabilities (except if they use thomann.pl, of course).>
<de: Alles was erreicht wurde ist das thomann.de jetzt schwerer
f&uml;r menschen mit einer Sehbehinderung zu verwenden ist (ausser sie
verwenden thomann.pl).>
</p>
<p>
<en: The main code is just about 40 lines of Perl.>
<de: Der Hauptteil des Programmcodes sind gerade mal 40 Zeilen Perl.>
<en: For the impatient, here is it:>
<de: Hier ist der Link f&uuml;r alle Ungeduldigen:>
<a href="$(ROOT)/thomann.pl">http://delYsid.org/thomann.pl</a>.
</p>
<p>
<en: The program is implemented as a HTTP proxy, therefore the solution
is completely browser independant.>
<de: Dieses Programm ist als HTTP Proxy implementiert.  Daher ist diese
L&ouml;sung komplett Browser unabh&auml;ngig.>
<en: If a img tag pointing to a thomann digit is found in the HTML, the
image is identified and the appropriate alernative tag is added on the fly.>
<de: Wenn ein img element das eine thomann-Ziffer refernziert gefunden wird
dann wird dessen Inhalt identifiziert und dem img element wird automatisch
der richtige alternativ Text verpasst.>
<en: Future plans include some kind of fuzzy similarity test combined with
rescaling of images to a common size.>
</p>
</entry>

<entry date=2008-09-12T15:32
       title="planet-a11y.net <en: is down><de: ist ausser betrieb>"
       description="Of course, now that everything seems finished and ready to
take off, I discovered that planet-a11y.net is temporarily out of
service.">
<p>
<en: Rumor has it that they should be up and running again tomorrow.>
<de: Angeblich soll morgen schon wieder alles funktionieren.>
</p>
<irc server="irc.gimp.net" channel="#a11y">
&lt;suseROCKs&gt; delYsid:  yes, we have a regrettable crash and I need to discuss
	    with flaper before we can bring it back up again.
&lt;suseROCKs&gt; hopefully it will be restored by tomorrow morning.    Our
	    apologies.							[14:10]
</irc>
</entry>
<entry date=2008-09-12T10:05
       title="<en: Developing a blog><de: Entwicklung eines Blogs>"
       description="planet-a11y.net is a good reason to start a blog.
After looking at a few static soltuions (I don't want to use a complicated
web interface) I decided to do it myself.">
<p>
<en: Since the existance of><de: Seit es>
<a href="http://www.planet-a11y.net/">planet-a11y.net</a>
<en: I feel the need to have a blog.>
<de: gibt will ich auch ein Blog betreiben.>
</p>
<p>
<en: After looking at a few simple implementations I figured it is
probably easiest to just do it in WML since that is what I am already using
for my website.>
<de: Nachdem ich mir ein paar einfache Implementationen angesehen habe
bin ich zum Entschluss gekommen das es wohl am besten ist wenn
ich das selbst in WML mache. Vorallem da ich WML bereits f&uuml;r meine restliche
Webseite verwende.>
</p>
<p>
<en: Since WML makes it so easy, this blog is also available in german.>
<de: Da es WML so leicht macht ist dieses Blog auch auf englisch
verf&uuml;gbar.>
<en: And you can of course review the <a href="$(ROOT)/Blog.wml">simple source
code</a> I developed to produce these pages (including RSS feed, of course).>
<de: Nat&uuml;rlich kannst du auch den recht einfachen
<a href="$(ROOT)/Blog.wml">Source Code</a>, der zur Erzeugung dieser Seiten
(inklusive RSS Feed nat&uuml;rlich) verwendet wird, lesen.>
</p>
</entry>

<:if ($RSS_OUTPUT eq "yes") {
    print $rss->as_string;
  } else {:>

<:}:>
