Donnerstag, 10. November 2011

Gezwitscher auf die harte Tour.

Mit Twitter etwas Sinnvolles anstellen? — Aber ja. Twitter ist ja nicht nur eine Plattform für belangloses Geplapper und Geplapper über Geplapper. Es ist oberflächlich nicht zuletzt auch eine gut funktionierende und unkomplizierte Infrastruktur zur geordneten Aufnahme kurze Daten, insbesondere von mobilen Clients (Mobiltelefonen). Tippen und senden, fire and forget. Und Twitter erlaubt auch den Schutz dieser Daten vor unautorisiertem Zugriff. Eine sinnvolle Anwendung könnte beispielsweise darin bestehen, diese Daten später abzusaugen und daraus Berichte und Statistiken zu generieren1. Ich habe eine Software, die genau das mit Daten aus verschiedenen Quellen tut, und dachte nun daran, auch Twitter feeds mit einzubeziehen.

Aber Twitter ist anders. Twitter erlaubt seit einem Jahr keine HTTP basic authentication mehr, sondern benutzt statt dessen ausschließlich OAuth, ein aufwendiges, mehrstufiges und vergleichsweise kompliziertes Verfahren. Das Problem dabei ist — abgesehen von den illustren und wirklich schwer zu durchschauenden Fallstricken, die das miserabel dokumentierte Twitter-OAuth-API an sich bereithält2 — die Tatsache, daß Twitter einen Schritt der Authentifizierung in den meisten Fällen wohl unumgänglich interaktiv implementiert hat. Während des handshakes mit dem Authentifizierungsserver gelangt man, wohlgemerkt nachdem man dem Programm bereits zwei benutzerbezogene Twitter-Schlüssel übergeben hat, an einen Punkt, an dem man vom Twitter-API eine URL bekommt, die man unverzüglich in einem Browser anzeigen soll. Auf der dann erscheinenden Website befinden sich zwei Buttons, mit denen der Benutzer nun noch der Anwendung, die er gerade gestartet hat, den Zugriff auf seine Twitter-Daten erlauben oder diesen Zugriff abwehren kann. Erlaubt er den Zugriff, registriert Twitter die Anwendung im Account des Benutzers und vergibt Zugriffsschlüssel, die an die Anwendung übermittelt werden. Mit diesen insgesamt vier (!) langen (!) Schlüsseln kann die Anwendung künftig zugreifen.

Was aber nun, wenn die Anwendung keinen Browser starten kann? Oder wenn vielleicht gar keine reale Person davorsitzt, die den Button drücken könnte? Dieser Fall ist schlicht nicht vorgesehen. Es gibt auch keinen anderen Weg, eine Anwendung im Account des Benutzers zu registrieren - nur Entwickler (also Twitter-user, die einen Entwickler-Account haben) können das, offenbar zu Testzwecken. Twitter hat hier ganz einfach eine Tür eingebaut, aber verschlossen und klugerweise den Schlüssel weit weggeworfen.

Ich sagte: in den meisten Fällen. Ein Hintertürchen hat Twitter offengelassen: xAuth. Dieser Teil von OAuth erlaubt ausnahmsweise die Angabe von Benutzername und Paßwort zum Aufbau einer Verbindung. Das Recht, xAuth benutzen zu können, muß aber erst beantragt werden. Eine Antwort lautet beispielsweise:
Unfortunately, we are not granting xAuth for these kinds of purposes. Instead, we recommend that you set up a one-time OAuth ...
... den üblichen, oben von mir beschriebenen, interaktiven Weg also. xAuth bekommt man offenbar nur, wenn man wenigstens 1000 Benutzer mitbringt.

Wozu nun das Ganze? — Ich behaupte, der einzige Nutznießer dieser intransparenten und aus Benutzersicht nicht zuletzt auch schlicht idiotischen Kompliziertheit ist Twitter selbst, nämlich derart, daß auf diese Weise sämtliche Zugriffe von Anwendungen eineindeutig und bis ins Kleinste protokollierbar werden. Es läßt sich exakt verfolgen, welcher Benutzer mit welcher Anwendung wie oft zugreift, ob er weitere Anwendungen benutzt usw. Davon natürlich nirgends ein Wort.

