madcats[welt]

· schreib einen Kommentar

Sublime Text 2

Als Entwickler ist man ja immer auf der Suche nach noch besseren Werkzeugen, um seine Arbeit schneller, besser und schöner zu erledigen. Das wichtigste Tool dafür ist ein guter Editor. Unter OS X setzte ich immer auf TextMate und falls kein Mac zur Verfügung stand, war Notepad++ unter Windows das Mittel der Wahl.

Leider wird TextMate kaum noch weiterentwickelt. Der letzte Release ist Monate her und TextMate 2 grenzt schon fast an Vaporware. Im Büro (sowohl früher als auch jetzt bei Chip) habe ich nun seit über einem halben Jahr auch einen Mac, daher kommt Notepad++ nicht als Alternative in Frage. Diverse Versuche mit Wine bzw. WineBottler haben sich als Schuss in den Ofen erwiesen.

Zu meinem großem Glück bin ich dann zufällig über Sublime Text 2 gestolpert. Zuerst dachte ich, es wäre nur ein billiger TextMate-Klon, aber weit gefehlt. Das Ding ist richtig toll.

Warum? Darum:

  • Läuft unter OS X, Windows und sogar Linux.
  • Kann von Haus aus eine Menge, ohne überladen zu sein (gutes Syntax-Highlighting, umfangreiche Suchfunktionen, Code-Folding, Code Completion etc.)
  • Bis ins letzte Detail konfigurierbar (nur über JSON-Files, keine GUI bisher).
  • Erweiterbar über sog. Packages, die es für so ziemlich alles gibt, von ActionScript über Git bis Zen Coding (ein Großteil der TextMate Bundles ist kompatibel!)
  • Sehr schnell und keine Probleme mit extrem langen Zeilen (TextMate gerät da teilweise unglaublich ins Stocken bishin zum Absturz).
  • Tabs (ja, die kann TextMate auch, aber nur innerhalb von Projekten).
  • Regelmäßige Updates.

Wie effizient man mit Sublime Text und ein paar kleinen Tools entwickeln kann, zeigt Andrey Tarantsov in einem sehr schönen Video. Da zeigt sich auch mal wieder, dass für Web-Entwickler OS X immer noch die beste Plattform ist — viele Tools gibt es für Windows schlichtweg nicht. Mal davon abgesehen, dass Arbeiten mit einem Terminal immer noch eine Qual ist. Cygwin ist hier zwar ein Segen, aber auch nicht allmächtig, da es nicht für alles wichtige kompatible Versionen gibt (Stichwort Ruby Gems …).

 

Da Sublime Text 2 Shareware ist und beliebig lange getestet werden kann, rate ich jedem Entwickler ihn zumindest auszuprobieren — es lohnt sich. Und wer schon immer einen TextMate-ähnlichen Editor für Windows oder Linux gesucht hat: hier ist er!

· schreib einen Kommentar

Aktuelle JavaScript-Benchmarks

Nach etwas über einem halben Jahr wird es wieder einmal Zeit, den JavaScript Engines der aktuellen Browser-Versionen auf den Zahn zu fühlen. Die Versionssprünge im Vergleich zu den letzten Benchmarks sind beachtlich. Firefox ging von Version 3 (4 war noch Beta) auf 7, Chrome von 10 auf 15. Microsoft machte da einen vergleichsweise kleinen Schritt von 8 auf 9, während Apple und Opera bei ihren Hauptversionen 5 und 11 treu geblieben sind.

Wie üblich dient als Testplattform mein Privatrechner mit folgender Spezifikation: Intel Core i5 750, 8 GB RAM, Intel X25 G2 80 GB und Windows 7 Professional x64 SP 1.

Hier sind die Ergebnisse:

 

Es gibt auch dieses mal keinen klaren Gewinner, der sich alle drei Siege sichern konnte, aber Chrome 15 ist im Schnitt wieder die Nummer 1. Der Internet Explorer 9 mag zwar unter SunSpider der schnellste Kandidat sein, er verliert jedoch die anderen zwei Tests klar. Es liegt daher die Vermutung nahe, dass Microsoft hier einige Optimierungen vorgenommen hat — zumal sich an SunSpider schon länger nichts mehr getan hat.

Wie man schön sehen kann, hat Apple im letzten halben Jahr wirklich Fortschritte mit der Nitro Engine gemacht. Safari hat sich von der roten Laterne ins Mittelfeld vorgekämpft und überholt nun Firefox in gleich zwei Disziplinen. Es bleibt abzuwarten, ob Apple den Vorsprung halten kann. Ab Firefox 9 wird Mozillas JIT JägerMonkey durch Type Inference bis zu 30% mehr Leistung bringen. Dazu befindet sich mit IonMonkey ein neuer JIT in Arbeit, der wahrscheinlich JägerMonkey und evtl. auch TraceMonkey ersetzen wird. IonMonkey wird eine andere, moderne Architektur besitzen und damit die Wartbarkeit als auch Optimierungsmöglichkeiten für die Entwickler deutlich verbessern.

Bleibt noch Opera 11, der sich mal wieder sehr gut schlägt und die klare Nummer Zwei im Starterfeld ist.

