Von Android zum iPhone

Korrekterweise müsste es natürlich “von Android zu iOS” lauten, allerdings bin ich mit dem iPad ja schon etwas länger aktiv, weshalb die Überschrift nicht mehr stimmen würde. Tja, was soll ich sagen, ich bin nun stolzer Besitzer eines iPhone 4. Warum das so lange gedauert hat? Das hat mehrere Gründe:

Zunächst war ich der Android Plattform mehr gesonnen, da ich es liebe, mich auf einem Handy austoben zu können. Man kann so ziemlich alles auf einem Android Gerät an Software austauschen, was allerdings auch eine gewisse Verantwortung mit sich bringt – das musste ich schmerzlich feststellen. Das ganze Konzept hinter dem System ist echt klasse, nur leider harpert es teilweise an der Umsetzung. Ich muss aber darauf verweisen, dass es sich lediglich um Details handelt. Nach wie vor ist Android für mich eine tolle Plattform, die locker im 3er-Gespann zwischen iOS und Web-OS locker mithalten kann.

Updates

Aber bekanntlich können auch Details irgendwann nerven. Da wäre für mich z.B. die Updatepolitik aller Hersteller, die auf Android setzen. Sie versuchen sich nicht durch Hardware zu differenzieren, sondern durch irgendwelche obskuren alternativen Homescreens. Ähnliches kennen wir bereits von Windows Mobile, wobei es sich da um Overlays und nicht um Replacements handelte. Diese alternativen Homescreens an sich sind ja sogar gewollt, nur kommen die Hersteller nicht hinterher, all ihre zusätzlichen Features an die immer neuen Android-Versionen anzupassen.

Was passiert? Es werden mehrere Updates übersprungen bzw. es erscheint für die meisten Geräte gar kein Update mehr. Einzig Google selbst bringt die neuen Android Versionen für sein eigenes Flaggschiff, das Nexus One, zeitnah. Für alle anderen Hersteller gilt: neues Handy kaufen, dann gibt’s auch die nächste Android-Version.

Für Apples Seite muss man hier ganz klar ein Lob aussprechen. Bisher haben alle Geräte, die iOS verwenden, regelmäßig Updates erhalten. Mit iOS 4.0 sind nun erstmals das iPhone 2G sowie der erste iPod Touch rausgefallen, und das rein aus Gründen mangelnder Hardware. Hier können sich eigentlich ALLE Handyhersteller eine Scheibe von abschneiden. Denn meines Wissens gab’s das bisher in dieser Form noch nie.

Apps

Ein weiterer sehr unangenehmer Punkt ist der Android Market. Ja, alle schimpfen über den Apple App Store und die “Bevormundung”, ich muss allerdings dazu sagen, dass ich diese wesentlich lieber in Kauf nehme, als mich durch Schrott zu wühlen. Apps, die nur auf Handys bestimmter Hersteller laufen, Apps, die überhaupt nicht funktionieren, und Apps, die noch nicht mal die Bezeichnung Applikation verdient haben. Offenheit hat viele Vorteile, aber für mich als Endverbraucher sehe ich da leider zum größten Teil Nachteile.

Pluspunkte sammelt der Android Market aber auf der technischen Seite. Sowohl die Installation neuer Software als auch das Einspielen von Updates ist hier wesentlich besser als beim Appstore gelöst. Sofern man sich auf die Apps großer Hersteller verlässt fährt man mit Android also ziemlich gut. Der Apple Appstore ist leider komplett auf “Geld verdienen” ausgelegt, was man ihm auch anmerkt. Ich verstehe natürlich, dass diese Einnahmequelle sehr wichtig ist, auf mich wirkt der Aufbau des Stores aber eher anstrengend. Also hier nochmal wirklich deutlich Minuspunkte für Apple.

Betriebssystem

Der dritte und für mich wichtigste Punkt ist der Umgang mit Multitasking bzw. dem Betriebssystem selbst. Rein von der Gui und den Funktionen her liegt Android hier wesentlich vorn (ich sag nur Homescreen und Widgets), verspielt diesen Vorteil jedoch, zumindest meiner Meinung nach, durch das “echte” Multitasking. Klar, die Programme laufen wirklich parallel, die Frage ist nur, ob man das wirklich will und wie Hardware + Software darauf regieren. Meine personliche Erfahrung ist hier ganz klar: geht überhaupt nicht. Sowohl mein HTC Magic als auch das (zumindest vor einem halben Jahr noch) als Flaggschiff bezeichnete Motorola Milestone haben nicht meinen Ansprüchen vom “flüssigen Arbeiten” genügt.

