Mar 14
Hg Init: a Mercurial tutorial by Joel Spolsky
Eine Einführung in das Versionierungstool Mercurial, dass zusammen mit GIT einen dezentralen Ansatz für die Repositories bietet.
Titanium Cross Platform Application Development – Desktop and Mobile (iphone,android)
Titanium Cross Platform Applikationsentwicklung, mit der man mit Mitteln der Webentwicklung auch Desktop und Mobile Anwendungen (wie z.B. für iPhone oder Android) erstellen kann.
Appcelerator Video Channel on Vimeo
Der Appcelerator Video Channel bei Vimeo, in dem unter anderem Screencasts zu Titanium enthalten sind.
PHPUnit – Eine Einführung | PHP hates me – Der PHP Blog
PHPUnit – Eine Einführung in das Testframework.
SmartClient Ajax RIA System (GWT based) – Isomorphic Software
Framework für Rich Internet Applications (RIA).
Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: ,

Mar 09

Dass meine Beiträge für die Kategorie weekly links eine Zeit lang pausiert haben, lag auch daran, dass mich das Kopieren der Links ziemlich genervt hat.

Was macht man also als Programmierer, wenn der Leidensdruck hoch genug ist – man liest eine API (in diesem Fall die von delicious.com), nimmt die Programmiersprache seiner Wahl (bei mir Groovy) und schafft Abhilfe.

Der Urvater der online Lesezeichenverwalter delicious.com stellt eine REST basierte API bereit. Groovy bietet mit dem Modul HTTPBuilder ein mächtiges Tool, dass einem die Arbeit mit HTTP basierten Resourcen extrem erleichtert.

Nach einer erfolgreichen Authentifizierung und einer gültigen Anfrage erhält man eine XML Antwort, die so aussehen könnte:

1
2
3
4
5
6
7
8
9
10
<posts tag="" user="user">
  <post href="http://www.weather.com/" description="weather.com"
  hash="6cfedbe75f413c56b6ce79e6fa102aba" tag="weather reference"
  time="2005-11-29T20:30:47Z" />
    ...
  <post href="http://www.nytimes.com/"
  description="The New York Times - Breaking News, World News & Multimedia"
  extended="requires login" hash="ca1e6357399774951eed4628d69eb84b"
  tag="news media" time="2005-11-29T20:30:05Z" />
</posts>

Testen kann man erst einmal auf der Kommandozeile mittels curl:

> curl https://user:passwd@api.del.icio.us/v1/posts/recent

Bestimmte URL’s wie z.B. posts/all sollte man nicht zu oft aufrufen, da sie limitiert sind. Macht man es doch (wie ich) erhält man den Fehler 999. Besser ist es da nur die letzten Einträge (per Default 15) über posts/recent anzufragen. Das ganze Programm sah dann bei mir so aus:

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
import groovyx.net.http.* 
import groovy.util.slurpersupport.GPathResult 
 
class DeliciousBookmarkClient {
 
   static main(args) {
      def dc=new DeliciousBookmarkClient()
      dc.request()
   }
 
   public request () {
      try {
         // Authentifizierung
         def rc = new RESTClient( 'https://username:password@api.del.icio.us/v1/posts/recent' )
         rc.auth.basic "username", "password"
 
         // anfragen und überprüfen der Antwort   
         def resp=rc.get("count":"5")
         assert resp.status == 200
         assert ( resp.data instanceof GPathResult )
 
         def recentPosts=resp.data.post
         println "Anzahl posts "+recentPosts.size()
 
         // HTML Aufbereitung des Links und der Beschreibung
         println "<dl>"
         recentPosts.each{post->
            def desc=post.@description.text()
            def href=post.@href.text()
            println "   <dt><a href=\"$href\">$desc</a></dt>"
            println "      <dd>$desc</dd>"
         }
         println "</dl>"
      } catch (e) {
         println e.response.status
         println e.message
      }
   }   
}

Über die API lassen sich natürlich auch Lesezeichen hinzufügen und löschen. Das gilt auch für Tags und Tag Bundles. Damit bleiben keine Wünsche offen.

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: , ,

Mar 06

Nach einer kleinen Unterbrechung sollen die wöchentlichen Links wieder starten.