Mehr dazu in diesem interessanten Artikel.

1 Es gibt beispielsweise viele Maschinen, Geräte, Meßstationen für Umweltdaten usw., die in regelmäßigen Abständen Statusmeldungen senden, bislang oft per e-mail oder SMS. Aber es ginge eben auch problemlos per HTTP über Twitter.

2 Ich halte mich für einen geübten Programmierer, habe aber etwa die Freizeit eine ganzen Woche (!) gebraucht, um mein Programm zu authentifizieren und die sog. user_timeline (den RSS-feed der Nachrichten) seitenweise abzufragen.

Mittwoch, 7. September 2011

Versionsabfolge bei Firefox.

Meiner Ansicht nach hat die schnelle Folge von sich immer wieder abwechselnden Versionen des Firefox-Browsers vor allem eine wesentliche Konsequenz: von den einst verfügbaren Plugins und Themes ist heute immer mindestens ein Drittel im "nicht verfügbaren" Zustand.

Freitag, 27. Mai 2011

Fortschritt.

Über Gnome 3 ist schon viel geschrieben worden. Ich will mich drum nicht in Einzelheiten und der Konfiguration verlieren und vor allem nicht jammern. Ich verstehe es nur nicht mehr, und warum es jetzt so kommen musste.

Gnome 2 war nie besonders schnell, aber brauchbar. (Ich habe eine ganze Zeitlang damit gearbeitet, bevor andere Aspekte wichtiger wurden.) So ziemlich jedes Funktionsmerkmal war vergleichsweise intuitiv zu erreichen und in seinen Möglichkeiten zu überblicken und selbst Benutzer(innen), die nicht unbedingt Informatik studiert hatten, konnten damit nach wenigen Minuten halbwegs sicher umgehen. Daran hat sich über Jahre nichts geändert.

Mit Gnome 3 ist das nun grundlegend anders. Gnome 3 (ohne die Gnome Shell) scheint mir wesentlich dadurch geprägt zu sein, dem unbedarften (Unter-)Durchschnittsbenutzer auf einem Netbook möglichst geringe Fehlermöglichkeiten zu bieten, allerdings durch Einschränkung von Funktions- und Konfigurationsmerkmalen. Das ist ein klarer Rückschritt. Mag sein, dieser Benutzer stellt heute eine wachsende Zielgruppe dar, die vielleicht durch Tablets noch mehr Zulauf bekommt. Aber sind Leistung und Funktion nicht auch berechtigte Anforderungen? — Wer mehr will, soll zur Gnome Shell greifen, einem Aufsatz. Diese richtet sich meiner Ansicht nach nun interessanterweise aber an eine komplett andere Zielgruppe: den Benutzer, der Apple-Produkte kennt und liebt, noch dazu einen, der ausgerechnet in der Bedienung der Oberfläche selbst, d.h. im Navigieren zwischen Fenstern, Arbeitsflächen und Äpps, hin und her und wieder zurück, eine merkwürdige, narzisstische Erfüllung findet. Ich hab das nie begriffen. Ich hab immer gedacht, eine Oberfläche dürfe nur so gering wie gerade nötig auf dem Bildschirm in Erscheinung treten, sie müsse dem Benutzer selbstverständlich die Möglichkeiten geben, seine Aufgaben zu realisieren, dürfe ihn dabei aber nicht behindern, ihm schon gar nicht ein gewisses Vorgehen aufzwingen, Platz wegnehmen und Zeit kosten. Bei Gnome 3 mit der Gnome Shell ist gerade das Gegenteil der Fall. Die Gnome Shell ist in meinen Augen eine völlig überflüssige Idiotie, ein Auswuchs des Stils, den Smartphone-Oberflächen in den letzten Jahren prägen, man kennt ja gar kein anderes Feld der Innovation mehr. Das Beste an der Gnome Shell ist, dass man sie rückstandsfrei entfernen kann.

