VirtualBox VDI auf physikalisches Laufwerk übertragen.

Hier möchte ich kurz erklären wie man eine in VirtualBox erstelle VDI (Virtuelle Festplatte) auf ein physikalisches Laufwerk überträgt.

Ausgangssituation

Ich möchte ein Vorlage-Betriebssystem erstellen (In einer VM) welches ich auf beliebig viele Rechner übertragen kann. In diesem Beispiel habe ich Debian 8 verwendet.
Linux Kenntnisse werden vorausgesetzt.

Phase 1 – Vorlage erstellen

  1. In VirtualBox einen Betriebssystem Prototypen mit der gewünschten Konfiguration / Software erstellen.
  2. Sicherstellen das keine VirtualBox Addons mehr installiert sind. Wenn doch „Gasterweiterung einlegen“ und folgendes ausführen:
    sudo sh /media/VBOXADDITIONS_4.1.10_76795/VBoxLinuxAdditions.run uninstall
  3. Die virtuelle Maschine ordnungsgemäß herunterfahren.
  4. Die VDI Datei in eine ISO Datei konvertieren. Das geht mithilfe der VBoxManage. Dieses Programm liegt im Installationsverzeichnis von VirtualBox.
    Der Befehl für die Konvertierung lautet:

    VBoxManage clonehd file.vdi vorlage.iso --format RAW

Phase 2 – Installation

Nun wollen wir die erstellte Vorlage (Iso-Datei) auf den Rechner übertragen.

  1. Dafür benötigen wir Clonezilla. Dieses als Live CD/DVD oder USB-Stick erstellen.
  2. Die ISO Datei auf ein Medium übertragen welches am Zielrechner ausgelesen werden kann z.B. der Clonezilla Stick, wenn noch Platz ist, ein separater USB-Stick oder eine CD/DVD.
  3. Clonezilla live am Zielrechner starten und auf die Clonezilla Konsole / Terminal öffnen.
  4. Wenn die ISO Datei auf einem separatem USB-Stick ist muss dieser gemountet werden(mehr Infos):
    sudo mkdir /media/usb #Ordner erstellen in dem der USB-Stick gemountet wird
    lsblk #Hier werden alle angeschlossesen Laufwerke aufgelistet, den ISO USB-Stick raussuchen z.B. sdb1
    mount -t ntfs /dev/sdb1 /media/usb #USB-Stick nach /media/usb mounten
    
  5. Nun kann die ISO Datei auf die Festplatte des Rechners übertragen werden, mithilfe von dd:
    dd if=/media/usb/vorlage.iso of=/dev/sda  #sda ist die Festplatte auf die das ISO übertragen werden soll, ggf. anpassen, siehe lsblk
    
  6. Nicht erschrecken, dd gibt kein Feedback über den Arbeitsfortschritt. Wenn das Übertragen fertig ist, kommt eine Nachricht.
  7. Neustarten und von der Festplatte des Rechners booten.
  8. Treiber ggf. anpassen.

Raspberry Pi – Digitaler Bilderrahmen mit Dropbox Anbindung

Hallo zusammen,
hier ist eine Software von mir, mit der man aus einem Raspberry Pi einem digitalen Bilderrahmen mit Dropbox Anbindung erstellen kann.
Folgende Funktionen bietet die Software:
  • Diashow mit verstellbarem Intervall
  • Bilder kommen direkt aus deiner Dropbox
  • Proxy Konfiguration möglich
  • Automatischer Fullscreen Modus
Die .jar Datei gibts hier zum Download:

Vorraussetzung:

  • Java 8
  • Ein Raspberry Pi mit Bildschirm / Monitor
  • Betriebssystem mit grafischer Oberfläche

Die ersten Schritte:

