Auf einen Blick das Wichtigste.
Was haltet ihr davon?

mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Seit vorgestern ist der Klassiker in der neuen Version
„Java 7 – Mehr als eine Insel von Christian Ullenboom
Das Handbuch zu den Java SE-Bibliotheken“
als Open-Book, kostenlos im Netz erreichbar, also gleich bookmarken:
http://openbook.galileocomputing.de/java7/
»Ein klassisches Werk ist ein Buch, das die Leute loben, aber nie lesen.«
– Ernest Hemingway (1899–1961)
Eine gute Liste der Java Versionen gibt es hier. Oder das Orginal von Apple mit Java Code zur ermittlung der Version.
Die Java Version kann man im Terminal wie folgt ermitteln:
java -version
Es wird dann z.B. geliefert:
java version "1.6.0_29" Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11D50)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)
Habe heute einige Seiten von http://www.wenzlaff.de/ auf XHTML und CSS umgestellt. Wie gefällt es Euch?
Damit die Umlaute nicht nur auf Windows sondern auch auf dem Mac OS X richtig dargestellt werden, müssen sie als Unicode angegeben werden.
Zeichen Unicode
------------------------------
Ä, ä \u00c4, \u00e4
Ö, ö \u00d6, \u00f6
Ü, ü \u00dc, \u00fc
ß \u00df
Die folgenden Tastaturbefehle erzeugen auf dem Desktop bzw. in der Zwischenablage eine png Datei:
Shift + CMD + 3 der ganze Bildschrirm
Shift + CMD + CTRL + 3 der ganze Bildschirm aber in die Zwischenablage
Shift + CMD + 4 dann mit Fadenkreuz einen Bereich auswählen
Shift + CMD + 4 + Leertaste + dann klick auf das offene Fenster
Bei dem letzten Befehl wird jeweils ein Schatten mitgespeichert. Dies kann abgeschaltet werden durch einmalige eingabe in der Konsole mit:
|
1 |
defaults write com.apple.screencapture disable-shadow -bool true; killall SystemUIServer |
Ausschalten geht dann wieder mit:
|
1 |
defaults write com.apple.screencapture disable-shadow -bool false; killall SystemUIServer |
Wer PGP für die Signierung und die Verschlüsselung verwendet, kann die automatisch angefügte Signatur
„Comment: GPGTools – http://gpgtools.org“ bei den GPGTools auf einen Mac wie folgt entfernen.
Öffnen der Datei
~/.gnupg/gpg.conf
und löschen der Zeile
comment GPGTools - http://gpgtools.org
Wer das Dashboard nicht benötigt, kann es auch deaktivieren. Das spart Ressourcen.
Im Terminal folgenden Befehl eingeben:
defaults write com.apple.dashboard mcx-disabled -boolean YES
und restart des Docks:
killall Dock
Wer es wieder aktivieren will:
defaults write com.apple.dashboard mcx-disabled -boolean NO
und
killall Dock
Der heißt auf dem Mac Aktivitätsanzeige. Er ist zu finden unter
Programme/Dienstprogramme
oder über die Tasten
CMD und Space und Eingabe Aktivitätsanzeige mit return.
Dort können alle Prozesse beendet werden.
Mir ist der Cursor mit normaler Einstellung zu klein und ich muss in immer auf dem Bildschirm suchen.
Unter
Systemeinstellungen -> Bedienungshilfen -> Maus & Trackpad
kann man den Mauszeiger stufenlos vergrößern oder auch verkleinern.
Nach der Installation des binären Package läuft Jenkins nicht unter der URL http://localhost:8080/ und es kommt zu einer 404 Fehlermeldung. Was tun?
1. Einen eigenen jenkins User anlegen mit:
|
1 2 3 4 5 6 7 |
sudo dscl . create /Users/jenkins sudo dscl . create /Users/jenkins PrimaryGroupID 1 sudo dscl . create /Users/jenkins UniqueID 300 sudo dscl . create /Users/jenkins UserShell /bin/bash sudo dscl . create /Users/jenkins home /Users/Shared/Jenkins/Home/ sudo dscl . create /Users/jenkins NFSHomeDirectory /Users/Shared/Jenkins/Home/ sudo dscl . passwd /Users/jenkins |
2. Die Datei /Library/LaunchDaemons/org.jenkins-ci.plist
wie folgt in den User ändern:
|
1 2 |
<key>UserName</key> <string>jenkins</string> |
3. Das Home Verzeichnis /Users/Shared/Jenkins/Home einen neuen Besitzer geben mit:
|
1 |
sudo chown -R jenkins /Users/Shared/Jenkins |
4. Restarte des Services mit:
|
1 2 |
sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist |
5. Im Browser testen ob die Jenkins Gui angezeigt wird mit URL http://localhost:8080/
Für die Fehlersuche ist es hilfreich, den debug Modus einzuschalten. Es geht ganz einfach mit -X
Also z.B.:
mvn install -X
mvn dependency:build-classpath
mvn dependency:analyze
Erzeugt z.B.:
...
[INFO] --- maven-dependency-plugin:2.0:analyze (default-cli) @ twsendsms ---
[WARNING] Used undeclared dependencies found:
[WARNING] com.google.gdata:gdata-core-1.0:jar:1.41.5:compile
[WARNING] com.google.gdata:gdata-contacts-3.0:jar:1.41.5:compile
[WARNING] com.google.gdata:gdata-client-1.0:jar:1.41.5:compile
[WARNING] Unused declared dependencies found:
[WARNING] junit:junit:jar:sources:4.7:compile
[WARNING] junit:junit:jar:4.7:test
[WARNING] google-data:google-data:jar:0.0.1:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
mvn dependency:tree
Ausgabe z.B.:
[INFO] Building twsendsms 0.1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.0:tree (default-cli) @ twsendsms ---
[INFO] de.wenzlaff.twsendsms:twsendsms:jar:0.1.0
[INFO] +- junit:junit:jar:4.7:test
[INFO] +- commons-codec:commons-codec:jar:1.4:compile
[INFO] +- telekom-sdk-java:java-sdk:jar:3.1.10:compile
[INFO] +- junit:junit:jar:sources:4.7:compile
[INFO] +- log4j:log4j:jar:1.2.4:compile
[INFO] \- google-data:google-data:jar:0.0.1:compile
[INFO] +- com.google.gdata:gdata-contacts-3.0:jar:1.41.5:compile
[INFO] | \- com.google.gdata:gdata-client-1.0:jar:1.41.5:compile
[INFO] \- com.google.gdata:gdata-core-1.0:jar:1.41.5:compile
[INFO] +- com.google.collections:google-collections:jar:1.0-rc1:compile
[INFO] \- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
Erst Macports installieren und dann mit
sudo port install maven3
die Installation starten. Dann wie im Installationsfenster beschrieben, maven 3 als default setzen.
Wichtig ist noch, das im ~/.m2/settings.xml das Lokale Repository angegeben wird. Dabei darf das Lokale Verzeichnist nicht
mit ~ gesetzt werden, sondern es muss der komplette Pfad angegeben werden, sonst laufen die Eclipse Plugins nicht richtig.
In
~/.bash_profile
noch:
export M2_HOME=/opt/local/share/java/maven3
export PATH=${M2_HOME}/bin:${PATH}
setzen.
Die Terminal App starten und mit einem Editor die
~/.bash_profile (evl. kontrollieren .profile, .bashrc, /etc/profile )
Datei um den folgenden Eintrag ergänzen:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
Nach dem restart der Terminal App kann es mit:
echo $JAVA_HOME
getestet werden ob der Eintrag richtig gesetzt wurde.
Auch muss jetzt in jedem Verzeichnis mit:
java -version
die Java Version ausgegeben werden.
Jetzt 146 Seite Online von der Java Insel mit den Kap. über Java 7 News und Reflections. Und das Buch in der Ver. 10 unter.
Wer kennt eine gute FTP Client App. fürs IPhone bzw. IPad?
Soeben WPtouch installiert.
Jetzt ist der Blog optimiert für zugriffe von iPhone, iPod touch, Android, Palm Pre, Samsung touch und BlackBerry Storm/Torch Mobile-Devices.
Also blog.wenzlaff.de ist jetzt optimiert für Mobile-Devices. Man kann auch unten auf der Seite zur orginal Ansicht wechseln. Cool. So sieht die Seite auf meinem IPhone aus:

