Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
<!--{{{-->
<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::Background]];}
.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]];}
#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>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<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]]
...und auch für mich beginnt wiedereinmal ein neuer Lebensabschnitt.
Zuerst heisst es nun lernen lernen lernen ... das Informatikstudium schmeisst sich nicht von selbst und die Prüfungen stehen schon fast vor der Tür (am Donnerstag nächste Woche gibts die erste).
Direkt anschließend wird umgezogen. Von der gemütlichen, aber viel zu teuren Dachgeschosswohnung geht es wohl ins Studentenwohnheim (dafür ist da in der Miete alles inklusive: Strom,Wasser,Inet,TV Anschluss).
Im September steht dann noch eine Nachprüfung aus dem letzten Semester an und außerdem auch meine erste größere Herausforderung als Student als Betreuer für das C Propaedeutikum der Erstsemestler.
Ich hoffe ich finde dann im Wohnheim endlich etwas Zeit um wieder mit einer Tutorialreihe anzufangen (Vllt. diesmal als Videotutorial? mal sehen)
Ja alle Prüfungen für dieses Semester sind geschafft und nun kann ich ersteinmal beruhigt in die Ferien gehen, obwohl ich doch eine größere ~ToDo Liste habe:
~ToDo in der ungefähren Reihenfolge wie es auch passieren wird
* Kartons packen
* ein eigenes kleines Blogsystem auf PHP Basis schreiben
* ca 1,5 Wochen nach Berlin fahren, Freunde treffen, Eltern besuchen, Geburtstag feiern
* zurück nach Leipzig, Kartons schnappen und umziehen
* Vorbereiten auf die Nachprüfung Analysis (vom letzten Semester!)
* Treffen zur Vorbereitung auf das [[C-Propaedeutikum|http://www.informatik.uni-leipzig.de/propaed/]]
* Propaedeutikum betreuen
* Nachprüfung schreiben
* Semester fängt wieder an
Das ~TiddlyWiki sagt mir als Blog auch noch nicht so recht zu, auch weil es halt auch ein wenig umständlich zu warten ist und keine richtigen Blogfunktionalitäten bietet.
Deswegen werde ich in den Semesterferien ein eigenes Blogsystem auf PHP-Basis schreiben. Leider unterstützt mein Webspace kein Java sonst hätte ich das ganze mit Servlets erledigt. Mal sehen wenn ich 2011 auf einen anderen Hoster wechsle kann man ja schauen ob ich da so eine Funktionalität mitbuchen kann. PHP ist mir normalerweise immer zu frickelig.
Außerdem plane ich z.Z. die Berlinwoche. Ich werde nämlich vom 6.8. bis 14.8. in Berlin sein und da einige Stationen abfahren (Eltern, Schwiegereltern, mehrere Freundinnen die ich mal wieder treffen will, meine Brüder und meine L4D Zockergruppe ^^). Das wird ein Stress...
Ich habs in Facebook schon in Kurzform geschrieben und wollte es hier einfach mal noch ein wenig ausführlicher erzählen. Einfach weil gestern und heute so viel passiert ist wie die gesamten davorliegenden 2 Wochen, wo ich eigentlich nur Organisationskram gemacht habe und irgendwie damit beschäftigt war meine Tage sinnvoll zu füllen.
Fangen wir damit an, dass ich es endlich fertiggebracht habe den Wichtigsten Kram in Umzugskartons zu verpacken, damit ich am 14. August meine Zelte in unserer gemeinsamen Wohnung abbrechen kann und somit die beziehungstechnische Trennung eine räumliche Trennung hinzufügen kann.
Weiter geht es damit dass gestern Vormittag und am frühen Nachmittag Melanie mit ihrem Freund nach Leipzig gekommen ist und wir ein wenig Sightseeing, viel Quatschen und beim miesesten Wetter überhaupt Riesenrad fahren waren. War echt lustig und auch schön mal wieder ein wenig über alles mögliche zu quatschen. Am Dienstag gehts dann mit Melanie auch ins Kino (höchstwahrscheinlich "Kindsköpfe" *mal was triviales braucht*)
Mein Highlight der letzten 24h war hingegen die Abschieds-/Wiedersehensfeier bei Lydi. Nicht nur dass ich das erste mal Werwölfe gespielt hab. War echt lustig in der Gruppe dort. Auch die Grüppchenbildung (Informatiker/Fachinformatiker vs. Geisteswissenschaftler vs. eine Biotechnikern war sehr unterhaltsam).
Man (ich) bekommt ja seltenst die Möglichkeit einfach mal ein wenig mit Studenten andrer Unis zu quatschen und dass dann auch noch in so charmanter Form. Da macht Fachsimpeln gleich doppelt Spaß und die großen Fragezeichen über den Köpfen der Geisteswissenschaftler die hin und wieder durch den Raum zu schwirren schienen waren zumindest für einige Nerdlacher gut.
Erwähnenswert ist auch der imho völlig verplante Versuch früh morgens um 5 "mal eben schnell im Wald spazieren zu gehen". Man stelle sich 3 Infoleute vor die früher oder später doch sehr orientierungslos durch einen riesen Wald stapfen und erst 2h (in Worten "zwei Stunden"!) später wieder den heimatlichen Herd zurückfinden. Ich muss aber zugeben, das war auf komische Art und Weise echt spaßig.
Schade dass es so schnell 11 bzw 13 Uhr war und die Leute alle wieder ihrer Wege gingen. An dieser Stelle wünsch ich einer bestimmten Nerd Berlin ~TUlerin einen schönen und erholsamen Urlaub ;) .
edit:
Links die ich gestern empfohlen habe
[[Inktank.com|www.inktank.com]]
[[The Cure (allein zu viert)|http://www.youtube.com/watch?v=qvDOqpJtNik]]
[[There She Is 1 bis 5 (echt süße Flashanimation mit netter Musik) (bisschen runterscrollen!)|http://www.sambakza.net/works_tsi/tsi_main.html]]
Gerade komme ich über keinen meiner 3 Clients in ICQ rein um mal irgendwie einen Hilferuf abzusenden und schlagartig wird einem bewusst wie sich die Kommunikation von früher (damit meine ich sowohl die eigene Kindheit als auch die Prä-Internet-Ära) zu heute (Arbeitsleben und digitales Zeitalter) verändert hatte.
Beschränkte sich früher der Freundeskreis noch auf Leute aus der direkten Umgebung oder in ländlichen Gegenden auch über mehrere Ortschaften hinweg, so gibt es diese Grenzen heute nichtmehr. Ich könnte nicht mal so eben bei einem meiner Freunde vorbeischauen um ihnen bescheid zu geben, dass ich für einige Zeit nicht erreichbar sein werde, einfach weil sie sich über ganz Deutschland verteilen. Von Hamburg bis Stuttgart, von Köln bis Berlin ist alles dabei. Selbst jetzt wo ich hier in Berlin sitze, sind die Wege noch so lang, dass es kaum lohnenswert möglich ist alle zu Kontaktieren.
Jetzt mag es den einen oder anderen geben die sagen "Hey aber was ist mit Telefonen?". Dafür gibt es heutzutage in der digitalen Welt auch immer weniger gebrauch. Das Groß der Nachrichten wird als Text durch Chats verschickt oder per Skype ver VOIPt. Telefonnummern haben für mich nur noch meine Eltern und diverse Ämter (die allesamt noch zu weit vom digitalen Zeitalter entfernt leben, als dass ich ihnen einen ständig online seienden Chat Client aufdrehen könnte).
Kurzum bricht heutzutage das Internet / Funknetz zusammen steht die Welt still, bis sich wieder jemand auf Post und Telefone zurückbesinnt. Dann beginnt die Zeit in der viele Briefe mit Telefonnumern hin und her geschickt werden um Kommunikation wieder angenehmer zu machen. Eigentlich eine interessante Vorstellung... wieder ein wenig weg von Stress und Hektik der heutigen Welt... hin zu bedachterer Kommunikation untereinander. Denn wenn ich jemanden anrufe muss ich mit dem auch aktiv reden ... Chats, VoiceChats und Emails sind da ja nur halbaktiv. Man muss nicht immer sofort antworten.
Habe nach ewigem Rumprobieren nun herausgefunden dass wenigstens [[Meebo|www.meebo.com]] noch auf irgendeine Weise Kontakt zum ICQ Netzwerk hinbekommt. Frage mich was die anders machen.
"I don't care of monday's blue
Tuesday's grey and Wednesday too
Thursday I don't care about you
it's friday i'm in love."
von The Cure - Friday I'm in love
Ein Song der mich schon längere Zeit begleitet und immer wieder anders wirkt. Manchmal (selten) trifft der Text einfach nur zu, manchmal muntert mich die halbmelancholische halb glückliche Art des Songs auf, manchmal ist es vllt. auch einfach nur die schöne Art wie gesungen wird. Er passt auf soviele Situationen und Gefühle...
Wenn ich gefragt werde, was für Musik ich so höre, antworte ich meistens mit einem Schulterzucken und dem Satz "Das kann ich so genau nicht beantworten, meistens Querbeet und nach meiner derzeitigen Stimmung.".
Ich kann mich einfach nicht festlegen weil es in sogut wie allen Genres echt schöne Musik gibt. Man findet zu beliebigen Stimmungen unzählig viel Musik und meist reicht eine Hand voll um einen Effekt zu erreichen. Sei es schlechte Gefühle wegzuspülen oder schöne noch schöner zu machen.
Friday i'm in love hat von beiden Seiten etwas... die leicht melancholische Art des Gesangs und der Text die eher zur traurigen Seite passen. Der Protagonist wartet wöchentlich sehnsüchtig auf Freitag um seine Liebe wieder zu erleben. Die Melodie der Band und der Freitagsteil des Refrains sowie das Ende des Songs zur positiven Seite, der Protagonist erlebt seine Liebe wieder und geht darin auf, gehört.
So ... *Musik wieder anmach*
Probleme zu lösen oder größere Entscheidungen zu treffen braucht Zeit.
Das betrifft dann nicht nur die Lösung sondern auch die Einordnung ob es überhaupt ein größeres Problem ist.
So sind einige Dinge die zuerst gewaltig erscheinen, sind einige Wochen oder Monate nocheinmal betrachtet wesentlich unwichtiger als im ersten Moment gedacht.
Mein letztes großes Problem habe ich gut ein Jahr in Gedanken bearbeitet, bis ich mich für eine endgültige Lösung entscheiden konnte, bis ich genug darüber nachgedacht, Vorteile und Nachteile abgewägt hatte und dann meinen festen Standpunkt dazu finden konnte. Das mag jetzt lang erscheinen, aber es war auch eine Sache die vieles verändert und wo eine leichtfertige Entscheidung alles nur schwerer gemacht hätte.
Das schwere an den meisten großen Problemen ist weniger die Entscheidungsfindung, als das erkennen und akzeptieren, dass es ein großes Problem ist. So bin ich in letzter Zeit häufiger mal in Situationen in denen ich das Gefühl habe schnell handeln zu müssen um mir Chancen nicht entgehen zu lassen oder mir schnell Klarheit zu verschaffen.
Dabei taktieren dann oft Kopf- und Bauchgefühl gegeneinander und bringen einen großen Haufen Verunsicherung dazu. Wenn der Kopf meint "lass dir Zeit, die Entscheidung ist nicht so schnell zu treffen" sagt der Bauch dazu dann meist nur "Komm mach mal etwas schneller... wenn du dir zu lang Zeit lässt könnte es zu spät sein".
In solchen Situationen ist es dann besonders schwer sich wirklich die Zeit zu nehmen, das Bauchgefühl (vorläufig etwas) zu unterdrücken (denn so zeitkritisch wie es einem der Bauch dann mitteilt ist es oft ja doch nicht) um die derzeitige Situation sacken zu lassen, sich innerlich etwas zu festigen und dann aus diesem Standpunkt heraus seine Entscheidungen zu fällen oder zu handeln. Dabei kann auch Abstand zu den Personen helfen die mit dem Problem/der Entscheidung direkt verbunden sind. Das hilft dabei herauszufinden was man wirklich (tun) will. Mit mehr Zeit kann man sich dann auch klarer darüber werden welchen Einfluss dass auf die anderen Personen hat bzw. wie diese reagieren würden. Wenn man Glück hat löst sich auch alles von allein, wenn man sich genügend Zeit dafür nimmt.
Um das mal an einem Beispiel zu erklären:
Die Situation sei folgende... Man hat ein paar neue Leute kennengelernt oder meinetwegen auch jemanden den man schon länger kennt und merkt, dass man sich mit einer Person davon auf eine angenehme Art und Weise sehr gut versteht und Gefühlmäßig schon hart an der Grenze zwischen Freundschaft und mehr kratzt. Um daraus jedoch mehr zu machen, müsste man entsprechend handeln, man kennt aber auch die Gefühlslage des jeweils anderen nicht (Geht es ihm/ihr ähnlich?). Außerdem kann es ja sein, dass man die neuen Bekanntschaften noch garnicht genug kennt um sich auf so viel einzulassen und nur die Faszination für diese neue Bekanntschaft grad so stark ist, dass man denkt es wären mehr Gefühle da.
Überstürzt man nun seine Taten ist es höchstwahrscheinlich dass man die neue (oder schon länger andauernde) Bekanntschaft aufs Spiel setzt und am Ende damit völlig kaputt macht.
Nimmt man sich jedoch Zeit und versucht mehr über das Gegenüber herauszufinden, (sich unter Umständen näher kennen zu lernen), mehr Zeit miteinander zu verbringen und dann auch ein wenig darauf zu achten ob die Faszination erhalten bleibt oder von allein wieder verebbt, kann man sich nicht nur unangenehme Situationen ersparen und wenn sich herausstellt dass es doch nicht mehr war, sondern auch eine gute Freundschaft daraus entstehen lassen.
Stellt sich heraus, dass beide dafür bereit sind einen Schritt weiter zugehen, passiert das dann während des Zeit nehmens und gemeinsam verbringens oft von ganz allein, d.h. dass auch da ein direktes Entscheiden und Handeln unnötig wird. Wo man sonst also schnell gehandelt hätte und mit großer Wahrscheinlichkeit mehr kaputt gemacht hätte als erschaffen hätte, findet man in diesem Beispiel z.B. zum Ziel indem man einfach mal nicht handelt.
Kaum kennt man mal einige Blogger persönlich wird man selbst als "bisher wenig Blogger" in deren obskure Riten und Gebräuche hineingezogen. So geschehen durch [[Laetitia (Katzenträume)|http://laetitiabranchi.wordpress.com/]] die mir ein [[Stöckchen|http://laetitiabranchi.wordpress.com/2010/08/10/nerdstockchen/]] zugeworfen hat, was ich natürlich auch umgehend beantworten will.
Da das mein erstes je zugeworfen bekommenes Stöckchen ist bitte ich um Nachsicht """^^""".
----
Nerd zu sein ist prima. An sich meistens, aber konkret
;''nachts um vier, weil…''
:man Nachts einfach mehr Ruhe hat um klar zu denken und um die Zeit die ICQ Liste von Mitnerds dominiert wird mit denen man dann ausgiebig diskutieren kann, was meistens die interessantesten Chatgespräche werden die es so gibt.
;''in diesem leicht heiß geratenen Sommer gerade, weil…''
:man heutzutage mit """Netbook/Laptop/$beliebigesAnderesPortablesGerät""" schön in der Innenstadt am Brunnen sitzen kann, die Beine im Wasser und über das ~UniWLAN trotzdem nicht vom Rest der Welt abgeschnitten ist. Der Informatiker von heute ist einfach kein sozialphobischer Kellerzombie mehr... viel mehr habe ich das Gefühl dass gerade die Informatiker mehr Hang zur Natur haben als andere Leute.
;''morgens beim aufstehen, weil…''
:"morgens" von Tag zu Tag anders definiert oder einfach (wie z.B. in einem 40h Wachbleibmarathon ;) ) mal völlig Auskommentiert werden kann. Meist geht man aber dann schlafen, wenn andere gerade aufstehen, was zu witzigen Situationen führen kann. Bei mir ists nämlich grundsätzlich immer erst nach dem Schlafen "morgen". Nach dem Aufstehen gibt es aber immer das beruhigende Summen des hochfahrenden ~PCs der nur begierig darauf wartet endlich die Mails und Nachrichten der vergangenen paar Stunden, die man nicht am Rechner gesessen hat, abzurufen.
;''bei der folgenden Geschichte''
:Ich hab mit einem Kommilitonen nach Spielen die man während der Vorlesung auf dem Netbook über Netzwerk zocken kann, jedoch nicht zuviel Aufmerksamkeit benötigen, gesucht. Dabei sind wir irgendwann auf [[Widelands|http://wl.widelands.org/]] gestoßen und nach einigem Spielen sind wir dann drauf gekommen doch einfach mal selbst ein Spieleprojekt zu starten. Es ist einfach schön diese Dynamik unter Informatikern, dass man sich einfach zusammenfindet und irgendwelche Projekte startet. Etwas Vergleichbares kann ich mir bei vielen anderen Studiengängen nicht wirklich vorstellen.
;''Nerdsein ist aber auch nicht immer das reine Glück. Beispielsweise…''
:in Gefühlssituationen die ich grundsätzlich zu analytisch angehe und so noch viel komplizierter mache als sie eigentlich sein sollten. Der gemeine Nerd hat zwar ein Herz aber so richtig drauf hören mag oft nicht so recht klappen. Manchmal wünscht man sich auch einen Debugger fürs Gegenüber um mal die Eigenschaften und den derzeitigen Zustand genauer unter die Lupe nehmen zu können """^^"""
;''Nerdtests sind…''
:eigentlich überflüssig """^^""" Es gibt so viele Arten von Nerdtum, da sollte man nicht versuchen diese durch Tests zu kategorisieren oder zu bewerten.
;''Dieses ~Nerd-Sein-Gefühl, das hab ich besonders, wenn/weil…''
:ich mal wieder weit nach Mitternacht ein plötzlich aufploppendes ICQ Fenster bekomme in dem ich gefragt werde ob ich mich mit diesem oder jenem (meist im Umfeld der Programmierung) auskenne und nicht mal meine Gedanken dazu äußern kann, was dann meist darin endet dass ich die nächsten paar Stunden damit verbringe verschiedene Wege aufzuzeigen oder eine möglichst optimale Lösung zu finden. "//Oh es ist ja schonwieder hell draussen!//"
;''Ich kenne weitere Nerds, denen ich dieses Stöckchen weiterreiche, nämlich…''
:Tom und Franzi (beides Kommilitonen von mir ... die Leipzigelite! """^^"""), die ich vorher aber noch zum Bloggen konvertieren müsste. Mal sehen vllt. bekomme ich sie dazu wenigstens einen Gasteintrag hier zu hinterlassen. Ansonsten Lydi (die wurde aber auch schon von Laetitia beworfen) und [[Mario|http://www.mariopeter.de/]] der so langsam in die Riege der Nerds aufzusteigen scheint """^^""" (hast du eigentlich noch ein Blog Mario?).
Ich habe mich vor kurzem ja schon mit der Entscheidungs- und Problemlösungsfindung im Leben geäußert.
Da man aber niemals fehlerlos durchs Leben gehen kann, gibt es irgendwann mal einen Moment an dem man darüber nachdenkt dass man etwas was man getan hat, besser nicht getan hätte.
Solche Überlegungen sind völlig normal nur sollte man sich auch darüber Gedanken machen ob man das, was man getan hat bereut bzw. ob man sie bereuen sollte. Viele Sachen sind es nämlich garnicht wert im nachhinein als "bereue ich" abgestempelt zu werden.
Das kann verschiedene Gründe haben:
* Man hat in dem Moment als man es getan hat, das völlig bewusst getan und war sich der möglichen Folgen bewusst, also gibt es auch im nachhinein da nichts zu bereuen, selbst wenn etwas anders gelaufen ist als gedacht
* Es gibt einen Zusammenhang zwischen der evtl. "bereuungswürdigen" Sache und anderen Dingen die sich dafür eher positiv ausgewirkt haben
* Man hat aus dem Fehler gelernt
Wobei der letzte Punkt wohl der wichtigste ist. Dass man jeden Fehler den man macht erkennt, reflektiert und für sich selbst eine Lehre/Konsequenz zieht um den gleichen Fehler nicht wieder zu begehen. So arbeitet man kontinuierlich an sich selbst ohne zum unmenschlichen Perfektionisten zu werden und entwickelt sich fort. Umgekehrt, lernt man nicht aus seinen Fehlern begeht man sie immer wieder und tritt für immer und ewig auf der Stelle ohne sich charakterlich sonderlich weit zu entwickeln.
So nachdem ich die letzten 2 Tage hin und wieder ein wenig in PHP rumgeproggt habe, ist es an der Zeit kurz mein aktuelles Projekt vorzustellen.
Ich habe es vorläufig auf den Namen """SMOG - Simple Media Blog""" getauft (ob der Name so bleibt, weiss ich noch nicht, ich fand den aber unglaublich kreativ """^^"""). Ziel des Projekts ist es ein möglichst kleines PHP Programm zu schreiben mit dem man einfache Blogs realisieren kann in denen man ohne großen Aufwand ein paar Bilder oder ein Youtubevideo verlinken kann.
Meine Motivation war, dass ich das Blog aus dem Wiki hier ausgliedern kann und dann vollständig für Tutorials und Projektvorstellungen nutzen kann, während das Blog als wirkliches Blog funktionieren kann.
Bin gestern umgezogen und hab im Wohnheim noch Probleme mit dem Internet. Sobald ich wieder richtig online bin, wird auch richtig weitergebloggt =).
"""*grad im Starbucks sitz*"""
edit:
Habe nun wieder Internet. =)
Es gibt im Moment so viele kleine Dinge die mir im Kopf herumschwirren, dass ein Blogpost für jedes Thema zuviel wäre, ich es aber trotzdem gern irgendwie niederschreiben würde. Deswegen gibt es jetzt unter der Überschrift "Gedankensplitter" solche kleinen Themen einfach immer in gesammelter Form.
!!!Sie sprechen Starbucks?
<<<
"So ein Laden wie Starbucks hat nur einen Sinn: Völlig entscheidungsschwachen Menschen beizubringen sechs Entscheidungen zu treffen um nur eine Tasse Kaffee zu kaufen. Kleiner Kaffee, großer, schwarz, mit Milch, mit Coffein, ohne Coffein, mit fettarmer Milch, mit Sahne usw. Dadurch bekommen die Leute, die zwar keine Ahnung haben wo sie hinwollen oder wer sie sind für nur 2,95 Dollar nicht nur eine Tasse Kaffee, sondern auch eine wirklich entscheidende Festigung ihres Selbstwertgefühls." aus "Email für dich"
<<<
Am Dienstag bin ich früh, bevor ich zum Bus bin, nochmal zum Starbucks und hab meine Standardbestellung heruntergerattert nur diesesmal auf Starbucks statt auf Normaldeutsch:
<<<
"Einen White Café Mocha, Triple Shot, ohne Sahne, zum mitnehmen bitte"
<<<
Wahnsinn wie dieser Laden sich eine eigene Sprechweise "erschaffen" hat. Bestellt man so, hat man sein Getränk auch irgendwie wesentlich schneller in der Hand, hab ich das Gefühl.
!!!Eherettung?
Am Dienstag nachmittag ging es dann zu meinen Schwiegereltern. Zur einem Gespräch mit meiner Ehefrau, der ich noch eine faire Chance eingeräumt habe nocheinmal an allem zu arbeiten. Es ging in letzter Zeit leider nicht so gut, aber für eine endgültige Trennung war es auch noch zu früh. Nun läuft sie also, die letzte fair vergebene Chance.
Nun kommen mir nur die Gedanken wieder ob das alles so seine Richtigkeit hat und die Angst, dass mir Andere doch wichtiger werden könnten, dass meine Liebe nicht reichen könnte um das zusammen zu halten. Was tut man dann? Alles beenden? Nun muss ich mir erstmal die Zeit nehmen um herauszufinden wie das alles genau weitergehen kann und soll um in einigen Monaten dann auch eine Bilanz ziehen zu können, ob das eine Zukunft hat.
Da wir nun in getrennten Wohnungen leben, wird das alles zumindest erstmal alles ein wenig einfacher für jeden.
!!!Kino 1 - Inception
Gestern waren wir zu zwei Filmen im Kino. Der erste war "Inception". Ein unglaublich gut gemachter Science Fiction Thriller (Klappt die Einordnung?) der mit Träumen und Traumebenen spielt und darin eine wirklich dichte Atmosphäre aufbaut. Leider kann man nicht zu viel über die Story verraten, ohne etwas vorweg zu nehmen.
Definitiv eine Empfehlung von mir
!!!Kino 2 - Die Legende von Aang 3D
Der zweite Film gestern Abend war der erste Film zur Serie Avatar. Prinzipiell war der Film sehr schwach und ich kann mir vorstellen dass er auch für Leute, die die Serie nicht gesehen haben, zuwenig hergibt um gut unterhalten zu werden. Effektmäßig wirkte das 3D für mich eher aufgesetzt und anstrengend zu schauen. Bei schnellen Kamerafahrten verschwomm das Bild völlig, was bei vielen anderen Filmen die ich schon in 3D gesehen habe nicht der Fall war. Storytechnisch gab es seichte Fantasyunterhaltung mit der typischen Weltretter- und Heilsbringerfigur.
Gerade in letzter Zeit bin ich viel damit beschäftigt mich entweder mit Leuten zu unterhalten bzw. zu schreiben.
Hinterher durchfließt einen dann immer das schöne Gefühl gerade eine sehr angenehme Zeit verbracht zu haben.
Das ist wohl vergleichbar damit, dass man früher vor dem Kamin oder am Lagerfeuer saß, sich über die verschiedensten Dinge unterhalten hat und irgendwann, vllt. nach einer Flasche guten Weins, mit eben diesem Gefühl schlafen gehen konnte.
Zugleich mit den vielen Gesprächen kommen auch, gerade in den letzten 2 Monaten und hoffentlich auch zukünftig, einige neue Bekanntschaften dazu oder auch Personen die ich eigentlich schon länger kenne, aber mit denen ich vorher nie so persönlich viel zutun hatte. Bekanntschaften mit neuen Geschichten, Sicht- oder Lebensweisen, die man ersteinmal näher kennenlernen muss, aber auch Andere bei denen man feststellt, dass man in den Dingen über die man so redet relativ gleich denkt. Trotz der Ähnlichkeit werden die Gespräche dann abendfüllend und man denkt selbst am nächsten Tag noch zurück und freut sich über die schöne Zeit die man da hatte.
Wobei ich es auch nicht schlecht hinstellen will, dass Gespräche heutzutage viel über das Internet geführt werden. Als schüchterne Person hat man da leichter die Möglichkeit auch brisantere Themen anzusprechen oder auch Anerkennung zu vergeben. Es geht einem (mir) zumindest weit weniger im Hinterkopf herum als wenn man persönlich mit den anderen zusammensitzen würde. Kontakte werden schneller geknüpft und auch wenn man mal nichts zu sagen hat, herrscht kein betretenes Schweigen.
Ein schöner gemeinsamer Abend an einem schönen Ort ist mir insgesamt trotzdem lieber...
!Tiddlereinstellungen
|!Template|!Zweck|h
|[[SiteTitle]]|Haupttitel des Wikis|
|[[SiteSubtitle]]|Untertitel des Wikis|
|[[SiteUrl]]|URL des Wikis (wichtig fürs RSS)|
|[[MainMenu]]|Hauptmenü (links)|
|[[DefaultTiddlers]]|standardmäßig geöffnete Tiddlers beim Aufruf der Seite|
!Plugins
|!Plugin|!Zweck|h
|[[PasswordOptionPlugin]]|Passwortschutz zum hochladen der Daten per [[UploadPlugin]]|
|[[UploadPlugin]]|"save to web" Funktionalität.|
Die neuesten Blogeinträge stehen immer ganz unten!
<<list filter [tag[journal]]>>
[[Tutorials]]
[[Projekte]]
[[Propaedeutikum/MuP1 WS10/11]]
----
Ich auf:
[[Twitter|http://twitter.com/Aron_dc]]
[[Facebook|http://www.facebook.com/arondc]]
----
[[Sandbox]]
[[Administratives]]
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 = "Save this password on this computer";
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"
});
*/
!Eigene Projekte
|!Projektname|!Kurzbeschreibung|h
|LWJGL Engine|Eine 2D/3D Engine geschrieben in Java|
|[[SMOG - Simple Media Blog]]|Ein kleines PHP Blogsystem mit Medienunterstützung|
!Propaedeutikum
Hier gibt es im Laufe des Propaedeutikums Link, Tipps & (wenn man mir es erlaubt ;) ) Musterlösungen zu einigen der gestellten Aufgaben. Auch wenn interessante Fragen während des Propaedeutikums auftreten sollten versuche ich diese hier zusammenzufassen.
!!Links
[[Seite des Propaedeutikums WS10/11|http://www.informatik.uni-leipzig.de/~meiler/Propaed.dir/PropaedWS10.dir/]]
!~MuP1 Wintersemester 2010/11
Hier gibt es meine Musterlösungen für die in ~MuP1 ~WS10/11 gestellten Aufgaben als Eclipse Projekt.
Sowie an den Stellen an denen es sich anbietet auch Tipps. Die Musterlösungen werde ich in Absprache mit Fr. Meiler auch in Moodle zur Verfügung stellen.
Simple Media Blog (kurz "SMOG") ist eine kleine und einfach zu bedienende Blogsoftware geschrieben in ~PHP5.
@@Zur Zeit befindet sich SMOG noch in der Entwicklung. Eine erste Version ist für Ende September geplant.@@
Folgende Features sind geplant:
* Einfache Eingabeoberfläche für schnelles und einfaches bloggen
* Unterstützung von Bilder und Youtubeverlinkung
* automatisierte Setupscripte
instanceof Leipzig (Tutorials,Projekte, etc.)
http://www.start-at.de/studium/
~TiddlyWiki ist ein Wiki System auf ~JavaScript Basis in einer einzigen Datei, die nur einige hundert Kilobyte groß ist.
Mehr Infos über ~TiddlyWiki findet ihr auf der offiziellen Homepage: http://www.tiddlywiki.com/
Da das ganze nur aus einer Datei besteht könnt ihr das Blog auch auf einem USB Stick speichern, dort eigene Einträge und Notizen vornehmen und somit eine Art Notizbuch erstellen.
Zur Zeit sind leider noch keine Tutorials online. Sobald sich das ändert, wird dies auch im Blogbereich bekannt gegeben.
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 15/08/2010 19:20:46 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | | ok |
| 15/08/2010 19:23:06 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | |
| 17/08/2010 15:11:07 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | |
| 20/08/2010 11:38:39 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | | ok |
| 20/08/2010 11:39:01 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | |
| 20/08/2010 11:39:33 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | |
| 22/08/2010 16:56:36 | Aron | [[/|http://www.start-at.de/]] | [[store.php|http://www.start-at.de/store.php]] | . | [[index.html | http://www.start-at.de/index.html]] | |
| 22/08/2010 22:23:53 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | |
| 27/08/2010 19:35:12 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | | ok |
| 27/08/2010 19:35:43 | Aron | [[/|http://start-at.de/]] | [[store.php|http://start-at.de/store.php]] | . | [[index.html | http://start-at.de/index.html]] | |
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: "Save and Upload this TiddlyWiki with UploadOptions",
promptParamMacro: "Save and Upload this TiddlyWiki in %0",
saveLabel: "save to web",
saveToDisk: "save to disk",
uploadLabel: "upload"
};
config.macros.upload.messages = {
noStoreUrl: "No store URL in parmeters or options",
usernameOrPasswordMissing: "Username or password missing"
};
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: "Upload with options",
step1Title: "These options are saved in cookies in your browser",
step1Html: "<input type='hidden' name='markList'></input><br>",
cancelButton: "Cancel",
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 saved",
backupFailed: "Failed to upload backup file",
rssSaved: "RSS feed uploaded",
rssFailed: "Failed to upload RSS feed file",
emptySaved: "Empty template uploaded",
emptyFailed: "Failed to upload empty template file",
mainSaved: "Main TiddlyWiki file uploaded",
mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
//specific upload
loadOriginalHttpPostError: "Can't get original file",
aboutToSaveOnHttpPost: 'About to upload on %0 ...',
storePhpNotFound: "The store script '%0' was not found."
};
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 of the UploadService script (default: store.php)",
txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
txtUploadUserName: "Upload Username",
pasUploadPassword: "Upload Password",
chkUploadLog: "do Logging in UploadLog (default: true)",
txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});
// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');
// Backstage
merge(config.tasks,{
uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");
Herzlich willkommen auf meiner neuen Seite.
Klickt ruhig ein wenig herum und erforscht die Wikisoftware, kaputtmachen könnt ihr hier nichts (da ihr sowieso nicht auf meinem Webspace speichern dürft ;) ).
Der Blog ist weiter unten zu finden.