jqGrid hat echt was

In den letzten Wochen konnte ich mich etwas ausgiebiger mit jqGrid beschäftigen, und ich muss sagen: Diese AJAX-Tabellen-Komponente hat was. Es gibt kaum etwas, was ich als Feature in anderen Tabellenkomponenten kennengelernt habe, das hier fehlen würde. Die zugehörige Demoseite beweist das denke ich eindrucksvoll. Allerdings ist der Einstieg nicht ganz leicht, der Technologiebaum dahinter ist schon recht tief.

jqGrid baut auf JQuery UI auf, das dann widerum auf JQuery. Letzteres setzt obwohl es JavaScript stark vereinfacht doch hier und da detailliertere JavaScript-Kenntnisse voraus (der ideale Einstieg hierfür ist immer noch der O’Reilly JavaScript Definitive Guide und online die JavaScript-W3School).

Für das Backend, das für die Komponente Daten heranschafft, kommt nochmal die eine oder andere Technologie hinzu. Hier ist die Wahl aber frei, solange das Framework jqGrid mit JSON oder XML-Daten befeuern kann. Das Format kann relativ weiträumig angepasst werden: jqGrid offeriert Default-XML/JSON-Formate, erlaubt aber die Konfiguration seines XML-Readers, falls man das Quellformat nicht anpassen kann. Einschränkung dabei: jqGrid kann derzeit nur XML-Tags, nicht aber XML-Attribute als Datenquelle heranziehen.

Hat man ein erstes jqGrid-Skript vor sich, ist oft nicht ganz klar, welches Feature aus welchem Paket kommt. Ich bin wirklich froh Firebug als Firefox-Extension mit an Bord zu haben, sonst würde ich wohl heute noch nicht verstehen wie das Ganze zusammengreift.

Was wirklich hilft bei der optischen Gestaltung des Grids ist, dass diese mittels JQuery UI Themerollererfolgen kann. Im Projekt hat unsere Designerin hiermit relativ schnell ein passendes Theme erstellen können, das mit meiner Grid-Software-Demo auch sofort reibungslos zusammengespielt hat.

Fallstricke bei jqGrid: Das eine oder andere JQuery Plugin muss hinzugefügt werden, damit alle Features funktionieren. Will man beispielsweise mit einem komfortablen Editor Tabellenspalten des Grids sortieren oder filtern, wird die Multiselect Komponente nötig. Achtung dabei: Von dieser gibt es mehrere Quellcode-Varianten im Internet, die nicht alle mit jqGrid zusammenspielen. Der richtige Ort für die Komponente ist Github, das ich so als Social Coding Dienst auch mal kennenlernen durfte.

Fazit: jqGrid ist eine sehr starke Client-Tabellenkomponente für Webanwendungen, man darf die Einarbeitungszeit allerdings nicht unterschätzen. Grob 2-3 Tage sind nötig bis man damit produktiv ist. Danach hat man aber auch JQuery und JQuery UI deutlich besser im Griff. Die Dokumentation ist noch etwas schwach, wäre diese besser, wäre auch sicher der Einstieg reibungsloser. Auch sollte man beachten, dass Javascript recht viel Last auf den Clientbrowser legt. Manchmal ist es sicher sinnvoller seine Tabellen im Backend aufzubauen und via reinem HTML in den Browser zu bringen. Für ein solches Szenario hat sich bei mir Displaytag sehr bewährt.

Präsentation ist (keine) Zauberei

Früher war bei mir Präsentieren ungefähr das hier:

  • Sich Hardy’s großen Zauberkasten zu Weihnachten wünschen,
  • ohne langes Üben das Publikum damit belustigen.
  • Merksatz: Die Anleitung lesen kann man im Zweifelsfall immer noch hinter dem Requisiten-Tisch.
  • Klappt was nicht: Nächster Trick.
  • Klappt etwas überraschenderweise: Das selbe nochmal bis zum Abwinken zeigen.

