Kategorie-Archiv: Cool Tool

Vom Hai zum Känguru – von der Zwangsabgabe zur freiwilligen Spende

Es ist vollbracht. An meinem privaten PC hüpft quasi nur noch das Känguru [[http://www.nvda-project.org | NVDA]]. Der Hai beißt nicht mehr recht.
Und auch an meinem Arbeitsplatz in der Firma wird der Hai allmählich zum Ersatzspieler.
== Hintergrund ==
Ich bin eigentlich ein echter JAWS-Poweruser. Während meiner Arbeit als Softwareentwickler verwende ich diesen kommerziellen Screenreader den ganzen Tag. Ich kenne alle Befehle, die ich im Alltag brauche, habe ein paar winzige Skripte hingefummelt und habe einige Anwendungen, die einem Screenreader alles abverlangen. Also gibt es doch keinen Grund fremdzugehen? Trotzdem werde ich dem Hai Stück für Stück untreu. Mittlerweile bin ich mir sicher, dass es mehr als nur ein kleiner Ausflug wird.

Mit diesem Artikel möchte ich andere JAWS-Bemnutzer dazu ermutigen sich intensiver mit NVDA zu beschäftigen und die eigenen Möglichkeiten auszuloten. Doch beginnen wir erstmal am Anfang.

== Die Chronik ==
Alles begann damit, dass ich Software mit dem QT-Framework entwickeln musste bzw. durfte. QT ist plattformübergreifend und verwendet deshalb keine sog. nativen win32-Steuerelemente. Anders gesagt, um Anwendungen mit dem QT-Framework nutzen zu können, braucht es einen Screenreader, der auf die offiziellen Schnittstellen MSAA bzw. IAccessible2 hört. Die Verwendung der nativen Win32-API ist bei solchen Frameworks sinnlos, weil sie alle Oberflächenelemente selbst zeichnen. Ooops machte da der Hai – er konnte nicht mal eine simple Meldungsbox vorlesen. Bis zu diesem Zeitpunkt hatte das NVDA-Känguru als zweiter Screenreader geduldig auf dem PC sein darsein gefristet und schwups – der las denn auch anstandslos die Meldungsbox. Also den Hai für alles normale und das Känguru für QT? Außerdem war NVDA immer zur Stelle, wenn sich JAWS mal wieder aufgehängt hatte und beendet werden musste. Eine Weile war es so und damit konnte ich die Arbeit fortführen. Damit nicht genug war es ein leichtes für meine Kollegen mit NVDA die Stellen unserer Anwendung anzupassen, wo dieser Reader noch hakte. Ein Screenreader, der sich für Entwickler wie ein kleines Hilfswerkzeug anfühlt, die Sprachausgabe auf Wunsch auf dem Schirm anzeigt, ist für viele Entwickler Motivation und Hilfe genug. Am Ende war unsere Anwendung zur Eingabe von Testfällen und Bewertung so weit angepasst, dass ein produktives Arbeiten mit NVDA damit möglich war. Das beinhaltete auch das Navigieren in Tabellen und zwischen verschiedenen Fenstern.

Ich verwende bei mir zuhause noch eine veraltete JAWS-Version, obwohl ich die entspr. Lizenz zur Verfügung hätte. Das letzte Update des gefräßigen meeresbewohners steckt mir noch in den Knochen. Jedesmal muss ich um den Treiber für mein Papenmeier Trio bangen, brauche eine Weile bis die Einstellungen umgezogen sind – und jedesmal muss ich die Brailezeile erneut auswählen. Ein Blick in die Neuigkeiten für eine neue JAWS-Version zeigen, dass es viele neue Funktionen gibt, deren Nützlichkeit ich teilweise nicht nachvollziehen kann und vor allem, dass Fehler in der Software verbleiben. Um es kurz zu machen, ich vermeide ein JAWS-Update wo immer ich kann und ich glaube nicht, dass Probleme mit einer neuen Version wirklich besser werden. Ich will nicht behaupten, dass ein JAWS-Update nicht problemlos möglich wäre, aber es bereitet mir großes Kopfzerbrechen und es gibt kaum Funktionen, auf die ich mich freuen könnte.

Ich verwende Outlook 2010 für meine E-Mails und JAWS 11 verreckt regelmäßig, wenn ich nur eine Mail mit Escape schließe. Resigniert über ein sicher erfolgloses Update bekommt wieder einmal das Känguru die Chance – und nutzt sie.

Mittlerweile lese ich mit NVDA meine Mails, lese und kommentiere Statusmeldungen auf Facebook, verkaufe Gegenstände bei Ebay, erstelle Blog-Artikel, und versuche immer mehr auf den Hai zu verzichten. Damit nicht genug kann ich mittlerweile fast alle notwendigen Anwendungen an meinem Arbeitsplatz mitNVDA nutzen, sodass ein ernsthaftes produktives Arbeiten als Softwareentwickler mit Visualstudio 2008 möglich ist. Einziger Nachteil ist, dass ich meine private Papenmeier Braillezeile nicht nutzen kann. Wieso? Während NVDA selbst Zeilen der Firma Hedo unterstützt, gibt es immer noch keinen Treiber für die Papenmeier-Zeilen. Die Lösung mit BRLTTY, die gerne dafür genannt wird, beißt sich mit dem Treiber von JAWS und lastet das System vollständig aus. Es spricht für sich, dass einer der größten deutschen Hardwarehersteller keinen NVDA-Treiber anbietet. Wie auch immer, dieser Nachteil geht nicht auf Kosten von NVDA. Außerdem konnte ich mit NVDA weitgehend einen Elterngeldantrag von [[http://www.elterngeld.de/pages/elterngeld.html]] ausfüllen. Hier sind lediglich die Kontrollkästchnen nicht immer klar mit ihrem Status erkennbar. Das ist sicher ein gravierendes Problem, aber für mich zählt, dass ich die Eingabefelder lesen und editieren konnte und alle Elemente gut lesbar waren.

Nachdem ich so ganz gut zurecht kam, stellte ich gleichzeitig fest, dass ich immer versucht habe, mit dem JAWS-Cursor unter NVDA die Oberfläche zu erkunden. Nachdem ich mittlerweile großes vertrauen in den freien Screenreader gewonnen hatte, war es also an der Zeit mich mit der Bedienphilosopieh näher auseinanderzusetzen. Eine gründliche Studie des deutschsprachigen Handbuchs brachte mich dem Ziel um einiges näher. Für alle Mitumsteiger hier die Unterschiede, bzw. wie man unter NVDA zurecht kommt.
# NVDA hält sich ähnlich wie Voice Over (das ist der Screenreader von Aple) strikt an die Hierarchie, die eine Anwendung vorgibt. Anstatt mit dem Jaws-Cursor das gesamte
Anwendungsfenster zu lesen und ggf. irgendwo zu klicken, navigiert man bei NVDA mit NVDA-Taste und den Ziffern des Nummernblocks durch die Objekthierarchie. Der Hai kann das auch – Homerow hieß das mal und war eigentlich nur als Werkzeug zur Skriptentwicklung bzw. Anwendungserkundung gedacht. NVDA hingegen hat dieses Werkzeug immer an der aktuellen Position. NVDA sagt also: suche zuerst das Objekt, mit dem du etwas anfangen – vielleicht auch nur es lesen möchtest und interagiere mit ihm.
Diese Form der Navigation kann dadurch unterstützt werden, indem Entwickler konsequent alle Steuerelemente (auch Groupboxen) mit Zugänglichkeitsattributen ausrüsten. Hier erhält der Anwender schnell die Information in welchem Bereich er sich gerade befindet.
NVDA beherrscht etwas ähnliches wie dem JAWS-Cursor. Das nennt sich Screen-Review-Modus und wird mit Nvda+Num7 ein- und ausgeschaltet. Diese Navigationsform ist dann sinnvoll, wenn die Objekthierarchie nicht zum gewünschten erfolg führt oder die optische Anordnung innerhalb der Anwendung wichtig ist.
# Unter NVDA kann man jeder zeit mit den Tasten des Nummernblocks Zeilenweise, wortweise oder Zeichenweise im aktuellen Objekt navigieren. NVDA kennt dabei nicht die seltsamen Beschränkungsmodi, die man unter JAWS für den JAWS-Cursor auswählen kann. Der Lesebereich ist strikt auf das aktuelle Navigator-Objekt beschränkt – für alles andere braucht man den Screen-Review-Modus.
# Häufig ist es unter NVDA ausreichend, auf einem gewünschten Objekt die Eingabetaste des Nummernblocks zu drücken, um es zu aktivieren. Wenn Sie z.B. einen Link in einer Mail haben, brauchen sie weder Cursorrouting noch Klicks ausführen – navigieren sie mit dem Nummernblock oder mit den cursortasten auf den Link, und aktivieren ihn mit der Eingabetaste des Nummernblocks. Apropos cursorrouting: Dies wird unter NVDA auch unterstützt, reagiert aber manchmal etwas anders als von JAWS gewohnt. Unter dem Hai ist das Cursorrouting ein Klick an die passende Stelle in der Anwendung. Unter NVDA wird für das Objekt, in dem das Routing ausgeführt wird, die Standardaktion ausgeführt. Das muss nicht immer ein Klick sein. Beim Bearbeiten von Texten ist dies kein Unterschied, aber wenn man z.B. in Visualstudio ein Fenster durch einen Klick aktivieren möchte, funktioniert Cursorrouting nicht. Es handelt sich eben um eine andere herangehensweise.
# Mit Nvda+Num/ zieht man die Maus zum Navigator-Objekt und kann dann mit Num/ einen Linksklick ausführen. Dies hat bei mir allerdings manchmal nicht zuverlässig funktioniert.
# NVDA kennt keinen Grafikbezeichner. Stattdessen liest er schlicht den Tooltip vor, wenn man sich durch die Objekthierarchie auf ein Werkzeug einer Symbolleiste bewegt. anstatt also auf dem Schirm nach dem Symbol zu suchen, verwenden sie die Objektnavigation zur Navigation zur Symbolleiste bzw. zum Werkzeug, dass sie anklicken möchten und aktivieren es mit Num-Eingabe. Das ist am Anfang vielleicht etwas umständlich, aber schon bald kennt man die Struktur der Anwendung und kann schnell navigieren.
# Die Navigation mit dem Navigator ist einfach zu merken: Die Tasten links, rechts, oben und unten zur Fünf also 4, 6, 8 und 2 Navigieren eben links, rechts, nach oben und zum ersten Kind im Objektbaum. Dazu muss jeweils die NVDA-Taste gedrückt werden. Das klingt Theoretisch, aber wenn Sie es z.B. im Explorer ausprobieren, wird schnell klar, wie es funktioniert. Bleibt noch anzumerken, dass die Objektstruktur der Anwendung oft nichts mit der Anordnung der Objekte auf dem Schirm zu tun hat. Eine Auflistung der Navigations-Tastenkombinationen erspare ich mir hier – das ist bereits im Handbuch und der Kurztastenreferenz so wie in der Tastaturhilfe geschehen. Die Tasten des Nummernblocks ohne NVDA-Taste lesen übrigens den Text Zeilen- Wort- oder Zeichenweise je nach Reihe des Blocks.
# NVDA verfolgt auf Wunsch die Maus, gibt ihre Koordinaten akustisch aus und man kann steuern, welche Informationen über ein Objekt vorgelesen werden, wenn man mit der Maus darüber fährt.
# Viele Fortschrittsbalken wird NVDA auf Wunsch akustisch verfolgen – unter Jaws kennt man so etwas nicht.
# Auf Webseiten muss man eingebettete Objekte wie Flash-Filme zunächst z.B. mit der Leertaste aktivieren. Fortan ist man in diesem Objekt “gefangen” und kann zwischen den Schaltern etc. navigieren. Zum Verlassen des objekts drückt man Strg+NVDA+Leertaste. Das klingt konsequent und führt aus meiner Sicht zu einer besseren Zugänglichkeit der eingebetteten Objekte.
# NVDA kennt nicht das große (und für mich unübersichtliche) Arsenal an Hilfsprogrammen unter JAWS. Vielleicht ein Nachteil, aber dem steht die Programmierung über Python (siehe unten) gegenüber.
# Es gibt noch eine Reihe anderer Tastenbefehle, die ich mir noch nicht merken kann. Hier hilft das Handbuch und die Liste der Tastenkombinationen.
== Aktueller Stand und Ausblick ==
Die Installation oder Aktualisierung von NVDA dauert nicht mehr als ein paar minuten. Dabei begleiten einen die gesamte Zeit während der Installation die zuletzt eingestellten Stimmeneinstellungen. Seit Version 2012.1 beherrscht NVDA ein automatisches Aktualisieren und zwar je nach dem, ob eine Release- Beta- oder sog. Snapshotversion verwendet wird.
Während unter JAWS die Scansoft Stephi Schlaftabletten verabreicht bekommt, quasselt sie munter für NVDA. Das erlaubt endlich das Verwenden einer etwas angenehmeren Stimme. Kleinigkeit, aber selbst die getunten JAWS-Stimmen, die eingeführt wurden, weil SAPI zu lahm war, haben’s unter JAWS nicht gebracht.
Allerdings ist mir auch aufgefallen, das die Verwendung einer Handytech-Braillezeile die Performance irgendwie reduziert. Das ist nur mein ganz persönlicher Eindruck. Kleinigkeit, aber irgendwie bekommt JAWS auf der Arbeit deshalb ab und an wieder seine Chance, weil ich irgendwie nicht schnell genug arbeiten kann.

Apropos Braillezeile: Auch hier verhält es sich etwas anders als unter JAWS. NVDA verwendet eine Art strukturierten Modus (so heißt das unter JAWS) und zeigt neben der aktuellen Zeile auch Informationen der übergeordneten Fenster auf der Zeile an. Ob das so wirklich hilfreich ist, kann ich nicht beurteilen. Mir persönlich ist der Flächenmodus lieber, aber das kann man unter NVDA nicht einstellen.

Die zwei getrennten Installationspakete von NVDA wurden in einem vereinigt, was gleichzeitig für alle Sprachen lokalisiert ist. Das bedeutet: Man packt das einmal auf seinen USB-Stick und kann sich spontan entscheiden, ob man die portable Version z.B. bei einem Kumpel verwenden möchte, oder ob eine dauerhafte Installation sinnvoll ist.

Wenn mir unter JAWS etwas nicht gefällt, mache ich nicht mehr den Versuch dies irgendwo zu melden – es kommt vermutlich sowieso nicht an. Unter NVDA erstelle ich ein Ticket und wenn es wirklich wichtig ist, spende ich etwas für die Umsetzung Immerhin kann ich den Status jeder zeit einsehen, die Entwickler bekommen direkt bescheid und wenn der Fehler behoben ist, kann ich am nächsten Tag mit einem aktuellen Installer überprüfen, ob das Problem wirklich korrigiert ist. Ich behaupte nicht, dass NVDA ohne Fehler ist, aber es ist transparent und ich bin gerne bereit Fehler zu melden.

Ein Highlight von NVDA ist sicher der Plugin-Mechanismus mit denen man ähnlich wie unter JAWS spezielle Anwendungsunterstützung oder Erweiterungen für allgemeine Funktionen installieren kann. So gibt es z.B. ein Plugin um auf einem Objekt eine optische Zeichenerkennung (OCR) auszuführen. Damit zieht NVDA mit JAWS 13 gleich. Eine Seite für solche Plugins findet man unter [[http://www.stormdragon.us/nvda/]]

Ein Hindernis für die noch zögerlichen Umsteiger dürfte die etwas andere Bedienphilosophie sein. Auch die Darstellung auf der Braillezeile ist gewöhnungsbedürftig.

Während das große Rätselraten darum, ob und wann JAWS und die anderen kommerziellen Screenreader Windows 8 unterstützen werden anhält, heißt es in den News zur aktuellen Betaversion von NVDA lapidar: Support für Windows 8 Metrooberflächen. Ich weiß nicht, ob es wirklich schon funktioniert, aber dafür würde eine Mail in der Entwicklerliste reichen – es ist immerhin transparent.

Währen JAWS eine eigene Skriptsprache ohne vernünftigen Debugger verwendet, verwendet NVDA Python – jene kryptische aber mächtige Programmiersprache, die NVDA selbst gebar. Python ist verbreitet, eine interpretierte und reflexive Sprache und erlaubt eine andere Art der Programmierung. Will sagen, der Screenreader dürfte für kompetente Entwickler deutlich leichter erweiterbar sein. Apropos Entwickler: Es gibt eine Bibliothek, die man in Anwendungen einbinden kann, um direkt mit NVDA zu kommunizieren. Wer will kann also, an allen üblichen Wegen vorbei eine Anwendung programmatisch zugänglich machen. Das ist sicher nicht ganz einfach, aber wenn die verwendeten Frameworks etc. nicht die notwendige Unterstützung für Screenreader bereitstellen, kann dies ein vergleichsweise einfacher Weg sein.

Während die Lokalisierung (zumindest in früheren Versionen) von JAWS ungefähr bis zur nächsten englischen Version brauchte, wird sie unter NVDA parallel zur Entwicklung spätestens zum Release gepflegt. Und wem wirklich noch eine ausgefallene Sprache fehlt, der kann sich seine eigene Übersetzung erstellen und damit das projekt unterstützen.

Mittlerweile gehen die Anwendungen, die nur mit Screenreadern mit einem Grafiktreiber bedienbar sind stark zurück. Das ist auch gut so, denn bei der Virtualisierung von Rechnern, können diese Treiber nicht mehr korrekt installiert werden – oder es gibt Probleme dabei. Konkret muss ich lediglich mit einem Zeiterfassungsprogramm arbeiten, dass von JAWS besser vorgelesen wird als von NVDA.

Der Vorsprung des Marktführers JAWS ist arg zusammengeschmolzen und die Unterschiede sind nur noch für einige bestimmte Anwendungen am Arbeitsplatz relevant. Damit will ich nichtsagen, dass JAWS & co. überflüssig währen – Vielfalt ist immer wichtig, aber objektiv können die kommerziellen Reader den enormen Kostenaufwand immer schwerer rechtfertigen. Statt ein entspr. Update zu kaufen, sollte man überlegen, eine ähnlich hohe Spende bei NVDA zu tätigen. Legen Leute zusamen, wäre es sicher möglich, ein bestimmtes dringend benötigtes Feature umsetzen zu lassen. Und wem das nicht reicht, der kann jeder Zeit selbst Hand anlegen – allerdings braucht es einiges an Einarbeitung die komplexe Software und das Design zu versteh. Ich bedaure es sehr, dass ich nicht die Kraft habe, mich abends an der Weiterentwicklung zu beteiligen.

Nun müssen die Anwender entscheiden, welchen Weg sie gehen möchten. Vielleicht gibt es in Zukunft professionelle Schulungen für NVDA und ein Anpassungsgeschäft – was spricht dagegen, dass jemand für eine Anpassung für einen Arbeitsplatz Geld bekommt und diese im Gegenzug in das NVDA-Projekt einspeist?

== Nachtrag ==
* Mitlerweile funktioniert die Papenmeier Trio gut mit NVDA.
* Der Treiber der Zeile wird auch nicht mehr bei einem JAWS-Update beschädigt.
* Outlook 2010 kann ich zwar zu hause mit NVDA nutzen, am Arbeitsplatz friert NVDA aber bei einer geöffneten Mail ein. Woran das liegt konnte ich noch nicht ergründen. Das hält JAWS immer noch im Spiel.
* Ich musste nur deswegen von JAWS 12.0 auf JAWS 14.0 kostenpflichtig aktualisieren, weil JAWS 12.0 in einer Eingabeaufforderung unter Windows 7 keinen Pfeilrauf (die Taste) verträgt. Ich finde es eine unverschämtheit, dass solche Blocker nicht kostenfrei korrigiert werden.

Demo meines AX3000g Gittarreneffektboards

Unter dem folgenden Link habe ich mal eine Session mit meinem AX3000g abgelegt. Es zeigt:
* Das Gerät klingt echt gut und macht viel Spaß.
* Gut, dass ich Informatiker und kein Musiker geworden bin.
* Ein Effektboard reicht nicht – man muss auch das Instrument spielen können.

Hier nun der Link zum Lärm:

Anmelden bei Google Analytics mit NVDA und Mozilla Firefox

Um diesen Blog weiter zu optimieren wollte ich mich bei Google analytics anmelden. Allerdings scheiterte das ganze mit dem Internet Explorer 8 bereits am Captcha bei der Kontowiederherstellung. Mit der Kombination aus NVDA, Firefox und Webvisum hingegen, wurden die Captchas gelöst (Danke an das Webvisum-team) und alles andere verlief reibungslos. Nicht einmal eine Braillezeile hatte ich zur Kontrolle. Offenbr ist das Duo aus Firefox und NVDA mittlerweile wirklich gut ausgereift.
Danke an zwei so tolle Opensource-Anwendungen. Ich sollte wohl mal wieder spenden.

== Erste Schritte auf Google Analytics ==
Nachdem der Tracking code auf diesem Blog installiert war, musste ich etwas wrten, bis analytics zugegriffen hat und die ersten Daten präsentieren konnte. Die “Neue Version” ist anscheinend mit Firefox nicht wirklich gut bedienbar. Zumindest habe ich keine meiner Daten über die Webseite gesehen. Auf der “alten Version” war es dagegen ganz einfach. OK zwei Besuche und fünf Zugriffe bzw. abgerufene Seiten sind nun wirklich kein Brüller.

== Jetzt geht’s vorbei mit dem Hai ==
Das Erlebnis mit NVDA und Firefox hat mich ermutigt. Ist der Browser gegenüber IE8 doch aktueller – den IE kann ich nicht aktualisieren, weil Zoomtext sonst Probleme bekommt. Immerhin habe ich die Erkundung der Daten auf Analytics nun mit Firefox und NVDA vorgenommen.

Pomodoro – eine Schwimmweste im Meer der Arbeit

I Use the Pomodoro Technique
Vor etwa zweieinhalb Jahren, habe ich ein Buch gefunden, dessen Titel sinngemäß sagte: “Merh schaffen in weniger Zeit”. Das fand ich super, weil mir die Arbeit im Büro ziemlich stressig und sehr viel vorkam. Heutzutage kann ich auch bei großem Stress relativ ruhig bleiben und keine der vielen Aufgaben oder Dinge die ich erledigen wollte geht verloren.
== Was ist das für eine Schwimmweste ==
Die sog. Pomodoro-Technik http://www.pomodorotechnique.com basiert auf der Erkenntnis, dass der Mensch eine ganze Menge Dinge tun kann, so lange er nicht versucht, sie gleichzeitig zu tun. Wissenschaftliche Studien belegen das auch Frauen, die ja oft behaupten multitaskingfähig zu sein, bei mehreren Aufgaben gleichzeitig die Konzentration aufteilen müssen. Dabei zeigt sich auch, dass das Wechseln zwischen Aufgaben für das Gehirn aufwändig ist. Pomodoro ist letztlich nichts anderes als ein Zeitscheibenverfahren, bei dem man immer genau eine Aufgabe/Tätigkeit ausführt und in festen Abständen die Chance hat, diese zu wechseln. Neue Aufgaben/Tätigkeiten werden dabei sofort in einer Liste aufgenommen, damit sie nicht verloren gehen und aus dem Kopf gelöscht werden können. Weitere Schritte des Prozesses und Listen sorgen dafür, dass man sich selbst besser kennenlernt und seine Arbeitsweise Stück für Stück optimieren kann. Immerhin geht es ja mehr und mehr darum klare Aussagen darüber treffen zu können, was zu welchem Zeitpunkt fertig werden kann und was nicht.
== Was Pomodoro nicht ist ==
Pomodoro ist kein Versuch, den Menschen zu noch mehr Arbeit zu bewegen. Es geht auch nicht darum, durch irgendwelche Bewusstseinsveränderungen die Arbeitsleistung zu steigern – solche Dinge kommen eher aus einem Sektenumfeld. Es ist einfach eine ausgeklügelte Arbeitsorganisation, die an die eigenen Bedürfnisse angepasst werden kann. Die Methodik ist nicht kompliziert und benötigt nur einen Wecker, einen Zettel und einen Stift – also nichts, was die Anwendung kompliziert machen würde. Pomodoro nimmt einem keine Arbeit ab, sondern organisiert sie.
== Meine Erfahrungen ==
Zu Beginn war es erst etwas ungewohnt, jeden Morgen eine Tagesplanung vorzunehmen. Immerhin geht es darum zu entscheiden, was heute getan wird, und was man nicht schaffen wird. Ein Ziel der Methodik besteht darin, eine nachhaltige Arbeitsgeschwindigkeit zu erreichen. Überstunden sind für max. zwei Wochen erlaubt. Wer sich vielen Aufgaben konfrontiert sieht, muss nun die schwere Entscheidung fällen, was er tun muss und kann an diesem Tage. Das kann auch bedeuten, dass man Entscheidungen eskalieren muss, um zu entscheiden A oder B. Eine Tagesplanung ist eine Art Versprechen gegenüber sich selbst.

Der nächste etwas ungewohnte Schritt war das konzentrierte Arbeiten während eines sog. Pomodoro. Ein Pomodoro ist immer 25 Minuten lang. In dieser Zeit wird ausschließlich an einer einzigen Tätigkeit/Aufgabe gearbeitet. Anschließend wird eine kurze Pause eingelegt, die dabei helfen soll, das Gehirn zu regenerieren, das gelernte bzw. Erarbeitete einsinken zu lassen und nicht zu letzt sich auf die neue Aufgabe einzustellen. Eine der Grundannahmen bei Pomodoro besteht darin, dass Taskwechsel für einen Menschen sehr teuer bzw. anstrengend sind. Jeder, der einmal versucht hat verschiedene komplizierte Dinge parallel zu machen kennt das.

Nachdem ich festgestellt hatte, das bei mir relativ wenig Unterbrechungen während der Pomodori auftraten, habe ich die Abbrüche nicht mehr notiert – solche Metriken sind teil des Prozesses bzw. mögliche Erweiterungen. Dazu gehörte die Erfahrung meiner Kollegen, dass ich auf eine Anfrage nicht sofort reagiert habe, sondern versprochen habe zurückzurufen, nachdem der aktuelle Pomodoro beendet war. Hält man das wirklich ein, sind viele Anfragen gut zu organisieren und abrupte Taskwechsel werden möglichst vermieden.

Irgendwann stellte ich fest, dass ich deutlich entspannter die Arbeit verlassen konnte. Egal wann eine Aufgabe/Tätigkeit bei mir landet, sie geht nicht mehr verloren. Morgends kann ich mit den Tätigkeiten bzw. der Liste vom Vortag beginnen und daraus die nächste Tagesplanung ableiten. Bei der Priorisierung hat sich bei mir ein klarer und fast unumstößliches Gesetz herausgestellt: Abhängigkeiten so früh wie irgend möglich auflösen! Das heißt, Arbeiten auf die andere warten haben immer vorrang vor anderen z.B. Fehlerkorrekturen. Es gibt sicher ausnahmen von der Regel, aber meistens sind auch dass wieder nur Abhängigkeiten.

Eine zentrale Erfahrung für mich war, dass es sich wirklich lohnt, dass frei erhältliche Buch mind. einmal vollständig zu lesen. Die Grundidee zu verstehen ist das Eine, das vollständige Umsetzen der Technik und damit Profitieren von den Vorteilen ist das Andere.

Interessanterweise verdient der Erfinder der Technik mittlerweile damit Geld, obowhl das Buch frei und darauf ausgerichtet ist, sich die Technik selbst anzueignen.

== Was meinen Andere dazu ==
Ich will offen sagen, dass ich bislang nur wenige meiner Kollegen “bekehren” konnte. Viele empfinden das Ticken eines Weckers als Störung. Wer regelmäßig im Bus oder der Bahn zur Arbeit liest, weiß, wie schnell bekannte Geräusche in Vergessenheit geraten. Durch die Aufgabenliste und den Status der Aufgaben/Tätigkeiten kann ich zu jeder Zeit eine Aussage zu meiner Auslastung treffen und wann eine bestimmte Aufgabe erledigt werden kann. Das macht einen irgendwie vom Gejagten zum Jäger. Ein anderes Gegenarbument ist, dass sie Supportanfragen direkt beantworten mmüssen, oder dass sie die Arbeit nicht in dieser Form planen können.

Ich persönlich glaube, dass sich in den meisten Fällen Pomodoro nutzen ließe, wenn man sich und die Anfragenden darauf einstellt. Dabei ist Zuverläßigkeit ein wichtiger Punkt. Wenn man sicher sen kann, in kurzer Zeit zurückgerufen zu werden, ist es kein Problem ein paar Minuten zu warten. Kommt der Anruf nicht, sinkt das Verständnis und das Vertrauen sofort und man wird versuchen anders aufzutreten.

Ein weiterer Grund, warum sich nicht jeder für Pomodoro begeistern kann könnte sein, dass nicht jeder diese Form der Transparenz und Konsequenz möchte. Wem gefällt es schon, wenn er sich eingestehen muss, dass bestimmte Aufgaben bei normaler Arbeitszeit nicht umsetzbar sind? Aber genau darum geht es und auch darum daraus Schlüsse zu ziehen, die die eigene Gesundheit schützen.

== Und wann sollte man die Technik nicht anwenden ==
Das Buch nennt u.a. Freizeit und bei lebensgefährlichen Situationen – Ich hole gleich Hilfe, aber ich muss erst meinen Pomodoro zu Ende bringen.
Es ist wie bei allen Werkzeugen: Man muss sich überlegen, wo und wann ein Einsatz vernünftig ist und dem Umfeld gerecht wird. Einer der größten Fehler wäre es allerdings, wenn man vor lauter Arbeit nicht die Zeit findet, sich damit zu beschäftigen. Für so etwas gibt es sog. Cheat Sheets – also eine Art Kurzanleitung, falls die Zeit für längeres Lesen fehlt.

== Was hat sich nun konkret bei mir geändert? ==
* Verläßliches und einfaches Tracken von Aufgaben
* Effizienteres Arbeiten, weil der Kopf frei ist egal wie viele Dinge noch zu tun sind
* Aufgaben werden rechtzeitig fertig und erhalten falls Notwendig die entspr. Priorität
* Weniger Stress
* Effizientes Arbeiten an einer Aufgabe auch wenn verschiedenste Tätigkeiten an einem Tag abgewickelt werden müssen.

Unterstützung für Windows 8 schon länger in NVDA

Offenbar ist die Unterstützung von Windows 8 schon länger in NVDA (Non Visual Desktop Access geplant. Bereits in der letzten Version 2011.3 wurden erste Fixes vorgenommen. Ein Test steht freilich noch aus. Es ist gut, wenn ein Freeware-Screenreader sich an der Front auch mit solchen neuen Systemen messen lassen kann. Immerhin gibt es von Freedom Scientific noch keine äußerung zu Windows 8. Window Eyes soll auch unter Windows 8 laufen. Das berichtet ein Podcast auf www.blindcooltech.com
Hier nun der Link zum Blog-Beitrag der auf die Windows 8 Unterstützung in NVDA hinweist:

NV Access – Blog: NVDA 2011.3 Released.

Widgets in WordPress 2011 können mit JAWS 11 und Internet Explorer erst mit spezieller Option bearbeitet werden.

Das Aktivieren von Widgets im Theme WordPress 2011 (aktuelle Version) scheint mit JAWS 11 (Screenreader) und dem Internet Explorer 8.0.6 nicht möglich. Mit dem Browser FireFox dagegen werden über den Überschriften der Widgets Links zum Einfügen angezeigt. Das Einfügen bzw. Entfernen von Widgets ist mit JAWS möglich, wenn man zuvor die Optionen einblendet (das findet sich direkt über der Widgets-Überschrift). Anschließend kann man den Zugänglichkeitsmodus aktivieren. FireFox meldet dies offenbar eigenständig an die Seite.

Freies Blindenspiel mit richtig Action

= Blind Computer spielen – wie geht das? =
Sie fragen sich, wie man denn blind Computerspiele nutzen kann. Soll man etwa einfach draufholzen und hoffen, dass man einen Gegner trifft? Nein, so schlimm ist es nicht. Die meisten geeigneten Spiele sind speziell für blinde Menschen programmiert. Allerdings ist es durchaus Möglich, ein Spiel für alle nutzbar zu machen. Im folgenden erkläre ich kurz worauf es ankommt und stelle anschließend aus meiner Sicht gute Spiele vor.
= Was braucht ein blinder Anwender zum Spielen? =
Ohne sicht auf den Schirm muss die gesamte Orientierung über Geräusche erfolgen. Viele Spiele setzen zwar bereits Sourroundsound für Objekte und Gegner ein, allerdings eher als Dekoration denn als Hauptorientierungsmittel. Folgende Punkte sollten bei der Ausgestaltung berücksichtigt werden:
* Alle relevanten Objekte – auch Wände etc. müssen sich irgendwie eindeutig hörbar machen. Das kann auch durch Manipulation anderer Geräusche geschehen – z.B. wenn das Laufgeräusch gedämpft wird etc.
* Unterschiedliche Objekte brauchen unterschiedliche Geräusche. Es müssen nicht alle Instanzen unterschiedliche Geräusche haben, aber die einzelnen Klassen – also Wände, Türen, Schlüssel etc.
* Die Objekte im Fokus z.B. ein Gegner sollte auch akustisch im Fokus stehen – es macht keinen Sinn das die Tür hinter dem Monster laut ruft, man aber zuerst das Monster lokalisieren und töten muss.
* Geräusche, die hinter dem Spieler von Objekten erzeugt werden, müssen ggf. anders dargestellt werden z.B. mit einem unterlegten Trommeln. Es hat sich ein Stereokopfhörer als beste Möglichkeit zur Wahrnehmung erwiesen. Also lieber Stereosound mit Anpassungen für Vorn und hinten als reiner Sourroundsound.

Viele Spiele werden gerade durch die Action in Echtzeit erst interessant. Für blinde Spieler gilt das genauso. Mit kleinen Einschränkungen ist echtzeitaction kein Problem:
* Müssen Objekte oder Ziele aus einer größeren Liste ausgewählt werden, was optisch schnell erledigt ist, hat es sich als hilfreich erwiesen die Uhr im Spiel während der Auswahl oder des Studiums feindlicher Objekte anzuhalten. Es wird also der Zeitverlust beim Erfassen der komplexen Situation ausgeglichen. Bei einem Multiplayerspiel ist dies freilich keine Option. Im Zweifelsfall: Bildschirm aus und selbst ausprobieren.
In einigen Situationen werden blinden Spielern zusätzliche Hilfsmittel angeboten z.B. bei der angepassten Quakevariante. Allerdings geht es auch hier darum den Nachteil auszugleichen und nicht darum Vorteile herauszuholen.
= Gute Beispiele =
Die mir bekannten Beispiele stammen leider ausschließlich aus der englischsprachigen Scene. Allerdings sollte das Anwender ohne komplexe Englischkenntnisse nicht abschrecken. Oft werden nur wenige Begriffe gebraucht und Anleitungen kann man übersetzen lassen.
== Eine große Auswahl an freien Spielen ==
Jim Kitchen, selbst ein blinder Programmierer, verbringt offenbar einen sehr großen Teil seiner Zeit damit Spiele zu programmieren. Die Tatsache, dass er sich sehr viel Mühe z.B. bei den Sounds etc. gibt, spricht für seinen Spaß. Damit nicht genug sind alle seine Spiele freeware und auf eine einfache Art zu installieren. Er bietet denn auch ein eigenes Startmenü für alle seine Spiele an, sodass man leicht von Spiel zu Spiel wechseln kann. Seine Webseite ist unter [[http://www.kitchensinc.net]] zu finden. Als einer der wenigen Anbieter hat er auch Erwachsenenspiele mit erotischen Anstrichen im Programm.
== Kommerziell zu vernünftigen Preisen ==
David Greenwood ist mit seiner Firma gmagames [[http://www.gmagames.com]] schon lange dabei. Seine Spiele sind zu Preisen ähnlich normaler Computerspiele zu haben. Sie zeichnen sich durch komplexe und anspruchsvolle Action und Handlung aus – man braucht einiges an Zeit um sein Geld zu verspielen. Von dort stammt auch eine Freeware, die als Pendant zum bekannten und beliebten Minesweeper fungiert.
== Weitere Links ==
Es gibt och diverse Links mit Computerspielen und die Scene ist stets im Wandel. Ein guter Überblick ist unter [[http://www.pcsgames.net/game-co.htm]] zu finden.
= Jump-And-Run mit Action =
Nun aber zum Spiel, dass mich bewog, einen Artikel in meinen Blog zu schreiben: Jim Kitchen hat jüngst Authm erstellt. Dabei befindet man sich in einem klassischem Jump-And-Run und bereits das erste Level hat’s ordentlich in sich. Es ist faszinierend mit welchen einfachen Mitteln ein forderndes Spiel geschaffen werden kann.

Mit einer transparenten Entwicklerhilfe und verbreiteten Programmiersprache der Konkurrenz dicht auf den Färsen

NVDA 2011.1 Developer Guide.
Das freie Screenreaderprojekt Non Visual Desktop Access (NVDA) macht seit einigen Jahren immer wieder auf sich aufmerksam. Ohne viel Tamtam hat sich das Tool zum zweiten Screenreader hinter JAWS geschlichen. Die Erfolgsgründe dafür sind sicher vielfältig, aber zu aller erst sollte wohl Transparenz genannt werden.
Während jeder Versionssprung bei JAWS vielen Anwendern berechtigterweise Kopfschmerzen bereitet, ob hinterher noch alles so läuft wie vorher, verläuft ein NVDA-Release i.d.R. ohne viel Aufregung. Der Vergleich hinkt sicher, weil der Verbreitungsgrad ein anderer ist etc. aber trotzdem: Ein NVDA-Release ist einfach eine Weiterentwicklung, ein JAWS-Update kann zur echten Hürde werden.
Verfolgt man die Entwicklerliste von NVDA und ist man etwas kundig in der professionellen Softwareentwicklung, so wird schnell klar: Das Projekt wird von Leuten geführt, die wissen, wovon sie reden, und wie man ein gute Softwareentwicklung betreibt. Das beginnt bei einer offenen Entwicklerliste über einen frei zugänglichen Bugtracker und täglichen Builds. Hat man einen Fehler identifiziert, und ihn ggf. mit den Entwicklern diskutiert, so kann man ihn als Ticket eintragen. Wird der Fehler bearbeitet z.B. korrigiert, so erhält der Tester eine Nachricht und kann umgehend den nächsten Build testen. Das noch ohne die eigene Installation zu zerschießen – er kann die portable Version verwenden. Er kann nun umgehend prüfen, ob die Korrektur in Ordnung ist oder den Ball an die Entwickler zurückspielen – und die wissen noch, was sie gestern gefixt haben. Abgesehen davon, sind die durchgeführten Änderungen über die Versionskontrolle nachvollziehbar.
Der resultierende Effekt besteht letztlich darin, dass die Einstiegshürde für Tester deutlich geringer als bei einem JAWS-Beta-Test ist – dort gibt es keinen Zugriff auf einen Bugtracker, der zugänglich wäre etc. Der Eine oder Andere kommt evtl. auch dazu sich an der Entwicklung zu beteiligen was mit der Versionskontrolle etc. keine große Hürde ist.
Wie deutlich NVDA sich von JAWS etc. abhebt wird deutlich, wenn man den oben verlinkten Developer Guide liest. Als Scriptingsprache wird Python verwendet. Das ist eine mächtige und etablierte, wenn auch etwas seltsame Programmiersprache. Damit nicht hgenug, hat man eine vernünftige Schnittstelle geschaffen, um auf die durch NVDA indentifizierten Oberflächenelemente einer Anwendung zuzugreifen. Das bedeutet: Es ist für einen Scripter egal, ob ein Button aus ener Java-Anwendung oder aus einer MSAA-Schnittstelle stammt – die Schnittstelle ist gleich. Hat man also die Lernkurve einmal überstanden, ist die Programmierung deutlich leichter.
Die Tatsache, dass eine integrierte Pythonconsole das Erproben socher Codefragmente erlaubt, zeigt, das hier an Vieles gedacht wurde.
Auch wenn JAWS noch ene Weile vorne liegen wird und NVDA an vielen Punkten noch nicht vollständig mithalten kann: Es wird wohl eine Frage der Zeit sein, bis der Vorsprung schmnilzt. Würden viele JAWS-Nutzer nur einen Bruchteil ihrer JAWS-Lizenzkosten als Spende an NVDA überweisen, so hat das Projekt beste Chancen, den Screenreadermarkt zu beleben.

Plant UML hilft beim Design

Plant UML – UML Diagramme erstellen ohne viel Geklicke

Das Tool zu finden unter PlantUml sorgt dafür, dass man sich beim Design von Softwaremodellen auf den Inhalt konzentrieren kann. Verwunderlich ist das nicht: Immerhin programmieren Entwickler auch ihre Anwendungen, anstatt tonnenweise Befehle zusammenzuklicken. Solche Ansätze gibt es zwar, aber die IDEs sind immer noch mit Hotkeys und Codevervollständigung gepflastert. PlantUML besticht durch seine einfache für jeden Entwickler sofort erfassbare Syntax. Durch die Möglichkeiten zur Einbindung in word, Doxygendokumentationen oder anderen Dokumentformaten bekommt man die Diagramme dorthin, wo sie hin sollen.

Plant UML ist keine Modelling-Umgebung

Einer der Nachteile ist die Tatsache, dass alle Diagramme unabhängig voneinander sind und nur der Autor die Zusammenhänge kennt. Bei größeren Modellen und Projekten ist daher viel Organisation und Wartung angebracht. Aber man kann sich vorstellen, das später die Sprache so erweitert wird, dass Diagramme einander referenzieren und Einbinden können. Dann würde man sein Modell genauso programmieren wie den Code selbst.

Brücke für blinde Menschen zu UML

Bislang kam, wenn überhaupt, bei der Ausbildung blinder Informatiker und Programmierer eine individuelle textuelle Notation für UML-diagramme zum Einsatz. Hier ging es darum, die wesentlichen Teile eines Diagramms zu beschreiben – oder zu umschreiben je nach Aufgabenstellung. Solche Ansätze sind aus mehreren Gründen ungeeignet:

  1. Es gibt keine einheitliche Notation und sie sind somit für die Beschreibung von Bildern in Literatur ungeeignet.
  2. Es gibt keine Möglichkeit zu verifizieren, dass eine Beschriebung korrekt ist.
  3. Die Notationen sind oft sperrig und können später nicht im Beruf eingesetzt werden – und darum geht’s ja schlussendlich

Plant UML löst diese Probleme mit der einfachen Syntax und der Möglichkeit binnen Sekunden ein Diagramm aus der Notation zu erstellen. Die Sprache umfasst bislang sieben Diagrammtypen, die zu den am häufigsten genutzen Diagrammen in der Softwareentwicklung gehören.

Grafische Darstellung

Das Rendering also das Zeichnen der Bilder übernimmt das Tool Graphviz, dass bereits in Doxygen eingesetzt wird um automatisierte Klassendiagramme zu erstellen. Plant UML hat auch bei produktiven Projekten und bei komplexeren Aktivitäts, Klassen- und Sequenzdiagrammen optisch ansprechende Diagramme erstellt. Vielleicht nicht so optimal wie wenn man sie manuell erstellt, aber dafür reproduzierbar und in sehr kurzer Zeit.