Fazit: Während Gnome 2 sich offensichtlich an der Oberfläche von Windows Vista orientierte, um möglichst auf niedrigem wie auch auf hohem Niveau universell benutzbar zu sein, liefert Gnome 3 ein merkwürdig zerrissenes Bild. Es taugt mit oder ohne Gnome Shell meiner Ansicht nach kaum für jemanden, der ernsthaft damit arbeiten will. Gnome macht damit deutlich, dass es seinen Zenit definitiv überschritten und das Stadium der Selbstgefälligkeit erreicht hat.

P.S.: Das Erste, womit Gnome 3 nach dem ersten Start den erwartungsvollen Benutzer begrüsst, ist ein Meldungsfenster mit dem Inhalt, Gnome 3 konnte nicht korrekt geladen werden. Und das ist wahrscheinlich die Wahrheit.

Freitag, 1. April 2011

Tabellenwerk.

Relationale Datenbanksysteme gelten nicht in jeder Hinsicht als unproblematisch. Sie sind allerdings breit etabliert und durch ausgereifte Software unterstützt.

Ein möglicherweise unterschätztes Problem ist oft tiefes Unverständnis darüber, dass Daten aufgeteilt und normalisiert werden müssen, um vernünftig relational abgebildet werden zu können. Dieser Vorgang wird erheblich beargwöhnt, selbst von Leuten, die es wissen müssten. Es gibt tatsächlich nicht selten Fälle, in denen (in einer Frage von so zentraler Bedeutung!) das Management selbst und eigenhändig (d.h. mit PowerPoint) aufwendige Datenmodellierung betreibt. — Diese Modelle sind oft auffällig durch Excel geprägt. Meist besteht die ganz elementare Anforderung, Daten direkt, d.h. mit Cut & Paste, aus oder nach Excel übernehmen zu können. Das führt zu gleich mehreren Konsequenzen:
  • Man muss sich hinsichtlich der möglichen Datentypen einschränken und darf am besten nur Text-Typen verwenden.
  • Man muss hinsichtlich der Primärschlüssel und relationalen Verknüpfungen und Bedingungen (constraints) sehr vorsichtig sein und darf nur laxe (oft gar keine) konkreten Festlegungen treffen.
  • Beziehungen werden "durch Programmlogik" abgebildet, d.h. oft sind zeitaufwendige Suchen und komplexe joins notwendig, um die einfachsten Dinge zu ermitteln, weil keine klaren Beziehungen definiert sind.
  • Inkonsistente Daten gelten nur als kleines Übel, denn das Vertrauen in die eigene Arbeit ist durchaus hoch.
  • Daten, die sich ohne Aufteilung nicht unterbringen lassen, werden generell in Frage gestellt - am Ende verzichtet man sogar freiwillig darauf.
  • Auch nicht zusammengehörende, sogar typfremde Informationen stehen zusammen in einer Tabelle.
Ich habe vor einigen Jahren einmal einen Oracle-10-Server erlebt, der eine einzige Tabelle mit acht Spalten besass. Um darin bestimmte, inhaltlich zusammengehörige Gruppen von Datensätzen zu unterscheiden, trugen einzelne Datenwerte vorangestellte Buchstabenkombinationen ...

Datenbankserver unterliegen offenbar einer gewissen, latenten Gefahr, zur Karrikatur ihrer selbst gemacht zu werden. Ein interessanter Fall, wo eine konkrete Benutzeroberfläche auf ein Design zurückwirkt.

Montag, 14. März 2011

Browserdilemma.

Mit der Version 6 seines hauseigenen Betriebssystems liefert RIM einen neuen Browser mit zahlreichen Neuerungen, und der erste Blick ist tatsächlich erfreulich. Endlich beherrscht das Programm Tab-Seiten, auf Deutsch vielsagend "Registrierkarten" genannt. Auch die Startseite wurde überarbeitet. Dieser Browser ist damit nun optisch beispielsweise Opera Mini ebenbürtig.