Erstelle in deinem Dropbox in der obersten Ebene einen Ordner der „cloudpictureframe“ heißt. (Ist in der .properties Datei anpassbar)
Lege test weise ein paar Bilder hinein.
Starte anschließend die .jar Datei wie folgt:
java -jar CloudPictureFrame.jar
Nun öffnet sich ein Fenster, welches dich auffordert, dich mit deim Dropbox Konto einzuloggen.
Falls sich nicht automatisch in deinem Webbrowser eine Dropbox URL öffnet gebe einfach den Link aus dem Fenster in einen Webbrowser ein.
Nachdem du dich im Webbrowser eingeloggt hast erhälst du einen Token Code.
Diesen musst du in das Feld „Autorisierungscode hier eingeben:“ einfügen.
Jetzt noch „Autorisieren“ drücken und schon gehts los.
Zu beginn kann es etwas dauern bis das erste Bild angezeigt wird, da erst alle Bilder synchronisiert werden müssen.
Hier ist beschrieben wie man das Programm in den Autostart bekommt:

Infos zur Konfiguration:

Direkt nach dem ersten start wird eine Konfigurationsdatei angelegt welche wie folge aussieht:
proxyEnabled=false</pre>
</div>
<div>proxyUrl=</div>
<div>proxyPort=</div>
<div>proxyUser=</div>
<div>proxyPassword=</div>
<div>dropBoxFolderName=cloudpictureframe</div>
<div>slideshowInterval=10000</div>
<div>dropBoxAuthToken=</div>
<div>
Der slideshowInterval ist in Millisekunden zu setzen also Achtung.
dropBoxAuthToken wird automatisch gesetzt.
dropBoxFolderName kann beliebig angepasst werden. (Muss in deinem Dropbox Ordner auf oberster Ebene vorhanden sein)

Speedtest auf der CLI – Debian

python Logo
python Logo

Hier ein kurzer Beitrag wie über die CommandLine auf einer Debian basierenden Destri einen Speedtest durchgeführt werden kann.

Voraussetzung ist, dass Python (min. 2.4-3.4) installiert ist.

Zuerst muss das Programm heruntergeladen werden:

wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py

Anschließend die Datei ausführbar machen:

chmod a+rx speedtest_cli.py

Jetzt kann die Datei ins bin Verzeichnis kopiert werden:

mv speedtest_cli.py /usr/bin/speedtest-cli

Wenn man nun das Programm ausführt, wird automatisch über den optimalen Server ein Speedtest gestartet.
Das Ganze sieht folgendermaßen aus:

root@debian:~# speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Kabel Deutschland (x.x.x.x)...
Selecting best server based on latency...
Hosted by intersaar GmbH (Saarbrücken) [22.07 km]: 34.457 ms
Testing download speed........................................
Download: 46.73 Mbit/s
Testing upload speed..................................................
Upload: 1.53 Mbit/s

Raspberry-Pi – Java GUI Anwendung im Autostart

Logo der Raspberry-Pi-Stiftung

In diesem Beitrag möchte ich erklären wie man am Einfachsten eine Java Anwendung mit GUI beim Systemstart von einem Raspberry-Pi mit ausführt.
Als Betriebssystem habe ich Raspbian (Debian für den Raspberry-Pi) verwendet.

Wenn man weiß wie es geht, ist es schlussendlich sehr simpel. Folgendes muss getan werden:

  • Wechsle mit dem Befehl „cd ~/.config/autostart“ in das Autostart Verzeichnis von LXDE.
    Falls das Verzeichnis nicht existiert muss dies mit Hilfe des Befehls „mkdir“ angelegt werden.
  • Erstelle anschließend eine Datei „<DeinApp>.desktop“ (z.B.: notepad.desktop).
    Zum Erstellen der Datei kann folgender Befehl verwendet werden: „touch notepad.desktop“
  • Öffne dann die Datei in einem Texteditor deiner Wahl z.B.: „nano notepad.desktop“
  • Kopiere folgenden Text hinein und passe den Exec Pfad entsprechend deiner Software an:
[Desktop Entry]
Type=Application
Exec=java -jar /pfad/zu/deiner/software.jar
  • Zuletzt nicht vergessen die editierte Datei abzuspeichern. (Bei nano Speichern mit STRG+O, Schließen mit STRG+X)

Beim nächsten Neustart sollte nun die Software automatisch mit dem System starten.

disCoverJ – Anpassung der RAM Zuweisung

Hier möchte ich kurz erklären wie man meiner Software disCoverJ, mehr RAM zuweist.

