Sonntag, 27. Dezember 2015

Versionsverwaltung


 Wenn sämtliche Files (hier mit der Erweiterung .tex und .tikz) in svn eingebunden, und die ID aktualisiert werden soll dann hilft:


svn add  . --force *.tex *.tikz
svn propset svn:keywords "Id" -R *.tex *.tikz

Dienstag, 4. November 2014

Maxima

Ist ein Computer Algebra System (CAS) welches in unserer Abteilung fächerübergreifend eingesetzt wird.

Für die Schulung im November 2014 stelle ich die folgenden Unterlagen zur Verfügung:

Auswertung einer Sprungantwort eines RC-Gliedes:
  • Maxima-Sitzung: zeitkonstante-bsp.pdf  
  • Datenfile : F0000CH2.CSV



Literatur: W.Haager, Computeralgebra mit Maxima, Hanser

Sonntag, 21. September 2014

Mathematischer Textsatz mit LaTeX

Eine kleine Übersicht zum math. Textsatz:

Formelsatzskriptum

Freitag, 11. Juli 2014

Grafiken mit TIKZ

TIKZ

Ich bin dazu übergegangen, die Zeichnungen meiner Skripten mit Tikz zu erstellen, da dies,
  1. gut aussieht
  2. perfekt zu latex passt
  3. und sich somit leicht warten lässt
In  weiterer Folge werde ich hier einige Bilder mit Sourcecode posten, damit leicht nachvollzogen werden kann wie man solche Zeichnungen erstellt, und ich eine Eselsbrücke für mich habe, wie einzelne Probleme gelöst werden können. Die Zeichnungen sind grundsätzlich "straight forward" und ohne Tricks gelöst. Oft wird es bessere Lösungen geben -> ich hoffe auf Hinweise/Erläuterungen in den Kommentaren.....

Aufbau einer IP-Adresse/Netzmaske:

 

Source: (ohne Kopf)





% Aufbau einer IP-Adresse Bitmuster - Dezimaldarstellung und Netzmaske
% $Id:$

\tikzstyle{ipmatrix}=[matrix of nodes,
nodes={rectangle,minimum size=4mm,very thick,draw=black!50,font=\ttfamily,
top color=white,bottom color=black!40}]
\tikzstyle{netmask}=[matrix of nodes, below = of ip,
nodes={rectangle,minimum size=4mm,very thick,draw=blue!50,font=\ttfamily,
top color=white,bottom color=blue!40}]
\tikzstyle{decmatrix}=[matrix of nodes, above = of ip,
nodes={rectangle, inner sep=0,minimum size=8mm, very thick, draw = black!50,
font=\ttfamily, top color=white, bottom color = black!40}]
\tikzstyle{nmmatrix}=[matrix of nodes, below = of nm,
nodes={rectangle, inner sep=0,minimum size=8mm, very thick, draw = blue!50,
font=\ttfamily, top color=white, bottom color = blue!40}]

\begin{tikzpicture}

% die Oktets
\matrix (ip)[ipmatrix] {1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 &
0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0\\};
\matrix (nm)[netmask] {1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 &
1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\};

\matrix (bin)[decmatrix] {192 & 168 & 1 & 10\\};

\matrix (nm-dec)[nmmatrix] {255 & 255 & 255 & 0\\};
% die Dezimalnummern


%Klammern über der Bitdarstellung
\begin{scope}[decoration={brace,amplitude=1.5mm}] %scope damit immer gleiche Formatierung
\draw [decorate] (ip-1-1.north west) -- (ip-1-8.north east);
\draw [decorate] (ip-1-8.north east) -- (ip-1-16.north east);
\draw [decorate] (ip-1-16.north east) -- (ip-1-24.north east);
\draw [decorate] (ip-1-24.north east) -- (ip-1-32.north east);
\end{scope}

