Archiv für Juni 2009

Grails Paypal plugin 0.3 released

The Grails plugins project has accepted me as a committer. I am working on the Paypal plugin for Grails because I need it for a production site.

Today, I released V0.3 of the Paypal plugin. You can install it as usual with

  • grails install-plugin paypal

A description of the plugin is available at:

The main changes in release 0.3:
Bugfix:

  • The plugin now gives a proper response to Paypal when Paypal sends an IPN. Before, the plugin did not send a response so that Paypal repeated the IPN message several times.

New feature:

  • Analogous to the parameters ‘returnController’ and ’returnAction’, we now have ‘cancelController’ and ‘cancelAction’. You can specify a controller and an action to process the cancellation of a payment.

More changes are on the way. Matt Stine has written code that allows you to purchase an entire shopping cart full of items instead of a single item as the plugin can do today. The new code is still under test.

Cheers,
Matthias

freelancer.essence == this.diagram

Stefan Tilkov hat mich auf dieses Diagramm von Bud Caddell aufmerksam gemacht. Großartig! Ich finde, es gibt die Essenz des Freiberufler-Seins exakt wieder.

Nokia E65 SSL Zertifikat installieren

Mein Nokia-E65-Phone lädt sich Emails von einem SSL-verschlüsselten POP3-Server (“pop3s”). Der Server verwendet ein selbstsigniertes Zertifikat, dem das Nokia-Phone nicht vertraut. Deshalb musste ich es auf dem Phone installieren. Leider versteht das Nokia E65 keine Zertifikate im PEM-Format, so wie sie der Server benutzt.

Die Lösung: Das Zertifikat erst nach DER-Format konvertieren, dann auf den Webserver legen, mit dem Nokia dorthin surfen und das Zertifikat herunterladen.

Das Konvertieren geht mit openssl wie folgt:

openssl x509 -inform pem -in pop3d.pem -outform der -out pop3d.der

Danach die *.der-Datei herunterladen, das Phone fragt automatisch, ob es das Zertifikat speichern soll. Danach funktioniert die pop3s-Verbindung, ohne dass das Phone jedesmal fragt, ob es dem Server vertrauen soll.

Safari wird mein neuer Browser

Bisher war ich äußerst überzeugter Anhänger des Firefox-Browsers. Nachdem mich dieser nun ab und zu mal im Stich ließ und die CPU mit 100% Auslastung belegte, begann ich mir Safari näher an zu sehen. Heute kam Apple’s Update für Safari, und ich muss sagen: Safari wird mein neuer Default-Browser!

  1. Er ist auch bei sehr großen HTML-Dokumenten sehr schnell.
  2. Die Bedienung ist sehr intuitiv, einfach typisch Apple.
  3. Das Durchblättern der Historie der bisher besuchten Seiten ist mit Cover Flow einfach ein Vergnügen.

Die Cover Flow Funktion in Safari

Bild: Cover Flow in Safari

Nur eines werde ich vermissen: Das Firebug-Plugin. Ich hoffe, ich finde so etwas auch für Safari.

Grails-Plugin: Circuit Breaker

Interessantes Architekturkonzept: Wenn das System in Bedrängnis gerät, lasse die Sicherung rausfliegen! In Grails gibt es ein Plugin, das manche Komponenten stilllegt, wenn es Engpässe gibt. Ist der Engpass vorbei, kann die stillgelegte Komponente wieder “eingeschaltet” werden. Man kann sie auch über JMX überwachen. Das Plugin heißt Circuit Breaker und geht zurück auf Michael Nygards Buch Release It!

Grails-Plugin: iCalendar Builder

iCalendar ist ein allgemein anerkanntes Format zur Übertragung von Kalender-Ereignissen (Datum, Uhrzeit, Inhalte, etc.). Damit man dieses Format von einer Grails-Anwendung aus leicht erzeugen kann, gibt es das iCalendar Builder Plugin für Grails. Leicht zu benutzen und sehr nützlich.

Grails-Plugin: ReCaptcha

Bei der Entwicklung von Webanwendungen möchte man sicherstellen, dass sich nur Benutzer registrieren, die es ernst meinen. Keine Spammer zum Beispiel. Um das zu verhindern, haben sich Captchas (verzerrte Bilder von Buchstaben und Zahlen) als Technik bewährt. Diese kann nur ein Mensch entziffern, Spam-Roboter sind da machtlos.

ReCaptcha ist ein Service, der solche Captchas zur Verfügung stellt und prüft. Dabei hilft man ReCaptcha gleichzeitig dabei, digitalisierte Bücher richtig zu erkennen (interessanter Fall von Crowdsourcing).

Das neue Grails-Plugin macht diesen Service für Grails-Anwendungen leicht nutzbar.