Ich denke gerade: Meine Business-Präsentationen waren lange Zeit im wesentlichen mit einer ganz ähnlichen Methodik gebaut.

Wäre es nicht interessanter für alle, wenn wir ein klein wenig mehr wie David Copperfield präsentieren könnten? Die Frisuren könnte ich zwar nicht bieten, aber das hier müsste als Methode doch für alle drin sein:

  • Ein oder zwei Tricks (Inhalte) auswählen die einem liegen.
  • Üben.
  • Über das Publikum, seine Probleme, Wünsche, seine Träume und Alpträume nachdenken,
  • eine Routine ausarbeiten.
  • Den eigenen Vortrag schleifen,
  • Üben.
  • Auftreten.
  • Aufmerksamkeit aufbauen und sicherstellen.
  • Das Problem, die Wünsche, die Träume und Alpträume skizzieren. Sein Publikum auf diese Art dort abholen wo es sich mental befindet.
  • Kurz und bündig den Trick zeigen und damit alle überraschen.
  • Nicht die Lösung verraten; dem Publikum eine Ahnung zu vermitteln reicht.
  • Den selben Trick niemals wiederholen (selbst auf Wunsch nicht).
  • Und runter von der Bühne.

PS: Hatte ich die bezaubernde Assistentin erwähnt, die (falls die erarbeitete Routine noch holpert) vom Geheimnis hinter dem Trick ablenkt? Was das Gegenstück dazu in einer Business-Präsentation sein kann müsste ich noch mal näher durchdenken.

JSON oder XML?

Derzeit habe ich in einem Kunden-Projekt das erste mal die Chance, mir die JavaScript Framworks JQueryJQuery UI sowie die Gridkomponente jqGrid etwas näher anzuschauen. Im Zusammenhang mit letzterem muss ich von einem Backend Listen mit Produktdaten abholen, die auf dem Host im XML-Format vorliegen.

Weil jqGrid nicht zu 100% an das bestehende XML-Format anzupassen ist (es kann beispielsweise keine Attribute als Zellinhalten nutzen) bin ich gezwungen, das XML-Dokument umzuwandeln. Diese Aufgabe erledige ich mit einem kleinen Servlet, das auch gleich die Aufteilung der Daten in Seiten vornimmt.

Da ich das XML ohnehin umschreiben muss dachte ich ich werfe auch mal einen Blick auf JSON als Austauschformat. Meine Kollegen gaben mir den Tipp dass es einfacher zu generieren sei und deutlich kompakter ist. Und tatsächlich: Das Format ist eindeutig schlanker. Es könnte damit für AJAX-Aufgaben mein neues Protokoll der Wahl werden.

Windows-Anwendungen automatisieren

Eines der großartigsten Tools unter Mac OSX ist der Automator, der es mir erlaubt, interaktive Arbeiten zu automatisieren. Für ein aktuelles Projekt, bei dem es um die Umwandlung mehrerer tausend Dokumente geht, hätte ich dieses Werkzeug auch sehr gut unter Windows gebrauchen können. Doch auch hier gibt es interessante Werkzeuge um Prozesse zu skripten und immer wieder auszuführen (das bei Bedarf natürlich auch mit wechselnden Parametern).

autoitDas Tool meiner Wahl unter Windows ist derzeit das kostenfreie AutoIT v3. Es ist nicht viel mehr als eine Ausführungsumgebung für Basic-ähnliche Skripte, die Windows-Anwendungen und deren Fenster (bzw Kontrollelemente) analysieren und fernsteuern können. Über diese Funktion hinaus beinhaltet das Werkzeug lediglich einen Compiler für die Skripte sowie Analyse-Werkzeuge für die zu automatisierenden Anwendungen.