%Klammern zwischen den Dezimalzahlen
\begin{scope}[decoration={brace, mirror,amplitude=1.5mm}] % mirror damit nach unten
\draw [decorate] (bin-1-1.south west) -- (bin-1-1.south east);
\draw [decorate] (bin-1-2.south west) -- (bin-1-2.south east);
\draw [decorate] (bin-1-3.south west) -- (bin-1-3.south east);
\draw [decorate] (bin-1-4.south west) -- (bin-1-4.south east);
\end{scope}
%Klammern über der Netzmaske
\begin{scope}[decoration={brace, mirror,amplitude=1.5mm}] %scope damit immer gleiche Formatierung
\draw [decorate] (nm-1-1.south west) -- (nm-1-8.south east);
\draw [decorate] (nm-1-8.south east) -- (nm-1-16.south east);
\draw [decorate] (nm-1-16.south east) -- (nm-1-24.south east);
\draw [decorate] (nm-1-24.south east) -- (nm-1-32.south east);
\end{scope}

%Klammern zwischen den Dezimalzahlen der Netmask
\begin{scope}[decoration={brace, amplitude=1.5mm}] % mirror damit nach unten
\draw [decorate] (nm-dec-1-1.north west) -- (nm-dec-1-1.north east);
\draw [decorate] (nm-dec-1-2.north west) -- (nm-dec-1-2.north east);
\draw [decorate] (nm-dec-1-3.north west) -- (nm-dec-1-3.north east);
\draw [decorate] (nm-dec-1-4.north west) -- (nm-dec-1-4.north east);
\end{scope}

% Strukturierungspunkte (um 1mm noch oben verschoben)
\shade[ball color=red] (bin-1-1.south east)++(0,1mm) circle(1mm);
\shade[ball color=red] (bin-1-2.south east)++(0,1mm) circle(1mm);
\shade[ball color=red] (bin-1-3.south east)++(0,1mm) circle(1mm);
% geschwungene Verbindungslinien
\begin{scope} [<->, out=270, in=90, shorten >=1.5mm, shorten <=1.5mm, looseness=.75]
\draw(bin-1-1) to (ip-1-4.north east);
\draw(bin-1-2) to (ip-1-12.north east);
\draw(bin-1-3) to (ip-1-20.north east);
\draw(bin-1-4) to (ip-1-28.north east);
\end{scope}

\begin{scope} [<->, in=270, out=90, shorten >=6.5mm, shorten <=1.5mm, looseness=1]
\draw(nm-dec-1-1) to (nm-1-4.north east);
\draw(nm-dec-1-2) to (nm-1-12.north east);
\draw(nm-dec-1-3) to (nm-1-20.north east);
\draw(nm-dec-1-4) to (nm-1-28.north east);
\end{scope}

%Strukturierungspunkte zwischen den Octetts der Netmask
\shade[ball color=red] (nm-1-8.south east) circle(1mm);
\shade[ball color=red] (nm-1-16.south east) circle(1mm);
\shade[ball color=red] (nm-1-24.south east) circle(1mm);

\shade[ball color=red] (nm-dec-1-1.south east)++(0,1mm) circle(1mm);
\shade[ball color=red] (nm-dec-1-2.south east)++(0,1mm) circle(1mm);
\shade[ball color=red] (nm-dec-1-3.south east)++(0,1mm) circle(1mm);


% Bereichsschattierung
\begin{pgfonlayer}[background] % Ebene wechseln
\draw [fill,green!40,path, fading=north](ip-1-1.south west) -- (ip-1-24.south east) -- (nm-1-24.north east) -- (nm-1-1.north west) -- cycle;
\draw [fill,yellow!40,path, fading=north](ip-1-24.south east) -- (ip-1-32.south east) -- (nm-1-32.north east) -- (nm-1-24.north east) -- cycle;
\end{pgfonlayer}

% Beschriftung
\node (ipdec) [left = of bin] {\textbf{Nodeadresse (IP)}};
\node (netdec) [left = of nm-dec] {\textbf{Netzmaske}};
\node (netadr) [below left = 2mm and -7cm of ip] {\textbf{Netzadresse}};
\node (netadr) [below right = 2mm and -3cm of ip] {\textbf{Hostadresse}};
%Strukturierungspunkte zwischen den Octetts der IP
\shade[ball color=red] (ip-1-8.south east) circle(1mm);
\shade[ball color=red] (ip-1-16.south east) circle(1mm);
\shade[ball color=red] (ip-1-24.south east) circle(1mm);