What’s new in iBATIS 3
iBATIS gehört zur Familie der OR-Mapper, ist aber im Vergleich zu den Platzhirschen wie Hibernate sehr leichtgewichtig. Die Konfiguration von iBATIS 3 ist jetzt nicht nur mit XML, sondern auch mit Annotations möglich.
Read, recycle, and reuse: Reporting made easy with Excel, XML, and Java technologies
Ein Einstieg in Excel mit Java.
Infrarotfernbedienung für das iPhone zum Nachrüsten
Infrarotfernbedienung für das iPhone zum Nachrüsten. Ich muss nur noch meine Frau überzeugen. :-)
jWebSocket – The Open Source Java WebSocket Server
Websockets sind ein Vorschlag von Google um das push and pull von Webservices durch eine Socket Verbindung auszutauschen. jWebSocket – The Open Source Java WebSocket Server ist eine erste Implementierung.
jWebSocket statt XHR und Comet?
jWebSocket statt XHR und Comet? Ein Vergleich.
PaperC – online books
PaperC – Fachbücher online
Ähnliche Artikel:

geschrieben von gklinkmann \\ tags:

Mar 02

Mein Lieblingsbrowser Opera ist wieder in einer neuer Version (10.50) verfügbar. Vorerst nur für Windows aber die Mac und Linux Varianten, dürften nicht lange auf sich warten lassen.

Die Änderungen lassen sich in folgende Kategorien einordnen:

1. Performance

  • die neue Javascript-Engine Carakan soll bis zu 3,5 mal schneller sein als ihr Vorgänger. Erreicht wurde dieser Performance Gewinn vorallem durch eine register basierte Bytecode-Execution-Engine mit fester Blockgröße und die Umwandlung von JavaScript in nativen Code.
  • die neue Grafikbibliothek Vega, die sogar Hardwareunterstützung bietet (die aber noch nicht aktiviert ist)

2. neue Funktionen

  • die Unterstützung von CSS3 Funktionen durch die Rendering Engine Presto (wie z.B. Transitions, Transforms, Border-Radius-Property, Backgrounds und Borders)
  • die Unterstützung von HTML5 Elementen durch die Rendering Engine Presto (wie z.B. Persistent Storage, Video und Param)
  • den von anderen Browsern (z.B. Firefox) bekannten Privatsurfenmodus (auch als Porno Tab bekannt :-) )
  • den neuer Skin
  • die neue Menüstruktur (alles versteckt unter dem großem rotem O an der linken, oberen Seite), damit mehr Platz für das Browserfenster da ist.
  • die Unterstützung von Windows 7 Funktionen, wie Sprunglisten, Aero Peek und Tabvorschau. Die Mac Version soll sich aber aber auch besser integrieren.
  • sowie viele kleine weitere Verbesserungen

Opera dürfte damit für die freie Browserwahl unter Windows ab dem 17. März gewappnet sein.

Mein Standardbrowser ist er schon seit Jahren.

update:
Der Browser-Benchmark von Golem bestätigt “So schnell ist Opera 10.50″.

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: , ,

Feb 28

Mit Erschrecken habe ich diese Woche einen Artikel über Vorurteile gegenüber älteren Entwicklern gelesen. Demnach existieren folgende 5 Mythen:

  • Ältere Entwickler sind teurer als jüngere, deshalb sind Jungspunde auf dem Markt gefragter
  • Ältere Entwickler sind aufgrund ihres Legacy-Wissens weniger flexibel, neue Technologien zu erlernen
  • Ältere Entwickler sind wegen ihrer Familienverpflichtungen ungeeignet für den harten Entwicklerjob (= lange Arbeitszeiten, quälende Stunden am PC)
  • Ältere Entwickler sind mental weniger agil als jüngere
  • Ältere Entwickler sind abgestumpft und zynisch – dagegen bringen junge Entwickler Feuer und Enthusiasmus in ein Projekt

Nun bin ich zwar noch keine 40 (wie der Author) aber auch keine 27 mehr, wie ich immer behaupte. Und das wichtigste ist wirklich die Familie, aber ansonsten “Bullshit. I’m not too old for this shit”. :-)

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: