Docs

Das neue Docs ist schon eine Weile da. Doch wie funktioniert das eigentlich mit der Kollaboration? Und wie kann man Bandbreiten-sparend so viele Daten übertragen? Dafür gibt es ein spezielles "Operational Transformation", welches Kollisionen vorbeugt und für ein reibungslosen Version-Verlauf unter mehreren Benutzern sorgt. 

Damit stehts ein reger Austausch garantiert ist - und damit auch immer das Dokument gegenüber aktuell ist - muss eine professionelle Lösung her. Man kann nicht einfach das ganze Dokument zum anderen Nutzer übertragen - viel zu lange würde es dauern, geschweige von dem Traffic, was das bei jeder Abfrage erzeugt. Deshalb hat sich Google das Operational Transformation-System (OT) zu nutze gemacht: Es werden nur Veränderungen übertragen.

Dabei unterscheidet Google Docs in drei verschiedene Arten von Veränderungen: InsertText (Text einfügen), DeleteText (Text löschen) sowie ApplyStyle (Formatierung anpassen). Nun wird nacheinander jede Veränderung im Revision-Log gespeichert. Klinkt sich ein neuer Client hinzu (Dokument wird geöffnet), dann lädt er sich den kompletten Log herunter und spielt das quasi Live ab. Ansonsten wird nur die Veränderung abgefragt, die sich seit dem letzten Nachfragen geändert hat.

Im Beispiel von Google gibt es John und Luiz. Beide arbeiten gemeinsam an einem Dokument in Google Docs. Ausgehend vom Text "EASY AS 123" sollen nun Updates durchgeführt werden und diese sollen zum Gegenüber synchronisiert werden. Die Zahlen im roten Feld entsprechen je einem Zeichen. Ein Unterstrich stellt das Leerzeichen dar. John's Aktionen werden in hellgrün und Luiz' Aktionen in gelben Boxen dargestellt.

Erstes Beispiel: "EASY AS 123" soll zu "EASY AS ABC" geändert werden. 

Beispiel 1 

Erklärung: Vom Ausgang her haben wir "EASY AS 123". Nun markiert John "123" und schreibt stattdessen "ABC". Dennoch bleibt das ein komplexer Prozess: Zeichen 9 bis 11 werden gelöscht und es werden A B und C stattdessen eingesetzt. Die Kurzform in diesen Fall wäre "InsertText 'ABC' @9", was bedeutet: Ab Stelle 9 "ABC" eintragen. Diese Kurzform wird in dem Revision-Log zusammengefasst, ansonsten kommen Veränderungen direkt so an, wie so oben stehen (Buchstabe für Buchstabe Live).

Aber nicht immer ist es so einfach. Beispiel 2: Angenommen, John arbeitet gerade an "ABC", Luiz will aber gleichzeitig "IT" vor "EASY" schreiben. Blöd nur, wenn dann das Zeichenindex (1 bis 11, siehe oben) von John und Luiz völlig verschieden ist.

Beispiel 2

Jetzt ist es aber so, dass Luiz noch nicht die Änderung von Beispiel 1 mitbekommen hat, ganz einfach weil es in der selben Sekunde geschehen ist. Auf der folgenden Grafik kann man das schön verfolgen - was kommt nun wohl bei Luiz an, wenn er nicht Fuchs sondern Hund will? 

Kollision bei Google Docs

Das ist aber nicht wirklich die Frage, denn bei Luiz steht am Ende wirklich "The quick [FETT]brown dog[/FETT]. Und bei John kurze Zeit später ebenso. Nun erkläre ich euch, wie das im Detail mit den o. g. Veränderungen funktioniert. Also weiter im Beispiel.

Nun wäre der logische Schritt, dass zuerst die Delete-Anweisung von Beispiel 1 durchgesetzt wird:

Beispiel 2: Konflikt mit Beispiel 1 

