Eclipse-Projekt mit Git verbinden

Die Idee

Je nachdem, wie die Abende hier in der Familie sind, habe ich keine Lust, in meinem Arbeitszimmer zu sitzen. Allerdings möchte ich trotzdem was an meinen Projekten machen. Vielleicht auch nur ’n bisschen was programmieren. Das bedeutet, dass ich den Quellcode meiner Projekte irgendwie zentral verwalten möchte.

Ganz früher hat man sowas mit PVCS gemacht oder in letzter Vergangenheit mit Subversion (SVN). Der neue Stern am Himmel scheint aber GIT zu sein. Also probieren wir mal GIT, auch wenn ich gar nicht so genau weiss, worin der echte Unterschied liegt.

Die Lösung

GIT auf dem Macbook oder dem MacMini zu installieren ist echt leicht. Einfach runterladen und los. Wie man allerdings ein Repository anlegt und seinen Quellcode dann versioniert ist schon schwieriger, wenn man das noch nie mit dem Tool gemacht hat. Hier gibt es ein gutes Video von Uwe Bretschneider. Danke Uwe!

 

 

Raspberry Pi Step 6 – Tomcat installieren

Die Idee

Es gibt verschiedene Sachen, die ich auf dem Raspberry machen möchte. Einige Sachen möchte ich mit dem Handy steuern, andere Sachen kann der Raspberry eigenständig tun, aber ich möchte die Ergebnisse auf dem Smartphone sehen.

Zum Beispiel möchte ich Wetterdaten erfassen und diese dann anzeigen.

Wenn man das plattformunabhängig halten möchte, eignet sich hierzu wahrscheinlich am besten eine Weboberfläche, die man dann zunächst mal im Heimnetzwerk anzeigen kann.

Programmiertechnisch kenne ich mich am besten in Java aus, weshalb ich mir vorstelle, eine Java-Webapplikation (Servlet) zu programmieren, die ich dann auf einem Tomcat auf dem Raspberry deploye.

Schritt 1 – Apache Webserver installieren.

Der Apache soll die HTTP-Requests entgegennehmen und dann – je nach Applikation – auf den gewünschten Applicationserver weiterleiten. Wie man den Apache installiert, habe ich bereits in einem Beitrag beschrieben.

Schritt 2 – Tomcat installieren.

Wir checken zunächst die Java-Version mit dem Kommando java -version

pi@raspberrypi:~ $ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
pi@raspberrypi:~ $

Dann laden wir uns die Installationsdateien für dem Tomcat herunter. Dazu suchen wir uns auf der Apache-Seite die aktuelle Version raus und laden diese mittels wget auf den Pi. In meinem Fall ist das

wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz

Dann wird die tar-Datei entpackt

pi@raspberrypi:~/Tools/apache $ tar xvf apache-tomcat-8.5.28.tar.gz

Ich persönlich mag es lieber, wenn ich den Tomcat dann in einem Applikationsverzeichnis habe. Deshalb verschiebe ich ihn nochmal.

pi@raspberrypi:~/Tools/apache $ cd 
pi@raspberrypi:~ $ mkdir Applications
pi@raspberrypi:~ $ cd Applications/
pi@raspberrypi:~/Applications $ mkdir Tomcat
pi@raspberrypi:~/Applications $ cd Tomcat/
pi@raspberrypi:~/Applications/Tomcat $ mv /home/pi/Tools/apache/apache-tomcat-8.5.28 .

Ausserdem erstelle ich mir einen symbolischen versionsunabhängigen Link, den ich recent nenne. Dieser zeigt immer auf die aktuelle Version. Sollte ich später mal den Tomcat hochleveln wollen, muss ich nicht in allen möglichen Skripten alle Pfade anpassen, sondern ändere einfach den Link auf das Verzeichnis.

pi@raspberrypi:~/Applications/Tomcat $ ln -s apache-tomcat-8.5.28/ recent
pi@raspberrypi:~/Applications/Tomcat $ ls -l 
insgesamt 4
drwxr-xr-x 9 pi pi 4096 Mär 2 22:11 apache-tomcat-8.5.28
lrwxrwxrwx 1 pi pi 21 Mär 2 22:15 recent -> apache-tomcat-8.5.28/
pi@raspberrypi:~/Applications/Tomcat $

