Ozcode’s export object(s) feature, a first review (part 1)

Nearly half a year ago, in November 2015 I wrote a first article about a feature of the OzCode, an awesome debugging tool that plugs into Visual Studio and enhances it by many features in the debugging field I don’t want to miss again.

Recently Version 2.0 of OzCode has been published and today I finally found the time to test it in more depth. The whole article is based on OzCode version

For testing I wrote a very small test project with some XUnit tests. Unit testing as such is not necessary in this case, but these tests are easy to run as a single, separated piece of code, so it was the easiest way to go. The test project is published on GitHub as ozcode-export-test.

When OzCode 2.0 was announced on twitter and I asked for a test version, they finally answered (fixed the link here that was a wrong shortlink on Twitter due to missing space):

@jongleur1983 Wait is over http://o.oz-code.com/announcing-ozcode-v2.1-beta. Doesn’t address the issues you mentioned in your post yet, but we will be looking into that.

So I do not expect any issue mentioned in my first post to be addressed, but nevertheless the feature might be quite useful, so let’s give it a try.

As this article get’s lengthy again and it’s past midnight, I decided to split it, so this post is about single-object exports only for now, I’ll try to write a next one about exporting object graphs assembled from more than one object. Ozcode’s export object(s) feature, a first review (part 1) weiterlesen

Wrapping Arbitrary HTML to Assign a common Universal Attribute

A few days ago I checked the HTML validity of my own blog. I have to admit that I didn’t do that after I wrote the jugglingPostLang plugin (wrote about that in my blog post Simple Language-Defined Posts in WordPress) for WordPress. I realized that my plugin produced invalid html in many cases, so that was an issue:

The issue is, that <span> elements forbid block level content, while <div> elements are not allowed as a child of any element that only accepts phrasing content (which is roughly running text and what’s inside).

To solve that I read through the html specifications to find a solution but unfortunately there isn’t a simple solution on the horizon.

In the following I’m going to summarize the html specification details on the topic and give a rough sketch on the algorithm to determine what’s a valid wrapping node. Wrapping Arbitrary HTML to Assign a common Universal Attribute weiterlesen

Open Question: How to always run a custom tool in Visual Studio on Project Build?

In a project at work we have some T4 templates running in a Visual Studio (2015) environment. Those templates should run whenever some dependent files have changed. As it’s kind of a compilation step, a best fit, I thought, would be to run the templates on every (re-)build of the project, but how to achieve that? Open Question: How to always run a custom tool in Visual Studio on Project Build? weiterlesen

HTML5-Audioplayer für 1LIVE

In einem anderen Artikel habe ich bereits darüber geschrieben, wie unnötig die großen deutschen Medienanstalten bis heute auf den Flash-Player als Abspielsoftware für Medieninhalte setzen.

Die Audio-Streams auf einslive.de habe ich mir mal etwas genauer angesehen. HTML5-Audioplayer für 1LIVE weiterlesen

Flash-Zwang beim öffentlich-rechtlichen Rundfunk

Vor einigen Tagen habe ich Windows frisch installiert. Wie üblich kommt dann die wichtigste Software zuerst, weniger Wichtiges kommt erst später, oder fällt dabei letztlich weg, weil ich feststelle, dass ich es doch nicht benötige.

Diesmal traf es (beinahe) Adobes Flash-Player: Zunächst hatte ich nur etwas weniger Werbung im Netz (obwohl sich hier offenbar viele Werbetreibenden mittlerweile von Flash abgewandt haben oder zumindest Alternativen ausliefern).

Größere Probleme hatten interessanterweise vor allem der öffentlich-rechtliche Rundfunk. Flash-Zwang beim öffentlich-rechtlichen Rundfunk weiterlesen

Simple Language-Defined posts in WordPress

For different audiences I write blog posts in different languages. Developers usually understand English and often even talk in English, it’s their lingua franca of the programming domain.
On the other hand other articles are about more local topics, so their target audience is mainly Germans. Here I prefer writing in my mother tongue. Unfortunately there seems to be no easy and simple solution to define the language per article in WordPress, so I considered to write one myself.