Das hat natürlich damit zu tun, dass ich als “Poweruser” die Geräte anders verwende als vielleicht ein “normaler” User, was für mich aber keine Rolle spielt. Bietet mir ein System bestimmte Möglichkeiten, dann möchte ich die auch zu einem gewissen Grad nutzen. Erlebe ich dann jedoch, dass ein Gerät aufgrund dessen öfter mehrere Sekunden lang hängt, läuft meiner Meinung nach etwas falsch. Mag sein, dass das bei den neuen Sternen am Himmel wie dem Desire oder Galaxy anders ist, aber das interessiert mich nicht mehr. Nach ca. eineinhalb Jahren Android habe ich das Vertrauen verloren und versuche es nun am nächsten Stand.

Apple hat hier genau den richtigen Weg gewählt, indem auf ein simuliertes Multitasking gesetzt wird. Effektiv wird jede App, die nicht im Vordergrund läuft, pausiert – sie kann aber weiterhin auf Events reagieren, Töne/Musik abspielen usw., was der User so effektiv nicht bemerkt. Meiner Meinung nach ist das der derzeit einzig wahre Weg, auf mobilen Geräten Multitasking zu ermöglichen.

Der Homescreen auf iOS ist echt schwach, wenn man von Android kommt. Ich hoffe wirklich sehr, dass Steve sich da was einfallen lässt. Aber auch hier könnte ich mir vorstellen, das man mit der derzeitigen Oberfläche einige wesentlich Performance-Probleme umgehen will.

Fazit

Ich bin nach den drei Tagen Nutzung schon sehr zufrieden mit meinem neuen iPhone 4. Es fühlt sich einfach super an, die anti-Fettfinger-Schicht auf dem Display ist Gold wert und es ist vor allem eins: super schnell. Die Akkulaufzeit überzeugt mich derzeit noch nicht, wobei man das natürlich erst nach ein paar Ladezyklen wirklich beurteilen kann. An die Gui und das System an sich muss ich mich erst noch gewöhnen, denke aber, dass ich mich schnell umstellen kann. Einzig das Tastaturlayout bereitet mir wirklich Probleme, da ich wahrscheinlich einer der wenigen Menschen bin, die auch mal einen Punkt oder ein Komma setzen wollen. Usability ist in der Hinsicht leider null. Dafür entschädigt die Tastatur mit ihrem exzellenten Touch-Verhalten.

Die interaktive Visitenkarte

Also wenn das mal kein Aushängeschild ist. Die Karte an sich sieht schon ziemlich cool aus, dass sie allerdings noch per USB ein bisschen auf dem Rechner zaubern kann rockt!

Frank Zhao, der Erfinder dieses Gadgets, hat die Karte mit einem AVR ATtiny85 Microcontroller ausgestattet, der über USB-Support verfügt. Steckt man die Karte an seinen PC, startet einen beliebigen Texteditor und drückt anschließend drei mal hintereinander die Caps-Lock Taste, so erscheinen seine Kontaktdaten sowie Qualifikationen.

Links:
hack-a-day

Tutorial: ESXi Server mit der HP Z400 Workstation

Heute gibt es mal einen Gastbeitrag von einem meiner Auszubildenden zum Thema VMware ESXi Server. Der ESXi ist die kostenlose Variante des ESX Servers, der für die Servervirtualisation eingesetzt wird. Dabei wird kein Betriebssystem als Unterbau benötigt, da der ESX direkt in eine kleine Linux-Umgebung integriert ist. Das bringt zum einen extreme zusätzliche Performance, zum anderen auch eine geringere Bug-Anfälligkeit des Host-Systems. Patrick hatte bei der Einrichtung einige Probleme, da die Treiber für die Netzwerkkarte seiner Workstation nicht richtig erkannt wurden. Doch lest selbst:

Ich habe mich in der letzten Woche, aufgrund meiner Ausbildungsstelle, mit dem ESXi Server auseinandergesetzt.
Ziel war es, den Server auf einer HP Z400 Workstation zum Laufen zu bringen. VMware stellt hierfür eine kostenlose
ISO-Datei auf ihrem Webserver bereit.

