Google hat sich mal wieder seine Statistik näher angesehen und festgestellt, dass man anhand der Häufigkeit der Suchbegriffe für Grippe einen jährlichen Trend feststellen kann. Durch Aggregation der Daten werden Diagramme generiert und auf der Seite Flu Trends (Grippe-Trend) präsentiert. Die Daten werden aber nur für die USA gesammelt und werden auch pro Bundesstaat angezeigt.
We’ve found that certain search terms are good indicators of flu activity. Google Flu Trends uses aggregated Google search data to estimate flu activity in your state up to two weeks faster than traditional flu surveillance systems.
In diesem Zusammenhang bin ich auf die “WayBackMachine” gestossen, einem Archivierungsdienst für Internetseiten, der mir bislang unbekannt war. Das Internet-Archiv, ein gemeinnütziges Projekt, archiviert neben Momentaufnahmen von Webseiten auch Bilder, Texte, Audio-Dateien und Software bis zum Jahr 1996, als das Projekt gegründet wurde.
Nach Eingabe einer URL erhält man als Suchergebnis eine zeitliche Auflistung der indexierten Momentaufnahmen. Durch Anklicken eines Datum erhält man dann die damalige Webseite.
Der Gesamtumfang der indexierten Seiten beträgt momentan ca. 85 Milliarden Seiten, der Datenbestand beträgt zur Zeit ca. 2 PetaBytes und wächst monatlich um 20 TeraBytes an.
Eigentlich wollte ich mich zwischendurch mal mit der AJAX-Programmierung vertraut machen und habe mir dafür ein kleines Projekt gesucht. Meine Wahl fiel auf das Generieren von Diagrammen mithilfe der Google Chart API. Die Chart API erlaubt es, mithilfe von Parametern, die an eine Stamm-URL angehängt werden, dynamisch Diagramme von Google als PNG-Bilddateien generieren zu lassen. Kurz hatte ich schonmal hier in einem älteren Artikel berichtet.
Heraus kam mittlerweile der “Google Chart API Generator”. Mit diesem Tool muss man sich nicht erst die Parameter in der URL zusammenbauen und anschließend raten, was man falsch gemacht hat, sondern kann durch einfaches Ausfüllen und Aktivieren von Optionen erstmal seinen Prototypen des gewünschten Diagramms erstellen, um diesen dann in seinem Projekt weiter verwenden zu können. Ich habe dabei versucht sämtliche Optionen (Farben, Gitternetzlinien, Labels, etc) und Diagrammtypen (Linien-, Balken-, Netz-, Kuchendiagramme, u.a.) der Chart API umzusetzen.
Verwendet habe ich hierzu das XAJAX-Framework, was sich als sehr simpel zu bedienen herausstellte. Schnell hatte ich mich in das Projekt reingesteigert und viel programmiert. Nach und nach fehlte mir aber die Zeit, das “Diagramm-Projekt” voranzutreiben und den letzten Feinschliff vorzunehmen und so entschloß ich mich mittlerweile das Projekt zum jetzigen Stand als “Alpha-Version” freizugeben. Sollte sich das Tool als brauchbar und nützlich für den ein oder anderen herausstellen, werde ich den Chart-Generator weiter ausbauen.
Momentan ist er noch etwas langsam (eventuell liegt das auch am Hoster), die Beispiel-Funktion habe ich noch nicht geschafft, die auf einen Klick das Formular ausfüllen soll und hier und da sind noch kleine Fehler bzw. FF/IE-Darstellungsprobleme zu korrigieren.
Dazu empfiehlt es sich aber vorher die Einstellungen für Routen und Touren im Menü Tools/Optionen/Touren (unten) auf die Werte “80, 150, 250″ einzustellen, um einen besseren Blick zu bekommen. Zuvor sollte man auch Google Earth etwas Zeit lassen, bis alle Gebäude vollständig heruntergeladen sind.
Insgesamt beeindruckend gemacht, es lohnt sich auf alle Fälle “nah ranzugehen” und die Details anzuschauen! > Download-Link/KMZ-Datei
Für alle, bei denen es nicht funktioniert, hier ein YouTube-Zusammenschnitt:
Unter dem Namen Lively startet Google eine neue virtuelle 3D-Chat-Welt, die auf den ersten Blick an Second Life erinnert. Allerdings ist Lively momentan “nur” eine Chat-Welt mit bunten Avataren (von der es schon eine Reihe gibt) im Gegensatz zu Second Life, in dem das Leben und Handeln momentan im Vordergrund steht.
Im Grunde genommen ist Lively allerdings keine richtige “3D-Welt” sondern besteht aus einzelnen Mini-Welten. Der Vorteil den Lively damit anstrebt ist die Integration ins Web. Lively lässt sich über z.B. IFRAMEs in Web-Seiten einbinden und über Gadgets auch in Social-Communites wie Facebook oder MySpace. Dies soll das Leben und die Kommunikation auf Web-Seiten ankurbeln. Andersherum kann man in Lively auch in virtuellen Fernsehern YouTube-Filme und Bilder in Fotorahmen ansehen.
Momentan ist Lively, so wie es präsentiert wird, eigentlich nicht der Rede wert und nur eine nette Spielerei. Aber durch die hohe Akzeptanz von Google-Diensten, die Anpassbarkeit und die großen Communities könnte daraus schnell etwas größeres werden. Vor Allem wird man im Gegensatz zu Second Life künftig öfters auf Web-Seiten über Googles Lively stolpern…
Zur Installation muß ein kleines Setup heruntergeladen werden (nur für Windows momentan), das u.a. Plugins für Firefox und Internet-Explorer installiert. Die Anmeldung erfolgt über einen bestehenden Google-Account. Nach der Installation lassen sich diverse Räume betreten, die User nach Belieben erstellen können. Die Räume werden je nach Popularität und Aktivität auf der Startseite angezeigt und können durch einen Klick betreten werden.
Laut Netzzeitung hat Second Life sofort gekontert,
es sei gelungen, eine virtuelle Figur (Avatar) zwischen verschiedenen Plattformen zu «teleportieren», teilte das Unternehmen am Dienstag in San Francisco mit. Damit könnten die digitalen Bewohner erstmals nahtlos von einer Welt in eine andere wechseln.
Damit wacht Second Life nun auch aus seiner geschlossenen Gesellschaft auf und muß sich an die Breite und Vielfältigkeit des Webs anpassen - ob das nun schon zu spät ist?
Denn von Googles Diensten weiß man, dass sie ziemlich schnell wachsen und das ein oder andere Portal mal eben nebenbei überrollen…
Eine nette Spielerei, die Stefan Grothkopp entwickelt hat: Goosh.org. Goosh ist eine Web-Anwendnung, die Google-Suchen über eine Art Unix-Shell ermöglicht.
Suchanfragen werden z.B. mit > “web Suchbegriff” eingegeben, eine Hilfe bekommt man über den Befehl “help”.
Eine nette Anwendung in Zeiten des multimedialen Webs und für Informatiker der alten Schule eine wahre Freude…
Man hat ja schon viel von den tollen Einrichtungen und Büros der Google-Firmensitze gehört und gesehen. In einem Picasa-Webalbum sind nun die Bilder des Züricher Bürogebäudes zu sehen… so lässt sichs anscheinend sehr gut arbeiten…
Nachdem relativ viele nach Code-Beispielen suchen, um Geo-Koordinaten von Google-Maps via Visual Basic (VB) zu ermitteln, habe ich hier einen Auszug angehängt, wie man dies über einen WebRequest machen kann:
Imports System.Console
Imports System.IO
Imports System.Net
Module Module1
Sub Main()
Dim sURL As String = "Maximilianstr. 4;86150 Augsburg, Deutschland"
Dim sKey As String = "!euer_API_Key!"
Dim sBuffer As String sURL = "http://maps.google.com/maps/geo?q="
& System.Web.HttpUtility.UrlEncode(sURL)
& "&output=csv&key=" & sKey
Dim oRequest As WebRequest = WebRequest.Create(sURL)
oRequest.Method = "GET"
Dim oResponse As WebResponse = oRequest.GetResponse()
Dim oStream As New StreamReader(oResponse.GetResponseStream())
sBuffer = oStream.ReadToEnd()
WriteLine(sBuffer)
oStream.Close()
oResponse.Close()
ReadLine()
End Sub
End Module
Einfach die Adresse und den Key durch seinen eigenen Google Maps API-Key ersetzen.
Als Ergebniss bekommt man dann z.B.:
200,8,48.368435,10.898304
Die letzten beiden Zahlen sind die Koordinaten. Die beiden anderen geben den Statuscode an. Nachzulesen unter der Google Maps API Dokumentation.
Das ganze läßt sich natürlich erweitern, indem man z.B. eine CSV-Datei einliest und diese in einer Schleife abarbeitet.
Eine Beispiel-Anwedndung habe ich unter diesem Artikel beschrieben.
Bitte beachten:
Was ich jetzt nicht weiß ist, inwieweit die Koordinaten-Ermittlung auf diese Weise von Google Maps überhaupt erlaubt ist. Bei einem Test mit ca. 1000 Adressen wurde ich auf jeden Fall geblockt. Irgendwan kam als Response etwas in der Art: “Es wird scheinbar versucht maschinell Daten abzufragen. Die IP wurde vorübergehend geblockt.” Nach einer Weile ging es dann wieder.
Eine kleine Zeitverzögerung per Zufallsgenerator hat aber auch dieses Problem behoben ;-)