Dann müssen wir noch einen User im Tomcat anlegen, mit dem wir die Manager-Gui nutzen können. Dazu editieren wir die Datei conf/tomcat-users.xml und fügen die folgende Zeile hinzu:

<user username="admin" password="password" roles="manager-gui"/>

Der Tomcat ist nun grundsätzlich startbar. Um ihn später aber auch ohne User-Interaktion direkt beim Hochfahren des Servers zu starten, benötigen wir noch ein Startskript, welches „in das System integriert werden muss“

Dazu erstellen wir mit sudo /etc/init.d/tomcat ein Startskript, wie dieses hier

#!/bin/sh
# /etc/init.d/tomcat
# starts the Apache Tomcat service
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop tomcat application server
### END INIT INFO
 
export CATALINA_HOME="/home/pi/Applications/Tomcat/recent"
case "$1" in
start)
  if [ -f $CATALINA_HOME/bin/startup.sh ];
  then
    echo $"Starting Tomcat"
    /bin/su pi $CATALINA_HOME/bin/startup.sh
  fi
  ;;
stop)
  if [ -f $CATALINA_HOME/bin/shutdown.sh ];
  then
    echo $"Stopping Tomcat"
    /bin/su pi $CATALINA_HOME/bin/shutdown.sh
  fi
  ;;
*)
  echo $"Usage: $0 {start|stop}"
  exit 1
  ;;
esac

Ist das Skript gespeichert, werden noch die Ausführungsrechte angepasst und wir versuchen den ersten Start.

pi@raspberrypi:/etc/init.d $ sudo chmod 755 tomcat 
pi@raspberrypi:/etc/init.d $ sudo update-rc.d tomcat defaults
pi@raspberrypi:/etc/init.d $ sudo /etc/init.d/tomcat start
$Starting Tomcat
Using CATALINA_BASE: /home/pi/Applications/Tomcat/recent/
Using CATALINA_HOME: /home/pi/Applications/Tomcat/recent/
Using CATALINA_TMPDIR: /home/pi/Applications/Tomcat/recent//temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/pi/Applications/Tomcat/recent//bin/bootstrap.jar:/home/pi/Applications/Tomcat/recent//bin/tomcat-juli.jar
Tomcat started.
pi@raspberrypi:/etc/init.d $ sudo update-rc.d tomcat defaults

Fertig, der Tomcat ist nun gestartet und nutzbar.

Raspberry Pi Step 4 – Raspberry mit NAS verbinden

Die Idee

Auf jeden Fall soll irgendwann ein Raspberry als MediaClient eingerichtet werden. Dafür ist es mal auf jeden Fall notwendig, dass der Pi Zugriff auf die Musikdateien auf dem NAS erhält.

Das Problem

Es ist leider nicht so einfach, wie in Windows oder auf dem Mac. Hier wird beim Start des Rechners sofort das Netzwerk untersucht, ob sich da irgendwas zum Verbinden anbietet. Beim Pi muss man das selbst machen. Aber – kein Problem….

Die Lösung

Ich möchte, dass sofort beim Start versucht wird, auf das NAS zuzugreifen. Ich will ja nicht extra jedesmal einen Connect durchführen. Deshalb müssen die Zugangsdaten irgendwo hinterlegt werden.

Auf Linux-Systemen wird das in der fstab-Datei gemacht. Die wird beim Start ausgelesen und die gewünschten Verbindungen werden aufgebaut.

SambaClient installieren

Ich habe mich entschieden, den Zugriff über Samba einzurichten. Als erstes installieren wir uns die Software, um Freigaben zu installieren und anschließend den Samba-Client

sudo apt-get install cifs-utils
sudo apt-get install smbclient

Verbindung checken

Dann können wir mit einem Kommando schonmal testen, ob die Verbindung klappt. Einmal die Verbindung zur IP anonym

smbclient -N -L //192.168.1.2/ <== DEINE NAS-IP

Und einmal die Verbindung als Raspberry-Nutzer. Hierbei wird ein Passwort abgefragt. Hierbei handelt es sich um das Passwort, das für den Connect auf das NAS erforderlich ist.