Folgende Schritte sind dafür notwendig:

  1. Öffne den Ordner in dem disCoverJ installiert wurde, z.B. „C:\Program Files\disCoverJ“
  2. Öffne die Datei „disCoverJ.vmoptions“ mit einem Texteditor deiner Wahl
  3. Entferne die Raute(#) vor der Zeile „# -Xmx512m“
    Aus „# -Xmx512m“ wird somit “ -Xmx512m“
  4. Je nachdem wie viel Arbeitsspeicher dein Rechner hat, würde ich diesen Wert möglichst hoch setzten, wenn du viele Mp3s verarbeiten möchtest.

Achtung: Unter Umständen muss der Datei „disCoverJ.vmoptions“ unter Eigenschaften -> Sicherheit jedem Benutzer Änderungsrechte geben werden. Sonst kann die Datei nicht verändert werden.

Diese Einstellung erlaubt es disCoverJ 1GB Arbeitsspeicher zu verwenden.
Diese Einstellung erlaubt es disCoverJ 1GB Arbeitsspeicher zu verwenden.

Ein Anwendungsbeispiel:

Dein PC hat 8GB Arbeitsspeicher und du möchtest viele Lieder mit disCoverJ verarbeiten.
Leider bricht das Programm beim Laden oder Verarbeiten der Mp3s ab.
Wahrscheinlich ist zu wenig Arbeitsspeicher dem Programm zugewiesen.
Erkennen tust du das, an dem Balken rechts unten in disCoverJ.
Wenn dieser komplett voll ist wie auf diesem Bild:

2015

… dann solltest du die oben genannten Schritte durchführen.
In unserem Fall hat der Rechner 8GB Arbeitsspeicher, also können wir den Wert in der „disCoverJ.vmoptions“ auf “ -Xmx4096m“ einstellen.

Somit ist disCoverJ berechtigt 4GB deines Arbeitsspeicher zu verwenden.
Ob das ganze funktioniert hat, sieht man dann daran, wenn in disCoverJ rechts unten die rechte Zahl ungefähr dem eingestellten Wert in der „disCoverJ.vmoptions“ entspricht.

2015-01-12 12_37_29-C__Program Files_disCoverJ_disCoverJ.vmoptions - Notepad++
Hier sieht man den Vergleich zwischen dem hinterlegtem Wert und dem max. verfügbaren in disCoverJ

 

Java / JavaFX – Prüfen ob Mehrere Tasten gedrückt wurden

Hallo Zusammen,

hier ein kleines Snippet wie man ganz simpel in JavaFX prüfen kann ob mehrere Tasten gedrückt wurden:

 


//Welche Tasten sollen geprüft werden
KeyCodeCombination keyCodeCombination = new KeyCodeCombination(KeyCode.D, KeyCombination.CONTROL_ANY, KeyCombination.ALT_ANY);

//Hier die Aktion definieren welche nach zutreffen der Tastenkombination ausgeführt werden soll
KeyPressedListener keyPressedListener = () -> {
System.out.println("Du hast Strg+Alt+D gedrückt");
};

//In der ganzen Scene prüfen, alternativ kann die Prüfung auch nur auf einzelnen Layouts durchgeführt werden
scene.getAccelerators().put(keyCodeCombination, keyPressedListener);

remoteJux – Steuere deinen PC & Server mit deinem Smartphone

Hallo Leute,ic_launcher-web
in eigener Sache möchte ich euch mal mein kleines Projekt remoteJux vorstellen.

Was ist remoteJux?

Es handelt sich dabei um eine Server Software welche auf Java 8 basiert und einen Android App Client.

In dieser Kombination kann man Konsolen Befehle via Smartphone an den PC oder Server senden.
Somit kann man seinen gesamtes Server-System fernsteuern.

Natürlich alles OpenSource 😉

Woher bekomme ich es?

Die Android App gibt es im Google PlayStore
gplay_logo

Den dazugehörige Server kannst du auf BitBucket laden:
bitbucket logo

Falls du am Quellcode interessiert bist, den gibt es bei mir auf der BitBucket Seite:
https://bitbucket.org/rouven_h

Wie starte / konfiguriere ich den Server?

Server starten:
  • Java 8 installieren (DownloadLink)
  • Ausführen des Java Servers mit „java -jar remoteJuxServer.jar
Server konfigurieren (Nur bei Bedarf):
  • Beim ersten starten des Servers wird eine Datei erzeugt „remoteJux_server.properties
  • Diese Datei öffnen und Servername / Port beliebig anpassen (und merken)
  • Server neu starten, jetzt sollte in der Konsolenausgabe die neue Konfiguration ausgegeben werden

Wie konfiguriere ich die Android App?

  • Nach starten der App auf Einstellungen klicken
  • Falls eine abweichende Konfiguration erstellt wurde diese dort eintragen
  • Ansonsten die Standardwerte eintragen:
    Servername: IP oder DNS-Name des PCs/Servers auf dem der remoteJux Server läuft
    Port: 9998 (Standard)
Befehl konfigurieren:
  • Im Hauptfenster auf „+ Hinzufügen“ klicken.
  • Alle Werte ausfüllen, kurze Erklärung:
    Icon – Verschafft deinem Befehl einen visuellen Wiedererkennungswert (z.B. Einstellungs Symbol)
    Name – Der Alias für einen Befehl (z.B. Herunterfahren)
    Befehl – Der eigentliche Befehl welcher and den Server gesendet werden soll (z.B. sudo shutdown -h now)
    Gibt Text zurück – Bitte nur anhaken wenn der Befehl einen Rückgabewert hat z.B. ipconfig oder ifconfig
    Benutzereingabe erwartet: Funktion noch nicht entwickelt
  • Speichern klicken
  • Bei einem Klick auf den Pfeil auf der Rechten Seite wird der Befehl an den Server gesendet
  • Bei Bedarf kann auch auf dem Homescreen ein Widget für einen Befehl erstellt werden.
    So sind die Befehl noch schneller erreichbar 😉

Gibt es auch einen Desktop Anwendung als Client?

Ja die gibt es, diese ist aber noch nicht sehr ausgereift und befindet sich noch in der Entwicklungsphase.

Wer sie dennoch verwenden möchte kann sie bei BitBucket herunterladen:

bitbucket logo

disCoverJ – Der OpenSource Mp3 Cover Auto Tagger

Was ist disCoverJ ?

Mit Hilfe von disCoverJ kannst du mit nur wenigen Klicks deiner Musiksammlung das gewisse Etwas verleihen.

Ziehe einfach per Drag ’n‘ Drag deine Lieder in das Programm und klicke auf „Starte disCoverJ“.
Um das Einfügen der passenden Cover kümmert sich die Software.

 

Wie sucht das Programm immer die richtigen Cover ?

Um sicher zu stellen das du immer die besten Cover bekommst durchläuft disCoverJ eine Reihe von Suchmaschen.
Die Reihenfolge kannst du selber festlegen.

Aktuelle Suchmaschinen sind: iTunes, Deezer, Spotify, Google, Lokale Bilderusche.

 

Und so bekommst du es:

Installiere dir einfach Java 8 (Link)

Anschließend noch den disCoverJ Installer für dein Betriebssystem hier herunterladen.

Dann noch die disCoverJ ausführen und das war es schon.

Viel Spaß mit der Cover suche.

Mehr Infos zur Software gibts auf dieser Seite.

 

disCoverJ searching

Java 8 – Mappen von Objekten mit Lambda Stream

Hallo hier ein kleines Snippet wie man mit einem Java 8 Lambda Stream Aufruf sehr einfach Objekte mappen kann.

 

List<User> userList = getSomeUser();

List<UserWrapper> wrapperList = userList.stream().map(UserWrapper::new).collect(Collectors.toList());

 

In Java 7 sah das ganze noch so aus:

List<User> userList = getSomeUser();
List<UserWrapper> wrapperList = new ArrayList<>();

for (User user : userList)
{
   wrapperList.add(new UserWrapper(user));
}

JavaFX – Analysieren und Modifizieren einer Anwendung im Live Betrieb mit ScenicView

Hallo Leute,
ich habe vor kurzem das tolle Tool ScenicView von fxexperience.com entdeckt.

ScenicView Logo

Dieses Tool ermöglicht es deiner JavaFX Anwendung während sie läuft aktuelle Startinformationen zu entlocken und diese dann zu modifizieren.

Damit sind Eigenschaften gemeint, beispielsweise die Sichtbarkeit eines Buttons oder die aktuelle Hintergrundfarbe einer VBox.

Read More