Mittwoch, 1. Mai 2013

easily exploring Java AbstractSyntaxTree

If you ever need to deal with the AST in java here I'd like to this small tool I've found some time ago.

start it with

java  -cp checkstyle-5.6-all.jar com.puppycrawl.tools.checkstyle.gui.Main PomSourceImporter.java
It shows this file de/lgohlke/sonar/PomSourceImporter

Checkstyle Gui

A nice feature is typing ENTER on an ast node and the corresponding source code will be highlighted as well.
You can get it with checkstyle from checkstyle.sourceforge.net, it is also described here The Checkstyle SDK Gui.

I really appreciated this tool a while ago, when I worked on my thesis and SelectorMethodArgumentCheck.java.

alternativ tools are:

Mittwoch, 24. April 2013

Mittwoch, 17. April 2013

Erster Follower ;)

Hiermit möchte ich meinen ersten regelmäßigen Leser begrüßen.

Hallo Jonas ;)

Diese Ehre ist nur dem ersten vorbehalten! Aber auch nur, weil er mich darauf hingewiesen hat.^^

Dienstag, 9. April 2013

Github page

Ich muss sagen github.com ist schon eine tolle Sache.

Gerade habe ich mir eine Website angelegt (lkwg82.github.io) und dort auch meine Präsentation zum Sonar-Plugin Sonar+Maven+Checks hinterlegt.

Alles super einfach, toll!

Montag, 8. April 2013

Sicheres und einfaches Backup mit Encfs in die Cloud

Wie in encfs --reverse schon angekündigt, stellt encfs eine einfache praktikable Lösung bereit, Klartext-Verzeichnise on-the-fly als verschlüsselte Verzeichnisse zu mounten.

Übersicht

Dazu bedarf es nur weniger Zeilen (1) und der Information zur Verschlüsselung im Klartextverzeichnis (2)
  1.  
    encfs --reverse clear-text-directory directory-to-show-as-encrypted 
    
  2. $ ls -al
    insgesamt 2768
    drwxr-xr-x 10 lars lars    4096 Mär 15 15:18 .
    drwxr-xr-x  3 lars lars    4096 Dez 17 23:46 ..
    ...
    -rw-r--r--  1 lars lars    1090 Feb 13 10:39 .encfs6.xml
    ...
    
Die Datei aus (2) bekommt man durch den klassischen Weg (Anlegen eines verschlüsselten Verzeichnisses)
 
encfs clear-text-directory directory-to-show-as-encrypted 
...
Das Ganze mal in ein Skript verpackt, welches aus dem aktuellsten backintime Verzeichnis meine Bilder in die Cloud sichert. (Die Cloud ist hier jetzt mein Server ;))

Praxisbeispiel

