Kategorien
In eigener Sache

Was macht der Sebbi eigentlich so?

Da postet er nur noch Videos und Comics und kurze Blogartikel und es kommt das Gefühl auf er würde sein Blog vernachlässigen. Stimmt. Wenn man sonst einiges zu tun hat ist es schwer sich um ein Blog zu kümmern, wenn es so viel einfacher ist einfach einen Tweet abzusetzen und damit seiner Informationspflicht nachgekommen ist ;-)

Heute mal nicht. Also was mache ich gerade eigentlich so?

Golfen

Das Wetter ist ziemlich einladend, dennoch war ich dieses Jahr auch noch kein einziges Mal auf der Driving Range und nur einmal in Orlando eine Runde Golfen. Wahrscheinlich kann ich’s auch schon gar nicht mehr, aber nachdem ich letztes Jahr ja sogar ein Turnier gewonnen habe peile ich dieses Jahr mal das einstellige Handicap an … höhö ;-) Träumer ich! Aber heute Abend erstmal wieder Bälle kloppen, jawohl!

Car-PC

Mein Car-PC – oh ja es gibt ihn noch – kann mittlerweile auch Radio und OBD2. Ersteres mehr schlecht als recht und bei der OBD2-Sache scheint es auch keine wirklich guten Tools zu geben. Ursprünglich habe ich mir ja gedacht, dass diese Car-PC Geschichte richtig toll wird, aber letztendlich ist es doch nur ein MP3 Player mit Bildschirm geworden und dazu noch nicht mal ein besonders guter :/

Zwar gibt es mit Centrafuse eine recht ansehnliche Software, die mit bestimmter Hardware wahrscheinlich auch zusammenarbeitet und für vieles ausreicht, aber letztendlich ist Navigation auf einem PC kein Spaß, ein Radiostick an der Autoantenne nicht unbedingt das beste Empfangsgerät, Freisprechen über Bluetooth weiterhin ein Traum und Centrafuse kein besonders toller MP3 Player, aber das erwähnte ich ja schon :-)

Jetzt könnte ich hergehen und das alles besser machen, aber mir ist es eigentlich auch schon fast egal. Es funktioniert halbwegs und hat einen gewissen Geekfaktor in das Auto gebracht. Reicht erstmal.

Blogmetricx

Nachdem ich diese Domain(s) Jahr für Jahr bezahle und ich ursprünglich eine Art Google Analytics für Blogs darauf bauen wollte, aber Google schneller war, habe ich die letzten Wochen nach einem Verwendungszweck für den Namen gesucht. Einige Ideen im Zusammenhang mit Twitter und Blogs kamen mir in den Sinn und wurden dank Erfahrungen mit App Engine beim „Projekt Tagesthema“ auch gleich umgesetzt. Besser: versucht … denn es ist gar nicht so einfach Tweets zu parsen bzw. das eigentlich schon, aber nicht allen Links hinterher zu laufen.

Bei Gelegenheit versuche ich das vielleicht nochmal etwas zielgerichteter, aber schon jetzt kann ich euch sagen, Google App Engine eigentlich sich bestimmt hervorragend für riesige, skalierende Webseiten, nicht aber für Aggregation von riesigen Datenmengen. So teuer wie dort Operationen auf dem Datastore sind, das ist nicht feierlich und deutlich schneller und effizienter auf einem normalen Server (Amazon EC2 oder auch nur ein Vserver) zu machen.

Django

Und weil ich dann mall wieder in Python drin war, habe ich auch gleich noch angefangen eine Webseite mit Django zu bauen. Auf App Engine auch nicht unbedingt leicht, aber immer noch deutlich schneller als alles selbst zu programmieren. Ach ja, ich mag Python irgendwie, ganz im Gegensatz zu Objective-C …

iPhone

Der Sebbi hat ja jetzt ein MacBook und obwohl er diese Maschine super findet, fragt er sich was sich Apple bei der Verwendung von Objective-C wohl gedacht hat. Das kann doch niemand für toll befunden haben, oder? Da ich normalerweise C# auf Windows Mobile und Desktop benutze fühlt sich das schon irgendwie wie ein Abstieg an. Aber zum Glück gibt es ja ein paar Alternativen wie z.B. Flash, MonoTouch, Phonegap und Titanium Mobile um weitestgehend in bekannten Sprachen programmieren zu können und gleichzeitig die Anwendung auch auf anderen Geräten (Android, etc) zum Laufen bringen zu können.

Die Anwendung enthält allerdings eine Komponente, die wohl noch niemand benutzt hat. Jedenfalls kümmert sich so gut wie keines der obigen Produkte um Bluetooth. Selbst ist der Sebbi, also hat er sich das Wochenende und den Montag mit btstack – einer freien Bluetooth Implementierung für das iPhone – herumgeschlagen und tatsächlich eine stabile SPP Verbindung aufbauen können. Jetzt muss das ganze nur noch ein Modul für Titanium werden und das gleiche für Android geschehen und es kann losgehen mit der Portierung der vorhandenen Windows Mobile Software.

Insgeheim hoffe ich dabei ein wenig Erfahrung zu sammeln was die Geräte so alles können und dann mit einer Furzapp später reich zu werden ;-)

Zusammenfassung

Was hat der Autor dieses Blogs also wirklich gemacht? Er versucht sich die nötigen Fähigkeiten anzueignen in naher Zukunft eine skalierbare auf App Engine basierende Facebook App mit mobilen Clients zu bauen. Ob man wirklich was von dem Kuchen abbekommen kann, den sich die ganzen Farmville & Co Groupies backen?

In der Zwischenzeit