smbclient -N -L raspberrypi

Verbindung einrichten

Als erstes müssen wir uns ein Verzeichnis machen, welches nachher den „Mount aufnehmen“ kann. In dieses Verzeichnis wechseln wir, wenn wir auf das NAS wollen. Ich nehme jetzt mal einen Ordner im Home-Verzeichnis.

sudo mkdir $HOME/NAS_Speicher

Und dann editieren wir die fstab-Datei. Die Datei ist eine Textdatei, deren Abstände immer mit vier Leerzeichen oder einem Tab getrennt sein sollen. Sonst kann es zu Problemen kommen. Also – halten wir uns dran. Wir fügen den folgenden Eintrag hinzu

Schematisch

//<IP-NAS-SPeicher>/<Freigabeordner> /<LokalesVerzeichnis> <Filesystem> <Parameter>

Also bei mir

//192.168.178.25/Multimedia    /home/pi/Apfelplatte    cifs    defaults,nofail,username=<UserOnNas>,password=<PwOnNAs>,uid=pi,gid=pi,x-systemd.automount,x-systemd.requires=network-online.target    0    0

Wichtig sind die folgenden Parameter, die man ab Raspberry „Jessie“ (ich glaube, das ist Pi3) benutzen kann.

x-systemd.automount,x-systemd.requires=network-online.target

Das Problem ist oft, dass die Datei /etc/fstab abgearbeitet wird, bevor die Netzwerkkonfiguration initialisiert ist. Das bedeutet, man versucht auf ein Netzwerk zuzugreifen, das noch gar nicht da ist. Mit diesen Parametern wird das System angewiesen, den Mount beim Start des Systems durchzuführen, aber auf das Netzwerk zu warten.

Das ganze Verzögert zwar den Start ein wenig, aber dafür klappts dann auch automatisiert.

Heimwerken Teil 2: Sandstrahlen und Kompressorpausen

Was bisher passiert ist

Letzte Woche haben wir ja erfolgreich eine Sandstrahlkabine gebaut und schonmal einen ersten Test gemacht, ob Kompressor, Pistole und Strahlgut gut harmonieren.

Ergebnis: Tun sie leider nicht.

Entweder ist der Ansaugrüssel der Pistole zu klein oder das Strahlgut zu groß. Daher wurde eine neue Strahlpistole angeschafft. Das neue Strahlgut ist auch eingetroffen. Wir können also nochmal testen.

Heimwerken Teil 1: Sandstrahlkabine bauen

Das Grundprojekt

Ich habe mir eine Vespa PK50XL2 gekauft. Die muss dringend restauriert werden. Motormäßig mach ich mir da nicht zu viele Gedanken. Das ist schließlich schon die dritte Restaurierung, die wir machen.

Ich habe absichtlich eine Vespa gekauft, die gesandstrahlt und lackiert werden muss, damit ich das lerne bzw. Erfahrungen sammele… 😉

Teil 1: Sandstrahlkabine bauen

Ich habe in ein paar Wochenendaktionen einen Kellerraum leergeräumt. Diesen Kellerraum möchte ich teilen und zur Hälfte in eine Sandstrahlkabine umbauen.

Die Idee ist einfach:

  • Paletten auf den Boden um eventuellem Wasser im Keller vorzubeugen
  • Gerüst aus Dachlatten aufschrauben
  • Vertikale Dachlatten mit Winkeln aufsetzen
  • oben Querträger einziehen
  • Folie festtackern und mit Panzertape fixieren.

So der Plan für Tag 1. Lasst Euch überraschen, was draus geworden ist.

Neues Jahr – neue Energie! Einfach machen!

2018 wird alles anders! Neben vielen coolen Vespa-Events steht Heimwerken ganz groß im Fokus.

Youtube ist ein Meer voll mit kreativen Köpfen, die nicht nur unglaubliche Ideen haben, total talentiert sind und die auch noch Spaß daran haben, ihre Begeisterung dafür in Videoform zu teilen.

DAS WILL ICH AUCH! und ich werd’s EINFACH MACHEN!

Und wenn ihr möchtet, seid ihr herzlich eingeladen, mich zu begleiten