\end{tikzpicture}


Samstag, 20. Juli 2013

Kartenerstellung mit GMT

Will man Karten mit hochaufgelösten Küstenlinien ("full") erstellen, dann müssen die zur GMT-Version passenden Libraries nachinstalliert werden. Diese findet man (für die unterschiedlichen Versionen) auf

ftp://ftp.iris.washington.edu/pub/gmt/

Die Archive sind zu entpacken und in das Verzeichnis (Linux/Ubuntu) /usr/share/gmt/coast kopiert werden. Die Archive können dann gelöscht werden.

Tip: bei den Archiven und der GMT-Version auf das Filedatum schauen!

Sonntag, 10. März 2013

Bilder verkleinern unter Linux

Meine Nikon D5200 liefert im "L-Format" für ein Video zu große Bilder. Mein schwaches Notebook kann diese Datenmengen nicht mehr verdauen. Daher muss das Bildformat vor der Videoerstellung verkleinert werden.

Imagemagick eigenet sich sehr gut um Bilder schnell unter Linux zu verkleinern. Es  ist schnell mit:  

sudo apt-get install imagemagick  

installiert.
Wenn man viele Bilder verändern möchte verschiebt man diese in einen Ordner und öffnet ein Terminal-Fenster. Im Bilderordner können mit dem Befehl

mogrify -resize 1056x864 *.JPG
 
alle Bilder mit der Fileextension .JPG sofort umgewandelt werden.
Mit
ffmpeg -r 10 -f image2 -i pic%04d.JPG video.mpg

kann dann das Video erzeugt werden. 
Achtung wird ein mp4-Coder verwendet, dann müssen die Abmessungszahlen durch 2 teilber sein! Die Zahl bei Parameter r (hier 10) steuert wie "schnell" das Video läuft. damit kann der Zeitraffereffekt beeinflusst werden.


Dienstag, 27. März 2012

USB-Platte mit NTFS reparieren

Für den Datenaustausch mit Windoofen Systemen verwende ich eine NTFS-formatierte Festplatte. Meine "Bessere Hälfte" hat bei der letzten Datensicherung die Steckdosenleiste abgeschaltet, und somit das Filesystem beleidgt. Die Linux-Umgebung warnte mich, und meldete, einleuchtend und korrekt, dass die Platte unter "Winzigweich" eingebunden und mit chkdsk "behandelt" werden sollte.
Problem: das windoofe Sytem erkannte,  bzw. akzeptierte die Platte nicht mehr. Möglicherweise hätten unzählige Registry-Patches und undokumentierte (UNIX)-Funktionen das Problem behoben, aber zum Spielen verwende ich lieber eine SONY Playstation!
Lösung: UBUNTU-Linux starten (bei mir von der lokalen Festplatte des Notebooks) und dann mit

tail -n 50 /var/log/messages

nachsehen unter welchem Devicenamen Linux das Sorgenkind erkannt hat (hier sdb). Dann (nichts für Fensterklickser, die tagelang spielen wollen ...)auf der Commandline

ntfsfix /dev/sdb

eingeben - und - nach wenigen Sekunden ist die Disk wieder OK (Commandprompt erscheint und die Disk kann mit

sudo mount -t ntfs /dev/sdb1 /media/usb-disk 

gemountet und angesprochen werden - ohne Fingerbeschwerden vom Klicksen.... ;-) . Also wieder bestätigt: Spielzeuge gehören in die Sandkiste (= VirtualBox) und nicht in Arbeitsumgebungen ....

Montag, 5. September 2011

Linux Terminalbefehle

Soll ein von der Konsole gestarteter Befehl weiterlaufen, wenn die Terminalsitzung (z.B. ssh-Login) beendet wird, dann kann der Befehl mit


nohup befehl &

gestartet werden. Der Ampersand (&) schickt den Befehl in den Hintergrund damit noch auf der Konsole weitergearbeitet werden kann. So wird z.B. ein Befehlsabbruch verhindert, wenn ein Router oder eine Firewall eine Terminalsitzung schließt, weil lange keine Useraktion erfolgte.

