Raspbian 2018-10-09 also has support for the Raspberry Pi
PoE HAT,
updated firmware images,
hardware acceleration support for FFmpeg,
support for DHCPCD with 3G network devices,
and a variety of other updates.
Wie kann auf einem Raspberry Pi angeschaut 觀看 werden, was in einem tar.gz Archive ist?
Wie kann angeschaut werden, was in einem Archive ist? Mit tar.
Z.b.
tar -tvf das-tar-archive.tar.gz
-t = listet den Inhalt eines Archivs auf
-v = verbose (ausführlich), listet verarbeitete Dateien ausführlich auf
-f = file, verwendet Archivdatei oder Geräte-ARCHIV
„Wie kann auf einem Raspberry Pi angeschaut 觀看 werden, was in einem tar.gz Archive ist?“ weiterlesen
Lambdas ab Java 8
Wie kann mit dem Raspberry Pi ein deb-Package (Debian) erstellt werden?
Um ein deb Package mit dem Raspberry Pi zu erstellen müssen ein paar Vorraussetzungen erfüllt werden.
1. Bash Variablen setzen „Wie kann mit dem Raspberry Pi ein deb-Package (Debian) erstellt werden?“ weiterlesen
Raspberry Pi FreeMarker Java and Maven Project goes to 去 يذهب إلى GibLab and not to GitHub
Bisher hatte ich alle öffentlichen Repositorys in GibHub liegen. GitHub ist nun aber an Microsoft verkauft worden. Wenn das kein Grund ist, das nächste Repo mal in GitLab anzulegen. GitLab hat auch den Vorteil, das private Repos kostenlos sind und …
Also das FreeMarker-Maven-Java-Projekt nach GitLab hochladen.
Was etwas suche und Anpassung benötigte, war der CI-Prozess. Aber wenn man die Syntax der .gitlab-ci.yml kennt, geht es mit zwei Zeilen.
Also einen Docker-Container mal mit Java 11 und Maven, wie folgt erstellt: „Raspberry Pi FreeMarker Java and Maven Project goes to 去 يذهب إلى GibLab and not to GitHub“ weiterlesen
Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Oder wie können alias angelegt werden?
Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Z.B. aus dem aktuellem Verzeichnis mit
1 |
du -a . | sort -n -r | head -n 3 |
Das kann man sich aber schwer merken. Deshalb legen wir uns ein bash Alias an mit:
1 |
alias dudrei='du -a . | sort -n -r | head -n 3' |
Das wird aber nach einem restart vergessen. Deshalb tragen wir diese Zeile in der ~/.bash_aliases Datei ein. Wenn es sie noch nicht gibt, legen wir sie an mit diesem Inhalt:
1 2 |
# Gib eine Liste der 3 größten Dateien aus alias dudrei='du -a . | sort -n -r | head -n 3' |
Schon können wir auch nach einem Restart dudrei eingeben und erhalten die 3 größten Dateien im Verzeichnis, z.B. „Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Oder wie können alias angelegt werden?“ weiterlesen
Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker geht auch!
Es gibt unterschiedliche Template Engine, wie zum Beispiel Apache Velocity aber auch Apache Freemarker.
Bei der Verwendung von Templates, kann man sich einfach auf die Präsentation der Daten konzentrieren. Das läuft nach dem MVC (Model View Controller) Pattern. Die Templats können auch über diesen Online FreeMarker Template Tester ohne Aufwand getestet werden.
Heute mal ein kleines Beispiel, mit Freemarker. Wir wollen Verzeichnisse nach Mindmaps durchsuchen, und alle gefundenen Mindmaps in eine HTML-Seite ausgeben.
Fangen wir mit einem JUnit Test an: „Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker geht auch!“ weiterlesen
Wie kann man die Java Version auf einem Mac anzeigen und ändern?
Wie werden die installierten Java Versionen auf dem Mac angezeigt?
Auf der Konsole ein /usr/libexec/java_home -V eingeben, das liefert z.B.: „Wie kann man die Java Version auf einem Mac anzeigen und ändern?“ weiterlesen
Neue Eclipse IDE Nachfolger von Photon heißt: 2018-09
Cooler Name 😉 Hier eine Beschreibung der neuen Eclipse Version 2018-09. Mit Java 11 Support. Zwei Videos mit den News sind da auch zu finden. Eine Änderung betrifft auch Git …
Verzeichnise mit Java Monitor WatchService überwachen رصد, izlemek, 顯示器
Seit Java 7 gibt es den WatchService zum überwachen von Verzeichnissen auf System-Ebene. Der WatchService übernimmt direkt die Eventaufrufe des Betriebssystems und ist damit vergleichbar mit einem Low-Level-Event.
Damit kann man in ein paar Zeilen Code, zum Beispiel benachrichtigt werden, wenn eine neue Datei im Verzeichnis hinzugefügt wird.
Das wir mit der Konstanten StandardWatchEventKinds.ENTRY_CREATE angegeben. Es gib aber auch noch welche fürs löschen oder verändern. Die Konstanten können dann auch verknüpft werden.
Für die Verwendung muss das Package java.nio.file.* importiert werden. Hier der Beispiel Code, der das „input“ Verzeichnis des Users überwacht, der auch auf einem Raspberry Pi läuft 😉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
String rootVerzeichnis = System.getProperty("user.dir"); Path inputPath = Paths.get(rootVerzeichnis, "input"); WatchService watchService = FileSystems.getDefault().newWatchService(); inputPath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE); WatchKey key; while ((key = watchService.take()) != null) { for (WatchEvent<?> event : key.pollEvents()) { String neueDatei = event.context().toString(); // neueDatei enthält den Dateinamen der zugfügten Datei } key.reset(); } |
Grafische ASCII-Anzeige 顯示 eines Git-Trees
Mit git config kann man sich leicht den tree eines Git-Repositorys in ASCII-Form
1 2 3 4 5 |
,d88b.d88b, 88888888888 `Y8888888Y' `Y888Y' `Y' |
anzeigen lassen.
Das geht z.B. mit log und ein paar Parameter: „Grafische ASCII-Anzeige 顯示 eines Git-Trees“ weiterlesen
Shell Script für den Raspberry Pi (Linux) zum Anlegen einer Datenbank und User für MySQL und Maria DB
Manchmal möchte man per Script (sh, bash) eine Datenbank mit User anlegen.
Das geht mit diesem Script:
1 |
sudo mysql -u root -pPASSWORT << EOF
CREATE DATABASE DATENBANK-NAME;
CREATE USER 'USER-NAME'@'DOMAIN-NAME';
GRANT ALL PRIVILEGES ON DATENBANK-NAME.* TO 'USER-NAME'@'DOMAIN-NAME' IDENTIFIED BY 'USER-NAME';
EOF
|
Zu ersetzen ist der DATENBANK-NAME, USER-NAME, DOMAIN-NAME und das PASSWORT. Das Passwort ohne blank nach dem -p angeben. Dann klappt alles automatisch.
Rekursives löschen von Verzeichnissen auf Linux und dem Raspberry Pi mit find
Manchmal werden versteckte Systemdateien angelegt wie z.B. .AppleDouble oder auch .svn oder .git. Wenn die nun alle gelöscht werden sollen, geht das mit:
1 |
find . -mindepth 1 -type d -name .git -print0 | xargs -0 -r rm -rf |
„Rekursives löschen von Verzeichnissen auf Linux und dem Raspberry Pi mit find“ weiterlesen
Raspberry Pi bricht beim signieren eines Git tags mit „gpg: signing failed: Unpassender IOCTL (I/O-Control) für das Gerät“ ab
Wollte einen Git Tag signieren auf einem Raspberry Pi W Zero. Nach der Key Erzeugung (gpg –gen-key) schlug das signieren des git tags mit -s:
1 |
git tag -s v1.0.1 -m 'Erster signierter Tag' |
mit folgender Fehlermeldung fehl:
gpg: signing failed: Unpassender IOCTL (I/O-Control) für das Gerät
gpg: signing failed ioctl
Ein erster Test mit:
1 |
echo "test" | gpg --clearsign |
schlug auch fehlt. Eine Kontrolle der Config (.gitconfig) mit: „Raspberry Pi bricht beim signieren eines Git tags mit „gpg: signing failed: Unpassender IOCTL (I/O-Control) für das Gerät“ ab“ weiterlesen
Kostenlose mp3 Dateien mit Inhalt 0,0 bis 100,0 für die Ansage in deutsch mit voicerss.com und id3v2.
In diesem Beitrag hatte ich beschrieben wie mp3 Dateien von 1-1000 erzeugt und kostenlos geladen werden können. Und hier hatte ich gezeigt, wie man offline mp3 und wav Dateien auf dem Raspberry Pi selbst erzeugen kann.
Hier nun alle mp3 Dateien mit dezimaler Ausgabe von 0,0 bis 100,0.
Hier wieder eine Testdatei zum anhören:
Download 15 MB als mp3-0-100-komma.zip.
Warum nicht einfach auf dem Raspberry Pi mp3 und wav Voice-Dateien mit pico2wave und lame selber erstellen? Oder 1000 wav und mp3 kostenlos downloaden?
In dem Beitrag vor ein paar Tagen, hatte ich gezeigt wie mit einem Online-Service mp3 Dateien erzeugt werden können. Dazu schrieb Fred (Vielen Danke für die Idee): „Warum nicht einfach auf dem Raspberrypi die mp3 oder wav Voice-Dateien selber erstellen?
Beispiel
1 |
pico2wave --lang=de-DE --wave=in.wav "Warum nicht einfach auf dem Raspberrypi die mp3 oder wav Voice-Dateien selber erstellen? Viele Grüße sagt die Eule. Hi hi hi ..." |
Das geht sehr einfach und ohne Online-Service der limitiert oder kostenpflichtig ist. Und die Qualität ist auch ganz gut. Hier eine Beispielausgabe im wav Format:
Das kann dann mit lame in mp3 umgewandelt werden, hier die Beispiel Datei: „Warum nicht einfach auf dem Raspberry Pi mp3 und wav Voice-Dateien mit pico2wave und lame selber erstellen? Oder 1000 wav und mp3 kostenlos downloaden?“ weiterlesen
Wie kann auf eine spezielle Revision eines Gist von GitHub in WordPress ua. verwiesen werden?
Wie kann auf eine spezielle Revision eins Gist verwiesen werden? Das geht wie folgt. Zuerst auf den Reiter „Revisionen“ klicken:
und dann die gewünschte Revision auswählen „Wie kann auf eine spezielle Revision eines Gist von GitHub in WordPress ua. verwiesen werden?“ weiterlesen
Kostenlose mp3 Dateien mit Inhalt 0 bis 1000 für die Ansage in deutsch mit voicerss.com und id3v2.
Für ein Homeautomatisations Projekt mit Raspberry Pi, brauchte ich mp3 Dateien für die Ansage. Damit alles lokal läuft, und ich nicht die mp3 Dateien per Web jedesmal erzeugen bzw. laden muss, habe ich mal eben 1000 mp3 Dateien erzeugt. Jede mit dem jeweiligen Inhalt bzw. Ansage in deutsch in Mono mit 44khz in 16bit mit der Zahl aus dem Dateinamen. Jede Datei ist nur so um die 25 Kb groß.
Also alle Zahlen von 0 – 1000. Das Ergebnis ist hier nun kostenlos zum Downloaden in einer gezippten Datei mp3-1-1000.zip (14,8 MB).
Hier eine Hörprobe der 777.mp3 Datei:
Mit diesen Dateien, kann nun leicht eine Ansage von Systemdaten bzw. Temperaturen oder Flugdaten erfolgen.
Wie habe ich die nun alle erzeugt?
Mit der folgenden JUnit Methode:
1 2 3 4 5 6 7 8 9 10 11 |
@Test void textToMp3Text1000() { try { for (int i = 0; i < 1001; i++) { Konvert.textToMp3(API_KEY, i + ".mp3", "" + i); } } catch (Exception e) { System.err.println("Error: " + e.getMessage()); } } |
Hier die Konvert.java Klasse: „Kostenlose mp3 Dateien mit Inhalt 0 bis 1000 für die Ansage in deutsch mit voicerss.com und id3v2.“ weiterlesen
Text to MP3 per Java in 10 Minuten
Mit Java kann man leicht aus einem Text eine MP3 Datei erstellen. Dazu braucht man sich nur einmal auf voicerss.org anmelden und eine API-Key generieren.
Dann einfach das Java SKD von hier runter laden. Das Zip dann auspacken und die voicerss_tts_3.jar dem Classpath hinzufügen. Dann dieses Beispiel Programm ausführen und den API-Key eintragen:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
package de.wenzlaff.sound; import java.io.FileOutputStream; import com.voicerss.tts.AudioCodec; import com.voicerss.tts.AudioFormat; import com.voicerss.tts.Languages; import com.voicerss.tts.VoiceParameters; import com.voicerss.tts.VoiceProvider; /** * Beispiel für Text to MP3 Datei. * * Lib Download von http://www.voicerss.org/sdk/java.aspx * * @author Thomas Wenzlaff * */ public class Start { private static final String TEXT = "Hallo Thomas, das ist aber cool! Ich finde Java gut. Damit kann man sehr einfach eine MP3 Datei erstellen."; private static final String MP3_DATEI_NAME = "thomas-cool.mp3"; private static final String API_KEY = "TODO API Key eintragen"; public static void main(String[] args) throws Exception { textToMp3(TEXT, MP3_DATEI_NAME); } /** * Methode erstellt eine MP3 Datei aus dem Text * * @param text der Inhalt der MP3 Datei * @param dateiname der Name der MP3 Datei * @throws Exception bei Fehler */ private static void textToMp3(String text, String dateiname) throws Exception { VoiceProvider tts = new VoiceProvider(API_KEY); VoiceParameters params = new VoiceParameters(text, Languages.German); params.setCodec(AudioCodec.MP3); params.setFormat(AudioFormat.Format_44KHZ.AF_44khz_16bit_mono); params.setBase64(false); params.setSSML(false); params.setRate(0); byte[] voice = tts.speech(params); FileOutputStream fos = new FileOutputStream(dateiname); fos.write(voice, 0, voice.length); fos.flush(); fos.close(); } } |
Hier dann das Ergebnis direkt zum abspielen
in deutscher Sprache und Mono.
„Text to MP3 per Java in 10 Minuten“ weiterlesen
Node-RED für Raspberry Pi in neuer Version 0.19.2 veröffentlicht – δημοσιεύθηκε – опубликованный – 公表 – نشرت !
Vor vier Tagen ist die neue 0.19.2 Version von Node-Red für den Raspberry Pi veröffentlicht worden. Was es so neues gibt, kann man hier sehen. Die Liste ist lang!
Also mal eben ein „Node-RED für Raspberry Pi in neuer Version 0.19.2 veröffentlicht – δημοσιεύθηκε – опубликованный – 公表 – نشرت !“ weiterlesen