Raspi-Webzugriff ohne extra Serverinstallation

Wenn man einen Raspberry-Pi remote betreibt, dann bleibt für die Interaktion nicht viel mehr übrig, als die Remote-Shell, ein Web-Frontend oder das Umleiten des X-Servers auf die Host-Maschine. In diesem Beitrag will ich mich auf die zweite Variante konzentrieren und aufzeigen, wie das sehr schnell ohne Installation eines eigenen Webservers, wie den Apache oder Nginx, geht.
Das Setup, welches ich gewählt habe, ist CherryPy, weil mit diesem Framework ein Web-Server mitkommt und außerdem mit der Raspberry-Pi Haus- und Hof-Programmiersprache Python gefüttert wird.
Bei meinen Programmierausflügen mit Python versuche ich immer auf die 3er Version von Python zu setzen, weswegen ich hier auch die Anleitung dafür auslege.
Als erstes muss man sich den Python Package Manager PIP installieren, um damit dann CherryPy zu installieren – das alles habe ich bereits in meinem Artikel PIP für Python 3.x unter Linux installieren beschrieben.
Als nächsten Schritt legt man am besten ein cherryPy-Verzeichnis an und speichert darin die cherryPy-Scripte. Hier darf natürlich das obligatorische Hello-World nicht fehlen. Auf der CherryPy-Seite ist dieses auch gleich an erster Stelle platziert. Ist man mit der graphischen Oberfläche direkt auf dem RasPi unterwegs so funktioniert das auf Anhieb, aber in meinem Fall soll der Zugriff ja remote innerhalb des Hausnetzwerkes erfolgen. Dazu muss das Script noch etwas angepasst werden und zusätzlich noch eine Konfigurationsdatei angelegt werden. Man könnte zwar die Konfiguration auch noch mit in das Python-Script packen, aber wir wollen bei unseren Experimenten ja nicht jedes Mal die selbe Konfiguration mit in das Script packen – das Angeben einer externen Konfigurationsdatei ist hier wohl deutlich komfortabler.
So habe ich das helloWorld-Beispiel folgendermaßen abgewandelt

#!/usr/bin/python3

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

if __name__ == '__main__':
	cherrypy.quickstart(HelloWorld(), config="cherryPy.conf")

und die dazugehörige Konfigurationsdatei cherryPy.conf wie folgt aufgebaut:

[global]
server.socket_host = "192.168.10.17"
server.socket_port = 8080
server.thread_pool = 10

Startet man nun das Script mit python3 cpHelloWorld.py, so sieht man wie der Server aufgesetzt wird.

pi@raspberrypi ~/cherryPy $ python3 cpHelloWorld.py 
[04/Apr/2015:09:52:37] ENGINE Listening for SIGHUP.
[04/Apr/2015:09:52:37] ENGINE Listening for SIGTERM.
[04/Apr/2015:09:52:37] ENGINE Listening for SIGUSR1.
[04/Apr/2015:09:52:37] ENGINE Bus STARTING
[04/Apr/2015:09:52:37] ENGINE Started monitor thread 'Autoreloader'.
[04/Apr/2015:09:52:37] ENGINE Started monitor thread '_TimeoutMonitor'.
[04/Apr/2015:09:52:37] ENGINE Serving on http://192.168.10.17:8080
[04/Apr/2015:09:52:37] ENGINE Bus STARTED

Die Hello-World Seite kann nun von jeder beliebigen Maschine im Netz unter der angegebenen IP-Adresse aufgerufen werden:
cherryPyHelloWorld
Und das tolle an diesem Setup ist, dass das Script nach einer Änderung nicht jedes Mal neu gestartet werden muss, sondern das Framework eine Modifikation der Datei automatisch erkennt und diese neu ausliefert.
Einfach mal ausprobieren und im Script aus „Hello World“ ein „Hello Raspi-World“ machen und die Datei abspeichern. Die Konsolenausgabe zeigt an, dass die Änderung erkannt wurde:

