Jan 01


Einen ähnlichen Artikel habe ich vor einiger Zeit auch für meinen Ex – Lesezeichenverwalter del.icio.us geschrieben.

Mein neuer Dienstleister ist zootool. Über die Gründe des Wechsels habe ich ja erst vor kurzem geschrieben.
Wenn man sich in eine neue Abhängigkeit begiebt, sollte alles Gute erhalten bleiben. So bietet auch zootool über eine API den Zugriff auf die Lesezeichen.

Anders als bei del.icio.us werden die Ergebnisse einer Anfrage aber im JSON Format geliefert, womit das HTTPBuilder Modul von Groovy aber auch keine Probleme hat, wie das Beispiel gleich zeigen wird. Ein verschlüsseltes Passwort und ein API-Key sorgen zusätzlich für mehr Sicherheit.

So, lange genug geredet. Hier ist der Code für einen einfachen zootool Lesezeichen Client:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package de.koo.groovy.rest
 
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.1' )
 
import groovyx.net.http.* 
import groovy.util.slurpersupport.GPathResult 
import java.security.MessageDigest
import sun.misc.*
 
public class ZootoolBookmarkClient{
  def username
  def password
  def apikey
 
  public ZootoolBookmarkClient() {
    username="<username>"
    password="<password>"
    apikey="<apikey>"
  }
 
  static void main(args) {
    def dc=new ZootoolBookmarkClient()
    dc.request()
  }
 
  /**
   * Lesezeichen abfragen und Aufbereitung der Ergebnisse 
   * im HTML Format als definition list
   */
  public request () {
    def resp
 
    try {
      // Authentifizierung
      def url="http://zootool.com/api/users/items/?username=$username&apikey=$apikey"
 
      RESTClient rc = new RESTClient( url )
      rc.auth.basic (username.toLowerCase(), getEncodedPassword())
 
      // anfragen und überprüfen der Antwort
      def params=[:]   
      resp=rc.get(params)
 
      assert resp.status == 200
 
      println "<dl>"
      resp.data.each {item ->
        println "   <dt><a href=\"${item?.url}\">${item?.title}</a></dt>"
        println "      <dd>${item?.title}</dd>"
      }
      println "</dl>"
    } catch (e) {
      e.printStackTrace()
    }
  }
 
  /**
   * Passwort Verschlüsselung mit SHA-1 Algorithmus
   */
  public getEncodedPassword () {
    MessageDigest md = MessageDigest.getInstance('SHA-1')
    md.update(password.getBytes('UTF-8'))
 
    return (new BASE64Encoder()).encode(md.digest())
  }
}

Ich wünsche Euch allen (mit und ohne gepflegten Kater) ein frohes und gesundes Jahr 2011.

Zum Schluss noch ein paar hilfreiche Links:

zootool API-Key Generierung
zootool API Doku
Beispiel Code für PHP, Python und Objective-C

geschrieben von gklinkmann \\ tags: , ,

Nov 18

Das passiert, wenn man Objekt Orientierung mit russischen Holzpuppen erklärt:

Quelle und Dank an: Java Grundlagen Kurs 2010

geschrieben von gklinkmann \\ tags:

Oct 11

Auch aus unserem Urlaub gibt es ein paar Links.

Multisite
Multisite ist eine alternative Weboberfläche für das Netzwerkmonitoring Tool Nagios und basiert auf MK Livestatus.
MK Livestatus
MK Livestatus greift auf die im Hauptspeicher vorhandenen Informationen von Nagios zu. Diese Art der Informationsgewinnung ist im Vergleich zur NDO extrem schnell und sehr Resourcen schonend.
Icinga – Open Source Monitoring
Icinga ist ein Fork von Nagios und versucht dessen aus der Historie gewachsen Unzulänglichkeiten durch aktuelle Konzepte zu verbessern. Die Konfigurationsdateien dieser beiden Monitoring Tools sind kompatibel.
Einfaches Sortieren von HTML Tabellen mit jQuery
Ein toller Artikel, wie man sich das Sortieren von Tables mittels jQuery vereinfacht.
Asual | Summer – The HTML5 Presentation Layer Library for Java
Summer behauptet von sich selbst die nächste Generation der Präsentationsschicht Bibliothek für Spring MVC zu sein. Mal sehen.

geschrieben von gklinkmann \\ tags: , , , ,

Aug 12

Fast jede moderne Webanwendung bietet ihre Daten und Funktionalitäten auch über eine REST Schnittstelle (meist im XML und/oder JSON Format) an.

Webframeworks (wie z.B. Rails und Grails), die die Erstellung einer solchen REST Schnittstelle vereinfachen, erfreuen sich unter den Webentwicklern großer Beliebtheit.
Da zumindest Grails im Hintergrund auch auf dem Webframework Spring aufsetzt, können auch Entwickler, die Grails nicht einsetzen dürfen oder wollen, mit Spring diese Funktionalität in ihre Anwendung integrieren.

Ein konkretes Beispiel mit dazu gehörigem Tutorial gibt es von StSMedia. Die grundsätzliche REST Integration wird in Teil 2 näher erläutert. Die Umsetzung der ContentNegotiation, also die Auslieferung unterschiedlicher Formate aufgrund der Anfrage (im Accept Header oder durch Erweiterung der URL um die entsprechende Dateiendung) gibt es dann im Teil 7.

Der komplette Sourcecode der Spring Finance Manager Anwendung wird auf Google Code gehostet und steht dort zum Download bereit. Die Version 0.5 basiert zwar noch auf Spring 3 M4, ich konnte die dort implementierte REST Funktionalität aber auch mit Spring 3.0.2 problemlos nutzen.

Links:
REST Artikel im Springsource Blog

geschrieben von gklinkmann \\ tags: ,

Jul 29

Wie heise.de heute berichtet wurde eine frühe Version der Eclipse SDK 4.0 veröffentlicht.  Sie dient laut Aussage der Entwickler als Spielwiese für Ideen für die kommende Genaration der vor allem im Java Bereich beliebten Entwicklungsumgebung. Einige Vorschläge fanden bereits den Weg in das letzte Release 3.6  ( Codename:  “Helios” ).  Der neue Look und die jetzt schon deutlich angezogene Performance machen auf jeden Fall Lust auf mehr.

Link: http://www.eclipse.org/eclipse4/

geschrieben von johnnypark \\ tags: , , ,