Skip to content

LeoCAD unter Ubuntu kompilieren

Das beliebte Lego CAD Programm LeoCAD, wird unter der Open Source Lizenz GPL entwickelt und erfreut sich so großer Beliebtheit bei Lego-Bauern. In dieser kurzen Anleitung will ich erklären wie ihr LeoCAD unter Ubuntu benutzen könnt.
Leider gibt es für LeoCAD keine vorgefertigten *.deb Pakete, deswegen muss man es selber kompilieren.
Zuerst muss sicher gestellt werden das alle Pakete die allgemein für das Kompilieren erforderlich sind installiert sind. Man benötigt das Paket build-essential.

sudo apt-get install build-essential

Zudem werden für LeoCAD noch die Pakete libgtk2.0-dev und libgl1-mesa-dev benötigt.

sudo apt-get install libgtk2.0-dev libgl1-mesa-dev

Um den LeoCAD Quellcode herunterzuladen braucht man Subversion.

sudo apt-get install subversion

Als Nächstes braucht man den Quellcode von LeoCAD, diesem läd man mittels Subversion vom LeoCAD-Server in das Verzeichnis /tmp.

cd /tmp
svn co http://svn.leocad.org/tags/leocad-0.75.2 leocad
cd leocad

Nun liegt der Quellcode von LeoCAD im Verzeichnis /tmp/leocad und kann mit dem Befehl make kompiliert werden.

make

Nachdem LeoCAD erfolgreich kompiliert wurde findet man die ausführbare Datei leocad im Verzeichnis bin in /tmp/leocad. Damit LeoCAD direkt mit dem Befehl leocad von der Konsole aus gestartet werden kann muss es in das Verzeichnis /bin verschoben werden.

sudo mv bin/leocad /bin

Nun werden noch die Legosteine benötigt um LeoCAD zu starten. Die *.zip-Datei pieces läd man unter folgender Adresse runter: http://leocad.googlecode.com. Hier begibt man sich zu files und läd die aktuelle Version herunter. Die heruntergeladene *.zip-Datei wird in einen neuen Ordner entpackt.
Um LeoCAD nun von der Konsole aus zu starten gibt man folgendes ein:

leocad -l [VerzeichnisDerPieces]

Um LeoCAD nicht immer von der Konsole aus starten zu müssen kann man dafür einen Menüeintrag im Menü Anwendungen erstellen. Mit einem Rechtsklick auf die Menüleiste kann man den Dialog zur Menübearbeitung öffnen. Mit dem Button mit dem grünen Plus kann man einen neuen Menüeintrag erstellen. In das Textfeld Befehl gibt man nun den normalen Konsolenbefehl ein.

leocad -l [VerzeichnisDerPieces]

Nun kann man LeoCAD bequem über die grafische Oberfläche starten und benutzen.

PS: Eine kleine Anleitung von Sven Moritz Hein könnt ihr unter folgender Adresse als *.doc herunterladen: http://www.brickshelf.com/gallery/smhltec/NCM/leocadanleitung.doc

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Mit Emacs per FTP editieren

Möchte man über Emacs eine Datei auf einem FTP-Server verändern gibt man beim öffnen eines neuen Dokuments ([C]+[x] [C]+[f]) folgenden Pfad ein:

/ftp:<username>@<server>:<verzeichnis>

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Vektorebenen in Gnuplot zeichen

Gegeben sei die Ebene E in Parameterform:

   E:\vec{x}=\begin{pmatrix} 3 \\ -2  \\ 2 \end{pmatrix} + r \begin{pmatrix} 1 \\ -7  \\ 2 \end{pmatrix} + s \begin{pmatrix} -2 \\ -1  \\ 2 \end{pmatrix}

Zuerst wandelt man die Ebene E in die Koordinatenform um:

  E: x_1+\frac{1}{2}x_2-\frac{5}{4}x_3 = \frac{9}{2}

Und anschließend stellt man die Gleichung nach X3 um:

  x_3 = -\frac{4}{5}x_1 - \frac{2}{5}x_2 +\frac{18}{5}

Diese Gleichung kann man nun als Funktion e(x,y) in Gnuplot zeichen lassen. Da Gnuplot keine Brüche verarbeiten kann muss man die Brüche in Dezimalzahlen umrechnen.

e(x,y) = -0.8*x-0.4*y+3.6
set ticslevel 0
set xlabel 'x1'
set ylabel 'x2'
set zlabel 'x3'
set xrange [0:6]
set yrange [0:11]
set zrange [0:5]
splot e(x,y)

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

\itemize Aufzählzeichen verändern (keine Punkte)

Standardmäßig zählt die “\itemize”-Umgebung folgendermaßen auf:

Möchte man aber andere Zeichen verwenden oder keine Zeichen, kann man dies über ein “\renewcommand” einstellen. Um zum Beispiel den Voreingestellten Punkt auf der ersten Ebene gegen eine Quadrat erstezen gibt man vor “\begin{document}” den folgenden Befehl ein.

\renewcommand{\labelitemi}{$\blacksquare$}

Die Befehle “\labelitemX” sind mit kleinen römischen Ziffern durch nummeriert.

\labelitemi   % 1. Ebene
\labelitemii  % 2. Ebene
\labelitemiii % 3. Ebene
\labelitemiv  % 4. Ebene

Um das Aufzählungszeichen komplett zu unterdrücken, lässt man die zweite Klammer des “\renewcommand”-Befehls leer.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

MySQL ausgabe nach TIMESTAMP sortieren

Oft speichert man in MySQL Tabellen das Datum der Eintragung der jeweiligen Zeile, dies geschieht über das eingeben des Parameters “CURRENT_TIMESTAMP”. Möchte man seine Tabelle nun nach dem Datum der Eintragung sortieren kann braucht man eine zusätzliche Funktion, da der Befehl “ORDER BY” lediglich einen Stringvergleich macht. In Verbindung mit der Funktion “CAST” kann mit “ORDER BY” auch nach dem Datum sortiert werden. Folgendes Beispiel soll die Anwendung des Befehls verdeutlichen.

SELECT * FROM ´tabelle´ ORDER BY CAST(`datum` as DATE)

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

FTP-Backup unter Ubuntu (mit duplicity für Daten und MySQL-Datenbanken)

Wenn man einen Web-, V- oder Rootserver sein eigen nennt, dann sollte man sich auch immer gedanken über Backups machen. Wer kennt nicht die Horror-Geschichten aus diversen Foren in denen vom kompletten Datenverlust auf dem Web-, V-, oder Rootserver berichtet wird. Die allermeisten werden als Antwort erhalten “spiel das Backup” ein, nur wenn man nie ein Backup durchgeführt hat sind die Daten nicht mehr zu retten.
Die allermeisten Serveranbieter stellen zusätzlich zu dem Server ein FTP-Backup-Verzeichnis zur Verfügung. Unter Ubuntu gibt es ein sehr einfaches und schönes Paket welches Backups auf ein FTP-Verzeichnis übertragt. Der Name des Pakets ist “duplicity”.
Zu Beginn logt man sich über ein SSH Terminal als “root” auf den Server ein.

ssh root@[MeineServerAdresse]

Wenn man sich erfolgreich als “root” angemeldet hat legt man zunächst einen neuen Benutzer an. Für dieses Tutorial nennen wir den Benutzer “backupuser”.

adduser backupuser

Um sich später auch als “backupuser” per SSH anmelden zu können muss der neue Benutzer noch ein Passwort erhalten, dies wird mit folgendem Befehl durchgeführt.

passwd backupuser

Das neue Passwort muss zweimal hintereinander eingeben werden.
Nachdem der Benutzer angelegt wurde, muss nun das Backup-Programm “duplicity” installiert werden. Die Installation gestaltet sich unter Ubuntu wie bekannt sehr einfach mittels “apt-get”

apt-get install duplicity

Manchmal ist es notwendig noch das Programm “ncftp” zu installieren.

apt-get install ncftp

Der Benutzer “backupuser” muss nun noch Zugriffsrechte für “duplicity” erhalten. Dazu begibt man sich in die Datei “/etc/sudoers” . Die Datei “/etc/sudoers” öffnet man mit dem Befehl.

visudo

Im Editor fügt man nun folgende Zeile hinzu.

backupuser ALL=(root)NOPASSWD:/usr/bin/duplicity

Nun sind alle Vorbereitungen mit dem Benutzer “root” abgeschlossen. Man kann jetzt die SSH-Verbindung trennen.

logout

Anschließend baut man eine SSH-Verbindung mit dem Benutzer “backupuser” auf.

ssh backupuser@[MeineServerAdresse]

Um das Backup möglichst komfortabel zu gestalten, erstellt man ein Konsolen-Script. Man legt im home Verzeichnis des “backupuser” (“/home/backupuser”) mit dem Editor seiner Wahl (hier “vi”) die Datei “backup.sh” an.

vi backup.sh

