- Not Restricting Access to Classes and Variables
- Depending on Initialization
- Not Finalizing Classes
- Relying on Package Scope
- Minimize the Usage of Use Inner Classes
- Hard Coding
- Allow the Echoing Of Sensitive Data to the UI
- Not Paying Attention to Class Cloneability
- Overdoing of Serialization and Deserialization
Wie kann ein BE-Model (ecore) mit Eclipse Modeling Framework (EMF) unter Eclipse Luna 4.4.2 und Texo generiert werden?
Für die meisten Java Projekte braucht man ein BE-Model, das am besten automatisch generiert wird. Wie kann das innerhalb von Eclipse Luna mit dem EMF durchgeführt werden?
Wir wollen diese Modell Stuktur erzeugen. Eine Mindmap hat 0-* Zweige:
Zuerst Texo und EMF installieren.
Dann ein neues EMF Projekt anlegen über das Menü: File - New - Other
:
Nun erstellen wir ein ecore Model über das Menü: File - New - Other - Eclipse Modeling Framework-Ecore
Model:
So sieht das Projekt nun aus, mit der mindmap.ecore
Model Datei:
Nun erzeugen wir zwei Klassen mit ein paar Attribute über New Child - New EClass
über das Kontextmenü des Models (2.Zeile): „Wie kann ein BE-Model (ecore) mit Eclipse Modeling Framework (EMF) unter Eclipse Luna 4.4.2 und Texo generiert werden?“ weiterlesen
Wie kann eine MySQL Datenbank auf einem Mac OS X 10.10.3 (Yosemite) (Windows …) installiert werden, um mit Java von Eclipse (Java EE Luna 4.4.2) aus darauf zuzugreifen?
Wer eine MySQL Datenbank auf seinen Rechner installieren will, muss sich die Packages die zu installieren sind, auf der MySQL Homepage zusammen suchen.
Folgende drei Komponenten müssen für Mac OS X geladen und installiert werden (für Windows analog):
1. MySQL Community Server 5.6.24 von https://dev.mysql.com/downloads/mysql/
Für den Mac OS X 10.9 (x86, 64-bit), DMG Archive 5.6.24 167.6M mysql-5.6.24-osx10.9-x86_64.dmg. Installation.
2. MySQL Workbench 6.3.3 von http://dev.mysql.com/downloads/workbench/
mysql-workbench-community-6.3.3-osx-x86_64.dmg. Installation.
Die Workbench kann dann aus dem Programm Verzeichnis über das folgende Programm-Icon gestartet werden:
3. Connector/J 5.0.8 für Java für alle Betriebsysteme von https://dev.mysql.com/downloads/connector/j/5.0.html
Download mysql-connector-java-5.0.8.zip und z.B. in das Verzeichnis
/usr/local/mysql-5.6.24-osx10.8-x86_64/mysql-connector-java-5.0.8.jar kopieren.
Wenn alles installiert wurde, kann der DB Server über die Systemsteuerung mit dem MySQL Icon unten rechts gestartet werden:
„Wie kann eine MySQL Datenbank auf einem Mac OS X 10.10.3 (Yosemite) (Windows …) installiert werden, um mit Java von Eclipse (Java EE Luna 4.4.2) aus darauf zuzugreifen?“ weiterlesen
Eclipse Plug-in: Wie können Resourcen von einem Plug-in in einem anderen Plug-in gelesen werden?
Manchmal möchte man die Resourcen wie Bilder oder Dateien aus einem anderen Eclipse Plug-in lesen. Also wie können Resourcen von einem Plug-in, in einem anderen Plug-in gelesen werden?
1 2 |
URL url = new URL("platform:/plugin/de.wenzlaff.plugin.twusb/gif/beispiel.gif"); ... |
Siehe auch hier.
Raspberry Pi: Per Bash mit GPIO Lib wiringpi, per Phyton mit RPi.GPIO und Java mit pi4j ansteuern der Pins auf Kali
Um die Pins per Bash anzusteuern, kann die wiringpi Lib verwendet werden. Die GPIO Homepage oder auch die Pin Belegung des rPi ist hilfreich.
So, jetzt erst einmal alles installieren und testen mit einer LED mit Widerstand an Pin 7 (4. Pin von oben links) und Masse (ganz unten links).
Zuerst alles für die Bash, um von der Konsole auf die Pins zugreifen zu können: „Raspberry Pi: Per Bash mit GPIO Lib wiringpi, per Phyton mit RPi.GPIO und Java mit pi4j ansteuern der Pins auf Kali“ weiterlesen
Eclipse PlugIn: Wie kann Text im Konsolen Fenster ausgegeben werden?
Manchmal möchte man einfach nur Text in der Konsole ausgeben. Früher, d.h. vor Eclipse 3.0 musste man dazu eine eigene View erzeugen. Das braucht man nun nicht mehr, man kann die vorhandenen generic Log Konsole verwenden.
Aufrufen geht dann einfach so:
1 2 3 4 5 6 |
MessageConsole konsole = getKonsole("Konsole"); MessageConsoleStream out = konsole.newMessageStream(); out.println("Hallo sagt Thomas von der Konsole."); out.println("Wir schreiben einfach in die Konsole oder?"); out.println(); out.println("Ist das Cool?"); |
Hier die Methode, die die Konsole liefert bzw. erzeugt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/** * Liefert die Log Konsole. Wenn keine Konsole vorhanden ist, wird eine neu erzeugt. * * @param konsolenName * der Name der Konsole * @return MessageConsole */ private MessageConsole getKonsole(String konsolenName) { ConsolePlugin plugin = ConsolePlugin.getDefault(); IConsoleManager konsolenManager = plugin.getConsoleManager(); IConsole[] konsolen = konsolenManager.getConsoles(); for (int i = 0; i < konsolen.length; i++) { if (konsolenName.equals(konsolen[i].getName())) { return (MessageConsole) konsolen[i]; } } // keine Konsole gefunden, dann erzeugen wir eine MessageConsole konsole = new MessageConsole(konsolenName, null); konsolenManager.addConsoles(new IConsole[] { konsole }); return konsole; } |
Wir erhalten dann folgenden Ausgabe:
Um das zu erreichen, muss noch eine neue Abhängigkeit ( org.eclipse.ui.console) (Dependencies) ergänzt werden:
Eclipse PlugIn: Wie kann ein Logeintrag in der Error Log View erstellt werden?
Bei der PlugIn Programmierung unter Eclipse Luna kann leicht auf die Log-View zugegriffen werden. Hier mal ein kleines Beispiel mit den verschiedenen Loglevel:
1 2 3 4 5 6 7 8 9 10 11 |
IStatus status = new Status(IStatus.INFO, "TWPlugin", "Testeintrag im Log im Status Info"); StatusManager.getManager().handle(status, StatusManager.LOG); status = new Status(IStatus.ERROR, "TWPlugin", "Testeintrag im Log im Status Error"); StatusManager.getManager().handle(status, StatusManager.LOG); status = new Status(IStatus.WARNING, "TWPlugin", "Testeintrag im Log im Status Warning"); StatusManager.getManager().handle(status, StatusManager.LOG); status = new Status(IStatus.OK, "TWPlugin", "Testeintrag im Log im Status OK"); StatusManager.getManager().handle(status, StatusManager.LOG); |
So sieht es dann aus:
Wie kann mit der neuen Java Zeit API 1.8 ein Zeitstempel (2014-01-31_15:12:00) erzeugt werden?
Java 1.8 gibt es ja nun schon einige Zeit. Warum nicht die neue Time API verwenden?
Vorteil, die meisten Time und Date Klassen sind immutable und thread-safe. Z.B die LocalDateTime, LocalDate und DateTimeFormatter.
Hier mal ein Beispiel, um einen Zeitstempel in der Form 2014-01-31_15:12:00 zu erzeugen:
1 2 3 4 5 |
import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; private static final DateTimeFormatter ZEITSTEMPEL_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH:mm:ss"); |
1 2 3 4 5 6 |
private static String getZeitstempel() { // 2014-01-31_15:12:00 LocalDateTime heute = LocalDateTime.now(); String zeitstempel = ZEITSTEMPEL_FORMAT.format(heute); return zeitstempel; } |
Wie kann mit der neuen Java 1.8 Time Api einmal am Tag um Mitternacht ein Ereignis erzeugt werden?
Wie kann mit der neuen Java 1.8 Time Api einmal am Tag um Mitternacht ein Ereignis erzeugt werden? Natürlich geht auch jeder andere Zeitpunkt, aber hier mal das Beispiel um Mitternacht:
1 2 3 4 5 6 |
// Plant die Ausführungen ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); // einmal am Tag um Mitternacht Long mitternacht = LocalDateTime.now().until(LocalDate.now().plusDays(1).atStartOfDay(), ChronoUnit.MINUTES); // und los.. scheduler.scheduleAtFixedRate(new AnzahlProTagAction(flugInfosProTag, parameter), mitternacht, 1440, TimeUnit.MINUTES); |
Hier die Beispiel Klasse.
Wichtig ist das sie von TimerTask
ableitet und die run()
Methode überschreibt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class AnzahlProTagAction extends TimerTask { private Parameter parameter; private FlugInfosProTag flugInfosProTag; public AnzahlProTagAction(FlugInfosProTag flugInfosProTag, Parameter parameter) { this.flugInfosProTag = flugInfosProTag; this.parameter = parameter; } @Override public void run() { // hier der auszuführende Code } } |
Java auf Platz 2 im aktuellen Tiobe Index 2015
Quelle: Tiobe Index
DUMP1090 Client TWFlug 0.1.0 für Raspberry Pi, Mac, Windows und Linux veröffentlicht
Habe soeben die 1. Version von dem DUMP1090 Client TWFlug kostenlos
veröffentlicht.
TWFlug liest die Daten von einem DUMP1090 Server und zeigt sie (optional) in einem Tacho an oder/und schreibt die Daten in eine Logdatei für die Auswertung mit z.B. Fhem. Es kann die Logdatei auch per sFTP an einen entfernten Rechner kopieren.
Das TWFlug Programm ist ein Java Programm und läuft somit auf allen Betriebssystem. Es können mit Fhem dann solche schönen Grafiken in Echtzeit angezeigt werden:
Installation:
Download der twflug-0.1.0.zip.
Dann das Archive auspacken.
Für das Starten gibt es zwei Möglichkeiten mit oder ohne GUI.
Ohne GUI mit Eingabe in der Konsole in dem TWFlug Verzeichnis mit:
1 |
java -jar twflug.jar -n --ip IP-VOM-DUMP1090-Server |
also z.B. java -jar twflug.jar -n --ip 192.198.1.2
oder mit GUI
1 |
java -jar twflug.jar --ip IP-VOM-DUMP1090-Server |
also z.B. java -jar twflug.jar --ip 192.198.1.2
Dann startet nach einigen Sekunden, die folgenden Anzeige von TWFlug:
Weiter Infos zu den Parametern erhält man durch Eingabe von
1 |
java -jar twflug.jar --help |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
[main] DEBUG de.wenzlaff.twflug.TWFlug - Starte TWFlug ... usage: TWFlug -c,--copy-time <arg> copy time in Minuten (default: 60 Minuten) -d,--debug print debugging information (default: false) -dd,--ziel-datei <ziel-datei> destination file name (default: /home/pi/fhem/log/flugdaten-YYYY-MM.log) -dip,--ziel-ip <arg> ip adress for copy destination -dpsw,--ziel-passwort <arg> passwort from destination User -duser,--ziel-user <arg> destination User (default: pi -h,--help print help and exit -height,--window-height <arg> set window hight (default: 600) -i,--ip ip adress from DUMP1090 -k,--copy copy output file to destination (default: false) -max,--max-count <arg> set max count value (default: 50) -min,--min-count <arg> set min count value (default: 0) -n,--no-gui display no GUI. Only logfile output (default: false) -o,--outputfile <outputfile> use given file for DUMP output (default: flugdaten-YYYY-MM.log) -p,--port <arg> port from DUMP1090 (default: 30003) -r,--refresh-time <arg> refresh time in ms (default: 300000 ms = 5 Minuten) -v,--version print the version information and exit -width,--window-width <arg> set window with (default: 600) |
Weitere Anregungen, Bugs, Fix, Likes, Lob und Dank gerne als Kommentar hier auf der Seite.
Viel Spaß beim Planecounting.
Raspberry Pi: Wie können Flugzeugdaten in Fhem in real-time (Echtzeit) angezeigt werden?
Da bei mir ein Fhem Home-Server läuft, hatte ich die Idee, dort doch gleich die Flugdaten die von den Flugzeugtranspondern ausgesendet werden schön graphisch in Echtzeit anzuzeigen.
Also wie kann eine Grafik in Fhem erstellt werden, die die aktuelle Anzahl der gerade empfangenen Flugzeuge anzeigt.
Hier das Ergebniss, wo man deutlich sehen kann, das heute bis ca. 6 Uhr nur ca. 10 Flugzeuge flogen. Dann steigt der Flugverkehr rapide an:
Wie kann nun so eine Grafik, die sich automatisch aktualisiert erstellt werden.
Zuerst einmal die Architektur als BPMN 2.0 Diagramm:
Es werden zwei Raspberry Pi benötigt. Auf dem einen läuft der DUMP1090 Server mit der TWFlug Anwendung unter Java 1.8. Die TWFlug Anwendung läuft ohne Gui, und schreibt alle 5 Minuten die Anzahl der empfangenen Flugzeuge in eine Datei. Diese Datei wird dann jede halbe Stunde per sFTP an den anderen Raspberry Pi gesendet und von Fhem eingelesen und als Grafik ausgegeben.
TWFlug kann auch mit Gui auf einen Rechner gestartet werden und gibt dann als Tacho die Anzahl der Flugzeuge aus.
Das nötige GPlot Script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* myFlug.gplot Version 1.0 vom 17.12.2014 Dieses GNU-Plot Script zeigt die Flugdaten von den empfangenen Transpondern an. Copyright (C) 2014 Thomas Wenzlaff http://www.wenzlaff.de This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}. */ # Die Logdatei sieht wie folgt aus: # 2014-12-05_07:05:58 flugdaten anzahl:29 # 2014-12-05_07:10:58 flugdaten anzahl:23 set terminal png transparent size <SIZE> crop set output '<OUT>.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title 'Empfangene Flugzeuge' set ytics set y2tics set grid ytics y2tics set ylabel "Anzahl Flugzeuge" set y2label "Anzahl Flugzeuge" #FileLog 4:flugdaten anzahl:0: plot "<IN>" using 1:2 axes x1y2 title 'Anzahl Flugzeuge' ls l0 lw 2 with lines |
TWFlug schreibt die Daten in eine Logdatei mit folgenden Format, z.B.:
1 2 3 4 5 6 7 |
2014-12-17_17:31:08 flugdaten anzahl: 39 2014-12-17_17:36:08 flugdaten anzahl: 49 2014-12-17_17:41:08 flugdaten anzahl: 36 2014-12-17_17:46:08 flugdaten anzahl: 34 2014-12-17_17:51:08 flugdaten anzahl: 36 2014-12-17_17:56:08 flugdaten anzahl: 42 2014-12-17_18:01:08 flugdaten anzahl: 41 |
TWFlug kennt bisher die folgenden Parameter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
usage: TWFlug -c,--copy-time <arg> copy time in Minuten (default: 60 Minuten) -d,--dest-file <ziel-datei> destination file name (default: /home/pi/fhem/log/flugdaten-YYYY-MM.log) -h,--help print help and exit -height,--window-height <arg> set window hight (default: 600) -i,--ip ip adress from DUMP1090 (default: 0.0.0.0) -ip,--ziel-ip <arg> ip adress for copy destination (default: pi-home) -k,--copy copy output file to destination (default: false) -max,--max-count <arg> set max count value (default: 50) -min,--min-count <arg> set min count value (default: 0) -n,--no-gui display no GUI. Only logfile output (default: false) -o,--outputfile <file> use given file for DUMP output (default: flugdaten-YYYY-MM.log) -p,--port <arg> port from DUMP1090 (default: 30003) -psw,--ziel-passwort <arg> passwort from destination User -r,--refresh-time <arg> refresh time in ms (default: 300000 ms = 5 Minuten) -user,--ziel-user <arg> destination User (default: pi -v,--version print the version information and exit -width,--window-width <arg> set window with (default: 600) |
Welche fehlen noch?
Hinweise zu TWFlug und DUMP1090 können auf diesem Blog gefunden werden.
JUnit 4.12 erschienen
Nach über 2 Jahren ist nun eine neue Version von JUnit veröffentlicht worden. Die Releasenotes sind auf Github zu finden. In folgenden Bereichen gab es Ergänzungen:
- Assertions
- Command-line options
- Test Runners
- Exception Testing
- Timeout for Tests
- Parameterized Tests
- Rules
- Theories
- Categories
- Use with Maven
- Miscellaneous
Ok, dann mal gleich das aktuelle Maven Projekt TWFlug auf die neue Version 4.12 angepasst:
1 2 3 4 5 6 7 8 9 10 |
<properties> <junit.version>4.12</junit.version> </properties> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> |
Mehr über JUnit oder drei Gründe warum man keine JUnit-Tests schreiben sollte.
Testfreigabe: TWFlug 0.0.1 beta für DUMP1090 zur Auswertung von Flugdaten
Habe ein Java Programm für die übersichtliche Anzeige der empfangenen Flugzeuge erstellt.
Wer einen DUMP1090 Server laufen hat, kann das TWFlug Programm starten.
Es werden bisher folgende Funktione geboten:
- anzeige der Anzahl der sichtbaren Flugzeuge
- erstellen einer Log Datei im Fhem Format
Das TWFlug Programm läuft auf unterschiedlichen Plattformen (Win, Linux, Mac…), bisher habe ich Mac OS X Yosemite (10.10.1) getestet. Wer vor der ersten öffentlichen Version am Test teilnehmen möchte, kann mir eine E-Mail senden.
So sieht das TWFlug nach dem Start aus:
Folgendes Fhem-Format wird alle 5 Minuten geschrieben, damit in Fhem Grafiken erzeugt werden können:
1 2 3 4 5 6 7 8 9 10 |
2014-12-01_21:00:52 flugdaten anzahl:31 2014-12-01_21:05:52 flugdaten anzahl:31 2014-12-01_21:10:52 flugdaten anzahl:32 2014-12-03_06:11:56 flugdaten anzahl:7 2014-12-03_06:16:56 flugdaten anzahl:12 2014-12-03_06:21:56 flugdaten anzahl:10 2014-12-03_06:26:56 flugdaten anzahl:11 2014-12-03_06:31:56 flugdaten anzahl:9 2014-12-03_06:36:56 flugdaten anzahl:18 2014-12-03_06:41:56 flugdaten anzahl:20 |
Das Programmfenster läßt sich skalieren, so das es auf dem Desktop schön aussieht:
Der Quellcode liegt auf GitHub.
Top 4 Mindmap zum Thema Test-Tools
SelBlocks für Selenium installieren oder „Wer testet ist feige“
Das Plug-In SelBlocks für die Selenium IDE darf nicht fehlen. Also über diese Seite installieren und den Browser neu starten:
Das Plugin ist eine Erweiterung für die Selenium IDE und fügt der IDE die folgenden doch immer nötigen Befehle hinzu:
- if, elseIf, else
- try, catch, finally, throw
- for, foreach, while, continue, break
- call, function, return
- loadJsonVars, loadXmlVars, forJson, forXml
- exitTest
Die Selenium IDE muss natürlich vorhanden sein:
Eine ausführliche Beschreibung und auch Beispielen sind auf dieser Seite zu finden.
Wie kann OpenHab und eine Demo-Anwendung auf einem Raspberry Pi (Debian) installiert werden?
Wie kann OpenHab und eine Demo-Anwendung auf einem Raspberry Pi (Debian) installiert werden?
OpenHab läuft auch auf einem Raspberry Pi. Auf Wikipedia gibt es einen kurzen Überblick zu OpenHab.
Um erste Erfahrungen mit OpenHab zu machen, kann man die Demo Anwendung von OpenHab installieren. Als Basis dient die aktuelle Debian 7.6 Version, auf der schon Java installiert ist.
1. Zuerst checken ob Java installiert ist und läuft mit:
1 |
java -version |
Ausgabe:
1 2 3 |
java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode) |
2.Verzeichnis anlegen
1 2 |
mkdir OpenHab cd OpenHab |
3. Von hier die https://openhab.ci.cloudbees.com/job/openHAB/
die aktuelle Version 1.6.0 laden und auspacken (erst die runtime und später die demo)
1 2 3 4 5 6 7 |
wget https://openhab.ci.cloudbees.com/job/openHAB/lastSuccessfulBuild/artifact/distribution/target/distribution-1.6.0-SNAPSHOT-runtime.zip # Archiv auspacken unzip distribution-1.6.0-SNAPSHOT-runtime.zip # Optional: Archiv löschen rm distribution-1.6.0-SNAPSHOT-runtime.zip |
4. Usermod für User pi setzen und default openhab.cfg erstellen
1 2 3 4 5 6 |
sudo usermod -a -G dialout pi # Konfigdatei erstellen, alle default Einstellungen cd /configurations cp openhab_default.cfg openhab.cfg cd .. |
5. Demo zip laden uns auspacken (eine Readme Datei wird evl. überschrieben)
1 2 3 4 5 6 7 |
wget https://openhab.ci.cloudbees.com/job/openHAB/lastSuccessfulBuild/artifact/distribution/target/distribution-1.6.0-SNAPSHOT-demo.zip # Demo Anwendung auspacken unzip distribution-1.6.0-SNAPSHOT-demo.zip # Optional: Archive löschen rm distribution-1.6.0-SNAPSHOT-demo.zip |
6. Starten von OpenHab und im Browser aufrufen (ip anpassen)
1 |
./start.sh |
Dann im Browser die folgende URL der Demo Anwendung aufrufen:
1 |
http://raspberry-ip:8080/openhab.app?sitemap=demo |
Hier nun einige Fotos, von der Demoanwendung:
Wie nutzt Ihr OpenHab?
Wie kann Eclipse 4.4 Luna installiert werden, das soeben erschienen ist und meine TOP 7 Plugins?
Hallo,
soeben ist Eclipse 4.4 Luna erschienen.
Auf die Download-Seite gehen und installieren.
Folgende Plugins sind noch für mich nötig:
CommentTemplate
Wie in Blogeintrag installieren.
Dieses Jar den Classpath hinzufügen:
Subversion – SVN Team Provider 2.0
Grep Console 3.6
Wie hier beschrieben installieren.
Workspacemechanic
Wie hier beschrieben installieren.
Start Explorer
Wie hier beschrieben installieren.
UML Diagramme erstellen mit ObjectAid
Wie hier beschrieben installieren.
BPMN 2.0 Modeler
Wie hier beschrieben einfach die Kepler Update URL nehmen, die „geht“ auch mit Luna:
http://camunda.org/release/camunda-modeler/update-sites/kepler/latest/site/ die geht, habe es eben mit einem Diagramm validiert:
Welche Plugins sind für Euch essentiell? Bitte als Kommentar.
Java Number Uno 2014 Mindmap
Drools (Regeln) Mindmap
Mindmaps 2014 bis Mai und Mindmap Clouds soeben mit JaMoPP generiert.
Hier mal eben mit JaMoPP die neuen Mindmaps für 2014 bis Mai und die Mindmap-Clouds mit Eclipse Kepler generiert.
bis 1.5.2014
http://www.wenzlaff.de/mindmaps-2014.html
Kleinhirn
2013
http://wenzlaff.de/mindmaps-2013.html
http://www.wenzlaff.de/mindmap-cloud-2013.html
2012
http://wenzlaff.de/mindmaps-2012.html
http://www.wenzlaff.de/mindmap-cloud-2012.html
Alle als Cloud.
H2 Datenbank #Mindmap
Java Rätsel des Monats
Wenn wir diese Java Klasse compilieren und ausführen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public class RaetselDesMonats { private static final String HALLO_WELT = "Hallo Welt!"; public static void main(String[] args) throws Exception { wieSiehtDieMethodeAus(); String welt = "Hallo Welt!"; System.out.println(welt); System.out.println("Hallo Welt!"); System.out.println(HALLO_WELT); } private static void wieSiehtDieMethodeAus() throws Exception { // nur hier Anpassungen möglich } } |
Welche Lösung bzw. Aussage ist richtig?
1. Es wird immer folgende Ausgabe gemacht, egal was in der wieSiehtDieMethodeAus()
ergänzt wird:
Hallo Welt!
Hallo Welt!
Hallo Welt!
2. Es wird „nichts
“ ausgegeben.
3. Es wird Hallo Welt!
ausgegeben
4. Es kann durch Anpassung, nur in der Methode wieSiehtDieMethodeAus() folgende Ausgabe erzeugt werden?
Was in Java alles geht!
Was in Java alles geht!
Was in Java alles geht!
Dein Vorschlag in Form von 1,2,3 oder 4 bitte posten. Nur Mut!
Hier nun die Lösung:
„Java Rätsel des Monats“ weiterlesen
Für Eclipse gibt es 45 Sprachen dank Babel Language Packs
Eclipse kann auch in 45 Sprachen und auch auf deutsch umgestellt werden. Es gibt da ein Projekt Babel Language Packs. Habe es mal testweise auf deutsch umgestellt. Ist in deutsch zu 89 % übersetzt.
Nach restart einmal schauen, und dann gleich wieder zurück auf englisch 😉
Wie kann auf einem Raspberry Pi die neueste Java 1.8 Version von Oracle installiert werden?
Zuerst das System des Raspberry Pi updaten und neu starten mit:
1 2 3 4 5 6 |
sudo apt-get update sudo apt-get upgrade sudo apt-get clean sudo rpi-update sudo ldconfig sudo reboot |
Schauen, welche Version jetzt installiert ist mit java -version
:
1 2 3 |
java version "1.6.0_27" OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1~deb7u1+rpi1) OpenJDK Zero VM (build 20.0-b12, mixed mode) |
Entweder über den den Packetmanager:
1 |
sudo apt-get update && sudo apt-get install oracle-java8-jdk |
oder per Hand, dann so:
Dann das JDK 1.8 von der Oracle Seite downloaden. Die Seite wurde nach hier verschoben. Es wird die Linux ARM v6/v7 Hard Float ABI Version mit 83 MB benötigt.
In das Download Verzeichnis wechseln und mit scp die Datei auf den rPi kopieren z.B.:
1 |
scp jdk-8-linux-arm-vfp-hflt.tar.gz root@192.0.0.0:/root |
Dann in den rPi wechseln und und das Archive in das /opt Verzeichnis entpacken, das dauert ein paar Minuten:
1 |
sudo tar zxvf jdk-8-linux-arm-vfp-hflt.tar.gz -C /opt |
Nun Java aktivieren und das Archive löschen mit:
1 2 3 4 5 |
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_33/bin/javac 1 sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_0_33/bin/java 1 rm jdk-8-linux-arm-vfp-hflt.tar.gz sudo update-alternatives --config javac # Auswahl 1 für Version 1.8 eingeben |
sudo update-alternatives --config java
# Auswahl 1 für Version 1.8 eingeben
Und checken ob es geklappt hat mit java -version
ergibt nun:
1 2 3 |
java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode) |
Java 1.8.0 ist nun erfolgreich installiert.
JavaFX TOP 11 Neuerungen ggü. Swing Mindmap
TOP 10 Java 8 Mindmap oder was gibt es Neues in Java 8?
Wie kann mit dem Mac OS X unter Eclipse ein JavaFX Programm erstellt werden, da Swing in Java 8 deprecated ist?
Es muss die JavaFX lib dem Classpath hinzugefügt werden. Die liegt auf dem Mac unter:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfxrt.jar
Dann z.B. ein Klasse von javafx.application.Application
ableiten und die start
Methode überschreiben. Wir wollen nur einen Button anzeigen, der seinen Text bei klick ändert. Hier der ganze JavaFX Code:
package de.wenzlaff;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
// Classpath um JavaFX jfxrt.jar ergänzen, es liegt in:
// /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfxrt.jar
public class StartFxGui extends Application {
private Button button;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
button = new Button("Mein erstes JavaFX Programm!");
button.setOnAction(new EventHandler
@Override
public void handle(ActionEvent arg0) {
button.setText("cool");
}
});
VBox root = new VBox();
root.getChildren().add(button);
Scene scene = new Scene(root, 200, 200);
stage.setScene(scene);
stage.show();
}
}
Top 20 Programmiersprachen 2014 #Mindmap
JUnit
Drei Gründe warum man keine JUnit-Tests schreiben sollte (Mindmap).
Wie kann der Jenkins Server auf dem Raspberry Pi installiert werden?
Mein lieblings Butler ist Jenkins. Er läßt sich in ein paar Minuten auf dem Raspberry Pi einrichten. Einfach das Package installieren mit Eingabe eines Befehls auf der Konsole:
sudo apt-get install jenkins
Nach der Installation kann Jenkins mit sudo ./etc/init.d/jenkins start
gestartet werden.
Dann den Browser öffnen und starten mit der URL:
http://198.192.2.1:8080
(IP-Adresse evl. anpassen)
Und schon läuft Jenkins:
Jenkins Top 10 Mindmap und Wikisumme.
Wieviel Speicher und CPU brucht Jenkins? top
Aber warum läuft es anscheinend nicht wenn ich auf Jenkins-Verwalte klicke?
Dazu erst einmal htop installieren mit: sudo apt-get install -y htop
und starten mit htop, es ergibt folgendes Bild:
Der Rechner ist also voll ausgelastet, und tatsächlich nach einigen Minuten! kommt der gewünschte Dialog:
Die Geschwindigkeit ist sehr schlecht. Klick auf Jenkins verwalten dauert mehr als 9 Minuten!
Wie nehme ich einen Raspberry Pi inkl. Java auf einem Mac in Betrieb?
1. Download eines Image von . Z.b. das 2014-09-09-wheezy-raspbian.zip Archiv. Das zip Archiv entpacken.
2. SD Karte (z.B. 8 GB) in einstecken und ermitteln welches Device es am Rechner ist unter Apple Menu –> Über diesen Mac –> Weitere Informationen… –> Systembericht –> Hardware ->USB –> Unter USB Hochgeschwindigkeits-Bus / Hub / Integrierter Speicherkartenleser dann die Info unter BSD-Name:
In meinem Fall ist es: disk3
Oder mit diskutil list
schauen.
3. sudo diskutil unmount /dev/disk3s1
4. sudo dd if=Downloads/2014-09-09-wheezy-raspbian.img of=/dev/disk3 bs=1m
Jetz ca. 60 min warten bis die Meldung
2825+0 records in
2825+0 records out
2962227200 bytes transferred in 2020.681419 secs (1465955 bytes/sec)
kommt. Dann kann die Karte ausgeworfen und in den Raspberry Pi gesteckt werden.
5. Netzwerkkabel anschließen und Strom anschalten.
Per ssh pi@10.1.1.1 (Adresse anpassen)
und Passwort: raspberry im Terminal anmelden.
6. Auf dem Prompt raspi-config eingeben und Konfigurieren der Sprache (de_DE.ISO-8859-15@euro), Erweiterten Speicher, SSH Server, neues Passwort und auf neueste Version updaten. Restart. Alles über diese schöne GUI:
7. Und testen ob Java installiert ist mit java -version
, JA sogar die Version 1.8:
8. Und System noch updaten mit:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get clean
# Firmware update
sudo rpi-update
sudo ldconfig
sudo reboot
Wie geht ein Quickinstall von MiniPwner auf einem laufenden OpenWrt Version 12 mit ext. Usb-Stick?
Installation von MiniPwner auf einer lauffähigen OpenWrt Version mit externen USB-Stick. Einfach auf der Konsole folgende Befehle absetzen:
opkg update
opkg install http://minipwner.com/20120514/downloads.openwrt.org/snapshots/trunk/ar71xx/packages/dsniff_2.4b1-2_ar71xx.ipk
opkg install luci-theme-bootstrap mc htop iftop ettercap tar openssh-sftp-client mdk3 nmap tcpdump aircrack-ng aircrack-ptw kismet-client kismet-server perl openvpn nbtscan snort karma samba36-client elinks yafc
Programmiersprachen Ranking Top 20 (Java =2)
Java, lecker!
Das JavaMagazin mit meinen Artikel zum Thema: Ansteuerung von USB-Schnittstellen mit Java via javahidapi
Das Java Magazin Ausgabe 9-2013 ist jetzt am Kiosk nicht mehr erhältlich erhältlich. Die Ausgabe kann aber noch Online nachbestellt werden.
Das Magazin erscheint in einer Auflage von ca. 20000 Exemplaren und ist damit das am weitesten verbreitet Magazin zum Thema JAVA.
In der Ausgabe findet Ihr einen Artikel vom mir zum Thema „Ansteuerung von USB-Schnittstellen via javahidapi mit Java“ inkl. einem Eclipse Beispielprojekt.
Hier ein Foto meines Belegexemplares:
Wie findet Ihr den Artikel? Würde mich über Feedback freuen.
Autor Thomas Wenzlaff hat im Java Magazin September 2013 einen Artikel veröffentlicht zum Thema: „Per Java auf USB Schnittstellen zugreifen mit javahidapi“
Das Java Magazin Ausgabe 9-2013 ist jetzt überall erhältlich (Inhalt). Das Magazin erscheint in einer Auflage von ca. 20000 Exemplaren und ist das am weitesten verbreitet Magazin für JAVA.
In der Ausgabe findet Ihr einen Artikel vom mir zum Thema „Ansteuerung von USB-Schnittstellen via javahidapi mit Java“ inkl. einem Eclipse Beispielprojekt zum downloaden.
Hier ein Foto meines Belegexemplares:
Wie findet Ihr den Artikel? Würde mich über Feedback freuen.
Wie kann eine Java VM auf TP WR 703N installiert werden?
Über den Paketmanager jamvm installieren (jamvm_1.6.0-git-2_ar71xx.ipk).
Dazu ja* eingeben und suchen klicken. Anschließend das Paket installieren:
Anschließend testen ob die Version richtig installiert ist mit:
jamvm -version
es wird dann folgendes ausgebeben:
Wie kann die Java VM verwendet werden:
jamvm
ergibt folgendes:
Weiter tests folgen …
Startpunkt zu embeddet Java.
Per Java über die Serielle-Schnittstelle auf den Arduino zugreifen mit dem Mac OS X 10.8.4
Wie kann nun über die Serielle-Schnittstelle per Java auf den Arduino mit dem Mac zugegriffen werden?
Wie in dieser Anleitung beschrieben vorgehen.
1. Auf den Arduino den „Hallo Welt“ Sketch laden.
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println("Hello world");
delay(1000);
}
2. Den RXTX-Treiber in Version >= 2.2pre2 laden. Die 1.7 Version macht mit Mac OS X 10.8.4 Probleme, es kommt die Meldung, das der Port belegt ist.
3. Die zwei Dateien aus dem entpackten Archiv librxtxSerial.jnilib und RXTXcomm.jar in das /Library/Java/Extensions Verzeichnis kopieren
4. Die RXTXcomm.jar dem Classpath des Projektes hinzufügen.
5. Im Testprogramm den PORT_NAMES „/dev/tty.usbserial-A501U7KD“ entsprechend setzen. Im Arduino-IDO Menü Werkzeuge-Serieller-Port schauen, wie er genau heißt.
6. SerialTest starten. „Hello World“ wird auf den Konsole ausgegeben.
„Per Java über die Serielle-Schnittstelle auf den Arduino zugreifen mit dem Mac OS X 10.8.4“ weiterlesen
8,3 mal um die Erde, oder wie erzeuge ich 126 Tonnen Co2
Gerade wieder aus Side zurück und in die Reise-History eingetragen. Diese Seite wird mit dem Java Programm TWGpx generiert, welches ua. Velocity Templates verwendet.
Wer Google Earth installiert hat, kann sich alle Orte via KML-Datei anschauen.
Vorschläge für den nächsten Urlaub sind willkommen und können hier als Kommentar hinterlassen werden.
APT (Almost Plain Text) Editor Plugin für Eclipse Juno: Apache Doxia.
Das Eclipse Plugin: Apache Doxia Eclipse Editor Plugin kann für folgende Formate: APT (Almost Plain Text), Confluence, Simplified DocBook, FML, TWiki, XDOC ,Xhtm verwendet werden.
Install in Eclipse über Help-Install new Software: URL.
yEd Graph Editor für UML, Ablaufdiagramme, Flowdiagramme und das kostenlos
Endlich gefunden. Cooles Java-Programm in Deutsch und Englisch.
Kostenlos für Windows, Linux und Mac. Ein Diagramm-Editor zum erstellen von UML und Ablauf-Diagrammen. Der yEd Graph Editor kann Diagramme unterschiedlicher Art erzeugen, layouten und vieles mehr.
Kennt ihr noch weitere gute kostenlose Programme? Dann hinterlasst bitte hier einen Kommentar.
Kostenloses E-Book über Testgetriebene Entwicklung mit JUnit und Fit ’ness‘
Auf dieser Seite von Frank Westphal gibt es das E-Book „Testgetriebenen Entwicklung mit JUnit und Fit“ kostenlos zum download im PDF-Format.
Es ist immer noch sehr aktuell.
Vielen Dank für die kostenlose Bereitstellung.
Kennt ihr noch weitere gute kostenlose E-Books? Dann hinterlasst bitte hier einen Kommentar.
Clean Code Mindmap
Test F.I.R.S.T. Mindmap für Entwickler und Berater nicht nur mit JUnit
Ansteuerung des K8055 Device von der Firma Velleman per USB Java und HID.
Hier eine Demo, mit dem Ergebnis der Java-Ansteuerung über den USB-Port des K8055.
Der Java-Code und andere Infos vom K8055 gibt es hier.
Quick-Howto für die Coole Java Template-Erstellung (JaMoPP) mit CommentTemplate ldt. JavaMagazin 1-2013
Oder was ist JaMoPP? Damit es auch unter Eclipse Kepler SR1 läuft (Update: läuft auch unter Eclipse Luna 4.4.0 und Eclipse Mars 4.5.0), zuerst über Eclipse Marketplace den CommentTemplate 0.9.2 installieren:
Dann diesen Beispiel Code ausführen:
package de.wenzlaff;
import java.util.Date;
import de.devboost.commenttemplate.CommentTemplate;
/**
* 1. Installieren über Eclipse Update oder Marketplace (suchen nach CommentTemplate)
* 2. New PlugIn Projekt
* 3. Add new Dependencies de.devboost.commenttemplate-Version.jar
* 4. Klasse mit Extension Source.java erstellen
* 5. Annotation @CommentTemplate an String Methode mit return null
* 6. JavaDoc Formatierung in Eclipse für das Projekt ausschalten
* 7. Save erzeugt in src-gen-comment-template die generierte Klasse
* 8. Run as
*
* Beispiel Video: http://jamopp.org/index.php/JaMoPP_CommentTemplate
* Anleitung: http://reuseware.org/publications/2012_ACME_CommentTemplate.pdf
*/
„Quick-Howto für die Coole Java Template-Erstellung (JaMoPP) mit CommentTemplate ldt. JavaMagazin 1-2013“ weiterlesen