[04/Apr/2015:12:21:55] ENGINE Restarting because /home/pi/cherryPy/cpHelloWorld.py changed.
[04/Apr/2015:12:21:55] ENGINE Stopped thread 'Autoreloader'.
[04/Apr/2015:12:21:55] ENGINE Bus STOPPING
[04/Apr/2015:12:21:55] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('192.168.10.17',8080)) shut down
[04/Apr/2015:12:21:55] ENGINE Stopped thread '_TimeoutMonitor'.
[04/Apr/2015:12:21:55] ENGINE Bus STOPPED
[04/Apr/2015:12:21:55] ENGINE Bus EXITING
[04/Apr/2015:12:21:55] ENGINE Bus EXITED
[04/Apr/2015:12:21:55] ENGINE Waiting for child threads to terminate...
[04/Apr/2015:12:21:55] ENGINE Re-spawning cpHelloWorld.py
[04/Apr/2015:12:21:58] ENGINE Listening for SIGHUP.
[04/Apr/2015:12:21:58] ENGINE Listening for SIGTERM.
[04/Apr/2015:12:21:58] ENGINE Listening for SIGUSR1.
[04/Apr/2015:12:21:58] ENGINE Bus STARTING
[04/Apr/2015:12:21:58] ENGINE Started monitor thread 'Autoreloader'.
[04/Apr/2015:12:21:58] ENGINE Started monitor thread '_TimeoutMonitor'.
[04/Apr/2015:12:21:59] ENGINE Serving on http://192.168.150.175:8080
[04/Apr/2015:12:21:59] ENGINE Bus STARTED

Nun gilt es nur noch im Browser einen Reload zu veranlassen und siehe da, schon erscheint die Änderung im Browser.
cherryPy_helloRaspiWorld
Nun lässt sich das Script beliebig erweitern. Dazu rate ich die Tutorials der cherryPy-Dokumentation genauer zu studieren – evtl. gibt es ja auch noch einen weiteren Beitrag zu diesem Thema. Mal schauen, was die Zeit bringt.
Noch viel Spaß beim Ausprobieren!

Von Linux aus bequem auf Raspi-Dateien remote zugreifen

wer so wie ich mehrere Raspberry-Pis im Einsatz hat, auf diese vornehmlich remote zugreift und daran auch noch Daten produzierende Sensoren hat, der wird sich wohl auch schon das ein oder andere Mal gewünscht haben, bequem auf diese Dateien zugreifen zu können. Ich habe für mich die Lösung mittels SSH-Filesystem gefunden. Dazu muss auf dem Raspberry-Pi SSH aktiviert sein – das kann man über raspi-config erledigen:
sudo raspi-config
Unter dem Menüpunkt 8 Advanced Options befindet sich der Untermenüpunkt A4 SSH, der erlaubt SSH einzuschalten – enable.
raspiconfig-main

raspiconfig-advanced

raspiconfig-ssh

