DIY Personal Fabrica1on Dokumenta1on Juergen Eckert Informa1k 7
How to Get Started? (again) 1. Projekt überlegen kann man es bereits kaufen? kein Projekt 2. Related work Verwandte Arbeiten als Grundlage nutzen 3. Durch Probleme/Herausforderungen lernen 4. Das Ziel nie aus den Augen verlieren 5. Dokumen1eren!!!
Dokumenta1on
Online Dokumenta1on Instructables (Anleitungen) Thingiverse (3D Objekte) Github (Source Code) Privater Webspace Blog *wiki Etc...
Lizenzen, Patente und Rechte Zugänglichkeit zu Schni`stellen, Soaware und Hardware Crea1ve Commons GNU (L)GPL MIT- Lizenz
Klassische Dokumenta1on Textverarbeitungsprogramm: WYSIWYG (Word, LibreOffice, etc) Textsatzsystem (LaTeX) Ziel: Setzen von Texten und mathema1schen Formeln
Geschichte TeX von Donald E. Knuth (Standford, 1978) altgriechisch τέχνη (téchne): Fähigkeit, Kunster1gkeit, Handwerk 300 fest Befehle (primi%ves) Defini1on eigener Makros (komplex) LaTeX von Leslie Lamport (1986) TeX- Macros Lamport TeX LaTeX 2 ε seit 1989
Publika1ons- Workflow Tradi1onell 1. Autor verfasst Manuskript 2. Buch- Designer ent- scheidet über Layout 3. Setzer erhält Anweisungen Automa%siert 1. Autor verfasst Manuskript 2. LaTeX: Fachwissen - > log. Struktur (Befehle) 3. TeX
Vor- und Nachteile ü Wenige, leicht verständliche Befehle ü Mathema1sche Formeln besonders einfach ü Strukturen (z.b. Literaturverzeichnisse) wenig Aufwand ü Aktualisieren von Querverweisen automa1sch ü Lange, komplizierte Dokumente zuverlässig Workflow stark unterschiedlich zu WYSIWYG
Quelle Tutoriell teilweise nach Marco Daniel et al.: LATEX 2ε- Kurzbeschreibung (V3.0 1.7.12) Tobias Oe1ker et al.: The Not So Short Introduc1on to LATEX2ε (V5.03 25.4.14)
Los geht s 1. doku.tex erstellen 2. > pdflatex doku.tex oder > latexmk pvc pdf doku.tex (Autogenerierung) Automa1sche Preview im Texteditor möglich z.b. Texmaker
doku.tex 1/3 Textdatei Unsichtbare Zeichen (Space ( ), \t, \n) werden einheitlich als Space behandelt Mehrere - > ein Leerzeile zwischen Textzeilen - > Ende Absatz Mehrere Leerzeilen - > eine Leerzeile
doku.tex 2/3 Kommentare von % bis \n Befehle starten mit \ (oder Sonderzeichen) Space nach befehlen {} oder \ Case sensi1v Parameter {parameter1, parameter2} [op1onal1, op1onal2] Index: z.b. h`p://www.weinelt.de/latex/
doku.tex 3/3 \documentclass[11pt,a4paper,ngerman]{article} \usepackage[utf8]{inputenc} %UTF8 input file \usepackage[t1]{fontenc} \usepackage[ngerman]{babel} %Umlaute,Silbentrennung \date{\today} \author{j.~eckert} \title{diy: Sample TeX File} \begin{document} \maketitle \tableofcontents \section{start} Hier beginnt mein schönes Werk... \section{ende}... und hier endet es. \end{document} Preamble Body
Dokumentklassen \documentclass[<op1onen>]{<klasse>} Vereinbarungen über das Layout <klasse> exakt ein Parameter Vordefinierte aus der Distribu1on oder.cls File im Dokumenten Root DIY Project Doku mit IEEEtran
Eingabezeichen Erlaubt: a...z A...Z 0...9. : ;,?! ( ) [ ] - / * @ + = Spezialbedeutung: (teilw. in Mathe Umgebung erlaubt) $ & % # _ { } ~ ^ \ < > Escapebar: \$ \& \% \# \_ \{ \} \~{} \^{} \textbackslash
Schriaen 1/2 Manuelle Silbentrennung: \hyphenation{} Fe` \textbf{...} Kursiv \textit{...} \par = neuer Absatz Leerzeile
Schriaen 2/2
Listen Umgebung \begin{itemize} \item... \item... \begin{itemize} \item... \item... \end{itemize} \item... \end{itemize} Numeriering: enumerate Eigene Beschreibung: description \item[marker]
Tabellen Umgebung % \usepackage{booktabs} \begin{tabular}[t]{rl} \toprule Wert & Zahlensystem \\ \midrule 7C0 & hexadezimal \\ 3700 & oktal \\ 11111000000 & binär \\ 1984 & dezimal \\ \bottomrule \end{tabular}
Mathema1sche Formlen equation Umgebung oder $... $ \[... \]
Bilder / Label / Verweise %\usepackage{cleveref} %\usepackage{graphicx} \begin{figure} \centering \includegraphics[width=.3\textwidth]{logo} \caption{fablab Logo} \label{fig:fl} \end{figure} \Cref{fig:fl} zeigt...
Literaturangaben Besser: Nutzung einer Datenbank (.bib File) Verabeitung mi`els BibTEX oder biber
Presenta1on mit LaTeX \documentclass{beamer} \begin{document} \begin{frame} This is my first slide. \end{frame} \begin{frame} This is my second (and last) slide. \end{frame} \end{document}
PGF/TikZ %\usepackage{tikz} \begin{tikzpicture} \node[draw,circle](a) {A}; \node[draw,circle,right of=a, node distance=2cm](b) {B}; \draw[->] (a) to[out=45,in=135] node[above]{nach} (b); \end{tikzpicture}...and MUCH MORE...
GIT Tutoriell nach: Christoph Sommer, Uni Paderborn Model Management with Git
Mo1va1on So nicht cp src/models/network/ipv4.c src/models/network/ipv4.bak cp src/models/transport/tcp.c src/models/network/tcpip.westwood Besser, aber immer noch schlecht cp -ax src src.bak cp ax src src.bak.old Fast rich1g cp -ax project project.2009-12-15 cp -ax project project.2009-12-16 cp -ax project project.2009-12-17 diff -Naur../project.2009-12-{16,15} patch Ideal Dateisystem das (zuverlässig) die Historie speichert Op1miert zum sichern/wiederherstellen von versionierten Text Dateien Git, svn, hg (Mercurial),...
Einleitung Historie Entwickler: Linus Torvalds Maintainer: Junio Hamano (Stand 10/2014) Free and Open Source Soaware Projekte: Linux Kernel, Git, Android, Eclipse, Debian, Perl, Ruby on Rails, PostgreSQL, Gnome, KDE, Qt, X.org,... What is git? 3- Buchstaben Wort das noch nicht unter Linux verwendet wird Git = Blödmann (bri1sche Umgangssprache) Dateisystem das (zuverlässig) die Historie speichert + loses, geschichtete Sammlung an kleinen Skripten = Verteiltes Versionskontrollsystem
Workflow Repository Local Working Copy Stage / Index Repository add commit checkout / reset Repository
Reise in das git Repository ( und zurück) blob Hello Earth README doc/readme blob Hello World blob.png..ihdr.. blob #!/bin/sh README tree doc tree doc logo.png configure.sh src tree tree tree tweak logo index commit commit fix docs fix docs remove doc commit combine commit commit refs/heads/master refs/heads/greatdocs refs/remotes/origin/master refs/tags/v1.0 tag HEAD blob add docs tweak logo first rls.phony: all Makefile
Reise in das git Repository ( und zurück) d c greatdocs fix docs logo.png e master origin/master combine b v1.0 remove doc tweak logo commit fix docs commit combine refs/heads/greatdocs refs/remotes/origin/master HEAD a add docs refs/tags/v1.0 commit add docs commit tweak logo tag first rls
Try it h`p://try.github.io/ h`p://pco`le.github.io/learngitbranching/ h`p://git- scm.com/book h`p://git- scm.com/documenta1on
Common git commands Working Copy e master e origin/master d d % git add README c v1.0 b a PDF? See backup slides
Common git commands Working Copy f e master e origin/master d d % git commit c v1.0 b a PDF? See backup slides
Common git commands Working Copy e e master e origin/master d d % git commit - - amend c v1.0 b a PDF? See backup slides
Common git commands Working Copy f master e e origin/master d d % git reset - - hard e c v1.0 b a PDF? See backup slides
Common git commands Working Copy f master e greatdocs e origin/master d d % git branch greatdocs e c v1.0 b a PDF? See backup slides
Common git commands Working Copy f master e greatdocs e origin/master d d % git checkout greatdocs c v1.0 b a PDF? See backup slides
Common git commands % git remote add origin /some/path/proj.git origin Working Copy local e master d d master c v1.0 c v1.0 b b a a PDF? See backup slides
Common git commands % git fetch origin master origin Working Copy local e master origin/master d d master c v1.0 c v1.0 b b a a PDF? See backup slides
Common git commands % git push origin master:master local Working Copy origin e master d origin/master d master c v1.0 c v1.0 b b a a PDF? See backup slides
Common git commands Working Copy m e master e origin/master d d % git merge origin/master c v1.0 b a PDF? See backup slides
Common git commands Working Copy e e master e origin/master d d d % git rebase origin/master c v1.0 b a PDF? See backup slides NEVER REBASE A PUBLIC BRANCH
Bes1mmen einer Revision Vollständiger SHA1 Hashwert dae86e1950b1277e545cee180551750029cfe735 Eindeu1ger Präfix eines SHA1 Hashwerts dae86e Symbolischer Referenzname master (Suche in.git/master, refs/master, refs/(tags heads remotes)/master, refs/remotes/master/head) git log - - grep KEYWORD Viele mehr... RTFM
Interfaces
git gui
Bewährtes Vorgehen Zu aller erst: git konfigurieren git config - - global user.name Mein Name git config - - global user.email my.name@example.com advice.detachedhead, rerere.enabled, Richtlinien wie und was zu commi8en ist: Möglichst oa Fehler schnell zu revidieren Nicht warten bis der Code fer1g ist! Jeder Commit änder exakt eine Sache (keine this changes everything ) Der Code im Repository kompiliert Jeder Branch/Tag hat einen Zweck und einen Besitzer Feature/Release/Version Jede Datei im Repository wird benö1gt um das Projekt zu bauen keine Objekt- oder Temp.- Dateien, etc... Jeder Commit hat eine klare, präzise Betreffzeile
Houston, we have a problem... Ungewollte Commits rückgängig machen: HEAD auf früheren Commit setzen git reset - - soa master^ Alles aus dem Index enternen; HEAD auf früheren Commit setzen git reset master^ Alles aus dem Index enternen; HEAD auf früheren Commit setzen; Working- tree iden1sch zu neuen HEAD machen git clean - fdx git reset - - hard master^ Zu weit! Zurück in die Zukuna... git clean - fdx git reset - - hard master@{19:45} Verdammt, der ganze Branch ist weg! Wühle durch den Müll... git reflog awk {print $1} xargs gitk
Übung 1. Git Repository anlegen 2. LaTeX Präsenta1on für Projektvorlschlag darin erstellen Präsenta1on: max 5 min max 5 Folien
Nächstes mal... Mechanik Schneideverfahren (Lasercu`er) 2.5 D Workflow, STL, GCODE, STEP, etc später...
Backup Slides
Git branch (bugfix) % git init % git add FILE % git commit Working Copy a master
Git branch (bugfix) % git commit % git tag a v1.0 % git branch bugfix Working Copy b master bugfix v1.0 a
Git branch (bugfix) % git checkout bugfix % git commit Working Copy d bugfix b v1.0 master a
Git branch (bugfix) % git checkout master % git commit Working Copy d bugfix d master b v1.0 a
Git branch (bugfix) % git checkout master % git merge bugfix % git commit Working Copy e master d bugfix d b v1.0 a