AutoIT Skripte erstellen ist Programmierarbeit, nichts „grafisches“, aber es erleichtert die Automatisierung gewaltig. Eine Aufgabe wie „wandeln sie mir diese 10.000 Dokumente in PDFs um“ wird durch AutoIT möglich, sobald ich den Weg finde, ein einzelnes davon per Hand umzuwandeln. Doch auch vereinfachende Oberflächen die ich vor komplexere Installations-Prozesse schalte sind möglich. Will ich zum Beispiel WinZIP in der Firma ausrollen, die Anwender aber nicht durch dessen Installationsprozedur verschrecken, kann ich dem Setup eine AutoIT GUI vorschalten, die alle dafür nötigen Parameter und Schalter in einem einzelnen Dialog zusammenfasst. Auch die vollständige Automatisierung ist möglich.

Ich denke ich werde dieses Tool noch für einige Umstellungs- und Einführungsprozesse gut einsetzen können, es ist auf jeden Fall extrem hilfreich. Ein Blick darauf lohnt sich sicher für jeden Programmierer oder System-Administrator.

Excel, Daten und etwas ODBC Magie

ODBC Verbindungen sind definitiv nichts Neues, aber Überraschungen gibt es scheinbar immer wieder damit. Gerade letzte Woche bin ich im Zusammenhang mit Excel über die ODBC DSN Verwaltung gestolpert, die wie bekannt die 3 DSN Typen User/BenutzerSystem und File/Datei bietet. Im Prinzip sind die Unterschiede ja klar (User ist für den aktuellen Nutzer von Windows sichtbar, System für alle Nutzer des Computers, File ist verteilbar zwischen Systemen), aber die File DSN spielte für Excel in meinem aktuellen Projekt eine mir bisher unbekannte Rolle.

odbcdsn01

Der Hintergrund: Wenn ich in Excel mit MSQuery Daten dynamisch importiere brauche ich dafür eine Datenbankverbindung und diese baue ich über eine der genannten DSN-Typen auf. Nachteil: Verteile ich das Excel Sheet an Kollegen, läuft es nur, wenn diese die passenden DSN Verbindungen im Datenquellen-Verwalter eingerichtet haben.

Doch man kann die DSN auch einbetten so daß keine separate DSN auf dem Computer mehr von Nöten ist. Und genau das passiert automatisch (oder sollte ich sagen automagisch ?) wenn wir für die Verbindung eine File/Datei DSN benutzen. Danach ist das Excel Sheet frei verteilbar… vorausgesetzt natürlich der Zielcomputer hat die passenden Treiber zur Verfügung.

Fazit: Man lernt auch bei alten Techniken nie aus. Aber mal ganz ehrlich: Wo hätte man dieses kleine aber wichtige Detail auch nachlesen sollen?

Twitter VIPs

Es ist ziemlich erstaunlich, wie sich Following-Zahlen auf Twitter entwickeln, wenn man den Dienst erstmal regelmässig nutzt. Heute morgen folgte ich insgesamt 1009 Personen dort, und so kam mir die Idee mal zu schauen, welche davon mir so wichtig geworden sind, dass ich auch ohne die Existenz des Dienstes Twitter unbedingt Kontakt zu ihnen halten würde.

Von den 1009 Personen denen ich folge sind 98 auf meine Twitter VIP Liste gewandert. Interessant sind dabei die Gründe, warum sie VIPs für mich sind. Das Ganze sieht als Grafik wie folgt aus:

twittervips

Überraschend war für mich, wie wenig bestehende Freunde und Kollegen von mir Twitter benutzen. 18 Kontakte in diesem Umfeld sind eine eher geringe Zahl, besonders wenn man sie mit den 37 mir wichtigen Kontakten vergleicht, die ich erst via Twitter entdeckt habe.

Es gibt allerdings auch eine Gruppe mir wichtiger Twitteraccounts, die weniger mit den Personen als mit ihrem Thema zu tun haben. Hierzu zähle ich

  • Infoquellen zu meinem aktuellen Hauptthema Enterprise 2.0
  • Tools und Produkte die ich gerne nutze und über die ich auf dem Laufenden bleiben will
  • Promis, denen ich hinterherrenne, weil mich interessiert, was sie so machen.