Das war's dann aber auch. Bereits nach wenigen Minuten wird man feststellen, dass die neue Version oftmals (!) eine Seite schlicht nicht anzeigen kann, weil sie "zu gross" ist. Man fällt dann einfach, gelegentlich sogar wortlos, auf die Startseite zurück. Ist das heute ein nennenswertes Kriterium, die Grösse einer Seite? Warum können andere Browser (darunter solche, die die gleiche Browserengine benutzen, und auch die eigene Vorgängerversion) problemlos solche Seiten anzeigen? — Die Vergrösserungsfunktion erlaubt offensichtlich nur noch zwei Stufen: entweder ist die Schrift so klein, dass zwar die ganze Seite dargestellt wird, man aber die Schrift nicht lesen kann, oder die Schrift ist zwar auch ohne Brille gut lesbar, man muss nun jedoch scrollen und scrollen und scrollen ... Ich habe auch bisher keine Möglichkeit gefunden, die einmal vollzogene Vergrösserung wieder rückgängig zu machen. — Bitter ist der Verlust sämtlicher Tastenkombinationen, über die sich die Vorgängerversion gut steuern liess. Die aktuelle Version lässt zwar über eine Einstellung das Aktivieren von Tastenkombinationen zu, diese Einstellung scheint allerdings keinerlei Bedeutung zu haben.

Ich vermute etwas Hintergründiges: eine streng projektgetriebene Entwicklung - die Laufzeit eines Softwareprojekts und damit dessen Abschlusstermin werden im Voraus vom Management anhand äusserer Kriterien festgelegt, die Ausgereiftheit der Anwendung wird einfach auf diesen Termin hin definiert. Was zum Termin hin nicht fertig wird, das bleibt halt so, bis es ggf. ein Anschlussprojekt gibt, was letztendlich eine Frage der Anzahl der Benutzerbeschwerden ist. Bleibt diese Anzahl unterhalb einer kritischen Schwelle, so bleibt auch die Software auf ihrem Stand, ggf. sogar langfristig. — Ich stelle mal eine These auf: solcherart projektgetriebene Entwicklung ist immer (!) nachteilig für den Gegenstand der Entwicklung. Es handelt sich um eine Vorgehensweise, die einzig Interessen mehrstufigen Managements bedient. Die Folgen kann man typischerweise unmittelbar an den Produkten ablesen.

Fazit: Mit diesem Browser hat RIM sich und dem Benutzer keinen Gefallen getan. Wer jetzt mit einem BlackBerry ins Internet will, wird auf Bolt oder Opera Mini ausweichen, konsequenter als früher. Die neue Version 2.5 von Bolt ist gewohnt etwas behäbiger, besitzt aber ein exzellentes Schriftbild sowie eine durchdachte Tastatursteuerung.

Donnerstag, 24. Februar 2011

Firewall-Update.

In einem ihrer aktuellen und ein wenig surrealistischen Werbespots lässt das grösste Schweizer Telekommunikationsunternehmen einen Trupp kleiner Männlein im Innern einer fiktiven, technischen Infrastruktur ein Firewall-Update durchführen. Der Trupp besitzt umfangreiches Feuerlöschgerät und bekämpft einen Brandherd (offenbar die Firewall) bis das Böse besiegt ist. Anschliessend gegenseitiges Schulterklopfen. — Man mag sich nun fragen, was man in der verantwortlichen Marketingabteilung unter einer Firewall und einem Firewall-Update eigentlich versteht und wie die Firewall anschliessend - ohne Feuer - ihre Arbeit zuverlässig verrichten soll. (Und welche Rückschlüsse man auf die Kompetenz des Unternehmens ziehen darf ...) Vorschlag: man hätte ja beispielsweise ein ausgegangenes Feuer auch wieder anzünden können ... — Das kommt halt dabei heraus, wenn Idioten für Idioten Werbung machen.

Dienstag, 15. Februar 2011

Mobil.