Damit so etwas nicht passiert, gibt es ein ausgeklügeltes System, welches solche Kollisionen ausgleicht. Das JavaScript von Google Docs muss nun John's Änderungen auf Luiz' Dokument relativ umsetzten, das heißt: Das Zeichen-Index muss jetzt angeglichen werden: Zu den 11 Zeichen müssen nun 2 Zeichen hinzugerechnet werden ("IT"-Eingabe) und diese müssen global umgesetzt werden. Also wird jetzt nicht Zeichen 9-11, sondern 11-13 gelöscht:

Beispiel 2: Eine Konfliktlösung - Zeichen-Index lokal aktualisieren 

Das sieht doch schon viel logischer aus. Also hier noch einmal eine Zusammenfassung:
  • Es gibt 3 Veränderungsarten: Delete(Text), Insert(Text) und ApplyStyle
  • Weiterhin gibt es ein Zeichen-Index, welches jeden Buchstaben eine eindeutige Zahl zuweißt
  • Veränderungen werden erst lokal durchgesetzt (Zeichen-Index aktualisieren)
  • dann werden sie synchronisiert, in einem Revision-Log abgespeichert
  • der Revision-Log wird von Clients inkrementell geladen
  • Veränderungen werden mit den lokalen Zeichen-Index relativiert
  • Veränderungen werden ausgegeben
Nun noch ein anderes Beispiel aus der Praxis, damit man sieht, wie ApplyStyle mit DeleteText und InsertText zusammen funktioniert:
Wenn John in sein Dokument "I AM HAPPY" schreibt, dann hat sein lokaler Index 10 Zeichen. Natürlich wird jeder Buchstabe via InsertText an Luiz übertragen (InsertText 'I' @1, InsertText '_' @2, usw...).
Jetzt markiert John im Text das "AM". Das bedeutet im Quelltext "ApplyStyle 'mark' @2-3" wird an den Revision-Log übergeben. Luiz denkt sich, dass er auch mal etwas macht und schreibt vor dem "HAPPY" einfach "REALLY" und hinter "HAPPY" ein Fragezeichen. Sein Index beträgt jetzt 1-18; John löscht das "AM" (DeleteText @2-3). Bei Luiz rechnet das JavaScript jetzt um, bleibt in dem Fall aber bei Zeichen 2-3. Synchronisierung.

Wie im letzten Artikel bereits erklärt, geht das alles über einen ziemlich flotten Server irgendwo da in der Wolke. Also Client -> Server -> Client und umgedreht. Also ist es ziemlich schwer nachzuvollziehen, ob auch überall das selbe angekommen ist. Daher muss das JavaScript 100% zuverlässig arbeiten und den Zeichen-Index ständig aktuell halten. Eine wirkliche Meisterleistung, die ein kleines Webtool namens Google Docs da vollbringt.
Chrome Frame

Genau vor einem Jahr hat Google das Internet Explorer Plugin Chrome Frame veröffentlicht. Nachdem im Juni eine Beta-Version erschienen ist, wurde nun die erste stabile Version freigeben. Chrome Frame integriert sich in den Internet Explorer und bringt ihm so HTML5 und CSS3 bei. Mit Chrome Frame werden aber nur Webseiten gerendert, die das entweder per Meta-Tag oder per HTTP-Header anfordern.

Seit der Beta-Version hat Google hart daran gearbeitet die Geschwindigkeit und Stabilität zu verbessern. Der Start auf Windows Vista und Windows 7 ist nun dreimal schneller und die meisten bekannten Konflikte mit anderen Plugins wurden behoben. 

Anfangs nutzte Google Chrome Frame selbst nur für Google Wave. Dadurch wollte man sich Kosten für die Anpassung an den Internet Explorer sparen. Heute verwendet Google Chrome Frame - wenn es installiert ist - in Google Docs, orkut und YouTube. Google Calendar und Google Mail sollen, so heißt es in der Ankündigung schon bald nachziehen. 

Google wird Chrome Frame genauso oft aktualisieren wie man es mit Google Chrome vorhat. Hier soll es alle sechs Wochen ein Update geben. Das nächste müsste ungefähr Mitte Oktober kommen. In den nächsten Versionen wird Google weitere Änderungen für mehr Geschwindigkeit vornehmen. Derzeit benötigt das Plugin bei der Installation noch Admin-Rechte, was sich in einer kommenden Version ändern soll. 

