Jul 22

Was waren das doch für gute alte Zeiten (der analogen Zugänge zum Netz) als die Empfehlung für die Größe einer Webseite noch 50 KB betrug. Heute im Zeitalter von DSL, wo jedes Handy einen stärkeren Empfang hat als das damals so hochgelobte ISDN, gibt es sie noch die weißen Flecken auf der Landkarte, wo DVB-T und mobiles Internet noch in den Kinderschuhen stecken.

Gut, Urlaub ist zum erholen da, aber Nachrichten würde ich schon gern sehen, hören oder lesen. Doch so einfach ist das nicht, wenn man seine Informationsgewinnung auf das Internet ausgerichtet hat und dann zwecks der guten Luft an einen der oben erwähnten weißen Flecken fährt, wo die Welt noch nicht so hektisch ist und die Uhren langsamer zu gehen scheinen.

Doch wo sind die Probleme? Es fängt damit an, dass der Google Reader sich einfach beendet, weil das Laden der Seite zu lange dauert. So bin ich also meiner RSS Feeds beraubt, aus denen ich einen Großteil meiner Informationen beziehe. Die Alternative, die Seiten einzelnd anzusurfen ist auch keine gute Idee, denn unter 1 MB Größe scheint es bei den meisten Seiten nicht mehr zu laufen. Mit Edge Geschwindigkeit macht das wirklich keinen Spaß.

Ich will jetzt nicht dem übermäßigen Gebrauch von JavaScript die Schuld geben, aber eine Fall Back Möglichkeit auf einfaches HTML, wie bei Google Mail würde anderen Seiten auch nicht schlecht stehen. Die Bedienung ist dann zwar wieder “old school”, aber sie funktioniert einigermaßen flüssig. Oder um es mit anderen Worten zu sagen, was nützt mir ein High Tech Auto, wenn es auf Landstraßen nur 5 km/h fährt.

Doch zuerst sollte man bei sich selbst schauen. Die Startseite meines Blogs ist auch nicht gerade klein. Nach meinem Urlaub werde ich mich nach einem Theme umschauen, das schonend mit den Resourcen umgeht. Auch bei meinen WordPress Plugins sind sicherlich Einsparungen durch Alternativen möglich.

Wenn also jemand Tipps hat, wie man WordPress verschlankt, dem wäre ich für einen Kommentar sehr dankbar.

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: , ,

Nov 23
Groovy Logo

Aus meiner Sicht ist Groovy, die dynamische Sprache für die Java Virtual Machine, auf der großen Hype Kurve am Punkt der technischen Realität angekommen. Mit Scala und Clojure werden statt dessen gerade 2 neue Programmiersprachen durch die Gemeinde der Java Jünger getrieben.

So ist es an der Zeit einmal zu hinterfragen, was man selbst bis jetzt mit Groovy implementiert hat, ob man dabei bleibt oder doch auf den Scala Zug aufspringt.

Dierk König, der Autor von “Groovy in Action” (dem besten Fachbuch, das ich in letzter Zeit gelesen habe), hat einmal folgende 7 Anwendungsmuster für Groovy herausgearbeitet:

Super Glue, Liquid Heart, Keyhole Surgery, Smart Configuration, Unlimited Openness, House-Elf Scripts, Prototype

Oder nicht ganz so prosaisch, als:

  • Bindeglied zwischen Java Komponenten (wie z.B. Spring und Hibernate in Grails)
  • Auslagerung der Buisiness Logik, um sie dynamisch auf Veränderungen anpassen zu können
  • Eingriffsmöglichkeit in laufende Applikationen
  • Erweiterung der Konfiguration mit den Mitteln einer Programmiersprache (um endlich das plumpe XML loszuwerden)
  • die leichte Veränderung von Code zur Laufzeit
  • Hilfe für alle Aufgaben, die durch die Programmierung anfallen (Build automation, continuous integration, deployment, installer, service monitoring, reports, statistics, automated documentation, functional tests, HTML scraping, Web remote control, XML-RPC, WebServices)
  • Tool zur schnellen Erstellung von Prototypen, mit der Möglichkeit diese später auf Java portieren zu können.

Doch zurück zum Ausgangspunkt. Was mache ich mit Groovy?

Zuerst einmal schreibe ich 95 % aller neuen Tests in Groovy. Die knackige Syntax, die perfekte Interoperabilität mit Java und die gute (aber verbesserungsfähige) Integration in Eclipse machen die Erstellung von Tests sehr viel weniger lästig. Zudem gibt es kleinere Web- und Webservices Applikationen auf Basis von Grails (dem Webframwork, das seinerseits ebenfalls auf Groovy basiert), sowie Tools, die rein in Groovy geschrieben sind.

