<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Foreground]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
<<uploadOptions>>
Das Blog musste ich leider auf ~TiddlyWiki umstellen, da ich massive Probleme mit Concrete5 hatte und die Version nicht aktualisieren konnte. Und das war wiederum die Voraussetzung um den Server aktualisieren zu können, da ~PHP5 abgekündigt  worden ist und auch der Support für Ubuntu Server 1404 LTS im April 2019 auslaufen wird.
Alle zwei Jahre habe ich Probleme mit dem Update des Servers und immer wegen PHP, da hier das Verhalten geändert wird und ältere Software dann plötzlich nicht mehr funktioniert. Mit ~CCTiddler, einer Serverversion von ~TiddlyWiki, hatte ich auch schon letztes mal Probleme es am laufen zu halten, da hier die Entwicklung eingestellt worden ist. Damals hatte ich die zwei Funktionen selbst abändern müssen um die Software weiter betreiben zu können, doch dieses mal ist der Aufwand einfach zu groß.

Hier sieht man sehr schön, warum einige Webseiten plötzlich aufhören zu existieren was auch ein Grund für Digitale Demenz ist. Es ist schlichtweg nicht möglich, immer alles aktuell zu halten, besonders wenn die Entwicklung vom benutzen Content Management System plötzlich eingestellt wird. Das Lifecycle von PHP ist schlichtweg eine Katastrophe für sämtliche Webanwendungen. Jedes Jahr kommt hier eine neue Version heraus, die zwar zum großteils kompatibel zur Vorgängerversion ist, aber leider nicht vollständig. Alle drei Jahre ist man gezwungen zu aktualisieren, da es keine Sicherheitsupdates mehr zu bekommen sind.

Damit mir das nicht mehr so oft passieren kann, habe ich beschlossen, nur noch möglichst einfache Systeme zu nutzen, die keine Abhängigkeiten mehr zu PHP haben. Das dies ein äußerst schwieriges Unterfangen darstellt, kann mit Sicherheit so gut wie jeder Webseitenbetreiber nachvollziehen. Allerdings kommt das der Sicherheit zu gute und ich werde in Zukunft den Server leichter aktuell halten können. Ich habe mich für ~TiddlyWiki entschieden, da hier nur ein Browser mit aktivierten Javaskript Voraussetzung ist, was so gut wie immer der Fall ist.

Die Bedienung ist leider etwas gewöhnungsbedürftig, aber ich hoffe, das euch die Seite trotzdem gefällt.

Viele Grüße

Michael

!!!Lifecycle Ubuntu
[img[Lifecycle Ubuntu|LifecycleUbuntu.png]]
!!!Lifecycle PHP
[img[Lifecycle PHP|LifecyclePHP.png]]

Ich habe einmal die Downloads von audacity-win-2.0.5_~Musik_nach_432Hz_konvertieren.zip vom 10.05.2017 bis zum 07.05.2017 näher angesehen. Es haben auch Linux- und Macanwender das Skript heruntergeladen, obwohl das dort nicht funktionieren kann. Es ist sehr interessant sich anzusehen, welcher Browser verwendet worden ist. Hier freut mich besonders, das die Leute meistens den Firefox verwenden, den man leicht absichern kann. Am zweit meisten wurde Google Chrome verwendet. Für die Google Chrome Anwender hier nur der dezente Hinweis, das Google Chrom zwar des schnellste Browser ist den man aktuell nutzen kann, aber leider das komplette Surfverhalten an Google geht. Vielleicht werde ich hierzu einmal einen Artikel schreiben, wie dies genau funktioniert. Hintergrund ist, das jeder Google Chrome eine eindeutige ID besitzt und diese der besuchten Webseite mitteilt. Mit Bigdata können somit sehr einfach Profile erstellt werden, die besonders dann wertvoll werden, wenn man Dienste wie die Suchmaschine Google, Google Mail, Google Maps, oder Youtube verwendet. Wenn sich auch noch an so einer Seite einmal Anmeldet wurde, ist man eindeutig identifiziert worden und mit der Anonymität im Netz ist es vorbei.

So nun aber zur Auswertung und den Zahlen, die mich interessiert haben.

|!Anzahl Downloads|!Betriebssystem|
|1   |Windows 8   |
|1   |Windows Vista   |
|3   |Windows XP   |
|3   |@@Linux@@   |
|6   |@@Macintosh@@   |
|8   |Windows 8.1   |
|30   |Windows 10   |
|70   |Windows 7   |
|!Anzahl Downloads|!Browser|
|2   |Safari   |
|6   |Internet Explorer 11 im Kompatibilitätsmodus   |
|40   |Google Chrome   |
|74   |Firefox   |


Hier noch das angepasste Logfile, das um die doppelte Einträge bereinigt worden ist.