Irgendwelche Vorschläge für mobile Apps, die euch noch fehlen? Hatte letztens z.B. die Idee, dass eine App, die einem den gerade günstigsten Ort zum Parken in einer Stadt anzeigt doch super wäre. In Erlangen gibt es nämlich auf Grund verschiedener Parkgebühren seltsame Konstellationen wo es günstiger sein kann sich auf den anfangs teureren Parkplatz zu stellen, wenn man plant länger zu bleiben. Außerdem gibt es auf den öffentlichen und privaten Parkplätzen natürlich je nach Standort verschiedene feste Gebühren. Das Ganze müsste natürlich ein „crowd-gesourctes“ (würg, gibt’s das auch auf deutsch?) Projekt sein und wirklich super wäre es, wenn man darüber auch gleich bezahlen könnte. Muss ja irgendwie online funktionieren, wenn die Stadt schon bezahlen per SMS anbieten kann.

Kategorien
Geeky In eigener Sache

Tagesthema.de – Ein Webprojekt mit Google App Engine

Vor einiger Zeit hat mir Cappellmeister eine Idee vorgetragen, die eigentlich von Ibrahim Evsan kommt (in seinem Blog könnt ihr nachlesen was es genau damit auf sich hat und wie es dazu kam – Stichwort „3 Days to Market“). Und weil es nach Spaß und den guten alten Zeiten roch, habe ich spontan zugesagt.

Tagesthema

Tagesthema.de soll ein personalisierbarer Newsaggregator sein, der die Nachrichten (oder was auch immer) mit Twitter verknüpft. Klingt nach einer einfachen Sache und ja, es ist auch recht einfach mit vorhandenen Plugins und ein bisschen PHP/Javascript als WordPressaufsatz zu lösen, aber wir wollten es erweiterbar und flexibler als eine solche Lösung haben. So entschieden wir uns dafür es doch mal mit Google App Engine zu probieren.

App Engine ist Googles Cloud Computing Service. Das heißt man baut dort eine Webanwendung und diese läuft nicht mehr wie üblich auf einzelnen Rechnern und wird bei Bedarf erweitert, sondern schon von Anfang an auf einer ganzen Rechnerfarm und wird automatisch skaliert. Das bedeutet einerseits, dass man bei einem großen Ansturm kaum Latenzen spürt, weil die Anwendung dann auf sehr vielen Rechnern verteilt läuft und andererseits, dass man bei geringerem Ansturm nicht all die Rechner bezahlen muss, die beim konventionellen Hosting dann unbenutzt mitlaufen würden.

App Engine bietet aber nicht nur Vorteile, sondern auch ein paar Nachteile und Hürden. Ein großer Nachteil ist z.B. die fehlende Portabilität. Zwar gibt es mit AppScale ein Open Source Projekt, das versucht die App Engine Umgebung nachzubauen, aber im Wesentlichen ist man mit einer einmal geschriebenen Anwendung wohl auf unbestimmte Zeit bei Google Kunde und kann nicht einfach zu anderen Cloud Computing Anbietern wechseln. Das muss nicht unbedingt schlecht sein, denn Google ist sehr preiswert und jeder kann dort auch vollkommen umsonst ein Projekt starten (die Quotas für kostenlose Apps liegen recht hoch).

Hürden sind das Erlernen von Python (habe ich bis vor einer Woche noch nichts mit gemacht) und das Umdenken bei der Verwendung von Datenbanken. Bei Google gibt es nämlich keine relationale Datenbank (andere Cloud Computing Anbieter haben das mittlerweile im Programm), sondern nur ihr bekanntes BigTable. Damit gibt es keine JOINs zwischen mehreren Tabellen und es gibt Limits bei der Sortierung und Suche nach Datensätzen (keine Volltextsuche). Außerdem scheint es recht langsam bei Schreibzugriffen zu sein, weil hier die Daten auf mehrere Rechnerknoten verteilt werden. Auch das Lesen aus diesem Datastore ist nicht sehr flott. Aber auch dafür hat Google natürlich eine Lösung: Memcache. Wenn man cached was das Zeug hält, bekommt man auch eine sehr sehr gute Leistung hin. Ach ja, der Cache ist so unglaublich großzügig bemessen, man wäre verrückt ihn nicht zu verwenden … auch weil jeder aufwändige Datenbankaufruf ja wieder Geld kostet.

Letztendlich ging es dann aber erstaunlich einfach die Idee mit und auf App Engine umzusetzen und ich bin wirklich zufrieden was wir (Bonsay ist für das Frontend verantwortlich, Cappellmeister für’s Vorantreiben, Design, Wünsche und Fehlerreports und ich – natürlich – für das Backend) nach einer kurzen Einlernphase in nur 3 Tagen hinbekommen haben. App Engine rockt! JQuery rockt! Und die ganzen Webdienste mit ihren APIs … nunja, letztendlich mussten – und müssen noch – wir viel selber machen, weil die Limits zu niedrig liegen. Sie rocken also nicht :-)

Ich bin gespannt wie es weiter geht! Seit dem Launch am Mittwoch haben wir eigentlich nur auftretende Bugs gefixt und jetzt kommen Schritt für Schritt kleine Funktionen dazu. Als Spaß- & Lernprojekt nebenher ist das ein wunderbare Sache, denn seit dem Barcamp in München bin ich ziemlich heiß auf diese Cloud Computing Geschichte gewesen und kann es jetzt endlich mal ausprobieren. Bin sogar schon so weit zu überlegen mein Blog dorthin umzuziehen, aber leider gibt es noch kein Cloud WordPress in Python ;-)

P.S.: Das Presse-, Blog- & Twitterecho zu www.tagesthema.de war übrigens überwältigend. Wow!