Benny's Blog
Navigation: Home » Archives for August 2011
27. August 2011

Der Mozilla Firefox beherrscht die wahnsinnig praktische Funktion, bei Eingabe eines Suchwortes in der Adresszeile, direkt auf Google danach zu suchen. Man muss es ihm/ihr nur beibringen. Das geht wie folgt:

  1. about:config in die Adresszeile eingeben
  2. keyword.URL im “Filter” der Konfiguration eingeben
  3. http://www.google.de/search?ie=UTF-8&q= als String für die keyword.URL eingeben

Vielen Dank an den Beitrag “Google-Suche in Adresszeile” aus dem Männerblog.

21. August 2011

In Linux können Prozesse mit dem Tool screen im Hintergrund ausgeführt werden. Dazu sind nur folgende Befehle aus der Konsole nötig:

1
2
3
screen -S mein_prozess
Strg+A+D
screen -rx mein_prozess

Erklärung:

  1. Legt einen neuen Hintergrundprozess an, der Name für mein_prozess ist frei wählbar
  2. Mit der Tastenkombination Strg+A+D (Tasten zügig nacheinander drücken), kann man aus sceen wieder ins Terminal wechseln
  3. Mit dem Aufruf von screen -rx kann wieder zum Hintergrundprozess zurückgekehrt werden
21. August 2011

Kurzer Code-Schnippsel, um eine properties-Datei, die in einem Paket aus einer JAR-Datei steckt, einzulesen:

1
2
3
4
5
6
7
8
9
10
    Properties properties = new Properties();
    try
    {
      InputStream is = this.getClass().getClassLoader().getResourceAsStream("com/oberprima/upload/client/configuration/config.properties");
      properties.load(is);
    }
    catch (IOException ex)
    {
      System.out.println(ex.getLocalizedMessage());
    }
Tags: Java, ,
13. August 2011

Um lange Zeichenketten (Strings) mit Werten zu füllen, bietet sich das Java MessageFormat an:

1
2
3
4
5
6
7
8
9
10
11
12
  public static void main(String[] args) throws Exception
  {
    String template = "My name is {0} {1}."
            + System.getProperty("line.separator", "\r\n")
            + "I am {2} years old.";
    Object[] values = new Object[]
    {
      "Benny", "Neugebauer", 24
    };
    String sentence = MessageFormat.format(template, values);
    System.out.println(sentence);
  }

Die Ausgabe wäre hierfür:

My name is Benny Neugebauer.
I am 24 years old.

Möglich wäre auch dieser Einzeiler:

String sentence = String.format("My Name is %s %s.%sI am %d yars old.", "Benny", "Neugebauer",  System.getProperty("line.separator"), 24);

Man könnte ebenso String Templates verwenden, müsste dann aber Bibliotheken wie etwa ANTLR (Five minute Introduction in ANTLR String Templates) verwenden. Natürlich kann man Strings auch verketten (konkatenieren), was aber wenig übersichtlich ist:

1
2
3
4
5
6
7
8
9
10
    String sentence = "My Name is "
            +"Benny"
            +" "
            +"Neugebauer"
            +"."
            +System.getProperty("line.separator")
            +"I am "
            +24
            +" years old.";
    System.out.println(sentence);

Hinsichtlich der Performanz, sind String Builder besser geeignet als die Konkatenation von Zeichenketten:

1
2
3
4
    StringBuilder sb = new StringBuilder("My name is ").append("Benny ");
    sb.append("Neugebauer").append(".").append(System.getProperty("line.separator"));
    sb.append("I am").append(24).append(" years old.");
    System.out.println(sb.toString());

Wie man an diesen kurzen Beispielen sieht gibt es viele Möglichkeiten, die zum Ergebnis führen. Mir gefällt derzeit das Message Format am besten. Das Message Format ist für den Standard Java-Logger (java.util.logging.Logger) sogar das von NetBeans 7 bevorzugte Format für Log-Nachrichten.

7. August 2011

Apache Maven ist wundervoll. Aber wie bekommt man die eigene JAR-Bibliothek als Maven-Abhängigkeit in sein Projekt? Das geht einfacher als gedacht. Man muss dazu nur folgendes in die Konsole eingeben:

mvn install:install-file -Dfile=C:\path\to\my-lib-0.1.jar -DgroupId=com.mycompany.mylib -DartifactId=MyLibrary -Dversion=0.1 -Dpackaging=jar

Danach kann man in der pom.xml von seinem Maven-Projekt die eigene Bibliothek über folgenden Eintrag einhängen:

1
2
3
4
5
6
7
...
    <dependency>
      <groupId>com.mycompany.mylib</groupId>
      <artifactId>MyLibrary</artifactId>
      <version>0.1</version>
    </dependency>
...

Vielen Dank an How to include library manually into maven local repository?.

6. August 2011

Dieses Beispiel zeigt, wie leicht sich das JBoss Netty Framework für einen eigenen Server einsetzen lässt. Wenn man das Beispiel startet und in einem Internetbrowser die Adresse http://localhost:8080/ eingibt, dann wird im Browser das Wort “OKAY” angezeigt (nach HTTP/1.1-Standard) und serverseitig wird der Request des Clients (Browsers) auf der Konsole ausgegeben.

…weiterlesen

Tags: Java, ,