<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>vorlesung &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/vorlesung/</link>
	<description>Feed of posts on WordPress.com tagged "vorlesung"</description>
	<pubDate>Thu, 03 Dec 2009 21:37:34 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[E-Commerce]]></title>
<link>http://fuckinghotstuff.wordpress.com/2009/11/27/e-commerce/</link>
<pubDate>Fri, 27 Nov 2009 14:49:00 +0000</pubDate>
<dc:creator>Samuel Stelzer</dc:creator>
<guid>http://fuckinghotstuff.wordpress.com/2009/11/27/e-commerce/</guid>
<description><![CDATA[In kaum einem Aspekt hat uns das Internet bisher tief gehender beeinflusst als in unserem Kaufverhal]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In kaum einem Aspekt hat uns das Internet bisher tief gehender beeinflusst als in unserem Kaufverhalten. Seit 1998 können wir in Deutschland bequem von zu Hause per Mausklick einkaufen.</p>
<p>Zunächst ein paar Fakten. Letztes Jahr haben die Deutschen für rund 13,6 Milliarden Euro im Internet gekauft. Inzwischen nutzen mehr als die Hälfte der Deutschen das Internet und drei Viertel davon kaufen auch darüber ein. Beide Werte sind die letzten Jahre konstant angestiegen und mit ihnen die Umsätze des Internethandels. Damit nehmen wir Deutschen eine Vorreiterrolle in Europa ein. Erstaunlich ist auch, dass die Frauen fast genau so fleißig im Netz einkaufen wie die Männer. Gekauft werden in erster Linie Bekleidungsartikel, Medien und Elektro-Artikel. Ebay ist immer noch Einkaufsplattform Nr.1 gefolgt von Amazon. Mit großem Abstand kommen dann Tchibo, Otto und Weltbild.</p>
<p><!--more--></p>
<p>Grund genug die zwei größten Anbieter kurz vorzustellen. Amazon wurde 1994 von Jeff Bezos in Seattle gegründet. Der Amerikaner studierte zwar Elektrotechnik und Informatik, war dann aber an der Börse tätig, wo er bemerkte, dass ein Bereich extrem starkes Wachstum verzeichnete. Alles was mit der neuen Technik Internet zu tun hatte. Daraufhin kam ihm die Idee einen elektronischen Handel aufzubauen angefangen mit dem Vertrieb von Büchern. Inzwischen hat Amazon mehr als 20.000 Mitarbeiter und setzt knapp 20 Milliarden US-Dollar um. 1998 wurde dann amazon.de gestartet, wodurch es auch den Deutschen möglich wurde den Internethandel zu nutzen. Amazon verfolgt einen durchdachten Plan von strategischen Akquisitionen. Damit wuchs das Unternehmen vom Bücherhandel zum „Alles-Anbieter“. Ein Teil der Unternehmensphilosophie ist es, den Kunden mit möglichst wenigen Klicks erst zum gewünschten Produkt und dann zum Kaufabschluss zu bringen. Zahlen belegen, dass das Unternehmen noch immer wächst, die Umsätze und die Neukunden steigen.</p>
<p>Anders hingegen bei Ebay. Bei dem 1995 gegründeten Online-Auktionshandel scheint die Wachstumsgrenze beinahe erreicht zu sein, die Kaufvorgänge sind sogar rückläufig. Angefangen hat alles in San José. Der Informatiker Pierre Omidyar entwickelte in seiner Freizeit ein Plattform für private Online-Aktionen. Das Projekt ist bis heute zu einem 16.000 Mitarbeiter Unternehmen herangewachsen mit einem Umsatz von 8,5 Milliarden US-Dollar. Außerdem werden inzwischen auch Sofortkäufe angeboten und neben privaten Kunden finden sich auch professionelle Händler. Auch Ebay hat in der Vergangenheit erfolgreich akquiriert. Ein wichtiger Schritt war hier der Kauf des Online-Bezahlservices PayPal. Die Philosophie dahinter war, den Kunden während dem kompletten Kaufvorgang zu begleiten. Eine weitere Investition aus diesem Grund war der Kauf von Skype, einer kostenlosen VoIP-Software, zu dem stolzen Preis von 3,1 Milliarden US-Dollar. Eine Investition, die sich bisher bei weitem noch nicht bezahlt gemacht hat, da Skype nach wie vor kostenlos angeboten wird.</p>
<p>Wodurch unterscheiden sich jetzt die zwei Anbieter. Zum einen in den verschiedenen Features. Bei Ebay werden die Verkäufer und Käufer bewertet, man kann Auktionen beobachten und auf der Startseite werden besonders günstige Tagesangebote, sogenannte WOW!-Angebote angezeigt. Amazon hingegen bietet zum Beispiel einen Wunschzettel, Lieblingslisten und Foren. Aber was meiner Meinung nach ein wirklicher Vorteil ist, sind die Rezensionen. Jeder Kunde kann Produkte bewerten, was es Interessierten einfach macht verschiedene Produkte zu vergleichen.</p>
<p>Was aber tatsächlich den Erfolgsunterschied macht ist die Seriosität. Auf Ebay kann jeder fast alles verkaufen. Ein Glas Luft, ein W-LAN-Kabel oder ein Käsebrot.  Außerdem kann jeder Verkäufer  die Produktseite selbst gestalten, doch leider sind nicht alle begnadete Informationsdesigner, was durchaus mal netzhautgefährdende Ausmaße annehmen kann. Anders dagegen bei Amazon. Jedes Produkt, dass von Händlern über Amazon vertrieben wird, muss abgesegnet werden. Hinzu kommen Fotografien aus verschiedenen Perspektiven und alles wird auf einer Standardisierten Produktseite angezeigt. Ich glaube, dass es genau daran liegt, dass Amazon was den Umsatz angeht die Nase vorne hat.</p>
<p>Hier der Vortrag von Iliana Bineva, Elisabeth Greitschus und Björn Schell:</p>
<p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
<p><a title="Bookmark and Share" href="http://www.addthis.com/bookmark.php?v=250&#38;pub=fuckinghotstuff" target="_blank"><img src="http://s7.addthis.com/static/btn/sm-share-en.gif" alt="Bookmark and Share" width="83" height="16" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Software-Ergonomie zur Einführung Teil 1-4]]></title>
<link>http://marcelzimmermann.wordpress.com/2009/11/26/software-ergonomie-zur-einfuhrung-teil-1-4/</link>
<pubDate>Thu, 26 Nov 2009 13:25:28 +0000</pubDate>
<dc:creator>Marcel Zimmermann</dc:creator>
<guid>http://marcelzimmermann.wordpress.com/2009/11/26/software-ergonomie-zur-einfuhrung-teil-1-4/</guid>
<description><![CDATA[Die Folien entstammen meiner Vorlesung &#8220;Ergonomie für Informatiker&#8221; an der FH Oldenburg ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Die Folien entstammen meiner Vorlesung &#8220;Ergonomie für Informatiker&#8221; an der FH Oldenburg Wilhelmshaven (2003 bis 2007). Es wurden Grundlagen der Software-Ergonomie vermittelt. Diese lagen noch als Downloads auf meiner privaten Homepage. Aufgrund der erfreulich hohen Nachfrage aber Grund genug die bei Slideshare einzustellen.</p>
<p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
<p><strong>Tag 1:</strong></p>
<ul>
<li>Überblick und Grundlagen</li>
<li>Zentrale Fragestellungen</li>
</ul>
<p><!--more--></p>
<p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
<p><strong>Tag 2: </strong></p>
<ul>
<li>Erkenntnistheorie</li>
<li>Usability</li>
</ul>
<p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
<p><strong>Tag 3:</strong></p>
<ul>
<li>Usability</li>
<li>ISO 9142-10</li>
</ul>
<p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
<p><strong>Tag 4: </strong></p>
<ul>
<li>Formulardesign</li>
<li>Barrierefreiheit &#38; BITV</li>
<li>Dialogstile</li>
<li>Usability-Forschung und Evaluation</li>
</ul>
<p>Bestandteil der Vorlesung waren natürlich auch viele praktische Übungen, die hier nicht dokumentiert sind. Ich denke das viele Screens zwar aktualisiert werden könnten, diese aber im Grundsatz nach wie vor die Inhalte richtig darstellen. Aus heutiger Sicht würe ich in jedem Fall die Themen Informationsarchitektur und User Experience mit reinnehmen.</p>
<p>Nach wie vor das spannendeste Thema ist für mich die Erwartungskonformität aus systemtheoretischer Perspektive. Diese hatte ich nur in ein paar Folien (Doppelte Kontingenz) angerissen, rufen aber nach Ausarbeitung <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The World’s 50 Best Open Courseware Collections]]></title>
<link>http://fobikom.wordpress.com/2009/11/24/the-world%e2%80%99s-50-best-open-courseware-collections/</link>
<pubDate>Tue, 24 Nov 2009 06:57:55 +0000</pubDate>
<dc:creator>jplie</dc:creator>
<guid>http://fobikom.wordpress.com/2009/11/24/the-world%e2%80%99s-50-best-open-courseware-collections/</guid>
<description><![CDATA[Schon der Name ist gut: &#8220;Sir Learnalot&#8217;s Knowledge Blog&#8221; und der Eintrag &#8220;Th]]></description>
<content:encoded><![CDATA[Schon der Name ist gut: &#8220;Sir Learnalot&#8217;s Knowledge Blog&#8221; und der Eintrag &#8220;Th]]></content:encoded>
</item>
<item>
<title><![CDATA[Da war einer in Berlin [Versuch eines kritischen Reiseberichts, teil 5]]]></title>
<link>http://themzini.wordpress.com/2009/11/22/da-war-einer-in-berlin-versuch-eines-kritischen-reiseberichts-teil-5/</link>
<pubDate>Sun, 22 Nov 2009 00:53:30 +0000</pubDate>
<dc:creator>tmabona</dc:creator>
<guid>http://themzini.wordpress.com/2009/11/22/da-war-einer-in-berlin-versuch-eines-kritischen-reiseberichts-teil-5/</guid>
<description><![CDATA[&nbsp; Dann wendet sich mein kopf nach links, in richtung bewegungsquelle und wer kommt herbei getra]]></description>
<content:encoded><![CDATA[&nbsp; Dann wendet sich mein kopf nach links, in richtung bewegungsquelle und wer kommt herbei getra]]></content:encoded>
</item>
<item>
<title><![CDATA[Cartoon: Die gute alte Zeit]]></title>
<link>http://nimmerfrohcartoon.wordpress.com/2009/11/21/cartoon-die-gute-alte-zeit/</link>
<pubDate>Sat, 21 Nov 2009 21:54:39 +0000</pubDate>
<dc:creator>nimmerfroh</dc:creator>
<guid>http://nimmerfrohcartoon.wordpress.com/2009/11/21/cartoon-die-gute-alte-zeit/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><img class="aligncenter size-medium wp-image-113" title="Schule war doch schön. Jetzt muss ich hier sitzen und alten selbstverliebten Leuten zuhören, die Vorlesungen halten." src="http://nimmerfrohcartoon.wordpress.com/files/2009/11/nimmerfroh_vorlesungen.jpg?w=300" alt="" width="300" height="217" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Display Werbung]]></title>
<link>http://fuckinghotstuff.wordpress.com/2009/11/20/display-werbung/</link>
<pubDate>Fri, 20 Nov 2009 14:21:38 +0000</pubDate>
<dc:creator>Samuel Stelzer</dc:creator>
<guid>http://fuckinghotstuff.wordpress.com/2009/11/20/display-werbung/</guid>
<description><![CDATA[Display-Werbung im Internet ist fast genau so alt wie die private Nutzung des Internet. Angefangen h]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Display-Werbung im Internet ist fast genau so alt wie die private Nutzung des Internet. Angefangen hat alles mit den berühmten Bannern. Wer kennt sie nicht?  Banner sind quasi das virtuelle Gegenstück zu den Werbeplakaten und Anzeigen der realen Welt, die darüber hinaus über den Vorteil verfügen, dass sie per Klick direkt auf die Seite des Werbetreibenden weiterleiten.</p>
<p>Zu Beginn hat das auch noch ganz gut funktioniert und so haben sich die unterschiedlichsten Norm-Formate entwickelt, vom Superbanner über den Wide Skyscraper bis hin  zum Wallpaper. Doch im Ernst, wer kommt heute noch auf die Idee auf einen Banner zu klicken? Wer nimmt diese überhaupt wahr? Tatsächlich hat sich bei den Internetnutzern eine Art &#8220;Bannerblindheit&#8221; ausgebreitet. Das hat zum einen dazu geführt, dass häufig nicht mehr nach Page Impressions (Kontaktchance mit dem Banner) abgerechnet wird, sondern nach Klicks (tatsächlicher Kontakt). Zum anderen überlegte man sich wie man die Aufmerksamkeit der User besser gewinnen kann.</p>
<p><!--more--></p>
<p>Dadurch entwickelte sich unter anderem die wohl nervigsten Display-Werbeformen des Internets, die Popup- und Flashlayer-Werbung. Beim Öffnen einer Seite öffnet sich sofort ein neues Fenster mit Werbeinhalt oder eine Anzeige, die über dem eigentlichen Inhalt befindet. Oft wird das Schließen durch versteckte Buttons oder verwirrende Symbolik zusätzlich erschwert.</p>
<p>Heute ist den meisten längst bewusst, dass man Geld verschwendet, wenn man einfach nur auf Masse oder Nervfaktor setzt. Moderne Display-Werbung bietet Interaktivität, Videos nehmen zu und Werbeformen wie Expandables oder Page-Peel-Ads suggerieren dem Nutzer die Freiheit selbst zu entscheiden. Darüber hinaus wird durch immer gezielteres Targeting die Relevanz verstärkt.</p>
<p>In Cannes prämiert man schon seit 1998 die besten Online-Kampagnen mit 4 Cyber Lions.</p>
<p>Hier die Präsentation von Dorothea Neu und Christoph Bubeck:</p>
<p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Abschiedsvorlesung Friedemann Schulz von Thuns]]></title>
<link>http://juhudo.wordpress.com/2009/11/18/abschiedsvorlesung-friedemann-schulz-von-thuns/</link>
<pubDate>Wed, 18 Nov 2009 19:12:45 +0000</pubDate>
<dc:creator>juhudo</dc:creator>
<guid>http://juhudo.wordpress.com/2009/11/18/abschiedsvorlesung-friedemann-schulz-von-thuns/</guid>
<description><![CDATA[Heute habe ich erst Zeit gehabt, die fast hundertminütige Abschiedsvorlesung Schulz von Thuns anzusc]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Heute habe ich erst Zeit gehabt, die fast hundertminütige <a title="vorlesung" href="http://lecture2go.uni-hamburg.de/veranstaltungen/-/v/10197" target="_blank">Abschiedsvorlesung Schulz von Thuns </a>anzuschauen, available by lecture2go der Uni Hamburg.</p>
<p>Kennen gelernt habe ich sein 4-Ohren-Kommunikationsmodell ja schon im Rahmen meines Germanistik-Studiums anfang der 80iger Jahre. Es war so kar und nachvollziehbar, dass ich es sofort ebenfalls unterrichtet habe, als ich auf SchülerInnen losgelassen wurde. Nebenbei glaube ich es in mein Leben eingebaut zu haben.</p>
<p>Heuer kamen Schulz von Thuns Bücher erneut in akademischem Kontext auf mich zu und ich war erstaunt, dass sich da in 25 Jahren nichts Neues ergeben hat oder entwickelt wurde. Dass etwas so gut sein soll, dass es in unserer kurzlebigen Zeit noch Bestand hat. Doch es ist so &#8211; nach Wiederlesen, Reflektieren und Diskussionen mit meinen KollegInnen steht es fest!</p>
<p>Daher war die Vorlesung für mich schon interessant, amüsant und auch berührend.Wer Zeit findet, sollte sie sich unbedingt ansehen &#8211; Schulz von Thun erzählt über sein universitäres Leben, seine BegleiterInnen und wie seine Kommunikationsmodelle entwickelt wurden &#8211; Geschichte der Kommunikationstheorie!</p>
<p><a title="vorlesung" href="http://lecture2go.uni-hamburg.de/veranstaltungen/-/v/10197" target="_blank"><img class="aligncenter size-full wp-image-672" title="schulzvthun" src="http://juhudo.wordpress.com/files/2009/11/schulzvthun.jpg" alt="schulzvthun" width="332" height="255" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript: Validierung als Objectschablone]]></title>
<link>http://bletra.wordpress.com/2009/11/17/javascript-validierung-als-objectschablone/</link>
<pubDate>Tue, 17 Nov 2009 21:10:47 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/17/javascript-validierung-als-objectschablone/</guid>
<description><![CDATA[Im letzten Artikel habe ich ausführlich die barrierefreie Ausgabe von falschen Benutzereingaben eine]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Im letzten <a title="Basis für unser Objekt" href="http://bletra.wordpress.com/2009/11/17/javascript-formularvalidierung/" target="_self">Artikel</a> habe ich ausführlich die barrierefreie Ausgabe von falschen Benutzereingaben eines Formulars beschrieben. Nun möchte ich diese Funktionen in eine Objektschablone schieben, um sie in anderen Projekten leichter verwenden zu können. Dazu sollten möglichst wenige hard-coded Eigenschaften in dem Validatorobjekt selbst sein. Im Konstruktor übergeben wir die absolut notwendigen Parameter, nämlich</p>
<ul>
<li> die id des Containers, in dem das zu validierende Formular ist (und in den die Fehlermeldung geschrieben werden soll)</li>
<li>ein Array mit den Feldern:
<ul>
<li>ref: id des zu validierenden Feldes</li>
<li>datamask: regulärer Ausdruck für gültige Eingaben</li>
<li>msg: Fehlermeldung</li>
</ul>
</li>
</ul>
<p>Weitere Eigenschaften werden als Public zur Verfügung gestellt, so dass sie verändert werden können. Für die es aber sinnvolle Default-Einstellungen gibt. Hard-coded bleibt die HTML-Struktur der Fehlermeldungen: h2-Überschrift mit ol-Fehlermeldungen.</p>
<p>Zunächst schieben wir die Funktion NewElement in unser <a title="globales Dom-Helper-Array" href="http://bletra.wordpress.com/2009/11/17/javascript-funktionsbibliothek-namensraum-simulieren/" target="_self">DomHelper-Objekt</a>. Und schreiben dann die Validator-Klasse.</p>
<pre class="brush: jscript;">
function UBTValidator(containerId, validationConfig) {
	/* private */
	var ERROR_TAG_ID = &#34;errorMessageUBT&#34;; //should serve as a constant, but JS does not differ between vars and consts
	var ERROR_HEADER_ID = &#34;errorNameUBT&#34;;
	var self = this; //needed for private functions like showErrors
	function showErrors(errorIndices) {
		var container, errorMsg, el, ol, li, anchor;
		container = document.getElementById(containerId);
		// we might have to reset the error messages
		if  (document.getElementById(ERROR_TAG_ID)) {
			container.removeChild(document.getElementById(ERROR_TAG_ID));
			for (i = 0;i &#60; validationConfig.length;i++) {
				var node = document.getElementById(validationConfig[i].ref);
				if (node &#38;&#38; node.className === self.ErrorClass) {
					node.className = &#34;&#34;;
				}
			}
		}
		//create error intro
		errorMsg = UBTDomHelper.NewElement(&#34;div&#34;,{id:ERROR_TAG_ID});
		el = UBTDomHelper.NewElement(&#34;h2&#34;);
		el.appendChild(UBTDomHelper.NewElement(&#34;a&#34;,{id:ERROR_HEADER_ID},self.ErrorIntro));
		errorMsg.appendChild(el);
		ol = UBTDomHelper.NewElement(&#34;ol&#34;);
		//add the errors
		for (var i = 0; i&#60;errorIndices.length; i++) {
			el = UBTDomHelper.NewElement(&#34;li&#34;);
			anchor = UBTDomHelper.NewElement(&#34;a&#34;,{href:&#34;#&#34;+validationConfig[errorIndices[i]].ref},validationConfig[errorIndices[i]].msg);
			anchor.onclick = function(){document.getElementById(this.href.split(&#34;#&#34;)[1]).focus();return false;}; //this is related to the context, when the link is clicked, i.e. the a-tag itself
			el.appendChild(anchor);
			ol.appendChild(el);
			if (document.getElementById(validationConfig[errorIndices[i]].ref)) {
			  document.getElementById(validationConfig[errorIndices[i]].ref).className = self.ErrorClass;
			}
		}
		errorMsg.appendChild(ol);
		//add everything at once to avoid confusing rereading of some screenreaders.
		if (this.FormId) {
			container.insertBefore(errorMsg, document.getElementById(this.FormId));
		}
		else {
			//fetch the first form
			container.insertBefore(errorMsg,container.getElementsByTagName(&#34;form&#34;)[0]);
		}
		document.getElementById(ERROR_HEADER_ID).focus();
	}

	/* public */
	this.ErrorClass = &#34;error&#34;; //invalid input fields will get this class
	this.ErrorIntro = &#34;Das Formular kann leider nicht versendet werden, bitte korrigieren Sie folgende Fehler:&#34;; //introduction of the detailed error message
	this.FormId = null; //id of the form to be validated, if not given, we take the first form of the containerId
	/**
	  * return true on success
	  * return false otherwise and give a detailed error message (added to the document as h2 and ol)
	  */
	this.IsValid = function() {
		var errorIndices = [];
		for (var i in validationConfig) {
			var inputField = document.getElementById(validationConfig[i].ref)
			if (!validationConfig[i].datamask.test(inputField.value)) {
			  errorIndices[errorIndices.length] = i;
			}
		}
		if (errorIndices.length &#62; 0) {
			showErrors(errorIndices);
			return false;
		}
		return true;
	}
}
</pre>
<p>In Zeile 6 bedienen wir uns einen verbreiteten Tricks: Die public Eigenschaft self zeigt auf die aktuelle Instanz. Erst dadurch erhalten wir in der privaten Methode showErrors Zugriff auf this.ErrorClass und andere, also auf die öffentlichen Eigenschaften der Objektschablone. Der Rest ist ohne besondere Feinheiten <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>&#160;</p>
<p>Im zu validierenden HTML-Formular brauchen wir dann nur noch:</p>
<pre class="brush: xml;">
&#60;script src=&#34;UBTDomHelper.js&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62;
	&#60;script src=&#34;UBTValidator.js&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62;
	&#60;script type=&#34;text/javascript&#34;&#62;
		window.onload = ini;
		var validationConfig = [
			{ref:'name',datamask:/^[\.]+$/,msg:'Der Name ist erforderlich.'},
			... wie gehabt ...
		]
		var validator = null;
		function ini()
		{
			validator = new UBTValidator(&#34;formContainer&#34;, validationConfig);
			document.getElementById(&#34;Bestelldaten&#34;).onsubmit = function(){
				return validator.IsValid();
			};
		}
	&#60;/script&#62;
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Was ist Multiple Choice - Ein Nachruf]]></title>
<link>http://oilofolaf.wordpress.com/2009/11/17/was-ist-multiple-choice-ein-nachruf/</link>
<pubDate>Tue, 17 Nov 2009 19:41:14 +0000</pubDate>
<dc:creator>oilofolaf</dc:creator>
<guid>http://oilofolaf.wordpress.com/2009/11/17/was-ist-multiple-choice-ein-nachruf/</guid>
<description><![CDATA[Nachdem ich heute wieder mal eine Klausur geschrieben habe, musste ich über Multiple Choice Klausure]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Nachdem ich heute wieder mal eine Klausur geschrieben habe, musste ich über Multiple Choice Klausuren nachdenken.</p>
<p><span style="text-decoration:underline;"><strong>Prüfungen an der UPB</strong></span></p>
<p>Bislang hatte ich eine sehr sehr negative Einstellung, geprägt durch meine bisherige Erfahrung mit Multiple Choice Klausuren an der Universität Paderborn. In den Klausuren wurde getrickst und reingelegt, dass sich die Balken biegen! Teilweise biegen sich die Balken dann so sehr, dass das Dach zusammenstürzt und man durchfällt.</p>
<p>Wie wird geprüft? <a href="http://oilofolaf.wordpress.com/files/2009/11/bwl-klausuren.jpg"><img class="aligncenter size-full wp-image-202" title="BWL Klausuren" src="http://oilofolaf.wordpress.com/files/2009/11/bwl-klausuren.jpg" alt="" width="450" height="429" /></a>Hier ein willkürlich ausgesuchtes Beispiel. Man muss nun entscheiden ob die Aussagen RICHTIG sind. Die Aussagen sind stellenweise über 3 Sätze lang und gespickt mit Fachbegriffen. Je häufiger man sich die Aussagen durchliest, desto unsicherer wird man.</p>
<p>Hinzu kommen gerne Generalisierungen, die die Aussage von RICHTIG auf FALSCH umdrehen können. (Generalisierung: immer, nur, niemals, grundsätzlich, &#8230;)</p>
<p>Einfaches Generalisierungsbeispiel:<br />
Im allgemeinen muss man für einen Kredit Zinsen zahlen (RICHTIG);<br />
Für einen Kredit muss man immer Zinsen zahlen (FALSCH)</p>
<p>Ein weiterer Fallstrick: Das Intervall</p>
<p><a href="http://oilofolaf.wordpress.com/files/2009/11/bwl-klausuren2.jpg"><img class="aligncenter size-full wp-image-203" title="BWL Klausuren2" src="http://oilofolaf.wordpress.com/files/2009/11/bwl-klausuren2.jpg" alt="" width="509" height="374" /></a>Auch wenn man die Rechnung richtig hat, heißt das noch lange nicht volle Punktzahl. Drei der Aussagen sind übrigens richtig! Es ist ja jetzt nicht so, dass das sonderlich schwer ist. Aber im Eifer des Prüfungsgefechts verliert man hier schonmal die Übersicht und vergisst ein Kreuz.</p>
<p>Und damit komme ich zum Bewertungssystem:</p>
<p>Um dem fiesen, gemeinen Student das Handwerk zu legen, der dreist  50/50 ratet, gibt es innerhalb eines Blocks auch Minuspunkte! Die Frageblöcke bestehen immer aus 5 Aussagen, die als richtig oder falsch anzusehen sind.</p>
<p>Für jede korrekte Bewertung einer Aussage erhält man einen Punkt, für jeden falschen einen halben abgezogen. D.h.:</p>
<p>5 Richtig &#8211; 5 Punkte<br />
4 Richtig &#8211; 3,5 Punkte<br />
3 Richtig &#8211; 2 Punkte<br />
2 Richtig &#8211; 0,5 Punkte<br />
1 Richtig &#8211; 0 Punkte<br />
0 Richtig &#8211; 0 Punkte</p>
<p>Das führt dazu, dass man ganz ganz schnell absackt, wenn man Frageblöcke nicht zu 100% richtig hat! Oder umgekehrt: Man kann durchaus über 50% korrekte Bewertungen abgegeben haben, aber dennoch durchfallen!!</p>
<p><span style="text-decoration:underline;"><strong>Mein Fazit: </strong></span></p>
<p>Diese Form der Klausur hat durchaus ihre Vorteile&#8230; sie spart Zeit und Geld in der Korrekturphase. Das Geld kann dann für Tutorien verwendet werden, in dem man auf die Fallstricke der MC Klausur hingewiesen wird&#8230; na schönen Dank! Es ist schlichtweg Massenabfertigung!</p>
<p>ABER was bekommt man in der Klausureinsicht? Seinen Antwortbogen, auf dem man kontrollieren kann ob die Kreuze richtig ausgelesen wurden. Eine wirkliche Erklärung warum welche Aussage als richtig/falsch zu bewerten gewesen wäre gibt es selten.</p>
<p>Diese Klausurform ist aufgrund der teilweise sehr komplex formulierten Aussagen sehr für Auswendiglerner geeignet. Es nutzt dir nichts, wenn du den Stoff verstanden hast, aber die Definition nicht zu 100% kannst.</p>
<p>Ich bin kein Auswendiglerner. Und ich bin heilfroh, durch alle dieser Klausuren im ersten Versuch durchgekommen zu sein, auch wenn es teilweise wirklich knapp war! Aber ein gutes Pferd springt ja bekanntlich nicht höher als es muss!!! =)</p>
<p><strong><span style="text-decoration:underline;">Wie sieht es in den USA aus?</span></strong></p>
<p>Aufgrund meiner negativen Erfahrung hatte ich bei den MC Klausuren in den USA ein echt ungutes Gefühl.</p>
<p>Aber hier läuft das anders: <a href="http://oilofolaf.wordpress.com/files/2009/11/cimg51801.jpg"><img class="aligncenter size-full wp-image-206" title="CIMG5180" src="http://oilofolaf.wordpress.com/files/2009/11/cimg51801.jpg" alt="" width="450" height="600" /></a>Zunächst einmal ECHTES multiple choice! Man kann tatsächlichen zwischen Antwortmöglichkeiten wählen. Und nur <strong>eine </strong>von den vier bis fünf Antwortmöglich ist auch wirklich die Antwort.</p>
<p>Es gibt auch True-False Fragen:<br />
<a href="http://oilofolaf.wordpress.com/files/2009/11/cimg51811.jpg"><img class="aligncenter size-full wp-image-207" title="CIMG5181" src="http://oilofolaf.wordpress.com/files/2009/11/cimg51811.jpg" alt="" width="450" height="600" /></a>Auch hier sollte ein Unterschied deutlich werden. Es sind sehr kurze Sätze! Ich muss keinen Metersatz in meinem Kopf jonglieren!</p>
<p>In allen meiner Kurse gibt es einen weiteren Unterschied: Wird eine MC Frage überdurchschnittlich häufig falsch beantwortet, wird diese gestrichen! Alternativ wird der Durchschnitt durch &#8220;Curving&#8221; angepasst. So kann es vorkommen, dass jeder 5% Punkte bekommt, um doppeldeutige &#8220;gemeine&#8221; Fragen abzufangen. Und der Proffessor sieht sich als &#8220;Schuldigen&#8221; für gemeine Fragen. Denn er hat die Klasse nicht ausreichend gut auf die Frage vorbereitet! Bzw. er hat die Frage schlichtweg schlecht formuliert.</p>
<p><em>&#8220;I adjusted everyone&#8217;s raw score upward 8 points (the rough equivalent of 5 questions). Any question that 57.5% or greater of the class missed was thrown out (hence this adjustment).&#8221;</em></p>
<p>So habe ich entgegen meiner Befürchtungen bislang sehr gute Ergebnisse in den bisherigen MC-Klausuren erzielt. Hoffentlich bleibt das auch die letzten vier Wochen so!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Präsentation zur Vorlesung am 17. November]]></title>
<link>http://absatzwirtschaft.wordpress.com/2009/11/17/prasentation-zur-vorlesung-am-17-november/</link>
<pubDate>Tue, 17 Nov 2009 18:22:56 +0000</pubDate>
<dc:creator>nimmerfroh</dc:creator>
<guid>http://absatzwirtschaft.wordpress.com/2009/11/17/prasentation-zur-vorlesung-am-17-november/</guid>
<description><![CDATA[Themen: Marktforschung (Wiederholung) und Marketingstrategien Die Präsentation können Sie hier herun]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Themen: Marktforschung (Wiederholung) und Marketingstrategien</p>
<p>Die Präsentation können Sie <a href="http://www.immerfroh.de/ecommerce/absatzwirtschaft/absatzwirtschaft_5_web.pdf">hier</a> herunterladen.<br />
Veränderungen: Im Abschnitt Marktforschung (Wiederholung) sind die zehn versehentlich fehlenden Folien ergänzt worden und auf der Folie &#8220;Strategische Alternativen nach Marktphase&#8221; ist ein sinnentstellender Schreibfehler korrigiert worden.</p>
<p><a href="http://www.immerfroh.de/ecommerce/absatzwirtschaft/probeklausur_absatz09.pdf">Probeklausur</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript: Formularvalidierung]]></title>
<link>http://bletra.wordpress.com/2009/11/17/javascript-formularvalidierung/</link>
<pubDate>Tue, 17 Nov 2009 12:02:15 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/17/javascript-formularvalidierung/</guid>
<description><![CDATA[Die Validierung von Eingabefelder vor dem Abschicken eines Formulars an den Server, ist ein Standard]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Die Validierung von Eingabefelder vor dem Abschicken eines Formulars an den Server, ist ein Standardanwendungsgebiet für JavaScript. Für eine Bestellung betrachten wir folgendes Formular (Design von<a title="Formular CSS" href="http://www.manuel-bieh.de/blog/schone-formulare-in-xhtmlcss" target="_blank"> Manuel Bieh</a>):</p>
<p><a href="http://bletra.wordpress.com/files/2009/11/formular.jpg"><img class="alignleft size-medium wp-image-337" title="formular" src="http://bletra.wordpress.com/files/2009/11/formular.jpg?w=300" alt="" width="300" height="167" /></a>Im einfachsten Fall gibt es Funktionen, die auf &#8220;nicht-leer&#8221; überprüfen, lästige alert-Boxen hochpoppen lassen und bei dem ersten Fehler mit der Validierung aufhören. So hangelt man sich von Fehler zu Fehler, bis man das Formular richtig ausgefüllt hat. Fehlermeldungen sind auch schnell weggeklickt, ohne dass man speichert, was doch gleich zu korrigieren war. Daher gehen wir das Problem mit folgenden Verbesserungen an:</p>
<p>1. Alle Fehler werden gesammelt ausgegeben.</p>
<p>2. Die Fehlermeldungen werden dynamisch in den HTML-Code eingfügt.</p>
<p>3. Zur Validierung werden reguläre Ausdrücke verwendet (gibt es gut bei <a title="Reguläre Ausdrücke" href="http://www.regular-expressions.info/" target="_blank">http://www.regular-expressions.info/</a>).</p>
<p>Der Code orrientiert sich stark an <a title="Barrierefreies Formular" href="http://www.usability.com.au/resources/wcag2/form7.html" target="_blank">http://www.usability.com.au/resources/wcag2/form7.html</a></p>
<p>zu 1:</p>
<p>Alle Validierungsfunktionen werden aufgerufen und erst dann wird die Fehlermeldung eingefügt und wahr oder falsch zurückgegeben.</p>
<p>zu 2:</p>
<p>In einem Array werden die Fehler gesammelt. Die Inhalte werden abschließend durch ShowErrors ausgegeben. Ändert sich der Inhalt, dann fangen viele Screenreader an, den Inhalt der Seite von Anfang an vorzulesen. Insgesamt ergeben sich aus der Barrierefreiheit folgende Anforderungen:</p>
<ul>
<li>Alle Fehlermeldungen werden in einem Schritt dem DOM &#8211; als ein Kindknoten -  hinzugefügt.</li>
<li>Die Überschrift der Fehlermeldung ist ein Link &#8211; um in der Linkliste zu erscheinen.</li>
<li>Jede Fehlermeldung enthält einen Link zu dem zu korrigierenden Eingabefeld.</li>
<li>Ein Klick auf eine konkrete Fehlermeldung setzt den Fokus auf das zugehörige Eingabeelement (JavaScript im onclick).</li>
</ul>
<p>Konkret brauchen wir einen Container um das ganze Formular, in das wir vor das Formular einen Knoten mit den Fehlermeldungen einsetzen. Zur Vereinfachung verwenden wir die Funktion newElement(tag, attributes, text), die uns ein DOM-Knoten erzeugt &#8211; ohne ihn in das Dokument einzufügen.</p>
<pre class="brush: jscript;">
function newElement(tag, attributes, text) {
  var element = document.createElement(tag);
  if (attributes!= null &#38;&#38; attributes!= 'undefined') {
    for (var i in attributes) {
      element.setAttribute(i,attributes[i]);
    }
  }
  if (typeof text == 'string') {
    element.appendChild(document.createTextNode(text));
  }
  return element;
}
</pre>
<p>Die zu validierenden Felder definieren wir mit den zugehörigen regulären Ausdrücken in einem globalen Array:</p>
<pre class="brush: jscript;">
var validationConfig = [
      {ref:'name',datamask:/^[a-z]+$/i,msg:'Der Name ist erforderlich.'},
      {ref:'street',datamask:/^[a-z]+$/i,msg:'Die Straße ist erforderlich.'},
      {ref:'plz',datamask:/^[0-9]{5}$/,msg:'Die Postleitzahl muss fünfstellig sein.'},
      {ref:'city',datamask:/^[a-z]+$/i,msg:'Die Stadt ist erforderlich.'},
      {ref:'email',datamask:/^[\w\.-]+@[a-z0-9-\.]+\.[a-z]{2,6}$/i,msg:'Die eingegebene E-Mail Adresse ist nicht gültig.'}
    ];
</pre>
<p>Die Funktion validate durchläuft dieses Array. Die Indizes fehlerhafter Eingabefelder werden gespeichert. Im Fehlerfall wird ShowErrors aufgerufen und falsch zurück gegeben, so dass das Formular nicht abgeschickt wird.</p>
<pre class="brush: jscript;">
function validate() {
    var errorIndices = [];
  for (var i in validationConfig) {
    var inputField = document.getElementById(validationConfig[i].ref)
    if (!validationConfig[i].datamask.test(inputField.value)) {
      errorIndices[errorIndices.length] = i;
    }
  }
  if (errorIndices.length &#62; 0) {
    ShowErrors(errorIndices);
    return false;
  }
  return true;
}
</pre>
<p>Nun müssen die Fehlermeldungen noch geeignet erzeugt und in das Dokument eingefügt werden.</p>
<pre class="brush: jscript;">
function ShowErrors(errorIndices) {
  var container, errorMsg, el, ol, li, anchor;
  container = document.getElementById('formContainer');
  // we might have to reset the error messages
  if  (document.getElementById('errorMessage')) {
    container.removeChild(document.getElementById('errorMessage'));
    var inputs = document.getElementsByTagName('input');
    for (i = 0;i &#60; inputs.length;i++) {
      if (inputs[i].className == 'error')
        inputs[i].className = '';
    }
  }
  //create error intro
  errorMsg = newElement('div',{id:'errorMessage'});
  el = newElement('h2');
  el.appendChild(newElement('a',{id:'errorName',name:'errorName',href:'#'},'Das Formular kann leider nicht versendet werden, bitte korrigieren Sie folgende Fehler:'));
  errorMsg.appendChild(el);
  ol = newElement('ol');
  //add the errors
  for (var i = 0; i&#60;errorIndices.length; i++) {
    el = newElement('li');
    anchor = newElement('a',{href:'#'+validationConfig[errorIndices[i]].ref},validationConfig[errorIndices[i]].msg);
    anchor.onclick = function(){document.getElementById(this.href.split('#')[1]).focus();return false;};
    el.appendChild(anchor);
    ol.appendChild(el);
    if (document.getElementById(validationConfig[errorIndices[i]].ref))
      document.getElementById(validationConfig[errorIndices[i]].ref).className = 'error';
  }
  errorMsg.appendChild(ol)
  //add everything at once to avoid confusing rereading of some screenreaders.
  container.insertBefore(errorMsg,container.getElementsByTagName('form')[0]);
  document.getElementById('errorName').focus();
}
</pre>
<p>Erläuterung:</p>
<ul>
<li>Zeile 6:  Entfernt die Knoten mit einleitendem Text und detaillierten Fehlermeldungen.</li>
<li>Zeilen 7-11:  Entfernt für alle Eingabefelder das class-Attribut, so dass der Hintergrund beispielsweise nicht mehr rot ist.</li>
<li>Zeile 23: Bei Klick auf den Link soll der Fokus auf das Eingabeelement gesetzt werden. Das href-Attribut hat die Form: #id, z.B. für das Feld mit id=&#8221;name&#8221; ist href=&#8221;#name&#8221;. Mit Split erhalten wir das Array (&#8220;&#8221;,  &#8220;name&#8221;). Wir brauchen das 1. Element und setzten den Fokus darauf. Es wird falsch ausgeführt, um das eigentliche Klick-Event auf den Link zu unterdrücken.</li>
</ul>
<p>Die Wiederverwendbarkeit und Definition geeigneter Objektschablonen ist Thema des nächsten Artikels.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript: Vererbung]]></title>
<link>http://bletra.wordpress.com/2009/11/17/javascript-vererbung/</link>
<pubDate>Tue, 17 Nov 2009 08:23:23 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/17/javascript-vererbung/</guid>
<description><![CDATA[JavaScript ist eine funktionale Sprache, es gibt aber auch Objekte und eine Art Vererbung &#8211; di]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>JavaScript ist eine funktionale Sprache, es gibt aber auch Objekte und eine Art Vererbung &#8211; die Programmiererin muss selbst darauf achten, gewisse Dinge einzuhalten oder sich entsprechende Hilfsfunktionen definieren oder noch besser, gleich ein geeignetes Framework einsetzen. Hier möchte ich auf die einfachste Vererbung in JavaScript eingehen &#8211; Frameworks kommen später <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Im einfachsten Fall habe ich also eine Objektschablone Animal und eine davon erbende Objektschablone Dug.</p>
<pre class="brush: jscript;">
function Animal(name, outputId) {
  /* public */
  this.Name = name;
  this.OutputNode = document.getElementById(outputId);
}
function Dug(name, outputId) {
...
}
Dug.prototype = new Animal();
</pre>
<p>Durch die außerhalb der Vorlage Dug angegebene Anweisung Dug.prototype = new Animal(); findet die Vererbung statt. Genauer gesagt erhält die Objektschablone Dug einen Link auf die Objektschablone Animal. Der Konstruktor, d.h. die Funktion Animal wird damit ausgeführt und Dug hat die öffentlichen Eigenschaften Name und OutputNode. Ich sehe in diesem Ansatz folgende Nachteile:</p>
<ul>
<li>Die Parameter name, outputId können nicht direkt an den Konstruktor der Superklasse Animal übergeben werden.</li>
<li>Prinzipiell kann jede von außen die Schablone Dug oder Animal verändern. Dies kann auch für einzelne Instanzen erfolgen:
<ul>
<li>var donald = new Dug(); donald.Hello = function() {alert(&#8216;Hello&#8217;);} //nur die Instanz donald kennt Hello</li>
<li>Dug.prototype.Fly = &#8220;Ich fliege&#8221;; //alle Instanzen von Dug haben nun die Eigenschaft Fly</li>
</ul>
</li>
</ul>
<p>Am zweiten Problem kann man nichts ändern, dies ist &#8220;by Design&#8221;, also so gewollt. Für das Konstruktorproblem gibt es zwei Ansätze:</p>
<ol>
<li>Einführung einer öffentlichen Eigenschaft, die auf die Superklasse zeigt.</li>
<li>Verwendung von .constructor</li>
</ol>
<p>Für beide Varianten, auch wenn Variante 1 vielleicht anderes suggeriert,  bleibt die Anweisung außerhalb der Objektschablonen<br />
Dug.prototype = new Animal();  zur Definition der Vererbung notwendig.</p>
<p>Variante 1:</p>
<pre class="brush: jscript;">
&#60;pre&#62;function Dug(name, outputId) {
  this.base = Animal; //Zeiger auf Definition Animal, base ist ein frei wählbarer Bezeichner
  this.base(name, outputId);
...
</pre>
<p>Ich muss also zweimal definieren, dass Animal meine Superklasse sein soll, hm.</p>
<p>Variante 2:</p>
<pre class="brush: jscript;">
function Dug(name, outputId) {
  this.constructor(name, outputId);
...
</pre>
<p>Eigentlich ziemlich genau, was ich möchte, wenn auch nicht unbedingt intuitiv. ABER, wenn ich nun vergesse, mit Dug.prototype = new Animal(); die Vererbung zu deklarieren, dann wird nicht, wie ich es vermutet hätte, der Konstruktor von Object ausgeführt, sondern der tatsächliche Konstruktor, nämlich Dug. Man landet dann in einer Endlosschleife. Warum? Für jede Objektschablone, erzeugt JavaScript, per default, folgende Definition:</p>
<pre class="brush: jscript;">
  Dug.prototype = new Object();
  Dug.prototype.constructor = Dug; //alle Instanzen von Dug haben nun die Eigenschaft .constructor = Dug!
</pre>
<p>Erst das Überschreiben von prototype überschreibt auch den Konstruktor entsprechend.</p>
<h2>Fazit</h2>
<p>Es gibt Vererbung in JavaScript. Wenn ich jedoch tatsächlich mehrere von einander erbender Objekte brauche, dann werde ich Hilfsfunktionen wie bei <a title="Mootools Framework" href="http://mootools.net/" target="_blank">MooTools</a> oder anderen implementieren, die mir die Fehlerwahrscheinlichkeit reduzieren. Zu MooTools gibt es eine gute <a title="Mootools Einführung" href="http://www.peterkroener.de/neue-artikelserie-mootools-fuer-die-massen-teil-1-mootools-im-ueberblick/" target="_blank">Einführung von Peter Kröner</a>. Es lohnt sich auch, den Quellcode von MooTools anzusehen!!!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript: Funktionsbibliothek - Namensraum simulieren]]></title>
<link>http://bletra.wordpress.com/2009/11/17/javascript-funktionsbibliothek-namensraum-simulieren/</link>
<pubDate>Tue, 17 Nov 2009 07:23:34 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/17/javascript-funktionsbibliothek-namensraum-simulieren/</guid>
<description><![CDATA[In JavaScript sind Funktionen essentiell. Es gibt eine Möglichkeit ähnlich, wie in anderen Programmi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In JavaScript sind Funktionen essentiell. Es gibt eine Möglichkeit ähnlich, wie in anderen Programmiersprachen eine Klasse von statischen Funktionen zu definieren. Es ist eben nur keine Klasse, aber ähnlich zu verwenden. Im DOM fehlen mir einige Funktionen, also definiere ich sie und lege sie in einem globalen Array mit Literalen als Schlüssel ab.</p>
<pre class="brush: jscript;">
var UBTDomHelper = {
	/* set attribute for given node, if not null or undefined */
	SetNodeAttribute: function (node, attribute, value) {
		if (node) {
			node.setAttribute(attribute, value);
		}
	},
	/* set nodeValue for given node, if not null or undefined */
	SetNodeValue: function (node, value, separator) {
		if (node &#38;&#38; value != null &#38;&#38; (value!='undefined')) {
			this.ClearNode(node);
			if (separator.length &#62; 0 &#38;&#38; value.indexOf(separator) != -1) {
				var lines = value.split(separator);
				for(var i=0; i&#60;lines.length; i++) {
					node.appendChild(document.createTextNode(lines[i]));
					node.appendChild(document.createElement(&#34;br&#34;));
				}
			}
			else {
				node.appendChild(document.createTextNode(value));
			}
		}
	},
	/* remove all children of a given node */
	ClearNode: function (node) {
		if (node) {
			while(node.hasChildNodes()) {
				node.removeChild(node.firstChild);
			}
		}
	}
};
</pre>
<p>Sobald die Datei im HTML eingebunden ist, kann ich an anderer Stelle mit</p>
<pre class="brush: jscript;">
UBTDomHelper.SetNodeAttribute(node, attribute, value);
</pre>
<p>darauf zugreifen.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript: Objekte und private/public Eigenschaften und Methoden]]></title>
<link>http://bletra.wordpress.com/2009/11/16/javascript-objekte-und-privatepublic-eigenschaften-und-methoden/</link>
<pubDate>Mon, 16 Nov 2009 21:14:38 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/16/javascript-objekte-und-privatepublic-eigenschaften-und-methoden/</guid>
<description><![CDATA[JavaScript kennt keine eigentlichen Klassen, aber Objekte und Prototypen. Prototype kann man bei Wik]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>JavaScript kennt keine eigentlichen Klassen, aber Objekte und Prototypen. Prototype kann man bei <a title="Wikipedia: Prototype" href="http://de.wikipedia.org/wiki/Prototype_%28Entwurfsmuster%29" target="_blank">Wikipedia</a> nachlesen, ist ein Entwurfsmuster aus der Kategorie Erzeugungsmuster. Neue Instanzen werden aufgrund von Vorlagen (Prototype) erzeugt. Viele Skripte verwenden ausschließlich eine Fülle von Funktionen, die miteinander interagieren. Bei kleineren Projekten ist dies sicher legitim. Arbeiten mehrere an einem Projekt oder soll das Projekt langfristig gewartet werden, ist es sinnvoll, Funktionen zu entwickeln, die Dinge verstecken und allgemeiner einzusetzen sind.</p>
<p>Ich möchte dies an einer einfachen Bücherliste verdeutlichen: Im einfachsten Fall haben Sie ein Eingabefeld mit der id &#8220;buch&#8221; für einen Titel und zwei Knöpfe &#8220;hinzufügen&#8221; und &#8220;zeigen&#8221;.</p>
<p><a href="http://bletra.wordpress.com/files/2009/11/buchliste.jpg"><img class="alignnone size-medium wp-image-307" title="buchliste" src="http://bletra.wordpress.com/files/2009/11/buchliste.jpg?w=300" alt="Screenshot Buchliste" width="300" height="71" /></a></p>
<p>Typischer Ansatz:</p>
<pre class="brush: jscript;">
var buecher = new Array();
function add() {
  buecher[buecher.length] = document.getElementById(&#34;buch&#34;).value;
}
function show() {
  alert(buecher.join());
}
</pre>
<p>Ok? Zunächst stört mich die alert-Box. Eine Ausgabe mit DOM innerhalb des HTML-Codes ziehe ich vor. Auch verwendet die Funktion &#8220;add&#8221; hardcoded die &#8220;id&#8221; des Eingabefeldes. Wenn ich nun mehrere solche Funktionen habe und ich möchte eine ähnliche Funktionalität in einer anderen Seite einbauen, muss ich Zeile für Zeile durchgehen und schauen, ob der Code noch passt &#8211; sprich ich fange besser von Neuem an und verwende nur mein erworbenes Wissen wieder <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Es geht auch anders: Ich kann ein Objekt erzeugen, das im Konstruktor ids von entsprechenden Feldern bekommt. Auch in JavaScript gibt es das Schlüsselwort this. Alles, was mit this. definiert wird ist &#8220;public&#8221;, alles, was mit var deklariert wird ist &#8220;private&#8221; &#8211; auch Funktionen!<br />
Wir können das Beispiel also Umschreiben zu einem wiederverwendbaren Objekt, das wir in eine separate Datei auslagern können.</p>
<pre class="brush: jscript;">
function CustomerReference(idBookList, idTitle) {
	/* private */
	var bookList = new Array();
	var nodeBookList = document.getElementById(idBookList);
	var nodeBookTitle = document.getElementById(idTitle);
	/* public */
	this.Add = function () {
		bookList[bookList.length] = nodeBookTitle.value;
		nodeBookTitle.value = &#34;&#34;; //so sieht die Benutzerin, dass etwas passiert ist
	};
	this.Show = function () {
		if(nodeBookList.firstChild) {
			nodeBookList.firstChild.nodeValue = bookList.join();
		}
		else {
			//Wenn ein Tag leer ist, dann ist firstChild undefined, also false
			nodeBookList.appendChild(document.createTextNode(bookList.join()));
		}
	};
}
</pre>
<p>Und die zugehörige HTML-Datei kann diese Vorlage nun instanziieren.</p>
<pre class="brush: xml;">
&#60;script type=&#34;text/javascript&#34;&#62;
var custRefs = null;
window.onload = ini;
function ini() {
	custRefs = new CustomerReference(&#34;booklist&#34;, &#34;buch&#34;);
}
&#60;/script&#62;
...
&#60;form action=&#34;#&#34;&#62;
	&#60;div&#62;
		&#60;label for=&#34;buch&#34;&#62;Titel:&#60;/label&#62;&#60;input type=&#34;text&#34; name=&#34;buch&#34; id=&#34;buch&#34; /&#62;
		&#60;input type=&#34;button&#34; value=&#34;hinzufügen&#34; onclick=&#34;custRefs.Add();&#34; /&#62;&#60;br /&#62;
		&#60;input type=&#34;button&#34; value=&#34;zeigen&#34; onclick=&#34;custRefs.Show();&#34; /&#62;
		&#60;p&#62;Bücherliste:&#60;span id=&#34;booklist&#34;&#62;&#60;/span&#62;&#60;/p&#62;
	&#60;/div&#62;
&#60;/form&#62;
</pre>
<p>Dies ist, wie eingangs erwähnt, der erste simple Wurf. Denkbare Erweiterungen: Doppelte Einträge verhindern, die Liste sortiert ausgeben, neben dem Buchtitel noch ISBN, Preis etc. verwalten.</p>
<p>Es lassen sich natürlich nicht nur private Eigenschaften definieren, sondern auch private Methoden. Dabei ist jedoch zu beachten, dass in einer privaten Methode der Zugriff auf öffentliche Methoden und Eigenschaften nur durch einen Kunstgriff möglich ist:</p>
<pre class="brush: jscript;">
function example() {
  var self = this;
  function show() {
    //kein Zugriff auf this, aber:
    alert(self.Greeting);
  }
  this.Greeting = &#34;Hallo&#34;;
}
</pre>
<p>Im nächsten Artikel werde ich die Vererbung genauer ansehen.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[16. November 2009: JavaScript, Webserver]]></title>
<link>http://bletra.wordpress.com/2009/11/15/16-november-2009-javascript-webserver/</link>
<pubDate>Sun, 15 Nov 2009 21:55:28 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/15/16-november-2009-javascript-webserver/</guid>
<description><![CDATA[Fragen, Anregungen, Kommentare?]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Fragen, Anregungen, Kommentare?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[OMG ich glaub es brennt]]></title>
<link>http://manfredthurm.wordpress.com/2009/11/13/350/</link>
<pubDate>Fri, 13 Nov 2009 10:52:23 +0000</pubDate>
<dc:creator>manfredthurm</dc:creator>
<guid>http://manfredthurm.wordpress.com/2009/11/13/350/</guid>
<description><![CDATA[Heute war mal wieder eine BLockvorlesung Production and Supply-Chain Management. Von 8:30 bis 19:30.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Heute war mal wieder eine BLockvorlesung Production and Supply-Chain Management. Von 8:30 bis 19:30. Mal abgesehen von der Tatsache, dass 11 Stunden Vorlesun, selbst mit Pausen didaktisch ABSOLUT hirnverbrannnt ist, war die ganze Veranstaltung mal wieder eine Farce:</p>
<p>Das Skript ist knapp 1200 Seiten dick, und die Folien voller Text, teilweise völlig übeflüssig, sich wiederholend. Dass der Hörsaal auch noch hoffnungslos überfüllt ist, trägt nicht gerade zu einer positiven Lernatmosphäre bei.</p>
<p>Normalerweise besuche ich solche Blockvorlesungen aus Prizip nicht, da man aus den Skripten viel besser lernt. Da es aber eine Zusatzleistung gibt, die auch Punkte für die Prüfung gibt, fertigen nun 500 Studenten in 162 Teams beinahe identische Powerpoint-Präsentationen an. Allerdings bekommt nur der die Punkte, der auch anwesend ist. Weil aber praktische alle, selbst 4 französische Ausstauschstudenten, die Arbeit anfertigen, ergo die Vorlesung besuchen, ohne das zu wollen, ist die Arbeitsmoral faktisch im Keller.</p>
<p>Leider ist der Dozent, ein arroganter, zur Cholerik neigender alter Prof und so hat er uns diese Vorlesung dreimal angeschrien wir sollen leise sein, eine Studentin des Raumes verwiesen und es bei einer weiteren versucht. Natürlich sollen Studenten dem Dozenten einen gewissen Respekt entgegenbringen und sich ruhig verhalten, aber unter den oben beschriebenen Bedingungen ist das halt für Erstsemestler zwischen 18 und 22 Jahren nicht gerade einfach.</p>
<p>Anstatt also das Leid zu verkürzen, die Sonderleistungen an den Anfang zu stellen, damit alle gehen können, die nicht wollen und alle zuhören wollen, die es interessiert, wurden die Leistungen schön über den Tag verteilt, ohne vorher informiert zu haben, besser gesagt: Vorher den Termin auf 9:30 gesetzt zu haben.</p>
<p>Und was folgt daraus. Studenten sollten an der Universität Eigenständigkeit, Selbstverantwortung  und natürlich Fachwissen lernen. Aber wir werden durch solche Aktionen zu Obrigkeitshörigen, kleinlauten Auswendiglernern erzogen.</p>
<p>Kein Wunder dass die Unis brennen&#8230;.</p>
<p><img class="aligncenter" title="Uni brennt" src="http://www.campa.at/media/image/imagetool/240/8926_159091153468_158948343468_2675196_5960695_n.jpg" alt="" width="240" height="160" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Lieber Herr, lass Abend werden...]]></title>
<link>http://derdavid.wordpress.com/2009/11/06/lieber-herr-lass-abend-werden/</link>
<pubDate>Fri, 06 Nov 2009 13:41:04 +0000</pubDate>
<dc:creator>David</dc:creator>
<guid>http://derdavid.wordpress.com/2009/11/06/lieber-herr-lass-abend-werden/</guid>
<description><![CDATA[&#8230; denn Morgen wird es von allein. Heute war wieder eine meiner verhassten 4-Stunden-Nächte, di]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>&#8230; denn Morgen wird es von allein.</p>
<p>Heute war wieder eine meiner verhassten 4-Stunden-Nächte, diesmal so schlimm dass ich unter der Dusche As I Lay Dying¹ hören musste, um irgendwie wach zu werden. Anschließend frühstückte ich mit Musik von In Flames, Kaffee und der Zeitung. Überschrift auf der Titelseite: &#8220;Zu wenig Schlaf macht dick und dumm&#8221; &#8211; Na danke!</p>
<p>Auf der Autobahn war natürlich Stau, und ohne meine Kommolitonen hätte ich mir wahrscheinlich ein Bein abknabbern müssen, um die MuWi-Vorlesung wach zu überstehen.</p>
<p>Die Strecke von der HfM zur Uni haben wir natürlich nicht in den dafür eingeplanten 15 Minuten geschafft, sodass wir etwas zu spät zu Linguistics kamen. Aber doch noch rechtzeitig, um sich in die Anwesenheitsliste einzutragen &#8211; und ein Mid Exam zu schreiben. Ich hatte mir natürlich ausgerechnet die Lernmaterialien zum Thema des Tests <em>nicht</em> angeschaut, wär ja auch zu schön gewesen. Naja, muss ich halt gucken dass ich das zweite Mid Exam bestehe&#8230;</p>
<p>Und um diese Verkettung von Umständen nun vollends zur Tragödie werden zu lassen, habe ich gerade in Ungedanken, anstatt zwei Spam-Mails zu verschieben, meinen kompletten Posteingang unwiederbringlich gelöscht!</p>
<p>Das klingt jetzt schon nach einem erfüllten Disaster-Tag, aber es ist jetzt gerademal halb 3. Hoffentlich geht der Rest des Tages nicht genauso weiter!</p>
<p><span style="color:#888888;">¹<em>eigentlich höre ich ja mittlerweile kaum noch solche Musik, aber es gibt Situationen, da gibt es keine Alternative&#8230;</em></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[09.11.2009: ECMA Script, JavaScript]]></title>
<link>http://bletra.wordpress.com/2009/11/05/09-11-2009-ecma-script-javascript/</link>
<pubDate>Thu, 05 Nov 2009 19:33:01 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/05/09-11-2009-ecma-script-javascript/</guid>
<description><![CDATA[Fragen, Kommentare, Anregungen? &nbsp; Herr Schütte bietet zusätzliches Material zu JavaScript.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Fragen, Kommentare, Anregungen?</p>
<p>&#160;</p>
<p>Herr Schütte bietet zusätzliches <a title="JavaScript Material" href="http://www.fbi.h-da.de/~a.schuette/Vorlesungen/JavaScript/">Material zu JavaScript</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Aufgepeppte textarea für Adminaufgaben in Websystemen]]></title>
<link>http://bletra.wordpress.com/2009/11/05/aufgepeppte-textarea-fur-adminaufgaben-in-websystemen/</link>
<pubDate>Thu, 05 Nov 2009 10:33:03 +0000</pubDate>
<dc:creator>bletra</dc:creator>
<guid>http://bletra.wordpress.com/2009/11/05/aufgepeppte-textarea-fur-adminaufgaben-in-websystemen/</guid>
<description><![CDATA[Die aufgepeppte Textarea, die wir erstellen möchten: Wer Content Management Systeme kennt, kennt ver]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Die aufgepeppte Textarea, die wir erstellen möchten:</p>
<p><a href="http://bletra.wordpress.com/files/2009/11/meineditor.jpg"><img class="alignnone size-medium wp-image-308" title="MeinEditor" src="http://bletra.wordpress.com/files/2009/11/meineditor.jpg?w=300" alt="Screenshot Editor mit JavaScript" width="300" height="164" /></a></p>
<p>Wer Content Management Systeme kennt, kennt verschiedene Varianten von Rich Text Editor. Häufig ist dies ein textarea-Element mit Knöpfen und viel JavaScript. Hier möchte ich den von Yahoo vorstellen. In der YUI Library gibt es verschiedene widgets, unter anderem einen Editor. Yahoo stellt eine <a title="Anleitung von Yahoo" href="http://developer.yahoo.com/yui/editor/" target="_blank">Anleitung</a> mit Video und die zugehörige <a title="Yahoo API für Editor" href="http://developer.yahoo.com/yui/docs/YAHOO.widget.Editor.html" target="_blank">API Dokumentation</a> zur Verfügung.</p>
<h2>Anleitung zum Einbinden des Editors in eine eigene Seite</h2>
<ol>
<li>HTML-Code: Formular mit textarea</li>
<li>Formatierung CSS einbinden und div-Element, das das Formular mit dem Editor umschließt mit class=&#8221;yui-skin-sam&#8221; versehen.</li>
<li>Scripte einbinden.</li>
<li>Toolbar anpassen und Editor rendern.</li>
</ol>
<h3>zu 1:</h3>
<h3 id="ad1">zu 1:</h3>
<pre class="brush: xml;">
&#60;form method=&#34;post&#34; action=&#34;#&#34; id=&#34;form1&#34;&#62;
	&#60;div&#62;
		&#60;textarea id=&#34;editor&#34; name=&#34;editor&#34; rows=&#34;20&#34; cols=&#34;75&#34;&#62;&#60;/textarea&#62;
		&#60;input name=&#34;submit&#34; id=&#34;submit&#34; type=&#34;submit&#34; value=&#34;submit&#34; /&#62;
	&#60;/div&#62;
&#60;/form&#62;
</pre>
<h3>zu 2:</h3>
<pre class="brush: xml;">
&#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34;
	href=&#34;http://yui.yahooapis.com/2.8.0r4/build/assets/skins/sam/skin.css&#34; /&#62;

&#60;div class=&#34;yui-skin-sam&#34;&#62;
</pre>
<h3>zu 3:</h3>
<h3 id="ad3">zu 3:</h3>
<pre class="brush: xml;">
&#60;!-- Utility Dependencies --&#62;
&#60;script type=&#34;text/javascript&#34;
	src=&#34;http://yui.yahooapis.com/2.8.0r4/build/yahoo-dom-event/yahoo-dom-event.js&#34;&#62;&#60;/script&#62;
&#60;script type=&#34;text/javascript&#34;
	src=&#34;http://yui.yahooapis.com/2.8.0r4/build/element/element-min.js&#34;&#62;&#60;/script&#62;
&#60;!-- Needed for Menus, Buttons and Overlays used in the Toolbar --&#62;
&#60;script type=&#34;text/javascript&#34;
	src=&#34;http://yui.yahooapis.com/2.8.0r4/build/container/container_core-min.js&#34;&#62;&#60;/script&#62;
&#60;script type=&#34;text/javascript&#34;
	src=&#34;http://yui.yahooapis.com/2.8.0r4/build/menu/menu-min.js&#34;&#62;&#60;/script&#62;
&#60;script type=&#34;text/javascript&#34;
	src=&#34;http://yui.yahooapis.com/2.8.0r4/build/button/button-min.js&#34;&#62;&#60;/script&#62;
&#60;!-- Source file for Rich Text Editor--&#62;
&#60;script type=&#34;text/javascript&#34;
	src=&#34;http://yui.yahooapis.com/2.8.0r4/build/editor/editor-min.js&#34;&#62;&#60;/script&#62;
</pre>
<h3 id="ad4">zu 4:</h3>
<pre class="brush: jscript;">
(function() {
    var myEditor = new YAHOO.widget.Editor(&#34;editor&#34;, {
    height: &#34;200px&#34;,
    width: &#34;700px&#34;,
    dompath: false,
    handleSubmit: true,
    animate: true,
    toolbar: {
        titlebar: &#34;Mein Editor&#34;,
        buttons: [
            { group: &#34;textstyle&#34;, label: &#34;Format&#34;,
                buttons: [
                    { type: &#34;push&#34;, label: &#34;Fett&#34;, value: &#34;bold&#34; },
                    { type: &#34;push&#34;, label: &#34;Kursiv&#34;, value: &#34;italic&#34; },
                    { type: &#34;push&#34;, label: &#34;Unterstrichen&#34;, value: &#34;underline&#34; },
                    { type: &#34;separator&#34; },
                    { type: &#34;select&#34;, label: &#34;Arial&#34;, value: &#34;fontname&#34;, disabled: true,
                        menu: [
                            { text: &#34;Arial&#34;, checked: true },
                            { text: &#34;Arial Black&#34; },
                            { text: &#34;Comic Sans MS&#34; },
                            { text: &#34;Courier New&#34; },
                            { text: &#34;Lucida Console&#34; },
                            { text: &#34;Tahoma&#34; },
                            { text: &#34;Times New Roman&#34; },
                            { text: &#34;Trebuchet MS&#34; },
                            { text: &#34;Verdana&#34; }
                        ]
                    },

                    { type: &#34;spin&#34;, label: &#34;13&#34;, value: &#34;Schriftgröße&#34;, range: [ 9, 75 ], disabled: true },
					{ type: &#34;separator&#34; },
					{ type : &#34;push&#34;, label : &#34;Aufzählungszeichen&#34;, value : &#34;insertunorderedlist&#34;},
					{ type : &#34;push&#34;, label : &#34;Nummerierung&#34;, value : &#34;insertorderedlist&#34;},
					{ type: &#34;separator&#34; },
                    { type: &#34;color&#34;, label: &#34;Schriftfarbe&#34;, value: &#34;forecolor&#34;, disabled: true },
                    { type: &#34;color&#34;, label: &#34;Hintergrundfarbe&#34;, value: &#34;backcolor&#34;, disabled: true },
                    { type: &#34;separator&#34; },

                    { type : &#34;push&#34;, label : &#34;Linksbündig CTRL + SHIFT + [&#34;, value : &#34;justifyleft&#34;},
					{ type : &#34;push&#34;, label : &#34;Zentriert CTRL + SHIFT + &#124;&#34;, value : &#34;justifycenter&#34;},
					{ type : &#34;push&#34;, label : &#34;Rechtsbündig CTRL + SHIFT + ]&#34;, value : &#34;justifyright&#34;},
					{ type : &#34;push&#34;, label : &#34;Blocksatz&#34;, value : &#34;justifyfull&#34;},
					{ type: &#34;separator&#34; },
					{ type : &#34;select&#34;, label : &#34;Formatvorlage&#34;, value : &#34;heading&#34;,	disabled : true,
						menu : [
							{text : &#34;Normal&#34;, value : &#34;none&#34;, checked : true},
							{text : &#34;Überschrift 1&#34;, value : &#34;h1&#34;},
							{text : &#34;Überschrift 2&#34;,	value : &#34;h2&#34;},
							{text : &#34;Überschrift 3&#34;,	value : &#34;h3&#34;}
                		]
            		}
				]
			},
			{ group: &#34;actions&#34;, label: &#34;Aktionen&#34;,
                buttons: [
					{ type : &#34;push&#34;, label : &#34;externer HTML Link CTRL + SHIFT + L&#34;, value : &#34;createlink&#34;, disabled : true},
					{ type: &#34;separator&#34; },
					{ type : &#34;push&#34;, label : &#34;Rückgängig&#34;, value : &#34;undo&#34;, disabled : true},
                    { type : &#34;push&#34;,  label : &#34;Wiederholen&#34;, value : &#34;redo&#34;, disabled : true}
				]
			}
		]
	}
});
myEditor.render();

})();
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Privatunterricht an der größten Uni Europas]]></title>
<link>http://nilskueper.wordpress.com/2009/11/04/privatunterricht-an-der-grosten-universitat-europas/</link>
<pubDate>Wed, 04 Nov 2009 14:34:37 +0000</pubDate>
<dc:creator>Nils</dc:creator>
<guid>http://nilskueper.wordpress.com/2009/11/04/privatunterricht-an-der-grosten-universitat-europas/</guid>
<description><![CDATA[&#8220;Die Sapienza Universität von Rom, offiziell Università degli Studi di Roma &#8220;La Sapienza]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p><em>&#8220;Die Sapienza Universität von Rom, offiziell Università degli Studi di Roma &#8220;La Sapienza&#8221;, auch Universität Rom I genannt, ist die größte Universität Europas und die älteste Universität der Stadt Rom. [...] Seit 1870 ist La Sapienza staatlich; heute besitzt sie 21 Fakultäten und bietet rund 200 verschiedene Bachelor- und 120 Masterstudiengänge an. Zu La Sapienza gehören 155 Bibliotheken mit rund 4,5 Mio. Bänden, 21 Museen und weitere 130 Abteilungen und Institute, die über die Stadt Rom und umliegende Ortschaften verteilt sind. Hauptstandort in Rom ist die Città Universitaria in der Nähe des Bahnhofs Roma Termini. Der Campus wurde von Marcello Piacentini geplant und 1935 unter Mussolini errichtet.&#8221;</em> (Quelle: wikipedia.de)</p></blockquote>
<p><img class="alignleft size-medium wp-image-641" title="Logo der Universität La Sapienza" src="http://nilskueper.wordpress.com/files/2009/11/logo_lasapienza1.jpg?w=294" alt="Logo der Universität La Sapienza" width="176" height="180" /></p>
<p>Soweit also die Auskunft von Wikipedia über meine Universität hier in Rom. In Anbetracht der o.g. Daten und Fakten könnte man ja nun annehmen, dass die rund 120.000 Studenten die Gebäude rund um den Campus zum Platzen und die Hörsäle in den Fakultäten zum Überlaufen bringen. Aber nichts von alledem. Gestern Abend fand der Kurs &#8220;Storia economia&#8221; zum zweiten Mal statt. Und ich bin fast vom Glauben abgefallen, als sich herausstellte, dass Stephan und ich eine Privatlektion von der Professorin bekommen würden &#8211; denn wir waren die Einzigen. So haben wir es uns also zu dritt gemütlich gemacht: Die Power-Point-Präsentation haben wir uns auf dem Laptop angesehen (der Einsatz eines Beamers wäre etwas übertrieben gewesen) und die Professorin hat sich zu uns in die Bank gesetzt. Jetzt warte ich auf den Tag, an dem Stephan mal nicht mitkommt und ich tatsächlich Einzelunterricht bekomme.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