The plugin is available for download on github now.

Read further for more details on What it does, How it is done, Why I did it and What could be added. Simple Language-Defined posts in WordPress weiterlesen

Customized WordPress-Template for Category-Subtree

For the Advent calendar categories I wanted to have a custom template that applies to all categories below the Adventskalender category (that one included).

WordPress has a great Template system, using inheritance between templates, as shown in the Codex. Utilizing this system it is possible to customize all category pages or one category page in particular – but there seems to be no way to customize a set of categories based on the category hierarchy.

On the other hand WordPress contains a function to get a Breadcrumb trail from the root to the current category. For this function, get_category_parents() no non-grapical equivalent seems to exist unfortunately.

On the other hand the code is quite simple: Start at the category of your choice and recursively get the parent category up to the root.

My current solution is based on a fixed „root“ category, as that is what I want to have (more ideas on how the template system could be extended nicely see below).

My solution utilizes the action hook  ‚category_template‘ which is not documented unfortunately in the codex (although listed in the filter reference). The following is the code listing of the function:

function get_advent_category_template( $archive_template )
  // get the category:
  $catId = get_query_var('cat');
  $found = false;

  $yourcat = get_category($catId);
  do {
    if ($yourcat->slug == 'adventskalender')
      return dirname(__FILE__).'/category-adventskalender.php';
    $yourcat = get_category($yourcat->parent);
  } while (true);

  // not found in the parent hierarchy, return the default template:
  return $archive_template;

The parameter of this function is the default template that would be applied without the hook implemented here. We have to detect if we’re in a matching category and if so, overwrite that template by returning our customized one. Therefore the loop from the current category up to the root category and search for our anchor category which is the root for the categories we want to apply the custom template for.

If found, we return the custom template file, otherwise we return the default one.

Now this function has to be registered, and that’s it:

add_filter( 'category_template', 'get_advent_category_template' ) ;

How the WordPress Template system could be extended

When I stumbled over this issue I asked in the WordPress IRC channel after not seeing a proper solution, where I was told that it is a quite common problem, and more people asked for a solution in the past.

In fact it would be quite easy to extend the WordPress template system by another template „class“ in the second line of the graphical overview. Inserting another variant between category-$id.php and category.php would fit nicely from a logical point of view.

A Category archive that is defined for a single category is preferred (left of the new one), but the tree-based category template (the new one) is preferred over the generic category template.

Zahlen formatieren im Web

Anfang der Woche stolperte ich über eine Auswertung zu OSM-Adressen von Simon Poole. Wie das bei statistischen Auswertungen so üblich ist, dominieren dabei Tabellen und Zahlen.

Gerade große Zahlen sind aber schnell schwer zu lesen. Wie viele Nullen hat 1000000 genau? In der Typographie werden Zahlen deshalb nicht einfach Ziffer für Ziffer mit identischem Zeichenabstand gesetzt, sondern gesondert behandelt. Ein paar Beispiele für eine Million:

  • 1000000
  • 1.000.000
  • 1 000 000
  • 1’000’000
  • 1,000,000

Dies direkt so anzugeben hat jedoch diverse Nachteile.

  1. Beim Kopieren von Tabellen wird der Inhalt insgesamt kopiert. Kopiert man insbesondere aus dem Web in Tabellenkalkulationsprogramme wie Calc oder Excel, so werden da aufwendige Algorithmen oder Handarbeit notwendig, um Zahlen deutlich als solche zu erkennen. Insbesondere sind 1,001 sowie 1.001 je nach Herkunft ungefähr eins oder knapp über tausend.
  2. Auch beim Lesen ist die Verwendung von Punkt oder Komma schwierig, weil nicht eindeutig.
  3. ungeschützte Leerzeichen wären notwendig, um einen Zeilenumbruch innerhalb der Zahl zu verhindern.
  4. Gerade bei großen Tabellen ist die durchgängige Formatierung aufwändig.

