Sonntag, 21. September 2014
Freitag, 11. Juli 2014
Grafiken mit TIKZ
TIKZ
Ich bin dazu übergegangen, die Zeichnungen meiner Skripten mit Tikz zu erstellen, da dies,
- gut aussieht
- perfekt zu latex passt
- 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!
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
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
nachsehen unter welchem Devicenamen Linux das Sorgenkind erkannt hat (hier sdb). Dann (nichts für Fensterklickser, die tagelang spielen wollen ...)auf der Commandline
eingeben - und - nach wenigen Sekunden ist die Disk wieder OK (Commandprompt erscheint und die Disk kann mit
gemountet und angesprochen werden - ohne Fingerbeschwerden vom Klicksen.... ;-) . Also wieder bestätigt: Spielzeuge gehören in die Sandkiste (= VirtualBox) und nicht in Arbeitsumgebungen ....
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
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.
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.
ffmpeg -f image2 -i ./file1%04d.jpg video.mpg
besser ist als Zielfile video.mp4.
Abonnieren
Posts (Atom)