Im Editor gibt man Folgendes ein.

export PASSPHRASE=[PasswortDesBackups]
export FTP_PASSWORD=[PasswortDesFTPSersers]
duplicity /home/backupuser/foo ftp://[FTPBenutzer]@[FTPServerAdresse]/foo
unset PASSPHRASE
unset FTP_PASSWORD

In dem vorangegangenen Konsolen-Script wird das Verzeichnis “/home/backupuser/foo” auf dem FTP-Server unter “/foo” gespeichert. Die Datei muss nun noch ausführbar gemacht werden, dies geschieht durch den Befehl.

chmod 700 backup.sh

Ein Backup ist nur sinnvoll, wenn es in gewissen Abständen immer wieder durchgeführt wird. Dafür wird ein sogenannter Cron-Job installiert. Cron-Jobs eines Benutzers werden in der “crontab” hinterlegt. Um die crontab-Datei mit seinem bevorzugten Editor zu öffnen, (z.B. “vi”) gibt man den folgenden Befehl ein.

EDITOR="vi"; export EDITOR

In die “crontab” gelangt man durch:

crontab -e

In die geöffnete Datei gibt man Folgendes ein.

0    3     * * *   sh /home/backupuser/backup.sh

Das Backup des Ordners wird von nun an täglich um 3.00 Uhr durchgeführt. Die genauen Einstellungen des Cron-Jobs können unter folgender Adresse http://wiki.ubuntuusers.de/Cron eingesehen werden.

Um eine MySQL-Datenbank über FTP zu sichern, muss das Programm “mysqldump” hinzugezogen werden. Als “root” begibt man sich wieder in die Datei “/etc/sudoers” und fügt die folgende Zeile hinzu.

backupuser ALL=(root)NOPASSWD:/usr/bin/mysqldump

Anschließend muss der Benutzer “backupuser” MySQL hinzugefügt werden. Man kann dies über eine Web-Oberfläche bewerkstelligen oder direkt über die Konsole (der Konsolen Benutzer muss alle Rechte von MySQL besitzen). Über die Konsole startet man zuerst den MySQL-Client “mysql”.

mysql --password="[PasswortDesMySQLBenutzers]"

Um den Benutzer “backupuser” innerhalb von “mysql” anzulegen, gibt man Folgendes ein.

mysql> CREATE USER 'backupuser'@'localhost' IDENTIFIED BY  '[PasswortVonBackupuser]';

Um “backupuser” nun alle Rechte in MySQL zu gewähren, gibt man den folgenden Befehl ein.

mysql> GRANT ALL PRIVILEGES ON * . * TO  'backupuser'@'localhost' IDENTIFIED BY  '[PasswortVonBackupuser]' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Nun kann man die SSH-Verbindung wieder trennen und mit “backupuser” wieder aufbauen. Anschließend wird die Datei “backup.sh” wieder geöffnet und etwas modifiziert, um auch die MySQL-Datenbank zu sichern.

# neu
mysqldump -p --user="backupuser" --password="[PasswortVonBackupuser]" [DatenbankName] > /home/backupuser/mysql/[DatenbankName].dump
 
export PASSPHRASE=[PasswortDesBackups]
export FTP_PASSWORD=[PasswortDesFTPSersers]
duplicity /home/backupuser/foo ftp://[FTPBenutzer]@[FTPServerAdresse]/foo
 
# neu
duplicity /home/backupuser/mysql ftp://[FTPBenutzer]@[FTPServerAdresse]/mysql
 
unset PASSPHRASE
unset FTP_PASSWORD

über “mysqldump” wird die gewünschte Datenbank in das Verzeichnis “/home/backupuser/mysql” kopiert und auf dem FTP-Server unter “/mysql” gesichert.

Beim ersten Durchlauf des Backups werden die gesamten eingebenen Daten gesichert. Bei jedem weiteren Durchlauf wird nur die Datendifferenz hinterlegt. Nach einiger Zeit kann es sehr lange dauern, bis die Differenz kalkuliert ist. Deswegen ist es sinnvoll alte Datenbestände zu löschen. Hierzu modifiziert man ein weiters mal das Konsolen-Script “backup.sh”.

mysqldump -p --user="backupuser" --password="[PasswortVonBackupuser]" [DatenbankName] > /home/backupuser/mysql/[DatenbankName].dump
 
export PASSPHRASE=[PasswortDesBackups]
export FTP_PASSWORD=[PasswortDesFTPSersers]
duplicity /home/backupuser/foo ftp://[FTPBenutzer]@[FTPServerAdresse]/foo
duplicity /home/backupuser/mysql ftp://[FTPBenutzer]@[FTPServerAdresse]/mysql
 
