Mittwoch, 25. Mai 2016

Maven Dependencymanagement in Eclipse

Wenn man das Spring Plugin (STS) in Eclipse verwendet, kann es passieren, dass der Content-Assistent bei einem Import automatisch Einträge in die pom.xml hinzufügt, da STS Typen aus einer gängigen Liste von Paketen auswählt (siehe Spring Boot: Jar-type Content Assist).
Wenn man seine Dependencies lieber selbstständig verwaltet, kann man dieses Verhalten unter Preferences -> Java -> Editor -> Content Assist -> Advanced abschalten, indem man "Jar Type Search" abwählt.

Quelle: http://stackoverflow.com/questions/25887957/eclipse-automatically-adds-wrong-dependencies-into-pom-xml

Mittwoch, 18. Mai 2016

Lästige ESC Sequenzen in less

Wenn man sich den Output verschiedener log Operationen mit less ansehen möchte, laufen einem immer wieder ESC Sequenzen über den Weg, mit denen Zeilen in diesem Log eingefärbt wurden.

Diese tragen im direkten Output zur Übersichtlichkeit bei, sind im less Output aber störend.

Wenn man dagegen less mit dem Parameter -R startet, werden die ESC Optionen interpretiert und auch in less farbig dargestellt.

 Quelle: https://major.io/2013/05/21/handling-terminal-color-escape-sequences-in-less/

Donnerstag, 17. März 2016

Mittwoch, 17. Februar 2016

Eclipse Shortcuts

Eine kleine Sammlung von sinnvollen Shortcuts

  • CTRL+SHIFT+Y: Markierten Bereich lowercase setzen
  • CTRL+SHIFT+X: Markierten Bereich uppercase setzen

(wird bei Bedarf ergänzt)

Dienstag, 16. Februar 2016

Sample einer Oracle-Table

Um ein Sample einer Oracle Table zu bekommen, kann man das folgende Statement benutzen:
SELECT * FROM table123 SAMPLE (0.0001) SEED (4711);
Dieses Statement wählt 0.0001 Prozent der Zeilen der Tabelle aus. Durch das fixe Seed wird auch bei mehreren Aufrufen das gleiche Ergebnis zurückgeliefert (solange sich die Tabelle nicht ändert). Wird das fixe Seed weggelassen, wird ein zufälliges Seed gewählt.

Montag, 21. Dezember 2015

Java Remote Debugging

Es gibt verschiedene Situationen, in denen ein remote Debugging angebracht sein kann. Die beiden häufigsten sind:
  • Die VM befindet sich auf einer Maschine, auf der keine IDE installiert ist
  • Der Aufruf des Servers erfolgt durch ein Script und kann nur umständlich in der IDE nachgestellt werden
Das remote Debugging wird durch folgende Parameter bei Aufruf initiiert. Der Port kann dabei angepasst werden:
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=y

Freitag, 16. Oktober 2015

Java Generics und der Type-Witness

Die Typ-Inferenz von Java versucht den Typ eines Generics anhand der bekannten Typinformationen auszuwerten. Dies kann jedoch in bestimmten Fällen schief gehen.

So funktioniert zwar folgendes Beispiel:
private void f(List<String> l) {
  // TODO 
}

List<String> l = Collections.emptyList();
f(l);
Wird die leere Liste aber direkt verwendet, schlägt die Typ-Inferenz mit der Fehlermeldung "The method f is not applicable for the arguments List<Object>" fehl:
f(Collections.emptyList());
Die Lösung ist, hier einen Type-Witness einzusetzen:
f(Collections.<String>emptyList());