Nach diesem Schritt kann man sich remote über sein Netzwerk auf dem Raspberry-Pi einloggen und diesen damit headless betreiben. Unter Windows geht das z.B. über Putty, unter Linux über das Terminal – nämlich mit dem Kommando:
ssh pi@<ip-adresse/alias> z.B. ssh pi@192.168.10.12
Was nun aber zu nerven beginnt, ist das Eingeben des Passwortes, sobald man sich über SSH auf dem Raspi einlogged. Aber dafür gibt es auch Abhilfe.
Wenn man auf dem Rechner,von dem aus man sich auf dem Raspi einloggen will noch kein SSH-Schlüsselpaar liegen hat, so muss man sich erst mal ein neues SSH-Schlüsselpaar erzeugen.
Ob bereits ein Schlüsselpaar vorhanden ist, kann man einfach überprüfen, indem man sein home-Verzeichnis nach einem .ssh Unterverzeichnis durchsucht.
cd ~
ls -a | grep ssh
Ist das Verzeichnis vorhanden, so sollten sich mindestens folgende Dateien darin befinden (ls .ssh):
id_rsa id_rsa.pub
Ist das nicht der Fall, so kann man gleich ein neues Schlüsselpaar erzeugen:
ssh-keygen -t rsa
Bei der Aufforderung zur Eingabe des Speicherortes und des Passworts einfach Return drücken. Ich habe das mal auf einem frisch aufgesetzten Raspi nachvollzogen:
raspi-ssh-keygen
Und nun gilt es, den public-key (id_rsa.pub) auf den Zielrechner zu bekommen. Und hier kommt bereits das SSHFS zum Einsatz. Ist es noch nicht auf dem Host-Rechner installiert, so kann das ganz einfach über sudo apt-get install sshfs erledigt werden. Nun gilt es noch das Mount-Verzeichnis auf der Host-Seite einzurichten, was der Befehl mkdir <Zielverzeichnis> für uns erledigt. Wer so wie ich mehrere Raspberry-Pis sein Eigen nennt, dem empfehle ich zunächst ein Unterverzeichnis für die Raspberries anzulegen und darunter jedem Raspi sein eigenes Mount-Verzeichnis einzurichten:
mkdir ~/raspberry && cd ~/raspberry
mkdir pi_1 pi_2 pi_n
Nun steht dem SSHF-Mount nichts mehr im Wege.
sshf pi@<ip-adresse>:/home/pi ~/raspberry/pi_1
In diesem Fall wird nochmals das Passwort abgefragt, aber mit nachfolgenden Schritten kann das abgestellt werden.
Wenn auf dem Remote-Pi bereits ein .ssh-Verzeichnis im Home-Verzeichnis besteht und in diesem Verzeichnis bereits eine Datei namens authorized_keys liegt, so kann man den neuen Key über folgendes Kommando dazu fügen:
cat ~/.ssh/id_rsa.pub >> ~/raspberry/pi_1/.ssh/authorized_keys
Sollte das .ssh-Verzeichnis im Home-Verzeichnis des „remote-Raspi“ noch nicht existieren, so muss es angelegt werden:
mkdir ~/raspberry/pi_1/.ssh
um anschließend den Public-Key zu kopieren:
cp ~/.ssh/id_rsa.pub ~/raspberry/pi_1/.ssh/authorized_keys
Nun kann der Mount-Point über das Kommando
fusermount -u ~/raspberry/pi_1
ausgehängt werden, um ihn anschließend ohne Angabe des Passwortes wieder einhängen zu können:
sshf pi@<ip-adresse>:/home/pi ~/raspberry/pi_1
Ich muss wohl kaum erwähnen, dass nun auch bequem über den Dateimanager auf die Files des „remote-Raspies“ zugegriffen werden kann.
Und als kleines Schmankerl kommt nachfolgend noch ein Bash-Script, welches erlaubt, auf einen Rutsch gleich mehrere Raspies zu mounten:

#!/bin/bash<br>

piIpBase=192.168.10.
piIpList="1 2 5"

for piName in $piIpList; do
    ping -c 1 -q $piIpBase$piName
    echo "ping-result: $?"
    if [ $? -eq 0 ]; then
        echo "$piIpBase$piName available - try to mount it."
        sshfs pi@$piIpBase$piName:/home/pi ~/raspberry/pi$piName/
    else
        echo "$piIpBase$piName NOT available!"
    fi
done

Obigen Text einfach in eine Datei speichern (z.B. mount_pi.sh) und nicht vergessen, diese dann ausführbar zu machen:
chmod +x mount_pi.sh
So lassen sich über den Aufruf von mount_pi.sh gleich mehrere (in obigem Fall: drei) RaspberryPies auf einen Rutsch in sein lokales File-System einhängen – vorausgesetzt man hat nicht vergessen die Mount-Verzeichnisse dafür anzulegen.

Auf der Github-Hilfeseite ist auch noch gut beschrieben, wie man sich einen SSH-Key erzeugen kann.

PIP für Python 3.x unter Linux installieren