#neu
duplicity remove-older-than 1M --force ftp://[FTPBenutzer]@[FTPServerAdresse]/foo
duplicity remove-older-than 1M --force ftp://[FTPBenutzer]@[FTPServerAdresse]/mysql
 
unset PASSPHRASE
unset FTP_PASSWORD

Der Parameter “1M” steht für einen Monat. Im Folgenden sind die weiteren möglichen Parameter aufgelistet.

s = Sekunde
m = Minute
h = Stunde
D = Tag
W = Woche
M = Monat
Y = Jahr

“Niemand will Backup. Alle wollen Restore.” (Kristian Köhntopp zitiert einen Vertriebler)

Nun kommt der Abschnitt, den hoffentlich niemand je ausführen muss, der Restore. Der Restore gestaltet sich genauso simpel wie das Backup. Für den Restore erstellt man abermals ein Konsolen-Script und gibt Folgendes ein.

export PASSPHRASE=[PasswortDesBackups]
export FTP_PASSWORD=[PasswortDesFTPSersers]
duplicity --file-to-restore /foo ftp://[FTPBenutzer]@[FTPServerAdresse]/ /home/backupuser/
unset PASSPHRASE
unset FTP_PASSWORD

Hierbei wird das Verzeichnis “/foo” des FTP-Backup-Verzeichnisses in den das Verzeichnis “/home/backupuser” geschrieben. Mit dem MySQL-Backup funktioniert dies genau gleich. Um das MySQL-Dump wieder in MySQL zu überspielen gibt man den folgenden Befehl ein.

mysql -p --database=[DatenbankName] --password="[PasswortVonBackupuser]" < [DatenbankName].dump

Ich hoffe ich konnte mit diesem Tutorial manchem helfen seinen Server mit einem Backup zu versehen. Anregungen und Vorschläge können gerne in die Kommentare geschrieben werden.

Quellen:
Ubuntuusers zu Cron: http://wiki.ubuntuusers.de/Cron
Ubuntu.com zu duplicity: https://help.ubuntu.com/community/DuplicityBackupHowto
Manpage von mysql: http://www.manpagez.com/man/1/mysql/
Manpage von mysqldump: http://www.manpagez.com/man/1/mysqldump/
Manpage von duplicity: http://duplicity.nongnu.org/duplicity.1.html
Manpage von vi: http://enciclopedia.galeon.com/vi.html

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Das Euro-Zeichen (€) in LaTeX

Das Euro-Zeichen kann leider nicht als Klartext in ein LaTeX Dokument geschrieben werden, auch nicht mit Hilfe von UTF-8. Es gibt aber eine Möglichkeit das Euro-Zeichen in LaTeX zu verwenden.

Die Methode benutzt das folgende Paket.

\usepackage{textcomp}

Das Euro-Zeichen kann nun über den anschließenden Befehl verwendet werden.

\texteuro

Da das Euro-Zeichen in der Schriftart Computer Modern mit seinen Serifen etwas befremdlich aussieht sollte man es folgendermaßen Einsetzen.

\textsf{\texteuro}

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Scrollbare Tabellen in HTML

Wenn eine Tabelle in HTML breiter ist als das Browserfenster führt dies häufig zu unerwünschten Ergebnissen. Um die Tabelle innerhalb einer Seite scrollbar zu machen muss diese in ein div-Element mit den folgenden Attributen gesetzt werden.

<div style="overflow:auto; width:100px; height:100px">
 <table>
 ...
 </table>
</div>

Das obenstehende Beispiel veranlasst das alle Element innerhalb des div-Elements scrollbar werden sobald sie größer werden als die Attribute width und height.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Umlaute in Gnuplot (LaTeX)

Sobald man ein Diagramm auf deutsch mit Gnuplot erstellen will und eine Achsenbeschriftung mit Umlauten versehen möchte, stößt man an gewisse Grenzen. Gnuplot nimmt die Eingegebenen Umlaute zwar an, aber gibt sie nicht korrekt aus.
Das folgende Eingabebeispiel soll zeigen wie man Umlaute in Gnuplot verwenden kann.

set encoding iso_8859_1   # stellt den Zeichensatz auf iso_8859_1
set xlabel "\344\366\374" # eingabe der Umlaute über Steuerzeichen: äöü
set ylabel "\304\326\334" # : ÄÖÜ
plot x**2                 # Plot ausgeben