Betrachtet man Zahlen mit Nachkommastellen, tauchen zusätzliche Herausforderungen auf. Um untereinander stehende Zahlen schnell vergleichen zu können, wäre eine Ausrichtung wünschenswert, bei der das Komma aller Zeilen an der gleichen Stelle steht. In Tabellenkalkulationsprogrammen wird dies üblicherweise erreicht, indem die Anzeige auf eine feste Anzahl von Nachkommastellen konfiguriert wird: zusätzliche Ziffern werden abgeschnitten, fehlende Ziffern in Form von Nullen angehängt.

Natürlich kommt einem bei all dem sofort CSS in den Sinn. Sollten Stylesheets nicht in der Lage sein, auch die Formatierung von Zahlen anzupassen? Tatsächlich stößt man bei der Suche im Netz auf einen früheren Entwurf in der Richtung: Im Wiki der CSS-Working-Group vom W3C.

Die aktuelle Liste von Standards und Entwürfen vom W3C enthält jedoch kein Modul mit entsprechenden Angaben.

Um dieses Problem anzugehen (und anstatt für meine letzte Prüfung zu lernen) habe ich ein Modul für jQuery geschrieben. Eine Beispielseite zeigt der folgende iframe:

Wie funktioniert das Plugin?

Zunächst wird mit letteringjs dafür gesorgt, dass beliebige Zeichen mit CSS-Selektoren zugänglich sind. Lettering.js kapselt dazu jeden einzelnen Buchstaben von gewünschten Elementen in ein entsprechend klassifiziertes <span>-Element. Die Klassen (char0, char1,…) werden allerdings im Folgenden gar nicht mehr genutzt. Vielmehr lassen sich die einzelnen Zeichen mit CSS über die Pseudoklassen :nth-child(n) und :nth-last-child(n) ansprechen. Durch die Möglichkeit, den Platzhalter n zu verwenden, ist dies deutlich einfacher als der Weg über die einzelnen Klassen.

Zunächst werden aber die per lettering zerlegten Zeichen klassifiziert und dann gruppiert: Als Klassen gibt es das Vorzeichen, Ziffern, das Komma und Einheitenzeichen. Heuristisch wird dabei davon ausgegangen, dass die Einheit mit der ersten nicht-Ziffer (nach dem Komma, falls nötig) beginnt.


Um jeweils drei Ziffern zu gruppieren, wird per CSS-Pseudoklasse :before das entsprechende Trennzeichen generiert. Per default ist dies ein Leerzeichen, das sich aber per Überladung der CSS-Klasse sowie durch Angabe beim Aufruf des Plugins überschreiben lässt.

Für die Zahl vor dem Komma wird :before auf :nth-last-child(3) angewandt, für die Nachkommastellen auf :nth-child(3). Hier wird dann das Trennzeichen über die CSS-Property content generiert.

Ausrichtung am Komma

Um einheitlich am Komma ausrichten zu können, wird per Javascript zunächst die maximal notwendige Breite der Nachkommastellen ermittelt. Das Ergebnis wird dann dem mit display: inline-block formatierten Block der Nachkommastellen zugewiesen. Hier entsteht jedoch ein Problem, das dexter entdeckte: Skaliert man im Browser nur den Text, aber nicht die gesamte Darstellung, so werden Absolute Werte wie solche in Pixeln nicht mitskaliert.

Um dieses Problem zu lösen muss die notwendige Breite in Schrift-relativen Größenangaben wie em angegeben werden. 1em entspricht dabei nach Spezifikation der Kantenlänge eines typographischen Gevierts in der verwendeten Schriftgröße, und  dessen Höhe wird durch die Schriftgröße bestimmt, die sich mit jQuery herausfinden lässt. Aus der berechneten Pixel-Zahl lässt sich also zur Einheit em umrechnen, so dass auch bei einer reinen Schrift-Skalierung kein Problem mehr auftritt.