Jetzt bin ich schon zum dritten Mal über die Notwendigkeit gestolpert, den python package-manager pip für Python 3.x zu installieren und habe jedes Mal danach im Internet suchen müssen – nein, nicht googeln, sondern suchen mit DuckDuckGo.
Nachdem meine Linux-Maschinen alle auf Debian basieren, reicht mir die Installation via Debian Package Manager => Advanced Package Tool (APT).
Es genügt dafür folgende Eingabe auf der Kommandozeile:
sudo apt-get install python3-pip
Danach kann man dann Module für Python 3.x installieren indem man folgende Befehlssyntax verwendet:
sudo pip-3.2 install cherrypy
Bei meiner Installation (auf dem Raspberry-Pi mit Raspbian) waren noch folgende Alternativen möglich:
pip pip-2.6 pip-2.7 pip-3.2
Zumindest weiß ich jetzt beim nächsten mal, wo ich ohne Suchen nachschauen kann und hoffe, dass dieser kurze Artikel vielleicht dem Einen und/oder der Anderen dort draußen in den Weiten des Internet auch hilfreich ist.

Digitale Selbstverteidigung

Der Titel diesen Beitrags ist schon sehr reißerisch, stammt aber nicht von mir, sondern stammt von der Seite der DigitalCourage die der Ein oder Andere vielleicht schon im Zusammenhang mit der Vergabe der Big-Brother Awards wahr genommen hat.
Und warum komme ich jetzt auf einmal mit digitaler Selbstverteidigung daher? Das ist relativ einfach – ich habe vor kurzem den Vogonen-Podcast #80 angehört, bei dem Markus Morgenroth über die Verhaltensbasierte Datenanalyse gesprochen hat. Mir wurde dabei klar, dass ich immer noch zu wenig für meine digitale Selbstbestimmung unternehme, habe mich aber erinnert, dass es einschlägige Seiten gibt, die sich mit diesem Thema beschäftigen.
Als erstes wäre hier die bereits oben erwähnte Seite der DigitalCourage zu nennen, welche unter folgendem Link Möglichkeiten zur Verbesserung der digitalen Selbstbestimmung aufzeigt und dies mit dem Begriff „digitale Selbstverteidigung“ umreißt:
https://digitalcourage.de/support/digitale-selbstverteidigung

Eine weitere Seite zu diesem Thema ist http://www.selbstdatenschutz.info/, die das Thema digitale Selbstbestimmung kurz umreißt und viele Links zur weiteren Vertiefung bietet.

Wieder Student ;-)

wer wie ich sehr viele Jahre die Schulbank gedrückt hat – angefangen bei der Grundschule, weiter über Realschule, Ausbildung/Berufsschule zu Fachoberschule und schließlich Studium – der kann evtl. nachvollziehen, dass man sich an das Lernen gewöhnt hat. Zudem erfordert mein Beruf von mir, dass ich mich ständig weiter bilde, um mit den Neuentwicklungen auf dem Embedded Hardware-/Software-Markt mithalten zu können. Da entwickelt man über die Zeit eine gewisse Affinität zum Lernen. Auf was ich eigentlich hinaus will ist die Möglichkeit, sich auch von zu Hause aus fortbilden zu können. Dies wird unter anderen durch die Online-Lernplattform des Hasso-Plattner Instituts ermöglicht => openHPI.
Es handelt sich hierbei um eine sogenannte MOOC-Plattform(= Massive Open Online Plattform). Massive deswegen, weil es als Internet-Dienst möglich ist, dass sehr viele Teilnemer an den Kursen teilnehmen. So sind es bei meinem aktuellen Kurs „Sichere eMail“ über 5200 Teilnehmer.
Bei diesen Kursen ist es aber nicht so, dass man die Lehrfilmchen über sich ergehen lässt und man dann ein „Was weiß ich – Zertifikat“ bekommt, sondern dass man hier schon etwas Zeit und Schreibzeug mitbringen sollte, falls man den Kurs erfolgreich abschließen will. So kann nach jedem Video ein kleiner Test absolviert werden um zu überprüfen, ob man den Inhalt des Lehrvideos auch verinnerlicht hat – dieser Test kann beliebig oft wiederholt werden. Am Ende der Woche steht dann die Hausaufgabe an – das ist die Wochenprüfung, welche dann in die Gesamtwertung mit eingeht. Dieser Wochentest geht über 60min und kann nur ein einziges Mal durchgeführt werden. Am Ende steht dann noch die Abschlussprüfung an. Hat man dann am Ende des Kurses mehr als 50% der möglichen Punkte, so erhält man ein Zeugnis, bei 50% oder weniger bekommt man zumindest noch eine Teilnahmebestätigung, sofern man mindestens 50% der Kursunterlagen abgearbeitet hat.
Nach einer Woche Lehrgang mit allen Selbstests und absolvierter Hausaufgabe mit Bonusaufgabe sieht es auf meiner Kursübersicht folgendermaßen aus:

