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/
Mittwoch, 18. Mai 2016
Donnerstag, 17. März 2016
Eclipse Plugins
Tests und Codestyle
- FindBugs
- Installation-URL: http://findbugs.cs.umd.edu/eclipse
- Eclipse PMD
- Installation-URL: http://www.acanda.ch/eclipse-pmd/release/latest
- Infinitest
- Installation-URL: http://infinitest.github.io
(wird bei Bedarf erweitert)
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
-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:
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());
Dienstag, 7. Juli 2015
CIFS über SSH
Um eine CIFS Verbindung über einen SSH Tunnel zu fahren, muss zuerst der SSH Tunnel aufgebaut werden. Dabei sollte statt des veralteten Port 139 der aktuellere Port 445 verwendet werden, da es ansonsten zu Problemen kommen kann.
Der Aufbau der SSH Verbindung kann auf unterschiedliche Weise geschehen. Die einzelnen Verfahren haben dabei Vor- und Nachteile.
- Aufbau im Vordergrund ohne Command. Hier muss man den Tunnel manuell in der Hintergrund schicken
ssh -N -L 10445:10.5.107.32:445 user@jumpserver
- Aufbau im Hintergrund ohne Command. Zum stoppen muss der Prozess gefunden werden.
ssh -f -N -L 10445:10.5.107.32:445 user@jumpserver
- Aufbau im Hintergrund mit Master ohne Command. Extra Aufwand, dafür gute Steuerung
ssh -f -N -M -S
-L 10445:10.5.107.32:445 user@jumpserver - Aufbau im Hintergrund mit Timeout. Auto-Close
ssh -f -L 10445:10.5.107.32:445 user@jumpserver sleep 60
Sobald die Verbindung steht, kann man dann einen CIFS Mount durchführen:
mount -t cifs //WINSERVER/SHARE /mnt/ -o user=winuser,port=10445,ip=127.0.0.1,domain=windomain
Abonnieren
Posts (Atom)