Archiv für den Monat Januar 2010

gPodder ist ein freier Podcatcher, welcher ich seit Kurzem benutze um meine Podcasts abzurufen (was sollte man auch sonst damit machen..). Dabei sind alle Funktionen vorhanden, die ich von einem Podcatcher erwarte: Abonnements, Runterladen, direktes Anhören / Betrachten, Synchronisation mit einem MP3-Player und so weiter. Die Handhabung ist dabei echt angenehm.

gPodder

gPodder gibt es neben Linux auch für Mac und Windows und steht unter der GPL. Bei Bedarf klinkt sich das Programm als Trayicon ein und ist so im Hintergrund beim Herunterladen von Nachrichten. Downloads können limitiert werden und verarbeitete Podcasts können bei Bedarf automatisch gelöscht werden. Wenn man will, so kann man seine Podcasts auch mit dem WebService my.gpodder.org synchronisieren.

Alles in Allem also eine ganz klare Empfehlung.

Dieser Post wartet nun schon seit zwei Tagen auf seine Veröffentlichung. Denn ebenso wie mein Kontrahent habe ich darauf gewartet, dass der jeweils andere einen Beitrag schreibt.

Der Start des Zitronenduells war ja auf den letzten Sonntag angesetzt. Und das wurde natürlich eingehalten. Nachdem meine Kerne tagsüber knapp acht Stunden im Wasserbad gelegen haben, habe ich sie dann am späten Nachmittag gesät. Dabei habe ich alle 16 Kerne auf verschiedene Art und Weise gesät (normale Erde, "überdacht"; normale Erde, nicht überdacht, mit Feuchtigkeitskontrolle; Seramis, mit Feuchtigkeitskontrolle; in einen normalen Blumentopf zu ner anderen Pflanze gesteckt). Davon erhoffe ich mir eigentlich recht gute Chancen. Zu sehen ist natürlich noch nichts. ;)

Ein klein wenig Ernüchterung hat sich da bei mir in Bezug auf das Ziel (erste Zitrone) breit gemacht. Nachdem die erste Quelle was von 2-3 Jahren geschrieben hat, habe ich bei ein paar Recherchen doch noch andere Zahlen gefunden. Fast alle anderen Quellen reden von knapp 15 Jahren - doch ne lange Zeit. Wobei es da noch ein paar Mittel gibt das Ganze zu beschleunigen.

Im Übrigen verfolgt mich diese Sache jetzt auch schon im Traum. Heute Nacht habe ich doch glatt von kleinen Zitronenpflanzen geträumt...

Flash gegen rtauchnitz; Mann gegen Mann; Hobbybotaniker gegen Hobbybotaniker. Irgendwie ist in einem Beitrag vom flash die Idee entstanden, dass man ja ein Duell im Aufziehen von Pflanzen machen könnte. Und dieses Duell wird nun morgen starten. Dabei geht es darum, dass wir jeder versuchen werden einen kleinen Zitronenbaum zu ziehen. Die Regeln sind einfach:

  • Jeder Teilnehmer sät am kommenden Sonntag (24. Januar 2010) ein oder mehre Zitronensamen
  • Die Samen müssen persönlich einer Zitrone entnommen werden.
  • Falls mehrere Jungpflanzen aus den Samen sprießen, ist ausschließlich erstgeborene Spross duellrelevant
  • Hilfe bei der Pflanzenpflege ist nur Vertretungsweise im Falle von Urlaub, Krankheit und Tod eines Duellanten zulässig.
  • Gewonnen hat derjenige, dessen Zitronenbaum zuerst eine Frucht trägt.
  • Regelmäßige Berichterstattung über die Fortschritte.

Meine Vorbereitung hat heute begonnen. Mit dem Kauf einer passenden Zitrone um die Samen zu gewinnen. In der ersten Zitrone waren (wie bei flash) keine Kerne, weswegen ich vorhin noch mal raus in die Kälte musste. Und schon in der ersten Zitrone des Netzes hatte ich dann mehr Glück. Ganze 16 Kerne. Der flash hatte nur 11. Ha - 1:0! Und dabei hat er auch noch gegen eine seiner aufgestellten Regeln verstoßen. Denn da heißt es ja "Die Samen müssen persönlich einer Zitrone entnommen werden". Seine Samen kamen aus insgesamt vier Zitronen. Aber gut - wollen wir mal nicht kleinlich sein.

Morgen gehts dann also so richtig los. Ich bin gespannt, was das wird. Immerhin habe ich jetzt nicht so wirklich den grünen Daumen. Und ein anderes Duell dieser Art habe ich schon mal gegen meine Schwester verloren.