Sie sieht die Ausführung aus:
$ ./bilder_backup.sh 
Give pw for encView
EncFS-Passwort: 
insgesamt 3,1M
4,0K dr-xr-xr-x 10 lars lars 4,0K Mär 15 15:18 .
328K drwxrwxrwt 21 root root 324K Apr  8 22:20 ..
1,4M -r--r--r-- 14 lars lars 1,3M Sep  9  2012 72EM,II1
4,0K -r--r----- 17 lars lars  407 Jun 26  2006 8HFavTtakwyTC-
4,0K -r--r--r--  8 lars lars 1,1K Feb 13 10:39 cZcEr1j6cPnLRha10,
292K -r--r----- 17 lars lars 292K Jun  7  2005 gbrODCTZU3wCc9JgQsusQz-5
4,0K dr-xr-xr-x  7 lars lars 4,0K Sep  9  2012 Ki4-qaws1mXW
4,0K dr-xr-xr-x 24 lars lars 4,0K Mär 14 17:25 KW,cCDCPQgQA
388K -r--r----- 17 lars lars 386K Jan  2  2005 kykBT6MBxWsN7Rs4usZjBZyOKITWbBC
4,0K dr-xr-x---  3 lars lars 4,0K Nov  9  2009 loVuTdSv6Rcx1vRqzXMMDFaFF-j-32OmZo7
4,0K -r-xr-xr-x 17 lars lars  233 Jun 26  2006 meqPWsFAIhi1
4,0K dr-xr-x---  3 lars lars 4,0K Jan 12  2010 ny8KaOyd0hQ8S0
4,0K dr-xr-x---  2 lars lars 4,0K Okt 23  2009 teUPxPhzK3bXr1
4,0K dr-xr-xr-x 12 lars lars 4,0K Sep 15  2010 twep7Wbbb1uN
4,0K dr-x------  8 lars lars 4,0K Okt 21 15:19 v4ZC-SmXGf3
352K -r--r----- 17 lars lars 351K Apr  3  2005 XL7z8lqo0OqMpZlx91
4,0K dr-xr-xr-x  7 lars lars 4,0K Apr  9  2008 xP-CpRIY9YcqybC,HOLNkWqW
352K -r--r----- 17 lars lars 351K Aug 30  2006 xqI6SUadWF9PR-556ChJF6-VWVM0eCB
building file list ... 
20080 files to consider
Ki4-qaws1mXW/wNovM37-LeKdn00/ErfqKTMMk4r0dFPCqxGX-sv9fLNX/
Ki4-qaws1mXW/wNovM37-LeKdn00/ErfqKTMMk4r0dFPCqxGX-sv9fLNX/hz0wj1FP6JLTDeC/
Ki4-qaws1mXW/wNovM37-LeKdn00/ErfqKTMMk4r0dFPCqxGX-sv9fLNX/hz0wj1FP6JLTDeC/2sTxd26gZ1fkEACTyEkga3KuEGGm4m2UElmRF5knNre1YZyutl2nKsf,VwEuYX8
         262 100%    0.00kB/s    0:00:00 (xfer#1, to-check=11491/20080)

Number of files: 20080
Number of files transferred: 1
Total file size: 96218876503 bytes
Total transferred file size: 262 bytes
Literal data: 262 bytes
Matched data: 0 bytes
File list size: 687638
File list generation time: 3.391 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 687964
Total bytes received: 41

sent 687964 bytes  received 41 bytes  65524.29 bytes/sec
total size is 96218876503  speedup is 139852.00
und so das Skript dazu:
#!/bin/bash

set -e
#set -x 

pathToImages=home/lars/remote/lars/volume_i/bilder/
lastBackup=$(find /backup/backintime/lars-G33-DS3R/lars/1 -maxdepth 1 -type d |  sort -n | tail -n1)

path=$lastBackup/backup/$pathToImages

pathToEncView=$(tempfile).d
mkdir $pathToEncView

echo Give pw for encView
encfs --reverse $path $pathToEncView

ls -alsh $pathToEncView

continue=1
while( [ $continue == 1 ] );
do
        rsync -v --stats --progress -e ssh  --partial --archive --delete-after --log-file=log  $pathToEncView/* wirt2.lgohlke.de:/backup/uploaded/Bilder/.backend && continue=0 || sleep 1
done


sudo umount $pathToEncView
rmdir $pathToEncView
Das Skript mounted die Sicht auf das verschlüsselte Verzeichnis in ein temporäres Verzeichnis (Zeile 11) und löscht dieses wieder (Zeile 27).
Das Hochladen der Bilder erfolgt über rsync+ssh und wird so lange wiederholt, bis das Backup erfolgreich war und nicht zwischendurch abgebrochen ist.

Fazit

  1. Mit ausreichender Verschlüsselung sind die Daten sicher!
  2. Damit kann nun auch Dropbox o.ä. genutzt werden. Dorthinein mounten und hochladen lassen.

Montag, 1. April 2013

Vncserver nur von lokal erreichbar starten

$ vncserver :1 -depth 8 -geometry 1600x900 -localhost -nolisten tcp
prüfen mit
$ netstat -tulpen | grep vnc
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN      1000       19697       11916/Xtightvnc

Donnerstag, 28. Februar 2013

line coverage per test by Jacoco

Nach einem Eintrag in der Mailingliste von Sonar wird Jacoco demnächst auch die Coverage von einzelnen Tests unterscheiden können. Siehe auch Sonar Issue.

Damit könnte man dann ähnlich wie hier beim metricanalyzer eine qualitative Einschätzung der Tests vornehmen. Wird noch richtig interessant!

Nun stellen sich mir nur noch die Fagen, ob ...

  • ...auch Branch-Coverage möglich wird?
  • ... das auch bei parallelen Tests geht?

Sonntag, 17. Februar 2013

EncFS --reverse

Gerade habe ich in der Manpage von EncFS eine sehr schöne Lösung für ein sicheres Backup in der Cloud gefunden.

Encfs ist ein Dateisystem im Userspace und bietet eine Sicht auf Verzeichnisse an. Ursprünglich ging es darum verschlüsselte Verzeichnisse entschlüsselt anzuzeigen. Der Reverse Modus bietet genau den umgekehrten Weg an. Somit können beliebige (unverschlüsselte) Verzeichnisse mittels EncFs als verschlüsselte Verzeichnisse angezeigt werden.

"Wow. Wtf?" Werden sich gerade einige fragen. Aber mit dieser umgekehrten Sicht, kann man einfach mit einem Synchronisationswerkzeug das Ganze an syncronisieren. "Wow!"

Ich verweise einfach nur auf den Artikel: Daten sicher in der Synchro-Wolke dank encfs.

Habe leider keine Ahnung, ob dieser Modus auch für Mac bzw. auch für Windows via dokan verfügbar ist. :|

P.S. Python WrapperSkript encfs –reverse + rsync = encrb