Was ist mit den anderen 911 Accounts denen ich folge? Wichtig müssen sie sein, denn sie bilden 90% meines täglichen Nachrichtenstroms. Allerdings würde ich wohl nicht merken, wenn einzelne Teilnehmer hieraus einmal fehlen.

Twitter ist für mich ein Themen-Netzwerk. Ich folge Menschen, wenn mich das interessiert worüber sie schreiben. VIPs werden sie für mich, wenn ich ihren Themenstrom schon über lange Zeit regelmässig verfolge oder insbesondere dann, wenn ich sie persönlich kennen und schätzen gelernt habe.

Nach mehr als einem Jahr Twitter kann ich sagen: Es hat sich persönlich und privat für mich wirklich gelohnt, sich auf dieser Plattform herumzutreiben.

Mein Schwager mag Innovation

Innovation tritt unerwartet auf. Wir erwarten sie zwar von Unternehmen, Universitäten und Forschungsstätten, aber meistens kommen sie von der „Graswurzel“ aus. Hier ist auch der Ort, an dem Innovationen am ehesten aufgegriffen werden. Man muss halt nicht auf einen Gruppenkonsenz oder allgemeine Akzeptanz warten. Da ich privat beliebige Kontakte halten kann, ist die Chance auch größer, andere zu finden, die meinem Verhalten nacheifern und mir folgen (meiner Meinung nach ein wichtiger Antrieb für uns, um neue Sachen auszuprobieren: Es schafft potentiell Anerkennung. Es ist der Hauptgrund dafür, warum Menschen eine Nintendo Wii kaufen: Man will sie anderen zeigen).

Menschen die solche Innovationen früh aufgreifen „überzeugen niemanden aktiv“ sondern „führen ein Thema an“. Ihnen ist es egal wer ihre Idee aufgreift oder nicht, sie erzeugen aber einen Sog und ziehen damit Menschen an, die ihnen eigenständig folgen.

„Eigenständiges Folgen“ signalisiert, dass etwas „geklickt“ hat. Und wenn es „klickt“, brauche ich keine Argumente mehr für etwas: „Klicken“ heisst „als Verhalten abspeichern und akzeptieren“. (Man beachte jedoch, das akzeptiertes, abgespeichertes Verhalten über die Zeit zum Hindernis für „Neues“ werden kann).

Mein Schwager ist ein solcher Themen-Anführer. Er arbeitet als Installateur, also in einem grundsoliden Beruf, und nicht an einem Ort, wo man klassisch nach Innovation suchen würde.

Er war einer der ersten Besitzer eines C-Netz-Telefons, was zu seiner Zeit exorbitant teuer und als extrem spinnert verschrien war. Klar, wir haben uns alle an der Technik begeistert, aber der Sinn des Ganzen hat sich zumindest mir damals nicht erschlossen. Das Motorola-Teil sah potthässlich aus (Stichwort „Knochen“), war nicht wirklich stabil, die Akkulaufzeit war gering, von 100% Netzabdeckung war nicht zu reden und ich sah nicht eine einzige sinnvolle Anwendung dafür.

Neidisch war ich trotzdem, schließlich war das für mich ein „magisches Spielzeug“. Mein Schwager hat es jedoch als Werkzeug gesehen. Für ihn war es ein Wettbewerbsvorteil, weil er in seiner Branche einer der ersten war, der „sein Büro“ mitnehmen konnte. Dabei muss man verstehen, was der Begriff „Büro“ für ihn bedeutet: Es ist für ihn der Ort des Kundenkontaktes. Der Ort, an dem man „wartet“ und „Zeit verschwendet“, wenn man gerade keinen Auftrag hat.

Ein Mobiltelefon zu haben hat nicht einfach seine Erreichbarkeit für Kunden erhöht, sondern ihm massig unproduktive Wartezeit erspart. Der Ort, an dem er Aufträge ausführte („beim Kunden“) war mit einem Mobiltelefon räumlich und zeitlich nicht mehr von dem Ort, an dem er Aufträge annehmen konnte („im Büro“) getrennt. Der Effekt für ihn: Die Zeit, in der er wartete, reduzierte sich und die Kunden registrierten obendrein einen besseren Service. (Viele, die den besseren Service erlebt haben, haben sicher selbst danach über ein Mobiltelefon nachgedacht).

