Firebug – neu entdeckt

Ich habe ja schon einmal über den Nutzen von Firebug für Screenshots erzählt. Und schon wieder habe ich ein nützliches Feature entdeckt, auf das ich bisher einfach noch nie geklickt hatte, das aber insbesondere für die Webentwicklung extrem praktisch ist. Denn beim Layouten hat man oft das Problem, dass sich die CSS-Definitionen für padding oder margin einzelner Elemente in die Quere kommen und damit das Layout verhunzen.

Einen schnellen Zugriff auf die Info, welches Element nun welche Werte für padding, margin oder border hat, bekommt man im Layout-Tab rechts unten im Firebug:

In diesem Tab wird einem auf einen Blick zum aktuell in Firebug angewählten Tag angezeigt, welche Werte ihm für padding, margin oder border zugewiesen sind.

Beispiel:

  1. Man rufe dieses Blog auf.
  2. Man öffne Firebug.
  3. Man markiere im Firebug folgenden Tag:

  4. Man sieht nun, dass die Navigation den Innenabstand 1 an allen Seiten hat und dass es beispielsweise nach oben hin 210px vom oberen Seitenrand entfernt ist.

DITA-Referenz in der Praxis: shortdesc vs context

Wenn man mit DITA anfängt, hat man zuerst das Gefühl: „Wow, ich muss nichts mehr selbst erfinden. Alles ist schon da! Woohooo!“ Kaum schreibt man ein bisschen länger, stellt man fest, dass es immer wieder Fälle gibt, in denen die DITA-Referenz nicht so eindeutig ist, wie man sich das wünscht

Ich habe mich beospielsweise immer schwer getan die Funktion der Tags shortdesc und context innerhalb eines Tasks zu trennen. Beide sind dazu da dem Nutzer zu sagen, was der Sinn und Zwecks des vorliegenden Topics ist. Bisher habe ich context nicht genutzt, aber so langsam komme ich dahinter, wie ich es nutze.

<shortdesc>

Die shortdesc soll das zentrale Ziel des Topics beschreiben, aber ganz kurz sein, damit man sie z.B. in Inhaltsverzeichnissen als Kurzbeschreibung mitliefern kann. Es macht aber auch nicht viel Sinn in der shortdesc einfach nur den Titel des Topics zu wiederholen, wie es in Hilfe nur allzu häufig passiert:

In diesen absolut selbst erklärenden Fällen lasse ich es auch weg, aber meistens versuche ich doch irgendwie, etwas reinzuschreiben. Auch in diesem Beispiel ist mir etwas eingefallen, was dem Nutzer in einer Kurzübersicht einen Mehrwert bringt und zwar indem es ihm schon einen Hinweis auf das Ziel gibt: „Links auf oft genutzte Webseiten speichern.“

<context>

Im context kann man mehr Informationen zum Topic geben. Und zwar wann und warum der Nutzer einen bestimmten Task ausführen kann / soll / muss. Gleichzeitig muss man hier ab auch aufpassen nicht so viele Hintergrundinformationen reinzupacken, dass man fast schon ein Concept draus machen könnte.

Je nach Fall ist das für mich auch der Ort nützliche Anwendungsbeispiele zu nennen.

XHTML-Output anpassen #2 – Wie mache ich einen Override?

Ich habe nun damit angefangen Anpassungen vorzunehmen.

Im Groben sind dazu folgende Schritte notwendig:

  1. Plugin-Verzeichnis und Dateien anlegen.
  2. Plugin integrieren.
  3. XSL anpassen.

Plugin-Verzeichnis und Dateien anlegen

Dazu habe ich unter DITA_OT/demo ein Verzeichnis meinxhtml für meine Overrides angelegt, d.h. hier liegen meine Anpassungen für den XHTML-Output. Für DITA ist das einfach ein Plugin.

In diesem Verzeichnis befindet sich ein Ordner mit meinen XSL-Dateien und die plugin.xml. In dieser Datei muss man dem DITA-OT sein Plugin quasi bekannt machen. Das sieht dann so aus:

Plugin integrieren

  1. Hierzu öffnet man sich eine Konsole im DITA-OT-Verzeichnis und führt folgenden Befehl aus: ant -f integrator.xml
    Ob das wirklich geklappt hat, kann man in der Datei xsl/dita.2xhtml überprüfen. Dort sollte die XSL-Datei nun über ein <xsl:import> referenziert werden.

XSL anpassen

Jetzt kommt der wirklich spannende Teil. Wie schon erwähnt, wird das meiste über die Datei dita2htmlImpl.xsl gemacht. Wenn ich also nun etwas Bestimmtes modifizieren will, z.B. dass nach dem Titel einer Note kein Doppelpunkt kommt, gehe ich wie folgt vor.

  1. Ich schaue über Firebug in den Quelltext des Outputs, um zu sehen, ob der Bereich irgendwie besonders ausgezeichnet ist. Im Falle der Note sehe ich, dass der Note-Title in einem span-Tag steht und mit der CSS-Klasse notetitle ausgestattet ist.
  2. Über diese Hinweise finde ich dann in der XSL-Datei das entsprechende XSL-Template für diesen Bereich:
  3. Ich kopiere nun das komplette Template in meine mein_xhtml.xsl.
  4. Um den Doppelpunkt zu entfernen, lösche ich die entsprechenden Anweisungen. In diesem Beispiel also: 

  5. Diese Änderung speichern.
  6. Output generieren.
    Und nun sollte der Doppelpunkt verschwunden sein. Leider muss man den Doppelpunkt für alle Note-Typen entfernen, die es gibt, also für Tipps, Warnungen etc.