{{{
[2016/05/10:22:24:01 +0200] 84.134.50.169 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36"
[2016/05/12:10:05:08 +0200] 80.121.18.250 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36"
[2016/05/12:19:02:14 +0200] 95.90.254.11 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0"
[2016/05/17:16:55:29 +0200] 79.214.21.162 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:42.0) Gecko/20100101 Firefox/42.0"
[2016/05/22:20:50:07 +0200] 93.221.51.50 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 12867624 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"
[2016/05/28:16:45:23 +0200] 79.242.1.8 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"
[2016/06/02:18:05:53 +0200] 92.194.54.79 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 206 26777074 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; LCJB; rv:11.0) like Gecko"
[2016/06/09:02:48:43 +0200] 188.194.223.39 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 5.1; rv:39.0) Gecko/20100101 Firefox/39.0"
[2016/06/10:00:25:11 +0200] 91.229.77.64 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"
[2016/06/10:11:02:58 +0200] 91.219.236.218 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"
[2016/06/13:09:24:17 +0200] 109.90.180.79 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36"
[2016/06/19:10:28:49 +0200] 77.4.219.140 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/06/19:10:53:05 +0200] 91.15.241.126 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/07/03:05:01:30 +0200] 84.155.230.189 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/07/16:13:41:55 +0200] 217.236.71.100 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36 OPR/38.0.2220.31"
[2016/07/16:15:51:47 +0200] 185.32.221.150 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/07/18:12:34:09 +0200] 84.182.91.79 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.75 Safari/537.36"
[2016/07/30:12:58:31 +0200] 88.72.58.13 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
[2016/08/07:12:29:18 +0200] 194.208.219.133 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
[2016/08/13:09:54:21 +0200] 172.18.22.1 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko"
[2016/08/13:10:27:51 +0200] 31.19.128.240 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/08/14:10:31:19 +0200] 91.47.109.47 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/08/15:11:07:47 +0200] 91.47.105.225 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 16276920 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/08/15:12:24:00 +0200] 185.36.120.168 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/08/25:19:28:02 +0200] 93.83.65.79 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
[2016/09/03:12:49:53 +0200] 79.239.220.65 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36"
[2016/09/05:15:53:44 +0200] 46.128.228.72 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0"
[2016/09/06:07:22:03 +0200] 37.130.224.21 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 1104480 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/09/06:10:47:21 +0200] 77.5.193.168 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
[2016/09/13:13:33:11 +0200] 213.240.68.176 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27461321 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.7.8 (KHTML, like Gecko) Version/9.1.3 Safari/601.7.8"
[2016/09/21:20:52:21 +0200] 217.241.117.135 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0"
[2016/09/28:17:17:50 +0200] 91.114.241.144 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:47.0) Gecko/20100101 Firefox/47.0"
[2016/10/04:12:38:35 +0200] 212.251.122.90 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0"
[2016/10/05:22:42:42 +0200] 212.241.80.248 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"
[2016/10/16:12:58:56 +0200] 85.197.52.188 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.27 Safari/537.36 OPR/41.0.2353.10 (Edition beta)"
[2016/10/30:08:41:05 +0100] 84.138.109.223 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0"
[2016/10/30:23:15:48 +0100] 91.32.45.229 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0"
[2016/11/03:15:09:36 +0100] 194.118.213.211 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:48.0) Gecko/20100101 Firefox/48.0"
[2016/11/05:19:03:54 +0100] 88.79.229.220 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0"
[2016/11/08:18:36:31 +0100] 92.229.85.52 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 4225320 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"
[2016/11/08:20:16:15 +0100] 194.152.187.174 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0"
[2016/11/11:21:12:01 +0100] 178.191.123.229 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0"
[2016/11/13:02:52:45 +0100] 91.6.8.14 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0"
[2016/11/15:22:38:07 +0100] 92.72.237.226 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
[2016/11/18:00:29:03 +0100] 93.239.182.66 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:49.0) Gecko/20100101 Firefox/49.0"
[2016/11/18:14:20:17 +0100] 179.43.155.98 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/11/27:10:54:27 +0100] 92.72.47.179 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
[2016/11/27:17:54:25 +0100] 79.204.245.71 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/11/27:21:36:21 +0100] 178.10.129.66 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36"
[2016/11/29:18:32:53 +0100] 213.162.68.36 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/04:01:43:49 +0100] 31.16.89.25 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/04:13:04:37 +0100] 178.197.235.118 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"
[2016/12/05:19:17:44 +0100] 178.197.233.105 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
[2016/12/06:21:32:41 +0100] 62.155.134.4 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/06:22:14:48 +0100] 91.38.158.169 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://www.greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/07:07:47:00 +0100] 91.128.159.48 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/08:12:16:22 +0100] 77.119.130.78 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/14:19:43:36 +0100] 87.166.123.111 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69"
[2016/12/15:22:05:52 +0100] 77.182.27.233 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27368027 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/18:18:00:16 +0100] 31.17.253.248 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/19:16:29:28 +0100] 178.27.221.53 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/19:20:35:05 +0100] 31.17.254.99 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 1096240 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/20:15:54:34 +0100] 95.233.108.111 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/20:17:24:43 +0100] 31.17.253.170 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/21:07:20:52 +0100] 80.110.122.40 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/21:11:35:13 +0100] 193.80.18.92 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 5474040 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2016/12/30:08:44:19 +0100] 84.185.42.221 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2016/12/30:17:25:49 +0100] 87.172.197.33 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/03:22:08:08 +0100] 94.218.180.107 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/16:13:28:23 +0100] 87.79.151.117 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 1408440 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/17:01:02:12 +0100] 217.254.44.62 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2017/01/17:16:18:41 +0100] 79.224.61.54 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/17:21:26:46 +0100] 217.254.44.62 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2017/01/19:09:57:02 +0100] 93.220.56.92 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2017/01/19:11:00:40 +0100] 80.69.127.38 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 OPR/42.0.2393.94"
[2017/01/20:15:13:15 +0100] 77.180.238.152 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27461321 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
[2017/01/21:13:26:58 +0100] 213.147.160.148 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/22:11:55:30 +0100] 87.78.43.232 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/22:15:48:36 +0100] 178.3.104.75 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/22:16:32:53 +0100] 5.42.142.120 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/25:22:51:40 +0100] 77.21.254.202 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
[2017/01/27:16:49:16 +0100] 91.115.97.102 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27461321 "https://www.greatkartei.de/blog/it/musik-432-hz-konvertieren" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; MAMD; rv:11.0) like Gecko"
[2017/01/27:16:51:07 +0100] 91.115.97.102 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27461321 "https://www.greatkartei.de/blog/it/musik-432-hz-konvertieren" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; MAMD; rv:11.0) like Gecko"
[2017/01/28:20:12:39 +0100] 88.65.122.192 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
[2017/02/04:11:08:37 +0100] 84.118.57.11 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
[2017/02/06:15:17:07 +0100] 95.90.191.29 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/02/12:14:56:34 +0100] 92.216.221.254 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/02/13:14:09:19 +0100] 86.56.161.7 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
[2017/02/13:18:27:38 +0100] 84.132.231.71 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
[2017/02/23:23:28:34 +0100] 188.103.58.213 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
[2017/02/23:23:52:40 +0100] 93.200.87.62 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"
[2017/02/25:11:09:23 +0100] 217.81.192.42 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/02/25:22:55:53 +0100] 84.148.71.196 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36 OPR/43.0.2442.806 (Edition 360)"
[2017/03/06:18:07:54 +0100] 87.185.82.88 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
[2017/03/06:21:25:59 +0100] 84.57.192.10 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/03/06:23:32:36 +0100] 91.113.6.198 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/03/07:14:47:17 +0100] 89.15.238.250 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
[2017/03/09:15:17:07 +0100] 77.186.13.141 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 OPR/43.0.2442.1144"
[2017/03/12:10:20:22 +0100] 172.18.22.1 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"
[2017/03/12:16:25:20 +0100] 91.113.0.246 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/03/15:20:51:35 +0100] 2.246.109.89 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
[2017/03/16:04:07:39 +0100] 5.146.194.74 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
[2017/03/17:20:51:47 +0100] 95.223.161.203 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 10366840 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/03/26:15:09:26 +0200] 84.179.67.183 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/03/27:19:19:48 +0200] 185.137.18.136 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27368027 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 OPR/43.0.2442.1144"
[2017/03/27:19:55:51 +0200] 185.137.18.127 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27368027 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 OPR/43.0.2442.1144"
[2017/03/28:19:44:08 +0200] 217.247.235.2 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/03/28:22:07:44 +0200] 80.144.20.4 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/03/30:20:56:42 +0200] 213.162.68.106 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://www.greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/04/01:12:32:04 +0200] 85.17.26.8 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/04/02:18:48:17 +0200] 46.5.254.72 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[2017/04/07:17:28:10 +0200] 217.81.122.123 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/04/14:16:18:00 +0200] 85.5.239.128 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
[2017/04/15:13:21:51 +0200] 87.179.80.134 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"
[2017/04/15:13:23:14 +0200] 89.14.66.10 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27368027 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/04/16:14:01:28 +0200] 87.165.50.80 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/04/16:22:07:56 +0200] 77.182.50.68 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 OPR/44.0.2510.857"
[2017/04/17:23:10:27 +0200] 91.52.60.236 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
[2017/04/18:23:56:56 +0200] 5.61.135.116 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/04/20:19:37:29 +0200] 87.145.207.235 - - "GET /blog/files/3614/2055/2445/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27367882 "https://greatkartei.de/blog/it/musik-432-hz-konvertieren/" "Mozilla/5.0 (Windows NT 6.1; rv:53.0) Gecko/20100101 Firefox/53.0"
[2017/05/03:17:03:24 +0200] 87.161.212.215 - - "GET /blog/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 27371614 "https://greatkartei.de/blog/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:52.0) Gecko/20100101 Firefox/52.0"
[2017/05/04:11:41:29 +0200] 84.118.57.11 - - "GET /blog/audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip HTTP/1.1" 200 10097352 "https://greatkartei.de/blog/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"
}}}
Aller Anfang ist schwer und Tiddlywiki ist dazu auch noch etwas gewöhnungsbedürftig. Deswegen möchte ich euch die wichtigsten Kniffe zum erstellen eigener Tiddler hier kurz ganz grob beschreiben.
Eine vollständige [[Bedienungsanleitung|http://tiddlywikihandbuch.de/tiddlywikihandbuch.html]] findet Ihr auf der Seite von [[http://tiddlywikihandbuch.de|http://tiddlywikihandbuch.de/tiddlywikihandbuch.html]]

Damit Ihr etwas experimentieren könnt, bietet es sich an, diesen Tiddlywiki einfach herunter zu laden und lokal zu bearbeiten. Klickt hierzu einfach rechts auf options und dann auf offline. Das heruntergeladene ~HTML-File kann dann geöffnet werden und nach Herzenslust verändert werden ohne das Änderungen auf dieser Seite durchgeführt werden.
Die besten Resultate und am wenigsten Probleme bekommt ihr mit dem Firefox. Wenn Ihr einen Tiddler erstellt habt und mit dem Ergebnis zufrieden seit, könnt ihr ihn per copy & paste direkt hier einstellen.

Hier nun die hilfreichen Quickinfos um Tiddler zu erstellen:

!!Formatierung:
{{{
''fett''
==durchgestrichen==
__unterstrichen__
//kursiv//
2^^3^^=8
a~~ij~~ = -a~~ji~~
@@highlight@@
@@color(green):grüne Schrift@@
@@bgcolor(#ff0000):color(#ffffff):roter Hintergrund, weisse Schrift@@
}}}
''fett''
==durchgestrichen==
__unterstrichen__
//kursiv//
2^^3^^=8
a~~ij~~ = -a~~ji~~
@@highlight@@
@@color(green):grüne Schrift@@
@@bgcolor(#ff0000):color(#ffffff):roter Hintergrund, weisse Schrift@@


!!Überschriften:
{{{
!Überschrift Ebene 1
!!Überschrift Ebene 2 
!!!Überschrift Ebene 3
!!!!Überschrift Ebene 4 
!!!!!Überschrift Ebene 5
}}}
!Überschrift Ebene 1
!!Überschrift Ebene 2 
!!!Überschrift Ebene 3
!!!!Überschrift Ebene 4 
!!!!!Überschrift Ebene 5


!!Bilder einfügen:
{{{
Bilder/Grafiken können mit [img[Benennung|pfad/zur/Bilddatei.jpg]]
eingefügt werden.

Textumflossen und rechts- oder linksbündig lassen sich Bilder und
Grafiken wie folgt einbinden:
 [img[Benennung|pfad/zur/Bilddatei.jpg]]
 [img[Benennung|pfad/zur/Bilddatei.jpg]]
Es sind relative und absolute Pfadangaben oder Links ins Web
möglich.
}}}


!!Nicht nummerierte Liste:
{{{
* erster Punkt der Liste
* zweiter Punkt der Liste
** Ein Punkt in zweiter Listenebene
* Ein letzter Punkt in der Beispielliste
}}}
* erster Punkt der Liste
* zweiter Punkt der Liste
** Ein Punkt in zweiter Listenebene
* Ein letzter Punkt in der Beispielliste


!!Nummerierte Liste:
{{{
#Punkt 1
#Punkt 2
##Punkt 2.1
##Punkt 2.2
##Punkt 2.3
#Punkt 3
##Punkt 3.1
###Punkt 3.1.1
###Punkt 3.1.2
}}}
#Punkt 1
#Punkt 2
##Punkt 2.1
##Punkt 2.2
##Punkt 2.3
#Punkt 3
##Punkt 3.1
###Punkt 3.1.1
###Punkt 3.1.2


!!Ebenen Visualisieren:
{{{
>Ebene 1, Punkt 1
>>Ebene 2, Punkt 1
>>Ebene 2, Punkt 2
>>Ebene 2, Punkt 3
>>>Ebene 3, Punkt 1
>>>Ebene 3, Punkt 2
>>Ebene 2, Punkt 4
>>Ebene 2, Punkt 5
>Ebene 1, Punkt 2
}}}
>Ebene 1, Punkt 1
>>Ebene 2, Punkt 1
>>Ebene 2, Punkt 2
>>Ebene 2, Punkt 3
>>>Ebene 3, Punkt 1
>>>Ebene 3, Punkt 2
>>Ebene 2, Punkt 4
>>Ebene 2, Punkt 5
>Ebene 1, Punkt 2



!!Fester Zeichenabstand um z.B. Code darzustellen:
{{{
{{{Eine Zeile}}}
}}}
{{{Eine Zeile}}}

{{{
{{{
var posTop = findPosY(e);
var posBot = posTop + e.offsetHeight;
var winTop = findScrollY();
var winHeight = findWindowHeight();
var winBot = winTop + winHeight;
if(posTop = winTop)
    return(posTop);
else if(posBot = winBot)
    {
    if(e.offsetHeight &lt; winHeight)
        return(posTop - (winHeight - e.offsetHeight));
    else
        return(posTop);
    }
else
    return(winTop);
}}}
}}} <- Das gehört noch dazu!

{{{
var posTop = findPosY(e);
var posBot = posTop + e.offsetHeight;
var winTop = findScrollY();
var winHeight = findWindowHeight();
var winBot = winTop + winHeight;
if(posTop = winTop)
    return(posTop);
else if(posBot = winBot)
    {
    if(e.offsetHeight &lt; winHeight)
        return(posTop - (winHeight - e.offsetHeight));
    else
        return(posTop);
    }
else
    return(winTop);
}}}


!!Kein Link zu Wikiwort:
{{{
Soll bei einem WikiWort kein Link entstehen, muss man 
nur eine Tilde (~) direkt vor das WikiWort setzen.

WikiWort
~WikiWort
GmbH
~GmbH
Linien-Bus
~Linien-Bus
}}}

WikiWort
~WikiWort
GmbH
~GmbH
Linien-Bus
~Linien-Bus


!!Versteckter Text:
{{{
Formatierung für Kommentare, Anmerkungen und für Textpassagen,
die in der NormalAnsicht nicht sichtbar sein sollen:

In normalen Seiten (Tiddler): /% Das ist ein Kommentar %/
Im PageTemplate (HTML): <!-- Das ist ein Kommentar -->
In StyleSheets (CSS): /* Das ist ein Kommentar */
In PlugIns (JavaSkript): /* Das ist ein Kommentar */ oder // zu Beginn
jeder KommentarZeile
}}}


!!Waagerechte Trennlinie:
{{{
Eine WaagerechteTrennlinie entsteht, wenn am Zeilenanfang vier
Minuszeichen (-) eingegeben werden
----
}}}
----


!!~HTML-Tabelle:
!!!Einfache Tabelle
{{{
|!Spalte 1|!Spalte 2|!Spalte 3|
|Zelle 1/1|Zelle 1/2|Zelle 1/3|
|Zelle 2/1|Zelle 2/2|Zelle 2/3|
}}}
|!Spalte 1|!Spalte 2|!Spalte 3|
|Zelle 1/1|Zelle 1/2|Zelle 1/3|
|Zelle 2/1|Zelle 2/2|Zelle 2/3|
!!!Komplexe Tabelle
{{{
|!Überschriften: Ein Ausrufungszeichen (!) direkt nach dem senkr. Stich.|!Überschrift 2|!Überschrift 3|
|Zeile 1, Spalte 1|Zeile 1, Spalte 2|Zeile 1, Spalte 3|
|>|>|Zellen innerhalb einer Zeile verbinden mit >|
|Zellen verbinden innerhalb einer Spalte mit ~|>| Ein Leerzeichen vor dem Text in einer Zelle ergibt rechtsbündigen Text|
|~|>| Je ein Leerzeichen vor und nach dem Text ergibt zentrierten Text |
|>|>|bgcolor(green):Hintergrundfarbe: bgcolor(Farbe(z.B. red, green)):|
|Tabelle 1: Eine Tabellenbeschriftung entsteht, wenn man die Tabelle mit einer Zelle abschliesst, auf die ein c folgt|c
}}}
|!Überschriften: Ein Ausrufungszeichen (!) direkt nach dem senkr. Stich.|!Überschrift 2|!Überschrift 3|
|Zeile 1, Spalte 1|Zeile 1, Spalte 2|Zeile 1, Spalte 3|
|>|>|Zellen innerhalb einer Zeile verbinden mit >|
|Zellen verbinden innerhalb einer Spalte mit ~|>| Ein Leerzeichen vor dem Text in einer Zelle ergibt rechtsbündigen Text|
|~|>| Je ein Leerzeichen vor und nach dem Text ergibt zentrierten Text |
|>|>|bgcolor(green):Hintergrundfarbe: bgcolor(Farbe(z.B. red, green)):|
|Tabelle 1: Eine Tabellenbeschriftung entsteht, wenn man die Tabelle mit einer Zelle abschliesst, auf die ein c folgt|c


!!Link auf Dateien:
{{{
Vorsicht! Die Backslashs müssen durch Slashs ersetzt werden!
(veraltet?)
[[bel. Text|pfad/zur/Datei.pdf]]
}}}
[[bel. Text|pfad/zur/Datei.pdf]]


!!~UrlCodierung:
{{{
Sonderzeichen und Umlaute in der URL (Pfad im Browser) mögen
die Browser nicht so gerne.
Man ersetzt die Sonderzeichen und/oder Umlaute wie folgt (siehe
auch URL encode chart):

Zeichen	escape code
Leerzeichen	%20
Neue Zeile	%0D
>		%3E
%		%25
}		%7D
\		%5C
~		%7E
]		%5D
;		%3B
?		%3F
@		%40
&		%26
<		%3C
#		%23
{		%7B
|		%7C
^		%5E
[		%5B
`		%60
/		%2F
:		%3A
=		%3D
$		%24
÷		%F7
Ä		%C4
Ö		%D6
Ü		%DC
ä		%E4
ö		%F6
ü		%FC
ß		%DF
}}}


Die Änderungen der Seite können [[hier|Änderungen Speichern]] gespeichert werden. Voraussetzung ist, das der schreibende Zugriff auf die Datei index.html gegeben ist. Dies klappt allerdings nicht, wenn in der Datei der Wert {{{chkHttpReadOnly:}}} auf {{{true}}} gestellt worden ist,



Um in Concrete5 den Upload von Dateien zu ermöglichen, müssen ein paar Einstellungen in der php.ini vorgenommen werden. In der Regel ist diese Datei bei Linuxsystemen im Verzeichnis /etc/php5/apache2/php.ini zu finden.

Mit dem Befehl sudo nano /etc/php5/apache2/php.ini kann diese editiert werden.

Hier sind folgende Einträge sinnvoll anzupassen:

{{{
file_uploads = On
upload_max_filesize = 100M
post_max_size = 100M
upload_tmp_dir = /tmp/
}}}

Alternativ kann auch die .htaccess angepasst und mit folgenden Werten befüllt werden:

{{{
php_value max_execution_time 60
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value upload_tmp_dir /tmp/
}}}

Abschließend solltet Ihr euren Webserver mit dem Befehl {{{service apache2 restart}}} neu starten, damit ein Einstellungen angewendet werden.



[[Willkommen bei meinem Blog !!!]]
[[Aktuelles]]
//--
//-- TiddlyWiki German Translation - r12283
//-- Maintainer: Besim Karadeniz <besim(-at-)karadeniz(-dot-)de>
//-- Web: www.karadeniz.de/tiddlywiki/
//--

if (config.options.txtUserName == "YourName")
	merge(config.options,{txtUserName: "IhrName"});

merge(config.tasks,{
	save: {text: "speichern", tooltip: "Änderungen in dieses TiddlyWiki speichern", action: saveChanges},
	sync: {text: "synchronisieren", tooltip: "Änderungen mit anderen TiddlyWiki-Dateien und Servern synchronisieren", content: '<<sync>>'},
	importTask: {text: "importieren", tooltip: "Tiddler und Plugins aus anderen TiddlyWiki-Dateien und Servern importieren", content: '<<importTiddlers>>'},
	tweak: {text: "optimieren", tooltip: "Erscheinungsbild und Reaktion des TiddlyWiki optimieren", content: '<<options>>'},
	upgrade: {text: "upgraden", tooltip: "Upgraden des Kerncodes von TiddlyWiki", content: '<<upgrade>>'},
	plugins: {text: "Plugins", tooltip: "Installierte Plugins verwalten", content: '<<plugins>>'}
});

// Optionen, die im Options-Panel oder/in Cookies eingestellt werden koennen
merge(config.optionsDesc,{
	txtUserName: "Ihr Benutzername zum Unterzeichnen Ihrer Einträge",
	chkRegExpSearch: "Reguläre Ausdrücke in der Suche aktivieren",
	chkCaseSensitiveSearch: "Groß-/Kleinschreibung in der Suche aktivieren",
	chkIncrementalSearch: "Inkrementelle Zeichen-für-Zeichen-Suche",
	chkAnimate: "Animationen aktivieren",
	chkSaveBackups: "Beim Speichern ein Backup erstellen",
	chkAutoSave: "Automatisch speichern",
	chkGenerateAnRssFeed: "RSS-Feed beim Speichern generieren",
	chkSaveEmptyTemplate: "Leere Vorlage beim Speichern generieren",
	chkOpenInNewWindow: "Externe Links in einem neuen Fenster öffnen",
	chkToggleLinks: "Klick auf geöffnete Tiddler lässt diese schließen",
	chkHttpReadOnly: "Bearbeitungsfunktionen ausblenden, wenn Zugriff via HTTP",
	chkForceMinorUpdate: "Bearbeitungen als kleine Änderungen mit Beibehaltung von Datum und Zeit behandeln",
	chkConfirmDelete: "Löschbestätigung vor dem Löschen von Tiddlern",
	chkInsertTabs: "Benutzen Sie die Tabulatortaste um Tabulatorzeichen einzufügen anstelle jeweils zum nächsten Feld zu springen",
	txtBackupFolder: "Verzeichnisname für Backup Dateien:",
	txtMaxEditRows: "Maximale Zahl von Zeilen in einer Textbox eines Tiddlers:",
	txtTheme: "Name des zu verwendenden Themes",
	txtFileSystemCharSet: "Standard-Zeichensatz beim Speichern von Änderungen (nur Firefox/Mozilla)"});

merge(config.messages,{
	customConfigError: "Beim Laden von Plugins sind Fehler aufgetreten. Siehe PluginManager für Details",
	pluginError: "Fehler: %0",
	pluginDisabled: "Nicht ausgeführt, da durch 'systemConfigDisable'-Tag deaktiviert",
	pluginForced: "Ausgeführt, da durch 'systemConfigForce'-Tag erzwungen",
	pluginVersionError: "Nicht ausgeführt, da dieses Plugin eine neuere Version von TiddlyWiki erfordert",
	nothingSelected: "Nichts ausgewählt. Sie müssen zuerst ein oder mehrere Elemente auswählen",
	savedSnapshotError: "Es scheint, dass dieses TiddlyWiki inkorrekt gespeichert wurde. Bitte besuchen Sie http://www.tiddlywiki.com/#Download für Details",
	subtitleUnknown: "(unbekannt)",
	undefinedTiddlerToolTip: "Der Tiddler '%0' existiert noch nicht",
	shadowedTiddlerToolTip: "Der Tiddler '%0' existiert noch nicht, hat aber einen vordefinierten Schatteneintrag",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "Externer Link zu %0",
	noTags: "Es gibt keine getaggten Tiddler",
	notFileUrlError: "Sie müssen zunächst dieses TiddlyWiki in eine Datei speichern, bevor Änderungen gespeichert werden können",
	cantSaveError: "Änderungen können nicht gespeichert werden. Mögliche Gründe:\n- Ihr Browser unterstützt das Abspeichern nicht (Firefox, Internet Explorer, Safari und Opera können dies mit richtiger Konfiguration)\n- Der Pfadname zu Ihrem TiddlyWiki enthält ungültige Zeichen\n- Die TiddlyWiki-HTML-Datei wurde verschoben oder umbenannt",
	invalidFileError: "Die originale Datei '%0' scheint kein gültiges TiddlyWiki zu sein",
	backupSaved: "Backup gespeichert",
	backupFailed: "Fehler beim Speichern des Backup",
	rssSaved: "RSS-Feed gespeichert",
	rssFailed: "Fehler beim Speichern des RSS-Feed",
	emptySaved: "Leere Vorlage gespeichert",
	emptyFailed: "Fehler beim Speichern der leeren Vorlage",
	mainSaved: "TiddlyWiki-Datei gespeichert",
	mainFailed: "Fehler beim Speichern der TiddlyWiki-Datei. Ihre Änderungen wurden nicht gespeichert",
	macroError: "Fehler im Makro <<\%0>>",
	macroErrorDetails: "Fehler beim Ausführen von Makro <<\%0>>:\n%1",
	missingMacro: "Kein entsprechendes Makro vorhanden",
	overwriteWarning: "Ein Tiddler namens '%0' existiert bereits. Wählen Sie OK zum Überschreiben",
	unsavedChangesWarning: "WARNUNG! Ungespeicherte Änderungen im TiddlyWiki vorhanden\n\nWählen Sie OK zum Speichern\nWählen Sie ABBRECHEN/CANCEL zum Verwerfen",
	confirmExit: "--------------------------------\n\nUngespeicherte Änderungen im TiddlyWiki vorhanden. Wenn Sie fortfahren, werden Sie diese Änderungen verlieren\n\n--------------------------------",
	saveInstructions: "SaveChanges",
	unsupportedTWFormat: "Nicht unterstütztes TiddlyWiki-Format '%0'",
	tiddlerSaveError: "Fehler beim Speichern von Tiddler '%0'",
	tiddlerLoadError: "Fehler beim Laden von Tiddler '%0'",
	wrongSaveFormat: "Speichern im Speicherformat '%0' nicht möglich. Standardformat zum Speichern wird verwendet.",
	invalidFieldName: "Ungültiger Dateiname %0",
	fieldCannotBeChanged: "Feld '%0' kann nicht geändert werden",
	loadingMissingTiddler: "Es wird versucht, den Tiddler '%0' vom Server '%1' bei\n\n'%2' im Workspace '%3' abzurufen",
	upgradeDone: "Das Upgrade auf Version %0 ist komplett\n\nKlicken Sie auf 'OK' zum Neuladen des aktualisierten TiddlyWiki",
	invalidCookie: "Ungültiger Cookie '%0'"});

merge(config.messages.messageClose,{
	text: "schließen",
	tooltip: "diesen Textbereich schließen"});

config.messages.backstage = {
	open: {text: "Backstage", tooltip: "Öffnen Sie den Backstage-Bereich für Arbeiten an Entwicklungs- und Bearbeitungsaufgaben"},
	close: {text: "schließen", tooltip: "Backstage-Bereich schließen"},
	prompt: "Backstage: ",
	decal: {
		edit: {text: "bearbeiten", tooltip: "Den Tiddler '%0' bearbeiten"}
	}
};

config.messages.listView = {
	tiddlerTooltip: "Klick für den vollen Text dieses Tiddlers",
	previewUnavailable: "(Vorschau nicht vorhanden)"
};

config.messages.dates.months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November","Dezember"];
config.messages.dates.days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
config.messages.dates.shortMonths = ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"];
config.messages.dates.shortDays = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
// Suffixe für Datum (englischsprachig), z.B. "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["st","nd","rd","th","th","th","th","th","th","th",
	"th","th","th","th","th","th","th","th","th","th",
	"st","nd","rd","th","th","th","th","th","th","th",
	"st"];
config.messages.dates.am = "am";
config.messages.dates.pm = "pm";

merge(config.messages.tiddlerPopup,{
	});

merge(config.views.wikified.tag,{
	labelNoTags: "keine Tags",
	labelTags: "Tags: ",
	openTag: "Öffne Tag '%0'",
	tooltip: "Zeige Tiddlers mit Tags '%0'",
	openAllText: "Öffne alle",
	openAllTooltip: "Alle diese Tiddler öffnen",
	popupNone: "Keine anderen Tiddler mit '%0' getaggt"});

merge(config.views.wikified,{
	defaultText: "Der Tiddler '%0' existiert noch nicht. Doppelklicken zum Erstellen",
	defaultModifier: "(fehlt)",
	shadowModifier: "(vordefinierter Schatten-Tiddler)",
	dateFormat: "DD. MMM YYYY",
	createdPrompt: "erstellt"});

merge(config.views.editor,{
	tagPrompt: "Geben Sie die Tags durch Leerstellen getrennt ein, [[benutzen Sie doppelte eckige Klammern]] falls nötig, oder wählen Sie vorhandene",
	defaultText: "Geben Sie den Text für '%0' ein"});

merge(config.views.editor.tagChooser,{
	text: "Tags",
	tooltip: "Wählen Sie vorhandene Tags zum Hinzufügen zu diesem Tiddler aus",
	popupNone: "Es sind keine Tags definiert",
	tagTooltip: "Tag '%0' hinzufügen"});

merge(config.messages,{
	sizeTemplates:
		[
		{unit: 1024*1024*1024, template: "%0\u00a0GB"},
		{unit: 1024*1024, template: "%0\u00a0MB"},
		{unit: 1024, template: "%0\u00a0KB"},
		{unit: 1, template: "%0\u00a0B"}
		]});

merge(config.macros.search,{
	label: "suchen",
	prompt: "Dieses TiddlyWiki durchsuchen",
	accessKey: "F",
	successMsg: "%0 Tiddler gefunden, die %1 enthalten",
	failureMsg: "Keine Tiddler gefunden, die %0 enthalten"});

merge(config.macros.tagging,{
	label: "Tagging: ",
	labelNotTag: "kein Tagging",
	tooltip: "Liste der Tiddler, die mit '%0' getaggt sind"});

merge(config.macros.timeline,{
	dateFormat: "DD. MMM YYYY"});

merge(config.macros.allTags,{
	tooltip: "Tiddler, die mit '%0' getagged sind, anzeigen",
	noTags: "Keine getaggten Tiddler vorhanden"});

config.macros.list.all.prompt = "Alle Tiddler in alphabetischer Reihenfolge";
config.macros.list.missing.prompt = "Tiddler, auf die verwiesen wird, die aber nicht existieren";
config.macros.list.orphans.prompt = "Tiddler, auf die nicht von anderen Tiddlern verwiesen wird";
config.macros.list.shadowed.prompt = "Tiddler, für die Standardeinträge existieren";
config.macros.list.touched.prompt = "Tiddlers, die lokal verändert wurden";

merge(config.macros.closeAll,{
	label: "alle schließen",
	prompt: "Alle angezeigten Tiddler schließen (außer denen, die gerade bearbeitet werden)"});

merge(config.macros.permaview,{
	label: "Permaview",
	prompt: "Erzeugt einen URL, mit dem auf alle gerade geöffneten Tiddler verwiesen werden kann"});

merge(config.macros.saveChanges,{
	label: "Änderungen speichern",
	prompt: "Alle Änderungen speichern",
	accessKey: "S"});

merge(config.macros.newTiddler,{
	label: "Neuer Tiddler",
	prompt: "Neuen Tiddler erstellen",
	title: "Neuer Tiddler",
	accessKey: "N"});

merge(config.macros.newJournal,{
	label: "Neues Journal",
	prompt: "Neuen Tiddler mit aktuellem Datum und aktueller Zeit erstellen",
	accessKey: "J"});

merge(config.macros.options,{
	wizardTitle: "Erweiterte Optionen verändern",
	step1Title: "Diese Optionen werden mit Cookies in Ihrem Browser gespeichert",
	step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Unbekannte Optionen anzeigen</input>",
	unknownDescription: "//(unbekannt)//",
	listViewTemplate: {
		columns: [
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Description', field: 'description', title: "Beschreibung", type: 'WikiText'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'}
			]}
	});

merge(config.macros.plugins,{
	wizardTitle: "Plugins verwalten",
	step1Title: "Aktuell geladene Plugins",
	step1Html: "<input type='hidden' name='markList'></input>",
	skippedText: "(Dieses Plugin wurde nicht ausgeführt, da es nach dem Start hinzugefügt wurde)",
	noPluginText: "Es sind keine Plugins installiert",
	confirmDeleteText: "Wollen Sie wirklich folgende Plugins löschen:\n\n%0",
	removeLabel: "systemConfig-Tag entfernen",
	removePrompt: "systemConfig-Tag entfernen",
	deleteLabel: "löschen",
	deletePrompt: "Diese Tiddler endgültig löschen",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Description', field: 'Description', title: "Beschreibung", type: 'String'},
			{name: 'Version', field: 'Version', title: "Version", type: 'String'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Grösse", type: 'Size'},
			{name: 'Forced', field: 'forced', title: "Erzwungen", tag: 'systemConfigForce', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "Deaktiviert", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "Geladen", type: 'Boolean', trueText: "Ja", falseText: "Nein"},
			{name: 'Startup Time', field: 'startupTime', title: "Startzeit", type: 'String'},
			{name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Fehler", falseText: "OK"},
			{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
			],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'}
			]}
	});

merge(config.macros.toolbar,{
	moreLabel: "mehr",
	morePrompt: "Weitere Funktionen anzeigen",
	lessLabel: "weniger",
	lessPrompt: "Zusätzliche Befehle verstecken",
	separator: "|"
	});

merge(config.macros.refreshDisplay,{
	label: "aktualisieren",
	prompt: "Gesamte TiddlyWiki-Ansicht aktualisieren"
	});

merge(config.macros.importTiddlers,{
	readOnlyWarning: "Sie können nicht in eine schreibgeschützte TiddlyWiki-Datei importieren. Versuchen Sie diese über eine file:// URL zu öffnen",
	wizardTitle: "Tiddler aus anderer Datei oder anderem Server importieren",
	step1Title: "Schritt 1: Server oder TiddlyWiki-Datei ausfindig machen",
	step1Html: "Typ des Servers auswählen: <select name='selTypes'><option value=''>Wählen...</option></select><br>URL oder Pfadnamen eingeben: <input type='text' size=50 name='txtPath'><br>...oder nach einer Datei browsen: <input type='file' size=50 name='txtBrowse'><br><hr>...oder einen vordefinierten Feed auswählen: <select name='selFeeds'><option value=''>Wählen...</option></select>",
	openLabel: "öffnen",
	openPrompt: "Verbindung zu dieser Datei oder Server starten",
	statusOpenHost: "Verbindung zum Host starten",
	statusGetWorkspaceList: "Liste von vorhandenen Workspaces abrufen",
	step2Title: "Schritt 2: Workspace auswählen",
	step2Html: "Einen Workspace-Namen eingeben: <input type='text' size=50 name='txtWorkspace'><br>...oder ein Workspace auswählen: <select name='selWorkspace'><option value=''>Wählen...</option></select>",
	cancelLabel: "abbrechen",
	cancelPrompt: "Diesen Import abbrechen",
	statusOpenWorkspace: "Workspace wird geöffnet",
	statusGetTiddlerList: "Abrufen der Liste von vorhandenen Workspaces",
	errorGettingTiddlerList: "Fehler beim Abrufen der Liste der Tiddler, klicken Sie auf ABBRECHEN/CANCEL, um es nochmal zu probieren",
	step3Title: "Schritt 3: Zu importierende Tiddler auswählen",
	step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Links dieser Tiddler zum Server erhalten, um nachfolgende Änderungen synchronisieren zu können</input><br><input type='checkbox' checked='false' name='chkSave'>Speichern der Details dieses Servers in einem 'systemServer'Tiddler namens:</input> <input type='text' size=25 name='txtSaveTiddler'>",
	importLabel: "importieren",
	importPrompt: "Diese Tiddler importieren",
	confirmOverwriteText: "Wollen Sie wirklich folgende Tiddler überschreiben:\n\n%0",
	step4Title: "Schritt 4: Importieren von %0 Tiddler",
	step4Html: "<input type='hidden' name='markReport'></input>",
	doneLabel: "Erledigt",
	donePrompt: "Diesen Assistenten schliessen",
	statusDoingImport: "Tiddler werden importiert",
	statusDoneImport: "Alle Tiddler importiert",
	systemServerNamePattern: "%2 auf %1",
	systemServerNamePatternNoWorkspace: "%1",
	confirmOverwriteSaveTiddler: "Der Tiddler '%0' existiert bereits. Klicken Sie auf 'OK' um ihn mit den Details dieses Servers zu überschreiben, oder 'Abbrechen', um ihn unverändert zu lassen",
	serverSaveTemplate: "|''Eingabe:''|%0|\n|''URL:''|%1|\n|''Workspace:''|%2|\n\nDieser Tiddler wurde automatisch erstellt, um Details dieses Servers aufzuzeichnen",
	serverSaveModifier: "(System)",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Grösse", type: 'Size'},
			{name: 'Tags', field: 'tags', title: "Tags", type: 'Tags'}
			],
		rowClasses: [
			]}
	});

merge(config.macros.upgrade,{
	wizardTitle: "Upgraden des Kerncodes von TiddlyWiki",
	step1Title: "Update oder Reparatur dieses TiddlyWiki auf die aktuellste Version",
	step1Html: "Sie sind dabei, auf die aktuellste Version des TiddlyWiki-Kerncodes upzugraden (von <a href='%0' class='externalLink' target='_blank'>%1</a>). Ihre Inhalte werden während dem Upgrade erhalten bleiben.<br><br>Bitte beachten Sie, dass Kerncode-Updates mit älteren Plugins kollidieren können. Wenn Sie Probleme mit der aktualisierten Datei beobachten, besuchen Sie bitte <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
	errorCantUpgrade: "Upgrade dieses TiddlyWiki nicht möglich. Sie können nur lokal abgespeicherte TiddlyWiki-Dateien upgraden",
	errorNotSaved: "Sie müssen zunächst Änderungen speichern, bevor Sie ein Upgrade starten können",
	step2Title: "Upgrade-Details bestätigen",
	step2Html_downgrade: "Sie sind dabei, von der TiddlyWiki-Version %1 auf die Version %0 downzugraden.<br><br>Der Downgrade auf eine frühere Version von TiddlyWiki wird nicht empfohlen",
	step2Html_restore: "Dieses TiddlyWiki scheint bereits die aktuellste Version des Kerncodes (%0) einzusetzen.<br><br>Sie können mit dem Upgrade fortsetzen, um sicherzustellen, dass der Kerncode nicht korrumpiert oder beschädigt wurde",
	step2Html_upgrade: "Sie sind dabei, von der TiddlyWiki-Version %1 auf die Version %0 upzugraden",
	upgradeLabel: "upgraden",
	upgradePrompt: "Vorbereiten des Upgrade-Prozesses",
	statusPreparingBackup: "Backup vorbereiten",
	statusSavingBackup: "Backup-Datei speichern",
	errorSavingBackup: "Ein Problem mit dem Speichern der Backup-Datei ist aufgetreten",
	statusLoadingCore: "Kerncode laden",
	errorLoadingCore: "Fehler beim Laden des Kerncodes",
	errorCoreFormat: "Fehler im neuen Kerncode",
	statusSavingCore: "Neuen Kerncode speichern",
	statusReloadingCore: "Neuen Kerncode neu laden",
	startLabel: "starten",
	startPrompt: "Upgrade-Prozess starten",
	cancelLabel: "abbrechen",
	cancelPrompt: "Upgrade-Prozess abbrechen",
	step3Title: "Upgrade abgebrochen",
	step3Html: "Sie haben den Upgrade-Prozess abgebrochen"
	});

merge(config.macros.sync,{
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Server Type', field: 'serverType', title: "Server-Typ", type: 'String'},
			{name: 'Server Host', field: 'serverHost', title: "Server-Host", type: 'String'},
			{name: 'Server Workspace', field: 'serverWorkspace', title: "Server-Workspace", type: 'String'},
			{name: 'Status', field: 'status', title: "Status der Synchronisation", type: 'String'},
			{name: 'Server URL', field: 'serverUrl', title: "Server-URL", text: "View", type: 'Link'}
			],
		rowClasses: [
			],
		buttons: [
			{caption: "Diese Tiddler synchronisieren", name: 'sync'}
			]},
	wizardTitle: "Mit externen Servern oder Dateien synchronisieren",
	step1Title: "Wählen Sie die Tiddler aus, die Sie synchronisieren möchten",
	step1Html: '<input type="hidden" name="markList"></input>',
	syncLabel: "synchronisieren",
	syncPrompt: "Diese Tiddler synchronisieren",
	hasChanged: "Verändert während Trennung",
	hasNotChanged: "Unverändert während Trennung",
	syncStatusList: {
		none: {text: "...", display:null, className:'notChanged'},
		changedServer: {text: "Auf dem Server geändert", display:null, className:'changedServer'},
		changedLocally: {text: "Im ausgesteckten Zustand geändert", display:null, className:'changedLocally'},
		changedBoth: {text: "Im ausgesteckten Zustand und auf dem Server geändert", display:null, className:'changedBoth'},
		notFound: {text: "Auf dem Server nicht gefunden", display:null, className:'notFound'},
		putToServer: {text: "Aktualisierung auf dem Server gespeichert", display:null, className:'putToServer'},
		gotFromServer: {text: "Aktualisierung vom Server abgerufen", display:null, className:'gotFromServer'}
		}
	});

merge(config.macros.annotations,{
	});

merge(config.commands.closeTiddler,{
	text: "schließen",
	tooltip: "Diesen Tiddler schließen"});

merge(config.commands.closeOthers,{
	text: "andere schließen",
	tooltip: "Alle anderen Tiddler schließen"});

merge(config.commands.editTiddler,{
	text: "bearbeiten",
	tooltip: "Diesen Tiddler bearbeiten",
	readOnlyText: "betrachten",
	readOnlyTooltip: "Quellcode dieses Tiddlers betrachten"});

merge(config.commands.saveTiddler,{
	text: "fertig",
	tooltip: "Änderungen an diesem Tiddler speichern"});

merge(config.commands.cancelTiddler,{
	text: "abbrechen",
	tooltip: "Änderungen an diesem Tiddler verwerfen",
	warning: "Wollen Sie wirklich Änderungen in '%0' verwerfen?",
	readOnlyText: "fertig",
	readOnlyTooltip: "Diesen Tiddler normal anzeigen"});

merge(config.commands.deleteTiddler,{
	text: "löschen",
	tooltip: "Diesen Tiddler löschen",
	warning: "Wollen Sie '%0' wirklich löschen?"});

merge(config.commands.permalink,{
	text: "Permalink",
	tooltip: "Permalink für diesen Tiddler"});

merge(config.commands.references,{
	text: "Referenzen",
	tooltip: "Alle Tiddler zeigen, die auf diesen verweisen",
	popupNone: "Keine Referenzen"});

merge(config.commands.jump,{
	text: "springen",
	tooltip: "Zu anderem, geöffneten Tiddler springen"});

merge(config.commands.syncing,{
	text: "Synchronisierung läuft",
	tooltip: "Synchronisation dieses Tiddlers mit einem Server oder einer externen Datei kontrollieren",
	currentlySyncing: "<div>Aktuell am Synchronisieren mit <span class='popupHighlight'>'%0'</span> zu:</"+"div><div>Host: <span class='popupHighlight'>%1</span></"+"div><div>Workspace: <span class='popupHighlight'>%2</span></"+"div>", // Hinweis - Das Schliessen des <div>-Tag verlassen
	notCurrentlySyncing: "Derzeit keine Synchronisierung",
	captionUnSync: "Synchronisierung dieses Tiddlers stoppen",
	chooseServer: "Diesen Tiddler mit anderem Server synchronisieren:",
	currServerMarker: "\u25cf ",
	notCurrServerMarker: "  "});

merge(config.commands.fields,{
	text: "Felder",
	tooltip: "Erweiterte Felder dieses Tiddlers anzeigen",
	emptyText: "Keine erweiterten Felder für diesen Tiddler vorhanden",
	listViewTemplate: {
		columns: [
			{name: 'Field', field: 'field', title: "Feld", type: 'String'},
			{name: 'Value', field: 'value', title: "Wert", type: 'String'}
			],
		rowClasses: [
			],
		buttons: [
			]}});

merge(config.shadowTiddlers,{
	DefaultTiddlers: "[[GettingStarted]]",
	MainMenu: "[[GettingStarted]]",
	SiteTitle: "Mein TiddlyWiki",
	SiteSubtitle: "ein wiederverwendbares nichtlineares, persönliches ~Web-Notizbuch",
	SiteUrl: "",
	SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD. MMM YYYY" "Journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "Optionen \u00bb" "Optionen von TiddlyWiki ändern">>',
	SideBarTabs: '<<tabs txtMainTab "Zeitachse" "Zeitachse" TabTimeline "Alles" "Alle Tiddler" TabAll "Tags" "Alle Tags" TabTags "Mehr" "Weitere Listen" TabMore>>',
	TabMore: '<<tabs txtMoreTab "Fehlend" "Fehlende Tiddler" TabMoreMissing "Waisen" "Verwaiste Tiddler" TabMoreOrphans "Schatten" "Tiddler mit Schatteneinträgen" TabMoreShadowed>>'
	});

merge(config.annotations,{
	AdvancedOptions: "Dieser Schatten-Tiddler bietet Zugang zu diversen erweiterten Optionen",
	ColorPalette: "Diese Werte in diesem Schatten-Tiddler legen das Farbschema der Benutzerschnittstelle des TiddlyWiki fest",
	DefaultTiddlers: "Die in diesem Schatten-Tiddler aufgelisteten Tiddler werden automatisch beim Start des TiddlyWiki angezeigt",
	EditTemplate: "Die HTML-Vorlage in diesem Schatten-Tiddler legt das Aussehen von Tiddler während ihrer Bearbeitung fest",
	GettingStarted: "Dieser Schatten-Tiddler bietet eine einfache Bedienungsanleitung",
	ImportTiddlers: "Dieser Schatten-Tiddler bietet Zugang zum Import von Tiddler",
	MainMenu: "Dieser Schatten-Tiddler dient als Container für das Hauptmenü in der linksseitigen Spalte des Bildschirms",
	MarkupPreHead: "Dieser Tiddler wird an der Spitze der <head>-Sektion der HTML-Datei des TiddlyWiki eingefügt",
	MarkupPostHead: "Dieser Tiddler wird am Ende der <head>-Sektion der HTML-Datei des TiddlyWiki eingefügt",
	MarkupPreBody: "Dieser Tiddler wird an der Spitze der <body>-Sektion der HTML-Datei des TiddlyWiki eingefügt",
	MarkupPostBody: "Dieser Tiddler wird am Ende der <body>-Sektion der HTML-Datei des TiddlyWiki unmittelbar nach dem Scriptblock eingefügt",
	OptionsPanel: "Dieser Schatten-Tiddler dient als Container für das einblendbare Optionsfeld in der rechtsseitigen Seitenleiste",
	PageTemplate: "Die HTML-Vorlage in diesem Schatten-Tiddler legt das allgemeine Aussehen des TiddlyWiki fest",
	PluginManager: "Dieser Schatten-Tiddler bietet Zugang zum Plugin-Manager",
	SideBarOptions: "Dieser Schatten-Tiddler dient als Container für das Optionsfeld in der rechtsseitigen Seitenleiste",
	SideBarTabs: "Dieser Schatten-Tiddler dient als Container für das Tab-Panel in der rechtsseitigen Seitenleiste",
	SiteSubtitle: "Dieser Schatten-Tiddler enthält den zweiten Teil der Seitenüberschrift",
	SiteTitle: "Dieser Schatten-Tiddler enthält den ersten Teil der Seitenüberschrift",
	SiteUrl: "Dieser Schatten-Tiddler sollte den vollständigen Ziel-URL der Veröffentlichung enthalten",
	StyleSheetColors: "Dieser Schatten-Tiddler enthält CSS-Definitionen bezüglich der Farbe von Seitenelementen. ''DIESEN TIDDLER NICHT BEARBEITEN'', fügen Sie Ihre Änderungen stattdessen in den StyleSheet-Schatten-Tiddler ein",
	StyleSheet: "Dieser Tiddler kann benutzerspezifische CSS-Definitionen enthalten",
	StyleSheetLayout: "Dieser Schatten-Tiddler enthält CSS-Definitionen bezüglich dem Aussehen von Seitenelementen. ''DIESEN TIDDLER NICHT BEARBEITEN'', fügen Sie Ihre Änderungen stattdessen in den StyleSheet-Schatten-Tiddler ein",
	StyleSheetLocale: "Dieser Schatten-Tiddler enthält CSS-Definitionen bezüglich lokale Übersetzungen",
	StyleSheetPrint: "Dieser Schatten-Tiddler enthält CSS-Definitionen zum Drucken",
	TabAll: "Dieser Schatten-Tiddler enthält den Inhalt des 'Alles'-Tab in der rechtsseitigen Seitenleiste",
	TabMore: "Dieser Schatten-Tiddler enthält den Inhalt des 'Mehr'-Tab in der rechtsseitigen Seitenleiste",
	TabMoreMissing: "Dieser Schatten-Tiddler enthält den Inhalt des 'Fehlend'-Tab in der rechtsseitigen Seitenleiste",
	TabMoreOrphans: "Dieser Schatten-Tiddler enthält den Inhalt des 'Waisen'-Tab in der rechtsseitigen Seitenleiste",
	TabMoreShadowed: "Dieser Schatten-Tiddler enthält den Inhalt des 'Schatten'-Tab in der rechtsseitigen Seitenleiste",
	TabTags: "Dieser Schatten-Tiddler enthält den Inhalt des 'Tags'-Tab in der rechtsseitigen Seitenleiste",
	TabTimeline: "Dieser Schatten-Tiddler enthält den Inhalt des 'Zeitachse'-Tab in der rechtsseitigen Seitenleiste",
	ToolbarCommands: "Dieser Schatten-Tiddler legt fest, welche Befehle in Tiddler-Toolbars angezeigt werden",
	ViewTemplate: "Die HTML-Vorlage in diesem Schatten-Tiddler legt das Aussehen der Tiddler fest"
	});

// Uebersetzungen von Schatten-Tiddlern ausserhalb der offiziellen lingo.js
merge(config.shadowTiddlers,{
	OptionsPanel: "Diese [[Interface-Einstellungen|InterfaceOptions]] zur Anpassung von TiddlyWiki werden in Ihrem Browser gespeichert\n\nIhr Benutzername zum Unterzeichnen Ihrer Einträge. Bitte als WikiWord (z.B. KlausBrandmüller) schreiben\n\n<<option txtUserName>>\n<<option chkSaveBackups>> [[Backups speichern|SaveBackups]]\n<<option chkAutoSave>> [[Automatisch speichern|AutoSave]]\n<<option chkRegExpSearch>> [[RegExp Suche|RegExpSearch]]\n<<option chkCaseSensitiveSearch>> [[Groß-/Kleinschreibung in Suche|CaseSensitiveSearch]]\n<<option chkAnimate>> [[Animationen aktivieren|EnableAnimations]]\n\n----\[[Erweiterte Optionen|AdvancedOptions]]\nPluginManager\nImportTiddlers",
	GettingStarted: "Um mit diesem TiddlyWiki zu starten, sollten Sie folgende Tiddler modifizieren:\n* SiteTitle & SiteSubtitle: Den [[Titel|SiteTitle]] und [[Untertitel|SiteSubtitle]] der Site, wie oben angezeigt (nach dem Speichern werden diese auch in der Titelzeile des Browsers angezeigt)\n* MainMenu: Ihr Inhaltsverzeichnis (für gewöhnlich Links)\n* DefaultTiddlers: Beinhaltet die Namen der Tiddler, die Sie angezeigt haben möchten, wenn das TiddlyWiki geöffnet wird.\nSie sollten zudem Ihren Benutzernamen zum Unterzeichnen Ihrer Bearbeitungen eingeben: <<option txtUserName>>",
	ViewTemplate: "<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></div>\n<div class='title' macro='view title'></div>\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (erstellt am <span macro='view created date'></span>)</div>\n<div class='tagging' macro='tagging'></div>\n<div class='tagged' macro='tags'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='tagClear'></div>",
	InterfaceOptions: "Die [[Interface-Einstellungen|InterfaceOptions]] werden angezeigt, wenn Sie rechts auf 'Optionen' klicken. Sie werden mit einem Cookie in Ihrem Browser gespeichert, um sie zwischen den Aufrufen zu sichern. Nähere Informationen zu den einzelnen Funktionen finden Sie, wenn Sie die Funktion selbst anklicken.",
	WikiWord: "Ein WikiWord ist ein Wort, das aus mehreren einzelnen Wörtern zusammengesetzt ist, in dem jedes Wort mit einem Grossbuchstaben beginnt und eine individuelle Seite bezeichnet.",
	SaveBackups: "[[Backups speichern|SaveBackups]] ist eine Funktion, mit der automatisch bei jedem Abspeichern ein Backup erstellt wird.",
	AutoSave: "[[Automatisches Speichern|AutoSave]] speichert automatisch Änderungen jedes Mal, wenn Sie einen Tiddler bearbeiten. Damit sinken die Chancen, dass Sie Daten verlieren. Beachten Sie jedoch, dass bei aktivierter [[Backup-Funktion|SaveBackups]] natürlich auch eine Menge Backup-Dateien erstellt werden. Entscheiden Sie sich deshalb für die eine oder andere Funktion.",
	RegExpSearch: "Mit der [[RegExp Suche|RegExpSearch]] können Sie mit regulären Suchausdrücken flexible Suchanfragen vornehmen.",
	CaseSensitiveSearch: "Die Unterscheidung der [[Groß-/Kleinschreibung in Suche|CaseSensitiveSearch]] tut genau dies.",
	EnableAnimations: "Diese Funktion aktiviert Animationen, wenn Sie einen Tiddler öffnen oder schliessen.",
	GenerateAnRssFeed: "Wenn Sie [[RSS-Feed generieren|GenerateAnRssFeed]] aktivieren, speichert TiddlyWiki automatisch einen RSS-2.0-gültigen Feed, so bald Ihr TiddlyWiki gespeichert wird. Der Feed hat den gleichen Dateinamen wie das TiddlyWiki, lediglich jedoch mit der Endung '.xml'.",
	OpenLinksInNewWindow: "Diese Funktion öffnet externe Links in einem neuen ~Browser-Fenster.",
	SaveEmptyTemplate: "Diese Funktion erwirkt, dass beim Abspeichern von Änderungen eine leere Vorlage von TiddlyWiki erzeugt wird. Dies ist als Hilfe gedacht für Entwickler, die Adaptionen von TiddlyWiki bereitstellen. Die Funktion ist nicht erforderlich, wenn Sie ein normaler Benutzer sind.",
	HideEditingFeatures: "Ist diese Funktion aktiviert, werden die Bearbeitungsfunktionen ausgeblendet, wenn das TiddlyWiki über HTTP aufgerufen wird. Der Benutzer hat dann die Möglichkeit, den Tiddler zwar betrachten zu können, aber nicht zu bearbeiten.",
	MinorChanged: "Manchmal ist es sinnvoll, dass bei kleinen Änderungen der Tiddler in der Zeitachse nicht automatisch an den Anfang gesetzt wird. Mit Aktivierung dieser Funktion werden alle Bearbeitungen von Tiddlern als kleine Änderungen betrachtet und das Änderungsdatum nicht geändert.",
	ConfirmBeforeDeleting: "Bei Aktivierung dieser Funktion fordert TiddlyWiki eine Bestätigung des Benutzers an, wenn ein Tiddler gelöscht werden soll."});
Je nachdem, wo man über Digitale Demenz etwas ließt, wird etwas andres darunter verstanden. So gibt es auf der einen Seite Leute, die darunter verstehen dass junge Menschen sich Dinge nicht mehr merken, sondern die Informationen im Computer oder Handy speichern, wodurch dass das Gehirn nicht mehr so stark trainiert wird und an Merkfähigkeit verliert. Auf der anderen Seite gibt es Menschen, die hierunter verstehen, das gespeicherte Informationen verloren gehen, wie zum Beispiel dass durch den Fortschritt neue Systeme und Softwarelösungen die alten Dateiformate nicht mehr verstehen und deswegen nicht mehr anzeigen bzw. darstellen können.

Mir ist hier ein ähnliches Thema sauer aufgestoßen, denn sehr sehr viele Links zu Webseiten, die ich mir aufgehoben habe sind nicht mehr zu gebrauchen, da die Webseite auf ein neues System umgestellt worden ist oder der Artikel gelöscht bzw. verändert wurde oder noch schlimmer, die Domain an jemand andere verkauft oder aufgegeben worden ist. Ich habe hierdurch einen super Artikel / Anleitung verloren, der beschreibt, wie man an besten einen Mailserver aufsetzt und auf was man hierbei zu achten hat. Das fehlen dieses super beschriebenen Artikels hat mich sehr viel Zeit bei der Installation und Konfiguration des neuen Servers gekostet und das nur weil, die Anleitung im Internet nicht mehr zur Verfügung stand.

Ich habe daraufhin einmal geprüft, wie viel von meinen Links noch auf die Seiten Verlinken, die ich mir ursprünglich merken wollte. Das Ergebnis war erschreckend, denn ca. 80% zeigen einfach ins Nirwana. Ja, ich weiß - für diesen Fall kann man [[https://archive.org|https://archive.org]] nutzen, aber das hilft leider nicht immer, da hier nicht alles archiviert wird. Das nächste Problem ist, das man die Links zwar Thematisch über Ordner gruppieren und Schlagworte vergeben kann, aber nicht nach dem Inhalt durchsuchen kann.

Aus diesem Grund und der entstandenen Miesere, habe ich RecordWebInfo entwickelt, einer Webseite, mit der man Informationen von anderen Webseiten als Screenshots und / oder ~PDF-Dateien in einer Datenbank speichern kann. Die gespeicherten Artikel in der Datenbank kann man Kategorien zuordnen und wie über Google wiederfinden. Ich finde diese Möglichkeit einfach genial, den so kann man die gesuchten Informationen immer leicht wiederfinden, auch wenn es diese im Internet nicht mehr geben sollte.

Bei RecordWebInfo wurde auf Sicherheit viel wert gelegt. Es wurde möglichst übersichtlicher, einfacher, schlanker Code verwendet um Fehler zu minimieren. Die Anwendung ist ebenfalls Mandanten fähig, so das sie von mehreren Leuten gleichzeitig genutzt werden kann. Davon ausgehend, das viele andere Menschen dieses Produkt auch gerne nützen werden, habe ich mich entschieden RecordWebInfo als Open Source bereit zu stellen. Ich hoffe, das ich als Linuxnutzer hiermit etwas an die Community zurück geben und den Gedanken für freie Software etwas weiter tragen kann.

So - der Anfang ist gemacht. Übt euch bitte in Geduld es kommt noch mehr.

Hier die Liste der vorhandenen Artikel:

* [[Musik in 432 Hz]]
Durch die Medien haben wir erfahren, das die Geheimdienste alle Informationen die sie bekommen können abgreifen, speichern und auswerten. Firmen sind hier auch nicht besser, den diese versuchen mit allen Tricks, möglichst viel von den Kunden in Erfahrung zu bekommen, um diesen mit gezielter Werbung bombardieren zu können.

Der Firefox ist ein guter Browser, den man sehr leicht mit zusätzlichen Funktionen erweitern kann. Hierdurch ist es möglich, die Sicherheit um einiges zu erhöhen und so das Surfen auch angenehmer zu Gestalten. So lässt sich das Tracking reduzieren, Werbung aussperren und Bandbreite für andere Anwendungen sparen.

Hier möchte ich euch zuerst einmal einige Erweiterungen empfehlen, mit denen man dieses Ziel erreichen kann. Zusätzlich dazu gibt es auch ein paar Empfehlungen, die ich selbst nicht mehr missen möchte. Mann sollte allerdings mit den Erweiterungen sparsam sein, denn je mehr installiert sind, desto langsamer wird der Firefox werden.


!Erweiterungen für den Firefox


|!Name    |!Beschreibung    |
|Adblock Edge    |Mit dieser Erweiterung kann man sehr einfach Werbung aus den Seiten ausblenden, so das dadurch etliche erst lesbar werden. In meinen Augen ein "must have"! Damit diese Erweiterung funktioniert, müssen Filterlisten angegeben werden, die von der Communidy gepflegt werden. Die Erweiterung aktualisiert diese Listen aber automatisch. Folgende zwei Listen kann ich empfehlen: https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt und https://easylist-downloads.adblockplus.org/antiadblockfilters.txt. Die erste filtert die Werbung und die zweite die Aufforderung diese Erweiterung zu deaktivieren.    |
|Better Privacy    |Diese Erweiterung kann alle so genannten Supercookies (Flash) löschen und hilft damit, das Tracking zu erschweren. Dies hilft sehr, um die Privatsphäre erhalten zu können. Die normalen Cookies sollten hierzu allerdings ebenso gelöscht werden.    |
|~FireGloves    |Dieser Erweiterung ist echtes Gold wert, denn hiermit lassen sich die so genannten Fingerprints des Browsers vereinheitlichen, so das kein Tracking mehr möglich ist. Die Erweiterung zu bekommen kann allerdings eine Herausforderung sein. Es wird gemunkelt, das die NSA hier ihre Hände im Spiel hat und das Addon aus dem Internet entfernt hat. Allerdings kann es Seiten geben, die mit dieser Erweiterung nicht mehr richtig Dargestellt werden. Dies ist allerdings sehr selten.    |
|Ghostery    |Diese Erweiterung blockiert so genannte Tracker, Web Bugs, Pixel und Beacons, die versuchen das Surfverhalten auszuspähen. Zusammen mit Better Privacy und ~FireGloves ergibt das einen Rundumschutz für die Privatsphäre.    |
|~NoScript    |Das ist ein Werkzeug für Profis! Hiermit können sämtlich Skripte auf der Webseite blockiert werden, was sich dadurch eignet, die Ausführung von Code im Browser zu beschränken. Standardmäßig werden alle Skripte blockiert so das man die notwendigen erst selbst aktiveren muss. Wer sich nicht so gut auskennt, sollte die Finger davon lassen.    |
|Flagfox    |Mit dieser Erweiterung wird in der Adressleiste der Standort der Webseite angezeigt. Es ist wirklich interessant zu wissen, welche Seite jetzt wirklich in Deutschland gehostet wird. Viele Server stehen in USA und bieten Deutsche Webseite an.    |
|~DownloadHelper    |Hiermit lassen sich Videos auf dem PC herunterladen. Ich finde das unheimlich Praktisch um im Zug sich die Videos ansehen zu können, die einem interessieren.    |

 
!Die Konfiguration des Firefox


Comming soon!
Endlich steht der erste kurze Artikel zur Verfügung. Danke für das Warten!

* [[Warum Datenschutz ein sehr wichtiges Thema ist]]
So - der Anfang ist gemacht. Übt euch bitte in Geduld es kommt noch mehr. 

Hier eine Liste der vorhandenen Artikel:
* [[Musik in 432 Hz]]
Um mit diesem TiddlyWiki zu starten, sollten Sie folgende Tiddler modifizieren:
* SiteTitle & SiteSubtitle: Den [[Titel|SiteTitle]] und [[Untertitel|SiteSubtitle]] der Site, wie oben angezeigt (nach dem Speichern werden diese auch in der Titelzeile des Browsers angezeigt)
* MainMenu: Ihr Inhaltsverzeichnis (für gewöhnlich Links)
* DefaultTiddlers: Beinhaltet die Namen der Tiddler, die Sie angezeigt haben möchten, wenn das TiddlyWiki geöffnet wird.
Sie sollten zudem Ihren Benutzernamen zum Unterzeichnen Ihrer Bearbeitungen eingeben: <<option txtUserName>>
So, der Anfang ist vollbracht. Hier die ersten Beiträge. Habt Geduld, es kommt noch mehr! Ich wünsche euch viel Spaß und Erfolg, beim Lesen und nachbauen bzw. nachstellen! Hier eine Liste der bereits existierenden Artikel.









* [[Concrete5 Dateiupload ermöglichen]] - Hier wird beschrieben, wie man den Dateiupload auf einem Apacheserver mittels PHP ermöglicht.
* [[Digitale Demenz]] - Hier beschreibe ich, was unter Digitale Demenz verstanden wird und zeige eine Lösung für Webseiten auf.
* [[Musik_in_432_Hz_konvertieren]] - Es wird ein Skript vogestellt, mit dem sehr viele Musikdateien in 432 Hz umgewandelt werden können.
* [[RecordWebInfo]] - Eine Beschreibung und Installationsanleitung für RecordWebInfo.
* [[Thunderbird|Thunderbird - Verschlüsselte Mails über SSH-Verbindung ansehen]] - Verschlüsselte Mails über ~SSH-Verbindung ansehen
* [[Teamspeakserver 3 schnell und einfach installieren / deinstallieren]] - Beschreibung, wie man Teamspeak manuell auf einem Linuxserver installieren kann.
* [[Ubuntu Server 1604 Installieren]] - Eine Installationsanleitung, wie man Ubuntu Server 1604 auf einem Rechner installieren kann.
* [[VirtualBox - Snapshots reparieren]] - In ~VirtualBox ist ein Snapshot kaputt gegangen? Hier ist die Lösung!
* [[Warum man auf Windows 10 verzichten sollte]]
* [[WordPress Addon – Crayon Syntax Highlighter]] - Hier gibt es eine kurze Beschreibung von Crayon Syntax Highlighter, einem Addon für ~WordPress


Dies ist ein Thema, bei dem Niemand alles Wissen kann, den dafür ist dieses Thema zu komplex und schnelllebig! Deswegen möchte ich euch darauf hinweisen, das auch ich Fehler machen kann und wahrscheinlich nicht alles von mir beschriebene zu 100% richtig ist, auch wenn ich mir viel Mühe gegeben habe. Deswegen möchte ich euch bitten gefundene Fehler mir mitzuteilen, damit ich diese ausbessern kann.

* [[Firefox absichern]]

Da ältere Java Versionen von Oracle dedupliziert werden, stelle ich hier zwei ältere Versionen zur Verfügung, um Spiele wie Minecraft zum laufen bewegen zu können. Wichtig ist, dass das Webblugin deaktiviert wird, @@color(red):da ansonsten eine Sicherheitslückte in dem Browser aufgerissen wird und ihr angreifbar werdet.@@ Wie man das bewerkstelligt, wird euch [[hier gezeigt: https://www.youtube.com/watch?v=C2NF8YVttjY   (ab 4:20)|https://www.youtube.com/watch?v=C2NF8YVttjY]]

[[Java jre 6u21 x86|jre-6u21-windows-i586-s.exe]]
[[Java jre 8u91 x64|jre-8u91-windows-x64.exe]]
!!!!English
Copyright (c) 2017 Michael Wagner

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.



!!!!Deutsch
Copyright (c) 2017 Michael Wagner

Hiermit wird unentgeltlich jeder Person, die eine Kopie der Software und der zugehörigen Dokumentationen (die "Software") erhält, die Erlaubnis erteilt, sie uneingeschränkt zu nutzen, inklusive und ohne Ausnahme mit dem Recht, sie zu verwenden, zu kopieren, zu verändern, zusammenzufügen, zu veröffentlichen, zu verbreiten, zu unterlizenzieren und/oder zu verkaufen, und Personen, denen diese Software überlassen wird, diese Rechte zu verschaffen, unter den folgenden Bedingungen:

Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in allen Kopien oder Teilkopien der Software beizulegen.

DIE SOFTWARE WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT, EINSCHLIESSLICH DER GARANTIE ZUR BENUTZUNG FÜR DEN VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, JEDOCH NICHT DARAUF BESCHRÄNKT. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FÜR JEGLICHEN SCHADEN ODER SONSTIGE ANSPRÜCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES ODER ANDERS IM ZUSAMMENHANG MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN.
!Inhaltsverzeichnis

[[Startseite|Willkommen bei meinem Blog !!!]]

[[Aktuelles]]

[[Gesellschaft]]
[[Gesundheit]]
[[Esoterik]]
[[IT]]
[[IT-Sicherheit]]
[[Verschwörungen]]
[[Sonstiges]]

Durch Zufall bin ich auf Musik mit 432 Hz gestoßen. Hier wird der Kammerton A mit 432 Hz anstatt 440 Hz gespielt und alle anderen Noten in Relation dazu.

1939 wurde beinahe weltweit per Konferenz der künstliche Kammerton auf 440 Hz vereinheitlicht, so das jetzt die meisten Musikinstrumente in 440 Hz gestimmt produziert werden. Die Begründung war, das man sich 440 Hz leichter merken und somit auch leichter Rechnen kann.  Außerdem wird durch die Vereinheitlichung es international einfacher, Musik originalgetreu zu spielen.
Musik in 440 Hz hört sich brillanter und lauter an, aber auch schärfer und verursacht dadurch für unseren Organismus Stress. In den USA stimmen viele klassische Orchester ihre Instrumente inzwischen schon auf 450 Hz.
Musik in 432 Hz hat eine fühlbar entspannende und heilsame Wirkung auf den Menschen. Im Internet finden sich zahllose Beiträge von Wissenschaftlern und es gibt viel darüber zu lesen. Die Wirkung lässt sich aber besser fühlen, als mit dem Verstand wahrzunehmen.

Vergleicht deshalb lieber selbst: https://www.youtube.com/watch?v=LVoVr9UwOQM

Test mit den Kammertönen mit unterschiedlichen Hz: https://www.youtube.com/watch?v=1zw0uWCNsyw


Diese heilende Wirkung ist wissenschaftlich anerkannt und es gibt therapeutische und Therapiebegleitende  Musiktherapien. Siehe z.B. http://www.icaat-medsektion.net/anthroposophische-kunsttherapien/therapien/musik oder [[archiviert hier|ICAAT_Musik_Therapien.pdf]]

Der Schweizer Wissenschaftler und Sachbuchautor Hans Cousto wurde durch die Berechnung der „harmonikalen Kammertöne“ bekannt, die er von astronomischen Begebenheiten abgeleitet hat.

Mittels Oktavgesetz transponierte er Planetenumlaufbahnen in hörbare Töne. Die Erde schwingt in ihrem Jahreston in der 32. Oktave auf Cis bei 136 Hz. Der Jahreston der Erde ergibt sich aus der Schwingung, die die Zeit eines Jahres, also die Dauer einer kompletten Reise der Erde um die Sonne, in Anspruch nimmt. Dieser Jahreston ist die Urschwingung, der immer währende Ton, wie die Inder sagen. Dieses Cis bei 136 Hz entspricht in Indien dem natürlichen Kammerton, auf den die Grundstimmung der Sitar und das heilige OM intoniert wird.

Folgt man nun diesem Grundton in seiner natürlichen Tonfolge nach oben, gelangt man zum Kammerton A1= 432 Hz.

Leider wird im Radio, Fernsehen und auch auf kaufbaren Musik ~CDs meist nur Musik in 440 Hz abgespielt. Wie man seine Lieblingsmusik auf 432 Hz konvertiert, zeige ich euch [[hier|Musik_in_432_Hz_konvertieren]].
[[Wie bereits angekündigt|Musik in 432 Hz]], möchte ich euch zeigen, wie Ihr eure Musik in 432 Hz umwandeln könnt. Hierbei gehe ich davon aus, das Ihr eure ~Musik-CDs bereits in ~MP3 konvertiert habt. Falls das noch nicht geschehen ist, gibt es hierzu zahlreiche Tools und [[Anleitungen|https://www.youtube.com/watch?v=PO9VUTO31xc]] dazu.

Zum konvertieren in 432 Hz werden wir Audacity verwenden, weil die Software Open Source ist und frei verwendet werden darf. Ich verwende hier die Version 2.0.5, auf die mein Skript angestimmt worden ist. Bei anderen Versionen von Audacity wird vermutlich mein Skript nicht funktionieren. Ihr könnt euch die richtige Version hier herunterladen:
[[audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip|audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip]]

Nach dem Download und entpacken der ~Zip-Datei kann Audacity direkt im entpackten Ordner gestartet werden, eine Installation ist nicht notwendig.

Nach dem Start, müssen die ~VST-Effekte durch einen Kick auf OK installiert werden.  Anschließend wird Audacity gestartet und ein Willkommensbildschirm angezeigt.

Hier aktivieren wir "Diesen Dialog nicht mehr Anzeigen" und bestätigen dies ebenfalls per Klick auf den ~OK-Button.

Über das Menü "Datei/Öffen..." wählen wir eine ~MP3-Datei, die wir in 432Hz konvertieren möchten. Nach dem Laden wird uns der Sound grafisch als Welle dargestellt.

Durch drücken von Strg + a wählen wir den kompletten Sound zum bearbeiten aus.

Anschließend wird über das Menü "Effekt/Tonhöhe ändern..." ausgewählt. Als "Percent Change" geben wir {{{-1,8181}}} an und bestätigen dies mit OK.

Abschließend müssen wir das Ergebnis noch speichern, indem wir im Menü "Datei/Exportieren..." auswählen und im neuen  Fenster als Dateityp "~MP3-Dateien" auswählen, unter Optionen die gewünschte Qualität (ich empfehle 160 Bits/s; 128 ist meist Standard) auswählen, der Datei einen neuen Namen geben und mit Speichern bestätigen.

Im aufpoppenden Fenster werden die Metadaten angezeigt, die angepasst werden können. Im Feld Bemerkung kann man z.B. 432 Hz angeben.

Mit Klick auf OK startet der Export. Danach kann Audacity geschlossen werden, gespeichert werden muss hierbei nicht, da wir die Datei nicht weiter bearbeiten wollen.

Durch dieses einmalige manuelle Umwandeln sind alle Einstellungen vorgenommen worden, die das Skript zum arbeiten benötigt. Die restlichen Dateien können nun Automatisiert umgewandelt werden.

Hierzu machen wir zuerst eine Sicherheitskopie der ~MP3 Dateien, da diese nach einem Umwandeln vom Skript gelöscht werden.

Als letztes starten wir die "Konvert Sound nach 432Hz.exe", bestätigen den Hinweis und wählen den Ordner mit den zu konvertierenden Dateien aus.

Das Skript lädt jetzt nach einander alle Datei und wandelt diese um. Hierbei sollte der Computer nicht mehr verwendet werden, bis der Vorgang komplett abgeschlossen ist, da das Skript Tastatureingaben an das aktuell aktive Fenster schickt und bei parallelem arbeiten mit anderen Programme es zu Problemen kommen könnte. Soll der Vorgang unterbrochen werden, einfach die Taste Esc drucken, was das Skript unterbricht. Es kann abschließend nochmals gestartet werden, um die restlichen Dateien die noch nicht konvertiert wurden zu bearbeiten.

Für alle, die sich das einmal Live ansehen möchten habe ich ein [[Video auf Youtube|https://www.youtube.com/watch?v=vPVe0OqTZC4]] bereitgestellt, auf dem ich die Funktionsweise ebenfalls zeige und erkläre.

PS: Jetzt nach fast genau einem Jahr habe ich mir einmal das [[Logfile angesehen und ausgewertet|Apache Log der downloads von Audacity-win-2.0.5_Musik_nach_432Hz_konvertieren.zip]], wie oft das Skript von meinem Server heruntergeladen worden ist. Wenn man die doppelten Einträge die mehrfach die Datei heruntergeladen haben nicht betrachtet, wurde das Skript 122 mal heruntergeladen. Ich hatte hier eigentlich eine größere Resonanz erwartet, da Audacity zwar selbst eine Automatisierung zulässt, aber eben nicht über mehrere Verzeichnisse hinweg. Allerdings sticht auch ins Auge, das auch Benutzer von Macintosh sich das Skript heruntergeladen haben. Hier möchte ich den deutlichen Hinweis geben, dass das Skript nur unter Windows sauber funktionieren wird! @@Macintosh, Linux, Unix und ~FreeBSD werden __nicht__ unterstützt!!!@@


version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Speichere Passwort";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
!Beschreibung
Bei RecordWebInfo handelt es sich um eine Webanwendung, mit der Informationen aus Webseiten als Screenshot und / oder ~PDF-Dateien gespeichert werden und wieder über eine Googleähnliche Suche abgerufen werden können. Die Anwendung zeichnet sich durch übersichtlichen, einfache Code aus, der mit einem besonderen Augenmerk in Bezug auf Sicherheit entwickelt worden ist. Daraus ergibt sich auch eine einfache und selbsterklärende Bedienung.
Um die Handhabung und Nutzung weiter zu erleichtern, wurde für die Vorstellung der Software auf Youtube ein [[Video|https://www.youtube.com/embed/Gx0yZ1k1TN8?autoplay=1]] bereit gestellt, in dem alles genau beschrieben wird. Mittlerweile wurde der Funktionsumfang erweitert. So ist es jetzt möglich, Webseiten bei denen das Markieren gesperrt wurde ebenfalls zu importieren. Für den Fall das sich die Informationen über mehrere Seiten erstrecken sollten, können jetzt weitere ~URLs für die ~PDF-Erstellung angegeben werden.

Die Software könnt Ihr [[hier Testen|https://greatkartei.de/RecordWebInfoDemo]].

Das Produkt wird als Open Source unter der MIT-Lizenz zur Verfügen gestellt und kann von jedermann unentgeltlich genutzt werden. Der Sourcen kann man [[hier|RecordWebInfo.tar.bz2]] in der Version 0.32b herunterladen.

!Vorraussetzungen
Als Voraussetzung wird ein Apache Webserver, ein Mariadb oder Mysql Server ab Version 5.6 und PHP in der Version 5.6-7.1 benötigt. In der nachfolgenden Installationsanleitung gehe davon aus, das bereits ein Ubuntu Server 1604 für die Installation vorhanden ist. Wie man einen [[Ubuntuserver 1604 Installiert|Ubuntu Server 1604 Installieren]], könnt Ihr [[hier|Ubuntu Server 1604 Installieren]] nachlesen. Alternativ kann man auch einen entsprechenden Server mieten. Als Anbieter kann ich [[Contabo|https://contabo.de/?show=vps]] empfehlen, wo man für 6,99 € pro Monat einen passenden Server mit genügend Speicherplatz und unlimitierten Netzwerkzugriff bekommen kann. Für 2 € mehr bekommt am sogar einen mit 300 GB SSD Festplatte.

!Beispiel einer Installation der Anwenung und Voraussetzungen an Beispiel eines [[Ubuntuserver 1604|Ubuntu Server 1604 Installieren]]
* Zuerst öffnen wir eine Rootshell mit {{{sudo -s}}} ...
[img[Rootshell |bilder/RecordWebInfo_Installation_001.png]] 
* ... installieren den Datenbankserver durch {{{apt install mariadb-server -y}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_002.png]] 
* und starten ein Skript zum absichern des selbigen. {{{mysql_secure_installation}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_003.png]] 
* Da noch kein Passwort vergeben worden ist, können wir die Passwortabfragen mit {{{Enter}}} bestätigen.
[img[Beschreibung|bilder/RecordWebInfo_Installation_004.png]] 
* Wir entscheiden uns dafür ein Passwort für den Benutzer root zu setzen, geben dieses an und wiederholen die Eingabe des Passwortes
[img[Beschreibung|bilder/RecordWebInfo_Installation_005.png]] 
* Der Zugriff für anonyme Benutzer wird entfernt ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_006.png]] 
* und root darf sich nur noch lokal anmelden.
[img[Beschreibung|bilder/RecordWebInfo_Installation_007.png]] 
* Wir entfernen die nutzlose Datenbank test ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_008.png]]
* ... und lassen den Datenbankserver die Berechtigungen neu laden, damit sie sofort wirksam sind.
[img[Beschreibung|bilder/RecordWebInfo_Installation_009.png]] 
* Der Benutzer root soll sich nur noch mit Passwort anmelden können, was wir durch {{{echo "update user set plugin='' where User='root'; flush privileges;" | mysql -u root -p mysql}}} erreichen.
[img[Beschreibung|bilder/RecordWebInfo_Installation_010.png]] 
* Schließlich legen wir die Datenbank für RecordWebInfo zusammen mit dem Benutzer recordwebinfo an und berechtigen diesen für den Zugriff. @@color(red):ACHTUNG! Verwendet unbedingt ein eigenes Datenbankpasswort!@@ {{{echo "create database RecordWebInfo; CREATE USER 'recordwebinfo'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON RecordWebInfo.* TO 'recordwebinfo'@'localhost'; flush privileges;" | mysql -u root -p mysql}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_011.png]] 
* Nun installieren wir den Apache Webserver mit {{{apt install apache2 -y}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_012.png]] 
* ... und alle zusätzlich benötigen PHP Komponenten durch {{{apt install php7.0 php7.0-curl php7.0-mysql php7.0-mbstring php7.0-mcrypt libphp7.0-embed -y}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_013.png]] 
* und aktivieren PHP zu Nutzung innerhalb von Apache. {{{apt install libapache2-mod-php7.0 -y}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_014.png]] 
* PHP wird jetzt noch konfiguriert. Wir öffnen hierzu die Konfigurationsdatei mittels {{{nano /etc/php/7.0/apache2/php.ini}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_015.png]] 
* ... ändern {{{output_buffering}}} auf {{{Off}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_016.png]] 
* ... {{{zlib.output_compression}}} auf {{{Off}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_017.png]] 
* ... und aktivieren curl durch {{{extension=php_curl.dll}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_018.png]] 
* ... und speichern das Ergebnis mit {{{Strg x}}}, {{{j}}}, {{{Enter}}}. Zusätzlich benötigen wir für wkhtmltox noch die Pakete xvfb, libxrender1 und libfontconfig1. {{{apt install xvfb libxrender1 libfontconfig1 -y}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_019.png]] 
* Wir wechseln in das Verzeichnis tmp {{{cd /tmp}}} und laden mittels {{{wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz}}} die aktuellste Version von wkhtmltox herunter (Auf der Webseite https://wkhtmltopdf.org/downloads.html findet Ihr immer die aktuellste Version mit gepatchen qt. Im Repository befindet sich nur eine ungepatchte Version.) ... 
[img[Beschreibung|bilder/RecordWebInfo_Installation_020.png]] 
* ... und entpacken das Archiv mittels {{{tar xvf wkhtmltox-0.12.4_linux-generic-i386.tar.xz}}}.
[img[Beschreibung|bilder/RecordWebInfo_Installation_021.png]] 
* Nun werden die Dateien in das bin-Verzeichnis verschoben {{{mv wkhtmltox/bin/wkhtmlto* /usr/bin/}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_022.png]] 
* ... und das Archiv wieder gelöscht. {{{rm -R wkhtmltox wkhtmltox-0.12.4_linux-generic-i386.tar.xz}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_023.png]] 
* Python benötigt noch Zugriff auf den ~SQL-Server, weshalb wir den Connector ebenfalls installieren. {{{apt install python3-mysql.connector python3-mysqldb -y}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_024.png]] 
* Nun geht es an RecordWebInfo selbst. Wir wechseln in das Verzeichnis des Webservers {{{cd /var/www/html/}}} ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_025.png]] 
* ... und laden uns die Sourcen per {{{wget https://greatkartei.de/blog/RecordWebInfo.tar.bz2}}} herunter ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_026.png]] 
* ... und entpacken diese ebenfalls durch {{{tar xfvj RecordWebInfo.tar.bz2}}}.
[img[Beschreibung|bilder/RecordWebInfo_Installation_027.png]] 
* Da wir das Archiv nicht mehr benötigen löschen wir es mittels {{{rm RecordWebInfo.tar.bz2}}}.
[img[Beschreibung|bilder/RecordWebInfo_Installation_028.png]] 
* Damit der Webserver auf die Dateien zugreifen kann, ändern wir den Besitzer für das Verzeichnis. {{{chown -R www-data:www-data RecordWebInfo/}}}
[img[Beschreibung|bilder/RecordWebInfo_Installation_029.png]] 
* Nun öffnen wir per {{{nano /var/www/html/RecordWebInfo/config/config.php}}} die Konfiguration, ...
[img[Beschreibung|bilder/RecordWebInfo_Installation_030.png]] 
* ... und ändern das Datenbankpasswort, den Systempwpepper und die Url, unter dem die Seite zu erreichen ist. @@color(red):WICHTIG: Setzt euren eigenen $systempwpepper, mit vielen wahllosen Zeichen.@@
[img[Beschreibung|bilder/RecordWebInfo_Installation_031.png]] 
* Mit einem Neustart stellen wir sicher, das alle Änderungen am System übernommen werden. In der Regel sollte das aber nicht notwendig sein.
[img[Beschreibung|bilder/RecordWebInfo_Installation_032.png]] 
* Um die Datenbank noch mit den benötigten Tabellen zu füllen, müssen wir im Browser die Url der Anwendung mit zusätzlichen /install_sql.php aufrufen. 
[img[Beschreibung|bilder/RecordWebInfo_Installation_033.png]] 
* Nachdem die Tabellen erstellt worden sind, erscheint ein Fenster, in dem wir den Administrator der Anwendung anlegen.
[img[Beschreibung|bilder/RecordWebInfo_Installation_034.png]] 
* Sobald dies erfolgreich passiert ist, erscheint eine Anmeldemaske, in der wir uns mit dem gerade angelegten Benutzer anmelden können.
[img[Beschreibung|bilder/RecordWebInfo_Installation_035.png]] 
* Voilà, die Anwendung ist jetzt fertig installiert / konfiguriert worden und kann jetzt genutzt werden.
[img[Beschreibung|bilder/RecordWebInfo_Installation_036.png]] 

Alles was jetzt noch fehlt ist ein regelmäßiges Backup der Datenbank, in der alle Informationen gespeichert sind. Von der config.php würde ich auch eine Sicherung erstellen, um im Bedarfsfall den Wert von $systempwpepper zu haben, den ohne den richtigen Wert, wird sich niemand anmelden können.

Ich hoffe, das Ihr viel Freude mit der Anwendung habt. Solltet Ihr Fehler finden oder Verbesserungswünsche haben, dann schreibt mir bitte einfach eine kurze ~E-Mail an wagner.michael@gmx.de und teilt mir dies mit.

Solltet Ihr die Anwendung in einer alternativen Sprache benötigen, könnt ihr euch einmal die Datei {{{lang_de.php}}} ansehen. Kopiert diese am besten mit dem entsprechenden Länderkürzel und übersetzt den Text in eure Wunschsprache. Damit diese auch verwendet wird, muss in der Konfigurationsdatei {{{config.php}}} der Wert {{{$systemlang}}} entsprechend angepasst werden. Wenn Ihr euch hier schon die Mühe macht, könnt Ihr mir die Datei bitte zukommen lassen, damit ich sie in Zukünftigen Versionen gleich mit anbieten kann. Ich danke euch hier schon einmal für eure Unterstützung.
Zur Verfügung gestellt von [[Greatkartei|https://greatkartei.de]]
Michael's Blog   
[[Vokabeln lernen mit der Goldlist Methode|Vokabeln_lernen_mit_der_Goldlist_Methode]]
Hier möchte ich zwei Skripte als Beispiel publizieren, mit dem man den aktuellen Teamspeakserver (3.0.10.3 stand vom 02.04.2014) auf einem Linux Betriebssystem installieren bzw. wieder entfernen kann. Voraussetzung ist, das dass Programm wget zur Verfügung steht. Sollte wget noch nicht zur Installiert sein, kann man auf einem Debian basiertem Linux wie Ubuntu oder Mint mit dem Befehl

{{{
apt-get install wget -y
}}}

die Installation nachgeholt werden.


!Installation:

Für die Installation wird ein Bashskript benötigt, das auf dem Linuxrechner angelegt werden muss.
Installationsskript: [[teamspeakserver_installieren.txt|teamspeakserver_installieren.txt]]

{{{
    #!/bin/bash
     
    # Teamspeakuser anlegen
    adduser teamspeak
    echo 'User wurde angelegt'
     
    # Sourcen herunterladen, entpacken und für user teamspeak berechtigen
    mkdir /opt
    cd /opt/
    wget http://dl.4players.de/ts/releases/3.0.10.3/teamspeak3-server_linux-x86-3.0.10.3.tar.gz
    tar -xzf teamspeak3-server_linux-x86-3.0.10.3.tar.gz
    rm teamspeak3-server_linux-x86-3.0.10.3.tar.gz
    chown teamspeak:teamspeak teamspeak3-server_linux-x86/
    cd teamspeak3-server_linux-x86/
    chown teamspeak:teamspeak -R *
     
    # Kontrollskript anlegen
    rm /etc/init.d/teamspeak
    touch /etc/init.d/teamspeak
    chmod +x /etc/init.d/teamspeak
    echo "#!/bin/bash" >> /etc/init.d/teamspeak
    echo "#Zeit Abwarten um IP-adresse zu bekommen (für DHCP):" >> /etc/init.d/teamspeak
    echo "sleep 10" >> /etc/init.d/teamspeak
    echo "# User which will run the Teamspeak-Server" >> /etc/init.d/teamspeak
    echo "USER=teamspeak" >> /etc/init.d/teamspeak
    echo "# The installation directory of the Teamspeak-Server" >> /etc/init.d/teamspeak
    echo "DIR=/opt/teamspeak3-server_linux-x86" >> /etc/init.d/teamspeak
    echo "# Run the start script" >> /etc/init.d/teamspeak
    echo 'su -c "cd $DIR && $DIR/ts3server_startscript.sh $1" - $USER' >> /etc/init.d/teamspeak
     
    # Start und Stopskripte anlegen
    cd /etc/rc2.d/
    ln -s ../init.d/teamspeak S99teamspeak
    cd /etc/rc0.d/
    ln -s ../init.d/teamspeak K99teamspeak
     
    # Teamspeakserver final starten
    /etc/init.d/teamspeak start
}}}

Dazu öffnet man eine Konsole als Root und gibt folgende Befehle ein:

{{{
sudo -s
wget https://greatkartei.de/blog/teamspeakserver_installieren.txt
}}}

Anschließend müssen wir die Datei als Skript umbenennen und ausführbar machen. Dies geschieht mit den Befehlen:

{{{
mv teamspeakserver_installieren.txt teamspeakserver_installieren.sh
chmod 700 teamspeakserver_installieren.sh
}}}

Nun können wir das Skript ausführen indem wir es folgendermaßen aufrufen

{{{
./teamspeakserver_installieren.sh
}}}

Zuerst wird man nach einem Passwort für den User teamspeak gefragt. Hier kann man sich ein kompliziertes Passwort aussuchen, das nicht notiert werden muss. Zur Sicherheit muss die Passworteingabe wiederholt werden. Die restlichen Angaben / Fragen kann man einfach per ~Enter-Taste bestätigen.

Die Teamspeaksourcen werden jetzt heruntergeladen und automatisch installiert und der Damon angelegt und auch gleich gestartet. Dies kann je nach Internetverbindung bis zu einer Minute dauern. Sobald der Server eingerichtet ist, wird der Adminuser und sein Kennwort angezeigt, die man getrost ignorieren kann. Ganz wichtig ist allerdings der etwas später angezeigte token, den man für die erste Anmeldung am Teamspeakserver benötigt.

Abschließend verbindet man sich per Teamspeakclient mit dem Server und wird nach dem token gefragt. Wird dieser eingegeben, hat der verwendete User Adminrechte und der Server kann sofort verwendet werden.



!Deinstallation:

Das Deinstallieren ist noch einfacher. Hierzu wird nachfolgendes Skript verwendet:
Deinstallationsskript: [[teamspeakserver_deinstallieren.txt|teamspeakserver_deinstallieren.txt]]

{{{
    #!/bin/bash
    # Teamspeakserver stopen
    /etc/init.d/teamspeak stop
     
    # Start und Stopskripte löschen
    rm /etc/rc2.d/S99teamspeak
    rm /etc/rc0.d/K99teamspeak
     
    # Kontrollskript löschen
    rm /etc/init.d/teamspeak
     
    # Programmverzeichnis löschen
    rm -R /opt/teamspeak3-server_linux-x86
     
    # Teamspeakuser löschen
    deluser teamspeak
    rm -R /home/teamspeak
}}}

Zur Deinstallation öffnet man eine Konsole als Root und lädt das Deinstallationsskript herunter

{{{
sudo -s
wget https://greatkartei.de/blog/teamspeakserver_deinstallieren.txt
}}}

Anschließend müssen wir die Datei als Skript umbenennen und ausführbar machen. Dies geschieht mit den Befehlen:

{{{
mv teamspeakserver_deinstallieren.txt teamspeakserver_deinstallieren.sh
chmod 700 teamspeakserver_deinstallieren.sh
}}}

Nun können wir das Skript ausführen indem wir es aufrufen

{{{
./teamspeakserver_deinstallieren.sh
}}}

Das Skript hält den Teamspeakserver an und entfernt in rückstandslos.
Die Skripte selbst kann man abschließend mit

{{{
rm teamspeakserver_*installieren.sh
}}}

wieder entfernen.

Falls Ihr via SSH mit Thunderbird und dem Plugin Enigmail verschlüsselte Mails lesen wollt und euch wundert, das Ihr nur die Fehlermeldung "Missing passphrase" bekommt ohne nach einem Passwort gefragt zu werden, dann liegt das daran, das der pgp-agent nicht automatisch gestartet worden ist, wie es normalerweise über eine lokale Anmeldung üblich ist.
Mit folgendem kleinen Skript kann man hier Abhilfe schaffen.

{{{
#!/bin/bash
killall gpg-agent
eval $(gpg-agent --debug-level expert --enable-ssh-support --daemon /bin/bash) &
thunderbird
killall gpg-agent
killall dbus-launch
exit
}}}

Dieses Skript legt man auf dem Zielclient auf dem Thunderbird gestartet werden soll. Mit Putty kann man dieses Skript beim Verbinden direkt aufrufen lassen und kann wie gewohnt auf verschlüsselte Mails zugreifen und schreiben. Hierzu im Profile der ~SSH-Verbindung in Putty unter SSH den entsprechenden "Remote command" hinterlegen. Wichtig ist hierbei der vorangestellte Punkt, gefolgt von einem Leerzeichen und dem Ort, wo auf dem Zielsystem euer Shellskript liegt.

[img[Thunderbird - Verschlüsselte Mails über SSH-Verbindung ansehen|bilder/Thunderbird - Verschluesselte Mails über SSH-Verbindung ansehen.png]]
// Convert a date to UTC YYYYMMDDHHMMSSMMM string format
// This is the same as the builtin function convertToYYYYMMDDHHMMSSMMM() but
// without the '.' in the middle - this allows simple date comparisons
Date.prototype.TLConvertToYYYYMMDDHHMMSSMMM = function()
{
  return(String.zeroPad(this.getUTCFullYear(),4)
    + String.zeroPad(this.getUTCMonth()+1,2)
    + String.zeroPad(this.getUTCDate(),2)
    + String.zeroPad(this.getUTCHours(),2)
    + String.zeroPad(this.getUTCMinutes(),2)
    + String.zeroPad(this.getUTCSeconds(),2)
    + String.zeroPad(this.getUTCMilliseconds(),4));
}

// namespace for TiddlyLock
TiddlyLock = {};

// Load/Last Update timestamp
TiddlyLock.TimeStamp = new Date().TLConvertToYYYYMMDDHHMMSSMMM();

// Lockfile
TiddlyLock.LockPath = ''; // custom values *must* include trailing '\\'
TiddlyLock.OldLockData = '';
TiddlyLock.LockData = '';
TiddlyLock.LockFile = TLLockPath();
// define messages
TiddlyLock.Msg = {
  Locked: 'File locked',
  Unlocked: 'File unlocked',
  LockFailed: 'Failed to lock file',
  UnlockFailed: 'Failed to unlock file',
  ReadOnly: 'Now in Read-Only mode.',
  Changed: 'This file has been changed by someone else.',
  Reload: 'Reload this file before editing.'};

// create/update the lock file
function TLSave(timeStamp,lockedBy)
{
  var lockedText='';
  if (lockedBy!='')
  {
    lockedText=timeStamp+'##'+lockedBy;
  }
  else lockedText=timeStamp+'##';
    var lockSave=saveFile(TiddlyLock.LockFile,lockedText);
  TiddlyLock.TimeStamp = timeStamp;
  return false;
}


// Create/update the lock file to prevent other users from editing the TW
function TLLock()
{
  clearMessage();
  lockSave = TLSave(new Date().TLConvertToYYYYMMDDHHMMSSMMM(),config.options.txtUserName);
  displayMessage(TiddlyLock.Msg.Locked,'');
  return false;
}


// Clear the lock file if necessary, but only if I have it locked, setting the
// timestamp in the lockfile to the specified value
function TLUnlock(timeStamp)
{
  if ((store && store.isDirty && !store.isDirty())
    && (story && story.areAnyDirty && !story.areAnyDirty())
    && TLIsLocked()
    && TLIsLockedByMe())
  {
    lockSave=TLSave(timeStamp,'','');
    displayMessage(TiddlyLock.Msg.Unlocked,'');
    TiddlyLock.OldLockData = TiddlyLock.LockData;
  }
  return false;
}

// Get the contents of the lock file, if it exists
function TLLockPath()
{
  var lockPath,pathRoot,p,fileName;
  var fullPath=document.location.toString();
  if(TiddlyLock.LockPath!='') pathRoot=TiddlyLock.LockPath; // location of lock file is defined by TiddlyLock.LockPath
  else pathRoot=getLocalPath(fullPath); // location of lock file is derived from the wiki filename
  if((p=pathRoot.lastIndexOf('\\'))!=-1) pathRoot=pathRoot.substr(0,p+1); // truncate any trailing filename (derived paths only)
  fileName=getLocalPath(fullPath); // full wiki file name, including path
  if((p=fileName.lastIndexOf('\\'))!=-1) fileName=fileName.substr(p+1); // truncate everything up to the last slash
  if((p=fileName.lastIndexOf('.'))!=-1) fileName=fileName.substr(0,p); // remove any existing extension
  fileName=fileName+'.lck'; // add new extension
  return pathRoot+fileName;
}

// Get the contents of the lock file, if it exists
function TLLockData()
{
  return loadFile(TiddlyLock.LockFile);
}

// Get the contents of the lock file, if it exists
function TLIsLocked()
{
  TiddlyLock.LockData = TLLockData();
  if (TiddlyLock.LockData
      && ( TLLockedBy(TiddlyLock.LockData)!='' // someone has it locked
         || TiddlyLock.TimeStamp < TLLockedTimeStamp(TiddlyLock.LockData) // changed by someone else but not currently locked
         )
     )
    return true;
  else
    return false;
}


// check if locked by me
function TLIsLockedByMe()
{
  if(TiddlyLock.LockData == TiddlyLock.TimeStamp+'##' + config.options.txtUserName)
    return true;
  else
    return false;
}


// returns just the timestamp portion of the supplied lock file contents
function TLLockedTimeStamp(lockData)
{
  if(lockData)
    return lockData.split('##')[0];
  else
    return '';
}


// returns just the username portion of the supplied lock file contents
function TLLockedBy(lockData)
{
  if(lockData)
    return lockData.split('##')[1];
  else
    return '';
}

// display a message if locked or changed
function TLChangesAllowed()
{
  if(TLIsLocked() && !TLIsLockedByMe())
  {
    if(TLLockedBy(TiddlyLock.LockData))
    {
      displayMessage(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData));
      alert(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData)+'. '+TiddlyLock.Msg.ReadOnly);
    }
    else
    {
      displayMessage(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
      alert(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
    }
    return false;
  }
  else
    return true;
}


//*********************************************
// OVERRIDE STANDARD FUNCTIONS
//*********************************************

//
// OVERRIDE onClickNewTiddler()
//
TiddlyLock.onClickNewTiddler = config.macros.newTiddler.onClickNewTiddler;
config.macros.newTiddler.onClickNewTiddler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
    var ret = TiddlyLock.onClickNewTiddler.apply(this,arguments);
    return ret;
  }
}

//
// OVERRIDE checkUnsavedChanges()
//
TiddlyLock.checkUnsavedChanges = checkUnsavedChanges;
checkUnsavedChanges = function(event,src,title)
{
  var ret = TiddlyLock.checkUnsavedChanges.apply(this,arguments);
  if(TLIsLocked() && TLIsLockedByMe())
    lockSave=TLSave(TLLockedTimeStamp(TiddlyLock.OldLockData),'','');
  return ret;
}


//
// OVERRIDE cancelTiddler()
//
TiddlyLock.cancelTiddler = config.commands.cancelTiddler.handler;
config.commands.cancelTiddler.handler = function(event,src,title)
{
  var ret = TiddlyLock.cancelTiddler.apply(this,arguments);
  TLUnlock(TLLockedTimeStamp(TiddlyLock.OldLockData));
  return ret;
}

//
// OVERRIDE deleteTiddler()
//
TiddlyLock.deleteTiddler = config.commands.deleteTiddler.handler;
config.commands.deleteTiddler.handler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
    var ret = TiddlyLock.deleteTiddler.apply(this,arguments);
    return ret;
  }
}

//
// OVERRIDE editTiddler()
//
TiddlyLock.editTiddler = config.commands.editTiddler.handler;
config.commands.editTiddler.handler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
  }
  var ret = TiddlyLock.editTiddler.apply(this,arguments);
  return ret;
}

//
// OVERRIDE saveChanges()
//
TiddlyLock.saveChanges = saveChanges;
saveChanges = function(onlyIfDirty)
{
  if(TLChangesAllowed())
  {
    var ret = TiddlyLock.saveChanges.apply(this,arguments);
    TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
    return ret;
  }
  else
    return false;
}

//
// OVERRIDE saveTiddler()
//
TiddlyLock.saveTiddler= config.commands.saveTiddler.handler;
config.commands.saveTiddler.handler=function(event,src,title)
{
  var ret = TiddlyLock.saveTiddler.apply(this,arguments);
  TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
  return ret;
}
!Vorraussetzungen

#Um einen Ubuntu Server zu installieren, muss als Voraussetzung das [[Bios|https://de.wikipedia.org/wiki/BIOS]] so eingestellt werden, das als Bootreihenfolge zuerst von dem ~DVD-Rom Laufwerk und als zweites von der Festplatte gebootet wird. Da dies je nach Hersteller in jedem [[Bios|https://de.wikipedia.org/wiki/BIOS]] etwas anders umgesetzt wird, werde ich dies nicht näher beschreiben. Bei [[Chip|http://praxistipps.chip.de/bios-boot-reihenfolge-aendern-so-gehts_10161]] findet man hierzu etwas Hilfe. Falls das nicht klappt, bemüht bitte Google.
#Ebenfalls muss in das ~DVD-Rom Laufwerk das Installationsmedium eingelegt sein. Das ~ISO-Image könnt Ihr euch von [[https://www.ubuntu.com/download/server|https://www.ubuntu.com/download/server]] herunter laden. Ich empfehle euch __immer__ eine LTS Version zu benutzen, da diese Version bis zu 4 Jahre mit Updates versorgt werden. Eine Version ohne LTS wird leider maximal 1 Jahr lang mit Updates versorgt und ist deswegen als Praxissystem nicht zu gebrauchen.

!Installation

@@color(red):ACHTUNG! Wenn Ihr dieser Anleitung folgt, wird ein eventuell vorhandenes Betriebssystem und alle Daten auf dem Rechner gelöscht!!!@@

* Wenn das [[Bios|https://de.wikipedia.org/wiki/BIOS]] richtig eingestellt wurde, erscheint nach dem Start die Auswahl der Sprache. Wir entscheiden uns für Deutsch.
[img[Installationssprache auswählen|bilder/Ubuntu_Server_1604_Installation_001.png]]
* Wir wählen "Ubuntu Server installieren"
[img[Ubuntu Server installieren|bilder/Ubuntu_Server_1604_Installation_002.png]]
* ... in der gewählten Sprache
[img[in der gewählten Sprache|bilder/Ubuntu_Server_1604_Installation_003.png]] 
* ... im Land Deutschland ...
[img[im Land Deutschland|bilder/Ubuntu_Server_1604_Installation_004.png]] 
* ... und wählen das Tastaturmodell manuell ...
[img[Tastaturmodell manuell|bilder/Ubuntu_Server_1604_Installation_005.png]] 
* ... das Herkunftsland ist German ...
[img[Herkunftsland ist German|bilder/Ubuntu_Server_1604_Installation_006.png]] 
* ... und die Tastaturbelegung ebenfalls German.
[img[Tastaturbelegung ebenfalls German|bilder/Ubuntu_Server_1604_Installation_007.png]] 
* Als Rechnernamen wählen wir einen passenden zu unserer Umgebung, hier als Beispiel Jupiter.
[img[Rechnernamen wählen|bilder/Ubuntu_Server_1604_Installation_008.png]] 
* Nun wird unser Benutzername abgefragt ...
[img[Benutzername|bilder/Ubuntu_Server_1604_Installation_009.png]] 
* ... für den wir ein Passwort vergeben ...
[img[Passwort|bilder/Ubuntu_Server_1604_Installation_010.png]] 
* ... das wir zur Sicherheit noch einmal wiederholen dürfen.
[img[Passwort|bilder/Ubuntu_Server_1604_Installation_011.png]] 
* Den persönlichen Ordner zu verschlüsseln macht auf einem Server nicht viel Sinn, weshalb wir das verneinen.
[img[persönlichen Ordner nicht verschlüsseln|bilder/Ubuntu_Server_1604_Installation_012.png]] 
* Wir bestätigen die Zeitzone für Berlin.
[img[Zeitzone|bilder/Ubuntu_Server_1604_Installation_013.png]] 
* Wir wollen die komplette Festplatte verwenden ...
[img[komplette Festplatte verwenden|bilder/Ubuntu_Server_1604_Installation_014.png]] 
* ... und wählen die gewünschte Festplatte aus ...
[img[Festplatte auswählen|bilder/Ubuntu_Server_1604_Installation_015.png]] 
* ... und bestätigen das ganze.
[img[bestätigen|bilder/Ubuntu_Server_1604_Installation_016.png]] 
* Da der Server direkten Internetzugriff besitzt, geben wir keinen Proxyserver für die Updates an, ...
[img[kein Proxyserver|bilder/Ubuntu_Server_1604_Installation_017.png]] 
* ... lassen aber aus Sicherheitsgründen die Updates automatisch installieren.
[img[Updates automatisch installieren|bilder/Ubuntu_Server_1604_Installation_018.png]] 
* Um über das Netzwerk Zugriff auf den Server zu ermöglichen, wählen wir zusätzlich den "~OpenSSH Server" aus.
[img[OpenSSH Server hinzufügen|bilder/Ubuntu_Server_1604_Installation_019.png]] 
* Wir benötigen den ~GRUB-Boot loader ...
[img[GRUB-Boot loader|bilder/Ubuntu_Server_1604_Installation_020.png]] 
* und lassen abschließend die ~DVD-Rom auswerfen.
[img[DVD-Rom auswerfen|bilder/Ubuntu_Server_1604_Installation_021.png]] 
* Nach der Installation melden wir uns mit dem vergebenen Benutzer und Passwort an ...
[img[Anmelden|bilder/Ubuntu_Server_1604_Installation_022.png]] 
* und öffnen eine Rootshell mit {{{sudo -s}}} um die notwendigen administrativen Rechte zu bekommen.
[img[Rootshell öffnen|bilder/Ubuntu_Server_1604_Installation_023.png]] 
* Dazu müssen wir zu Bestätigung noch einmal unser Passwort angeben.
[img[Passwort angeben|bilder/Ubuntu_Server_1604_Installation_024.png]] 
* Wir holen uns die aktuelle Liste der Updates mit {{{apt update}}} ...
[img[Liste der Updates holen|bilder/Ubuntu_Server_1604_Installation_025.png]] 
* und installieren diese durch {{{apt upgrade -y}}}
[img[Updates installieren|bilder/Ubuntu_Server_1604_Installation_026.png]] 
* Damit der Server den neuesten Kernel verwendet, starten wir den Server mit {{{reboot}}} neu.
[img[Neustart|bilder/Ubuntu_Server_1604_Installation_027.png]] 
* Das war es bereits, unser Server ist fertig installiert und warte aus weitere Anweisungen.
[img[Fertig|bilder/Ubuntu_Server_1604_Installation_028.png]]
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 31/12/2017 15:54:11 | MWagner | [[/|https://greatkartei.de/blog/]] | [[store.php|https://greatkartei.de/blog/store.php]] | . | [[index.html | https://greatkartei.de/blog/index.html]] | backup |
| 31/12/2017 16:06:35 | MWagner | [[/|https://greatkartei.de/blog/]] | [[store.php|https://greatkartei.de/blog/store.php]] | . | [[index.html | https://greatkartei.de/blog/index.html]] | backup |
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 4,
	date: new Date("2008-08-11"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Speichere und uploade dieses TiddlyWiki mit den Uploadoptionen",
	promptParamMacro: "Speichere und uploade dieses TiddlyWiki nach %0",
	saveLabel: "Speichere ins Web", 
	saveToDisk: "Speichere auf den Datenträger",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "Keine URL angegeben/hinterlegt",
	usernameOrPasswordMissing: "Benutzername oder Passwort fehlt"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	options: [
		"txtUploadUserName",
		"pasUploadPassword",
		"txtUploadStoreUrl",
		"txtUploadDir",
		"txtUploadFilename",
		"txtUploadBackupDir",
		"chkUploadLog",
		"txtUploadLogMaxLine"		
	],
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opts.push();
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "TiddlyWiki speichern",
	step1Title: "Diese Einstellungen werden per Cookie im Browser gespeichert",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Abbrechen",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
};

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup gespeichert",
	backupFailed: "Fehler beim upload des Backupdatei",
	rssSaved: "RSS feed gespeichert",
	rssFailed: "Fehler beim upload des RSS-fedd-Datei",
	emptySaved: "Leeres Vorlage hochgeladen",
	emptyFailed: "Fehler beim hochladen eines leeren Vorlagedatei",
	mainSaved: "TiddlyWiki Datei wurde hochgeladen",
	mainFailed: "Fehler beim hochladen der TiddlyWiki Datei. Deine Änderungen wurden nicht gespeichert.",
	//specific upload
	loadOriginalHttpPostError: "Kann Originaldatei nicht herunterladen",
	aboutToSaveOnHttpPost: 'Datei wird gespeichert auf %0 ...',
	storePhpNotFound: "Das UploadServiceSkript '%0' wurde nicht gefunden."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
		bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url des ~UploadServiceSkripts (Standard: store.php)",
	txtUploadFilename: "Dateiname der Uploaddatei (Standard: index.html)",
	txtUploadDir: "Relatives Verzeichnis in der die Datei gespeichert wird (Standard: . (Download Verzeichnis))",
	txtUploadBackupDir: "Relatives Verzeichnis in dem das Backup gespeichert wird. Wenn kein Verzeichnis angegeben worden ist, wird kein Backup erstellt. (Standard: ''(leer))",
	txtUploadUserName: "Upload Benutzername",
	pasUploadPassword: "Upload Passwort",
	chkUploadLog: "Logging in UploadLog aktiviert(default: aktiviert)",
	txtUploadLogMaxLine: "Anzahl der Zeilen im UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','backup');
bidix.initOption('txtUploadUserName','MWagner');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','100');


// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");
Es wird noch etwas dauern, bis hier die ersten Artikel zu lesen sein werden. Übt euch bitte in Geduld.
Ab und zu kann es vorkommen, das in ~VirtualBox Snapshots kaputt gehen. Man kann den Fehler daran erkennen, das beim Starten von ~VirtualBox der Hinweis erscheint, das einige Medien nicht geöffnet werden können. Klickt man hier auf "Überprüfen" wird der "Manager für Virtuelle Medien" geöffnet. Ein gelbes Ausrufezeichen zeigt hier an, wo es Probleme gibt. Ich gebe euch eine kleine Hilfestellung, wie man das reparieren kann.
Hier ein Screenshot von dem Fehlerbild.

[img[VirtualBox_Snapshot_reparieren_1|VirtualBox_Snapshot_reparieren_1.png]]

Wie man hier gut sehen kann, passt ein Dateiname nicht zur ~Snapshot-ID. Um das zu korrigieren, öffnet man die fehlende Datei mit einem Hexeditor, der große Dateien bearbeiten kann, wie zum Beispiel Bless. Im Hexeditor sucht und ersetzt man nie alte ID mit der neuen fehlenden ID. Danach muss die Datei auch noch entsprechend mit {{{mv}}} umbenannt werden. Abschließend klickt man auf "Aktualisieren" und schon passt wieder alles und die VM kann wieder gestartet werden.

[img[VirtualBox_Snapshot_reparieren_2|VirtualBox_Snapshot_reparieren_2.png]]
Ich habe das letzte halbe Jahr probiert mir neue Vokabeln anzueignen und hierfür wie früher in der Schule Vokabeln gepaukt - mit mäßigem Erfolg. Ich war früher schon nicht gut darin mir neues Wissen per sturem auswendig Lernen anzueignen und das hat sich leider nicht verbessert. Für den Aufwand und die Zeit die ich verwendet habe, ist erschreckend wenig hängen geblieben und das lernen an sich war Mega anstrengend und frustrierend für mich.
Also habe ich mich auf die Suche begeben um heraus zu bekommen, was ich hier falsch mache, den mit dieser Geschwindigkeit konnte ich mir nicht vorstellen, jemals flüssig englisch reden zu können. Es gibt so viele [[Polyglott|https://de.wikipedia.org/wiki/Polyglott]] die bis zu 100 Sprachen beherrschen und ich fragte mich, wie die das schaffen können. Bei meiner Recherche bin ich auf die Goldlist Methode gestoßen, die ich gerade teste.

So funktioniert die Goldlist Methode:

# Auf der Rückseite der ersten Seite eines Notizbuches, schreibe oben das Datum auf und dann nummeriere die Zeilen von 1 bis 25 durch, die für ein Wort oder Phrase  benötigt werden, an das Du dich erinnern möchtest.
# Falte die Seite in der Mitte (optional), so das Du zwei Spalten erhältst. Auf der linken Seite schreibe das Wort oder Phrase deiner Fremdsprache. Auf der rechten Seite, schreibe das Wort oder Phrase in deiner Muttersprache. Wenn Du eine Sprache mit einem unterschiedlichen Schriftsystem wie Russisch lernst, solltest Du in Erwägung ziehen drei Spalten zu erstellen, damit Du die Umschreibung des Wortes in der mittleren Spalte notieren kannst. Denke daran, dass während Du das tust, nicht versuchst, sich die Wörter einzuprägen. Genieße den Prozess, neues Vokabular und ihre Übersetzungen zu notieren.
# Wenn Du deine 25 Wörtern aufgeschrieben hast, lege eine Pause ein. Das ist alles, was Du in dieser Sitzung tun solltest.
# Wenn Du mehr lernen möchtest, darfst Du die vorherige Liste nicht ansehen, die Du gerade geschrieben hast. Stattdessen kannst Du eine weitere Vokabeln in einer anderen Liste von 25 Wörtern oder Phrasen auf einer neuen Seite beginnen. Wenn Du das machst, blätter einfach weiter und beginne die Liste auf der Rückseite von Seite zwei in deinem Notizbuch. (Lasse die Vorderseite leer!). Normalerweise mache ich eine oder zwei Goldlisten mit 25 Wörtern oder Phrasen pro Tag.
# Nach zwei Wochen in denen nicht auf die vorherigen Goldlisten gesehen worden ist, ist es Zeit zum aussortieren und reduzieren. Aus diesem Grund ist es wichtig, jede Goldliste mit einem Datum zu versehen, damit Du erkennen kannst, wann Du zu dieser zurückkehren musst. Verwende die Falte, die Du zuvor erstellt hast oder ein Blatt Papier, um die Wörter der Fremdsprache zu verdecken, so dass Du nur deine Muttersprache sehen kannst. Auf der gegenüberstehenden Seite (Vorderseite von Seite 2), die Du leer gelassen hast, nummeriere die Zeilen 1 bis 25 nochmals (nur für den Fall, dass Du alle 25 Zeichen benötigst) und notieren das Datum oben auf der Seite. Nimm ein separates Papier und nummeriere dort ebenfalls die ersten 25 Zeilen. Verwende die Wörter die Du in Deiner Muttersprache siehst und versuche, sie in der Fremdsprache auf das separate Blatt Papier zu schreiben. Jedes Wort, an das Du dich nicht erinnern kannst, wird jetzt auf die zweite Seite des Notizbuches geschrieben. Dadurch versuchst Du, die Anzahl der Wörter auf Deiner Liste zu reduzieren. Idealerweise kannst Du dich an etwa 8 Wörter oder Sätze erinnern, die Du beim letzten Mal geschrieben hast. Diese zweite Liste ist deine erste Reduzierung.
# Wiederhole den obigen Vorgang für jede von Dir erstelle Goldliste.
# Nach weiteren zwei Wochen bist Du für die zweite Reduktion bereit. Jetzt versuchst Du, die erste reduzierte Liste um weitere fünf Wörter zu reduzieren (das heißt, Du erinnerst dich an fünf der Wörter auf dieser zweiten Liste). Diese zweite Reduktion sollte auf der zweiten Seite unterhalb der ersten Reduzierten Liste stehen. Deshalb brauchst Du ein Notebook, das rund 34 Zeilen fasst.
# Wiederhole den obigen Vorgang für jede der ersten reduzierten Listen.
# Nach zwei weiteren Wochen bist Du bereit für deine dritte Reduzierung der Listen! Auf diesen Listen sollten noch ungefähr 8 Wörter übrigbleiben. Diese werden auf der ersten Seite unter der ersten Liste notiert.
# Jetzt kannst Du noch einen Schritt weiter gehen und ein zweites Notizbuch anfangen, um die Wortlisten weiter zu reduzieren, ich aber werde an dieser Stelle aufhören.

Anmerkung: Unter den Menschen welche die Goldlistmethode anwenden, gibt es einige Variationen. Anstatt zum Beispiel Wörter durch Abdecken der Übersetzung abzurufen, kannst Du deine Listen reduzieren, indem Du zwei Wörter kombinierst, um eine kurze Phrase zu erstellen, wie zum Beispiel "groß" und "Mann". Aus den zwei Einträgen wird also "großer Mann".
Du kannst ebenfalls Wörter eliminieren, die für Dich nicht mehr relevant sind.



Hier noch zwei Links für diejenigen, die sich hierüber noch weiter informieren möchten.
[[Goldlist Method|https://huliganov.tv/goldlist-eu/]]
[[Vokabeln lernen ohne zu lernen? Mit der Goldlist Method von David James entfällt jegliches Pauken|https://www.youtube.com/watch?v=DNgHroXdVuw]]


[img[David James, Erfinder der Goldlist Methode|bilder/Vokabeln_lernen_mit_der_Goldlist_Methode.png]]
Datenschutz ist ein Thema bei dem wir die Konsequenzen in ein paar Jahrzehnten absolut nicht abschätzen können. Bei dem Thema Datenschutz finde ich folgendes Gedankenexperiment immer relativ interessant:

Man stelle sich die Welt, wie sie die typischen digitalen Innovationsleader in ein paar Jahren sehen vor und drehe die Zeit zurück zu 1930. Alle sind zufrieden, niemand stört sich daran, dass man ohne Aufwand ein komplettes Profil jeder Person erstellen kann, schlussendlich hat ja niemand etwas zu verbergen, eine Regierung der wir vertrauen reguliert das ganze und Möglichkeiten sind ganz cool.

Dann drehe man die Zeit 10 Jahre nach vorne und ich bin mir sicher ganz viele Bevölkerungsgruppen finden die Situation plötzlich nicht mehr so sexy, obwohl sie sich überhaupt nichts zu Schulden haben kommen lassen.
In meinem Bekanntenkreis wurden Freunde teilweise darauf gedrängt, auf [[Windows 10 zu aktualisieren, da das im Moment noch kostenlos möglich wäre|https://www.heise.de/newsticker/meldung/Kostenloses-Upgrade-auf-Windows-10-weiter-erhaeltlich-auf-kleinen-Umwegen-3282531.html]] und man nicht weiß, was Microsoft in Zukunft dafür verlangen würde.
Zu diesem Zeitpunkt war ich erst einmal ziemlich sprachlos, denn ich konnte das gesagte überhaupt nicht nachvollziehen, denn es war ja bereits allgemein bekannt, das Microsoft den Datenschutz aufweicht und es bei Windows 10 nicht nur Patche sondern ebenfalls vierteljährlich ein [[Rolling Release|https://de.wikipedia.org/wiki/Rolling_Release]]  zwangsverteilt wird. Leider wurden meine Einwürfe heruntergespielt und als nicht so schlimm angesehen.

Ich möchte hier einmal die Gründe auflisten, warum es keine gute Idee ist Windows 10 einzusetzen.

Der für mich wichtigste Grund der nicht nur gegen eine Nutzung von Windows 10 ist sondern auch in vielen Bereichen eine Verwendung schlichtweg unmöglich macht ist folgender.

!!Datenschutz und Selbstbestimmung gibt es nicht mehr

Viele Leute die täglich Whatsapp, Twitter und Facebook nutzen, verschwenden hier wohl kaum einen Gedanken daran, denn über das was man täglich macht, denkt man nach einiger Zeit nicht mehr nach - man hatte ja bisher keine Probleme oder Beeinträchtigungen, das passt schon. Die Wirklichkeit ist dann doch nicht so einfach und das dicke Ende kommt immer erst später, aber bleiben wir beim Thema.
Microsoft verschenkt ihr Betriebssystem - nein das stimmt nicht - sie drängen es geradezu jedem auf. Warum macht das ein Unternehmen, dessen Ziel es ist, möglichst viel Gewinn zu erwirtschaften? Von verschenken verdient man bekanntlich kein Geld, also was ist der Grund hierfür? Das ist eigentlich ganz einfach, denn jeder der Windows 10 einsetzt zahlt trotzdem und merkt es bloß nicht, weil von Bankkonto kein Geld abgebucht wird. Gezahlt wird mit den Informationen, die vom Betriebssystem über das Benutzerverhalten ermittelt werden und leider kennt die Übermittlung der Daten hier offensichtlich keine Grenzen. [[Hier nimmt sich Microsoft wohl Google zum Vorbild|https://www.heise.de/newsticker/meldung/Kommentar-Microsoft-moechte-offizieller-Ausruester-von-Big-Brother-werden-3711280.html]], das sehr gut mit dem Verkauf von Informationen lebt. [[Das ist nicht so schlimm denkt ihr?|Warum Datenschutz ein sehr wichtiges Thema ist]] Dann möchte ich euch einmal eine Aufstellung liefern, was alles nach Redmond gesendet wird.

* [[Feedback|bilder/Windows10Datenschutz.jpg]]
* [[Kontakte|bilder/Windows10Datenschutz.jpg]]
* [[Wer wann Kontaktiert wird|bilder/Windows10Datenschutz.jpg]]
* [[Inhalte von Mail- und Textnachrichten|bilder/Windows10Datenschutz.jpg]]
* [[Kalendereinträge|bilder/Windows10Datenschutz.jpg]]
* [[Sprach- und Schreibmuster für die Erstellung von Biometrischen mustern|bilder/Windows10Datenschutz.jpg]]
* [[Schreibhistorie|bilder/Windows10Datenschutz.jpg]]
* [[Browserhistorie|bilder/Windows10Datenschutz.jpg]]
* [[Tastendrücke|bilder/Windows10Datenschutz.jpg]]
* [[Wifi Passworte|bilder/Windows10Datenschutz.jpg]]
* [[Standort|bilder/Windows10Datenschutz.jpg]]
* [[Sämtliche Dateien|bilder/Windows10Datenschutz.jpg]]
* [[Diagnosedaten|bilder/Windows10Datenschutz.jpg]]

Ihr glaubt, das denke ich mir nur aus? Leider liegt Ihr hier falsch, denn die [[Screenshots beweisen etwas anderes|bilder/Windows10Datenschutz.jpg]]. Nein - Microsoft verhält sich hier rechtmäßig, denn mit dem abnicken der Eula akzeptiert Ihr, das diese Informationen zu Microsoft gesendet werden und [[Microsoft geht auch ganz offen damit um|https://privacy.microsoft.com/de-de/privacystatement/]]. Auch wenn Ihr alles was möglich ist deaktiviert habt seit Ihr leider nicht sicher, denn Ihr könnt das wieder aktivieren, ohne das es euch bewusst wird. Ihr wollt einmal Contana ausprobieren weil sich das cool anhört und schon seit ihr in die Falle getappt, den mit dem Start von Contana werden die Datenschutzeinstellung ggf. umgestellt und schwuppdiwupp werden alle gesammelten Informationen zu Microsoft übertragen. Selbst wenn Ihr euren Irrtum dann feststellen solltet, ist es bereits zu spät.
Die nächste Falle stellt das vierteljährlichen Update Rollup dar. Hier wird nicht wie üblich gepatcht, sondern das Betriebssystem komplett neu installiert. Hierbei wird versucht sämtliche installierte Treiber, Programme und Einstellungen zu übernehmen. Die Datenschutzeinstellungen wurden in der [[Vergangenheit allerdings Reset|http://www.n-tv.de/technik/Datenschutz-Panne-bei-Windows-10-Update-article16431521.html]] ([[Siehe auch Heise|https://www.heise.de/newsticker/meldung/Windows-10-Creators-Update-Erste-Upgrade-Erfahrungen-3677536.html]]). Auch Firmen sind hiervon nicht gefeilt, denn [[selbst Policys können hierbei wirkungslos werden|https://www.ghacks.net/2016/07/28/microsoft-removes-policies-windows-10-pro/]].

Sehr viele [[Webseiten bieten Tipps und Tricks an, um Windows 10 das Schnüffeln zu verbieten|https://www.deskmodder.de/wiki/index.php/Datenschutz_Einstellungen_deaktivieren_aktivieren_Windows_10]]  bzw. zu deaktivieren. Ich würde hiervon dringen abraten, denn die Erfahrung hat gezeigt, das dies eben keine Dauerhafte Einstellung / Lösung ist.

Alleine [[die Tatsache das in dem Betriebssystem bereits ein Keylogger vorinstalliert ist|https://www.heise.de/forum/iX/News-Kommentare/Kommentar-Datenschleuder-Windows-10-Wasser-und-Wein/Enterprise-LTSB-plappert-auch-pausenlos/posting-29418846/show/]] der nur deaktiviert ist, sollte jedem die Haare zu Berge stehen lassen. Wem das immer noch egal ist, möchte ich noch einen [[anderen sehr kurzen Artikel|Warum Datenschutz ein sehr wichtiges Thema ist]] nahelegen. 

Und damit ist immer noch nicht Schluss! Die gewonnen Informationen [[werden weitergegeben.|http://www.spiegel.de/netzwelt/netzpolitik/wie-microsoft-mit-fbi-nsa-und-cia-kooperiert-a-910863.html]] Die [[NSA und FBI|http://techrights.org/wiki/index.php/Microsoft_and_the_NSA]] machen hier nur den Anfang, den Verdienen kann man am besten mit personenbezogener Werbung. Es ist nur eine frage der Zeit, bis hier die nächste Sauerei bekannt wird.

Hier noch ein kurzes Zitat aus den [[Datenschutzbestimmungen von Microsoft:|http://www.microsoft.com/de-de/privacystatement/default.aspx]]
> Schließlich werden wir auf personenbezogene Daten zugreifen, diese offenbaren und
> bewahren, einschließlich privater Inhalte (wie der Inhalt Ihrer ~E-Mails und andere private
> Mitteilungen oder Dateien in privaten Ordnern), wenn wir in gutem Glauben sind, dass
> dies notwendig ist

Hier stellt sich für mich die Frage, wie sich Firmen vor Industriespionage schützen können und wie sich [[Rechtsanwälte, Priester, Steuerberater, anonyme Alkoholiker ihre "Kunden" schützen können|https://www.heise.de/ix/meldung/Kommentar-Datenschleuder-Windows-10-Wasser-und-Wein-3360099.html]], den die Nutzung dieses Betriebssystem in Anbetracht der Lage ist ausgeschlossen.

Ein Betriebssystem, das man erst kastrieren muss, damit es Datenschutzmäßig einigermaßen konform läuft ist einfach für den Einsatz in Firmen, bei Ärzten, in Anwaltskanzleien, bei Gericht, in Behörden und Verwaltung, beim Militär etc. ''NICHT EINSETZBAR !''


Nebenbei sei erwähnt, das Microsoft im Jahr 2002 einen [[Big Brother Awart|https://de.wikipedia.org/wiki/Big_Brother_Awards#2002]] gewonnen hat. Mich wundert hierbei, dass für [[Office 365|https://www.heise.de/ix/meldung/Microsoft-Office-365-nimmt-Mitarbeiter-unter-die-Lupe-3765394.html]] noch kein weiterer Preis gewonnen worden ist.


!! Echtzeitschutz kann nicht dauerhaft deaktiviert werden

Im Gegensatz zu den früheren Betriebssystemen von Microsoft, lässt sich unter Windows 10 der Echtheitsschutz nicht mehr dauerhaft deaktivieren. Wer hiermit schon einmal Probleme hatte weiß, warum das schwerwiegende Probleme nach sich führen kann. Bei guten Virenscanner kann man eine Ausnahme für bestimmte Dateien konfigurieren. Beim Echtzeitschutz von Microsoft geht das nicht und man ist dem Hersteller ausgeliefert.

Hierzu muss ich einfach sagen, das der Rechner euch nicht mehr gehört, denn der macht was Microsoft für richtig erachtet. Eine tolle Entmündigung!


!! Neustart des Betriebssystems ohne Nachfrage

Und hier gleich die nächste Entscheidung, die euch Microsoft abnehmen möchte. Windows sucht sich den Zeitpunkt selbst aus, [[wann es Updates installiert|http://winfuture.de/news,87361.html]]. Wird der Rechner mit einem Update versorgt, das einen Reboot benötigt, werdet ihr bei Windows 10 nicht mehr gefragt, ob ihr jetzt neu starten wollt, sondern Windows "ermittelt", ob der Rechner gerade nichts zu tun hat und bootet ihn dann von selbst.
Besonders toll bei Präsentationen vor dem Publikum! 


!! Organisiert das Startmenü selbstständig um und Platziert Werbung

Im Startmenü werden Apps zur Installation vorgeschlagen und personalisierte Werbung angezeigt. Noch kann man das über die Einstellungen ausschalten. [[Hier|http://www.giga.de/downloads/windows-10/tipps/windows-10-startmenue-werbung-und-vorgeschlagene-apps-deaktivieren-so-geht-s/]] steht beschrieben, wie man das bewerkstelligen kann.


!!  Rolling Release

Microsoft hat mit Windows 10  Rolling Release eingeführt. Jedes viertel Jahr werden damit nicht nur Sicherheitslücken gestopft und Fehler korrigiert sondern neue Features eingeführt bzw. auch ab gekündigt.  Dies führt dazu das Geräte wie Drucker oder Scanner plötzlich nicht mehr funktionieren. Auch vorhandenen Software kann dadurch den gewohnten Dienst verweigern und man muss sich Alternativen suchen. In so einem Fall ist Datenverlust wahrscheinlich.

Hier müssen sich Unternehmen etwas einfallen lassen, damit sie immer schnell genug reagieren können, damit Business kritische Anwendungen nicht ausfallen.


!! Fazit

Aus den oben genannten gründen kann ich nur allen raten sich umzusehen und bis spätestens zum 14 Januar 2020 eine alternative zu Windows 7 zu finden. Solange wird das Betriebssystem noch mit Sicherheitsupdates versorgt und man hat Zeit, sich Alternativen zu suchen. Ich persönlich kann euch Linux Mint empfehlen, mit dem ich sehr gute Erfahrungen gemacht habe.


Diese Seite hat den Zweck, Informationen und Gedanken zu veröffentlichen, die mich in besonderen Maße bewegen. Es handelt sich hierbei überwiegend um die Themen [[IT]] bzw. [[IT-Sicherheit]] im allgemeinen, [[Gesellschaft]], [[Gesundheit]], [[Esoterik]] und [[Verschwörungen]].

Mir ist bewusst, das diese Mischung mehr als ungewöhnlich ist, hoffe aber trotzdem, das ich einige Menschen mit diesen wirklich sehr unterschiedlichen und in dieser etwas außergewöhnlichen Mischung ansprechen kann.

Zum Glück kann ja jeder seine eigene Wahl treffen und nur das Thema verfolgen, das ihr im Augenblick wirklich interessiert.

Konstruktive Kommentare zu den einzelnen Beiträgen sind erwünscht, werden jedoch um Werbung und Spam zu vermeiden erst nach einer Prüfung freigeschaltet. Ich bitte das zu entschuldigen! Leider hat man in Deutschland keine andere Wahl, da man ansonsten sehr schnell für Inhalte haften muss, den ein Fremder veröffentlicht hat.

Für mich persönlich ist das eine Art der Zensur und ich würde mir wünschen, das die Meinungsfreiheit wieder einen höheren Stellenwert in unserer Gesellschaft einnehmen würde, denn dies ist eine Grundvoraussetzung um in einer echten Demokratie zu leben.

Was mir hierbei besonders stört ist, das der Anbieter einer Plattform für etwas haftet, was ein anderer verbrochen hat. Ich bin zwar ein Verfechter der Meinungsfreiheit, allerdings sollte diese mit Respekt  und Höflichkeit geäußert werden. Mann kann Missstände gerne auf den Tisch bringen, sollte diese aber auch belegen, da man ansonsten Gefahr läuft, wegen Rufschädigung angezeigt zu werden. Ich werde aus diesem Grund in solchen Fällen generell auf die Quellen hinwiesen und [[PDF-Dateien|https://de.wikipedia.org/wiki/Portable_Document_Format]] mit dem aktuellen Inhalt erstellen, denn das Internet ändert sich schnell und somit gehen auch gerne mal Beweise “verloren”.

''Übrigens - falls Ihr über einen Link auf diese Seite z.B. über Google gekommen seit und nicht gleich die gewünschte Information findet, könnt Ihr oben rechts im Feld "suchen" den gewünschten Artikel finden.''

Ich wünsche euch viel Freude beim durchstöbern dieses Blogs!


Das Addon kann von der Seite herunter geladen werden.

Code kann man nun in in einen Artikel einfügen, indem man Beispielsweise folgendes einträgt:

{{{
    <pre crayon="false">
    Codezeilen
    </pre>
    <pre title="teamspeakserver_installieren.sh" lang="shell"> Codezeilen </pre>
    Codezeilen
    </pre>
}}}

Parameter Beschreibung

    url Läd eine Datei vom Internet oder von lokal. Für Sprachen mit angegebener Endung muss die Sprache nicht angegeben werden. {{{url=”http://example.com/code.java”}}} or {{{url=”java/code.java”}}}
    title Gibe den Titel des Codefensters an. title=”Sample”
    mark Markiert einige Zeilen innerhalb des Codes. Man kann einzelne Zeilen oder eine mehere Zeilen angeben. Mehrfache angaben sind mit einem Komma zu trennen. mark=”5-10,12″
    range Gibt die Zeilen an, die angezeigt werden. Man kann Codeblöcke und einzele Zeilen angeben. range=”3-5″, range=”3″
    lang Gibt die zu verwendente Sprache an lang=”java”

Für den Parameter lang kann eine der folgenden Sprachen angegeben werden:

ABAP, ~ActionScript, ADA, ~AmigaDOS, Apache, ~AppleScript, Arduino, ASP, Assembly (x86), ~AutoIt
C, C#, C++, ~CoffeeScript, CSS,
Default, Delphi/Pascal, ~DelphiWebScript/DWS, diff
Erlang,
Go,
Haskell,
INI, Inventor ~iLogic, Java, ~JavaScript
LESS. Lisp, Lua
MATLAB, Microsoft Registry, MIVA Script, Monkey, MS DOS, ~MySQL
~Objective-C, Oracle PL/SQL,
Perl, ~PgSQL, PHP, ~PowerShell, Python
R, Ruby
Sass, Scala, Scheme, Shell
~TeX, ~Transact-SQL
Vim, Visual Basic, Visual Basic .NET
XHTML
YAML



TiddliWiki Version <<version>>
<<uploadOptions>>
!!!!Damit das Speicher über das Web funktioniert, sollte unter folgendes eingestellt sein:
|Upload Benutzername:|hotline|
|Upload Passwort:|hotline|
|Url des UploadServiceSkripts (Standard: store.php)|store.php|
|Relatives Verzeichnis in der die Datei gespeichert wird (Standard: . (Download Verzeichnis))||
|Dateiname der Uploaddatei (Standard: index.html)|index.html|
|Relatives Verzeichnis in dem das Backup gespeichert wird. Wenn kein Verzeichnis angegeben worden ist, wird kein Backup erstellt. (Standard: (leer))|backup|
|Logging in UploadLog aktiviert(default: aktiviert)|yes|
|Anzahl der Zeilen im UploadLog (default: 10)|10|

Das dazugrhörige Log kann man hier betrachen: [[UploadLog]]