Eine gute Übersicht über Terminalbefehle im Zusammenhang mit Prozessen ist unter

http://www.orgapedia.de/knowmore/index.php/Linux_PowerTrain/1.103.5

zu finden.

Samstag, 30. Juli 2011

video aus einzelnen files erstellen

Hierfür eignet sich ffmpeg hervorragend. Zu beachten ist nur, dass die Files OHNE "Löcher" beginnend mit 1 durchnummeriert sind! Hat man aus Formatsgründen ein hohe Startnummer, dann muss die Erstnummer im Filenamen angegeben werden, z.B. wenn das erste File den Namen file10001 hat dann lautet die Konvertierung:

ffmpeg -f image2 -i ./file1%04d.jpg video.mpg


besser ist als Zielfile video.mp4.

file-und Verzeichnisoperationen

Einige Kommandos die fallweise sehr nützlich sind:

find /home -name "*~" -exec rm "{}" \;

Dies bedeutet: "Lösche alle Dateien unterhalb des Verzeichnisses /home, deren Name auf eine Tilde endet".

 Über ein anderes Suchkriterium lassen sich mit find leere Dateien löschen:

find / -empty -ok rm "{}" \;
find . -empty -exec rm "{}" \;


Dateien über einer bestimmten größe finde:

ls -lahS $(find / -type f -size +100M)

findet alle Dateien grösser  100M (find und +) und gibt die Verzeichnisdaten aus (Suchergebnis mit $ an ls übergeben)

Mehrere Dateien in einem Verzeichnis umbenennen und fortlaufend nummerieren:

let counter=10000; for i in *.jpg; do let counter=counter+1; mv $i file$counter.jpg; done

Mit SEDs regulären Ausdrücken lässt sich sehr präzise formulieren, was man wie ändern möchte. Ein einfaches sed-Beispiel sieht so aus:

sed -e s/text1/text2/g datei.txt > datei.neu

Das Bedeutet so viel, wie: "Ersetze alle Vorkommen von text1 durch text2." Die geänderten Zeilen schreibt sed auf die Standardausgabe, von wo man sie mit einer Output-Umleitung (>) in eine neue Datei schreiben kann.


Mit

tail -f /var/log/messages

lassen sich die Ausgaben in die LogDatei "online" verfolgen 

Freitag, 28. Januar 2011

Backup auf USB-Festplatte

Um das Home-Verzeichnis auf eine USB-Festplatte zu sichern verwende ich folgendes Skript (quich & dirty aber leicht anzupassen und ohne Ballast):

#! /bin/bash

datum=$(date +%x)                       # damit ein Verzeichnis mit akt. Datum angelegt wird
ziel="/media/Iomega_HDD/"$datum
quelle="/home"                          # Achtung kein / als Abschluss!!


rsync -avb $quelle $ziel                # --delete bei echtem sync (achtung wegen Datum)

Dienstag, 11. Januar 2011

SVN-Plugin für Gnome Nautilus

um aus meiner UBUNTU-Installation dirket auf SVN zugreifen zu können muss ein Plugin im Nautilus installiert werden. Dies erfolgt mit:

sudo apt-get install nautilus-script-collection-svn


Die Freischaltung erfolgt mit:

nautilus-script-manager enable Subversion

Nautilus muss dann mit

killall nautilus


neu gestartet werden. Mit Rechtsklick erscheint dann ein neuer Statusmenüeintrag "Skripte"



Montag, 20. Dezember 2010

Karten für OruxMaps erstellen

Der Grundablauf ist in

gut dargestellt. Die Hürde hat man erst zu nehmen, wenn die Karten auf das Android kopiert werden.
Achtung, JEDE Karte muss unter
/sdcard/oruxmaps/mapfiles
abgespeichert werden. Die Karten "Mapnik 09" bis "Mapnik 17" im How-To dürfen NICHT unter
/sdcard/oruxmaps/mapfiles/mapnik
mit Unterverzeichnissen gespeichert werden!
Eine Aufteilung (wegen 4GB-Grenze vom FAT32) der genereirten SQLlite-Datenbank auf mehrere Kartenbereiche in einem Verzeichnis ist somit nicht möglich!

Donnerstag, 18. November 2010