openHPI Kursübersicht nach einer Woche

openHPI Kursübersicht nach einer Woche


Es wird sich zeigen, ob die Begeisterung und das Engagement anhalten, oder ob es mir dann doch zu viel wird. Noch ist die Motivation noch relativ hoch.
Und hier gleich zur Antwort auf die wahrscheinlich am meisten gestellte Frage: wann machst Du das – wie kriegst Du das noch unter?
Antwort: Meistens am Abend statt Fernsehen – hat wohl doch einen höheren Bildungswert als „Bauer sucht Frau“ 😉 Oder anders ausgedrückt: Wieso bei Günther Jauch mitraten und sehen wie andere Millionen absahnen, wenn man für das Beantworten von Fragen zumindest ein Zeugnis bekommen kann, was für die nächste Bewerbung/Beförderung als Jocker eingesetzt werden kann.
Und jetzt hätte ich fast noch vergessen zu erwähnen, dass der Dienst komplett kostenlos angeboten wird und auch nicht über Werbung finanziert wird.

Installierte Solarpower in Fünfstetten

Wie wohl fast jeder Solaranlagenbesitzer habe ich mit der Jahresabrechnung ein Infoschreiben zum Thema Meldepflicht von Solaranlagen bekommen. Darin war der Verweis auf die Meldeseite der Bundesnetzagentur.
Auf dieser Seite bin ich dann auf die Datendateien mit allen Meldungen der letzten Jahre gestoßen und natürlich hat mich die Neugier gepackt und ich habe gleich mal nach den Fünfstetter zahlen geschaut. Die sind darin auch enthalten. Nun war ich nicht mehr zu bremsen, denn als Zahlen-/Daten-Junkie (oder ist es ja auch nur der überdurchschnittliche Autismusfaktor) musste ich die Zahlen etwas aufbereiten.
Tabellarisch sieht das dann so aus:

2009 2010 2011 2012 2013 2014
Jan 0.00 615.60 0.00 78.00 0.00 14.56
Feb 0.00 28.49 65.88 18.29 0.00 0.00
Mär 0.00 70.61 0.00 154.16 0.00 0.00
Apr 9.54 49.03 0.00 29.95 0.00 0.00
Mai 199.74 50.90 72.81 35.70 5.50 8.32
Jun 0.00 81.77 35.33 61.18 19.51 0.00
Jul 78.35 36.42 0.00 27.78 130.13 4.68
Aug 40.84 48.25 0.00 7.38 18.13 11.00
Sep 40.00 50.76 10.20 10.14 0.00 0.00
Okt 34.91 0.00 7.05 0.00 37.50 0.00
Nov 12.90 0.00 35.28 70.16 15.90 0.00
Dez 74.56 56.05 215.56 19.11 0.00 0.00
Gesamt 490.8 1087.9 442.1 511.8 226.7 38.6