Hiermit lässt sich schon mal sehr viel machen. An die Grenzen der Overrides kommt man beim OT 1.3, wenn es um die Anpassung des Inhaltsverzeichnisses geht. Hier funktionieren Overrides nämlich leider, leider nicht. Doch dazu ein anderes Mal mehr 🙂

Meine liebsten Tools

Ich bin immer wieder höchst entzückt, wenn ich irgendwo ein Programm entdecke, dass mir die Arbeit wirklich erleichtert. Der Vorteil an einem IT-Unternehmen liegt darin, dass man solche Sachen gerne mal zufällig beim Kollegen oder der Kollegin entdecken kann. Ich liebe Open-Source. Meistens.

Daher habe ich gedacht, poste ich einfach mal eine Liste meiner unverzichtbaren Programme (tw. mit Plugins), was die Arbeit anbelangt.

  • Mozilla Firefox: Mal ernsthaft – er ist einfach nur genial! Und jede Webseite, die nur IE-kompatibel ist, stinkt! (An dieser Stelle ein freundlicher Gruß an den englischen Billigflieger! Es hat Spaß gemacht, herauszufinden, dass eure Ticketbestellung nur mit dem IE geht. Oh ja!)
    • Firebug: darum und für die Webentwicklung
    • Greasemonkey: um Seiten, die ich oft aufrufe, und an denen mich bspw. die Unübersichtlichkeit nervt, mit einem kleinen bisschen JavaScript so zu modifizieren, dass ich damit „leben“ kann (wie z.B. mein Firmen-Speiseplan…). Es gibt eine Vielzahl an fertigen Skripten für viele Seiten – einfach mal stöbern!
    • Adblock Plus: ebenfalls genial! Damit kann man Werbung bestimmter Seiten blocken und wird endlich nicht mehr von Werbebannern genervt. Zudem kommt dieses Add-on schon direkt mit einer Liste zu blockender Werbung, so dass das meiste schon direkt ausgeblendet wird. Und man hat die Möglichkeit diese Liste auch zu abonnieren.
    • Delicious Bookmarks: wer del.icio.us nutzt, kann hier beim Surfen seine Bookmarks direkt dort speichern
  • Total Commander: ein sehr komfortabler Dateisystem-Explorer mit zwei Panes und auch Tabs, den man sehr schön über die Tastatur bedienen kann (das weiß man sehr zu schätzen, wenn das Betriebssytem so fertig ist, dass es die Maus nicht mehr erkennt…). Und der gleichzeitig auch als FTP- oder SSH-Client fungieren kann. Für SSH benötigt man noch ein Plugin. Das Programm ist zwar nicht Open-Source, aber es kostet nicht viel bzw. kann man die Testversion unbegrenzt nutzen (beim Starten muss man dann lediglich immer einen Dialog wegklicken).
  • Launchy: ein kleines Progrämmchen, über das man in Windeseile andere Programme aufrufen kann, ohne sich durch das Start-Menü, Desktop-Verknüpfungen zu hangeln. Man ruft das kleine Launchy-Fenster über ein Tastenkürzel auf, tippt die ersten Buchstaben des gewünschten Programms ein und kann es direkt aufrufen. Mac- und Linux-Usern sollte das ganze bekannt vorkommen 🙂 An dieser Stelle nochmal Danke für den Tipp, liebe Kollegin 🙂
  • TortoiseSVN: SVN-Client, der sich in den Windows Explorer und auch den Total Commander integriert. Für den Total Commander muss man einige Einstellungen vornehmen.
  • Notepad++: ein Editor für jede Art von Quelltext. Sei es XML, XSLT, HTML oder PHP, ein rundum guter Editor. Die Dateien werden in Tabs angezeigt, das Syntax-Highlighting passt. Ein Tipp von Entwicklern und ich arbeite wirklich gern damit.

Das sind einmal die wichtigsten Sachen. To be continued 🙂

Kenne deinen Nutzer

Es ist wohl DAS Mantra, wenn es um gute Produkte geht. Jeder unterschreibt sofort, dass man erst einmal wissen muss für WEN man etwas produziert, bevor man beginnt es zu produzieren.

Gleichzeitig steht jeder vor dem Problem, dass es schwierig ist, herauszubekommen, was Nutzer wirklich wollen. Was wollten Sie schon immer mal mit meinem Produkt tun? Und wo haben Sie ihre größten Probleme? Wie bekommt man Feedback? Machen wir ein Forum auf? Kundenbefragungen? Kommentarformulare?

Und da sehe ich doch bei WriterRiver den Link auf GetSatisfaction. Wir sehen mal davon ab, dass der Name irgendwie nicht so gut gewählt ist – er deckt sich mit vielen meiner Spam-Mails 😉

GetSatisfaction ist eine Plattform bei der man Channels für Firmen und / oder Produkte einrichten kann. Und in diesen Channels kann jeder Nutzer Fragen stellen, Ideen loswerden, aber auch Kritik und Lob. Jeder kann es lesen und auch jeder darauf antworten. Also fast ein bisschen wie ein Forum. Die Besonderheit ist, dass man sich als Mitarbeiter einer dieser Firmen „markieren“ kann. Ab dann wird immer angezeigt, dass so und so viele Mitarbeiter einen Firmen-Channel mitverfolgen.

Firmen wie Dell und Adobe sind hier schon dabei, aber richtig viele große Firmen sind es noch nicht.  Man sollte als Firma aber auf jeden Fall ein Auge drauf machen, denn JEDER kann einen Channel aufmachen. Und wo sonst hat man dann als Firma die Möglichkeit so direkt an das Nutzer-Feedback zu kommen und auf Probleme sofort zu reagieren?

Ich finde das ganze jedenfalls sehr smart und werde es mal weiter beobachten. Für mich gab es jedenfalls noch kaum Möglichkeit mich als „employee“ dort zu outen. Da fehlt noch kritische Masse, aber wer weiß…?