Was haltet ihr davon?
In Java 7 gibt es jetzt den „diamond Operator“. Nun müssen bei generics keine Typen doppelt deklariert werden.
Hier ein Beispiel vorher und nachher:
List<Integer> liste = new ArrayList<Integer>(); // vor JRE 7
List<Integer> diamantListe = new ArrayList<>(); // ab JRE 7, ja Diamonds are forever
So, jetzt ist Java 7 da. Was braucht man zum ausprobieren?
Eine Eclipse Version die Java 7 unterstützt. Das geht noch nicht mit Helios. Deshalb einen „Nightly Build“ herunterladen.
Dann über Update neue Software über diese URL den JDK 7 patch herunterladen.
Was dann noch fehlt ist das JDK 7 von Oracle.
In den Projekt Einstellungen unter Java Compiler die 1.7 auswählen und nun der erste Test.
In Java 1.7 sind jetzt Unterstriche (_) in Literalen möglich, um besser zu gliedern z.B.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
public class TestJava7 { private static long telefonNummer_1 = 11_22_33_44L; private static double telefonNummer_2 = 11_22.3_3d; public static void main(String[] args) { System.out.println("Telefonnummer 1: " + telefonNummer_1); System.out.println("Telefonnummer 2: " + telefonNummer_2); } } |
Das Ergebnis:
Telefonnummer 1: 11223344
Telefonnummer 2: 1122.33
Weitere Neuerungen mit Beispielen wie „String in switch“ kommen hier dann demnächst.
Ab jetzt gibt es eine neue Eclipse 3.7 Version genannt Indigo. Mal sehen was es neues gibt. Download über die Eclipse Seite.
Habe das Java Package geladen, und das erste Projekt ins Git Repo geschoben.
Die Home Variable war nicht gesetzt auf das User Verzeichnis, dann lief es.
Hier die EGit-Anleitung.
Maven, da musste ich in den Settings auch die setting.xml setzen, und im Pom einige Goals auskommentiern, da sie mit der neuen Version nicht zusammen passen.
Das Explorer-Plugin läuft auch unter Indigo, super.
Indigo scheint auch schneller zu laufen 🙂
Da boolesche Logik auf den ersten Blick schwer lesbar und zu verstehen ist,
können (sollten) Funktionen extrahiert werden um eine bessere Lesbarkeit zu erhalten.
Z.B.
if (sollGeloeschtWerden(timer)){…
ist besser als:
if (timer.isGueltige() && !timer.isAktuell() || timer > heute){…
In if Abfragen verwendete Bedingungen immer positiv formulieren. Das ist besser zu verstehen.
Z.B.
if ( speicher.isLeer() )
ist besser als
if (!speicher.isNichtLeer() )
da pos. formuliert.
Also müsste die Überschrift „Positive Bedingungen verwenden“ heißen. Das wird dann mal später mal geändert. So heißt es immer, und bleibt für immer 😉