Es zeigt sich wieder einmal, dass ein Bild mehr sagt, als „tausend Zahlen“. Wer sich aber die Arbeit macht, die Zahlen mal genauer zu betrachten, dem fällt auf, dass im Januar 2010 ein enormer Peak von sage und schreibe 615,6 kWp eingetragen ist. Dieser Wert kommt von einer einzigen Anmeldung, was den Schluss nahe legt, dass es sich wohl um die Inbetriebnahme der Freiflächenanlage beim Kalköfele handeln muss. Für die graphische Betrachtung der Meldungen lasse ich diese Anlage außen vor, denn das würde dazu führen, dass in den Graphiken ein großer Peak auftaucht und die restlichen Meldungen im „Rauschen“ unter gehen.
Mit den restlichen Zahlen ergibt sich dann über die Jahre folgendes Bild:

Photovoltaikmeldungen Fünfstetten 2009-2014

Photovoltaikmeldungen Fünfstetten 2009-2014

Photovoltaikmeldungen Fünfstetten 2009-2014 - pro Monat

Photovoltaikmeldungen Fünfstetten 2009-2014 – pro Monat

Es zeigt sich, dass es 2012 einen Peak gab und seither die Anmeldungen rapide zurückgegangen sind. Dies ist wohl der Photovoltaik-Novelle im Juni 2012 geschuldet – oder es sind ganz einfach keine Dächer mehr frei (wer mit offenen Augen durch Fünfstetten spaziert, wird wohl noch etwas Potential sehen).
Kommen wir zur Gesamtleistung. Wenn wir das erste Bürgersolarkraftwerk im Süden Fünfstettens mit einer Leistung von 1327.2 kWp, das Solarkraftwerk beim Kalköfele mit 615,6 kWp und die zwischen 2009 und 2014 gemeldeten Photovoltaikanlagen mit einer Leistung von 2182,31 kWp zusammenrechnen, so verfügt Fünfstetten über eine Solarpower von sage und schreibe:
4125 kWp oder auch 4,1 MWp
Das ist schon eine Nummer!
Trifft man nun eine sehr konservative Annahme mit einer Ertragsleistung von 850 kWh/kWp, so ergibt sich ein Jahresertrag von:
3506314,6 kWh bzw. 3,5 GWh
und setzt man dann den Jahresstromverbrauch eines durchschnittlichen 3-Personen-Haushalts mit 4000 kWh gegenüber, so könnte man theoretisch rund 875 Haushalte damit versorgen.
Das bayerische Landesamt für Statistik weiß von Fünfstetten, dass es im Jahre 2011 570 Wohnungen in insgesamt 488 Wohngebäuden gab, was wohl deutlich unter den theoretischen 875 Haushalten liegt.
Und nun höre ich schon die Antagonisten schreien:“ja stimmt vielleicht, aber nur wenn die Sonne scheint“. Denen kann man seelenruhig begegnen:“Für die sonnenarmen Tage haben wir ja noch die Biogasanlagen“ – aber zu denen habe ich leider keine genauen Zahlen. Außerdem arbeitet die Forschung mit Nachdruck an Speichertechniken und diese werden über die nächsten Jahre auch immer mehr Einzug in die Stromversorgung nehmen. Aber das wäre schon wieder ein eigener Artikel.

GNU Plot

Heute habe ich mich mal in ein Problemchen verbissen, vor dem ich in der Vergangenheit schon des öfteren halt gemacht hatte – nämlich mit GnuPlot mehrere Kurven aus der selben Datei darzustellen; oder noch genauer – die Daten sind als „Spalten“ in einer Textdatei mit einem White-Space als Trenner. Hier meine Beispiel-Datei (myData.dat)

35 11
37 12
40 15
45 20
43 19
55 27
53 25
50 24