Zunächst fehlen noch ausgiebigere Tests. Außerdem wäre die Anwendung auch außerhalb von Tabellen praktisch. Mal sehen, wozu ich in den nächsten Tagen komme.

Danach plane ich das Plugin auch „offiziell“ zu veröffentlichen.

Verändertes Konzept für den Konfirmandenjahrgang 2013-2015

Gestern gab es ein Gespräch mit Aktiven der Lukasgemeinde, bei dem die von uns (dem KU-Team des demnächst startenden Jahrgangs) geplante Verlegung des Konfirmandenunterrichts vom Dienstag Nachmittag auf Samstag Vormittag diskutiert wurde. Der „klassische“ Konfirmandenunterricht (KU) findet „traditionell“ einmal wöchentlich für eine Stunde Dienstags statt. In den meisten Städten und Gemeinden ist dies auch mit Schulen abgesprochen, die für den betreffenden Jahrgang (der Konfis) den Dienstagnachmittag unterrichtsfrei halten.

In anderen Gemeinden ist diese Terminierung (monatlich Samstags) durchaus seit längerem bereits üblich, so ist es prinzipiell z.B. auch in den Konzeptbüchern von Kessler/Nolte so vorgeschlagen. Wir als Team haben in Warburg und rund um das Konficamp des Kirchenkreises Paderborn sowie aus Minden damit gute Erfahrungen gemacht.

Insofern hatte ich objektiv auch in Bezug auf das Gespräch keine großen Bedenken. Einige Knackpunkte der Argumentation waren uns zuvor durchaus bekannt:


Da ist die Angst, der Stundenumfang in unserem Konzept sei geringer als im „alten“ Modell – was abzählbar nicht stimmt.

Da ist die Angst, Konfis verpassten zu viel, wenn sie einen Samstag fehlen, verglichen mit einem Fehltermin am Dienstag. Das ist auf den ersten Blick richtig, stimmt aber schon nicht mehr, wenn zwei Dienstagstermine (im 2-Stunden-Modell, vier Termine bei einer Stunde wöchentlich) verpasst werden. Und während der eine Dienstag schonmal „ja nicht so schlimm“ ist und als regelmäßiger Termin im Kalender steht, hat der ungefähr monatliche Samstagstermin mehr den Charakter eines nennenswerten, eigenständigen Einzeltermins. Wohlgemerkt: Das hat nichts mit inhaltlicher Wertung zu tun, sondern bezieht sich rein auf die Wahrnehmung im Terminkalender.

Spätestens gegenüber dem Modell mit einer Stunde pro Woche geht zudem weniger Zeit für Ankommen, Ruhigwerden und Schon-wieder-aufgeregt-sein drauf; denn die Jugendlichen unterhalten sich beim Ankommen nicht länger, nur weil sie danach länger zusammen sind. Nach etwa 10 Minuten sind die üblichen Infos meist ausgetauscht, die Begrüßung erledigt. Mehr muss nicht mehr unbedingt sein oder hat Zeit bis zur nächsten Pause, in der das nicht stört.

Der Unterricht

Den oben erwähnten „klassischen“ Unterricht mit wöchentlichen Terminen habe ich selbst nie erlebt. Als Konfi habe ich eine Mischung aus monatlichen Samstagen und 14-tägigen Doppelstunden mitgemacht, als Teamer ebenso.

Vergleichen kann ich vor allem die Doppelstunden mit den 4-fach-Stunden. Für den jetzt kurz vor der Konfirmation stehenden Jahrgang haben wir von den Expedition-Gottsuche-Einheiten einige zerteilen und viele Einzelabschnitte kürzen müssen.

