@@ -35,16 +35,22 @@ | |||
\bibstyle{alpha} | |||
\citation{*} | |||
\bibdata{references/References_2} | |||
\bibcite{Bootstrap}{{BA11}{}{{}}{{}}} | |||
\bibcite{Oracle}{{Coo10}{}{{}}{{}}} | |||
\bibcite{Dixit}{{Dix18}{}{{}}{{}}} | |||
\bibcite{Schlede}{{FMS17}{}{{}}{{}}} | |||
\bibcite{Python}{{Fou18}{}{{}}{{}}} | |||
\bibcite{Gaynor}{{Gay10}{}{{}}{{}}} | |||
\bibcite{Herzog}{{Her16}{}{{}}{{}}} | |||
\bibcite{King}{{Kin17}{}{{}}{{}}} | |||
\bibcite{Leipner}{{Lei13}{}{{}}{{}}} | |||
\bibcite{Ndukwe}{{Ndu17}{}{{}}{{}}} | |||
\@writefile{toc}{\contentsline {chapter}{Referenzen}{19}{chapter*.11}} | |||
\bibcite{Ong}{{Ong18}{}{{}}{{}}} | |||
\bibcite{Otto}{{Ott11}{}{{}}{{}}} | |||
\bibcite{Shabda}{{Sha09}{}{{}}{{}}} | |||
\bibcite{Shelest}{{She09}{}{{}}{{}}} | |||
\@writefile{toc}{\contentsline {chapter}{Referenzen}{19}{chapter*.11}} | |||
\bibcite{Solutions}{{Sol17}{}{{}}{{}}} | |||
\bibcite{Timm}{{Tim15}{}{{}}{{}}} | |||
\bibcite{Weigend}{{Wei17}{}{{}}{{}}} | |||
\providecommand\NAT@force@numbers{}\NAT@force@numbers |
@@ -1,4 +1,16 @@ | |||
\begin{thebibliography}{Ndu17} | |||
\begin{thebibliography}{FMS17} | |||
\bibitem[BA11]{Bootstrap} | |||
Twitter~Inc Bootstrap~Authors. | |||
\newblock Bootstrap repository. | |||
\newblock 2011. | |||
\newblock https://github.com/twbs/bootstrap. | |||
\bibitem[Coo10]{Oracle} | |||
Oracle Cooperation. | |||
\newblock About ldap. | |||
\newblock 2010. | |||
\newblock https://docs.oracle.com/cd/E19182-01/820-6573/6nht2e5a4/index.html. | |||
\bibitem[Dix18]{Dixit} | |||
Chitrank Dixit. | |||
@@ -7,6 +19,13 @@ Chitrank Dixit. | |||
\newblock | |||
https://www.datacamp.com/community/tutorials/pep8-tutorial-python-code. | |||
\bibitem[FMS17]{Schlede} | |||
Andreas~Donner Frank-Michael~Schlede, Thomas~Bär. | |||
\newblock Was ist ldap (lightweight directory access protocol)? | |||
\newblock 2017. | |||
\newblock | |||
https://www.ip-insider.de/was-ist-ldap-lightweight-directory-access-protocol-a-581204/. | |||
\bibitem[Fou18]{Python} | |||
Python~Software Foundation. | |||
\newblock Virtual environments and packages. | |||
@@ -56,6 +75,13 @@ Selwin Ong. | |||
\newblock 2018. | |||
\newblock https://github.com/ui/django-post\_office/blob/master/AUTHORS.rst. | |||
\bibitem[Ott11]{Otto} | |||
Mark Otto. | |||
\newblock Bootstrap from twitter. | |||
\newblock 2011. | |||
\newblock | |||
https://blog.twitter.com/developer/en_us/a/2011/bootstrap-twitter.html. | |||
\bibitem[Sha09]{Shabda} | |||
Shabda. | |||
\newblock Understanding decorators. | |||
@@ -70,10 +96,23 @@ Alexy Shelest. | |||
\newblock | |||
https://www.codeproject.com/Articles/42830/Model-View-Controller-Model-View-Presenter-and-Mod. | |||
\bibitem[Sol17]{Solutions} | |||
Mindfire Solutions. | |||
\newblock Advantages and disadvantages of python programming language. | |||
\newblock 2017. | |||
\newblock | |||
https://medium.com/@mindfiresolutions.usa/advantages-and-disadvantages-of-python-programming-language-fd0b394f2121. | |||
\bibitem[Tim15]{Timm} | |||
Damon Timm. | |||
\newblock django-hitcount documentation. | |||
\newblock 2015. | |||
\newblock https://django-hitcount.readthedocs.io/en/latest/overview.html. | |||
\bibitem[Wei17]{Weigend} | |||
Michael Weigend. | |||
\newblock {\em Python GE-PACKT}. | |||
\newblock 2017. | |||
\newblock Kapitel 23.1. | |||
\end{thebibliography} |
@@ -15,7 +15,14 @@ Repeated entry---line 78 of file ../references/References_2.bib | |||
: @article{Ong | |||
: , | |||
I'm skipping whatever remains of this entry | |||
Repeated entry---line 127 of file ../references/References_2.bib | |||
: @article{Otto | |||
: , | |||
I'm skipping whatever remains of this entry | |||
Warning--empty journal in Bootstrap | |||
Warning--empty journal in Oracle | |||
Warning--empty journal in Dixit | |||
Warning--empty journal in Schlede | |||
Warning--empty journal in Python | |||
Warning--empty journal in Gaynor | |||
Warning--empty journal in Herzog | |||
@@ -23,48 +30,51 @@ Warning--empty journal in King | |||
Warning--empty journal in Leipner | |||
Warning--empty journal in Ndukwe | |||
Warning--empty journal in Ong | |||
Warning--empty journal in Otto | |||
Warning--empty journal in Shabda | |||
Warning--empty journal in Shelest | |||
Warning--empty journal in Solutions | |||
Warning--empty journal in Timm | |||
You've used 11 entries, | |||
Warning--empty publisher in Weigend | |||
You've used 17 entries, | |||
2543 wiz_defined-function locations, | |||
626 strings with 6410 characters, | |||
and the built_in function-call counts, 3011 in all, are: | |||
= -- 297 | |||
> -- 88 | |||
< -- 11 | |||
+ -- 22 | |||
- -- 22 | |||
* -- 145 | |||
:= -- 533 | |||
add.period$ -- 44 | |||
call.type$ -- 11 | |||
change.case$ -- 55 | |||
chr.to.int$ -- 11 | |||
cite$ -- 22 | |||
duplicate$ -- 154 | |||
empty$ -- 221 | |||
format.name$ -- 44 | |||
if$ -- 585 | |||
657 strings with 7198 characters, | |||
and the built_in function-call counts, 4644 in all, are: | |||
= -- 456 | |||
> -- 136 | |||
< -- 17 | |||
+ -- 34 | |||
- -- 34 | |||
* -- 225 | |||
:= -- 818 | |||
add.period$ -- 68 | |||
call.type$ -- 17 | |||
change.case$ -- 84 | |||
chr.to.int$ -- 17 | |||
cite$ -- 34 | |||
duplicate$ -- 240 | |||
empty$ -- 346 | |||
format.name$ -- 66 | |||
if$ -- 906 | |||
int.to.chr$ -- 1 | |||
int.to.str$ -- 0 | |||
missing$ -- 11 | |||
newline$ -- 69 | |||
num.names$ -- 33 | |||
pop$ -- 66 | |||
missing$ -- 18 | |||
newline$ -- 105 | |||
num.names$ -- 51 | |||
pop$ -- 103 | |||
preamble$ -- 1 | |||
purify$ -- 66 | |||
purify$ -- 102 | |||
quote$ -- 0 | |||
skip$ -- 120 | |||
skip$ -- 185 | |||
stack$ -- 0 | |||
substring$ -- 77 | |||
swap$ -- 0 | |||
text.length$ -- 11 | |||
text.prefix$ -- 11 | |||
substring$ -- 119 | |||
swap$ -- 1 | |||
text.length$ -- 17 | |||
text.prefix$ -- 15 | |||
top$ -- 0 | |||
type$ -- 88 | |||
warning$ -- 11 | |||
while$ -- 22 | |||
width$ -- 14 | |||
write$ -- 145 | |||
(There was 1 error message) | |||
type$ -- 132 | |||
warning$ -- 17 | |||
while$ -- 34 | |||
width$ -- 22 | |||
write$ -- 223 | |||
(There were 2 error messages) |
@@ -5,7 +5,7 @@ | |||
\contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP ([She09])\relax }}{6}{figure.caption.5} | |||
\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks ([Nev15])\relax }}{7}{figure.caption.6} | |||
\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.7} | |||
\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees\relax }}{9}{figure.caption.8} | |||
\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees ([Orc10])\relax }}{9}{figure.caption.8} | |||
\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{12}{figure.caption.9} | |||
\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{12}{figure.caption.10} | |||
\addvspace {10\p@ } |
@@ -1,4 +1,4 @@ | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 2 NOV 2018 22:59 | |||
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 3 NOV 2018 14:56 | |||
entering extended mode | |||
\write18 enabled. | |||
file:line:error style messages enabled. | |||
@@ -1263,41 +1263,41 @@ Package babel Info: Redefining german shorthand "| | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 1. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 8. | |||
(babel) in language on input line 6. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 8. | |||
(babel) in language on input line 6. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 8. | |||
(babel) in language on input line 6. | |||
File: figures/MVP.png Graphic file (type bmp) | |||
<figures/MVP.png> | |||
LaTeX Warning: `!h' float specifier changed to `!ht'. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 22. | |||
(babel) in language on input line 20. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 22. | |||
(babel) in language on input line 20. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 22. | |||
(babel) in language on input line 20. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 22. | |||
(babel) in language on input line 20. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 22. | |||
(babel) in language on input line 20. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 22. | |||
(babel) in language on input line 20. | |||
[5 | |||
] | |||
LaTeX Font Info: Try loading font information for TS1+aer on input line 22. | |||
LaTeX Font Info: No file TS1aer.fd. on input line 22. | |||
LaTeX Font Info: Try loading font information for TS1+aer on input line 20. | |||
LaTeX Font Info: No file TS1aer.fd. on input line 20. | |||
LaTeX Font Warning: Font shape `TS1/aer/m/n' undefined | |||
(Font) using `TS1/cmr/m/n' instead | |||
(Font) for symbol `textbullet' on input line 22. | |||
(Font) for symbol `textbullet' on input line 20. | |||
File: figures/request-response-cycle.png Graphic file (type bmp) | |||
<figures/request-response-cycle.png> | |||
@@ -1305,118 +1305,118 @@ File: figures/request-response-cycle.png Graphic file (type bmp) | |||
LaTeX Warning: `!h' float specifier changed to `!ht'. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 37. | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 37. | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 37. | |||
(babel) in language on input line 35. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 40. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 40. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 40. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 40. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 40. | |||
(babel) in language on input line 38. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 40. | |||
(babel) in language on input line 38. | |||
[6] | |||
Underfull \vbox (badness 2951) has occurred while \output is active [] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 50. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 50. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 50. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 50. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 50. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 52. | |||
(babel) in language on input line 50. | |||
[7] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 56. | |||
(babel) in language on input line 54. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 56. | |||
(babel) in language on input line 54. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 56. | |||
(babel) in language on input line 54. | |||
File: figures/virt-env-terminal.png Graphic file (type bmp) | |||
<figures/virt-env-terminal.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 70. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 70. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 70. | |||
(babel) in language on input line 67. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 73. | |||
(babel) in language on input line 70. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 73. | |||
(babel) in language on input line 70. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 73. | |||
(babel) in language on input line 70. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 73. | |||
(babel) in language on input line 70. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 73. | |||
(babel) in language on input line 70. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 73. | |||
(babel) in language on input line 70. | |||
[8] | |||
File: figures/ldap-tree.png Graphic file (type bmp) | |||
<figures/ldap-tree.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 81. | |||
(babel) in language on input line 78. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 81. | |||
(babel) in language on input line 78. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 81. | |||
(babel) in language on input line 78. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 84. | |||
(babel) in language on input line 81. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 84. | |||
(babel) in language on input line 81. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 84. | |||
(babel) in language on input line 81. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 86. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 86. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 86. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 86. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 86. | |||
(babel) in language on input line 83. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 86. | |||
(babel) in language on input line 83. | |||
[9] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 104. | |||
(babel) in language on input line 101. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 104. | |||
(babel) in language on input line 101. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 104. | |||
(babel) in language on input line 101. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 108. | |||
(babel) in language on input line 106. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 108. | |||
(babel) in language on input line 106. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 108. | |||
(babel) in language on input line 106. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 108. | |||
(babel) in language on input line 106. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 108. | |||
(babel) in language on input line 106. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 108. | |||
(babel) in language on input line 106. | |||
[10] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 115. | |||
(babel) in language on input line 110. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 115. | |||
(babel) in language on input line 110. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 115. | |||
(babel) in language on input line 110. | |||
File: figures/bootstrap-head-tag.png Graphic file (type bmp) | |||
<figures/bootstrap-head-tag.png> | |||
@@ -1424,26 +1424,26 @@ File: figures/bootstrap-head-tag.png Graphic file (type bmp) | |||
LaTeX Warning: `!h' float specifier changed to `!ht'. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 128. | |||
(babel) in language on input line 123. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 128. | |||
(babel) in language on input line 123. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 128. | |||
(babel) in language on input line 123. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 128. | |||
(babel) in language on input line 123. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 128. | |||
(babel) in language on input line 123. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 128. | |||
(babel) in language on input line 123. | |||
[11] | |||
File: figures/bootstrap-class-example.png Graphic file (type bmp) | |||
<figures/bootstrap-class-example.png> | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 140. | |||
(babel) in language on input line 135. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 140. | |||
(babel) in language on input line 135. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 140. | |||
(babel) in language on input line 135. | |||
) | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 58. | |||
@@ -1662,14 +1662,24 @@ Package babel Info: Redefining german shorthand "| | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 1. | |||
Underfull \hbox (badness 10000) in paragraph at lines 4--9 | |||
Underfull \hbox (badness 4441) in paragraph at lines 4--8 | |||
[]\T1/aer/m/n/12 Twitter Inc Boot-strap Aut-hors. Boot-strap re-po-si-to-ry. 2011. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 10--14 | |||
[]\T1/aer/m/n/12 Oracle Coope-ra-ti-on. About ldap. 2010. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 16--21 | |||
\T1/aer/m/n/12 https://www.datacamp.com/community/tutorials/pep8-tutorial-python- | |||
[] | |||
Missing character: There is no ’ in font aer12! | |||
Underfull \hbox (badness 1521) in paragraph at lines 31--36 | |||
[]\T1/aer/m/n/12 Adam King. Djan-go midd-le-wa-res and the re-quest/-re-spon-se cy-cle. | |||
Underfull \hbox (badness 2818) in paragraph at lines 50--55 | |||
[]\T1/aer/m/n/12 Adam King. Djan-go midd-le-wa-res and the re-quest/-re-spon-se cy- | |||
[] | |||
Missing character: There is no ̈ in font aer12! | |||
@@ -1677,48 +1687,86 @@ Missing character: There is no ̈ in font aer12! | |||
Missing character: There is no ̈ in font aer12! | |||
Missing character: There is no ’ in font aer12! | |||
Underfull \hbox (badness 10000) in paragraph at lines 46--52 | |||
Underfull \hbox (badness 10000) in paragraph at lines 65--71 | |||
\T1/aer/m/n/12 medium-com-nnennandukwe-python-is-the-back-end-programming- | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 54--58 | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 71. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 71. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 71. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 71. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 71. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 71. | |||
[19] | |||
Underfull \hbox (badness 10000) in paragraph at lines 73--77 | |||
[]\T1/aer/m/n/12 Selwin Ong. django-post_office git re-po-si-to-ry. 2018. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 60--64 | |||
[]\T1/aer/m/n/12 Shabda. Un-der-stan-ding de-co-ra-tors. 2009. | |||
/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl:83: Missing $ inserted. | |||
<inserted text> | |||
$ | |||
l.83 https://blog.twitter.com/developer/en_ | |||
us/a/2011/bootstrap-twitter.html. | |||
I've inserted a begin-math/end-math symbol since I think | |||
you left one out. Proceed, with fingers crossed. | |||
/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl:84: Missing $ inserted. | |||
<inserted text> | |||
$ | |||
l.84 | |||
I've inserted a begin-math/end-math symbol since I think | |||
you left one out. Proceed, with fingers crossed. | |||
/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl:84: Missing } inserted. | |||
<inserted text> | |||
} | |||
l.84 | |||
I've inserted something that you may have forgotten. | |||
(See the <inserted text> above.) | |||
With luck, this will get me unwedged. But if you | |||
really didn't forget anything, try typing `2' now; then | |||
my insertion and my current dilemma will both disappear. | |||
Underfull \hbox (badness 10000) in paragraph at lines 79--84 | |||
[]\T1/aer/m/n/12 Mark Ot-to. Boot-strap from twit-ter. 2011. | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 66--72 | |||
[]\T1/aer/m/n/12 Alexy She-lest. Mo-del view con-trol-ler, mo-del view pre- | |||
Underfull \hbox (badness 10000) in paragraph at lines 79--84 | |||
\T1/aer/m/n/12 https://blog.twitter.com/developer/en$[]\OML/cmm/m/it/12 s=a=\OT1/cmr/m/n/12 2011\OML/cmm/m/it/12 =bootstrap \OMS/cmsy/m/n/12 ^^@ | |||
[] | |||
/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.bbl:84: Extra }, or forgotten \endgroup. | |||
\par ...m \@noitemerr {\@@par }\fi \else {\@@par } | |||
\fi | |||
l.84 | |||
I've deleted a group-closing symbol because it seems to be | |||
spurious, as in `$x}$'. But perhaps the } is legitimate and | |||
you forgot something else, as in `\hbox{$x}'. In such cases | |||
the way to recover is to insert both the forgotten and the | |||
deleted material, e.g., by typing `I$}'. | |||
Underfull \hbox (badness 10000) in paragraph at lines 66--72 | |||
\T1/aer/m/n/12 sen-ter, and mo-del view view-mo-del de-sign pat-terns. 2009. | |||
Overfull \hbox (63.75787pt too wide) in paragraph at lines 86--90 | |||
[]\T1/aer/m/n/12 Shabda. Un-der-stan-ding de-co-ra-tors. 2009. https://www.agiliq.com/blog/2009/06/understanding- | |||
[] | |||
Underfull \hbox (badness 10000) in paragraph at lines 66--72 | |||
\T1/aer/m/n/12 https://www.codeproject.com/Articles/42830/Model-View-Controller- | |||
Underfull \hbox (badness 2818) in paragraph at lines 107--111 | |||
[]\T1/aer/m/n/12 Damon Timm. django-hitcount do-cu-men-ta-ti-on. 2015. https://django- | |||
[] | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 72. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 72. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 72. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 72. | |||
Package babel Info: Redefining german shorthand "| | |||
(babel) in language on input line 72. | |||
Package babel Info: Redefining german shorthand "~ | |||
(babel) in language on input line 72. | |||
[19]) | |||
) | |||
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 77. | |||
Package babel Info: Redefining german shorthand "f | |||
(babel) in language on input line 77. | |||
@@ -1747,10 +1795,10 @@ Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 77. | |||
) | |||
(\end occurred when \ifnum on line 5 was incomplete) | |||
Here is how much of TeX's memory you used: | |||
26572 strings out of 492970 | |||
476605 string characters out of 6133939 | |||
546800 words of memory out of 5000000 | |||
30185 multiletter control sequences out of 15000+600000 | |||
26590 strings out of 492970 | |||
476875 string characters out of 6133939 | |||
546913 words of memory out of 5000000 | |||
30203 multiletter control sequences out of 15000+600000 | |||
555998 words of font info for 62 fonts, out of 8000000 for 9000 | |||
1348 hyphenation exceptions out of 8191 | |||
58i,12n,50p,10437b,943s stack positions out of 5000i,500n,10000p,200000b,80000s |
@@ -11,7 +11,7 @@ | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Virtuelle Umgebung}{8}{subsection.2.1.2}} | |||
\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.7}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Lightweight Directory Access Protocol}{8}{subsection.2.1.3}} | |||
\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees\relax }}{9}{figure.caption.8}} | |||
\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees ([Orc10])\relax }}{9}{figure.caption.8}} | |||
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{9}{section.2.2}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{9}{subsection.2.2.1}} | |||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Hilfsbibliotheken}{10}{subsection.2.2.2}} |
@@ -1,7 +1,7 @@ | |||
\chapter{Einleitung} | |||
\textcolor{red}{Die vorliegende Arbeit beschäftigt sich mit der wachsenden E-Mail-Flut in den Postfächern der Studierenden und wie man diese reduzieren kann.} | |||
Schon seit geraumer Zeit ist bekannt, dass das Versenden von Informationen über elektronische Post nicht nur Vorteile mit sich bringt. Wie der Spezialist für Gesundheitsprozessberatung in einem Bericht der Mitteldeutschen Zeitung erwähnt, \glqq macht es die stets wachsende E-Mail-Menge unmöglich sich vernünftig mit den Informationen zu befassen"([Ver13]). Nicht nur am Arbeitsplatz sondern auch in Hochschulen wird Gebrauch gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Um die Prioritäten der Informationen besser bilden zu können, sollen Studierende selbst entscheiden, welche Nachrichten relevant sind. Hierfür wird eine Social Media Plattform mit personalisierbarem Dashboard implementiert. | |||
Schon seit geraumer Zeit ist bekannt, dass das Versenden von Informationen über elektronische Post nicht nur Vorteile mit sich bringt. Wie der Spezialist für Gesundheitsprozessberatung in einem Bericht der Mitteldeutschen Zeitung erwähnt, \glqq macht es die stets wachsende E-Mail-Menge unmöglich sich vernünftig mit den Informationen zu befassen"(vgl. [Ver13]). Nicht nur am Arbeitsplatz sondern auch in Hochschulen wird Gebrauch gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Um die Prioritäten der Informationen besser bilden zu können, sollen Studierende selbst entscheiden, welche Nachrichten relevant sind. Hierfür wird eine Social Media Plattform mit personalisierbarem Dashboard implementiert. | |||
\section{Ausgangssituation} | |||
Alle Informationen der Fakultät Elektrotechnik Feinwerktechnik Informationstechnik, kurz efi, werden über die globalen Verteiler des Hochschulinternen Postfaches versendet. Viele dieser Daten sind jedoch nur für eine geringe Schnittmenge der Empfänger relevant und lassen sich nur schwer priorisieren. Das ständig überlastete Postfach muss somit regelmä"sig gepflegt werden. Einen massiven Administrativen Aufwand bedeutet es, E-Mails zu filtern und nach persönlichem Ermessen zu verwalten. |
@@ -1,9 +1,7 @@ | |||
\chapter{Framework} | |||
\label{ch:framework} | |||
Um die Website-Erweiterung realisieren zu können, wird zunächst festgelegt welche Programmierschnittstellen verwendet werden. Im Web-Backend fällt die Wahl auf die objektorientierte Sprache Python, die ausschlie"slich Serverseitig anwendbar ist. Der Programmaufbau Pythons macht den Code leicht lesbar und der einfache Syntax ermöglicht einen strukturierte Implementierung der Website([Ndu17]). Die vielen abstrakten Datentypen, wie dynamische Arrays und Wörterbücher, sind gro"sflächig einsetzbar. | |||
--- Warum genau python? | |||
Ein entscheidender Vorteil hierbei ist das dazugehörige Framework Django, auf das im folgenden Kapitel genauer eingegangen wird. | |||
---Ist pyton nur serverseitig? | |||
Um die Website-Erweiterung realisieren zu können, wird zunächst festgelegt welche Programmierschnittstellen verwendet werden. Im Web-Backend fällt die Wahl auf die objektorientierte Sprache Python, die Serverseitig anwendbar ist. Der Programmaufbau Pythons macht den Code leicht lesbar und der einfache Syntax ermöglicht einen strukturierte Implementierung der Website(vgl. [Ndu17]). Durch den modularen Aufbau ist es selbst für unerfahrene Entwickler möglich die Sprache schnell zu erlernen. Darüber hinaus bringt Python verschiedene Web-Service Tools mit sich, die beim implementieren einer Website viel Zeit sparen und das Aneignen von komplexen Protokollen redundant machen (vgl. [Sol17]). | |||
Das dazugehörige Framework Django reduziert den Entwicklungsaufwand eines Prototypen erheblich und ist daher als zielführendes Framework die beste Wahl | |||
\section{Django} | |||
Django ist ein Web-Framework, das eine schnelle, strukturierte Entwicklung ermöglicht und dabei ein einfaches Design beibehält. Der darin enthaltene Model-View-Presenter (MVP) kann, ähnlich wie der Model-View-Controller, die Interaktionen zwischen Model und View, die Auswahl und Ausführung von Befehlen und das Auslösen von Ereignissen steuern (vgl. Abbildung 2.1). Da die View aber hier bereits den Gro"steil des Controllers übernimmt, ist der MVP eine Überarbeitung. Der Teil, der Elemente des Modells auswählt, Operationen durchführt und alle Ereignisse kapselt, ergibt die Presenter-Klasse vgl. [She09]. Durch die direkte Bindung von Daten und View, geregelt durch den Presenter, wird die Codemenge der Applikation stark reduziert. | |||
@@ -55,7 +53,7 @@ Durch den einfachen Aufbau ist es au"serdem möglich diese selbst zu implementie | |||
\subsection{Virtuelle Umgebung} | |||
Wird ein neues Projekt gestartet, ist es üblich, verschiedensten Programme und Module zu verwenden. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Diese besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal starten. Die folgende Abbildung (2.3) zeigt das Erstellen eines neunen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Kommandozeilenanfang, bedeutet das, diese ist jetzt aktiv. | |||
Wird eine prototypische Anwendung gestartet, ist es notwendig, verschiedensten Module zu verwenden und zu testen. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Diese besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal starten. Die folgende Abbildung (2.4) zeigt das Erstellen eines neuen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Kommandozeilenanfang, bedeutet das, diese ist jetzt aktiv. | |||
\begin{figure}[!h] | |||
\centering | |||
@@ -64,17 +62,16 @@ Wird ein neues Projekt gestartet, ist es üblich, verschiedensten Programme und | |||
\hfill | |||
\end{figure} | |||
Die Umgebung ist jetzt bereit befüllt zu werden. Um die Pakete und Module kollisionsfrei zu installieren ist es empfehlenswert einen Package-Manager zu verwenden. Mit pip können diese installiert, geupdated und gelöscht werden. Au"serdem kann der Manager Abhängigkeiten, wenn nötig, überschreiben und optimieren. Falls ein, sich von der neuesten Version unterscheidendes, Programm installiert werden soll, so ist dies ebenso möglich. | |||
Um die Pakete und Module kollisionsfrei zu installieren ist es empfehlenswert einen Package-Manager zu verwenden. Mit pip, \glqq rekursives Akronym für pip Install Packages" (vgl. [Wei17, K. 23.1]), können diese installiert, geupdated und gelöscht werden. Au"serdem kann der Manager Abhängigkeiten, wenn nötig, überschreiben und optimieren. Falls ein, sich von der neuesten Version unterscheidendes, Programm installiert werden soll, so ist dies ebenso möglich. | |||
\subsection{Lightweight Directory Access Protocol} | |||
Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hier bearbeitende Bachelor-Arbeit eingebunden werden. Dies ist ein Internetprotokoll, welches die Kommunikation mit dem Hochschulinternen Active Directory verwaltet. Es wird eingesetzt um Benutzer so schnell und effizient wie möglich durch eine bereits existierende Datenbank abzufragen und zu authentifizieren. Der Aufbau ist mit einem Baum zu vergleichen (vgl. Abbildung 2.4.). Die Wurzel besteht aus sehr allgemeinen Informationen, umso näher man den Blättern kommt, umso spezifischer werden diese. Ein Objekt in der Struktur wird durch einen einmaligen Namen identifiziert, der aus den gesamten hinterlegten Informationen besteht. Der Name für den in der Abbildung 2.4 dargestellten Baum wäre \glqq cn=John Doe, ou=People, dc=sun.com\grqq. | |||
Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hier bearbeitende Bachelor-Arbeit eingebunden werden, um später die Login-Daten im Hochschulinternen Netz abfragen zu können. Dies ist ein Internetprotokoll, welches die Kommunikation mit dem Active Directory verwaltet. Es wird eingesetzt um Benutzer so schnell und effizient wie möglich durch eine bereits existierende Datenbank abzufragen und zu authentifizieren. Der Aufbau ist mit einem Baum zu vergleichen (vgl. Abbildung 2.4.). Die Wurzel besteht aus sehr allgemeinen Informationen, umso näher man den Blättern kommt, umso spezifischer werden diese. Ein Objekt in der Struktur wird durch einen einmaligen Namen identifiziert, der aus den gesamten hinterlegten Informationen besteht. Der Name für den in der Abbildung 2.4 dargestellten Baum wäre \glqq cn=John Doe, ou=People, dc=sun.com\grqq (vgl. [Sch17]). | |||
\begin{figure}[!h] | |||
\centering | |||
\includegraphics[width=0.5\textwidth]{figures/ldap-tree} | |||
\caption{Beispiel eines LDAP-Trees} | |||
\caption{Beispiel eines LDAP-Trees ([Orc10])} | |||
\hfill | |||
\end{figure} | |||
@@ -102,20 +99,18 @@ Au"serdem muss taggit in der settings.py unter INSTALLED\_APPS ergänzt werden. | |||
Im Admin-Backend kann nun geprüft werden, ob das neue Feld in die Datenbank integriert wurde. Neue Tags können in das Textfeld eingetragen werden. Der Parser verarbeitet jedes Wort, dass durch ein Komma oder ein Leerzeichen getrennt ist als ein Tag. Soll dieses jedoch aus mehreren Wörtern bestehen so müssen diese mit Anführungszeichen umfasst werden. Standardmäßig unterscheidet der Taggable Manager zwischen Groß- und Kleinschreibung, Tags sind also case sensitive. Ändern kann man das, indem der Boolean TAGGIT\_CASE\_INSENSITIVE in der settings.py auf True gestellt wird. | |||
\subsection {Hilfsbibliotheken} | |||
Weitere Add-ons werden geladen um kleinere Funktionen der Website einfach umsetzen zu können. Zu diesen gehört django-taggit-templatetags, welches durch die Einbindung im HTML-File die Tags der Applikation als Liste ausgibt. Au"serdem lassen sich die eingepflegten Tags als Cloud visualisieren. Kommen bestimmte Tags öfters vor als andere, so werden sie entsprechend grö"sser dargestellt. | |||
---warum habe ich diese bibs gealden (beschreibung evtl in prototyp) | |||
Weitere Add-ons werden geladen um kleinere Funktionen der Website einfach umsetzen zu können. Zu diesen gehört django-taggit-templatetags, welches durch die Einbindung im HTML-File die Tags der Applikation als Liste ausgibt. Au"serdem lassen sich die eingepflegten Tags als Cloud visualisieren. Kommen bestimmte Tags öfters vor als andere, so werden sie entsprechend grö"ser dargestellt. | |||
Django-hitcount dient zum zählen der Besucher einer Seite ([Tim15]). Dies lässt sich auf drei verschiedene Arten in die Applikation einbinden. Der schnellste Weg ist die Darstellung der Besuche mit Hilfe eines Template Tags im HTML-File. Möchte man die Anzeige aber individueller gestalten so kann durch das integrieren der HitCountDetailView in views.py die Variable hitcount verwenden und im Frontend ausgeben. Eine weiter Möglichkeit ist das Erweitern oder neu Erstellen eines Models im Django Backend. Von dort kann auf das neue Feld im Django-Admin-Backend zugegriffen werden, ebenso wie in der View und im Template. Die im Add-on integrierten Einstellungen, die in der settings.py ergänzt werden müssen, ermöglichen unter Anderem das begrenzen der Lebensdauer des Zählers, bevor dieser zurück gesetzt wird. | |||
Um das Versenden und Verwalten von E-Mails in Django zu realisieren eignet sich django-post-office ([Ong18]). Nach der Installation kann im Admin-Backend ein E-Mail-Templates angelegt werden, Anhänge verwaltet und das Senden dieser im Log überprüft werden. Die Benachrichtigungen können asynchron versendet werden mit einem integrierten Planungsmanager. Der Inhalt kann Text oder HTML-basiert sein und in mehreren Sprachen hinterlegt werden. | |||
--- evtl. logger addon --- | |||
\section{Bootstrap} | |||
Eine umfangreiche Website einheitlich zu gestalten ist oft sehr komplex und zeitaufwendig. Die Entwickler von Twitter haben deshalb, zunächst Firmenintern, an einem neuen Verwaltungswerkzeug gearbeitet, das mehrere Bibliotheken zusammenführen sollte. Sie merkten, das die neue Bibliothek, die daraus entstand, nicht nur auf Ihre eigene Website anwendbar, sondern so flexible ist, dass jede Art von Website davon profitieren könnte. Die Open-Source-Bibliothek, die auf GitHub abrufbar ist, wird seitdem von vielen Programmierern weiterentwickelt und ist somit stark gewachsen. Version 2.0 verfügt au"serdem über die Fähigkeit Websites responsive auf verschiedenste mobile Endgeräte anzupassen. | |||
Eine umfangreiche Website einheitlich zu gestalten ist oft sehr komplex und zeitaufwendig. Die Entwickler von Twitter haben deshalb, zunächst Firmenintern, an einem neuen Verwaltungswerkzeug gearbeitet, das mehrere Bibliotheken zusammenführen sollte. Sie merkten, das die neue Bibliothek, die daraus entstand, nicht nur auf Ihre eigene Website anwendbar, sondern so flexible ist, dass jede Art von Website davon profitieren könnte (vgl. [Ott11]). Die Open-Source-Bibliothek, die auf GitHub abrufbar ist, wird seitdem von vielen Programmierern weiterentwickelt und ist somit stark gewachsen. Version 2.0 verfügt au"serdem über die Fähigkeit Websites responsive auf verschiedenste mobile Endgeräte anzupassen (vgl. [Ott12]). | |||
Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen. Zudem befinden sich auch Erweiterungen des JavaScript-Frameworks jQuery in der Bibliothek, die weiterführende Funktionen beinhalten wie zum Beispiel Filter oder Dropdown-Menüs. Das Paket kann einfach eingebunden werden im head-tag einer HTML-Datei (vgl. Abbildung 2.3). Das bedeutet, dass Media-Queries oder ähnliche Methoden nicht mehr nötig sind, nicht nur um eine Website mobilfähig zu machen, sondern auch kompatibel für die verschiedensten Browser. | |||
Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen. Zudem befinden sich auch Erweiterungen des JavaScript-Frameworks jQuery in der Bibliothek, die weiterführende Funktionen beinhalten wie zum Beispiel Filter oder Dropdown-Menüs. Das Paket kann einfach eingebunden werden im head-tag einer HTML-Datei (vgl. Abbildung 2.3). Das bedeutet, dass Media-Queries oder ähnliche Methoden nicht mehr nötig sind, nicht nur um eine Website mobilfähig zu machen, sondern auch kompatibel für die verschiedensten Browser (vgl. [Boo12]). | |||
\begin{figure}[!h] | |||
\centering |
@@ -82,5 +82,55 @@ | |||
note = "https://ryannevius.com" | |||
} | |||
@article{Solutions, | |||
author = "Mindfire Solutions", | |||
title = "Advantages and Disadvantages of Python Programming Language", | |||
year = "2017", | |||
note = "https://medium.com/@mindfiresolutions.usa/advantages-and-disadvantages-of-python-programming-language-fd0b394f2121" | |||
} | |||
@book{Weigend, | |||
author = "Michael Weigend", | |||
title = "Python GE-PACKT", | |||
year = "2017", | |||
note = "Kapitel 23.1" | |||
} | |||
@article{Schlede, | |||
author = "Frank-Michael Schlede, Thomas Bär, Andreas Donner", | |||
title = "Was ist LDAP (Lightweight Directory Access Protocol)?", | |||
year = "2017", | |||
note = "https://www.ip-insider.de/was-ist-ldap-lightweight-directory-access-protocol-a-581204/" | |||
} | |||
@article{Oracle, | |||
author = "Oracle Cooperation", | |||
title = "About LDAP", | |||
year = "2010", | |||
note = "https://docs.oracle.com/cd/E19182-01/820-6573/6nht2e5a4/index.html" | |||
} | |||
@article{Otto, | |||
author = "Mark Otto", | |||
title = "Bootstrap from Twitter", | |||
year = "2011", | |||
note = "https://blog.twitter.com/developer/en_us/a/2011/bootstrap-twitter.html" | |||
} | |||
@article{Bootstrap, | |||
author = "Bootstrap Authors, Twitter Inc", | |||
title = "Bootstrap Repository", | |||
year = "2011", | |||
note = "https://github.com/twbs/bootstrap" | |||
} | |||
@article{Otto, | |||
author = "Mark Otto", | |||
title = "Say hello to Bootstrap 2.0", | |||
year = "2012", | |||
note = "https://web.archive.org/web/20120203191214/https://dev.twitter.com/blog/say-hello-to-bootstrap-2" | |||
} | |||