Bei den von mir zu Rate gezogenen Hilfsquellen (Verweise im Wikipedia-Artikel zu GnuPlot wurde immer nur schön erklärt, wie man mehrere mathematische Funktionen in eine Graphik packen kann, aber leider nicht explizit, wie man oben gezeigte Datenreihen als zwei separate Kurven in ein Diagramm zeichnen lassen kann.
Nun, wie geht das jetzt mit den zwei Kurven in einem Diagramm?
Dazu muss man wissen, dass jede Kurve nach dem plot-Kommando per Komma getrennt mit all seinen zusätzlichen Eigenschaften aufgeführt werden muss. Hier mein Beispiel:

gnuplot -e "set terminal svg;set grid; plot 'myPlot.dat' using 1 with lines, 'myPlot.dat' using 2 with lines;">myDat.svg

Der Schalter -e erlaubt die Angabe des Plot-Scriptes in der Kommandozeile. D.h. hat man mehr Parameter bzw. Konfigurationsgedöns für einen Plot anzugeben, macht es Sinn diese in eine Datei zu packen, welche dann GnuPlot direkt übergeben werden kann.
Die erste Script-Zeile set terminal svg; gibt an, dass es sich bei der Ausgabe um das SVG-Format handelt (Scalable Vector Graphic).
Die zweite Script-Zeile set grid; bewirkt, dass ein Gitter über das Koordinatensystem gelegt wird.
Die dritte Zeile ist nun die wichtigste Zeile – sie gibt an, welche Daten für den Plot verwendet werden sollen, jede Kurve per Komma getrennt. So sagt das Kommando plot das etwas gezeichnet werden soll. Danach wird die Quelle für die Daten angegeben – in unserem Fall die Datei myPlot.dat. Danach erfolgt mittels using 1 die Angabe, welche Spalte für die Kurve verwendet werden soll. Abschließen wird noch mit with lines festgelegt, dass die Punkte mit einer Linie verbunden werden sollen.
Die zweite Kurve wird bis auf using 2 identisch zur ersten Kurve definiert; using 2 gibt an, dass die zweite Spalte der Datei myPlot.dat als Datengrundlage verwendet werden soll.
Und hier nun das Ergebnis:
myDat

Mathematik-Programm

Mit diesem Artikel will ich auf ein Mathe-Programm hinweisen, dass mir auf Anhieb gefallen hat – noch dazu ist es dank Java Cross-Plattform implementiert. Es handelt sich um das Programm Geogebra. (Beschreibung in Wikipedia). Dieses kann sowohl von der Download-Webseite im Browser geöffnet werden, als Offline-Installation herunter geladen oder auch als portable Applikation auf ein externes Speichermedium (Memory-Stick; SD-Karte,..) abgelegt werden.

Geogebra mit ein paar einfachen Thermen

Geogebra mit ein paar einfachen Thermen

Das Programm sollte wirklich auf keinem Schüler-PC fehlen. Es erlaubt die dynamische Bearbeitung von geometrischen Figuren/Diagrammen und beherrscht Bereiche aus der Algebra und Analysis. Es gibt auch deutsche Handbücher für den schnellen Einstieg. Ein weiteres Schmankerl ist das Portal GeoGebraTube, auf dem sich die Community austauschen und Material hochladen kann.

webcam/USB-Mikroskop unter Linux nutzen

Es ist noch gar nicht so lange her, da habe ich mir/uns ein USB-Mikroskop geleistet, um z.B.

  • ganz kleine Schrift entziffern zu können, wie sie z.B. auf Uhren-Batterien zu finden ist
  • den Kindern den Mikrokosmos etwas erschließen zu können

Nachdem ich aber mittlerweile auf meinen Privat-Rechnern kein Windows-Betriebssystem mehr im Einsatz habe, sondern Linux/OSX, konnte ich die mitgelieferte Software nicht mehr verwenden.
Ich hatte nun aktuell die Notwendigkeit, das Mikroskop zur Entzifferung des Typs einer Armbanduhrenbatterie zu verwenden und war deswegen auf der Suche nach geeigneter Linux-Software. Ich musste nicht lange recherchieren um zwei Kandidaten zu finden, die mir beide zumindest ermöglichten, das Bild auf den Desktop zu bekommen. Auf die Remote-Steuerung des Fokus kann ich gerne verzichten – das geht auch gut über die Tasten am Mikroskop. Die besagten Programme wären:

Beide Programme konnte ich problemlos über den Synaptik Paketmanager einspielen.