Fazit

Chrome gewinnt — wie immer. Opera ist Zweiter und im weiteren Feld kämpft sich Safari an Firefox und Microsofts Internet Explorer vorbei.

Ich bin gespannt, ob Microsoft mit dem Internet Explorer 10 wieder aufholen kann. Vielleicht sollte man in Redmond auch die Release-Zyklen überdenken. Alle anderen Hersteller können wesentlich schneller reagieren und optimieren, während Microsoft nur jährlich neue Major Releases bringen will. Wobei ich es für fraglich halte, ob wirklich jedes Jahr eine neue Version kommen wird.

Natürlich haben theoretische Benchmarks in der Praxis weit weniger Relevanz. Meine aktuellen Experimente mit ExtJS zeigen sehr deutlich, dass bei Rich Internet Applications Firefox immer noch kein sonderlich gutes Bild abgibt. Das aufgebaute UI, das für eine RIA eh noch recht spartanisch ausgestattet ist, läuft in allen anderen Browsern wesentlich weniger träge und ruckelig. Gleiches lässt sich auf diverse andere JavaScript-lastige Seiten übertragen, z.B. GMail oder iCloud.

JägerMonkey mit Type Inference, IonMonkey und die lang erwartete Integration des Electrolysis-Projekts sind darum wichtiger denn je.

· schreib einen Kommentar

JavaScript-Benchmarks

In den letzten Monaten tat sich viel in der Browser-Landschaft: Mitte Dezember kam Opera 11. Google bringt fast schon im Monatstakt neue Chrome-Versionen — erst gestern Version 10. Wie Microsoft heute mitteilte, kommt der finale Internet Explorer 9 am 14. März und Firefox 4 wird auch nicht mehr lange auf sich warten lassen. Es wird wieder Zeit, sich einen Überblick in Sachen JavaScript-Leistung zu verschaffen. Inbesondere Google und Opera treiben hier die Entwicklung stark voran, während Mozilla und Microsoft versuchen endlich aufzuschließen.

Als Testplattform diente ein Intel Core i5 750 mit 8 GB RAM, einer Intel X25-M G2 80 GB und Windows 7 Professional x64 SP1.

Hier die Ergebnisse als Diagramme:

Aufgrund der Charakteristik und Optimierungen der einzelnen Benchmarks, gibt es keinen klaren Sieger. Am neutralsten — obwohl er dem WebKit-Projekt entstammt — erscheint mir SunSpider. Es ist dabei fast schon ironisch, dass die eigene Engine “Nitro” am schlechsten abschneidet.

Im Vergleich zu den anderen Ergebnissen, sind die Einzelwerte aber recht nahe beisammen. Verwunderlich ist nur, dass der Internet Explorer 9 selbst Chrome und Opera leicht abhängt. Hier wurde ja desöfteren schon eine SunSpider-Optimierung der Engine seitens Microsoft vermutet. Belegen lässt sich das allerdings nicht. Klar ist aber, dass die JavaScript-Leistung gegenüber den Vorgängern deutlich zugenommen hat.

Bei den V8-Benchmarks ist klar ersichtlich, dass er für Chrome optimiert wurde, während der Rest des Feldes grob auf einem Niveau zu sein scheint. Ähnlich drastisch scheint Kraken auf die Tracer-Technik von TraceMonkey bzw. JägerMonkey (Mozilla) ausgerichtet zu sein. Die Tracing-Technik dominierte oft Tests, wenn sie aufgrund des Programmierung des Scripts richtig arbeiten kann. In der Praxis ist das ist leider selten der Fall, daher kam meist der herkömliche JIT in Mozillas SpiderMonkey Engine zum Einsatz. Ab Firefox 4 steht ein neuer JIT namens JaegerMonkey zur Verfügung, der zum Teil auf WebKits Nitro basiert und deutliche Vorteile gegenüber dem alten System hat.

Fazit

Ingesamt überzeugt Chrome 10 bzw. V8 mit der besten Gesamtleistung im Starterfeld. Opera 11, Firefox 4 und der Internet Explorer 9 teilen sich das Mittelfeld, wobei Opera 11 die Gruppe klar anführt und der IE 9 das Rücklicht hält. Safari 5 schneidet in zwei von drei Tests als Letzter und im dritten als Vorletzter ab. Hier sollten Apple die und anderen Initiatoren des WebKit-Projekts demnächst nachlegen, sonst wird der einstmalige ICE schnell zum Regionalzug.

Wie bei solchen Benchmarks üblich, handelt es sich hierbei natürlich in erster Linie um theoretische Ergebnisse. Praktisch betrachtet, also beim normalen Surfen, sind die Unterschiede der Testkandidaten bei weitem nicht so drastisch. Heftige Ausreißer wie noch zwischen Firefox 3.6 oder dem IE 8 und aktuellen Chrome-Versionen entfallen fast vollständig. Mozillas und Microsofts Anstrengungen wieder Anschluss zu finden, sind also geglückt.

· schreib einen Kommentar

Ein paar Änderungen