Tauwetter in Kombination mit einer übervollen Regenrinne kann einen doch sehr schnell um den Schlaf bringen. Da sind Wasserfälle ein scheiß Dreck gegen...

Ich war gestern bei dem Musical König der Löwen. Und ich bin ehrlich gesagt echt beeindruckt. Gut - die Geschichte ist naturgemäß ein wenig kitschig, was nicht ganz mein Fall ist. Aber die Bühnenshow und die ganze Ausführung an sich - herrlich. Wer also mal in Hamburg verweilt und sich (oder seiner Freundin) was gutes tun will, der kann sich das mal antun.

RSyntaxTextArea ist eine Java-Komponente, die einem eine erweiterte Textarea zur Verfügung stellt. Diese unterstützt das Syntaxhighlighting von rund 25 Sprachen. Ebenfalls in der Bibliothek enthalten ist eine Komponente zur Realisierung von CodeCompletion.

Ein einfaches Beispiel:

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import org.fife.ui.rsyntaxtextarea.CodeTemplateManager;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
import org.fife.ui.rsyntaxtextarea.templates.CodeTemplate;
import org.fife.ui.rsyntaxtextarea.templates.StaticCodeTemplate;
import org.fife.ui.rtextarea.RTextScrollPane;

public class RSyntaxTextAreaTest extends JFrame{

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                RSyntaxTextAreaTest theRSyntaxTextAreaTest = new RSyntaxTextAreaTest();
                theRSyntaxTextAreaTest.setVisible(true);
            }
        });

    }

    private RSyntaxTextAreaTest() {
        JPanel theJPanel = new JPanel(new BorderLayout());

        RSyntaxTextArea theTextArea = new RSyntaxTextArea();
        theTextArea.setSyntaxEditingStyle( SyntaxConstants.SYNTAX_STYLE_JAVA);
        RTextScrollPane theRTextScrollPane = new RTextScrollPane(theTextArea);
        theJPanel.add(theRTextScrollPane);

        RSyntaxTextArea.setTemplatesEnabled(true);
        CodeTemplateManager theCodeTemplateManager = RSyntaxTextArea.getCodeTemplateManager();

        CodeTemplate theCodeTemplate = new StaticCodeTemplate("sout", "System.out.println(", ");");
        theCodeTemplateManager.addTemplate(theCodeTemplate);

        setContentPane(theJPanel);
        setTitle("Test mit RSyntaxTextArea");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);
    }

}

Und so kann dann das Ergenis aussehen:

rsntaxtextarea

Die Bibliothek steht aktuell in Version 1.4.0 zur Verfügung und wurde unter der LGPL veröffentlicht. Das Projekt RText zeigt das Zusammenspiel der einzelnen Komponenten in einem noch größerem Zusammenhang.

Twitter hat ja bekanntlicherweise eine API mit Hilfe derer der Status geupdatet werden kann, Timelines gelesen werden können und so weiter. Möchte man diese API nun in einem Java-Programm nutzen, so muss man das Rad nicht neu erfinden, sondern kann auf fertige Libraries zurück greifen, die einem Wrapper-Methoden für die gängigsten Aufgaben zur Verfügung stellen.

Eine dieser Libraries ist Twitter4J. Komplett in Java implementiert benötigt es selber keine weiteren Bibliotheken. Die Handhabung ist denkbar einfach. So kann man schon mit zwei Zeilen den eigenen Status updaten:

Twitter theTwitter = new Twitter(username, passwort);
try {
      Status theStatus = theTwitter.updateStatus("Ich teste Twitter4J");
} catch (TwitterException e) {
      e.printStackTrace();
}

Das Lesen einer Timeline ist dann ähnlich einfach:

Twitter theTwitter = new Twitter(username, passwort);
List<Status> theStatuses = null;
try {
      theStatuses = theTwitter.getFriendsTimeline();
} catch (TwitterException e) {
      e.printStackTrace();
}
for (Status theStatus : theStatuses) {
      System.out.println(theStatus.getUser().getScreenName() + ":" + theStatus.getText());
}

Das sind nur zwei Beispiele, so kann man auch problemlos weitere Timelines laden oder auch Direktnachrichten schreiben. Wer auf die Eingabe von Benutzername / Passwort verzichten will / kann / muss, dem sei OAuth empfohlen, denn auch dieses Protokoll zur Benutzerautorisierung wird von Twitter4J unterstützt.

Twitter4J ist ist unter einer BSD-artigen Lizenz veröffentlicht und besteht aktuell in der Version 2.0.10.

zuletzt bei Twitter

Twitter Updates