Die Ergebnisse haben darunter, so vermute ich, gelitten. Vielleicht war die Gruppe natürlich auch einfach relativ unkreativ. Vielleicht sind deshalb in anderen Jahrgängen bei gleicher Themenstellung kreativere, aufwändigere, durchdachtere Ergebnisse herausgekommen. Aber ehrlich gesagt glaube ich das nicht.
Kreative und mentale Prozesse sind sich in vielerlei Hinsicht ähnlich. Das erneute Durchdenken, überarbeiten, verfeinern und manchmal auch verwerfen einer Idee gehört zu einem Reifungsprozess hin zu einem immer besseren Ergebnis, hin zu bewusster formulierten Gedanken, verfeinerteren Symboliken.
Eine Kreativeinheit, in der innerhalb von 45 Minuten ein Thema erarbeitet und als Gruppe umgesetzt werden muss, ist möglich. Zeit für Experimente und Fehlschläge bleibt dabei jedoch oft nicht.
Nicht, dass Konfis normalerweise bewusst erstmal experimentieren würden. Aber gezielte „Langeweile“ fördert das Nachdenken über das Getane und weckt den Wunsch, dabei gefundene Schwächen der Darstellung zu beheben oder weitere Ideen hinzuzufügen.

Dabei kommt es auch vor, dass trotzdem nicht mehr viel passiert. In diesem Fall lässt sich auch spontan mit einem Überblick über die Gesamtgruppe ein Programmpunkt abkürzen – oder andererseits auch verlängern, wenn die Konfis überwiegend noch ins Thema vertieft sind.

Gerade diese Flexibilität erfordert aber längere Termine. Bastelmaterial zehn Minuten später wegzuräumen und stattdessen einen bestimmten Aspekt des Plenums auf den nächsten Termin zu verschieben, zwei Lieder weniger zu singen oder ein Spiel weniger im Plenum zu spielen, ist meist kein Problem. Über Termingrenzen hinweg funktioniert das viel zu oft jedoch nicht. Aus einmal aufräumen wird zweimal aufräumen (denn das Gemeindehaus kann ja nicht die ganze Woche blockiert werden), und einmal raus aus dem Thema ist das Wieder-Eindenken ein oder zwei Wochen später extrem schwierig.

Das Sozialgefüge der Gruppe

Regelmäßige kurze Arbeitstreffen fördern, so ein Gegenargument in der Diskussion, die soziale Bindung in der Gruppe, das Kennenlernen ist einfacher, da ausreichend Kontinuität gegeben ist und die regelmäßigen Treffen zu einem dauerhaften Austausch führen.

Auf der anderen Seite ist aber gerade die längere ununterbrochene Beschäftigung mit dem Gegenüber, wie es in einer Kleingruppeneinheit von anderthalb Stunden Länge (mit Pause, die aber die Gruppe nicht zwingend auflöst) der Fall ist, zusätzliche Eigenheiten, die in kürzeren Einheiten nicht erreicht werden können.

Konflikte müssen eher gelöst werden, weil sie sonst direkt an dem einen Termin eskalieren, ohne dass eine deeskalierende Separation der gegnerischen Parteien das Konfliktpotential bis zur nächsten Woche dämpfen könnte. Dies kann mehr Stress bedeuten, für die Konfis wie für das Team. Es fördert jedoch auch die wichtige Fähigkeit, Konflikte zu lösen, anstatt ihnen auszuweichen, unter Anleitung eines nicht zuletzt christlich geprägten Teams, das eben nicht wie manche Elternhäuser, Cliquen oder Schulklassen auf das Recht des Stärkeren unter Einsatz aller Mittel pocht, sondern ein faires, tolerantes, nicht ignorantes Miteinander propagiert.

Trotzdem ist das Argument gültig: Kennenlernen kann man sich nur schlecht „einmal im Monat“. Deshalb sieht unser Plan vor, zwischen den Sommer- und Herbstferien mit dem Konfitreff eher spielerisch einzusteigen. In dieser ersten Phase wird nur am Rande inhaltlich gearbeitet; im Vordergrund steht das Kennenlernen; Inhalte werden diesem Ziel gleich- wenn nicht untergeordnet. So wird das Kennenlernen der Gemeinde (Gruppen, Aktive, Organisation etc) als Gemeindebrief-Rallye verpackt, das Thema Martin Luther zunächst als Filmabend mit Popcorn-Flair angegangen.