Mit dem gebrannten ISO-Image im CD-Laufwerk traten auch schon die ersten Probleme auf:
Zum einen wird der Netzwerkadapter (NIC) vom ESXi Server nicht unterstützt, zum anderen lädt der ESXi standartmäßig SCSI Festplatten-Treiber. Da in der HP Z400 in der derzeitigen Konfiguration nur SATA Platten verwendet werden (bisher nur eine, später wird ein RAID folgen), musste ich mich durch verschiedenste Foren und Lösungsvorschläge kämpfen.

Letztendlich konnten beide Probleme folgendermaßen gelöst werden:

Ich habe mir eine Ubuntu Live-CD erstellt und diese auf der Workstation starten lassen,
mir das ‘mkesxiaio’ Bash-Script runtergeladen und in den Ordner ‘/Downloads/tmp/’ kopiert. In den gleichen Ordner kamen jeweils noch die ISO-Datei des ESXi 4.1 Servers und eine, aus dem vm-help.com Forum,
modifizierte, oem.tgz.

Im Anschluss startete ich das Terminal und wechselte in den Ordner ‘/Downloads/tmp/’,
um das Script mit ‘sudo chmod +x mkesxiaio_3.x.x.sh’ ausführbar zu machen
und per ‘sudo ./mkesxiaio_3.x.x.sh’ auszuführen.

Das Script frägt dann auch gleich, welche ESXi Version man benutzt. In diesem Fall wählte ich die ‘3’ für die Version 4.1.

Nachdem überprüft wurde, ob die benötigte Linux Tools in der Distribution vorhanden sind, konnte ich auswählen,
in welcher Form (modifiziertes ISO-Image, Installation auf den USB laden, Server auf den USB installieren) das Image ausgegeben werden soll. Ich wählte “Server auf USB-Stick installieren”.

Als die Frage, ob die init.d editiert werden soll, erschien, wählte ich “ja” und fügte folgendes am Ende der Datei ein:
vmkload_mod tg3.o
vmkload_mod lvmdriver

Dadurch werden bei jedem Boot-Vorgang die fehlenden Netzwerktreiber nachgeladen.

Nachdem der Stick erstellt war, konnte ich von selbigem Booten und den ESXi einrichten.

Twitter in Zahlen

Letzte Woche bin ich auf eine sehr interessante Präsentation von Twitter gestoßen, die ein paar Zahlen aus deren Ökosystem preisgibt. Wenn man die sich so anschaut, kann man nur sagen: wow!

Vor allem die technischen Anforderungen übersteigen bei weitem das Vorstellungsvermögen selbst von IT Spezialisten – sofern man solch große Systeme noch nie gesehen hat. Doch, kommen wir zu den Fakten:

Twitter ist ein sog. Microblogging Dienst, der Kurznachrichten (Tweets) von bis zu 140 Zeichen zulässt. Hat man vorher per RSS bei Blogs mitgelesen, ist man bei Twitter ein Follower, genausogut kann man aber auch selbst Follower haben. Loggt man sich bei Twitter ein, so sieht man seine Timeline, also alle Tweets, die man selbst und die Leute, denen man folgt, abgesendet haben. Man könnte einen Tweet als eine Art SMS an alle meine Freunde sehen.

Klingt erstmal von den Daten her nicht viel und man könnte meinen, dass die anfallende Menge locker von ein paar Servern abgefangen werden kann. Bedenkt man aber, dass Twitter derzeit ca. 150 Millionen registrierte User hat, welche am Tag ca. 70 Millionen Tweets (ca. 800/Sekunde) hinterlassen, dann sieht die Welt schon etwas anders aus. Das tägliche Datenvolumen, welches alleine durch die Tweets erzeugt wird, umfasst derzeit um die 12 Gigabyte (800 Tweets / s = 160Kb/s = 9MB/h = 12GB / 24h). Täglich kommen ca. 8 Terrabyte an Daten zusammen. Zum Vergleich: Die Börse generiert am Tag ca. 1Terrabyte an Daten.