Evolution zickt

Mein Evolution begrüßte mich heute mit der Meldung:
Nachricht konnte nicht an mbox-..........
.... irgendwas gehängt werden. Datei zu groß.

und damits noch spannender wird mit

Fehler beim Speichern von »~/.evolution/mail/local/Sent (mbox)«: 
Fehler beim Speichern von »~/.evolution/mail/local/Inbox (mbox)«: 
Zusammenfassung und Ordner stimmen nicht überein, sogar nach einem Datenabgleich
 
Nach einigem Suchen fand ich die Lösung mit:
  1. Evolution beenden
  2. cd ~/.evolution/mail/local
    löschen aller "*.cmeta"-Dateien
    löschen aller "*.ibex.index.data"-Dateien
    löschen aller  "*.ibex.index"-Dateien
  3. Evolution neu starten
Pkt. 2. wurde natürlich über ein Shell-Skript abgewickelt. Evolution start/stop musste 2x durchgeführt werden. Dann war die Welt wieder in Ornung.

  

Freitag, 12. November 2010

TeX

Da ich bei Neuinstallationen immer wider mit der Einstellung/Einrichtung der Tex-Umgebung kämpfe hier einige Hinweise (UBUNTU 10.04):

File floatflt.sty not found

Das Style-File muss händisch nachgeneriert und eingebunden werden.


Ich hab die Datei
floatflt.ins
latex floatflt.ins
sudo cp floatflt.sty /usr/share/texmf-texlive/tex/latex/floatflt/floatflt.sty
sudo texhash
sudo mktexlsr
eingebunden!

File bibgerm.sty nicht gefunden

(Installation mit der eingebundenen Pakteverwaltung!). Dieses Problem ist einfacher? durch Installation des Paketes texlive-lang-germ lösbar. Da ein kleiner Hinweis in der UBUNTU-Paketliste auf texlive-lang-all war habe ich dieses Paket gleich mitinstalliert (keine Ahnung, ob das notwendig war, aber ich möchte mich nicht weiterärgern..)

Hurraahh ... die Skripten sind wieder kompilierbar (zumindest die Netzwerktechnik). Meine alte Fedora-Installation war hier eindeutig zahmer.
Fedora hätte ich heute noch wenn nicht Nestroy's "Nepomuk-Tragödie" mit dem Schei.. Akonadiserver (der bei den Installationen in meiner Umgebung noch Nie (Stand Winter 2010) funktioniert hat, wäre.

Mittwoch, 10. November 2010

Apache2 unter UBUNTU

Der Apache Webserver sollte auf den Schulrechnern aktiv sein. Dieses Tutorial soll die rasche und Konfigurationskonforme Installation auf pers. Schülernotebooks ermöglichen.
Das folgende Tutorial wurde mit Ubuntu 10.04 durchgeführt., sollte aber auch mit anderen Versionen analog funktionieren.

Apache installieren
Die Installation gilt für Apache2. Zuerst sollte kontrolliert weden ob der Apache bereits installiert ist und läuft:


sudo /etc/init.d/apache2 status

Läuft der Apache kommt die Statusmeldung:


Apache is running (pid 1538).


Der Apache Webserver ist in so gut wie jeder Distribution über den Paketmanager verfügbar. Unter Ubuntu reichen folgende Befehle um den Apache zu installieren und zu starten.

sudo apt-get install apache2
sudo /etc/init.d/apache2 restart

Nach abgeschlossener Installation schnell den localhost direkt im Browser aufrufen um zu sehen, ob alles funktioniert. Die Installation ist erfolgreich wenn “It Works!” im Browser erscheint.
Dazu im Webbrowser folgende URL eingeben

http://127.0.0.1

It Works!


Erstellung eines cgi-bin directory's
Zur Erstellung dynamischer Websites wird die CGI-Funktionalität benötigt. Dafür muss die Apache Grundkonfiguration erweitert/geändert werden. Damit die Skripts mit den Serverkonfigurationen zusammenpassen muss zuerst passend das CGI-Verzeichnis angelegt werden mit

sudo mkdir /var/www/cgi-bin