Die lokale Verankerung in der Gemeinde

Für mich sehr überraschend wurde das Argument der lokalen Verankerung des Konfiunterrichts aufgeworfen. Dies betrifft zwei völlig unterschiedliche Aspekte: Die Lokale Verankerung des Konfirmandenunterrichts (im Lukasbezirk) einerseits und die Problematik, mit anderen Bezirken (ich weigere mich, hier den Begriff Gemeinde zu nutzen) offen in Bereichen zu kooperieren, die zum Kernbereich der Gemeinde gehören.

Überraschend deshalb, weil ich – vielleicht dafür zu wenig im „normalen“ Gemeindeleben involviert – nie damit gerechnet hätte, dass es offensichtlich zumindest in einigen Köpfen einen Konkurrenzkampf der Gemeindebezirke innerhalb der Kirchengemeinde Paderborn gibt. Ob das normal ist? Ich weiß es nicht. Aber zumindest halte ich es nicht für förderlich.

Und es ist auch nicht „Programm“, denn im Bereich von Konzerten, Ausstellungen und anderen Veranstaltungen gibt es immer wieder Ankündigungen und Werbung auch für solche in anderen Bezirken, zum Beispiel im Gemeindebrief „unterwegs“ des Lukasbezirks.

Und doch wünschen sich jene  eigentlich (man kann nie alles machen, so ihre eigene Aussage) neben den Besuchen in Synagoge, Moschee und bei der Aidshilfe auch noch den beim Biobauern. Das inhaltliche Argument ist auch hier nicht falsch. Nachhaltigkeit und Bewahrung der Schöpfung sind wichtige Themen, genauso wie die Unterstützung von und der Kontakt mit (vermeintlich) schwächeren Mitmenschen.

Das Argument der lokalen Verankerung „…wenn wir diese Einrichtungen schon im Bezirk haben, sollte man diese Gelegenheit auch wahrnehmen“ halte ich jedoch für schwierig. Für Synagoge und Moschee gilt das Argument nicht (beide liegen im Markusbezirk). Außerdem sehe ich diese „Lokalität“ ansonsten nicht dokumentiert.

Klar: Die üblichen, oft vorkommenden Veranstaltungsorte, die im Gemeindebrief vorkommen, liegen im Lukasbezirk: Das Lukaszentrum, das Himmelszelt sowie das direkt benachbarte Gemeindezentrum auf der Lieth und die Kirche in Dahl. Aber wo fängt der Lukasbezirk an? Wo hört er auf? Ich weiß, ich könnte jemanden fragen; aber ich habe einfach erstmal gesucht, was ich so dazu finde, und; welch Wunder: nichts.

Oder: fast nichts. Abdinghof, Lukas, und  Matthäus geben außer den Standorten ihrer Kirchen und Gemeindezentren keine Ortsangaben über „ihr Gemeindeareal“ an. Martin-Luther (haben keine Webseite), Johannes (Webseite nicht erreichbar) geben online offensichtlich gar nichts von sich preis. Lediglich der Markus-Bezirk zeigt auf einer Karte (leider Google und dann auch noch lizenzwidrig rauskopiert), für welchen Bereich Paderborns er zuständig ist.


Was also soll die lokale Verankerung? Aktive (!) Gemeindeglieder kriegen das mit. Mit der Konfi-Radtour (oben nicht erwähnt) erfahren die Konfirmanden zumindest teilweise, welche Ortsteile außerhalb der Kernstadt Paderborn noch zum Lukasbezirk gehören. Darüber hinaus soll, so die bezirksinterne Regel, mindestens jeder zweite Pflicht-Gottesdienstbesuch der Konfirmanden im Lukaszentrum sein. Die Bindung an die Veranstaltungsorte der Gemeinde ist also bereits gesichert. Für eine nähere geographische Bindung an das, was irgendwo (noch weiß ich nicht, wo) als „der Lukasbezirk“ definiert ist, sehe ich jedoch keinen Grund. Konfis sind auf weiterführende Schulen in der ganzen Stadt verteilt, haben ihre Freunde nicht (nur) im Lukasbezirk, und auch wenn mancher sich das wünschen mag, spielt sich auch der Lebensmittelpunkt der Konfirmanden in den meisten Fällen nicht in der Kirchengemeinde ab.


