56
DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Embed Size (px)

Citation preview

Page 1: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

DIY

Personal Fabrication

Dokumentation

Juergen Eckert – Informatik 7

Page 2: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 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 lernen4. Das Ziel nie aus den Augen verlieren5. Dokumentieren!!!

Page 3: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Dokumentation

Page 4: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Online Dokumentation

• Instructables (Anleitungen)• Thingiverse (3D Objekte)• Github (Source Code)

• Privater Webspace– Blog– *wiki

• Etc...

Page 5: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Lizenzen, Patente und Rechte

• Zugänglichkeit zu Schnittstellen, Software und Hardware

• Creative Commons• GNU (L)GPL• MIT-Lizenz

Page 6: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Klassische Dokumentation

• Textverarbeitungsprogramm: WYSIWYG(Word, LibreOffice, etc)

• Textsatzsystem (LaTeX)Ziel: Setzen von Texten und mathematischen Formeln

Page 7: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Geschichte

• TeX von Donald E. Knuth (Standford, 1978)– altgriechisch τέχνη (téchne):

Fähigkeit, Kunstfertigkeit, Handwerk– 300 fest Befehle (primitives)– Definition eigener Makros (komplex)

• LaTeX von Leslie Lamport (1986)– TeX-Macros– Lamport TeX– LaTeX 2ε seit 1989

Page 8: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Publikations-Workflow

1. Autor verfasst Manuskript

2. Buch-Designer ent-scheidet über Layout

3. Setzer erhält Anweisungen

1. Autor verfasst Manuskript

2. LaTeX: Fachwissen -> log. Struktur (Befehle)

3. TeX

Traditionell Automatisiert

Page 9: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Vor- und Nachteile

Wenige, leicht verständliche BefehleMathematische Formeln besonders einfachStrukturen (z.B. Literaturverzeichnisse) wenig

AufwandAktualisieren von Querverweisen automatischLange, komplizierte Dokumente zuverlässig

Workflow stark unterschiedlich zu WYSIWYG

Page 10: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Quelle

• Tutoriell teilweise nach – Marco Daniel et al.:

LATEX 2ε-Kurzbeschreibung (V3.0 1.7.12)

– Tobias Oetiker et al.:The Not So Short Introduction to LATEX2ε (V5.03 25.4.14)

Page 11: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Los geht‘s

1. doku.tex erstellen2. > pdflatex doku.tex

oder> latexmk –pvc –pdf doku.tex(Autogenerierung)

• Automatische Preview im Texteditor möglichz.B. Texmaker

Page 12: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

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

Page 13: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

doku.tex 2/3

• Kommentare von „%“ bis „\n“• Befehle starten mit „\“ (oder Sonderzeichen)• Space nach befehlen „{} “ oder „\ “␠ ␠• Case sensitiv• Parameter– „{parameter1, parameter2}“– „[optional1, optional2]“

• Index: z.B. http://www.weinelt.de/latex/

Page 14: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

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

Page 15: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Dokumentklassen

\documentclass[<optionen>]{<klasse>}• Vereinbarungen über das Layout• <klasse> exakt ein Parameter• Vordefinierte aus der Distribution oder

.cls File im Dokumenten Root

→ DIY Project Doku mit IEEEtran

Page 16: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Eingabezeichen

• Erlaubt:a...z A...Z 0...9 . : ; , ? ! ‘ ’( ) [ ] - / * @ + =

• Spezialbedeutung: (teilw. in Mathe Umgebung erlaubt)

$ & % # _ { } ~ ^ \ “ | < >• Escapebar:

\$ \& \% \# \_ \{ \} \~{} \^{} \textbackslash …

Page 17: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Schriften 1/2

• Manuelle Silbentrennung: \hyphenation{}

• Fett \textbf{...}• Kursiv \textit{...}

\par = neuer Absatz Leerzeile≙

Page 18: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Schriften 2/2