Damit dem Apache diese Konfiguration bekannt ist, muss in den Konfigurationsdateien eine entsprechende Anpassung durchgeführt werden.(suche die "VirtualHost" tags).

Bei UBUNTU 10.04 ist die Änderung in/mit:

sudo nano /etc/apache2/sites-enabled/000-default

durchzuführen.
Die Datei hat die folgenden Zeilen zu enthalten (/usr/lib/cgi-bin im Original suchen und ersetzen... AddHandler-Zeile ergänzen)

 ScriptAlias /cgi-bin/ /var/www/cgi-bin/

    <Directory /var/www/cgi-bin/>
    Options ExecCGI
    AddHandler cgi-script cgi pl
    </Directory>

Getestet wir mit dem Perl-Skript test.pl:

  #!/usr/bin/perl 
  # File:  test.pl
  # Auth.: Erich Schubert
    print "Content-type: text/html\n\n";
    print "Hallo vom CGI!\n";

Damit das CGI unter der Apache-Umgebung läuft sind noch die passenden Dateirechte einzustellen

sudo chmod 755 test.pl




PHP5
Will jemand mit php5 arbeiten, dann sind folgende Pakte zu installieren:

sudo apt-get install php5 libapache2-mod-php5



MySQL
Im SS wird noch eine Datenbank benötigt. die Installation geschieht mit:

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

Dienstag, 19. Oktober 2010

Objekte für Sweet Home 3D erstellen

Das Objekt mit Pov-Ray erstellen (Beschreibungsdatei) (Pov-Ray-Editor /usr/local/xpe/bin/xpe)
Die Beschreibungsdatei mit RoseRay in das Format Wavefront (OBJ) exportieren
Die OBJ-Datei in Sweet Home 3D importieren

Donnerstag, 7. Oktober 2010

HTC Desire (Android)

Mit Hilfe des Apps SDrescan kann eine neue Ordnerstruktur in die Anwendungen ALBUM und MUSIK eingebunden werden. SDrescan sucht die gesamte SD-Karte nach passenden Dateien ab.
Die Medienprogramme wie “Alben” und “Musik” ignorieren beim Indizieren der Ordner grundsätzliche solche, in welchen eine Datei mit dem Dateinamen “.nomedia” enthalten ist. Es reicht also in Ordner, welche die Fotogalerie mit uninteressanten Bildchen überschwemmen eine leere Datei mit diesem Namen anzulegen.
Erstellung: im Terminal in das jeweilige Verzeichnis navigieren und mit
# touch .nomedia
die dummy Datei erstellen.

Dienstag, 5. Oktober 2010

Interessante Links

Blogs:
Werner Damböck

Lernsoftware
http://wiki.skolelinux.de/LernSoftware       gute Übersicht über freie Software für den Unterricht

Maxima
http://www.lehrer-online.de/maxima.php


Links von Kollegen
Damböck Mayer Sindl Speer Zehetner

Android Apps

Auf meinem Android (HTC Desire) verwende ich folgende Apps:
RealCalc              Taschenrechner mit Funktionen für Techniker
QuickSSHd:         ssh Daemon um per ssh aufs Handy zuzugreifen
Speed View          Auto-Tacho mit Trendaufzeichnung
Wasserwaage      Heimwerkerwerkzeug
WLAN Hotspot    Access-Point für Internetzugang vom Notebook
Genial Writing     praktischer Notizzettel für Handschrifteingabe
Call Meter NG     Datentransferübersicht (Telefon, SMS, Daten)
c:geo                    Geocaching
PeakAR                Berggipfelnamen mit Horizontbild anzeigen
Google Sky Map  Sternbilder in Blickrichtung anzeigen
Leo                       Fremdsprachen-Wörterbuch
AppsOranizer       Deinstall von Apps
TrekBuddy           Topo-Karten am Smartphone (bei mir durch OruxMaps ersetzt)
                             (benötigt für jeden Zoomlevel eine eigene "Karte")

OruxMaps             alle Zoomlevel liegen in EINEM Datenbankfile!
                              Trackaufzeichnung und Bewegungsstatistik,
                              Offline-Karten (wie zu generieren schreibe ich
                              noch in einem separaten Artikel