Nach langer Abstinenz durch Blog-Unlust, wird es Zeit wieder etwas zu schreiben. Ich habe in vergangenen Tagen einige technische Änderungen vorgenommen:

  • Ein Großteil der statischen Inhalte (Bilder, CSS-Dateien, JavaScripts etc.) wird nun über ein Content Delivery Network (CDN) bereitgestellt. Hierzu verwende ich ich die Services Amazon S3 bzw. Amazon CloudFront. S3 übernimmt die eigentliche Speicherung der Dateien innerhalb des Amazon-Netzwerks. CloudFront bezieht die Daten von S3 und stellt sie wahlweise als Download- oder Streaming-Inhalt über das weltweite CloudFront-Netzwerk bereit. Realisiert wird das ganze über das WordPress-Plug-In W3 Total Cache, das die Dateien zu S3 überträgt und sich um die URL-Umschreibung zu CloudFront kümmert.

    Das klingt nun extrem überdimensioniert und ist es eigentlich auch. Mir geht es dabei um den technischen Aspekt, wie man sowas realisiert und die sich daraus ergebenden Vorteile von Cloud Hosting Services. Abgesehen davon, ist es unschlagbar günstig. Man zahlt keinerlei Grundgebühren, es wird nur abgerechnet, was man wirklich verbraucht. Für meine Verhältnisse in Sachen Traffic und Zugriffe, kostet das nur ein paar Cent im Monat.

  • Nach dem ich zwischenzeitlich wieder Google Analytics als Statistikdienst genutzt hatte, bin ich nun auf Piwik umgestiegen. Piwik ist eine Open Source-Lösung, die fast alles kann, was Analytics auch bietet, läuft aber lokal auf meinem Web-Server. IP-Adressen werden ausschließlich anonymisiert verwendet.

    Wer nicht von Piwik erfasst werden möchte, kann sich hier per Cookie ausschließen lassen.

  • Wie oben schon erwähnt, setze ich nun W3 Total Cache ein. Neben der Bereitstellung der statischen Inhalte über ein CDN, bietet es vor allem diverse Caching-Systeme für Dateien, Datenbank-Inhalte, Objekte oder auch HTTP-Kompression. Die Ladezeiten sollten so angenehmer sein und gleichzeitig wird der Server geschont.

So, das war’s dann erstmal. In Zukunft werden wieder mehr Einträge folgen, wie üblich hauptsächlich über Technik, Web-Entwicklung oder Spiele.

· 2 Kommentare

Wordpress³

Es ist vollbracht: madcats[welt] läuft mit Wordpress.

Angekündigt war dieser Schritt bereits für September, aber wie das halt so ist, kam immer etwas dazwischen. Dabei war eigentlich alles in ein paar Stunden fertig. Der technische Teil war schnell erledigt, aber ein passendes Design zu finden, war ob dieser Riesenauswahl gar nicht so einfach.

Am Ende fiel meine Entscheidung auf zBench, das ich aber zu einer aufpolierten Version von mcw[ruby] umgebaut habe — vom Original-Design ist eigentlich nicht mehr viel übrig. Die Anpassungen sind noch nicht ganz fertig. Bei den Kommentaren und der Tag Cloud wird sich in den nächsten Tagen noch etwas tun.

Um endlich von den Einschränkungen der immer selben Schriftarten für Websites wegzukommen, nutze ich jetzt den Dienst typekit. Typekit bietet professionelle (und daher meist kostenpflichtige) Schriften als Web-Fonts an. Man stellt sich einfach ein Schriftpaket für seine Seite zusammen, fügt zwei Zeilen JavaScript in den head-Bereich ein und kann die Schriften wie gewohnt im Stylesheet angeben. Den Rest erledigt typekit.

Wer das ausprobieren möchte, kann einen kostenlosen Trial-Account mit maximal zwei Schriften und 5 GB/Monat Traffic (für die Schriften) nutzen. Für die meisten Blogs sollte das sogar ausreichen, ansonsten dürfte der “Personal Plan” für 24,99 $ im Jahr die richtige Wahl sein. In Anbetracht der Auswahl und sich ergebenden neuen Möglichkeiten, finde ich das nicht sonderlich teuer. Aktuell verwende ich für Überschriften “Adelle” und im Fließtext “Droid Sans”.

Zum Schluss noch etwas Werbung bzw. die Erklärung für die Überschrift:

Ich kümmere mich ja bereits seit Jahren um die technische Seite von Pias Weblog. Bisher lief alles über die FTP-Veröffentlichung von Blogger. Anfang des Jahres kündigte Google an, diese Funktion zum 1. Mai 2010 einzustellen. Betroffenen wird ein Umzug auf Blogspot mit eigener Domain empfohlen. An sich eine brauchbare Lösung, wenn man dafür nicht die DNS-Einträge der Domain in einem Umfang ändern müsste, den kaum ein großer Hosting-Anbieter erlaubt. Daher haben wir uns für einen Umzug auf Wordpress entschieden.

Da Pia gerne und viel fotografiert, haben wir gleich noch ein zweites Wordpress als Foto-Blog eingerichtet. Momentan sind noch nicht so viele Bilder online, aber ein Blick lohnt sich definitiv jetzt schon!