Page 19: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

ListenUmgebung

\begin{itemize}\item ...\item ...\begin{itemize}

\item ...\item ...

\end{itemize}\item ...

\end{itemize}

• Numeriering: enumerate• Eigene Beschreibung:• description• \item[marker]

Page 20: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

TabellenUmgebung

% \usepackage{booktabs} \begin{tabular}[t]{rl}

\topruleWert & Zahlensystem \\\midrule7C0 & hexadezimal \\ 3700 & oktal \\ 11111000000 & binär \\ 1984 & dezimal \\ \bottomrule

\end{tabular}

Page 21: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Mathematische Formlen

• equation Umgebung oder $ ... $ \[ ... \]

Page 22: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

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...

Page 23: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Literaturangaben

Besser:• Nutzung einer Datenbank (.bib File)• Verabeitung mittels BibTEX oder biber

Page 24: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Presentation 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}

Page 25: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

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...

Page 26: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

GIT

• Tutoriell nach: Christoph Sommer, Uni Paderborn

Model Management with Git

Page 27: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Motivation

• 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 richtig…– 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– Optimiert zum sichern/wiederherstellen von versionierten Text

Dateien– Git, svn, hg (Mercurial), ...

Page 28: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Einleitung

• Historie– Entwickler: Linus Torvalds– Maintainer: Junio Hamano (Stand 10/2014)

– Free and Open Source Software– 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“ (britische Umgangssprache)– Dateisystem das (zuverlässig) die Historie speichert

+ loses, geschichtete Sammlung an kleinen Skripten= Verteiltes Versionskontrollsystem

Page 29: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Workflow

Local

Stage / IndexWorking Copy fetch

push

add commit

Repository

Repository

Repositorycheckout / reset

Page 30: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

README

index

“fix docs”

Reise in das git Repository (…und zurück)blob

Hello Earth

blob

Hello World

blob

.PNG..IHDR..

blob

#!/bin/sh

blob

.PHONY: all

tree

tree

tree

tree

commit

“fix docs”

commit

“remove doc”

commit

“combine”

commit

“add docs”

commit

“tweak logo”

tree

refs/remotes/origin/master

refs/heads/greatdocs

refs/heads/master

refs/tags/v1.0

tag

“first rls”

HEA

D

src

doc

configure.sh

Makefile

README

logo.png

doc

doc/README

tweak logo

Page 31: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Reise in das git Repository (…und zurück)

commit

“fix docs”

commit

“combine”

commit

“add docs”

commit

“tweak logo”

refs/remotes/origin/master

refs/heads/greatdocs

refs/tags/v1.0

tag

“first rls”

HEA

D

doc

logo.png

a

d

c

e

b

greatdocs

origin/master

master

v1.0

fix docs

remove doc

combine

tweak logo

add docs

Page 32: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Try it

• http://try.github.io/• http://pcottle.github.io/learnGitBranching/• http://git-scm.com/book• http://git-scm.com/documentation

Page 33: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Common git commands

• % git add README

a

d

c

e

b

origin/master

v1.0

d’

e’master

Working Copy

PDF? See backup slides

Page 34: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

f

Common git commands

• % git commit

a

d

c

e

b

origin/master

v1.0

d’

e’master

Working Copy

PDF? See backup slides

Page 35: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Common git commands

• % git commit --amend

a

d

c

e

b

origin/master

v1.0

d’

e’mastere’

Working Copy

PDF? See backup slides

Page 36: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

f

Common git commands

• % git reset --hard e

a

d

c

e

b

origin/master

v1.0

d’

e’

master

Working Copy

PDF? See backup slides

Page 37: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

f

Common git commands

• % git branch greatdocs e

a

d

c

e

b

origin/master

v1.0

d’

e’

master

Working Copy

greatdocs

PDF? See backup slides

Page 38: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

f

Common git commands

• % git checkout greatdocs