Das neue Spielzeug in Betrieb genommen. Und es gibt nicht einmal etwas zu meckern. — Das eigentlich Neue und Überraschende daran ist nun, zu entdecken, was man aufgrund der grossen Mobilität alles damit anstellen kann, Dinge also, die mit einem PC gar nicht und auch mit einem Laptop nicht gut funktionieren, GPS-Tracking beispielsweise (man beachte die Kompassnadel auf dem roten Icon). Telefonieren ist hingegen so ziemlich das Letzte, auf das ich kommen würde ... — Schade, die Linux-Unterstützung ist arg dürftig. Sogar der AppStore im Internet klärt mich jedesmal wieder neu dümmlich darüber auf, dass ich das falsche Betriebssystem habe und dass drum die Website (!) nur eingeschränkt laufe.

Dienstag, 30. November 2010

Wer?

Savannah ist down, nun schon den dritten Tag, was ärgerlich ist, da meinerseits zwei wichtige commits anstünden, die nun warten müssen, wie es heisst: bis irgendwann "during the week". — Wer hackt Savannah? Doch zweifellos einer, der gelinde gesagt etwas falsch verstanden hat.

Mittwoch, 17. November 2010

Weltumspannend.

Eines ist schon genial: man entdeckt heute einen Fehler in einer Software oder eine Ungereimtheit oder hat einen Wunsch oder Verbesserungsvorschlag. Man schickt also, was längst das Natürlichste von der Welt ist, einfach eine elektronische Nachricht durch das Netz und hat nach ein paar Rückfragen, die in Minuten um den halben (oder vielleicht auch ganzen) Erdball gehen, vielleicht sogar noch am selben Tage eine Lösung auf dem Tisch. Und der Protagonist bedankt sich auch noch dafür, dass man eine Anregung gab. — Man kann sich kaum noch vorstellen, wie bzw. dass es früher funktioniert hat.

Dienstag, 2. November 2010

Update: Zwang zur Sicherheit

Die Begründung dafür, dass die Anwendung nicht für Linux herausgebracht wurde, lautet, wie inzwischen schriftlich mitgeteilt wurde, es gebe bei Linux zu viele Varianten. Das klingt natürlich auf den ersten Blick einleuchtend, Windows ist schliesslich Windows.

Oder nicht?

Also erstens handelt es sich um ein Java-Programm. Und ich kenne inzwischen eine ganze Reihe Java-Applikationen (Eclipse, RssOwl, SmartSVN, ...), die aus dem Stand zufriedenstellend laufen, ohne dass dazu tatsächlich nenennswerter Aufwand von Linux zu Linux getrieben werden müsste.

Zweitens allerdings, und das wiegt weit schwerer, ist inzwischen auch die Anzahl der Betriebssysteme, die den Namen Windows tragen, praktisch vollkommen unüberschaubar geworden. Wikipedia listet für XP 9 verschiedene Editionen, für Windows 2003 nicht weniger als 13 (ich bin selbst erstaunt), für Vista 6, für Windows Server 2008 8 und für Seven bislang 6, das wären insgesamt zunächst 36, diverse Service Packs und Einzelupdates (und frühere, durchaus im Heimbereich noch immer im Einsatz befindliche Betriebssysteme) noch gar nicht mitgerechnet. Microsoft listet in einem Algorithmus1 in der MSDN selbst insgesamt 46 Zeichenketten auf, die als möglicher Teil von Windows-Produktbezeichnungen dienen können. Man kann jetzt (selbst unter der Annahme, dass längst nicht jede Kombination tatsächlich existiert) mutmassen, wieviel verschiedene, offizielle Varianten es gibt. Und in der Tat müssen Windows-Entwickler erheblichen Aufwand treiben, um die Kompatibilität einer Anwendung unter verschiedenen Windows-Betriebssystemen zu gewährleisten.

Hinzu kommt der Umstand, dass unter Windows ja jedes x-beliebige Update Änderungen am System durchführen kann, was in der Praxis zu dem bekannten Phänomen führt, dass es schlichtweg nicht zwei Windows-PCs gibt, die absolut gleich sind.

Wie also, zu viele Varianten unter Linux? Was ist das für eine Begründung?

1 man beachte übrigens die Komplexität dieses Algorithmus', Microsoft hat offenbar selber Schwierigkeiten, seine Produktbezeichnungen zweifelsfrei auseinanderzuhalten