Für die Relationen zwischen den Usern (Following) kommt flockdb zum Einsatz, welches auf extrem schnelle CRUD (Create, Read, Update, Delete) Operationen getrimmt ist und vor allem sehr gut mit komplexen Datenstrukturen klar kommt – Stichwort: Joins. MySQL kommt zwar für einen Großteil der Daten zum Einsatz, kann aber sehr schlecht horizontal skalieren (Clustering) und auch nicht schnell genug neue IDs erzeugen. Die Twitter-Eigenentwicklung Gizzard stellt ein Framework für fehlertolerante und verteilte Datenbanken zur Verfügung, welches stark auf horizontale Skalierung ausgelegt ist. Gizzard ist im Prinzip ein Manager für DBMS (Database Management System), der es ermöglicht, mit sehr vielen Datastores zu arbeiten. Da dieses System selbst keine IDs erzeugen kann, hat Twitter zusätzlich Snowflake entwickelt, welches sehr viele unique IDs innerhalb kürzester Zeit erstellen kann. Die Problematik an der Stelle war, dass Tweets, die etwa zur selben Zeit erzeugt werden, auch eine ziemlich nah beieinander liegende ID erhalten sollten, da diese für die Sortierung bei Twitter und auch bei den meisten Clients verwendet wird. Um diesem Umstand gerecht zu werden, verwendet man für die IDs eine Kombination aus Timestamp, Worker-ID und Sequenz.

Doch die wenigsten nutzen ausschließlich die Twitter-Homepage. Den eigentlichen Erfolg konnte Twitter über seine sehr früh vorhandene offene API erreichen. Jedem ist es möglich, seinen eigenen Client oder sein eigenes Mashup zu generieren, wovon auch viele Leute Gebrauch machen. Und so kommt es nicht von ungefähr, dass Twitter am Tag ca. 6 Milliarden API-Aufrufe, also 70.000/s, erreichen. Interessant ist, dass Twitter im April “nur” 3 Milliarden tägliche API-Aufrufe verzeichnen konnte – Innerhalb von 5 Monaten hat sich diese also verdoppelt. Um diese Last tragen zu können hat HOSEbird, die Twitter Streaming API entwickelt, welche die komplexen Datenanfragen sowohl von den Clients als auch von Twitter selbst einfach und sehr performant abhandelt.

Wie auch Facebook kann Twitter die enormen Daten nur verarbeiten, weil es die nötigen Systeme einfach selbst schreibt. Der Benefit der Allgemeinheit dabei ist die Offenheit dieser Unternehmen, da sie fast alle dieser Entwicklungen per Open Source ins Netz stellen, damit diese auch von der Community weiter entwickelt werden können. Hier können die großen Player wie Microsoft, Apple, Oracle, SAP und co. noch viel lernen.

Aber, wohin entwickelt sich das Unternehmen Twitter bzw. was ist sein Ziel? Die derzeit 150 Millionen User sollen 6 Milliarden ansteigen, sodass jeder zweite Mensch Twitter verwendet. Sicher ein ehrgeiziges Ziel, aber bei dem derzeitigen Wachstum sollten sie zumindest nah an diesen Wert herankommen. Die Probleme, die auf dem Weg dahin liegen, sind Echtzeit, Datenbanken, Speicher, Skalierbarkeit und Effizienz. Ich wünsche ihnen dafür viel Glück 😉

via techcrunch.com

[Quicktip] Spotlight Suche reparieren

Habt ihr das Problem, dass einige Programme oder Daten nicht mehr in Spotlight gefunden werden? Mir ging es so nach dem letzten OSX Update. Programme wie Itunes wollten sich einfach nicht mehr finden lassen – manuell raussuchen und starten ging aber.

Die Lösung ist, dass man den Spotlight-Index neu erstellen lassen muss:

1. Spotlight Einstellungen aufrufen -> oben rechts auf die Lupe und dann “Spotlight Einstellungen” oder über die Systemeinstellungen und dann auf Spotlight klicken

2. Auf “Privatsphäre” klicken

3. nun könnt ihr entweder einzelne Ordner in die Liste ziehen, oder gleich die ganze Festplatte. Sobald ihr dies tut, wird der Index für diese Verzeichnisse gelöscht. Wenn ihr die ganze Platte reinzieht, dann wird der komplette Index entfernt.

4. die Ordner / Laufwerke wieder aus der Liste löschen

5. Fertig. Spotlight wird diese Ordner / Laufwerke nun neu indizieren. Man erkennt dies an dem Punkt, der innerhalb der Spotlight-Lupe aufblinkt. Sobald dieser Weg ist, ist die Indizierung durch und die Programme / Daten sollten wieder auffindbar sein.

Einzelne Ordner hineinziehen hatte bei mir nicht geholfen – Spotlight reagierte darauf gar nicht. Erst als ich die ganze Festplatte reingezogen hatte reagierte es und erstellte den kompletten Index neu. Bedenkt aber, dass die Indizierung der kompletten Festplatte mehrere Stunden in Anspurch nehmen kann….