Angesichts schwindender Finanzmittel, Stellenstreichungen unter Pfarrern und Jugendreferenten, und damit aber unter Berücksichtigung des sozialen Auftrags auch über die offiziellen Gemeindeglieder hinaus halte ich Konkurrenzdenken zwischen Gemeindebezirken für Fehl am Platz.

Angesichts von in Teilen der Gesellschaft abnehmender Relevanz und abnehmender Attraktivität der Institution Kirche stellt sich die Frage, wie man diese Probleme angehen kann. Das Nonplusultra der KU-Modelle gibt es nicht; kann es nicht geben. Dafür ist die Bandbreite der Lebenssituationen von Konfis zu verschieden. Die Herausforderung besteht darin, durch Alternativen Konfis und potentiellen Konfis entgegenzukommen und gleichzeitig die bestmöglichen Erfahrungen „zu generieren“.

Windows 8 Einrichten

Habe heute einen neuen PC in der Hand gehabt, auf dem Windows 8 vorinstalliert war und sollte das einrichten.

Fazit: Benutzerfreundlichkeit sieht anders aus. Zugegeben: Im Vergleich zu Windows 98 geht vieles besser, aber dennoch ist mir vieles aufgefallen, was ich als Useability-Bug einordnen würde.

  1. Fehlermeldungen: Die Einrichtungsroutine ist als geführter Dialog gestaltet. Auf Seite 7 oder 8 erfolgt die Einrichtung eines Benutzerkontos, was die Angabe eines Benutzernamens, eines Passwortes sowie eines Passwort-Hinweises erfordert. Weder ist hier erkennbar, dass der Passworthinweis eine Pflichtangabe sei…
  2. …noch, dass sich der Benutzername vom Rechnernamen unterscheiden muss. Dumm nur, dass das erst hier auffällt. Ich kann mir nicht vorstellen, dass es als Idee mittlerweile eine Ausnahmeerscheinung wäre, den eigenen PC einfach mit dem eigenen Vornamen zu benennen. Heißt der PC aber erst einmal (nach Seite 1 oder 2 der Einrichtungsroutine) „Anton“, so gibt es später nur eine Fehlermeldung, das Benutzerkonto dürfe nicht genauso benannt werden wie der Computer. Immerhin kann man im Dialog zurückgehen bis auf Seite 1 – aber dumm gelaufen: Hier ist der Rechnername mittlerweile festgelegt und lässt sich nicht wieder ändern.
  3. Nach der letzten Formularseite dauert die endgültige Einrichtung ein paar Minuten, die wie schon mindestens seit Windows 98 bekannt, durch „Werbung“ überbrückt werden. Dabei wird darauf hingewiesen, dass sich an der rechten Seite des Bildschirms unsichtbar ein Menü versteckt, das eingeblendet werden kann, indem man mit der Maus in die Ecke zeigt. Verpasst man dies jedoch, deutet darauf hinterher nichts mehr hin – ein typischer Fall von „Mystery Meet Navigation“ und damit eines der klassisch großen No-Gos der Useability.
  4. Es mag sein, dass Microsoft seinen Desktop in Windows 8 nach Möglichkeit vor den Nutzern verstecken will. Wie sonst wäre es zu erklären, dass es keinerlei Hinweis darauf gibt, wie der Desktop zu erreichen wäre? Gut: Nach jahrelanger Windows-Vorprägung werden „Poweruser“ eventuell schnell die altbekannte Tastenkombination Windows+D ausprobieren, aber intuitiv ist für mich was anderes.