Wie lange existierte dieser Vorteil für meinen Schwager? Bis jeder seiner Mitbewerber ein Mobiltelefon hatte. Aber auch wenn dieser Vorteil heute nicht mehr existiert, hält er sein Mobiltelefon weiterhin. Schließlich ist es jetzt kostengünstig und ein Standard. Genauso wie sein Festnetzanschluß, sein Faxgerät, … sein Internetzugang, … seine Webseite.

Letztere mag er nicht sonderlich. Sie ist schwer für ihn zu pflegen. Ich bin irgendwie sicher, dass wenn ich ihm Weblogs demonstriere, wird er unbedingt eins haben wollen.

Im Unternehmen habe ich mit der Einführung definitiv größere Widerstände zu überwinden. Ich stelle immer wieder fest, dass feste Gruppen viel schwieriger zu begeistern sind als Individuen im losen Verbund. Es wäre interessant alle Gründe herauszukriegen, an denen das liegt.

Freunde? Ja oder Nein?

Systeme, die auf Soziale Netzwerke setzen, erlauben es mir in der Regel, mein Kontakt-Netzwerk abzubilden. Das ist meist sehr einfach. Im Prinzip beantworten wir dabei Fragen wie:

  • „Sind wir Freunde?“
  • „Kennen wir uns?“
  • „Haben wir ein gemeinsames Thema?“

Die konkrete Fragestellung hängt dabei primär von der Sphäre („persönlich“, „privat“, „professionell“) ab, für die ich die Anwendung benutzen will.

Die möglichen Antworten, die wir in solchen Systemen geben können, sind deutlich einfacher als die Fragen. Meist gibt es da nur:

  • Ja -oder-
  • Nein

Die Bewertung eines Kontaktes hat aber weitaus mehr Attribute als das. Obendrein sind die Attribute subjektiv, nicht objektiv. Die Qualität eines Kontaktes hängt für mich von gemeinsam geteilten Themen („Sachen, die diskutierbar sind“) ab. Fragestellungen dabei sind:

  • Haben wir die selben Interessen?
  • Kann ich etwas aus dem Kontakt ziehen oder lernen?
  • Welche gemeinsamen Erinnerungen teilen wir?
  • Wie ausgewogen ist die Beziehung zueinander?

Das alles sind Fragestellungen, die die Qualität der Kommunikation in den Mittelpunkt stellen. Diese muss nicht mal harmonisch sein, man kann sich auch in Kontroversen wirklich mögen und respektieren.

Es gibt also Probleme bei der „digitalen“ Abbildung meines „analog geprägten“ Netzwerks. Aktuelle Soziale Netzwerke des Internets bilden sie nur sehr beschränkt ab. Das ist sicher auch so gewünscht: Niemand würde wohl alle Wertigkeiten seiner Kontakte freiwillig offenlegen oder gar die Änderung dieser Wertigkeit über die Zeit dokumentieren.

Weitergereicht

Wir sind von klein an daran gewöhnt, dass Wissen Top-Down („von oben herab“) zu uns gelangt. Unsere Eltern vermitteln uns unser erstes Wissen, Kindergärten erüben erste Techniken mit uns, Schulen bringen uns in strukturierter Form anerkanntes und unstrittiges Standardwissen bei. Wenn wir einen Arbeitgeber auswählen, dann passiert das in der Regel auf Basis von Themen und Aufgabenstellungen die uns interessieren. Wir erhoffen Neues zu erlernen und anwenden zu können. Der Top-Down-Prozess ist unglaublich hilfreich für das Lernen.