a

d

c

e

b

origin/master

v1.0

d’

e’

master

Working Copy

greatdocs

master

greatdocs

PDF? See backup slides

Page 39: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Common git commands

• % git remote add origin /some/path/proj.git

a

d

c

b

v1.0

master

a

d

c

e

b

v1.0

mastere

local“origin”Working Copy

PDF? See backup slides

Page 40: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

ee

Common git commands

• % git fetch origin master

a

d

c

b

v1.0

master

a

d

c

b

origin/master

v1.0

master

local“origin”Working Copy

PDF? See backup slides

Page 41: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

ee

Common git commands

• % git push origin master:master

a

d

c

b

v1.0

master

a

d

c

b

origin/master

v1.0

master

“origin”localWorking Copy

PDF? See backup slides

Page 42: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Common git commands

• % git merge origin/master

a

d

c

e

b

origin/master

v1.0

d’

e’

m

master

Working Copy

PDF? See backup slides

Page 43: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

• % git rebase origin/master

d’’

e’’

d

e

Common git commands

a

c

b

origin/master

v1.0

d’

e’master

Working Copy

NEVER REBASE A PUBLIC BRANCHPDF? See backup slides

Page 44: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Bestimmen einer Revision

• Vollständiger SHA1 Hashwertdae86e1950b1277e545cee180551750029cfe735

• Eindeutiger Präfix eines SHA1 Hashwertsdae86e

• Symbolischer Referenznamemaster(Suche in .git/master, refs/master, refs/(tags|heads|remotes)/master, refs/remotes/master/HEAD)

• git log --grep KEYWORD• Viele mehr... RTFM

Page 45: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Interfaces

Page 46: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

git gui

Page 47: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Bewährtes Vorgehen• Zu aller erst: git konfigurieren

– git config --global user.name ”Mein Name”– git config --global user.email [email protected]– advice.detachedHead, rerere.enabled, …

• Richtlinien wie und was zu committen ist:– Möglichst oft

• Fehler schnell zu revidieren• Nicht warten bis der Code „fertig“ 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ötigt um das Projekt zu bauen • keine Objekt- oder Temp.-Dateien, etc...

– Jeder Commit hat eine klare, präzise Betreffzeile

Page 48: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Houston, we have a problem...

• Ungewollte Commits rückgängig machen:– HEAD auf früheren Commit setzen

• git reset --soft master^– Alles aus dem Index entfernen; HEAD auf früheren Commit setzen

• git reset master^– Alles aus dem Index entfernen; HEAD auf früheren Commit

setzen; Working-tree identisch zu neuen HEAD machen• git clean -fdx• git reset --hard master^

– Zu weit! Zurück in die Zukunft...• 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

Page 49: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Übung

1. Git Repository anlegen2. LaTeX Präsentation für Projektvorlschlag

darin erstellen

Präsentation:• max 5 min• max 5 Folien

Page 50: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Nächstes mal...

• Mechanik– Schneideverfahren (Lasercutter)– 2.5 D

Workflow, STL, GCODE, STEP, etc später...

Page 51: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Backup Slides

Page 52: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Git branch (bugfix)

• % git init• % git add FILE• % git commit

a master

Working Copy

Page 53: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Git branch (bugfix)

• % git commit• % git tag –a v1.0• % git branch bugFix

a

b v1.0master

Working Copy

bugFix

Page 54: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Git branch (bugfix)

• % git checkout bugFix• % git commit

a

d

b v1.0

master

Working Copy

bugFix

Page 55: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Git branch (bugfix)

• % git checkout master• % git commit

a

d

b v1.0

d’bugFix

Working Copy

master

Page 56: DIY Personal Fabrication Dokumentation Juergen Eckert – Informatik 7

Git branch (bugfix)

• % git checkout master• % git merge bugFix• % git commit

a

d

e

b v1.0

d’

master

Working Copy

bugFix