Die Ausgabe sieht nun folgendermaßen aus.

Die Umlaute werden über Steuerzeichen aus dem ISO 8859-1 Zeichensatz genommen. Folgende Steuerzeichen werden für Umlaute benötigt.

\344   # ä
\366   # ö
\374   # ü
\304   # Ä
\326   # Ö
\334   # Ü
\337   # ß ( scharfes S )

Die Steuerzeichen für die Buchstaben sind die Oktal Bytewerte des ISO 8859-1 Zeichensatzes. Eine Übersicht über den Zeichensatz gibt es hier (Oct ist das gesuchte Steuerzeichen).

Gnuplot in LaTeX

Sollte Gnuplot innerhalb einer LaTeX Umgebung eingesetzt werden (siehe Gnuplot in LaTeX einbinden), kann man den Zeichensatz von LaTeX auf UTF-8 stellen und die Umlaute als Klartext eingeben (siehe Umlaute und Sonderzeichen in LaTeX).

set terminal epslatex color
set xlabel "äöü"
set ylabel "ÄÖÜ"
plot x**2

Das Ergebnis in LaTeX sieht wie folgt aus.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Verschiedene BiBTeX Styles \bibliographystyle{}

Beim verfassen von wissenschaftlichen Arbeiten mit LaTeX ist die Literaturverwaltung BiBTeX nicht mehr weg zu denken. BiBTeX stellt schon zu beginn einige Zitierweisen zur Verfügung. Im Folgenden wird ein Teil der gängigen Zitierweisen vorgestellt.

Übersicht

BiBTeX Styles als PDF

LaTeX Code

abbrv

↑ zur Übersicht

abbrvnat

↑ zur Übersicht

acm

↑ zur Übersicht

alpha

↑ zur Übersicht

ametsoc

↑ zur Übersicht

amsalpha

↑ zur Übersicht

amsplain

↑ zur Übersicht

annotate

↑ zur Übersicht

annotation

↑ zur Übersicht

apalike

↑ zur Übersicht

cell

↑ zur Übersicht

gerabbrv

↑ zur Übersicht

geralpha

↑ zur Übersicht

gerapali

↑ zur Übersicht

gerplain

↑ zur Übersicht

gerunsrt

↑ zur Übersicht

humanbio

↑ zur Übersicht

ieeetr

↑ zur Übersicht

is-abbrv

↑ zur Übersicht

is-alpha

↑ zur Übersicht

is-plain

↑ zur Übersicht

is-unsrt

↑ zur Übersicht

jbact

↑ zur Übersicht

jtb

↑ zur Übersicht

nar

↑ zur Übersicht

phjcp

↑ zur Übersicht

plain

↑ zur Übersicht

siam

↑ zur Übersicht

unsrt

↑ zur Übersicht

unsrtnat

↑ zur Übersicht

LaTeX Code

*.tex

\documentclass[11pt,oneside,a4paper]{article}
 
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
 
\begin{document}
 
\section*{\flqq abbrv\frqq}
 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit \cite{watson1988molecular}. 
Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis 
dis parturient montes \cite{planck1964vorlesungen}, nascetur ridiculus mus.  \par
 
Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat 
massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu 
\cite{feynman2005feynman,planck1964vorlesungen}. 
 
\bibliographystyle{abbrv}
\bibliography{literatur}
 
\thispagestyle{empty}
 
\end{document}

literatur.bib

@book{feynman2005feynman,
  title={The Feynman Lectures on Physics},
  author={Feynman, R.P. and Leighton, R.B. and Sands, M.},
  number={Bd. 1},
  isbn={9780805390469},
  lccn={2005280842},
  url={http://books.google.com/books?id=3A9izgAACAAJ},
  year={2005},
  publisher={Addison-Wesley Longman, Incorporated}
}
 
@book{watson1988molecular,
  title={Molecular biology of the gene},
  author={Watson, J.D.},
  number={Bd. 2},
  isbn={9780805396140},
  lccn={88004115},
  series={Molecular Biology of the Gene},
  url={http://books.google.com/books?id=cM0fAQAAIAAJ},
  year={1988},
  publisher={Benjamin/Cummings Pub. Co.}
}
 
@book{planck1964vorlesungen,
  title={Vorlesungen über Thermodynamik},
  author={Planck, M. and P√§sler, M.},
  lccn={65056130},
  url={http://books.google.com/books?id=RnoiAQAAMAAJ},
  year={1964},
  publisher={W. de Gruyter}
}

↑ zur Übersicht

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.