Für eigene Ideen und Themen ist jedoch oft wenig Platz. Das äußert sich in Aussagen wie „das ist einfach nicht unser Thema“ oder „dahinter steckt kein Nutzen“. Einzelkämpfer haben es schwer, neue Ideen und Themen Bottom-Up („von unten herauf“) in einer gegebenen Struktur nach oben zu reichen, die Top-Down funktioniert. Die Kollision von Top-Down und Bottom-Up-Methoden ist ein wohlbekannter Prozess, den wir „Gegenstrom“ nennen. Beide Kräfte dieses Gegenstroms sind wichtig: Der Top-Down-Ansatz sorgt für Stabilität, der Bottom-Up-Ansatz für Innovation. Top-Down-Ansätze werden durch „Management“ getrieben, Bottom-Up-Ansätze durch „Leadership“. „Management“ beschäftigt sich mit dem effektiven Einsatz von Resourcen, „Leadership“ mit dem Erschliessen von Innovationen durch eine Gruppe.

Top-Down-Prozess laufen in etablierten Gruppen und Strukturen ab. Das macht sie auf der einen Seite stabil, auf der anderen Seite schwer zu überwinden. Bottom-Up-Prozesse starten jedoch von einzelnen Personen aus, sind also von Natur aus schwerfällig. Einfacher wird es, wenn eine Gruppe daran arbeitet, neue Themen oder neues Wissen zu etablieren. Doch je innovativer eine Idee ist, desto schwieriger wird es Menschen zu finden, die sie in früher Phase teilen. Das ist insbesondere dann der Fall, wenn die Kommunikations-Reichweite und der Wirkungskreis des Einzelnen eingeschränkt ist.

Das Internet erhöht die potentielle Reichweite der Kommunikation eines Individuums gewaltig. Es wird leichter andere zu finden, die eine neue Idee teilen. Sozialer Rückhalt erhöht die Energie ein Thema Bottom-Up einzuführen. Das erklärt für mich warum hierarchische Strukturen (wie beispielsweise Unternehmen) mehr und mehr auf Gegenstrom-Effekte stossen. Der soziale Erfolg des Internet 2.0 „im privaten“ wird diesen Effekt im Bezug auf Hierarchien „im Berufsleben“ verstärken. Ist man auf Stabilität bedacht, wirkt das wie ein Ärgernis. Ist man auf Innovation aus, ist es eine gewaltige Chance. Fest steht für mich, dass die Kollision im Gegenstrom ein gewaltiges Energiepotential hat. Der sinnvolle Einsatz dieser Energie zum Wohle aller Beteiligten scheint mir mehr und mehr ein lohnenswertes Betätigungsfeld zu sein. Unkontrolliert scheint mir diese Energie nur zu „verpuffen“.

Welt 1.0

Wissen ist Macht. Im positivsten Sinne. Denn nur Wissen erlaubt es mir, Veränderungen heraufzubeschwören. Menschen lieben es an Wissen zu gelangen. Ich denke der Grund ist, dass man durch das Teilen von Wissen an die langfristig wertvollsten Sozialkontakte kommt.

Wissen war lange Zeit etwas, was von den Massen ferngehalten wurde. Eben weil es Macht darstellt. Früher war es hinter Klostermauern eingesperrt. Heute sind Unternehmen diese Wissensbunker, die ihr Wissen schützen wollen. Letztendlich mit positiver Absicht: Es geht um Wettbewerbsvorteile und das Überleben in einem rauhen Wirtschaftsklima.

Das Internet verändert dieses Spiel. Nie war Wissen offener und einer breiteren Masse zugänglich. Dass es offen zur Verfügung steht macht es jedoch nicht automatisch für jeden wertvoll. Es ist wertvoll für Gruppen, die bisher völlig von Wissen ausgeschlossen waren. Es bringt gigantische Veränderung in Entwicklungsländern. Es wird jedoch nur unter einer Voraussetzung wertvoller als „weggeschlossenes“ Wissen: Es muss offen diskutierbar sein und frei fliessen können. Zugangshindernisse zum initialen Internet haben diesen Prozeß bisher behindert.