Wer bisher Chrome Frame installiert hat, war meist ein Beta-Nutzer. Diese erhalten in wenigen Tagen automatisch im Hintergrund ein Update auf die stabile Version. Wer lieber die Beta verwenden möchte, kann sie hier unterladen, die Entwicklerversionen (dev) gibt es hier.

Administratoren können in einem Unternehmen mit dem msi-Installer eine Installation im Netzwerk vornehmen. Der Vorteil ist, dass die Mitarbeiter weiterhin die gewohnte Oberfläche nutzen können, aber dennoch moderne Techniken im Browser möglich sind.

Die Versionsnummer:
Stable: 6.0.472.62
Beta:  6.0.472.62
Dev: 7.0.517.8
New
Google hat so eben eine neue Übersichtsseite gestartet. Google New liefert eine Übersicht über Updates bei allen Google Diensten und soll in Zukunft dann auch über neue Services informieren. 

Mit wenigen Handgriffen kann man sich auch nur die Infos raus suchen, die einen interessieren, wie etwa Updates bei Google Mail oder rund um "Social". Google New zeigt eigentlich nur die englischen Blogposts auf einer einzigen Seite an. Im Header zeigt man das aktuell größte Update an. Derzeit wird hier Google Instant dargestellt. 

Über die Suche findet man auch Updates aus der Vergangenheiten ohne, dass man viel klicken muss.



» Google New
News

Google News feiert heute Geburtstag. Vor 8 Jahren wurde der Nachrichtendienst mit 4000 unterschiedlichen Quellen gestartet. Heute verfügt der Service 50.000 Quellen und existiert in 72 Auflagen in 30 verschiedenen Sprachen. Mit der Entwicklung des Dienstes hat Google wenigen Tagen nach den Terroranschlägen am 11. September 2001 angefangen.

Am 22. September 2002 ist der Dienst dann online gegangen und konnte von den englischsprachigen Nutzern über einen Tab über der Suchbox ausgewählt werden. Im Laufe der Zeit hat Google neben weiteren Quellen auch immer mehr Features eingeführt: Videos, eigene Sektionen, News aus der Umgebung, neues Design der Startseite und noch einiges mehr.

Google News im Jahr 2002

Mithilfe des Indexes von Google News hat Google eine Liste veröffentlicht. Sie zeigt die Ereignisse von 2003 bis heute, die jeweils die meisten Artikel in den Google News hatten. Fünf der acht Themen haben etwas mit Politk zu tun, zwei weitere sind Naturkatastrophen und 2009 löste der Tod von Michael Jackson die meisten Artikel aus. 
Google News wird immer wieder kritisiert. Verleger und Zeitungen werfen Google vor Inhalte zu nutzen ohne dafür etwas zu bezahlen. Auf der anderen Seite sorgt Google News aber auch für Traffic bei den Online-Auftritten der Zeitungen.
Google Mail Android Google hat gestern eine neue App für Google Mail auf dem Android veröffentlicht. Leider funktioniert es bei den meisten Nutzern aus Deutschland nicht und die App wird im Market nicht gefunden. Allerdings gibt es über einen Umweg dennoch eine Möglichkeit die neue Google Mail App zu installieren. Eines nochmal vorab: Die neue Google Mail App steht nur für FroYo-Geräte bereit. Zuerst richtet Euch einen Account bei AppBrain ein. Dies geschieht einfach mit Eurem Google Account. Dann installiert die App "AppBrain App Market" und folgt den Anweisungen. Als nächstes ist die Installation der App Fast Web Installer nötig. Nach dem Download folgt auch hier die Anweisungen, die das Android-Phone zeigt. Jetzt ruft die Google Mail-App auf der Webseite von AppBrain auf und klickt auf den Button Install. Als nächstes öffnet sich ein Info-Dialog der über die benötigten Rechte der App aufklärt. Hier einfach auf Install klicken und schon sollte das Android-Phone mit dem Download beginnen und Google Mail installieren. Nach der Installation weißt die App beim ersten Start auf die neuen Features hin.