Letztendlich kann man sagen, der Hype ist dem Alltag gewichen und Groovy passt sich perfekt in die tägliche Arbeit ein. Mit Griffon und GPars stehen 2 weitere Frameworks für Swing Applikationen und Nebenläufige Programmierung (Threads) auf Groovy Basis zur Verfügung. Und eine lebendige Community hat sich um diese dynamische Sprache gebildet. Ein Umstieg auf Scala oder Closure kommt somit für mich momentan nicht in Betracht.

Und mal ganz ehlich, wenn die Kinder fragen: “Papa was machst Du?”, klingt “ich programmiere Groovy” viel cooler als “Ich programmiere Scala”. :-)

Links:
Groovy Usage Patterns by Dierk König

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: , , , , , , , ,

Sep 23

Es ist noch gar nicht so lange her, da wurde JavaScript aufgrund seiner Browser Inkombatibilitäten und Sicherheitsbedenken von vielen verteufelt.
Erst mit Ajax (Asynchronous JavaScript and XML) und den darum entstandenen Frameworks (die die Browserinkompatibilitäte abfangen) ist es zum Lieblingskind und “must have” der Webentwicklung geworden.

Doch zwischen den Frameworks gibt es teilweise erhebliche Unterschiede. Das gilt nicht nur für den Funktionsumfang, sondern auch für die Größe und Ausführungsgeschwindigkeit.

Matthias Schütz hat mit seiner Ajax Framework Matrix versucht, die Eigenschaften der Ajax Frameworks in einer Übersicht zusammenzuführen, um sie so besser vergleichen zu können. Dass ist ihm nicht nur gut gelungen, sondern ist auch noch schön anzusehen.
In der Matrix sind auch die Links zu den Frameworks, deren Dokumentation und einigen Beispielen enthalten.

Fazit:
Die Matrix erleichtert wirklich den Vergleich zwischen den einzelnen Ajax Frameworks. Eines leistet die Matrix allerdings nicht.
Eine Entscheidung für eines der Frameworks muss man leider immer noch selbst treffen, nur der Weg dorthin wird unterstützt.

ajax framework matrix

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: , , , , ,

Sep 18

Blogfield-2009-Finale_v2-tm

Stefan und Olli haben es geschafft die von den Bloggern beigesteuerten Avatare in einem Bild zusammenzufassen. Das Ergebnis kann sich wirklich sehen lassen. Vielen Dank an die beiden für diese tolle Aktion und die Mühe, die sie sich damit gemacht haben.

So jetzt beginnt das Suchspiel nach meinem Avatar. Ein paar kleine Tipps gefällig?

ok:

dunkelblondes (braunes) Haar
tiefer Scheitel (oder auch ausgedehnte Geheimratsecken) :-)
und schwarzes T-Shirt mit Bart Totenkopf

Das müsste reichen. Viel Spaß beim Suchen.

Links:
aptgetupdate.de – Blogfield 2009: Finale

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: ,

Aug 05

amazon product advertising api logo

Die Amazon Product Advertising API (Teil der Amazon Webservices (AWS)) bietet einen Zugriff auf Amazon Produktdaten. Grundsätzlich gibt es mit SOAP und REST zwei Möglichkeiten, um auf die AWS zuzugreifen. Für die Amazon Product Advertising API wird da

Zum 15.08.2009 ändert sich das Authentifizierungsverfahren. Grund genug um den geänderten Zugriff in einem kleinen Beispiel einmal genauer zu betrachten.
Reichte früher ein API Key, sind jetzt ein öffentlicher und ein privater Zugangsschlüssel notwendig, die man während der Registrierung erstellt. Für SOAP Anfragen ist alternativ auch die Authentifizierung über X.509 Zertifikate möglich. Eine Übersicht über die s.g. “Request Identifiers” gibt es hier.

Im Beispiel soll die Klasse AmazonService die Anfrage an die Amazon Product Advertising API übernehmen. Betrachtet wird nur der Fall, wenn alles gut geht. Im produktiven Einsatz muss natürlich noch das Fehlerhandling hinzugefügt werden.
Die bei der Registrierung erstellten Zugangsschlüssel werden in der Klasse als Konstanten hinterlegt. Die Variable xml benötigen wir für die Antwort von Amazon.

1
2
3
4
class AmazonService {
   const APIKEY='< Euer öffentlicher Schlüssel >';
   const PRIVATE_KEY='< Euer privater Schlüssel >';
   private $xml;

Das wichtigste für die Anfrage ist der Aufbau der URL. In Ihr werden die Parameter der Anfrage und die mit dem privaten Zugangsschlüssel erstellte Signatur an Amazon übergeben. Diese Aufgabe übernimmt die Funktion buildURL.
Continue reading »

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: , , ,