<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Studentenblogs DDI@UPB</title>
	<atom:link href="http://ddiupbblogs.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ddiupbblogs.wordpress.com</link>
	<description>Studenten bloggen über ihre Abschlussarbeiten</description>
	<lastBuildDate>Mon, 25 Feb 2013 11:20:09 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ddiupbblogs.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Studentenblogs DDI@UPB</title>
		<link>http://ddiupbblogs.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ddiupbblogs.wordpress.com/osd.xml" title="Studentenblogs DDI@UPB" />
	<atom:link rel='hub' href='http://ddiupbblogs.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Informatik Publikationen der Universität Paderborn</title>
		<link>http://ddiupbblogs.wordpress.com/2013/02/25/informatik-publikationen-der-universitat-paderborn/</link>
		<comments>http://ddiupbblogs.wordpress.com/2013/02/25/informatik-publikationen-der-universitat-paderborn/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 11:20:07 +0000</pubDate>
		<dc:creator>Adrian Wilke</dc:creator>
				<category><![CDATA[Informationsqualität]]></category>
		<category><![CDATA[Open Science]]></category>
		<category><![CDATA[Research 2.0]]></category>
		<category><![CDATA[INSPIRE]]></category>
		<category><![CDATA[open-access]]></category>
		<category><![CDATA[uni-paderborn]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=2075</guid>
		<description><![CDATA[Open Access Publikationen sind frei zugänglich und eignen sich, um einen Eindruck über die Forschung in einem Fachgebiet zu bekommen. Für Autoren bringt die Veröffentlichung im Web auch Vorteile, da elektronische Publikationen nach gegenwärtiger Erfahrung häufiger zitiert werden (DFG). In meiner Abschlussarbeit beschäftige ich mich mit der Generierung von Vorschlägen für wissenschaftliche Publikationen. Diese Vorschläge [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2075&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Open_Access">Open Access</a> Publikationen sind frei zugänglich und eignen sich, um einen Eindruck über die Forschung in einem Fachgebiet zu bekommen. Für Autoren bringt die Veröffentlichung im Web auch Vorteile, da <em>elektronische Publikationen nach gegenwärtiger Erfahrung häufiger zitiert werden</em> (<a href="http://www.dfg.de/dfg_magazin/forschungspolitik_standpunkte_perspektiven/open_access/index.html">DFG</a>).</p>
<p>In meiner Abschlussarbeit beschäftige ich mich mit der Generierung von Vorschlägen für wissenschaftliche Publikationen. Diese Vorschläge werden automatisch berechnet. Daher ist es nötig zu prüfen, ob diese Vorschläge Sinn ergeben.</p>
<p>Eine Möglichkeit der Prüfung ist der Vergleich mit Datensammlungen, die von Menschen klassifiziert wurden. Ein Beispiel ist der <a href="http://people.cs.umass.edu/%7Emccallum/data.html">Cora Datensatz</a>. Eine andere Variante ist eine stichprobenartige Prüfung. Um einen Zusammenhang zwischen Publikationen bewerten zu können, ist allerdings eine gewisse Expertise erforderlich. Und diese ist bei Forschern, Lehrenden und Studierenden zu finden.</p>
<p>Einen Überblick über Informatik-Themen, die an der Uni Paderborn behandelt werden, erhält man durch einen Blick in die Publikationslisten. Diese sind auf den Webseiten der einzelnen Fachgebiete zu finden. Die Veröffentlichung der Dateien im Web bringt den Autoren potenzielle Leser und dadurch vielleicht auch die ein oder andere Zitierung. Für diejenigen, die an einer Sammlung der frei zugänglichen PDFs interessiert sind, sollte diese Tabelle mit Listen von PDF-Dateien nützlich sein:</p>
<table>
<tbody>
<tr>
<th>Fachgebiet</th>
<th>Publikationen</th>
</tr>
<tr>
<td><a href="http://www.hni.uni-paderborn.de/swt">Model Driven Software Engineering</a></td>
<td>0 Dateien</td>
</tr>
<tr>
<td><a href="http://ddi.uni-paderborn.de/">Didaktik der Informatik</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/ddi.txt">37 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/de/fachgebiete/ag-bloemer.html">Codes und Kryptographie</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/ag-bloemer.txt">60 Dateien</a></td>
</tr>
<tr>
<td><a href="http://wwwhni.uni-paderborn.de/alg/">Algorithmen und Komplexität</a></td>
<td>0 Dateien</td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/fachgebiete/ag-boettcher.html">Electronic Commerce und Datenbanken</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/ag-boettcher.txt">2 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/fachgebiete/computer-engineering-group/">Technische Informatik</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/computer-engineering-group.txt">76 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/de/fachgebiete/ag-domik/home.html">Computergrafik, Visualisierung und Bildverarbeitung</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/ag-domik.txt">69 Dateien</a></td>
</tr>
<tr>
<td><a href="http://homepages.uni-paderborn.de/plessl/research/">Custom Computing</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/cc.txt">54 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/fachgebiete/fg-dorigo/">Swarm Intelligence</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/fg-dorigo.txt">211 Dateien</a></td>
</tr>
<tr>
<td><a href="http://wwwhni.uni-paderborn.de/eps/">Entwurf paralleler Systeme</a></td>
<td>0 Dateien</td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/fachgebiete/fg-engels/startseite.html">Datenbank und Informationssysteme</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/fg-engels.txt">363 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.hni.uni-paderborn.de/swt">Softwaretechnik</a></td>
<td>0 Dateien</td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/de/fachgebiete/fg-ti.html">Theorie verteilter Systeme</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/fg-ti.txt">213 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/de/fachgebiete/fachgebiet-rechnernetze/ueberblick.html">Rechnernetze</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/fachgebiet-rechnernetze.txt">155 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/de/fachgebiete/ag-kastens/fachgruppe-prof-dr-uwe-kastens.html">Programmiersprachen und Übersetzer</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/ag-kastens.txt">32 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/fachgebiete/fg-netsec/fg-netsec.html">Sicherheit in Netzwerken</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/fg-netsec.txt">11 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.hni.uni-paderborn.de/koi/">Kontextuelle Informatik</a></td>
<td>0 Dateien</td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/fachgebiete/fg-mci.html">Mensch-Computer-Interaktion und Softwaretechnologie</a></td>
<td>0 Dateien</td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/de/fachgebiete/fg-kleine-buening/startseite.html">Wissensbasierte Systeme</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/fg-kleine-buening.txt">16 Dateien</a></td>
</tr>
<tr>
<td><a href="http://www.cs.uni-paderborn.de/de/fachgebiete/ag-wehrheim.html">Spezifikation und Modellierung von Softwaresystemen</a></td>
<td><a href="http://homepages.uni-paderborn.de/wilke/master/data/upb-cs-publications/ag-wehrheim.txt">18 Dateien</a></td>
</tr>
</tbody>
</table>
<p>Insgesamt 1317 Dateien und 1,3 Gigabyte (ermittelt mit <em>du -sch</em>).</p>
<p><img class="alignleft" style="border:0 none;" alt="Creative Commons Lizenzvertrag" src="http://i.creativecommons.org/l/by/3.0/de/80x15.png" width="80" height="15" /> Dieses Werk bzw. Inhalt steht unter einer <a href="http://creativecommons.org/licenses/by/3.0/de/">Creative Commons Namensnennung 3.0 Deutschland Lizenz</a>.<br />
Wenn möglich, verwenden Sie doch einen Link zum Originalartikel:<br />
<a href="http://homepages.uni-paderborn.de/wilke/master/blog-PDF-Informatik-Publikationen-Uni-Paderborn/">Adrian Wilke: Informatik Publikationen der Universität Paderborn</a>.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/themen/informationsqualitat-themen/'>Informationsqualität</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/open-science/'>Open Science</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/research-2-0/'>Research 2.0</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/inspire/'>INSPIRE</a>, <a href='http://ddiupbblogs.wordpress.com/tag/open-access/'>open-access</a>, <a href='http://ddiupbblogs.wordpress.com/tag/uni-paderborn/'>uni-paderborn</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/2075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/2075/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2075&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2013/02/25/informatik-publikationen-der-universitat-paderborn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/baf67154d94b34919a7c103a52e31dcc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adiaan</media:title>
		</media:content>

		<media:content url="http://i.creativecommons.org/l/by/3.0/de/80x15.png" medium="image">
			<media:title type="html">Creative Commons Lizenzvertrag</media:title>
		</media:content>
	</item>
		<item>
		<title>Die Levenshtein-Distanz in MySQL</title>
		<link>http://ddiupbblogs.wordpress.com/2013/02/13/die-levenshtein-distanz-in-mysql/</link>
		<comments>http://ddiupbblogs.wordpress.com/2013/02/13/die-levenshtein-distanz-in-mysql/#comments</comments>
		<pubDate>Wed, 13 Feb 2013 10:04:25 +0000</pubDate>
		<dc:creator>Adrian Wilke</dc:creator>
				<category><![CDATA[Informationsqualität]]></category>
		<category><![CDATA[INSPIRE]]></category>
		<category><![CDATA[Levenshtein]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=2051</guid>
		<description><![CDATA[Man stelle sich vor, man hat eine größere Menge wissenschaftlicher Publikationen gesammelt. Nehmen wir mal vorsichtig an, es sind zumindest viele Tausend. Und diese Dokumente zitieren und referenzieren sich untereinander. Da kommt es vor, dass sich Tippfehler in Literaturverzeichnissen einschleichen und die Titel eigentlich identischer Dokumente sich nicht mehr vollkommen gleichen. Die Titel eigenen sich [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2051&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Man stelle sich vor, man hat eine größere Menge wissenschaftlicher Publikationen gesammelt. Nehmen wir mal vorsichtig an, es sind zumindest viele Tausend. Und diese Dokumente zitieren und referenzieren sich untereinander. Da kommt es vor, dass sich Tippfehler in Literaturverzeichnissen einschleichen und die Titel eigentlich identischer Dokumente sich nicht mehr vollkommen gleichen. Die Titel eigenen sich aber eigentlich sehr gut, um eine Publikation zu identifizieren. Dementsprechend kommt es bei Analysen der Beziehungen zwischen den Dokumenten zu Folgefehlern.</p>
<p>Um Ungleichheiten in Zeichenketten großzügig zu behandeln, kann man die <a href="http://de.wikipedia.org/wiki/Levenshtein-Distanz">Levenshtein-Distanz</a> nutzen. Diese vergleicht zwei Zeichenketten und gibt die minimale Anzahl von Operationen (Einfügen, Löschen und Ersetzen) an, die benötigt werden, um die erste Zeichenkette die zweite umzuwandeln. Anstatt Titel auf vollkommene Gleichheit zu überprüfen, ist es hiermit also z.B. möglich, kleinere Ungleichheiten zu tolerieren.</p>
<p>Es gibt eine ganze Reihe von <a href="http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance">Implementierungen in verschiedenen Sprachen</a>, z.B. in <a href="http://www.postgresql.org/docs/current/static/fuzzystrmatch.html">PostgreSQL</a>. Zurzeit arbeite ich allerdings mit MySQL. Hier ist die Funktion nicht von Haus aus installiert, es gibt aber zumindest eine UDF (User Defined Function), die auf der <a href="https://github.com/jmcejuela/Levenshtein-MySQL-UDF">GitHub Seite von Juan Miguel Cejuela</a> zu finden ist. Und da die Einbindung doch ein paar Minuten in Anspruch genommen hat, folgt hier ein kleines HowTo.</p>
<h2>Installation</h2>
<p>Zunächst lädt man die Datei <a href="https://github.com/jmcejuela/Levenshtein-MySQL-UDF/raw/master/levenshtein.c">levenshtein.c</a> runter und folgt den Installationsanweisungen im Kommentar. Bei mir fehlten zusätzliche Codedateien:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ gcc -o levenshtein.so -shared levenshtein.c<br />
levenshtein.c:33:23: fatal error: my_global.h: No such file or directory<br />
compilation terminated.<br />
</code></p></blockquote>
<p>Den Sourcecode kann man in Mint/Ubuntu/Debian so beziehen:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ sudo aptitude install mysql-source-5.5<br />
</code></p></blockquote>
<p>Als Nächstes wird die benötigte Datei ausfindig gemacht:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ dpkg -L mysql-source-5.5<br />
/.<br />
/usr<br />
/usr/src<br />
/usr/src/mysql<br />
/usr/src/mysql/mysql-source-5.5.tar.gz<br />
/usr/share<br />
/usr/share/doc<br />
/usr/share/doc/mysql-source-5.5<br />
/usr/share/doc/mysql-source-5.5/copyright<br />
/usr/share/doc/mysql-source-5.5/changelog.Debian.gz<br />
</code></p></blockquote>
<p>Das Archiv wird entpackt:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ tar -xzf /usr/src/mysql/mysql-source-5.5.tar.gz<br />
</code></p></blockquote>
<p>In den extrahierten Dateien wird nach der benötigten Headerdatei gesucht:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ find ./ -iname "my_global.h"<br />
./source/mysql-5.5/include/my_global.h<br />
</code></p></blockquote>
<p>Ein erneuter Versuch, zu kompilieren. Dieses Mal mit Angabe des Verzeichnisses der Headerdatei:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ gcc -o levenshtein.so -shared levenshtein.c -I source/mysql-5.5/include/<br />
In file included from levenshtein.c:33:0:<br />
source/mysql-5.5/include/my_global.h:77:23: fatal error: my_config.h: No such file or directory<br />
compilation terminated.<br />
</code></p></blockquote>
<p>Suche der zweiten fehlenden Datei:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ find ./ -iname "my_config.h"<br />
./source/mysql-5.5/builddir/include/my_config.h<br />
./source/mysql-5.5/builddir/packaging/rpm-uln/my_config.h<br />
./source/mysql-5.5/packaging/rpm-uln/my_config.h<br />
</code></p></blockquote>
<p>Dieses Mal klappt das Kompilieren:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>gcc -o levenshtein.so -shared levenshtein.c -I source/mysql-5.5/include/ -I source/mysql-5.5/builddir/include/<br />
</code></p></blockquote>
<p>Suche nach dem MySQL Plugin Verzeichnis:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ mysql<br />
mysql&gt; show variables;<br />
+----------------+------------------------+<br />
| Variable_name | Value | |<br />
+----------------+------------------------+<br />
| plugin_dir | /usr/lib/mysql/plugin/ |<br />
+----------------+------------------------+<br />
</code></p></blockquote>
<p>Kopieren der erstellten Datei ins MySQL Plugin Verzeichnis:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ sudo cp levenshtein.so /usr/lib/mysql/plugin/<br />
</code></p></blockquote>
<p>MySQL als root Starten und die Funktion erstellen:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>$ mysql -uroot<br />
mysql&gt; CREATE FUNCTION levenshtein RETURNS INT SONAME 'levenshtein.so';<br />
Query OK, 0 rows affected (0.07 sec)<br />
mysql&gt; CREATE FUNCTION levenshtein_k RETURNS INT SONAME 'levenshtein.so';<br />
Query OK, 0 rows affected (0.01 sec)<br />
</code></p></blockquote>
<p>Test:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>mysql&gt; select levenshtein('hello', 'world');<br />
+-------------------------------+<br />
| levenshtein('hello', 'world') |<br />
+-------------------------------+<br />
| 4 |<br />
+-------------------------------+<br />
1 row in set (0.00 sec)<br />
</code></p></blockquote>
<p><a href="http://www.keldysh.ru/departments/dpt_10/lev.html">Vladimir Levenshtein</a> (<a href="http://translate.google.com/translate?tl=de&amp;u=http%3A%2F%2Fwww.keldysh.ru%2Fdepartments%2Fdpt_10%2Flev.html">Deutsche Übersetzung</a>) hat den Algorithmus übrigens 1965 veröffentlicht.</p>
<p>Hier ist noch ein Backup der <a href="http://homepages.uni-paderborn.de/wilke/master/blog-Levenshtein-Distanz-in-MySQL/levenshtein.c">Datei mit dem C Code</a>.</p>
<p><img class="alignleft" style="border:0 none;" alt="Creative Commons Lizenzvertrag" src="http://i.creativecommons.org/l/by/3.0/de/80x15.png" /> Dieses Werk bzw. Inhalt steht unter einer <a href="http://creativecommons.org/licenses/by/3.0/de/">Creative Commons Namensnennung 3.0 Deutschland Lizenz</a>. Wenn möglich, verwenden Sie doch einen Link zum Originalartikel: <a href="http://homepages.uni-paderborn.de/wilke/master/blog-Levenshtein-Distanz-in-MySQL/">Adrian Wilke: Die Levenshtein-Distanz in MySQL</a>.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/themen/informationsqualitat-themen/'>Informationsqualität</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/inspire/'>INSPIRE</a>, <a href='http://ddiupbblogs.wordpress.com/tag/levenshtein/'>Levenshtein</a>, <a href='http://ddiupbblogs.wordpress.com/tag/mysql/'>MySQL</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/2051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/2051/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2051&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2013/02/13/die-levenshtein-distanz-in-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/baf67154d94b34919a7c103a52e31dcc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adiaan</media:title>
		</media:content>

		<media:content url="http://i.creativecommons.org/l/by/3.0/de/80x15.png" medium="image">
			<media:title type="html">Creative Commons Lizenzvertrag</media:title>
		</media:content>
	</item>
		<item>
		<title>Literaturverzeichnis für URLs in LaTeX</title>
		<link>http://ddiupbblogs.wordpress.com/2013/02/08/literaturverzeichnis-fur-urls-in-latex/</link>
		<comments>http://ddiupbblogs.wordpress.com/2013/02/08/literaturverzeichnis-fur-urls-in-latex/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 09:39:26 +0000</pubDate>
		<dc:creator>Adrian Wilke</dc:creator>
				<category><![CDATA[Technologien]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[INSPIRE]]></category>
		<category><![CDATA[latex]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=2031</guid>
		<description><![CDATA[Wie bindet man vorteilhaft URLs in Seminar- und Abschlussarbeiten ein? Obwohl manch Alteingesessener solche Webadressen gar nicht in einem wissenschaftlichen Text sehen mag, stecken in diesen kleinen Verweisen für viele Leser wertvolle Zusatzinformationen. Eine Möglichkeit der Unterbringung ist, die gesammelten Adressen dem Literaturverzeichnis hinzuzufügen. Dieser Ansatz ist stimmig, wenn die hinzugefügten URLs auf Texte verweisen, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2031&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wie bindet man vorteilhaft URLs in Seminar- und Abschlussarbeiten ein? Obwohl manch Alteingesessener solche Webadressen gar nicht in einem wissenschaftlichen Text sehen mag, stecken in diesen kleinen Verweisen für viele Leser wertvolle Zusatzinformationen.</p>
<p>Eine Möglichkeit der Unterbringung ist, die gesammelten Adressen dem <strong>Literaturverzeichnis</strong> hinzuzufügen. Dieser Ansatz ist stimmig, wenn die hinzugefügten URLs auf Texte verweisen, die wissenschaftlichen Publikationen ähneln. Dabei sollte aber nicht vergessen werden, eine Notiz mit der Information darüber hinzuzufügen, wann die entsprechende Seite eingesehen wurde.</p>
<p>Ein anderer Ansatz ist, URLs als <strong>Fußnote</strong> mit einem <em>footnote</em> an das Seitenende zu setzen. Kombiniert mit dem <em>url</em> Befehl, einem passenden Titel und dem Datum des Zugriffs ist dies auch eine schöne Lösung. Diese bietet sich an, wenn die verlinken Seiten vor allem Zusatzinformationen darstellen und ein Verweis als Randnotiz bereitgestellt werden soll. Bei einer längeren Arbeit könnte diese Lösung für jemanden, der gezielt nach einer Webadresse sucht, lästig sein.</p>
<p>Bisher war ich mit diesen Alternativen recht zufrieden. Es scheint allerdings, als würde meine aktuelle Arbeit ein längerer Text mit einigen URLs werden. Also wären einerseits die Adressen bei der Fußnoten-Lösung zu verstreut, auf der anderen Seite häufen sich bei dem langen Text auch viele klassische Literaturangaben an, was recht unübersichtlich werden könnte. Also entstand der Wunsch, URLs übersichtlich beieinander aufzulisten und auf diese verweisen zu können. Die erste Idee war, mittels <em>label</em> und <em>ref</em> alle Adressen im Anhang zu verstauen. Nach einer Recherche habe ich jetzt eine bessere Lösung: Zwei getrennte Bibliografien.</p>
<h2>Verwendung mehrerer Literaturverzeichnisse</h2>
<p>Auf <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=multbib">UK List of TeX FAQ: Multiple bibliographies?</a> gibt es mit <em>multibbl</em>, <em>multibib</em>, <em>bibtopic</em> und <em>splitbib</em> gleich vier Ansätze für die Verwendung mehrerer Bibliografien. Ich habe mich hier für <em>multibib</em> entschieden. Das Paket musste in meinem Fall erst installiert werden. Dazu gibt es hier eine kurze Anleitung: <a href="http://www.hannahdee.eu/blog/?p=835">Adding a new package to a latex install on linux</a>. Dabei muss <a href="http://ctan.org/tex-archive/macros/latex/contrib/multibib">multibib runtergeladen</a>, entpackt und anschließend die Dateien auffindbar gemacht werden:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>latex multibib.ins<br />
sudo mkdir /usr/share/texmf/tex/latex/multibib<br />
sudo cp multibib.sty /usr/share/texmf/tex/latex/multibib<br />
sudo texhash</code></p></blockquote>
<p>Nun können neue Befehle zur Referenzierung definiert und genutzt werden. Hier ein Minimalbeispiel für zwei getrennte Literaturverzeichnisse:</p>
<p><em>multibib.tex</em></p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>\documentclass{scrartcl}<br />
\usepackage{multibib}<br />
\usepackage{hyperref}<br />
\newcites{Refs,Urls}{Literaturverzeichnis,Verzeichnis der Webadressen}<br />
\begin{document}<br />
\bibliographystyleRefs{plain}<br />
\bibliographystyleUrls{plain} % Erstes Beispiel<br />
%\bibliographystyleUrls{urls} % Zweites Beispiel<br />
\nociteRefs{*}<br />
\nociteUrls{*}<br />
\bibliographyRefs{Bibliography}<br />
\bibliographyUrls{BibliographyUrls}<br />
\end{document}</code></p></blockquote>
<p><em>Bibliography.bib</em></p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>@incollection{aan2012,<br />
year={2012},<br />
isbn={978-1-4471-4053-5},<br />
booktitle={Computational Social Networks},<br />
editor={Abraham, Ajith},<br />
title={Mining and {V}isualizing {R}esearch {N}etworks {U}sing the {A}rtefact-{A}ctor-{N}etwork {A}pproach},<br />
publisher={Springer London},<br />
author={Reinhardt, Wolfgang and Wilke, Adrian and Moi, Matthias and Drachsler, Hendrik and Sloep, Peter},<br />
pages={233--267},<br />
}</code></p></blockquote>
<p><em>BibliographyUrls.bib</em></p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>@Misc{DDI,<br />
title = {Didaktik der {I}nformatik},<br />
note = {Eingesehen am 07.02.2013},<br />
url = {http://ddi.uni-paderborn.de/},<br />
howpublished = "\url{http://ddi.uni-paderborn.de/}",<br />
key = {DDI},<br />
}</code></p></blockquote>
<p>Um die beiden BibTeX Dateien nutzen zu können, müssen sie per Konsolenbefehl vorbereitet werden:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>bibtex Refs.aux; bibtex Urls.aux</code></p></blockquote>
<p>Das Ergebnis sieht so aus:</p>
<p style="text-align:center;"><img class="aligncenter" style="border:0 none;" alt="multibib Beispiel" src="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/multibib.png" width="566" height="209" /></p>
<p>In diesem Beispiel ist am Marker allein nicht sofort erkennbar, ob es sich um eine klassische Literaturangabe oder eine Webadresse handelt. Um dieses Problem zu umgehen, kann für die URL-Referenzen ein anderer Stil verwendet werden. Ich habe allerdings keine solche <em>bst</em>-Datei gefunden, die mir gefallen hat. Daher kommt mit diesem Artikel eine Datei <a href="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/urls.bst">urls.bst</a>, die gern heruntergeladen und verwendet werden darf.</p>
<p>Zur Erstellung der Datei habe ich folgende Eingaben vorgenommen:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>latex makebst</code></p>
<p>Name of the final OUTPUT .bst file? (default extension=bst)<br />
\ofile=urls</p>
<p>STYLE OF CITATIONS:<br />
(*) Numerical as in standard LaTeX<br />
(a) Author-year with some non-standard interface<br />
(b) Alpha style, Jon90 or JWB90 for single or multiple authors<br />
(o) Alpha style, Jon90 even for multiple authors<br />
(f) Alpha style, Jones90 (full name of first author)<br />
(c) Cite key (special for listing contents of bib file)<br />
Select:<br />
\ans=c</p>
<p>ORDERING OF REFERENCES (if non-author/year and non-alph)<br />
(*) Alphabetical by all authors<br />
(c) Citation order (unsorted, like unsrt.bst)<br />
(d) Year ordered and then by authors<br />
(r) Reverse year ordered and then by authors<br />
Select:<br />
\ans=c</p>
<p>FINAL PUNCTUATION:<br />
(*) Period at very end of the listed reference<br />
(x) No period at end<br />
Select:<br />
\ans=x</p>
<p>URL ADDRESS: (without REVTeX fields)<br />
(*) No URL for electronic (Internet) documents<br />
(u) Include URL as regular item block<br />
(n) URL as note<br />
(l) URL on new line after rest of reference<br />
Select:<br />
\ans=u</p>
<p>Finished!!<br />
Batch job written to file `urls.dbj&#8217;<br />
Shall I now run this batch job? (NO)<br />
\yn=y</p></blockquote>
<p>Damit wurde eine fertige Datei <em>urls.bst</em> erstellt. Bei Einträgen mit dem Feld <em>url</em> wird in dieser generierten Zwischenlösung noch ein unschönes Präfix &#8220;URL&#8221; bei jeder Referenz eingefügt. Das kann mit einer Nachbearbeitung der Datei <em>urls.bst</em> behoben werden:</p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>"\providecommand{\urlprefix}{URL }"<br />
wird zu<br />
"\providecommand{\urlprefix}{}"</code></p></blockquote>
<p>Hier der im zweiten Beispiel genutze Code:</p>
<p><em>multibib.tex</em></p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>\documentcla&amp;szlig;{scrartcl}<br />
\usepackage{multibib}<br />
\usepackage{hyperref}<br />
\newcites{Refs,Urls}{Literaturverzeichnis,Verzeichnis der Webadre&amp;szlig;en}<br />
\begin{document}<br />
\bibliographystyleRefs{plain}<br />
%\bibliographystyleUrls{plain} % Erstes Beispiel<br />
\bibliographystyleUrls{urls} % Zweites Beispiel<br />
\nociteRefs{*}<br />
\nociteUrls{*}<br />
\bibliographyRefs{Bibliography}<br />
\bibliographyUrls{BibliographyUrls}<br />
\end{document}</code></p></blockquote>
<p><em>BibliographyUrls.bib</em></p>
<blockquote style="font-size:12px;font-style:normal;"><p><code>@Misc{DDI,<br />
title = {Didaktik der {I}nformatik},<br />
note = {Eingesehen am 07.02.2013},<br />
url = {http://ddi.uni-paderborn.de/},<br />
NICHT_BENOETIGT_howpublished = "\url{http://ddi.uni-paderborn.de/}",<br />
NICHT_BENOETIGT_key = {DDI},<br />
}</code></p></blockquote>
<p>Und so sieht das finale Resultat aus:</p>
<p style="text-align:center;"><img class="aligncenter" style="border:0 none;" alt="multibib Beispiel mit URLs" src="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/multibib-url.png" width="517" height="194" /></p>
<p>Das ganze klappt übringens auch mit der Vorlage <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/classicthesis/">classicthesis</a> von <a href="http://www.miede.de/index.php?page=classicthesis">Andre Miede</a>.</p>
<p>Hier noch die für diesen Artikel verwendeten Dateien:</p>
<ul>
<li><a href="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/urls.bst">urls.bst</a></li>
<li><a href="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/latex-bibliography-urls.zip">latex-bibliography-urls.zip</a></li>
</ul>
<p><img class="alignleft" style="border:0 none;" alt="Creative Commons Lizenzvertrag" src="http://i.creativecommons.org/l/by/3.0/de/80x15.png" width="80" height="15" /> Dieses Werk bzw. Inhalt steht unter einer <a href="http://creativecommons.org/licenses/by/3.0/de/">Creative Commons Namensnennung 3.0 Deutschland Lizenz</a>.<br />
Wenn möglich, verwenden Sie doch einen Link zum Originalartikel:<br />
<a href="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/">Adrian Wilke: Literaturverzeichnis für URLs in LaTeX</a>.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/'>Technologien</a>, <a href='http://ddiupbblogs.wordpress.com/category/tools/'>tools</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/inspire/'>INSPIRE</a>, <a href='http://ddiupbblogs.wordpress.com/tag/latex/'>latex</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/2031/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/2031/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2031&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2013/02/08/literaturverzeichnis-fur-urls-in-latex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/baf67154d94b34919a7c103a52e31dcc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adiaan</media:title>
		</media:content>

		<media:content url="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/multibib.png" medium="image">
			<media:title type="html">multibib Beispiel</media:title>
		</media:content>

		<media:content url="http://homepages.uni-paderborn.de/wilke/master/blog-Literaturverzeichnis-fuer-URLs-in-LaTeX/multibib-url.png" medium="image">
			<media:title type="html">multibib Beispiel mit URLs</media:title>
		</media:content>

		<media:content url="http://i.creativecommons.org/l/by/3.0/de/80x15.png" medium="image">
			<media:title type="html">Creative Commons Lizenzvertrag</media:title>
		</media:content>
	</item>
		<item>
		<title>SuTeCo: Suchfunktion und virtuelle Gruppen</title>
		<link>http://ddiupbblogs.wordpress.com/2013/01/30/suteco-suchfunktion-und-virtuelle-gruppen/</link>
		<comments>http://ddiupbblogs.wordpress.com/2013/01/30/suteco-suchfunktion-und-virtuelle-gruppen/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 09:52:09 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[People Tagging]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[django-tagging]]></category>
		<category><![CDATA[haystack]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[suche]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[volltextsuche]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=2010</guid>
		<description><![CDATA[Das Problem mit der Suchfunktion unter Solr, das ich in meinem letzten Beitrag erwähnt habe, wurde erfolgreich gelöst, obwohl es entsprechend viel Zeit in Anspruch genommen hat. Um die Suche nach Tags, mit denen Personen und Gruppen getagt wurden zu ermöglichen, sollten zwei separate SearchQuerySets erstellt werden (für PeopleTagging und GroupTagging), die viele redundante Einträge [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2010&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Das Problem mit der Suchfunktion unter <a title="Apache Solr" href="http://lucene.apache.org/solr/">Solr</a>, das ich in meinem letzten <a title="SuTeCo – Nachrichten an eine Gruppe bzw. ihren einzelnen Mitglieder senden" href="http://ddiupbblogs.wordpress.com/2013/01/09/suteco-nachrichten-an-eine-gruppe-bzw-ihren-einzelnen-mitglieder-senden/">Beitrag</a> erwähnt habe, wurde erfolgreich gelöst, obwohl es entsprechend viel Zeit in Anspruch genommen hat.</p>
<p>Um die Suche nach Tags, mit denen Personen und Gruppen getagt wurden zu ermöglichen, sollten zwei separate SearchQuerySets erstellt werden (für PeopleTagging und GroupTagging), die viele redundante Einträge hatten. Diese Redundanz entstand durch das mehrmalige Taggen einer Person bzw. Gruppe mit ein und demselben Schlagwort. Dafür wurde eine Funktion geschrieben, die diese Redundanz in eine Art Ranking umwandelt, mit dem man feststellen kann, welche Person oder Gruppe am häufigsten mit einem der gesuchten Begriffe getagt wurde.<span id="more-2010"></span></p>
<p><b>Applikationsübergreifende Suche</b></p>
<p>Unabhängig von der Seite, an der sich ein Benutzer in der Web-Applikation befinden, besteht die Möglichkeit nach anderen Systemnutzer und Gruppen zu suchen. Um diese Suchfunktion zu verwenden, muss der gesuchte Begriff in die Suchleiste eingeben (vgl. Abbildung 1, Eingabefeld) und mit Return bestätigt werden.</p>
<p>Die Suche ist mit einer Auto-Vervollständigungs-Funktion ausgestaltet. Wenn der Benutzer mit der Eingabe der ersten Buchstaben beginnt, bekommt er Suchvorschläge, die diese Buchstabenfolge enthalten.</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134418.png"><img class="aligncenter size-full wp-image-2011" alt="Eingabefeld Suche" src="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134418.png?w=490&#038;h=264" width="490" height="264" /></a></p>
<p align="center">Abbildung 1: Sucheingabefeld im Hauptmenu</p>
<p>Bei der Auto-Vervollständigung werden auch Wörter angezeigt, die in Verbindung mit dem gesuchten Begriff stehen. Diese Verbindung entsteht, wenn eine Person bspw. mit „DDI“ und „HNI“ getagt. Die Suche nach dem Begriff „DDI“ kann somit auch Suchergebnisse und Auto-Vervollständigungs-Vorschläge rund um das Tag „HNI“ beinhalten.</p>
<p><b>Suchergebnisse</b></p>
<p>Die Ergebnisse werden schließlich im Hauptframe sortiert und kategorisiert ausgegeben. Im rechten Teil der Seite öffnet sich das interne Messenger-Formular. Dieses Formular hat an dieser Stelle eine wichtige Bedeutung, da die gefundenen Personen und/oder Gruppen sofort kontaktiert werden können.</p>
<p>Die Funktionsweise des internen Messengers wird an dieser Stelle nicht weiter erläutert, da ich hierüber schon im letzten Bericht geschrieben habe.</p>
<p>Die Suchergebnisse werden in 3 Register aufgeteilt (vgl. Abbildung 2):</p>
<ol>
<li>Users</li>
<li>Groups</li>
<li>Virtual Groups</li>
</ol>
<p><a href="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134605.png"><img class="aligncenter size-full wp-image-2013" alt="Suchergebnisse in SuTeCo: Users" src="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134605.png?w=490&#038;h=265" width="490" height="265" /></a></p>
<p align="center">Abbildung 2: Suchergebnisse in SuTeCo: User</p>
<p style="text-align:left;" align="center">Im Tab „User“ werden alle Systemnutzer angezeigt, die mit dem gesuchten Begriff(-en) getagt wurden. Diejenigen, die am häufigsten mit einem Begriff getagt wurden, werden weiter ober in der Liste angezeigt und mit entsprechendem Zähler markiert: „was tagged X times with YZ“. Darüber hinaus sind alle gefundenen Personen mit den Tags versehen, mit denen sie am meisten in Verbindung gebracht wurden. Diese „popular Tags“ lassen grob einschätzen, in welchem Gebiet die gefundene Person Tätig ist bzw. was ihre Kompetenzen sein könnten.</p>
<p style="text-align:left;" align="center">Der „Groups“-Tab beinhaltet alle Gruppen, die mit dem gesuchten Begriff getagt wurden. Für die Darstellung der einzelnen Gruppen wurde das Icon mit den drei menschenähnlichen Figuren gewählt (vgl. Abbildung 3), weil für die gewöhnliche Kreisform nicht genügend Platz vorhanden ist. Um sich die detaillierten Inf­­ormationen über eine Gruppe anzusehen, muss diese angeklickt werden. Die Gruppen werden, analog zu den Usern, mit ihren populärsten Tags angezeigt.</p>
<p style="text-align:left;" align="center"><a href="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134613.png"><img class="aligncenter size-full wp-image-2015" alt="Suchergebnisse in SuTeCo: Groups" src="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134613.png?w=490&#038;h=265" width="490" height="265" /></a></p>
<p align="center">Abbildung 3: Suchergebnisse in SuTeCo: Groups</p>
<p>Im Tab „Virtual Groups“ sind alle gefundenen Systemnutzer nach ihrem Ranking aufgelistet (vgl. Abbildung 4). Durch das Bewegen des Sliders, der sich über dem blauen Button „Create Virtual Group“ befindet, kann man die Gruppenzugehörigkeit von gefundenen Personen abgrenzen.</p>
<p style="text-align:left;" align="center">Wie auf der Abbildung ebenfalls zu sehen ist, sind zwei Personen ausgewählt worden, die ein Ranking zwischen 0 und 2 haben.</p>
<p style="text-align:left;" align="center"><a href="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134626.png"><img class="aligncenter size-full wp-image-2017" alt="Suergebnisse in SuTeCo: virtuel groups" src="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134626.png?w=490&#038;h=252" width="490" height="252" /></a></p>
<p align="center">Abbildung 4: Suchergebnisse SuTeCo: Virtual Group</p>
<p style="text-align:left;" align="center">Wenn der Nutzer passende Ranking-Werte gesetzt hat, kann er auf den Button „Create Virtual Button“ klicken, um eine Virtuelle Gruppe zu erstellen. Wenn diese neue Gruppe angelegt wurde, erscheint sie unter der „Gruppenverwaltung“ des Users, der sie angelegt hat (vgl. Abbildung 5).</p>
<p style="text-align:center;" align="center"><a href="http://ddiupbblogs.files.wordpress.com/2013/01/vg1.png"><img class="aligncenter size-full wp-image-2020" alt="Virtuelle Gruppen in SuTeCo" src="http://ddiupbblogs.files.wordpress.com/2013/01/vg1.png?w=490&#038;h=287" width="490" height="287" /></a>Abbildung 5: Virtuelle Gruppen in SuTeCo</p>
<p>Virtuelle Gruppen haben das gleiche Erscheinungsbild wie normale Gruppen und lassen sich auch beobachten (Follow-Prinzip).</p>
<p>Der Unterschied besteht darin, dass die Gruppenmitglieder automatisch der Gruppe zugewiesen werden. Als Kriterium für solch eine Zuweisung dient das Group Ranking, das durch den Besitzer der Gruppe beeinflusst werden kann.</p>
<p><b>Noch bestehende Probleme</b></p>
<p>Eines der größten Probleme, das noch nicht gelöst wurde, ist die Abbildung der Organisationsstruktur. Dafür müssen noch Datenstrukturen entwickelt werden, mit denen nicht nur einzelne Organisationseinheiten, sondern auch deren Ebenen abgebildet werden können.</p>
<p>Es wurden schon mehrere Beispiele gefunden, in denen das Darstellen von Organigrammen möglich ist. Die Fähigkeit, einzelne Ebenen abzubilden wurde jedoch in keinem dieser Beispiele realisiert (vgl. Abbildung 6).</p>
<p>Wenn jemand eine Lösung kennt, möge er sich bitte so schnell wie möglich bei mir melden, da es eilt.</p>
<p>Vielen Dank im Voraus!</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-media-themen/'>Social Media</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/django/'>django</a>, <a href='http://ddiupbblogs.wordpress.com/tag/django-tagging/'>django-tagging</a>, <a href='http://ddiupbblogs.wordpress.com/tag/haystack/'>haystack</a>, <a href='http://ddiupbblogs.wordpress.com/tag/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/tag/python-2/'>python</a>, <a href='http://ddiupbblogs.wordpress.com/tag/solr/'>solr</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suche/'>suche</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/volltextsuche/'>volltextsuche</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/2010/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/2010/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=2010&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2013/01/30/suteco-suchfunktion-und-virtuelle-gruppen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134418.png" medium="image">
			<media:title type="html">Eingabefeld Suche</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134605.png" medium="image">
			<media:title type="html">Suchergebnisse in SuTeCo: Users</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134613.png" medium="image">
			<media:title type="html">Suchergebnisse in SuTeCo: Groups</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-29-01-2013-134626.png" medium="image">
			<media:title type="html">Suergebnisse in SuTeCo: virtuel groups</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/vg1.png" medium="image">
			<media:title type="html">Virtuelle Gruppen in SuTeCo</media:title>
		</media:content>
	</item>
		<item>
		<title>SuTeCo &#8211; Nachrichten an eine Gruppe bzw. ihren einzelnen Mitglieder senden</title>
		<link>http://ddiupbblogs.wordpress.com/2013/01/09/suteco-nachrichten-an-eine-gruppe-bzw-ihren-einzelnen-mitglieder-senden/</link>
		<comments>http://ddiupbblogs.wordpress.com/2013/01/09/suteco-nachrichten-an-eine-gruppe-bzw-ihren-einzelnen-mitglieder-senden/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 15:59:22 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[People Tagging]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[User Interfaces]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[drag&drop]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery-ui]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1995</guid>
		<description><![CDATA[Der nächste Schritt bei der Entwicklung von SuTeCo, war es, den Systemnutzer die Möglichkeit zu geben eigene und beobachtete Gruppen bzw. deren Mitglieder anzuschreiben. Das Einfügen von Empfängern funktioniert nach dem Drag&#38;Drop Prinzip. Es gipt zwei Möglichkeiten eine Gruppe oder deren einzelne Mitglieder auf die Empfängerliste zu setzen: Es sollen entweder eine komplette Gruppe oder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1995&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Der nächste Schritt bei der Entwicklung von SuTeCo, war es, den Systemnutzer die Möglichkeit zu geben eigene und beobachtete Gruppen bzw. deren Mitglieder anzuschreiben.<br />
Das Einfügen von Empfängern funktioniert nach dem Drag&amp;Drop Prinzip. Es gipt zwei Möglichkeiten eine Gruppe oder deren einzelne Mitglieder auf die Empfängerliste zu setzen:<span id="more-1995"></span></p>
<p>Es sollen entweder eine komplette Gruppe oder einzelne Mitglieder mit dem Mauszeiger auf das Empfängerfeld gezogen werden (vgl. Abbildung 1).</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2013/01/gruppe_ziehen.png"><img class="aligncenter size-full wp-image-1997" alt="Empfänger per Drag&amp;Drop einfügen" src="http://ddiupbblogs.files.wordpress.com/2013/01/gruppe_ziehen.png?w=490&#038;h=199" width="490" height="199" /></a>Abbildung 1: Eine Gruppe per Drag&amp;Drop in die Empfängerliste einfügen</p>
<p>Wenn dies gemacht wird, erscheinen alle Mitglieder der Gruppe in der Empfängeliste. Gleichzeitig erhöht sich die Anzahl der Empfänger, die im grünen Kreis unten rechts vom Briefumschlag-Icon angezeigt wird (vgl. Abbildung 2).</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-07-01-2013-164343.png"><img class="aligncenter size-full wp-image-1999" alt="Eine Nachricht in SuTeCo erfassen" src="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-07-01-2013-164343.png?w=490&#038;h=252" width="490" height="252" /></a>Abbildung 2: Vorbeireten einer nachricht zum Versenden</p>
<p>Eine weitere Möglichkeit die Gruppen oder deren einzelne Mitglieder in die Empfängerliste zu setzen ist das Ziehen des Briefumschlag-Icon auf die gewünschte Gruppe bzw. Person. Mit dieser Aktion werden entweder alle Mitglieder der Gruppe oder nur einzelne Personen auf die Empfängerliste gesetzt.</p>
<p>Wie man sehen kann (vgl. Abbildung 2), gibt es auch die Möglichkeit einzelne oder mehrere Empfänger von der Liste zu löschen, indem das Mülleimer-Icon angeklickt wird.</p>
<p>Klickt man auf den Send-Button, so werden alle Daten erst an den Server Übertragen, dann alle Personen auf der Empfängerliste mit den  angegebenen Schlagwörtern gettagt  und die Nachricht schließlich an alle Empfänger gesendet.<br />
Während diese Operationen ausgeführt werden, erscheint das entsprechende Modalfenster (vgl. Abbildung 3).</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-07-01-2013-164621.png"><img class="aligncenter size-full wp-image-2001" alt="Versenden einer Nachricht im Prozess" src="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-07-01-2013-164621.png?w=490&#038;h=306" width="490" height="306" /></a>Abbildung 3: Versenden einer Nachricht im Prozess</p>
<p>Erste Test haben jedoch ergeben, dass die Datenverarbeitung und Nachrichtenversendung so schnell abgeschlossen werden, dass die Einblendung des Modalfensters höchstwahrscheinlich deaktiviert wird.</p>
<p><strong>Noch nicht gelöste Probleme</strong><br />
Einige Elemente werden von anderen verdeckt. Beispiel: Das Briefumschlag-Icon wird beim Ziehen durch andere Fensterkomponenten verdeckt. Hierbei scheint es sich um ein CSS-Problem zu handeln, welches in Kürze gefixt wird (vgl. Abbildung 4).</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-06-01-2013-113447.png"><img class="aligncenter size-full wp-image-2003" alt="CSS-Fehler z-index" src="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-06-01-2013-113447.png?w=490&#038;h=312" width="490" height="312" /></a>Abbildung 4: Offensichtliches CSS-Fehler bei Draggen eines Objektes.</p>
<p style="text-align:center;">Das Verschicken einer Nachricht im Namen eines registrierten Benutzers ist unmöglich, weil man Zugang zu seinen Persönlichen Daten braucht. Darüber wird noch mit RB Rücksprache gehalten.</p>
<p><strong>Suchfunktion</strong><br />
Wie bereits im letzten Post erwähnt, wurde für die Suche nach Personen bzw. Gruppen das Volltextsuchsystem Apache Solr verwendet.<br />
Als erstes wurde die Suche für Gruppen implementiert. Die ersten Tests haben eine sehr hohe Flexibilität der Suche und Qualität der Ergebnisse gezeigt. Die Geschwindigkeit konnte nicht gemessen werden, die durchsuchten Datenmengen nur sehr klein waren.<br />
Während der Entwicklung bin ich aber auf ein Problem gestoßen, dessen Lösung wahrscheinlich irgendwo schon vorliegt. Da  Solr die Tabelle durchsucht, in der eine Gruppe mehrmals mit einem Schlagwort gettagt wurde, liefert es auch redundante Ergebnisse, was aber nicht nötig ist.<br />
Ich brauche eine Lösung für folgendes Szenario:<br />
Wenn eine Gruppe gefunden wird, die mindestens einmal mit dem gesuchten Begriff getaggt wurde, soll diese nur ein mal als Ergebnis ausgegeben werden.</p>
<p>Wenn jemand eine Lösung für mich hat, wäre ich sehr dankbar.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/user-interfaces/'>User Interfaces</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/css-2/'>css</a>, <a href='http://ddiupbblogs.wordpress.com/tag/dragdrop/'>drag&amp;drop</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jquery/'>jquery</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jquery-ui/'>jquery-ui</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/user-interface/'>user interface</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visuelle-kommunikation/'>Visuelle Kommunikation</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1995/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1995&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2013/01/09/suteco-nachrichten-an-eine-gruppe-bzw-ihren-einzelnen-mitglieder-senden/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/gruppe_ziehen.png" medium="image">
			<media:title type="html">Empfänger per Drag&#38;Drop einfügen</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-07-01-2013-164343.png" medium="image">
			<media:title type="html">Eine Nachricht in SuTeCo erfassen</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-07-01-2013-164621.png" medium="image">
			<media:title type="html">Versenden einer Nachricht im Prozess</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2013/01/bildschirmfoto-06-01-2013-113447.png" medium="image">
			<media:title type="html">CSS-Fehler z-index</media:title>
		</media:content>
	</item>
		<item>
		<title>2012 in review</title>
		<link>http://ddiupbblogs.wordpress.com/2013/01/02/2012-in-review/</link>
		<comments>http://ddiupbblogs.wordpress.com/2013/01/02/2012-in-review/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 08:30:30 +0000</pubDate>
		<dc:creator>wollepb</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Organisatorisches]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1992</guid>
		<description><![CDATA[The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog. Here&#8217;s an excerpt: 4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 14,000 views in 2012. If each view were a film, this blog would power 3 Film Festivals Click here to see the complete report. Einsortiert unter:Allgemein, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1992&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.</p>
<p><a href="http://ddiupbblogs.wordpress.de/2012/annual-report/"><img alt="" src="http://www.wordpress.com/wp-content/mu-plugins/annual-reports/img/2012-emailteaser.png" width="100%" /></a></p>
<p>Here&#8217;s an excerpt:</p>
<blockquote><p>4,329 films were submitted to the 2012 Cannes Film Festival. This blog had <strong>14,000</strong> views in 2012. If each view were a film, this blog would power 3 Film Festivals</p></blockquote>
<p><a href="http://ddiupbblogs.wordpress.de/2012/annual-report/">Click here to see the complete report.</a></p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/organisatorisches/'>Organisatorisches</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1992/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1992/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1992&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2013/01/02/2012-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/4ad3b68d254ac91633e7cdcdf093ad71?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wollepb</media:title>
		</media:content>

		<media:content url="http://www.wordpress.com/wp-content/mu-plugins/annual-reports/img/2012-emailteaser.png" medium="image" />
	</item>
		<item>
		<title>SuTeCo &#8211; Gruppenverwaltung, Activity Stream, Suche</title>
		<link>http://ddiupbblogs.wordpress.com/2012/12/29/suteco-gruppenverwaltung-activity-stream-suche/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/12/29/suteco-gruppenverwaltung-activity-stream-suche/#comments</comments>
		<pubDate>Sat, 29 Dec 2012 09:52:41 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[People Tagging]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[User Interfaces]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[activity stream]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google circle]]></category>
		<category><![CDATA[gruppenverwaltung]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[tag cloud]]></category>
		<category><![CDATA[tooltip]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1977</guid>
		<description><![CDATA[Erweiterung der „Gruppenverwaltung“ Da die Gruppenverwaltung der zu entwickelnden Applikation SuTeCo um einige neue Funktionen erweitert wurde, möchte ich diese nun kurz erläutern. Das Konzept „Gruppenkreis“, das ähnlich wie bei Google+ realisiert wurde, sieht vor, dass die Fotos der Mitglieder der Gruppen am Rand des Kreises auch in Kreisform (mit abgerundeten Ecken) angezeigt werden (Abbildung [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1977&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><strong>Erweiterung der „Gruppenverwaltung“</strong></p>
<p>Da die Gruppenverwaltung der zu entwickelnden Applikation SuTeCo um einige neue Funktionen erweitert wurde, möchte ich diese nun kurz erläutern.<br />
Das Konzept „Gruppenkreis“, das ähnlich wie bei Google+ realisiert wurde, sieht vor, dass die Fotos der Mitglieder der Gruppen am Rand des Kreises auch in Kreisform (mit abgerundeten Ecken) angezeigt werden (Abbildung 1).<span id="more-1977"></span><br />
Da es aber unmöglich ist, die Fotos aller Mitglieder der Gruppe im Gruppenkreis darzustellen, werden nur acht Mitgliederfotos angezeigt, die in der jeweiligen Gruppe am aktivsten sind. Um ihre Aktivität festzustellen muss man mit dem Mauszeiger über das Profilfoto gehen. Es erscheint ein <a title="Tooltip in Bootstrap" href="http://twitter.github.com/bootstrap/javascript.html#tooltips">Tooltip</a>, das die Aktivität des Mitglieds anzeigt (vgl. Abbildung 1).<br />
Die Tag Cloud wurde auch mit einer Tooltipfunktion versehen, damit man sofort feststellen kann, wie oft der Einzelne mit einem Tag in Verbindung gebracht wurde (Abbildung 2).</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/12/gruppenverwaltung.png"><img class="aligncenter size-large wp-image-1978" alt="Gruppenverwaltung SuTeCo" src="http://ddiupbblogs.files.wordpress.com/2012/12/gruppenverwaltung.png?w=490&#038;h=275" width="490" height="275" /></a>Abbildung 1. Gruppenverwaltung in SuTeCo</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/12/bildschirmfoto-28-12-2012-103034.png"><img class="aligncenter size-full wp-image-1982" alt="Tag Cloud Gruppenverwaltung SuTeCo" src="http://ddiupbblogs.files.wordpress.com/2012/12/bildschirmfoto-28-12-2012-103034.png?w=490"   /></a>Abbildung 2. Tag Cloud in der Gruppenverwaltung SuTeCo</p>
<p><strong>Activity Stream Spezifikation</strong><br />
Activity Stream ist eine Liste der Aktivitäten einer Person, in der Regel auf einer Webseite, die ausgeführt wurden. Ein Beispiel dafür ist Facebook mit der sogenannten „Timeline“.<br />
Activity stream ist ein offener Standard, der für das Sozialweb spezifiziert wurde. Eine detaillierte Beschreibung findet man unter <a title="Activity Stream" href="http://activitystrea.ms">http://activitystrea.ms</a></p>
<p>Für die Implementirung wurde Activity Schema als Basis für die Datenstruktur des Activity Stream verwendet. Der Activity Stream wird in der Datenbank gespeichert und hat folgende Datenstruktur:</p>
<ul>
<li>ID – Identification Number (increment)</li>
<li>Actor – Objekt, das die Aktion durchführt</li>
<li>Verb – die Verb Phrase, die die Wirkung der Aktivität identifiiert (z.B. tag, create, add etc.)</li>
<li>Target – Das Objekt, über das die Aktivität durchgeführt wird</li>
<li>Object – Objekt, das an die Aktivität angebunden ist</li>
<li>Object_type – Type des Objektes, das an die Aktivität angebunden ist</li>
<li>timestmp &#8211; Zeitstempel</li>
</ul>
<p>Anhand des folgenden Beispiels soll deutlich werden, wie das Tagging einer Person (People Tagging) in der Activity Stream Datenstruktur abgebildet wird.<br />
Aktivität: Juri Kostik die Person Franziska Reichelt mit „hni“ und „pr-team“ getagt (Abbildung 3).</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/12/bildschirmfoto-28-12-2012-112100.png"><img class="aligncenter size-large wp-image-1979" alt="Activity Stream Beispiel" src="http://ddiupbblogs.files.wordpress.com/2012/12/bildschirmfoto-28-12-2012-112100.png?w=490&#038;h=86" width="490" height="86" /></a>Abbildung 3. Ein Eintrag in Activity Stream (SuTeCo)</p>
<p style="text-align:left;"><strong>Activity Stream</strong>:</p>
<ul>
<li>ID: <strong>234</strong></li>
<li>Actor: <strong>Juri Kostik</strong></li>
<li>Verb: <strong>tag</strong></li>
<li>Target: <strong>Franziska Reichelt</strong></li>
<li>Object: <strong>34</strong> (ObjectID in der Tabelle, in der Tags gespeichert werden)</li>
<li>Object_type: <strong>person</strong></li>
<li>Timestmp: <strong>28/12/2012 04:20</strong></li>
</ul>
<p><strong>Darstellung vom Activity Stream in SuTeCo</strong><br />
Die Activity Stream Liste erscheint auf der Profilseite eines jeden Benutzers. In dieser Liste werden alle eigene Aktivitäten des Nuters abgebildet und die Aktivitäten der Benutzer und Gruppen, die er beobachtet bzw. denen er folgt (Abbildung 4).</p>
<p style="text-align:left;"><a href="http://ddiupbblogs.files.wordpress.com/2012/12/activity_stream.png"><img class="aligncenter size-full wp-image-1984" alt="Activity Stream SuTeCo" src="http://ddiupbblogs.files.wordpress.com/2012/12/activity_stream.png?w=490&#038;h=275" width="490" height="275" /></a></p>
<p style="text-align:center;">Abbildung 4. Activity Stream in SuTeCo</p>
<p style="text-align:left;">Diese Activity Stream Liste lässt sich filtern. Es kann eine von drei Optionen ausgewählt werden:</p>
<ul>
<li>alle Aktivitäten anzeigen. Das Bedeutet, dass sowhl eigene als auch die beobachteten Aktivitäten dargestellt werden.</li>
<li>Nur eigene Aktivitäten anzeigen. Es werden nur die Aktivitäten des Benutzers angezeigt (keine beobachtete (followed) Personen bzw. Gruppen).</li>
<li>Nur beobachtete Aktivitäten anzeigen. Es werden nur beobachtete Obekte wie Personen und Gruppen angezeigt, keinerlei eigenen Aktivitäten des Nutzers.</li>
</ul>
<p>Die Anzahl von darzustellenden Aktivitäten auf einer Seite wurde aus Usability-Grunden auf zehn begrenzt. Wenn man aber ältere Aktivitäten des Benutzers sehen möchte, muss man die Activity Stream Liste ganz nach unten scrollen und an Ende der Liste den Button „Show more“ anklicken. Danach erscheinen weitere zehn.</p>
<p><strong>Suchfunktion nach Benutzer bzw. Gruppen, Bildung virtueller Gruppen</strong><br />
Die Suchfunktion befindet sich gerade in der Entwicklungsphase. Es ist aber vorgesehen, eine Volltextsuchplattform auf Apache Solr Bais zu implementieren. Für das das Framework Django wurde eine Applikation Haystack entwickelt, die für die Volltextsuche eingesetzt wird und Apache Solr und viele andere Search Engines verwendet.</p>
<p>Wenn jemand schon damit Erfahrung hat, würde ich mich über Tipps oder Code Snippets freuen!</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/user-interfaces/'>User Interfaces</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/activity-stream/'>activity stream</a>, <a href='http://ddiupbblogs.wordpress.com/tag/google/'>Google</a>, <a href='http://ddiupbblogs.wordpress.com/tag/google-circle/'>google circle</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gruppenverwaltung/'>gruppenverwaltung</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jquery/'>jquery</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/tag-cloud/'>tag cloud</a>, <a href='http://ddiupbblogs.wordpress.com/tag/tooltip/'>tooltip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1977/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1977&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/12/29/suteco-gruppenverwaltung-activity-stream-suche/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/12/gruppenverwaltung.png?w=490" medium="image">
			<media:title type="html">Gruppenverwaltung SuTeCo</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/12/bildschirmfoto-28-12-2012-103034.png" medium="image">
			<media:title type="html">Tag Cloud Gruppenverwaltung SuTeCo</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/12/bildschirmfoto-28-12-2012-112100.png?w=490" medium="image">
			<media:title type="html">Activity Stream Beispiel</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/12/activity_stream.png" medium="image">
			<media:title type="html">Activity Stream SuTeCo</media:title>
		</media:content>
	</item>
		<item>
		<title>SuTeCo &#8211; People- und Gruppentagging, Activity Liste</title>
		<link>http://ddiupbblogs.wordpress.com/2012/12/12/suteco-people-und-gruppentagging-activity-liste/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/12/12/suteco-people-und-gruppentagging-activity-liste/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 08:17:31 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[People Tagging]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[User Interfaces]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[django-tagging]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[visuelle Hierarchien]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1964</guid>
		<description><![CDATA[Wie ich in meiner letzten Post erwähne, habe ich mich in den letzten mit Konzept People Tagging beschäftigt. Es wurde ein Modell angelegt, das zum Tagging von Personen und Gruppen verwendet sollte. Im Modell zeigten sich Schwachstellen, die während der Implementierung als große Problemen herausstellen. Nach eingehender Überlegung habe ich mich dafür entschieden, die bestehende [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1964&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wie ich in meiner letzten Post erwähne, habe ich mich in den letzten mit Konzept <a title="People Tagging" href="http://knowledge-maturing.com/services-and-tools/tools/people-tagging">People Tagging</a> beschäftigt. Es wurde ein Modell angelegt, das zum Tagging von Personen und Gruppen verwendet sollte. Im Modell zeigten sich Schwachstellen, die während der Implementierung als große Problemen herausstellen.</p>
<p>Nach eingehender Überlegung habe ich mich dafür entschieden, die bestehende Lösung für Tagging in Form eines Plug-Ins namens „<a title="Django-Tagging" href="http://code.google.com/p/django-tagging/">Django-Tagging</a>“ zu verwenden. Dieses Plug-In stellt ein bereit fertiges Tagging-Modell als auch umfangreiche Funktionalität zum Erstellen, Verwalten und Darstellen von Tags zur Verfügung.<span id="more-1964"></span></p>
<p>Folgende Funktionen, die bereits in der zu entwickelnde Web-Applikation SuTeCo eingesetzt wurden, sind hier beispielhaft aufgeliestet:Einsatz des Variable-Typs „TagField“ bei der Definition von zwei Modellen (Gruppen, Personen)</p>
<ul>
<li>Einsatz des Variable-Typs „TagField“ bei der Definition von zwei Modellen (Gruppen, Personen)</li>
<li>Generierung eines <a title="Tag Cloud" href="http://de.wikipedia.org/wiki/Schlagwortwolke">Tag-Clouds</a> aus dem bestehenden Datensatz (Abbildung 1, Abbildung 2)</li>
<li>Ausgabe von den meistvergebenen Tags</li>
</ul>
<p>Darüber hinaus verwendet dieses Plug-In einige vordefinierte Template-Marker, die formatierte Ausgabe von Tags ermöglichen. Da aber dieses Template den Anforderungen der zu entwickelnden Applikation nicht entspricht, musste es erweitert werden.</p>
<p>Folgende Screenshots sollen den ersten Eindruck über die bereits implementierten Features fgeben.</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/12/activity.png"><img class="aligncenter  wp-image-1967" alt="SuTeCo Activity" src="http://ddiupbblogs.files.wordpress.com/2012/12/activity.png?w=637&#038;h=343" width="637" height="343" /></a>Abbildung 1, Activity eines Benutzer mit TagClouds</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/12/gruppen.jpg"><img class="aligncenter  wp-image-1968" alt="SuTeCo - Gruppen Tagging" src="http://ddiupbblogs.files.wordpress.com/2012/12/gruppen.jpg?w=637&#038;h=359" width="637" height="359" /></a></p>
<p style="text-align:center;">Abbildung 2, Tag Cloud einer Gruppe</p>
<p><b>Activity Liste</b></p>
<p>Auf Basis von bereits implementierten Konzepten „People Tagging“ und „Following“ (Beobachtung)  kann eine Activity-Liste entstehen, die alle Aktivitäten von Benutzer bzw. Gruppen, die gefolgt (beobachtet) werden sollen, präsentiert. Eine solche Activity-Liste ist bereits bei allen Sozialen Netzwerken vorhanden. Das soziele Netzwerk Facebook bietet sogar zwei Darstellugnsformen an:</p>
<ul>
<li>klassische Sicht in Form einer Liste</li>
<li>vertikale Sicht mit Trennung nach Datum der Aktion, das sogenannte „<a title="Time Line bei Facebook" href="https://de-de.facebook.com/about/timeline">time line</a>“-Konzept</li>
</ul>
<p>In der zu entwickelnden Applikation soll eine klassische Variante implementiert werden. Diese wird mit einer Filterung versehen, um dem Benutzer die Möglichkeiten geben, nur bestimmte Aktivitäten anzuzeigen (Abbildung 1).</p>
<p>Meine Frage lautet: Hat jemand schon Erfahrung mit Implementierung von solchen Activitys? Mich interessiert, wie man die Daten aus verschiedenen Quellen (z. B. Aktivitäten von Personen und Gruppen) in eine Activity-Liste zusammenfast und darstellt.</p>
<p>Freue mich auf eure Tipps!</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-media-themen/'>Social Media</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/user-interfaces/'>User Interfaces</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/django/'>django</a>, <a href='http://ddiupbblogs.wordpress.com/tag/django-tagging/'>django-tagging</a>, <a href='http://ddiupbblogs.wordpress.com/tag/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/tag/python-2/'>python</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visuelle-hierarchien/'>visuelle Hierarchien</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1964/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1964&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/12/12/suteco-people-und-gruppentagging-activity-liste/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/12/activity.png" medium="image">
			<media:title type="html">SuTeCo Activity</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/12/gruppen.jpg" medium="image">
			<media:title type="html">SuTeCo - Gruppen Tagging</media:title>
		</media:content>
	</item>
		<item>
		<title>Ergebnis Technologievergleich, Simulation von Aktoren und Sensoren in NeXTsim, Benutzerinteraktion in NeXTsim</title>
		<link>http://ddiupbblogs.wordpress.com/2012/11/30/ergebnis-technologievergleich-simulation-von-aktoren-und-sensoren-in-nextsim-benutzerinteraktion-in-nextsim/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/11/30/ergebnis-technologievergleich-simulation-von-aktoren-und-sensoren-in-nextsim-benutzerinteraktion-in-nextsim/#comments</comments>
		<pubDate>Fri, 30 Nov 2012 13:17:38 +0000</pubDate>
		<dc:creator>mbetterm</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1960</guid>
		<description><![CDATA[Wie in meinem letzten Blogeintrag erwähnt hat der durchgeführte Technologievergleich ergeben, dass es eine Reihe von Open Source Engines gibt, welche die Anforderungen für NeXTsim erfüllen und für die Entwicklung eingesetzt werden können. Die entgültige Wahl fiel letztendlich auf die Java MonkeyEngine, da sie neben der eigentlichen Funktionalität auch über eine vergleichsweise große und aktive [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1960&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wie in meinem letzten Blogeintrag erwähnt hat der durchgeführte Technologievergleich ergeben, dass es eine Reihe von Open Source Engines gibt, welche die Anforderungen für NeXTsim erfüllen und für die Entwicklung eingesetzt werden können. Die entgültige Wahl fiel letztendlich auf die Java MonkeyEngine, da sie neben der eigentlichen Funktionalität auch über eine vergleichsweise große und aktive Community und eine Dokumentation von hoher Qualität verfügt. Antworten auf Fragen und Probleme findet man daher in der Regel schnell, was gerade bei Arbeiten, die innerhalb einem strikten Zeitfenster (wie an der Uni üblich) erledigt werden sollen, äußerst wünschenswert ist.</p>
<p>Im Anschluss daran ist eine Anwendung entwickelt worden, in der Lichtsensoren, Farbsensoren, Berührungssensoren, Ultraschallsensoren und Servomotoren simuliert werden können. Diese können flexibel innerhalb von aus Lego Komponenten gebauten Systemen integriert werden.</p>
<p>&nbsp;</p>
<p><strong>Motoren:</strong></p>
<p>Bei der Umsetzung Motoren wurde auf Physikdetails (Erzeugung der Drehbewegung, Übertragung mittels Getriebe ect.) verzichtet und die Auswirkung der Motoren auf das Model fokussiert. Dabei wurde zwischen &#8220;Modell-Bewegungs-Motoren&#8221; (Bereits implementiertes Feature; Motoren, die eine Bewegung des kompletten Modelles auf der x,z Ebene bewirken) und &#8220;Interne-Bewegungs-Motoren&#8221; (Noch nicht implementiert; Motoren die Bewegungen innerhalb des Modelles bewirken &#8211; z. B. das Ausfahren des Arms eines Krans &#8211; sind dann interessant, wenn die Position von Sensoren durch die Bewegung beeinträchtigt werden).</p>
<p>&nbsp;</p>
<p><strong>Ultraschallsensoren:</strong></p>
<p>Ultraschallsensoren wurden mithilfe eines einstellbaren (Abstand der einzelnen Rays, Öffnungswinkel des Kegels, Abtastrate ect.) Raycasting-Kegels umgesetzt. Die Evaluation der Rays bzw. die daraus zu erfolgende Bestimmung des Sensorwertes orientiert sich an den Messwerten von: ftp://ftp.tik.ee.ethz.ch/pub/students/2006-So/SA-2006-18.pdf</p>
<p>&nbsp;</p>
<p><strong>Lichtsensoren/Farbsensoren:</strong></p>
<p>Wirklich brauchbare Evaluationsergebnisse für die Lichtsensoren und Farbsensoren lagen zum Zeitpunkt der Implementierung nicht vor. Als Problem hat sich dabei herausgestellt, dass sich die Farbe/Helligkeit von Polygonen, nicht durch ein einfaches Raycasting bestimmen lässt &#8211; die exakten Farb- und Helligkeitswerte liegen, befingt durch die LWJGL &amp; OpenGL-Technologie auf der Grafikkarte und sind für den Entwickler grundsätzlich nicht zugänglich. Daher wurden Licht und Farbsensoren als Off-Screen-Szenenrenderer implementiert, bei dem die gerenderte Projektion mittels Offscreenshot (:-)) in den Hauptspeicher kopiert wird. Dieser zwar sehr exakte und allgemeine Sensor wirkt sich (nach ersten Erfahrungswerten) noch nicht negativ auf die Performance aus. Im Zweifelsfall wird noch ein weiterer Lichtsensor implementiert, der schneller, jedoch auf die Verfolgung von Fahrstraßen spezialisiert ist.</p>
<p>&nbsp;</p>
<p><strong>Berührungssensor</strong>:</p>
<p>Der Berührungssensor wurde als Kollisionslistener und -erkenner umgesetzt. Physikalische Details (Druckkraft, Druckwinkel) wurden dabei ignoriert. Er ist primär passiv bzw. arbeitet nur dann, wenn es eine Kollision im Szenario gegeben hat &#8211; unabhängig davon ob der Sensor selbst daran beteiligt ist. Die Arbeit des Sensors besteht darin herauszufinden, ob er selbst an einer der registrierten Kollision beteiligt gewesen ist. Intuitiv ist er daher effizient, wenn es wenige Kollisionen im Szenario gibt. Für Szenarien mit vielen Kollisionen wird eventuell ein weiterer Berührungssensor (basierend auf Raycastingtechnik), implementiert.</p>
<p>Für die simulierbaren Komponenten gibt es außerdem einige Spekrum an Konfigurationsparametern (Fehler, Abtastrate, Auflösung ect.). Außerdem verfügt die Anwendung über eine Ladefunktion, mit der Szenarien im XML-Format geladen werden können. Außerdem ist zu einem gewissen Maß Szenariomanipulation (Objekte hinzufügen/entfernen, Modelle hinzufügen/entfernen) und Simulationskontrolle möglich (manuelles Starten, Pausieren, Fortsetzen, Zurücksetzen, Stoppen und Löschen von primitiven Szeneobjekten und Modellen &#8211; sowohl einzeln als auch für alle Modelle/Objekte). Kontinuierliches Rendering, Kollisionserkennung, Kontrolle der Kameraposition werden unterstützt.</p>
<p>&nbsp;</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1960/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1960&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/11/30/ergebnis-technologievergleich-simulation-von-aktoren-und-sensoren-in-nextsim-benutzerinteraktion-in-nextsim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/df8415ac42a911e6be7b24744a2ae170?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mbetterm</media:title>
		</media:content>
	</item>
		<item>
		<title>IKNOW-ANALYSE</title>
		<link>http://ddiupbblogs.wordpress.com/2012/11/23/iknow-analyse/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/11/23/iknow-analyse/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 11:49:27 +0000</pubDate>
		<dc:creator>smiddeke</dc:creator>
				<category><![CDATA[Awareness]]></category>
		<category><![CDATA[Research 2.0]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[Datenbereinigung]]></category>
		<category><![CDATA[iknow]]></category>
		<category><![CDATA[knowaan]]></category>
		<category><![CDATA[konferenz]]></category>
		<category><![CDATA[masterarbeit]]></category>
		<category><![CDATA[research network]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1956</guid>
		<description><![CDATA[In diesem Beitrag stelle ich kurz das Thema der Masterarbeit vor und gehe auf den Abschnitt der Datenbereinigung ein. Was ist das Thema der Masterarbeit? &#8220;Analyse des IKNOW Forschungsnetzwerkes und Visualisierung von Forschungstrends &#8211; Datenbereinigung, Analyse mit Trenderkennung und Visualisierung&#8220; In meiner Masterarbeit beschäftige ich mich mit der Analyse der eingereichten Paper der Konferenz IKNOW. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1956&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In diesem Beitrag stelle ich kurz das Thema der Masterarbeit vor und gehe auf den Abschnitt der Datenbereinigung ein.</p>
<ul>
<li>Was ist das Thema der Masterarbeit?</li>
</ul>
<p>&#8220;<strong>Analyse des IKNOW Forschungsnetzwerkes und Visualisierung von Forschungstrends &#8211; Datenbereinigung, Analyse mit Trenderkennung und Visualisierung</strong>&#8220;</p>
<p>In meiner Masterarbeit beschäftige ich mich mit der Analyse der eingereichten Paper der Konferenz IKNOW.<br />
Weiterhin sollen die Ergebnisse grafisch dargestellt werden.</p>
<p><strong>Datenbereinigung</strong></p>
<ul>
<li>Warum ist das nötig?</li>
</ul>
<p>Um aussagekräftige Analysen mit korrekten Daten zu erhalten, müssen die Quelldaten eine möglichst hohe Qualität aufweisen.<br />
Durch die automatische Erkennung des KnowAAN-Tools ist diese Qualität nicht gewährleistet.<br />
Eine manuelle Datenbereinigung erhöht die Qualität der Daten und ermöglicht erst Auswertungen zum Inhalt der vorhandenen Konferenzpaper.</p>
<ul>
<li>Welche Daten sind vorhanden?</li>
</ul>
<p>Die IKNOW-Konferenz hat bisher jährlich von 2001-2012 stattgefunden.<br />
Die vorhandenen, eingereichten Paper wurden in das KnowAAN-Tool, das durch die PG KnowAAN erstellt wurde, geladen.<br />
Bisher sind insgesamt 622 Paper im System.<br />
Diese können mit dem KnowAAN-Documentbrowser exploriert, und mit einer Editionsmaske bearbeitet werden.<br />
Weitere Paper sind auf den Konferenzseiten aufgeführt, konnten aber noch nicht in das System geladen werden.<br />
Die Konferenzseite zählt zusammen 663 Paper auf.</p>
<ul>
<li>Aufwandsschätzung im Vorfeld:</li>
</ul>
<p>Um den Aufwand für die manuelle Datenbereinigung abzuschätzen, wurde die folgende Rechnung erstellt.<br />
Bei einem Paper werden die Kopfdaten und die Referenzen bearbeitet.<br />
Als Schätzung wurden 10 Minuten für die Kopfdaten und 20 Minuten für die Referenzen pro Paper angenommen.<br />
Dabei werden 20 Referenzen pro Paper vermutet und jeweils 1 Minute pro Referenz gerechnet.<br />
Bearbeitung gesamt: 30 Min. / Paper</p>
<p>Bei einer maximal geplanten Bearbeitungszeit zur Datenbereinigung von 2-2.5 Monaten steht folgende Zeit zur Verfügung.<br />
Arbeitszeit: 6 Stunden / Tag ; 5 Tage / Woche (Mehr Zeit kann hier für diese Aufgabe nicht eingesetzt werden, da die Konzentration nachlässt und Fehler entstehen.)<br />
12 Paper / Tag<br />
60 Paper / Woche<br />
in 10 Wochen sind somit 600 Paper bearbeitbar</p>
<p>Vorgehen:<br />
Aufteilen der Korrekturen in 2 Phasen / Durchläufe.<br />
Phase 1: Kopfdaten bereinigen<br />
Phase 2: Referenzen bereinigen</p>
<p>Nachteil: Jedes Paper wird doppelt bearbeitet.<br />
Vorteil: Man erhält schneller einen Überblick über alle Paper, da die kürzere Aufgabe zunächst für alle Paper durchgeführt wird.<br />
Als Folge können mögliche Probleme eher erkannt werden und der weitere Aufwand kann besser abgeschätzt werden.</p>
<p>&nbsp;</p>
<ul>
<li>PHASE 1: Kopfdaten bereinigen umfasst: Titel, Name Autor(en), Arbeitsstelle Autor(en), Ort der Arbeitsstelle, Schlüsselwörter, Jahr der Konferenz.</li>
</ul>
<p>Die Arbeit mit 2 Bildschirmen (Editiermaske, Paper als PDF) ist sinnvoll.<br />
Die Paper sollten der Reihenfolge nach bearbeitet werden.<br />
Die Sortierung nach Jahr und eine alphabetische Sortierung innerhalb eines Jahres hat sich als sinnvoll erwiesen.<br />
Man sollte hierbei mit den früheren Jahren beginnen, da man bei Papern aus späteren Jahren auf bereits korrigierte Paper aus früheren Jahren zurückgreifen kann.<br />
Die bearbeiteten Paper sollte man sich merken/notieren.</p>
<p>Bei den Kopfdaten soll der Ort der Arbeitsstelle für jeden Autor erfasst werden.<br />
Die Ortsangaben werden für Kartenansichten benötigt, die die Herkunft der Autoren darstellen.<br />
Als Genauigkeitsmaßstab werden im Allgemeinen die Stadt und das Land angegeben.<br />
In einigen Papern ist die Stadt jedoch nicht angegeben.<br />
Hier ist eine zusätzliche Recherche erforderlich (mit Autor und Firma).<br />
Die Angaben zu Abkürzungen von Kategorien werden als Schlüsselwörter mit aufgenommen.</p>
<p>Die Korrektureingabemaske ermöglicht die Speicherung erst dann, wenn alle Pflichtfelder gefüllt sind.<br />
Durch fehlerhafte Erkennung in der automatischen Vorverarbeitung der Paper ist es möglich, dass die Referenzen nicht in einem &#8220;korrekten&#8221; Zustand sind.<br />
Daher werden die vorhandenen, erkannten Referenzen soweit korrigiert, dass diese Änderungen gespeichert werden können.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/themen/awareness-themen/'>Awareness</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/research-2-0/'>Research 2.0</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/analysis/'>analysis</a>, <a href='http://ddiupbblogs.wordpress.com/tag/datenbereinigung/'>Datenbereinigung</a>, <a href='http://ddiupbblogs.wordpress.com/tag/iknow/'>iknow</a>, <a href='http://ddiupbblogs.wordpress.com/tag/knowaan/'>knowaan</a>, <a href='http://ddiupbblogs.wordpress.com/tag/konferenz/'>konferenz</a>, <a href='http://ddiupbblogs.wordpress.com/tag/masterarbeit/'>masterarbeit</a>, <a href='http://ddiupbblogs.wordpress.com/tag/research-network/'>research network</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1956/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1956/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1956&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/11/23/iknow-analyse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6101edd58e7ae5eb6ae81370937d7a7a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smiddeke</media:title>
		</media:content>
	</item>
		<item>
		<title>SuTeCo – People Tagging</title>
		<link>http://ddiupbblogs.wordpress.com/2012/11/23/suteco-people-tagging/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/11/23/suteco-people-tagging/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 08:32:47 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[People Tagging]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[django modell]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[tag cloud]]></category>
		<category><![CDATA[visualisation]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1938</guid>
		<description><![CDATA[Ein weiteres Konzept, das im Rahmen meiner Masterarbeit implementiert werden soll, ist das „People Tagging“. Jeder Benutzer der Web-Applikation SuTeCo soll die Möglichkeit haben, einen anderen Benutzer dieser Applikation mit Schlagwörtern zu versehen bzw. zu taggen.  Außerdem soll es möglich sein, sowohl eigene als auch Follow-Gruppen zu taggen. Die entstandene Datenbank mit Tags wird später [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1938&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ein weiteres Konzept, das im Rahmen meiner Masterarbeit implementiert werden soll, ist das „People Tagging“.</p>
<p>Jeder Benutzer der Web-Applikation SuTeCo soll die Möglichkeit haben, einen anderen Benutzer dieser Applikation mit Schlagwörtern zu versehen bzw. zu taggen.  Außerdem soll es möglich sein, sowohl eigene als auch Follow-Gruppen zu taggen.</p>
<p>Die entstandene Datenbank mit Tags wird später für die Suche nach Ansprechpartnern bzw. deren Kompetenzen eingesetzt.<span id="more-1938"></span></p>
<p><b>Das „People Tagging“- Modell</b><br />
Um das „People Tagging“- Konzept zu realisieren, wird ein Django-Modell angelegt (Abbildung 1). Hier fehlt der Bindestrich, es ist unlogisch dass du es in der Überschrift in Anführungszeichen und Bindestrich schreibst und hier ohne beides, das solltest du einheitlich machen.</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11.png"><img class="aligncenter size-full wp-image-1939" title="People Tagging Modell" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11.png?w=490"   /></a>Abbildung 1, People Tagging Modell</p>
<p>Da die zu entwickelnde Applikation aber auf eine externe Datenbank zugreift, um Benutzerdaten wie BenutzerID oder E-mail abzufragen, gibt es keine Möglichkeit die Datenintegrität zwischen dem Tagging- (Abbildung 1) und User-Modell mit relationalem SQL-Modell zu realisieren (zwei Modelle direkt zu verbinden).</p>
<p>Wie man in der Abbildung nachvollziehen kann, werden alle Tags redundanzlos in der Tabelle „Tag“ gespeichert. Alle gespeicherten Tags werden auf der relationalen Ebene mit der Tabelle „People Tagging“ verbunden. In dieser Tabelle werden sowohl Objekt und Subjekt des People Taggings, als auch Zeitstempel und Tagging-Flag gespeichert. Eine Tagging-Flag wird gebraucht, um zu unterscheiden, ob eine Gruppe oder eine Person getagt wurde. Durch eine GroupID wird das „People Tagging“-Modell mit dem Gruppenmodell verbunden (Abbildung 2).</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11-2012-141025.png"><img class="aligncenter size-full wp-image-1940" title="Relationales Modell People Tagging und Gruppenverwaltung" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11-2012-141025.png?w=490"   /></a>Abbildung 2, Relationales Modell People Tagging und Gruppenverwaltung</p>
<p style="text-align:left;"><strong><br />
UIs für People Tagging</strong><br />
Um erhaltene und vergebene Tags für den Benutzer übersichtlich darzustellen, werden Tag Clouds (Abbildung 3) und andere Darstellungsformen (Abbildung 4) eingesetzt.</p>
<p style="text-align:left;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11-2012-135404.png"><img class="aligncenter size-full wp-image-1941" title="Tag Cloud" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11-2012-135404.png?w=490"   /></a></p>
<p style="text-align:center;">Abbildung 3, Tag Cloud</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/peopletagging_screenshot.png"><img class="aligncenter size-full wp-image-1943" title="People Tagging " alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/peopletagging_screenshot.png?w=490"   /></a>Abbildung 4, People Tagging in SuTeCo</p>
<p style="text-align:left;">P.S. Falls jemand eine interessante Idee oder einen Vorschlag für die Darstellung der TagCloud oder den Aufbau eines Datenmodells für People Tagging hat, schreibt mir bitte! Ich freue mich auf jeden Kommentar!</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-media-themen/'>Social Media</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-networking/'>Social Networking</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/django-modell/'>django modell</a>, <a href='http://ddiupbblogs.wordpress.com/tag/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/tag/python-2/'>python</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/tag-cloud/'>tag cloud</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visualisation/'>visualisation</a>, <a href='http://ddiupbblogs.wordpress.com/tag/web-development/'>web development</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1938/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1938/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1938&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/11/23/suteco-people-tagging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11.png" medium="image">
			<media:title type="html">People Tagging Modell</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11-2012-141025.png" medium="image">
			<media:title type="html">Relationales Modell People Tagging und Gruppenverwaltung</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto-22-11-2012-135404.png" medium="image">
			<media:title type="html">Tag Cloud</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/peopletagging_screenshot.png" medium="image">
			<media:title type="html">People Tagging </media:title>
		</media:content>
	</item>
		<item>
		<title>SuTeCo &#8211; Gruppenverwaltung</title>
		<link>http://ddiupbblogs.wordpress.com/2012/11/08/suteco-gruppenverwaltung-implementieren/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/11/08/suteco-gruppenverwaltung-implementieren/#comments</comments>
		<pubDate>Thu, 08 Nov 2012 10:39:01 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Technologien]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[benutzeroberfläche]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[openldap]]></category>
		<category><![CDATA[suteco]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1923</guid>
		<description><![CDATA[Im nächsten Schritt wird die Implementierung der Schnittstelle für das Gruppenmanagement umgesetzt. Diese Seite ermöglicht dem Benutzer die Verwaltung von eigenen Gruppen sowie von Gruppen, denen er folgt. Es werden folgende Grundfunktionen realisiert: Anzeige von eigenen Gruppen und Followed-Gruppen sowie deren Beschreibungen Erstellen / Löschen eigener Gruppen Folgen / Entfolgen von Gruppen Einfügen / Löschen [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1923&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Im nächsten Schritt wird die Implementierung der Schnittstelle für das Gruppenmanagement umgesetzt. Diese Seite ermöglicht dem Benutzer die Verwaltung von eigenen Gruppen sowie von Gruppen, denen er folgt. Es werden folgende Grundfunktionen realisiert:</p>
<ul>
<li>Anzeige von eigenen Gruppen und Followed-Gruppen sowie deren Beschreibungen</li>
<li>Erstellen / Löschen eigener Gruppen</li>
<li>Folgen / Entfolgen von Gruppen</li>
<li>Einfügen / Löschen neuer Benutzer</li>
<li>Taggen von Gruppen</li>
</ul>
<p>Wie in Abbildung 1 zu sehen, soll die Seite des Gruppenmanagements alle eigenen und Follow-Gruppen in Kreisform darstellen. Im rechten Seitenbereich werden detaillierte Informationen über die jeweils ausgewählte Gruppe dargestellt. Das Steuerungspanel mit den Buttons „Gruppe anlegen“ oder „Gruppe löschen“ wird nach vielen Überlegungen nicht hier platziert, da es aus <a title="Usability im Web" href="http://www.galileodesign.de/download/dateien/18/webusability.pdf">Usability</a>-Gründen nicht hierher passt. Die anderen Elemente der Benutzeroberfläche bleiben an der Stelle, wo sie geplant war.<span id="more-1923"></span></p>
<p>Den ersten Screenshot der zu implementierenden Oberfläche sieht man auf Abbildung 2. Benutzer „Juri Kostik“ legte ein Gruppe an. Diese Gruppe hat Mitglieder, die auf dem Screenshot noch nicht zu sehen sind. Die entsprechende Funktion befindet sich noch in der Implementierung.</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/mockup.png"><br />
<img class="aligncenter  wp-image-1924" title="MockUp Gruppenverwaltung" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/mockup.png?w=614&#038;h=360" height="360" width="614" /></a>Abbildung 1, Gruppenverwaltung (MockUp)</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto2.png"><br />
<img class="aligncenter  wp-image-1926" title="Screenshot Gruppenverwaltung" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto2.png?w=614&#038;h=345" height="345" width="614" /></a>Abbildung 2, Screenshot der Benutzeroberfläche &#8220;Gruppenverwaltung&#8221;</p>
<p><strong>Gruppen auf Modell-Ebene abbilden</strong><br />
Die Usergruppen und deren Mitglieder wurden als Django-Modell angelegt und mit Hilfe von <a title="ORM" href="http://en.wikipedia.org/wiki/Object-relational_mapping">Object-Relational Mapper </a>(ORM) auf der Datenbankebene abgebildet (Abbildung 3). Auf dieses Modell können später auch die anderen <a title="Django Apps" href="https://docs.djangoproject.com/en/dev/intro/tutorial01/">Apps</a> zugreifen, die im Rahmen dieser Masterarbeit entwickelt werden. Dafür bietet Django eine sehr umfangreiche Funktionalität.</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/db_modell.png"><img class="aligncenter size-full wp-image-1929" title="Datenbankmodell" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/db_modell.png?w=490"   /></a>Abbildung 3, Datenbankmodell der Gruppenverwaltung</p>
<p>In Abbildung 4 sieht man, dass die Tabelle „Group“ zwei angebundene Tabellen hat: „GroupMember“, in der alle Gruppenmitglieder gespeichert werden, und „GroupFollow“, in der Follower der jeweiligen Gruppe gespeichert werden.</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/11/django_modell.png"><img class="aligncenter  wp-image-1930" title="Django Modell Gruppenverwaltung" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/11/django_modell.png?w=306&#038;h=265" height="265" width="306" /></a>Abbildung 4, Gruppenverwaltung &#8211; Django Modell</p>
<p><span style="color:#000000;">Für die Darstellung von detaillierten Informationen über die ausgewählte Gruppe und deren Gruppenmitglieder werden schon realisierte Funktionen der LDAP-Abfrage benutzt. Diese Funktionen wurden ursprünglich „universell“ entwickelt, sodass sie als Ergebnis eine Datenkette im JSON-Format zurückliefern, die später ziemlich einfach dargestellt werden kann.</span></p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-media-themen/'>Social Media</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-networking/'>Social Networking</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/'>Technologien</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/benutzeroberflache/'>benutzeroberfläche</a>, <a href='http://ddiupbblogs.wordpress.com/tag/django/'>django</a>, <a href='http://ddiupbblogs.wordpress.com/tag/ldap/'>ldap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/openldap/'>openldap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1923/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1923&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/11/08/suteco-gruppenverwaltung-implementieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/mockup.png?w=1024" medium="image">
			<media:title type="html">MockUp Gruppenverwaltung</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/bildschirmfoto2.png?w=1024" medium="image">
			<media:title type="html">Screenshot Gruppenverwaltung</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/db_modell.png" medium="image">
			<media:title type="html">Datenbankmodell</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/11/django_modell.png" medium="image">
			<media:title type="html">Django Modell Gruppenverwaltung</media:title>
		</media:content>
	</item>
		<item>
		<title>NeXTsim &#8211; Entwurf und Entwicklung einer Simulationssoftware für NXT-basierte LEGO Mindstorms Systeme</title>
		<link>http://ddiupbblogs.wordpress.com/2012/11/06/nextsim-entwurf-und-entwicklung-einer-simulationssoftware-fur-nxt-basierte-lego-mindstorms-simulationssysteme/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/11/06/nextsim-entwurf-und-entwicklung-einer-simulationssoftware-fur-nxt-basierte-lego-mindstorms-simulationssysteme/#comments</comments>
		<pubDate>Tue, 06 Nov 2012 15:14:35 +0000</pubDate>
		<dc:creator>mbetterm</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1899</guid>
		<description><![CDATA[Im Rahmen meiner Masterarbeit wird die Entwicklung der Simulationssoftware NeXTsim (für Lego Mindstorms Systeme) begonnen. Die Software wird voraussichtlich aus vier Komponenten bestehen: Simulationsumgebung: 3D-Visualisierung der Simulation, Umsetzung von Aktorbefehlen, Lesen von Sensorwerten (aus der Szene), Laden + Speichern von Szenarien, einfache Szenarienmanipulation Emulation: Umgebung zum Schreiben der Steuerungsprogamme + Ausführung der Steuerungsprogramme (Kommunikation mit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1899&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Im Rahmen meiner Masterarbeit wird die Entwicklung der Simulationssoftware NeXTsim (für Lego Mindstorms Systeme) begonnen.<br />
Die Software wird voraussichtlich aus vier Komponenten bestehen:</p>
<ol>
<li>Simulationsumgebung: 3D-Visualisierung der Simulation, Umsetzung von Aktorbefehlen, Lesen von Sensorwerten (aus der Szene), Laden + Speichern von Szenarien, einfache Szenarienmanipulation</li>
<li>Emulation: Umgebung zum Schreiben der Steuerungsprogamme + Ausführung der Steuerungsprogramme (Kommunikation mit 4. erforderlich)</li>
<li>Modelleditor: Editor zum Erstellen von Modellen (z. B. Mindstorms-Roboter)</li>
<li>Szenarieneditor: Editor zur Erstellung komplexer Szenen, die den grafischen Ansprüchen der Schüler gerecht wird</li>
</ol>
<p>Im Rahmen meiner Arbeit wird die Simulationsumgebung und ein Protokoll für die Kommunikation zwischen Emulation und Simulationsumgebung entwickelt.</p>
<p>Es erfolgte bisher eine Einarbeitung in Grundlagen und verwandte Arbeiten. Da durch die Verwendung einer geeigneten 3D-(Game-)Engine auf lange Sicht viel Zeit bei der Implementierung gespart werden kann, wurde außerdem ein Vergleich von 3D-(Game-)Engines durchgeführt.</p>
<p>Verglichen werden:</p>
<ul>
<li>Ardor3D</li>
<li>Aviatrix3D</li>
<li>Env3D</li>
<li>Espresso3D</li>
<li>JMonkeyEngine</li>
<li>jPCT</li>
<li>Xith3D</li>
</ul>
<p>Als interessant herausgestellt haben sich die JMonkeyEngine, Xith3D und Env3D.</p>
<ul>
<li><strong>JMonkeyEngine</strong>: Ist, allem Anschein nach, die am häufigsten empfohlene und verwendete Java basierte Game Engine. Sie verfügt über eine ausfürliche Dokumentation sowie eine vergleichsweise große und aktive Community und unterstützt viele Features die für NeXTsim relevant sind. (Swing kompatibel, Physik, eingebauter Renderer, Applets erstellbar, ect. …)</li>
<li><strong>Xith3D</strong>: Benutzt als einzige Game-Engine in dem Vergleich die Physikengine JOODE. Alle anderen Engines benutzen (sofern Physik überhaupt unterstützt wird) JBullet.</li>
<li><strong>Env3D</strong>: Die Spieleentwicklung soll mit Env3D besonders leicht sein. Sie ist für Didaktiker besonders interessant.  Die Engine wurde entwickelt um Schülern/Studenten Programmiertechnik zu vermitteln: durch die Entwicklung von Spielen.</li>
</ul>
<p>3D Szene = Virtuelle 3D Welt<br />
Modell = ein virtuelles aus Lego (Mindstorms) Komponenten aufgebautes System, das über in der Regel einen NXT-Baustein verfügt und daran angeschlossene Aktoren und Sensoren<br />
Szenario = 3D Szene + darin platzierte Modelle</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1899/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1899&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/11/06/nextsim-entwurf-und-entwicklung-einer-simulationssoftware-fur-nxt-basierte-lego-mindstorms-simulationssysteme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/df8415ac42a911e6be7b24744a2ae170?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mbetterm</media:title>
		</media:content>
	</item>
		<item>
		<title>Evaluation von ADORE! Mitmachen!</title>
		<link>http://ddiupbblogs.wordpress.com/2012/10/31/evaluation-von-adore-mitmachen/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/10/31/evaluation-von-adore-mitmachen/#comments</comments>
		<pubDate>Wed, 31 Oct 2012 19:30:09 +0000</pubDate>
		<dc:creator>dmmeiners</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Evaluation]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[adore]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[evaluation]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1900</guid>
		<description><![CDATA[Meine Bachelor-Arbeit neigt sich dem Ende zu. Zum Ende möchte ich ADORE gerne auf mutige Tester loslassen. Da sich ADORE vielseitig einsetzen lässt, habe ich mich entschlossen, die Evaluation aufzuteilen. Wer sich als typischer Besucher einer Website sieht, der möge sich bitte den ersten Unterabschnitt durchlesen. Leute mit etwas Vorwissen in Richtung JSON und/oder CSS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1900&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Meine Bachelor-Arbeit neigt sich dem Ende zu. Zum Ende möchte ich ADORE gerne auf mutige Tester loslassen. Da sich ADORE vielseitig einsetzen lässt, habe ich mich entschlossen, die Evaluation aufzuteilen. Wer sich als typischer Besucher einer Website sieht, der möge sich bitte den ersten Unterabschnitt durchlesen. Leute mit etwas Vorwissen in Richtung JSON und/oder CSS sollten sich den zweiten Unterabschnitt durchlesen. Natürlich ist es auch erlaubt, an beiden Evaluationsteilen teilzunehmen.</p>
<p>Ich bin gespannt, denn es ist ein komisches Gefühl, ein Stück Software auf die Welt &#8220;loszulassen&#8221;, von dem man selbst genau weiß, dass es noch nicht ganz perfekt ist ;-)</p>
<p><span id="more-1900"></span></p>
<h2>Website-Besucher</h2>
<p>Ziel der Evaluation ist es, herauszufinden, ob die Bedienung von ADORE leicht verständlich (intuitiv) ist, und ob die gewählte Darstellung ein Mehrwert für den Betrachter der Seite darstellt. Dazu kommt das bereits <a href="http://ddiupbblogs.wordpress.com/2012/09/13/praktische-anwendung-von-adore/">hier</a> im Blog vorgestellte Greasemonkey-Skript für Firefox zum Einsatz. Die Schritte sind im Einzelnen:</p>
<p><strong>0. Optional, aber für das Verständnis stark empfohlen: Nochmal schnell meinen <a href="http://ddiupbblogs.wordpress.com/2012/09/13/praktische-anwendung-von-adore/">Blogpost</a> zu ADORE und Greasemonkey lesen.</strong></p>
<p>1. Greasemonkey-Plugin für Firefox <a href="https://addons.mozilla.org/de/firefox/addon/greasemonkey/">installieren</a>.</p>
<p>2. Das Userscript <a href="http://danmei.github.com/adore/userscript/themoviedb.org.user.js">installieren</a>.</p>
<p>3. <a href="http://www.themoviedb.org/">TheMovieDB.org</a> besuchen und nacheinander verschiedene Actor-Seiten ansurfen (z.B. <a href="http://www.themoviedb.org/person/2-mark-hamill">Mark Hamill</a> und <a href="http://www.themoviedb.org/person/3-harrison-ford">Harrison Ford</a> aus Star Wars).</p>
<p>4. Mit Klick auf &#8220;&lt;&#8221; und &#8220;&gt;&#8221; kann durch die Liste der gemeinsamen Filme geschaltet werden.</p>
<p>5. Fragebogen <a href="https://docs.google.com/spreadsheet/viewform?formkey=dEduZHRSQm1fYmcyUHNSR3k1bmdIQlE6MQ">ausfüllen</a>.</p>
<p>Danke!</p>
<h2>Web-Designer</h2>
<p>Ziel der Evaluation ist es, herauszufinden, wie  einfach oder schwer es ist, Beziehungen zwischen Objekten mit ADORE auszudrücken und ob die eingesetzten Methoden (JSON/CSS) sinnvoll sind.</p>
<p>1. Das ADORE Testbed <a href="http://danmei.github.com/adore/standalone/standalone.html">besuchen</a>.</p>
<p>2. Herumspielen, soviel man mag.</p>
<p>3. Fragebogen <a href="https://docs.google.com/spreadsheet/viewform?formkey=dEJlTFVFd2ZjQXNvcnduN0szYnBxSXc6MQ">ausfüllen</a>.</p>
<p>Danke!</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/evaluation/'>Evaluation</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/adore/'>adore</a>, <a href='http://ddiupbblogs.wordpress.com/tag/css-2/'>css</a>, <a href='http://ddiupbblogs.wordpress.com/tag/evaluation-2/'>evaluation</a>, <a href='http://ddiupbblogs.wordpress.com/tag/json/'>json</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1900/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1900/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1900&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/10/31/evaluation-von-adore-mitmachen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3d1aca5227a01ee70023d2b2bb7087f1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dmmeiners</media:title>
		</media:content>
	</item>
		<item>
		<title>SuTeCo &#8211; Übertragung der Hierarchien vom LDAP zu jOrgChart</title>
		<link>http://ddiupbblogs.wordpress.com/2012/10/25/noch-temp/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/10/25/noch-temp/#comments</comments>
		<pubDate>Thu, 25 Oct 2012 07:43:07 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[People Tagging]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[jOrgChart]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[SCOPE_ONELEVEL]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[visuelle Hierarchien]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1873</guid>
		<description><![CDATA[Wie in meinem letzten Post bereits erwähnt wurde, wird für die Darstellung des Organigramms das jQuery basierte jOrgChart Plug-In verwendet . Als Eingabe nutzt dieses Plug-In eine einfache HTML-Aufzählungsliste, die aus dem HTML-Dokument gelesen und danach in einer hierarchischen Form abgebildet wird (siehe Abbildungden im Blog 3). Die einzelnen Organisationseinheiten werden wie auf der Abbildung 1 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1873&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wie in meinem letzten <a title="Support of Team Communications (SuTeCo) – Darstellung von visuellen Hierarchien" href="http://ddiupbblogs.wordpress.com/2012/10/10/support-of-team-communications-suteco-darstellung-von-visuellen-hierarchien/">Post </a>bereits erwähnt wurde, wird für die Darstellung des Organigramms das <a title="jQuery" href="http://jquery.com/">jQuery</a> basierte <a title="jOrgChart Plug-In" href="https://github.com/wesnolte/jOrgChart">jOrgChart</a> Plug-In verwendet . Als Eingabe nutzt dieses Plug-In eine einfache HTML-Aufzählungsliste, die aus dem HTML-Dokument gelesen und danach in einer hierarchischen Form abgebildet wird (siehe <a title="Support of Team Communications (SuTeCo) – Darstellung von visuellen Hierarchien" href="http://ddiupbblogs.wordpress.com/2012/10/10/support-of-team-communications-suteco-darstellung-von-visuellen-hierarchien/">Abbildungden im Blog 3</a>).</p>
<p>Die einzelnen Organisationseinheiten werden wie auf der Abbildung 1 dargestellt ist, abgebildet.</p>
<p><img class="aligncenter size-full wp-image-1874" title="Visitenkarte einer Organisationseinheit" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/10/bildschirmfoto-23-10-2012-133925.png?w=490"   /></p>
<p style="text-align:center;">Abbildung 1. Darstellungsbeispiel einer Organisationseinheit</p>
<p><span id="more-1873"></span>Um die Eingabe für jOrgChart zu liefern, soll ein bestimmter Teil der <a title="LDAP-Struktur" href="http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.0/suselinux-manual_de/manual/sec.ldap.tree.html">LDAP-Struktur</a> vom Django rekursiv gelesen und danach an das Plug-In übertragen werden.Für die zu entwickelnde Web-Applikation muss der Teilbaum „Groups“ mit allen Unterbäumen rekursiv gelesen und im <a title="JSON" href="http://www.json.org/">JSON</a> Format gespeichert werden.</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/10/bildschirmfoto-23-10-2012-132827.png"><img class="aligncenter size-full wp-image-1875" title="Beispiel der Baumstruktur (Links)" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/10/bildschirmfoto-23-10-2012-132827.png?w=490&#038;h=200" height="200" width="490" /></a></p>
<p style="text-align:center;">Abbildung 2. Beispiel der Baumstruktur (Links)</p>
<p>Da mit JSON beliebig verschachtelte Datenstrukturen möglich sind, eignet sich  dieses Format für die Abbildung der hierarchischen Struktur und für die Netzwerkübertragung der Daten sehr gut.</p>
<p>Um benötige Daten vom LDAP zu bekommen wird das Python Modul „<a title="Ldap Client für Python" href="http://www.python-ldap.org/">ldap</a>“ eingesetzt. Dieses Modul stellt Funktionen zur Verfügung, die es erlauben, den LDAP-Baum komplett oder nur auf einen Teilbaum begrenzt zu durchsuchen.  Ein  kleines Code-Beispiel wäre:</p>
<p><pre class="brush: python;">

AUTH_LDAP_SCOPE = ldap.SCOPE_ONELEVEL

scope = AUTH_LDAP_SCOPE

filter = &quot;(&amp;(objectclass=groupOfNames))&quot;
 values = ['cn','owner', 'description', 'member']
 l = ldap.open(AUTH_LDAP_SERVER)
 l.protocol_version = ldap.VERSION3
 l.simple_bind_s(AUTH_LDAP_BASE_USER,AUTH_LDAP_BASE_PASS)
 result_id = l.search('ou=Groups,'+AUTH_LDAP_BASE, scope, filter, values)
 result_type, result_data = l.result(result_id, 1)

for data in result_data[1]:
 if data:
 result_set.append(json.dumps(data))

</pre></p>
<p>Ob der ganze Baum oder nur ein Teil davon durchsucht werden soll, entscheidet der <a title="SCOPE Parameter" href="http://www.idevelopment.info/data/LDAP/LDAP_Resources/SEARCH_Setting_the_SCOPE_Parameter.shtml">SCOPE – Parameter</a>. Dieser kann folgende Werte haben (Abbildung 3):</p>
<ul>
<li>SCOPE_BASE &#8211; nur der Startknoten des Baums (Teilbaums) betrachten</li>
<li>SCOPE_ONELEVEL &#8211; alle Kinderknoten des Startknotens (Startknoten inklusiv) betrachten</li>
<li>SCOPE_SUBTREE &#8211; der gesamte Baum (Teilbaum) inklusiv Startknoten betrachten</li>
</ul>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/10/thethreescopeoptions.gif"><img class="aligncenter size-full wp-image-1876" title="Scope Parameter für LDAP-Suche" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/10/thethreescopeoptions.gif?w=490"   /></a></p>
<p style="text-align:center;">Abbildung 3. Scope Parameter für LDAP-Suche<br />
(Quelle: http://www.idevelopment.info/data/LDAP/LDAP_Resources/SEARCH_Setting_the_SCOPE_Parameter.shtml)</p>
<p>Aus der Beschreibung kann man sehen, dass der Parameter SCOPE_SUBTREE sehr gut für die Suche nach einzelnen Benutzern passt, da  der komplette Baum durchgelaufen wird.</p>
<p style="text-align:left;">Um die hierarchische Struktur in JSON umzuwandeln, wird aber der Parameter SCOPE_ONELEVEL eingesetzt. Damit kann nur eine Ebene des Baumes durchgelaufen werden. Darauf folgend wird dieselbe Funktion rekursiv aufgerufen, um alle Unterknoten einer Elternknote herausfinden zu können.</p>
<p>Die JSON Datenstruktur, hat danach folgende Form.</p>
<p>

&lt;i&gt;{
 &quot;cn&quot;: &quot;DDI&quot;,
 &quot;description&quot;: &quot;Didaktik der Informatik&quot;,
 &quot;owner&quot;: {
 &quot;cn&quot;: &quot;ysl&quot;,
 &quot;title&quot;: &quot;Prof. Dr.&quot;,
 &quot;bcategory&quot;: &quot;Leitung&quot;,
 &quot;etype&quot;: &quot;Leiter&quot;,
 &quot;firstname&quot;: &quot;Johannes&quot;,
 &quot;lastname&quot;: &quot;Magenheim&quot;,
 &quot;fax&quot;: &quot;05251 / 60 6336&quot;,
 &quot;telephone&quot;: &quot;05251 / 60 6341&quot;,
 &quot;adres&quot;: &quot;Heinz Nixdorf Institut, Fürstenallee 11,
 Paderborn 33102&quot;,
 &quot;room&quot;: &quot;F2.116&quot;,
 &quot;email&quot;: &quot;jsm@uni-paderborn.de&quot;,
 &quot;description&quot;: &quot;&quot;
 },
 &quot;members&quot;: [{&quot;cn&quot;: &quot;wolle&quot;,
 &quot;title&quot;: &quot;Dr.&quot;,
 &quot;bcategory&quot;: &quot;wissenschaftlicher Mitarbeiter&quot;,
 &quot;etype&quot;: &quot;Mitarbeiter&quot;,
 &quot;firstname&quot;: &quot;Wolfgang&quot;,
 &quot;lastname&quot;: &quot;Rheinhard&quot;,
 &quot;fax&quot;: &quot;05251 / 60 6336&quot;,
 &quot;telephone&quot;: &quot;05251 / 60 6603&quot;,
 &quot;adres&quot;: &quot;Heinz Nixdorf Institut, Fürstenallee 11,
 Paderborn 33102&quot;,
 &quot;room&quot;: &quot;F2.201&quot;,
 &quot;email&quot;: &quot;wolle@uni-paderborn.de&quot;},
 {&quot;cn&quot;: &quot;jkostik&quot;,
 &quot;title&quot;: &quot;&quot;,
 &quot;bcategory&quot;: &quot;SHW&quot;,
 &quot;etype&quot;: &quot;Student&quot;,
 &quot;firstname&quot;: &quot;Juri&quot;,
 &quot;lastname&quot;: &quot;Kostik&quot;,
 &quot;fax&quot;: &quot;05251 / 60 6336&quot;,
 &quot;telephone&quot;: &quot;05251 / 60 6603&quot;,
 &quot;adres&quot;: &quot;Heinz Nixdorf Institut, Fürstenallee 11,
 Paderborn 33102&quot;,
 &quot;room&quot;: &quot;F0.107&quot;,
 &quot;email&quot;: &quot;jkostik@live.uni-paderborn.de&quot;
 }],
 &quot;sub&quot;:&quot;true&quot;,
 &quot;subtree&quot;: [{Untergruppen .....}]
 }&lt;/i&gt;

</p>
<p>Falls jemand eine bessere Idee hat, wie man einen LDAP-Teilbaum mit Python in JSON umwandeln kann, würde ich mich sehr freuen. :)</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/jorgchart/'>jOrgChart</a>, <a href='http://ddiupbblogs.wordpress.com/tag/json/'>json</a>, <a href='http://ddiupbblogs.wordpress.com/tag/ldap/'>ldap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/python-2/'>python</a>, <a href='http://ddiupbblogs.wordpress.com/tag/scope_onelevel/'>SCOPE_ONELEVEL</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visuelle-hierarchien/'>visuelle Hierarchien</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1873/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1873&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/10/25/noch-temp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/10/bildschirmfoto-23-10-2012-133925.png" medium="image">
			<media:title type="html">Visitenkarte einer Organisationseinheit</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/10/bildschirmfoto-23-10-2012-132827.png" medium="image">
			<media:title type="html">Beispiel der Baumstruktur (Links)</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/10/thethreescopeoptions.gif" medium="image">
			<media:title type="html">Scope Parameter für LDAP-Suche</media:title>
		</media:content>
	</item>
		<item>
		<title>Ergebnisse studentischer Projekte auf der mLearn 2012 vorgestellt</title>
		<link>http://ddiupbblogs.wordpress.com/2012/10/16/ergebnisse-studentischer-projekte-auf-der-mlearn-2012-vorgestellt/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/10/16/ergebnisse-studentischer-projekte-auf-der-mlearn-2012-vorgestellt/#comments</comments>
		<pubDate>Tue, 16 Oct 2012 12:04:25 +0000</pubDate>
		<dc:creator>wollepb</dc:creator>
				<category><![CDATA[Awareness]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Research 2.0]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[celstec]]></category>
		<category><![CDATA[Circos]]></category>
		<category><![CDATA[finnland]]></category>
		<category><![CDATA[GEXFVizz]]></category>
		<category><![CDATA[helsinki]]></category>
		<category><![CDATA[knowaan]]></category>
		<category><![CDATA[konferenz]]></category>
		<category><![CDATA[mlearn2012]]></category>
		<category><![CDATA[research networks]]></category>
		<category><![CDATA[visualisierung]]></category>
		<category><![CDATA[wolfgang reinhardt]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1869</guid>
		<description><![CDATA[In der heutigen Eröffnungskeynote der mLearn Konferenz 2012 in Helsinki (Finnland) wurden Ergebnisse aus zwei studentischen Projekten der Arbeitsgruppe präsentiert. Ich habe die Analysesoftware der Projektgruppe knowAAN und die Visualisierungen aus der Bachelorarbeit von Jörg Amelunxen verwendet, um die Publikationen der letzten 11 Jahre der mLearn Konferenzserie zu analysieren. Das Cleaning der Metadaten (bisher wurden [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1869&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In der heutigen Eröffnungskeynote der <a href="http://portal.ou.nl/en/web/mlearn-2012/home" target="_blank">mLearn Konferenz 2012</a> in Helsinki (Finnland) wurden Ergebnisse aus zwei studentischen Projekten der Arbeitsgruppe präsentiert. Ich habe die Analysesoftware der <a href="http://ddi.uni-paderborn.de/lehre/sommersemester-2010/pg-knowaan.html" target="_blank">Projektgruppe knowAAN</a> und die Visualisierungen aus der <a href="http://ddiupbblogs.wordpress.com/author/plasmalampe/" target="_blank">Bachelorarbeit von Jörg Amelunxen</a> verwendet, um die Publikationen der letzten 11 Jahre der mLearn Konferenzserie zu analysieren. Das Cleaning der Metadaten (bisher wurden noch keine Referenzdaten gesäubert) wurde durch <a href="http://celstec.org/users/map" target="_blank">Marina Pongraz</a> vom <a href="http://celstec.org" target="_blank">CELSTEC</a> durchgeführt (Vielen Dank noch mal).</p>
<p>Hier sind die Folien zu meiner Analyse, die teilweise in der Keynote verwendet wurden (es kam übrigens sehr gut an&#8230;):</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/14745267' width='427' height='350'></iframe>
<div style="margin-bottom:5px;"><strong> <a title="Analysis of mLearn 2002-2012" href="http://www.slideshare.net/wolfgang.reinhardt/analysis-of-mlearn-20022012" target="_blank">Analysis of mLearn 2002-2012</a> </strong> from <strong><a href="http://www.slideshare.net/wolfgang.reinhardt" target="_blank">Wolfgang Reinhardt</a></strong></div>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/themen/awareness-themen/'>Awareness</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/perl/'>Perl</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/research-2-0/'>Research 2.0</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/celstec/'>celstec</a>, <a href='http://ddiupbblogs.wordpress.com/tag/circos/'>Circos</a>, <a href='http://ddiupbblogs.wordpress.com/tag/finnland/'>finnland</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gexfvizz/'>GEXFVizz</a>, <a href='http://ddiupbblogs.wordpress.com/tag/helsinki/'>helsinki</a>, <a href='http://ddiupbblogs.wordpress.com/tag/knowaan/'>knowaan</a>, <a href='http://ddiupbblogs.wordpress.com/tag/konferenz/'>konferenz</a>, <a href='http://ddiupbblogs.wordpress.com/tag/mlearn2012/'>mlearn2012</a>, <a href='http://ddiupbblogs.wordpress.com/tag/research-networks/'>research networks</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visualisierung-2/'>visualisierung</a>, <a href='http://ddiupbblogs.wordpress.com/tag/wolfgang-reinhardt/'>wolfgang reinhardt</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1869/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1869/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1869&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/10/16/ergebnisse-studentischer-projekte-auf-der-mlearn-2012-vorgestellt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/4ad3b68d254ac91633e7cdcdf093ad71?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wollepb</media:title>
		</media:content>
	</item>
		<item>
		<title>Support of Team Communications (SuTeCo) &#8211; Darstellung von visuellen Hierarchien</title>
		<link>http://ddiupbblogs.wordpress.com/2012/10/10/support-of-team-communications-suteco-darstellung-von-visuellen-hierarchien/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/10/10/support-of-team-communications-suteco-darstellung-von-visuellen-hierarchien/#comments</comments>
		<pubDate>Wed, 10 Oct 2012 08:27:41 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[hierarchische struktur]]></category>
		<category><![CDATA[jOrgChart]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[Visuelle Hierarchie]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1850</guid>
		<description><![CDATA[Nach dem langen Überlegen habe ich mich endlich entschieden das von mir zu entwickelnde Tool zu benennen. Es wird &#8220;Support of Team Communication&#8221; heißen. Der Name lässt sich auch ziemlich gut abkürzen, und zwar &#8220;SuTeCo&#8221;. In meinen weiteren Blogs werde ich diese Abkürzung jetzt immer benutzen. Wie in meinem zweiten Post schon bereits erwähnt wurde, habe ich mich [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1850&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Nach dem langen Überlegen habe ich mich endlich entschieden das von mir zu entwickelnde Tool zu benennen. Es wird &#8220;Support of Team Communication&#8221; heißen. Der Name lässt sich auch ziemlich gut abkürzen, und zwar &#8220;SuTeCo&#8221;. In meinen weiteren Blogs werde ich diese Abkürzung jetzt immer benutzen.</p>
<p>Wie in meinem<a title="Unterstützung Team-basierter Kommunikation durch visuelle Hierarchien, innovative Gruppenbildung und People Tagging" href="http://ddiupbblogs.wordpress.com/2012/09/24/unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/"> zweiten Post</a> schon bereits erwähnt wurde, habe ich mich für die Darstellung der visuellen Hierarchien (Organigramm)  für das <a href="http://jquery.com/">jQuery</a>-Basiertes Plug-In  „<a title="jOrgChart" href="https://github.com/wesnolte/jOrgChart">jOrgChart</a>“  entschieden. Dieses Plug-In wird benutzt, um die hierarchische Struktur einer Organisation, die im LDAP  abgebildet ist, darzustellen.</p>
<p><span id="more-1850"></span></p>
<p>Dieses Plug-In wurde von Wesley Nolte [http://twitter.com/wesnolte] entwickelt und wird nach dem GPL- und  MIT-Lizenz verbreitet.  Es besteht aus zwei Dateien: einer <a href="http://de.selfhtml.org/javascript/index.htm">JavaScript</a>-Datei (das eigentliche Plug-In) und einer <a href="http://de.selfhtml.org/css/index.htm">CSS</a>-Datei (Style).</p>
<p>Die Funktionsweise des Plug-Ins ist ziemlich einfach. Es bekommt als Eingabe eine ziemlich einfache  verschachtelte <a title="HTML-Struktur" href="http://de.wikipedia.org/wiki/Hypertext_Markup_Language#HTML-Struktur">HTML-Struktur</a>, die aus UL und LI-Tags besteht. Ein kleines Beispiel solcher Struktur wäre:</p>
<p><pre class="brush: xml;">
&lt;ul id=&quot;org&quot; style=&quot;display:none&quot;&gt;
 &lt;li&gt;
 Leiter HNI&lt;p&gt;Prof. Dr.-Ing. Ansgar Trächtler&lt;/p&gt;
 &lt;ul data-content-theme=&quot;Leitung&quot;&gt;
 &lt;li&gt;Fachgruppe DDI&lt;p&gt;Prof. Dr. Johannes Magenheim&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Sekretariat&lt;p&gt;Klaudia Jakob&lt;/p&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/li&gt;
 &lt;li&gt;Fachgruppe MMW&lt;p&gt;Prof. Dr. gerd Szwillus&lt;/p&gt;
 &lt;/li&gt;
 &lt;li class=&quot;fruit&quot;&gt;Fachgruppe PE&lt;p&gt;Prof. Dr.-Ing. Jürgen Gausemeier&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Team EM&lt;p&gt;Dipl.-Wirt.-Ing. Tobias Gaukstern&lt;/p&gt;
 &lt;/li&gt;
 &lt;li&gt;Team IM&lt;p&gt;Dipl.-Wirt.-Ing. Niklas Echterhoff&lt;/p&gt;
 &lt;/li&gt;
 &lt;li&gt;Team VE&lt;p&gt;Dipl.-Wirt.-Ing. Tobias Bensiek&lt;/p&gt;
 &lt;/li&gt;
 &lt;/ul&gt;
 &lt;/li&gt;
 &lt;/ul&gt;
 &lt;/li&gt;
 &lt;/ul&gt;
</pre></p>
<p>Durch die Styles-Einstellungen (style=&#8221;display:none&#8221;) in der ersten Zeile wird verhindert, dass die vordefinierte Struktur als eine Aufzählungsliste ausgegeben wird, sondern vom Plug-In als Eingabe benutzt wird.</p>
<p style="text-align:center;"><a href="http://ddiupbblogs.files.wordpress.com/2012/10/jorgchart.png"><img class="aligncenter size-full wp-image-1856" title="Plug-In jOrgChart" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/10/jorgchart.png?w=490&#038;h=273" height="273" width="490" /></a>Abbildung 1.  Organigramm, das mit jOrgChart generiert wurde</p>
<p style="text-align:left;">Das Plug-In wandelt diese Struktur in eine Tabelle mit mehreren Untertabellen um, die aus TR-und TD-Tags besteht.  Je nachdem, ob eine Zelle der Tabelle ein Knoten ist oder ein Blatt, wird diese mit der dazu passenden CSS-Klasse versehen (Abbildung 2).</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/10/jorgchart_tabellenstruktur.png"><img class="aligncenter size-full wp-image-1857" title="Hierarchiesche Struktur, die druch das PlugIn jOrgChart erzeugt wird" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/10/jorgchart_tabellenstruktur.png?w=490&#038;h=289" height="289" width="490" /></a></p>
<p style="text-align:center;">Abbildung 2. Table basierte HTML-Struktur, die vom jOrgChart Plug-In generiert wurde</p>
<p><strong>Geplanter Umbau des Plug-Ins</strong></p>
<p>Das Plug-In jOrgChart entspricht aber nicht allen Anforderungen, die im Rahmen dieser Masterarbeit implementiert werden sollen. Aus diesem Grund soll das Plug-In durch folgende Funktionen erweitert werden:</p>
<ol>
<li>Darstellung von Ebenen, mit der Möglichkeit die ganze Ebene in die Empfängerliste zu setzen (Abbildung 3),</li>
<li>Darstellung der einzelnen Organisationseinheiten mit zusätzlichen Informationen wie Name, Vorname, Fotos etc.,</li>
<li>Drag&amp;Drop Funktionalität,</li>
<li>PopUp-Menü Fenster,</li>
<li>Datenübertragung im JSON-Format</li>
</ol>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/10/orgstruktur-new.png"><img class="aligncenter size-full wp-image-1859" title="Geplante Überarbeitung des jOrgChart Plug-Ins" alt="" src="http://ddiupbblogs.files.wordpress.com/2012/10/orgstruktur-new.png?w=490&#038;h=304" height="304" width="490" /></a></p>
<p style="text-align:center;">Abbildung 3. Geplante Umbau des Plug-Ins  jOrgChart</p>
<p><strong>Eingaben für jOrgChart</strong></p>
<p>Als Eingabe für das o.g. Plug-In wird ursprünglich eine ziemlich einfache HTML-Struktur benutzt, was das Plug-In ziemlich einfach und übersichtlich macht. Das Problem taucht erst dann auf, wenn die Organisationsstruktur, die dargestellt werden soll, größer als ein paar Ebenen mit 20 oder 30 Organisationseinheiten wird.  Dann sollen ziemlich große Datenmengen vom Server an den Client übertragen werden (persönliche Daten mit Fotos).</p>
<p>Um die Wartezeit zu verkürzen, werden die Daten im <a href="http://www.json.org/">JSON </a>Format übertragen. Die zweite Möglichkeit die Wartezeit zu verkürzen, ist die Beschränkung von sofort anzeigenden Ebenen. Das bedeutet, dass nach dem Öffnen des Fensters beispielweise nur die ersten zwei Ebenen angezeigt werden. Um weitere Ebenen anzuzeigen, sollen sie manuell per Mausklick geöffnet (expandiert) werden.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/hierarchische-struktur/'>hierarchische struktur</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jorgchart/'>jOrgChart</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jquery/'>jquery</a>, <a href='http://ddiupbblogs.wordpress.com/tag/plugin/'>plugin</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visuelle-hierarchie/'>Visuelle Hierarchie</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1850/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1850/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1850&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/10/10/support-of-team-communications-suteco-darstellung-von-visuellen-hierarchien/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/10/jorgchart.png" medium="image">
			<media:title type="html">Plug-In jOrgChart</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/10/jorgchart_tabellenstruktur.png" medium="image">
			<media:title type="html">Hierarchiesche Struktur, die druch das PlugIn jOrgChart erzeugt wird</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/10/orgstruktur-new.png" medium="image">
			<media:title type="html">Geplante Überarbeitung des jOrgChart Plug-Ins</media:title>
		</media:content>
	</item>
		<item>
		<title>GEXFVizz &#8211; Visio und die Umfrage</title>
		<link>http://ddiupbblogs.wordpress.com/2012/10/04/gexfvizz-visio-und-die-umfrage/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/10/04/gexfvizz-visio-und-die-umfrage/#comments</comments>
		<pubDate>Thu, 04 Oct 2012 11:39:01 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[diagramme]]></category>
		<category><![CDATA[vision 2010]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1846</guid>
		<description><![CDATA[Da sich nun die Bachelorarbeit dem Ende entgegen neigt, werden sich nun auch die Blogeinträge langsam dem Ende nähern :) Im Moment bin ich damit beschäftigt der Arbeit den letzten Feinschliff zu geben und setze mich zum Beispiel damit auseinander wie ich in Microsoft Visio meine Diagramme auf Englisch darstellen kann (das ist leider gar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1846&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Da sich nun die Bachelorarbeit dem Ende entgegen neigt, werden sich nun auch die Blogeinträge langsam dem Ende nähern :)<br />
Im Moment bin ich damit beschäftigt der Arbeit den letzten Feinschliff zu geben und setze mich zum Beispiel damit auseinander wie ich in Microsoft Visio meine Diagramme auf Englisch darstellen kann (das ist leider gar nicht so einfach, wenn man vorher per MSDNAA die deutsche Version heruntergeladen hat). <span id="more-1846"></span><br />
Das Problem ist, dass es schlichtweg nicht möglich ist die Sprache direkt in Vision 2010 zu ändern (sofern man nicht die von Microsoft angebotenen Sprachpakete kaufen (!) möchte&#8230;). Im Endeffekt war dann für mich die Lösung die komplette englische Version von Visio per MSDNAA zu laden. Lustigerweise konnte ich dann, nachdem ich die 900 MB heruntergeladen hatte, während der Installation auswählen, dass einfach nur das Sprachpakete übernommen werden sollte. Ich glaube, dass es keinen umständlicheren Weg gegeben hätte um einfach nur die Sprache meiner Diagramme zu ändern ;-). Wer jetzt allerdings glaubt, dass mit dem Starten der englischen Version alles gut gewesen wäre, der liegt an dieser Stelle leider falsch. Denn die Diagramme werden in Visio nicht automatisch aktualisiert. Somit war es nötig, jede Klasse in jedem Klassendiagramm per Doppelklick zu öffnen und mit „o.k.“ zu bestätigen (um Visio anzuweisen die Klasse noch einmal zu aktualisieren).</p>
<p>Ansonsten war ein relativ großer Arbeitsteil der letzter Zeit, dass ich mich mit der Auswertung der Umfrage beschäftigt habe, über die ich ja bereits im letzten Blogeintrag geschrieben habe. Die Ergebnisse waren insgesamt ziemlich durchwachsen, insbesondere einige der genannten negativen Dinge, widersprachen teilweise von mir bewusst getätigten Designentscheidungen. Zum Beispiel haben sich mehrere Personen alphabetisch sortierte Circos-Diagramme gewünscht, was allerdings mit der von mir eingesetzten Ordnung (um die Kantenüberlappungen zu minimieren) nicht möglich ist. Zudem hatten viele Personen Schwierigkeiten bei der Bedienung der Anwendung (also den mit Sigma.js dargestellten Graphen) und auch die Interpretation der Daten schien außergewöhnlich schwer zu sein. Daher sollte man eventuell weitere Hilfe (zum Beispiel in Form von Tool-Tipps, etc.) anbieten. Außerdem war relativ deutlich zu erkennen, dass die Beispiel-Auswertung für das Circos-Diagramm nicht ausreicht, um den Benutzern die Darstellung und Interpretation der Diagramme hinreichend genau zu erklären, da dort noch sehr viele Fehler gemacht worden sind.<br />
Trotzdem brachte die Umfrage viele neue Ideen und Anregungen für weitere Arbeit und könnte meiner Meinung nach durchaus die Grundlage für eine ganz neue Bachelorarbeit bilden. Das Potenzial ist auf jeden Fall vorhanden.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/tools/'>tools</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/diagramme/'>diagramme</a>, <a href='http://ddiupbblogs.wordpress.com/tag/vision-2010/'>vision 2010</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1846/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1846/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1846&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/10/04/gexfvizz-visio-und-die-umfrage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>
	</item>
		<item>
		<title>Unit-Tests – ELISMA Datenzugriffsschicht</title>
		<link>http://ddiupbblogs.wordpress.com/2012/09/28/unit-tests-elisma-datenzugriffsschicht/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/09/28/unit-tests-elisma-datenzugriffsschicht/#comments</comments>
		<pubDate>Fri, 28 Sep 2012 08:45:54 +0000</pubDate>
		<dc:creator>rolwi</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[baum]]></category>
		<category><![CDATA[berechtigungen]]></category>
		<category><![CDATA[datenstruktur]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[ELISMA]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[unit]]></category>
		<category><![CDATA[unit tests]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1837</guid>
		<description><![CDATA[Die Implementierung der Datenstruktur in Python ist verhältnismäßig weit fortgeschritten. Zeit für Tests, um bei Anpassungen der Implementierung schnell die korrekte Funktionsweise überprüfen zu können. ELISMA speichert die Daten in einer Baum-Datenstruktur. Zum Testen habe ich drei Bäume zusammengestellt, die es ermöglichen, die Operationen auf der Datenstruktur auf Korrektheit zu überprüfen. Die drei Bäume werden [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1837&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Die Implementierung der Datenstruktur in Python ist verhältnismäßig weit fortgeschritten. Zeit für Tests, um bei Anpassungen der Implementierung schnell die korrekte Funktionsweise überprüfen zu können. ELISMA speichert die Daten in einer Baum-Datenstruktur. Zum Testen habe ich drei Bäume zusammengestellt, die es ermöglichen, die Operationen auf der Datenstruktur auf Korrektheit zu überprüfen. Die drei Bäume werden bei Ausführung der Tests gemäß der Grafik erstellt.<span id="more-1837"></span></p>
<div id="attachment_1841" class="wp-caption aligncenter" style="width: 500px"><a href="http://ddiupbblogs.files.wordpress.com/2012/09/unit_test_aufbau1.png"><img class="size-full wp-image-1841" title="Daten für die Unit-Tests" src="http://ddiupbblogs.files.wordpress.com/2012/09/unit_test_aufbau1.png?w=490&#038;h=353" alt="Daten für die Unit-Tests" width="490" height="353" /></a><p class="wp-caption-text">Daten für die Unit-Tests</p></div>
<p>Drei Nutzer, zwei Gruppen und drei kleine Bäume sollen reichen, um alle Funtionen zu testen. Falls mir weitere Konstellationen einfallen oder weitere Methoden hinzukommen, werde ich das Test-Szenario erweitern.</p>
<p>In einer ersten Implementierung bestehen die Berechtigungen lediglich aus dem Lesezugriff. Später werde ich die Tests mindestens um Schreib- und Einfügeberechtigungen erweitern, um diese auf Korrektheit überprüfen zu können.</p>
<p>Zunächst die Funktionen, die ich hiermit testen werde. Statt der Methodennamen gebe ich hier nur an, was diese zurückliefern. Methoden die einen Wahrheitswert zurückliefern sind mit einem Fragezeichen versehen.</p>
<ul>
<li><em>Aufruf auf einzelnen Knoten</em>
<ul>
<li>Kindknoten</li>
<li>Anzahl der Kindknoten</li>
<li>Anzahl der Nachfahren</li>
<li>Vorfahren</li>
<li>Wurzelknoten</li>
<li>Knoten ist Blattknoten?</li>
<li>Knoten ist Kind von Knoten X?</li>
<li>Knoten ist Geschwisterknoten von X?</li>
<li>Knoten ist Nachfahre von X?</li>
</ul>
</li>
<li><em>Klassenmethoden</em>
<ul>
<li>Ganzer Baum</li>
<li>Wurzelknoten</li>
</ul>
</li>
</ul>
<p>Die Überprüfung der Methoden stellt sicher, dass die Struktur und die Berechtigungen korrekt erzeugt wurden und die Ergebnisse der Methoden entsprechend der Berechtigungen erzeugt werden. Die Ergebnisse variieren, je nachdem, welcher Nutzer die Methode aufruft.</p>
<p>Da Berechtigungen eine wichtige Rolle spielen, sind Knoten verschiedene Nutzer und Gruppen zur Berechtigung zugeordnet. Beispielsweise der Aufruf zur Anzahl der Kindknoten im Wurzelknoten im mittleren Baum sollte für Nutzer C die Anzahl 1, für Nutzer A 2 und Nutzer B 3 zurückliefern. Nutzer C hat nur auf einem Kindknoten eine Berechtigung, Nutzer A hat duch seine Gruppenzugehörigkeit die Berechtigung auf zwei Kindknoten und Nutzer B die Berechtigung auf allen Kindknoten.</p>
<p>Um die Bäume zu generieren habe ich eine Klassenmethode erstellt, die eine Python Liste der folgenden Struktur erwartet:</p>
<p><pre class="brush: python;">
[
	{
	'data':
		{
		'name':'1',
		'authorname':'A',
		'users_allowed':['B'],
		'groups_allowed':['GA','GB']
		},
	'children':
		[
			{
			'data':
				{
				'name':'11',
				'authorname':'A',
				'users_allowed':[],
				'groups_allowed':['GB']
				}
			}
		]
	}
]
</pre></p>
<p>Diese Struktur ermöglicht eine leichte Erweiterung des Testaufbaus. Die Struktur der Abbildung ist bereits auf diese Weise implementiert und wird scheinbar erfolgreich geladen. Was derzeit noch fehlt, sind die weiter oben beschriebenen Testmethoden. Der Aufbau dieser Methoden sieht folgendermaßen aus: Da ich die erwarteten Ergebnisse kenne, wird das erhaltene mit dem erwarteten Ergebnis verglichen. Stimmt beides überein, ist der Test bestanden. Stimmt es nicht überein, liegt eine Fehlfunktion vor.</p>
<p>Sind alle Tests implementiert, kann ich alle Methoden am Stück testen lassen und sehe anschließend, welche Methode einen Fehler aufweist.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/baum/'>baum</a>, <a href='http://ddiupbblogs.wordpress.com/tag/berechtigungen/'>berechtigungen</a>, <a href='http://ddiupbblogs.wordpress.com/tag/datenstruktur/'>datenstruktur</a>, <a href='http://ddiupbblogs.wordpress.com/tag/django/'>django</a>, <a href='http://ddiupbblogs.wordpress.com/tag/elisma/'>ELISMA</a>, <a href='http://ddiupbblogs.wordpress.com/tag/python-2/'>python</a>, <a href='http://ddiupbblogs.wordpress.com/tag/test/'>test</a>, <a href='http://ddiupbblogs.wordpress.com/tag/unit/'>unit</a>, <a href='http://ddiupbblogs.wordpress.com/tag/unit-tests/'>unit tests</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1837/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1837/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1837&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/09/28/unit-tests-elisma-datenzugriffsschicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://ddiupbblogs.files.wordpress.com/2012/09/unit_test_aufbau1.png?w=150" />
		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/unit_test_aufbau1.png?w=150" medium="image">
			<media:title type="html">Daten für die Unit-Tests</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/d5633bb2dfe72735b83b28fe28713bb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rolwi</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/unit_test_aufbau1.png" medium="image">
			<media:title type="html">Daten für die Unit-Tests</media:title>
		</media:content>
	</item>
		<item>
		<title>Unterstützung Team-basierter Kommunikation durch visuelle Hierarchien, innovative Gruppenbildung und People Tagging</title>
		<link>http://ddiupbblogs.wordpress.com/2012/09/24/unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/09/24/unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/#comments</comments>
		<pubDate>Mon, 24 Sep 2012 15:10:20 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Technologien]]></category>
		<category><![CDATA[User Interfaces]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[openldap]]></category>
		<category><![CDATA[organigramm]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[Visuelle Hierarchie]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1809</guid>
		<description><![CDATA[Wie schon in meinem ersten Blog bereits erwähnt wurde, soll die von mir zu entwickelnde Web-Applikation die Organisationsstruktur eines Unternehmens grafisch abbilden. Da fast jede Organisationsstruktur hierarchisch aufgebaut ist, ist es sinnvoll, die Datenstruktur eines Verzeichnisdienstes wie OpenLDAP zu nutzen, um die Organisationsstruktur abzubilden. Im Rahmen dieser Masterarbeit wird beispielweise die Organisationsstruktur einzelner Arbeitsgruppen des [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1809&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wie schon in meinem ersten <a title="Masterarbeit zum Thema “Unterstützung Team-basierter Kommunikation durch visuelle Hierarchien, innovative Gruppenbildung und People Tagging”" href="http://ddiupbblogs.wordpress.com/2012/06/26/masterarbeit-zum-thema-unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/">Blog</a> bereits erwähnt wurde, soll die von mir zu entwickelnde Web-Applikation die Organisationsstruktur eines Unternehmens grafisch abbilden. Da fast jede Organisationsstruktur hierarchisch aufgebaut ist, ist es sinnvoll, die Datenstruktur eines <a title="Verzeichnisdienst" href="http://de.wikipedia.org/wiki/Verzeichnisdienst" target="_blank">Verzeichnisdienstes</a> wie <a title="OpenLDAP" href="http://www.openldap.org/" target="_blank">OpenLDAP</a> zu nutzen, um die Organisationsstruktur abzubilden.</p>
<p>Im Rahmen dieser Masterarbeit wird beispielweise die Organisationsstruktur einzelner Arbeitsgruppen des Heinz Nixdorf Institut (HNI) abgebildet. Da aber die einzelnen Organisationseinheiten der Organisationsstruktur des HNI ziemlich viele <a title="Attribute von OpenLDAP" href="http://www.zytrax.com/books/ldap/ape/" target="_blank">Attribute</a> haben (z. B. HNIStatus, HNI-ID), die im Rahmen dieser Masterarbeit nicht benutzt werden, wird ein „abgespeckte“ <a title="LDAP Schema" href="http://www.openldap.org/doc/admin22/schema.html" target="_blank">Schema</a> der bestehenden Organisationsstruktur angelegt.<br />
Ein Beispiel dieser Struktur ist:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/09/bildschirmfoto-24-09-2012-091359.png"><img class="aligncenter  wp-image-1810" title="LDAP-Schema eines Benutzers" src="http://ddiupbblogs.files.wordpress.com/2012/09/bildschirmfoto-24-09-2012-091359.png?w=490&#038;h=539" alt="" width="490" height="539" /></a></p>
<p style="text-align:center;">Abbildung 1. LDAP-Struktur eines Benutzers</p>
<p style="text-align:left;">Da die bestehende LDAP-Struktur des HNI hauptsächlich zum Verteilen von Zugriffsrechten gedacht wurde, ist sie für die hierarchische Abbildung der Organisationsstruktur nicht gut geeignet und muss durch bestimmte Attribute erweitert werden:</p>
<ul>
<li>„owner“ &#8211; dadurch definiert man den Leiter einer Arbeitsgruppe bzw. eines Teams. Das Attribut wird nur einer Gruppe, bzw. einem Team zugewiesen, das einen Leiter hat (Abbildung 2).</li>
<li>„businessCategory“ &#8211; gibt an, zu welcher Kategorie der Tätigkeit eine Person gehört (Abbildung 1). Dieses Attribut wird gebraucht, um die Mitarbeiter auf mehrere Ebenen zu gliedern.</li>
<li>„employeeType“ &#8211; bezeichnet die Tätigkeit einer Person, wie Leiter, wissenschaftlicher Mitarbeiter, nicht wissenschaftlicher Mitarbeiter, etc. (Abbildung 1).</li>
</ul>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/09/bildschirmfoto-24-09-2012-093001.png"><img class="aligncenter size-full wp-image-1811" title="LDAP-Struktur einer Gruppe" src="http://ddiupbblogs.files.wordpress.com/2012/09/bildschirmfoto-24-09-2012-093001.png?w=490&#038;h=232" alt="" width="490" height="232" /></a></p>
<p style="text-align:center;">Abbildung 2. LDAP-Struktur einer Gruppe</p>
<p style="text-align:left;">Die Erweiterbarkeit des vorhandenen LDAP-Schemas durch eigene Attribute, macht den Einsatz vom LDAP sehr attraktiv.</p>
<p style="text-align:left;"><strong>LDAP-Module in Django<br />
</strong>Um die Authentifizierung und Aufbau der Organigramm in der zu entwickelnden Web-Anwendung zu implementieren, werden zwei Module eingesetzt. Das erste Modul ist „<a title="Django authentication using LDAP" href="http://packages.python.org/django-auth-ldap/" target="_blank">django-auth-ldap</a>“ und ermöglicht es, das Django-Projekt gegen einen beliebigen LDAP-Server zu authentifizieren. Das zweite Modul „ldap“ wird für die Abfrage der hierarchischen Struktur des LDAP-Servers benutzt.<br />
Die beiden Module sind in der Standardinstallation von Django nicht verfügbar und sollten extra installiert werden.</p>
<p style="text-align:left;"><strong>Userinterface der Web-Anwendung</strong><br />
Um das User Interface zu gestalten wird CSS-Framework <a title="Bootstrap von Twitter" href="http://twitter.github.com/bootstrap/" target="_blank">Bootstrap</a> eingesetzt. Das Framework existiert schon als ein Toolkits für Django „<a title="Django Bootstrap Toolkit" href="https://github.com/dyve/django-bootstrap-toolkit" target="_blank">django-bootstrap-toolkit</a>“ und lässt sich ziemlich einfach einsetzen. Eine Sammlung von schon fertigen Form-Widgets erleichtert und beschleunigt die Entwicklung einer Benutzeroberfläche.<br />
Darüber hinaus  ermöglicht Bootstrap Kompatibilität für die meist benutzten Browser, was dem Entwickler viel Arbeit abnimmt.</p>
<p style="text-align:left;"><strong>Visuelle Hierarchie (Organigramm)</strong><br />
Um das Organigramm im Browser abzubilden, ist der Einsatz vom <a title="jOrg Chart " href="https://github.com/wesnolte/jOrgChart#readme" target="_blank">jQuery Org Chart</a> geplant. Da das PlugIn aber nicht allen Anforderungen entspricht, wird es weiterentwickelt.</p>
<p>Falls jemand andere PlugIns mit ähnlichen Funktionen kennt, wäre ich sehr dankbar!</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/'>Technologien</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/user-interfaces/'>User Interfaces</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/bootstrap/'>bootstrap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/django/'>django</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jquery/'>jquery</a>, <a href='http://ddiupbblogs.wordpress.com/tag/ldap/'>ldap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/openldap/'>openldap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/organigramm/'>organigramm</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visuelle-hierarchie/'>Visuelle Hierarchie</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1809/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1809/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1809&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/09/24/unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/bildschirmfoto-24-09-2012-091359.png" medium="image">
			<media:title type="html">LDAP-Schema eines Benutzers</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/bildschirmfoto-24-09-2012-093001.png" medium="image">
			<media:title type="html">LDAP-Struktur einer Gruppe</media:title>
		</media:content>
	</item>
		<item>
		<title>E-Learning 2.0 in der Cloud</title>
		<link>http://ddiupbblogs.wordpress.com/2012/09/19/e-learning-2-0-in-der-cloud/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/09/19/e-learning-2-0-in-der-cloud/#comments</comments>
		<pubDate>Wed, 19 Sep 2012 12:21:47 +0000</pubDate>
		<dc:creator>rolwi</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud based learning]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[e-learning]]></category>
		<category><![CDATA[ELISMA]]></category>
		<category><![CDATA[lms]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1801</guid>
		<description><![CDATA[ELISMA soll eine möglichst universell einsetzbare Applikationsplattform werden. In einem ersten Schritt untersuche ich mit E-Learning nur eine Gruppe von Applikationen, die hiermit umgesetzt werden können. Zur weiteren Eingrenzung beziehe ich mich in meiner Arbeit auf Lehr- und Lernmanagementsysteme. Bei der Erarbeitung von Szenarien und einer weiter ausführenden Begründung für die Entwicklung von ELISMA gehe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1801&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>ELISMA soll eine möglichst universell einsetzbare Applikationsplattform werden. In einem ersten Schritt untersuche ich mit E-Learning nur <em>eine</em> Gruppe von Applikationen, die hiermit umgesetzt werden können. Zur weiteren Eingrenzung beziehe ich mich in meiner Arbeit auf Lehr- und Lernmanagementsysteme.</p>
<p>Bei der Erarbeitung von Szenarien und einer weiter ausführenden Begründung für die Entwicklung von ELISMA gehe ich auf E-Learning im Bezug auf Cloud Computing ein. Doch die Schwerpunkte sind bei den wissenschaftlichen Beiträgen zu diesem Thema sehr unterschiedlich. Deshalb habe ich hierzu eine Bestandaufnahme vorgenommen, dessen Ergebnis ich hier kurz präsentiere.<span id="more-1801"></span></p>
<h2>E-Learning 2.0</h2>
<p>Zunächst der Schritt von E-Learning 1.0 auf 2.0. Beeinflusst vom Web 2.0 wurden auch im Bereich des E-Learning Applikationen und Funktionen neu erfunden oder erweitert. Hierzu gehören folgende Applikationen beziehungsweise Funktionen: [vgl. <a href="http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4159932">Ebner 2007</a>, <a href="http://linkinghub.elsevier.com/retrieve/pii/S1877042809000895">Grosseck 2009</a>]</p>
<ul>
<li>Weblogs</li>
<li>Microblogging</li>
<li>Wikis</li>
<li>Podcasts</li>
<li>Social Networking</li>
<li>Social Bookmarking</li>
<li>Sharing Applications (Photos/Videos/Slides)</li>
<li>RSS Syndication</li>
</ul>
<p>E-Learning an sich ist ein sehr weites Feld, welches ich in seinem Umfang auf technische Aspekte einschränken wollte. Hierzu habe ich mir einige wissenschftliche Beiträge zum Thema Lehr- und Lernmanagementsystemen angeschaut. Da es <em>das</em> LMS nicht gibt, sind große Unterschiede zwischen den einzelnen Systemen zu verzeichnen. Aus den wissenschaftlichen Artikeln habe ich einige wesentliche Unterstützungsfunktionen ausgewählt: [vgl. <a href="http://ieeexplore.ieee.org/xpl/login.jsp?tp=&amp;arnumber=6184700">Hussain 2011</a>]</p>
<ul>
<li>Dokumentenmanagement</li>
<li>Content Management</li>
<li>Kurse</li>
<li>Forum</li>
<li>Kalendar</li>
<li>Portfolios</li>
<li>Rollen</li>
<li>Rechte</li>
</ul>
<p>Mit Hilfe der Unterstützungsfunktionen ergibt sich bereits ein gutes Bild dessen, welche technischen Grundfunktionen von ELISMA unterstützt werden müssen.</p>
<h2>Cloud Computing</h2>
<p>Mit Diensten wie GMail, Dropbox oder Google Docs ist die Cloud vielen in Form von Software as a Service (SaaS) bekannt. Was die Cloud allerdings für E-Learning bedeutet, außer einer neuen Infrastruktur, ist mir bis vor kurzem eher unklar gewesen. Cloud LMS, Cloud Learning, Cloud based LMS, Cloud-based education. Diese Bezeichnungen hören sich nett an, sind auf den ersten Blick aber nicht sehr aussagekräftig, bis auf den Einsatz der Cloud. Eher eine Werbeaussage für den Einsatz moderner Technologien also.</p>
<p>Die große Mehrheit wissenschaftlicher Beiträge zu Cloud Computing in Verbindung mit E-Learning beschäftigen sich mit der Skalierbarkeit und Elastizität von Diensten in Bezug auf Rechen- und Speicherkapazität. Durch diese Elastizität sollen im Wesentlichen Kosten (Energiekonsum, etc.) eingespart werden.</p>
<p>Eine zweite wesentliche Richtung von wissenschaftlichen Beiträgen hat Dienste (SaaS) im Blick, die in einer Cloud zur Verfügung gestellt und anschließend zum E-Learning in einer Art Mashup bereitgestellt werden. Nichtsdestotrotz wird auch hier ein Augenmerk auf die Skalierbarkeit der Cloud gelegt.</p>
<p>Eine dritte Richtung kann als Cloud Based Learning (CBL) zusammengefasst werden. CBL steht für die Nutzung der Cloud in Form von Speicherplatz und Applikationen. Daten werden nicht mehr lokal sondern in der Cloud gespeichert, wo sie gemeinsam und unmittelbar bearbeitet werden können. Mehrfach hervorgehoben wird, dass, im Gegensatz zu einem &#8220;normalen&#8221; System, die Daten jederzeit verfügbar sind.</p>
<p>Meine Auffassung dazu ist folgende: Dass jederzeit alle Daten verfügbar sind, ist nicht darauf zu begründen, dass die Cloud zum Einsatz kommt. Viel mehr handelt es sich um eine neue Art von Anwendungen, die Schnittstellen bereitstellen, um Daten an jedem Ort auf verschiedenen Geräten verfügbar zu machen. Neu ist allenfalls die unmittelbare, kollaborative Bearbeitung von Dokumenten à la Google Docs, aber auch hier spielt die Cloud eine untergeordnete Rolle.</p>
<p>Die Cloud bietet einen flexiblen Umgang mit Ressourcen und ermöglicht so eine neue Art von Systemen. Neue Unterstützungsfunktionen für E-Learning werden hierdurch aber nicht unmittelbar ermöglicht. Vorteile der Cloud beschränken sich damit auf</p>
<ul>
<li>Kostenersparnis (nutzungsabhängige Abrechnung),</li>
<li>Skalierbarkeit (Speicher- und Rechenkapazität) und</li>
<li>einen einfachen Umgang mit (virtuellen) Ressourcen.</li>
</ul>
<p>Habe ich etwas wesentliches vergessen? Ich bin für jeden Kommentar dankbar.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/themen/cloud-computing/'>Cloud Computing</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/cloud/'>cloud</a>, <a href='http://ddiupbblogs.wordpress.com/tag/cloud-based-learning/'>cloud based learning</a>, <a href='http://ddiupbblogs.wordpress.com/tag/cloud-computing-2/'>cloud computing</a>, <a href='http://ddiupbblogs.wordpress.com/tag/e-learning/'>e-learning</a>, <a href='http://ddiupbblogs.wordpress.com/tag/elisma/'>ELISMA</a>, <a href='http://ddiupbblogs.wordpress.com/tag/lms/'>lms</a>, <a href='http://ddiupbblogs.wordpress.com/tag/web-2-0/'>web 2.0</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1801/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1801&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/09/19/e-learning-2-0-in-der-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://ddiupbblogs.files.wordpress.com/2012/09/cloud.png?w=150" />
		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/cloud.png?w=150" medium="image">
			<media:title type="html">cloud</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/d5633bb2dfe72735b83b28fe28713bb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rolwi</media:title>
		</media:content>
	</item>
		<item>
		<title>GEXFVizz &#8211; Usertest</title>
		<link>http://ddiupbblogs.wordpress.com/2012/09/17/gexfvizz-usertest/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/09/17/gexfvizz-usertest/#comments</comments>
		<pubDate>Mon, 17 Sep 2012 08:50:55 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[tools]]></category>
		<category><![CDATA[User Interfaces]]></category>
		<category><![CDATA[GEXFVizz]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[usertest]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1797</guid>
		<description><![CDATA[As my Blogposts in the last few months suggest, my Bachelor thesis handles the development of a web application that is able to visualize research networks from scientific publications. Now, I need your help in evaluating the meaningfulness of the graphs and diagrams that are generated with my application (GEXFVizz). &#160; The survey can be found [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1797&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As my Blogposts in the last few months suggest, my Bachelor thesis handles the development of a web application that is able to visualize research networks from scientific publications. Now, I need your help in evaluating the meaningfulness of the graphs and diagrams that are generated with my application (GEXFVizz).</p>
<p>&nbsp; <span id="more-1797"></span></p>
<p>The survey can be found <a href="https://docs.google.com/spreadsheet/formResponse?formkey=dGJZcDJoT002X191cVJxSkt1ODNZMUE6MQ&amp;ptok=950725702710286769&amp;ifq" target="_blank">here</a> and is separated into four small parts. In the first part you will see a „Co-Authorship“ graph of the ECTEL conference of the years 2006 to 2011. So, every node correspond to a scientist. Within this graph two nodes are connected, if the authors have at least one common publication. <a href="http://gexfvizz.cs.upb.de/usertest/testpage1_ca.html" target="_blank">You can use this link to open the graph</a>.</p>
<p>In the second part of the survey you will see a „Bibliographic Coupling“ graph of the ECTEL conference of the years 2006 to 2011. This graph connects two nodes (publications), if they have a common citation. The coupling strength of two given documents is higher the more citations they have in common. <a href="http://gexfvizz.cs.upb.de/usertest/testpage2_bc.html" target="_blank">You can use this link to open the graph.</a></p>
<p>The third part of this survey will handle visualizations that has been created with Circos.<br />
The Circos visualization that<a href="http://gexfvizz.cs.upb.de/usertest/testpage3_circ_ca.html" target="_blank"> you can find here</a> shows the top 40 co-authorships of the ECTEL from 2006 to 2011. You can use <a href="http://gexfvizz.cs.upb.de/circos/gexfCircos.pdf" target="_blank">this example pdf</a> to help you answering the questions of the survey.</p>
<p>The last part of the survey contains some questions taken from the INTUI questionnaire.</p>
<p>All in all, I would really appreciate your help by participating in this survey.<br />
Thank you.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/tools/'>tools</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/user-interfaces/'>User Interfaces</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/gexfvizz/'>GEXFVizz</a>, <a href='http://ddiupbblogs.wordpress.com/tag/test/'>test</a>, <a href='http://ddiupbblogs.wordpress.com/tag/usertest/'>usertest</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1797/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1797/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1797&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/09/17/gexfvizz-usertest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>
	</item>
		<item>
		<title>Praktische Anwendung von ADORE</title>
		<link>http://ddiupbblogs.wordpress.com/2012/09/13/praktische-anwendung-von-adore/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/09/13/praktische-anwendung-von-adore/#comments</comments>
		<pubDate>Thu, 13 Sep 2012 15:52:56 +0000</pubDate>
		<dc:creator>dmmeiners</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[adore]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json/t]]></category>
		<category><![CDATA[userscript]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1779</guid>
		<description><![CDATA[Es ist mal wieder Zeit, etwas über ADORE zu berichten. Es sind noch ca. 1,5 Monate bis zur Abgabe der Arbeit. Die eigentliche Programmierung ist recht weit fortgeschritten, und in diesem Blogpost möchte ich ein praktisches Beispiel vorstellen. Als Grundlage betrachten wir TheMovieDB – eine offene Datenbank für Filme, Schauspieler und verwandte Informationen. Ein Beispiel-Screenshot zeigt [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1779&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Es ist mal wieder Zeit, etwas über ADORE zu berichten. Es sind noch ca. 1,5 Monate bis zur Abgabe der Arbeit. Die eigentliche Programmierung ist recht weit fortgeschritten, und in diesem Blogpost möchte ich ein praktisches Beispiel vorstellen.</p>
<p>Als Grundlage betrachten wir <a href="http://www.themoviedb.org/">TheMovieDB</a> – eine offene Datenbank für Filme, Schauspieler und verwandte Informationen.<span id="more-1779"></span> Ein Beispiel-Screenshot zeigt eine Darsteller-Seite.</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/09/tmdb1.png"><img class="alignnone size-full wp-image-1780" title="tmdb1" src="http://ddiupbblogs.files.wordpress.com/2012/09/tmdb1.png?w=490&#038;h=474" alt="Darsteller-Seite" width="490" height="474" /></a></p>
<p>Die Idee war es nun, zu demonstrieren, dass vorhandene Websites mittels ADORE erweitert werden können. Da ich natürlich keinen Zugriff auf den Quellcode von TheMovieDB habe, habe ich das ganze als <a href="http://www.greasespot.net/">Greasemonkey Userscript</a> implementiert. Dies hat als Bonus den Vorteil, dass verschiedene, auf ADORE basierende, Erweiterungen für eine Website einzeln ein- und ausgeschaltet werden können.</p>
<p>Wie sieht nun die Erweiterung für TheMovieDB aus? Da ADORE die Beziehungen zwischen (sozialen Objekten) darstellen kann, versucht die Erweiterung bei Aufruf einer Darsteller-Seite, alle Verbindungen dieses Darstellers zu einem anderen Darsteller zu finden. Der &#8220;andere Darsteller&#8221; ist in diesem Fall einfach der Darsteller, den man vor dem aktuellen betrachtet hat. Hier sind natürlich Variationen denkbar, wie z.B. alle Verbindungen des aktuellen Darstellers zu meinem Lieblings-Darsteller o.ä.</p>
<p>Um diese Verbindungen zu finden, habe ich die <a href="http://help.themoviedb.org/kb/api/about-3/">JSON API</a> benutzt, die TheMovieDB anbietet. Da diese leider eine Begrenzung in der Anzahl der Abfragen hat, musste bei der Länge der Verbindung eine Einschränkung gemacht werden: Es wird die Verbindung meines aktuell betrachteten Darstellers zu einem anderen Darsteller über einen Film, an dem beide Darsteller gemeinsam mitgewirkt haben, angezeigt. Die CSS Formatierung, hier z.B. die Icons (= Filmplakate und Darsteller-Porträts) der Knoten wird on-the-fly generiert, ebenfalls unter Benutzung der TheMovieDB API. Aufgrund der Beschaffenheit der API und des Limits für Anfragen, sind komplexere Verbindungen leider nicht möglich. Das Ergebnis sieht dann z.B. so aus (Änderungen hervorgehoben):</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/09/tmdb21.png"><img class="alignnone size-full wp-image-1785" title="tmdb2" src="http://ddiupbblogs.files.wordpress.com/2012/09/tmdb21.png?w=490&#038;h=474" alt="Darsteller-Seite erweitert durch ADORE" width="490" height="474" /></a></p>
<p>Die Darstellung ist nicht vollständig formatiert, aber ich glaube das Konzept wird deutlich. Die meiste Arbeit war es, die Datensätze der JSON API von TheMovieDB zusammenzufassen und in ein ADORE-kompatibles Format zu bringen. Bei meinen Recherchen bin ich dabei auf <a href="http://goessner.net/articles/jsont/">JSON/T</a> gestoßen – eine Möglichkeit, JSON Datensätze zu transformieren, ähnlich wie XSLT. Da ich aber, wie gesagt, komplexere Umformungen vornehmen musste, welche die Fähigkeiten von JSON/T übersteigen, habe ich meinen &#8220;Adapter&#8221; kurzerhand von Hand geschrieben.</p>
<p>Ein solcher Adapter ist natürlich für verschiedene Datenquellen immer neu zu schreiben, das eigentliche Userscript passt jedoch – in diesem Beispiel – in handliche 80 Zeilen.</p>
<p>Ich denke, das Beispiel zeigt gut, dass mit vertretbarem Aufwand vorhandene Websites durch ADORE erweitert werden können.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/adore/'>adore</a>, <a href='http://ddiupbblogs.wordpress.com/tag/greasemonkey/'>greasemonkey</a>, <a href='http://ddiupbblogs.wordpress.com/tag/json/'>json</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jsont/'>json/t</a>, <a href='http://ddiupbblogs.wordpress.com/tag/userscript/'>userscript</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1779/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1779&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/09/13/praktische-anwendung-von-adore/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3d1aca5227a01ee70023d2b2bb7087f1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dmmeiners</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/tmdb1.png" medium="image">
			<media:title type="html">tmdb1</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/tmdb21.png" medium="image">
			<media:title type="html">tmdb2</media:title>
		</media:content>
	</item>
		<item>
		<title>GEXFVizz &#8211; Kreisrunde Säulendiagramme</title>
		<link>http://ddiupbblogs.wordpress.com/2012/09/05/gexfvizz-kreisrunde-balkendiagramme/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/09/05/gexfvizz-kreisrunde-balkendiagramme/#comments</comments>
		<pubDate>Wed, 05 Sep 2012 12:22:49 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Balkendiagramme]]></category>
		<category><![CDATA[Circos]]></category>
		<category><![CDATA[GEXFVizz]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1767</guid>
		<description><![CDATA[Da wohl noch ein wenig Bedarf an einer kleinen Skizze zum Erstellen von Säulendiagramme mit der Hilfe von Circos bestand, möchte ich mich im folgenden Blogeintrag ebendiesem annehmen. Dabei möchte ich versuchen die Thematik so allgemein gültig wie möglich zu erklären, damit sie in vielen verschiedenen Bereichen einfach angewendet werden kann. &#160; Nehmen wir für [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1767&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Da wohl noch ein wenig Bedarf an einer kleinen Skizze zum Erstellen von Säulendiagramme mit der Hilfe von Circos bestand, möchte ich mich im folgenden Blogeintrag ebendiesem annehmen. Dabei möchte ich versuchen die Thematik so allgemein gültig wie möglich zu erklären, damit sie in vielen verschiedenen Bereichen einfach angewendet werden kann.<br />
<span id="more-1767"></span><br />
&nbsp;<br />
Nehmen wir für dieses Beispiel mal an, unsere X-Achse benötigt 240 Einheiten von irgendetwas. Da wir alle Plots in Circos ja auf diese Chromosomen auftragen, benötigen wir damit eine Chromosomlänge von 240. Somit sieht unsere Datei zum Erstellen der Chromosomen so aus:</p>
<p><code> chr - ID1 values 0 240 green<br />
chr - ID2 dummy 0 240 red<br />
</code></p>
<p>Dabei habe ich die zweite Zeile nur eingefügt damit ich am Ende die Hälfte des Kreises für mein Säulendiagramm benutze [ Deswegen ist das Label des zweiten Chromosoms auch dummy :) ]. Damit haben wir nun eine Chromosomlänge von 240 und können diese nun als X-Achse ausfüllen.</p>
<p>Hierfür können wir einfach die benötigten Daten für unsere Säulendiagramme tabellarisch in eine Datei eintragen. In dieser Datei beginnt die erste Spalte mit der ID des Chromosoms und in der zweiten und dritten Spalte befindet sich die „range“ des Eintrages (also zB. von 0 bis 5). Die letzte Spalte enthält dann den Wert für diesen Abschnitt.<br />
In unserem Beispiel schreiben wir in diese Datei nun den folgenden Inhalt:</p>
<p><code> ID1 0 5 8<br />
ID1 5 45 6<br />
ID1 45 90 12<br />
ID1 90 150 8<br />
ID1 150 240 4<br />
</code></p>
<p>Jetzt werden diese beiden Dateien in die Circos Konfigurationsdatei eingebunden.</p>
<p>Da ihr die Dateien in einem gepackten Archiv herunterladen könnt, würde es wohl an dieser Stelle nicht viel Sinn machen die gesamten Dateien darzustellen, aber ich stelle mal ein paar Kleinigkeiten heraus, die nennenswert sind. In der Konfigurationsdatei ist zum Beispiel enthalten:</p>
<p><code> file_delim = \t<br />
</code><br />
Dies besagt, dass die „Daten Dateien“ für die Diagramme und Chromosomen durch Tab getrennt werden und nicht wie standardmäßig eingestellt durch Leerstellen.</p>
<p>&nbsp;</p>
<p><code> karyotype = /var/www/circos/blog/knoten.txt<br />
</code><br />
Bindet die Datei mit den Chromosomen ein.</p>
<p>&nbsp;</p>
<p><code> &lt;colors&gt;</code></p>
<p>green = 0,255,0</p>
<p>red = 255,0,0</p>
<p>&lt;/colors&gt;</p>
<p>Hier werden benötigte Farben definiert (in RGB).</p>
<p>&nbsp;</p>
<p><code> &lt;plots&gt;<br />
&lt;plot&gt;<br />
min = 0<br />
max = 12<br />
color = black<br />
file = /var/www/circos/blog/diagram.txt<br />
thickness = 2<br />
fill_under = yes<br />
r0 = 0.87r<br />
show = yes<br />
r1 = 0.97r<br />
fill_color = blue<br />
type = histogram<br />
extend_bin = no<br />
&lt;backgrounds&gt;<br />
&lt;background&gt;<br />
color = vlgrey<br />
&lt;/background&gt;<br />
&lt;/backgrounds&gt;<br />
&lt;axes&gt;<br />
color = black_a4<br />
thickness = 1<br />
&lt;axis&gt;<br />
spacing = 0.25r<br />
&lt;/axis&gt;<br />
&lt;/axes&gt;<br />
&lt;/plot&gt;<br />
&lt;/plots&gt;<br />
</code><br />
In diesem Abschnitt werden spezifische Eigenschaften des Balkendiagramm eingestellt. Eine Auflistung von diesen Parameter findet ihr in den <a href="http://circos.ca/tutorials/lessons/" target="_blank">Circos Tutorials</a>.</p>
<p>&nbsp;</p>
<p>Die Ausgabe von Circos sieht dann so aus:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/09/ausgabe.png"><img class="size-medium wp-image-1770 alignnone" title="Circos Ausgabe" src="http://ddiupbblogs.files.wordpress.com/2012/09/ausgabe.png?w=300&#038;h=300" alt="" width="300" height="300" /></a></p>
<p>Und nachdem wir den dummy Teil weggeschnitten haben, bleibt noch übrig:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/09/ausgabe_cut.png"><img class="alignnone size-medium wp-image-1771" title="Circos Ausgabe beschnitten und gedreht" src="http://ddiupbblogs.files.wordpress.com/2012/09/ausgabe_cut.png?w=300&#038;h=163" alt="" width="300" height="163" /></a><a href="http://ddiupbblogs.files.wordpress.com/2012/09/ausgabe_cut.pdf"><br />
</a></p>
<p>Gerade wenn man darüber nachdenkt, dass man diese Diagramme ja nun mit allen weiteren Möglichkeiten von Circos kombinieren kann (links, etc) ist dies doch schon sehr flexibel und mächtig. Alle benötigten Konfigurationsdateien könnt ihr <a href="https://dl.dropbox.com/u/3036480/permanent/blog.tar.gz" target="_blank">hier</a> runterladen.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/tools/'>tools</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/balkendiagramme/'>Balkendiagramme</a>, <a href='http://ddiupbblogs.wordpress.com/tag/circos/'>Circos</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gexfvizz/'>GEXFVizz</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1767/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1767&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/09/05/gexfvizz-kreisrunde-balkendiagramme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/ausgabe.png?w=300" medium="image">
			<media:title type="html">Circos Ausgabe</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/09/ausgabe_cut.png?w=300" medium="image">
			<media:title type="html">Circos Ausgabe beschnitten und gedreht</media:title>
		</media:content>
	</item>
		<item>
		<title>GexfVizz &#8211; Über JUnit und Testfälle</title>
		<link>http://ddiupbblogs.wordpress.com/2012/08/20/gexfvizz-uber-junit-und-testfalle/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/08/20/gexfvizz-uber-junit-und-testfalle/#comments</comments>
		<pubDate>Mon, 20 Aug 2012 11:42:53 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[GEXFVizz]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java servlet]]></category>
		<category><![CDATA[JUnit]]></category>
		<category><![CDATA[test-driven]]></category>
		<category><![CDATA[Testfälle]]></category>
		<category><![CDATA[Tests]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1763</guid>
		<description><![CDATA[Nachdem nun der „Circos Teil“ meiner Bachelorarbeit soweit abgeschlossen ist (von ein paar Kleinigkeiten mal abgesehen) bin ich nun in den Bereich des Testens übergegangen. Mit anderen Worten beschäftige ich mich aktuell mit JUnit 4 und in wie weit man dies in meinem Projekt sinnvoll einsetzen kann. In der Theorie ist es natürlich einfach für [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1763&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Nachdem nun der „Circos Teil“ meiner Bachelorarbeit soweit abgeschlossen ist (von ein paar Kleinigkeiten mal abgesehen) bin ich nun in den Bereich des Testens übergegangen. Mit anderen Worten beschäftige ich mich aktuell mit <a href="http://junit.sourceforge.net">JUnit</a> 4 und in wie weit man dies in meinem Projekt sinnvoll einsetzen kann.</p>
<p><span id="more-1763"></span></p>
<p>In der Theorie ist es natürlich einfach für jede öffentliche Methode einen oder mehrere Testfälle zu erzeugen, um dann mit Hilfe von JUnit die gesamte Anwendung komplett automatisiert durchtesten zu können. Nun wird eigentlich mein Back-end durch ein zwischengeschaltetes Java Servlet aufgerufen, welches zum Beispiel nur sehr schlecht mit JUnit testbar ist. Das liegt daran, dass es nur in einer relativ langen Methode die Parameter einließ, die über die REST Schnittstelle mitgegeben worden sind um dann die entsprechende Server Methode aufzurufen. Es gibt zwar Möglichkeiten um <a href="http://blog.roberthanson.org/2007/12/testing-servlets-with-junit.html">Servlets mit JUnit zu testen</a>, aber bisher konnte ich damit noch keine zufriedenstellenden Ergebnis erzielen. Insbesondere da ich nichts nur Strings, sondern teilweise auch Bilder zurückgebe. Wie in dem verlinkten Blogeintrag aber deutlich wird, ist es möglich HTTP Anfragen zu simulieren:</p>
<p><code><br />
HttpClient client = new HttpClient();<br />
PostMethod post = new PostMethod(url);<br />
post.setQueryString(queryString);<br />
client.executeMethod(post);<br />
result = post.getResponseBodyAsString();<br />
post.releaseConnection();<br />
</code></p>
<p>&nbsp;</p>
<p>Dies ist auf jeden Fall schon mal ein wichtiger Anfang, löst aber, wie bereits erwähnt, nicht alle Probleme mit JUnit und meinem Servlet.Nun lassen sich zum Glück diese Teile des zwischengeschalteten Servlet einigermaßen leicht „von Hand“ testen, da ich nur etwa Zehn Parameter habe; aber eine optimalen Lösung ist das leider (noch) nicht.</p>
<p>Ansonsten bestehen große Teile des Back-ends aus privaten Methoden, die ich auch nicht direkt testen kann (da ich eigentlich nicht auf eingebettete Test-Klassen zurückgreifen möchte). Allerdings kann man wohl davon ausgehen, dass wenn ich korrekte Testergebnisse auf der öffentlichen Schnittstelle erziele, dass dann auch die privaten Methoden korrekt funktioniert haben, da diese von den öffentlichen aufgerufen worden sind.</p>
<p>Nun möchte ich im Folgenden noch einmal ganz kurz beschreiben wie so ein JUnit-Test überhaupt aufgebaut ist. Als erstes sollte man die JUnit.jar zu seinem Java buildpath hinzufügen, danach kann man eine Test Klasse erzeugen, welche die einzelnen Tests enthält. Das Ganze kann dann zum Beispiel so aussehen:</p>
<p><code><br />
public class Tests {<br />
@Test public void testGenerateCircos() throws RemoteException{<br />
Server serv = new Server();<br />
String result = serv.getCircosPath(Settings.APACHE_PATH + "data/e77b1839e8f031e3b6ead6dfe067757d948269d77a2f50f6ff2fcb6858d6ef0e.gexf", "cc", 10);<br />
String expected = "circos/gfx/1af0b2e56edd8bd30effc4ea8eeca098b3e7c96791d054bb4435d30f064584bf_cc_10.png";<br />
assertTrue(expected.equals(result));<br />
}<br />
}<br />
</code></p>
<p>Nun kann man also in dieser Testklasse beliebig viele automatisierte Testfälle ablegen und später mit dieser Klasse die Tests ausführen. Die Tests geben danach Rückmeldung über die erfolgreichen und fehlgeschlagenen Testfälle. Abgesehen von den oben angesprochenen Ausnahmen, funktioniert dieses Verfahren auch sehr gut und ist unglaublich hilfreich :)</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/tools/'>tools</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/gexfvizz/'>GEXFVizz</a>, <a href='http://ddiupbblogs.wordpress.com/tag/java/'>java</a>, <a href='http://ddiupbblogs.wordpress.com/tag/java-servlet/'>java servlet</a>, <a href='http://ddiupbblogs.wordpress.com/tag/junit/'>JUnit</a>, <a href='http://ddiupbblogs.wordpress.com/tag/test-driven/'>test-driven</a>, <a href='http://ddiupbblogs.wordpress.com/tag/testfalle/'>Testfälle</a>, <a href='http://ddiupbblogs.wordpress.com/tag/tests/'>Tests</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1763/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1763&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/08/20/gexfvizz-uber-junit-und-testfalle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>
	</item>
		<item>
		<title>Gültigkeitsprüfung von JSON-Datensätzen mittels JSON Schema</title>
		<link>http://ddiupbblogs.wordpress.com/2012/08/05/gultigkeitsprufung-von-json-datensatzen-mittels-json-schema/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/08/05/gultigkeitsprufung-von-json-datensatzen-mittels-json-schema/#comments</comments>
		<pubDate>Sun, 05 Aug 2012 17:17:58 +0000</pubDate>
		<dc:creator>dmmeiners</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[adore]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json schema]]></category>
		<category><![CDATA[validierung]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xml schema]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1750</guid>
		<description><![CDATA[Im Rahmen meiner Bachelorarbeit &#8220;ADORE&#8221; beschäftige ich mich u.a. mit der Gültigkeitsprüfung von JSON-Datensätzen. In meinem letzten Blogpost gab es ja schon ein paar JSON Datensätze zu sehen und was meine Anwendung daraus für Graphen erstellt. Natürlich sollte man als gewissenhafter Programmierer niemals Eingabedaten blind vertrauen. Glücklicherweise gibt es JSON Schema – genau wie man [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1750&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Im Rahmen meiner Bachelorarbeit &#8220;<a href="http://ddiupbblogs.wordpress.com/tag/adore/">ADORE</a>&#8221; beschäftige ich mich u.a. mit der Gültigkeitsprüfung von JSON-Datensätzen. In meinem letzten <a href="http://ddiupbblogs.wordpress.com/2012/07/05/adore-wird-sichtbar/">Blogpost</a> gab es ja schon ein paar JSON Datensätze zu sehen und was meine Anwendung daraus für Graphen erstellt. Natürlich sollte man als gewissenhafter Programmierer niemals Eingabedaten blind vertrauen. Glücklicherweise gibt es <a href="http://json-schema.org/">JSON Schema</a> – genau wie man XML-Instanzdokumente mittels XML Schema auf Gültigkeit prüfen kann, geht dies auch mit JSON. JSON Schemata werden selbst in JSON notiert und erlauben es, verschiedene Einschränkungen zu formulieren, z.B. dass bestimmte Properties eines Objekts einen bestimmten Datentyp haben müssen.<span id="more-1750"></span> Das kann z.B. so aussehen:</p>
<pre>"paths":
        {
            "type": "array",
            "description": "This array joins edges to paths.",
            "required": true,
            "items":
            {
                "type": "object",
                "properties":
                {
                    "id":
                    {
                        "type": "string",
                        "required": true,
                        "description": "A unique ID for this path."
                    },
                    "edges":
                    {
                        "type": "array",
                        "description": "This array holds all the edges (specifically references to the IDs of the edges) belonging to this path.",
                        "additionalItems": false,
                        "items": { "$ref": "edgeType" }
                    }
                }
            }
        }</pre>
<p>Hier wird ein Pfad beschrieben, der aus mehreren Kanten (<code>"edges"</code>) besteht – die Beschreibung einer einzelnen Kante wird hier per Verweis eingebunden. Weiter oben in der Datei, hier nicht sichtbar, steht dann die Definition von <code>"edgeType"</code>. Dieses Verfahren nennt man dann JSON Referencing – und hier fangen leider ein paar kleine Schwiereigkeiten an. Denn: Erstens, ist JSON Schema bis jetzt nur ein <a href="http://tools.ietf.org/html/draft-zyp-json-schema-03">IETF Draft</a> und es gibt genau einen <a href="https://github.com/garycourt/JSV">vernünftigen Validator</a>, der JSON Schema inkl. Referencing beherrscht. Leider löst dieser die Referenzen auch dann wirklich nur innerhalb von Schemata auf, benutzt man Verweise innerhalb eines JSON (Instanz-)dokumentes, kann man erstmal lange nach einem JSON Parser suchen, der JSON Referencing beherrscht. Glücklicherweise gibt es <a href="https://github.com/tvongaza/jQueryJSONRef">einen solchen</a> aber.</p>
<p>Obwohl ich so meine Schwierigkeiten mittlerweile in den Griff kriegen konnte, verbleibt doch so etwas wie ein übler Nachgeschmack. JSON mag ein einfaches Datenformat sein, das für viele Zwecke klar XML vorzuziehen ist. (Um mal die offensichtlichste Alternative zu nennen.) Kommt man jedoch in den Bereich Validierung, bleibt es nicht aus, das man sich fast nach XML Schema sehnt. Mittlerweile wurde auch eine <a href="https://github.com/kripken/xml.js">leistungsfähige XML-Bibliothek nach JavaScript portiert</a>.</p>
<p>Das Problem scheint mir in der Philosophie von JSON zu liegen. JSON war schon immer als einfaches Datenformat geplant gewesen und die Anforderung, aufwändige Gültigkeitsprüfungen durchzuführen war hier nicht vorgesehen. Bedenkt man die geringe Auswahl an JSON Referencing-fähigen Parsern und den Fakt, dass am IETF Draft zu JSON Schema seit fast 2 Jahren keine Erweiterungen oder Veränderungen vorgenommen wurden, hat man das Gefühl, dass JSON Schema eine &#8220;Nische&#8221; bleibt.</p>
<p>Ein weiteres Problem ist natürlich dass manche API im Internet nur als JSON oder nur als XML zu haben ist. Wie hat schon ein anderer schlauer Mensch gesagt: &#8220;Das gute an Standards ist, dass es so viele davon gibt.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/adore/'>adore</a>, <a href='http://ddiupbblogs.wordpress.com/tag/json/'>json</a>, <a href='http://ddiupbblogs.wordpress.com/tag/json-schema/'>json schema</a>, <a href='http://ddiupbblogs.wordpress.com/tag/validierung/'>validierung</a>, <a href='http://ddiupbblogs.wordpress.com/tag/xml/'>xml</a>, <a href='http://ddiupbblogs.wordpress.com/tag/xml-schema/'>xml schema</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1750/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1750/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1750&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/08/05/gultigkeitsprufung-von-json-datensatzen-mittels-json-schema/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3d1aca5227a01ee70023d2b2bb7087f1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dmmeiners</media:title>
		</media:content>
	</item>
		<item>
		<title>Diagramme in Latex mit pgfplots</title>
		<link>http://ddiupbblogs.wordpress.com/2012/08/05/diagramme-in-latex-mit-pgfplots/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/08/05/diagramme-in-latex-mit-pgfplots/#comments</comments>
		<pubDate>Sun, 05 Aug 2012 16:54:15 +0000</pubDate>
		<dc:creator>rolwi</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[diagramm]]></category>
		<category><![CDATA[ELISMA]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[pgfplots]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1747</guid>
		<description><![CDATA[Ich habe mich in den letzten Wochen nebenher mit der Darstellung von Diagrammen in Latex beschäftigt. Schnell stößt man hier auf pgfplots und damit auch auf zahlreiche Beispiele. Am umfangreichsten ist die Dokumentation zu pgfplots selber mit 378 Seiten. Mit den Diagrammen möchte ich im Wesentlichen das Verhältnis zwischen erzeugter Last und dem Verhalten von [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1747&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ich habe mich in den letzten Wochen nebenher mit der Darstellung von Diagrammen in Latex beschäftigt. Schnell stößt man hier auf <a href="http://pgfplots.sourceforge.net/">pgfplots</a> und damit auch auf zahlreiche Beispiele. Am umfangreichsten ist die <a title="PGFPlots Manual" href="http://pgfplots.sourceforge.net/pgfplots.pdf" target="_blank">Dokumentation zu pgfplots</a> selber mit 378 Seiten. Mit den Diagrammen möchte ich im Wesentlichen das Verhältnis zwischen erzeugter Last und dem Verhalten von unterschiedlich konfigurierten Systemen darstellen. <span id="more-1747"></span>Bisher erscheinen mir Darstellungen, wie sie im <a title="GEXF Vizz – Warum Diagramme nicht langweilig sein sollten" href="http://ddiupbblogs.wordpress.com/2012/08/01/gexf-vizz-warum-diagramme-nicht-immer-langweilig-sein-sollten/">letzten Blogbeitrag</a> genannte werden weniger Sinnvoll für meine Zwecke.</p>
<p>Mir hat sich recht schnell gezeigt, dass das Erstellen bestimmter Diagramme nicht so einfach ist, sobald man von den Beispielen ein wenig abrückt. Eine wichtige Voraussetzung ist eine aktuelle Version von TeX Live (unter Debian in meinem Fall). Die kurzzeitige Arbeit an einem aktuellen Ubuntu-System mit installiertem TeX Live 2009 (aktuelle Version unter Ubuntu) hat mich zwischenzeitlich einige Nerven gekostet, da sich Darstellung und Syntax in einigen wenigen Punkten unterscheiden. Außerdem ist die Version im Latex-Dokument zwecks Abwärskompatibilität anzugeben, damit die Darstellung auch bei neueren Versionen noch passt. Der Standard ist allerdings nicht die neuste Version, so dass diese explizit angegeben werden muss. Hier gibt es gravierende Unterschiede wie ich beim Vergleich zwischen TeX Live 2009 und 2012 feststellen musste.</p>
<p>Der Grund, Graphen mit pgfplots zu erstellen ist zum einen die Einheitlichkeit und zum anderen die direkte Integration. Außerdem können Diagramme mit der Änderung weniger Parameter in ihrer Darstellung schnell angepasst werden. Das Diagramm, was ich erstellt habe, besteht lediglich aus zwei Kurven, die das Verhältnis zwischen Last und Kapazität zeigen. Einiges habe ich aus der Dokumentation erfahren, anderes im Internet gefunden. Meine begrenzten, aber bislang ausreichenden Kenntnisse in Latex haben mich hier nicht sehr weit gebracht. Die meiste Zeit habe ich damit verbracht, herauszufinden, welche Konstukte es gibt und welche zielführend sind.</p>
<p>Das folgende Beispieldiagramm hätte ich mit einem Grafikprogramm in einem Bruchteil der Zeit erstellen können. Die Darstellung von Werten aus Lasttests würde allerdings mit einem Grafikprogramm schwierig, mit pgfplots ist es hingegen ein Kinderspiel. Das Diagramm in der Abbildung ist ziemlich einfach gehalten und zeigt das Verhältnis zwischen bereitgestellten Ressourcen und der Last die erzeugt wird. Mit <em>Underprovisioning</em> gekennzeichnet sind die Teile, in der die Last größer ist als die bereitgestellten Ressourcen. Das kann dann zum Beispiel einen Ausfall oder eine Verlangsamung des Systems zur Folge haben. Als Pendant hierzu habe ich Diagramme erstellt, die eine dynamische Bereitstellung von Resourcen zeigen, um möglichst wenig <em>Overprovisioning</em> und gar kein <em>Underprovisioning</em> zu erhalten.</p>
<div id="attachment_1752" class="wp-caption aligncenter" style="width: 500px"><a href="http://ddiupbblogs.files.wordpress.com/2012/08/screenshot-08052012-033835-pm.png"><img class="size-full wp-image-1752" title="Diagramm zu Over- und Underprovisioning" src="http://ddiupbblogs.files.wordpress.com/2012/08/screenshot-08052012-033835-pm.png?w=490&#038;h=398" alt="Diagramm zu Over- und Underprovisioning" width="490" height="398" /></a><p class="wp-caption-text">Diagramm zu Over- und Underprovisioning</p></div>
<p>Hier der Latex-Code:</p>
<p><pre class="brush: latex;">
\begin{tikzpicture}
 \pgfdeclarepatternformonly{north east lines wide}
  {\pgfqpoint{-1pt}{-1pt}}
  {\pgfqpoint{10pt}{10pt}}
  {\pgfqpoint{9pt}{9pt}}
  {
   \pgfsetlinewidth{1.4pt}
   \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
   \pgfpathlineto{\pgfqpoint{9.1pt}{9.1pt}}
   \pgfusepath{stroke}
  }

 \pgfdeclarepatternformonly{north west lines wide}
  {\pgfqpoint{-1pt}{-1pt}}
  {\pgfqpoint{10pt}{10pt}}
  {\pgfqpoint{9pt}{9pt}}
  {
   \pgfsetlinewidth{1.4pt}
   \pgfpathmoveto{\pgfqpoint{0pt}{9.1pt}}
   \pgfpathlineto{\pgfqpoint{9.1pt}{0pt}}
   \pgfusepath{stroke}
  }

 \begin{axis}[
  legend style={
   at={(0.97,0.97)},
   anchor=north east,
   },
  area legend,
  ticks=none,
  smooth,
  xlabel={Zeit},
  ylabel={Resourcen / Auslastung},
  stack plots=y,
  area style,
  enlarge x limits=false,
  ]

  \draw[-,very thick](axis cs:1, 4.5)--(axis cs:2, 4.5)node[right]{\footnotesize{Underprovisioning}};
  \draw[-,very thick](axis cs:5,3.7)--(axis cs: 3,4.4);
  \draw[-,very thick](axis cs:2.7,3.3)--(axis cs: 2.7,3.7)node[above]{\footnotesize{Overprovisioning}};

  \addplot+[
   draw=blue,
   pattern=north east lines wide,
   pattern color=red!60!white
   ]
   coordinates
   {(0,2) (1,5) (2,3) (3,3) (4,2) (5,4) (6,2) (7,3)}
   \closedcycle;

  \addplot[mark=none,
   draw=red,
   pattern=north west lines wide,
   stack plots=false,
   area legend,
   pattern color=green!60!white
   ]
   coordinates
   {(0,3.5) (1,3.5) (2,3.5) (3,3.5) (4,3.5) (5,3.5) (6,3.5) (7,3.5)}
   \closedcycle;
  \legend{
   Auslastung,
   Kapazität,
   }
 \end{axis}
\end{tikzpicture}
</pre></p>
<p>Hifreich:</p>
<ul>
<li><a href="http://tex.stackexchange.com/">StackExchange</a></li>
<li><a href="http://sourceforge.net/projects/pgfplots/">pgfplots auf sourceforge.net</a></li>
</ul>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/tools/'>tools</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/diagramm/'>diagramm</a>, <a href='http://ddiupbblogs.wordpress.com/tag/elisma/'>ELISMA</a>, <a href='http://ddiupbblogs.wordpress.com/tag/graph/'>graph</a>, <a href='http://ddiupbblogs.wordpress.com/tag/latex/'>latex</a>, <a href='http://ddiupbblogs.wordpress.com/tag/pgfplots/'>pgfplots</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1747/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1747&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/08/05/diagramme-in-latex-mit-pgfplots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d5633bb2dfe72735b83b28fe28713bb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rolwi</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/08/screenshot-08052012-033835-pm.png" medium="image">
			<media:title type="html">Diagramm zu Over- und Underprovisioning</media:title>
		</media:content>
	</item>
		<item>
		<title>GEXF Vizz &#8211; Warum Diagramme nicht langweilig sein sollten</title>
		<link>http://ddiupbblogs.wordpress.com/2012/08/01/gexf-vizz-warum-diagramme-nicht-immer-langweilig-sein-sollten/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/08/01/gexf-vizz-warum-diagramme-nicht-immer-langweilig-sein-sollten/#comments</comments>
		<pubDate>Wed, 01 Aug 2012 18:34:47 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Awareness]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Circos]]></category>
		<category><![CDATA[colors]]></category>
		<category><![CDATA[GEXF Vizz]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1739</guid>
		<description><![CDATA[Mittlerweile habe ich den &#8220;Circos Teil&#8221; meiner Webanwendung beinahe vollständig erledigt und möchte deswegen zum Abschluss der Blogposts über Circos ein wenig abschweifen und über die Auswirkungen von Circos und den dazugehörigen Visualisierung reden, die meiner Meinung nach eine große Rolle spielen. Hin und wieder findet man ja mal sehr gut aussehende Infografiken die den [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1739&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Mittlerweile habe ich den &#8220;Circos Teil&#8221; meiner Webanwendung beinahe vollständig erledigt und möchte deswegen zum Abschluss der Blogposts über Circos ein wenig abschweifen und über die Auswirkungen von Circos und den dazugehörigen Visualisierung reden, die meiner Meinung nach eine große Rolle spielen.</p>
<p>Hin und wieder findet man ja mal sehr gut aussehende Infografiken die den Betrachter irgendwie direkt in ihren Bann ziehen (weil sie in ihrem Design aus der Menge heraus stechen uns etwas neues bieten; einen Anreiz, dass man diese Grafik sehen möchte) und man einfach unbedingt wissen möchte was man in dieser Grafik an Information findet. Spontan würde mir dabei zum Beispiel diese beiden Grafiken einfallen:<br />
<span id="more-1739"></span><br />
&nbsp;</p>
<p><a href="http://static.colourlovers.com.s3.amazonaws.com/uploads/images/top-web-brand-colors.html">Colors of the web</a> und die <a href="http://www.flowtown.com/blog/the-2010-social-networking-map?display=wide">2010 Social Networking Map</a>.</p>
<p>Natürlich gehört zum Erzeugen von solchen Grafiken eigentlich relativ viel Talent, Erfahrung in diesem Bereich und Zeit. Häufig ist es nun allerdings meiner Erfahrung nach so, dass gerade bei Wissenschaftlern die letzten beiden Aspekte ein wenig zu kurz kommen. Die Wissenschaftler haben in der Regel keine Zeit um sich großartig mit dem Design von ihren Grafiken zu beschäftigen und daraus folgt, dass sie auch nicht viel Erfahrung darin haben solche Infografiken zu erzeugen. Dadurch kostet das Erzeugen von schönen herausstechenden Infografiken noch mehr Zeit und die Menge von ebensolchen wird noch kleiner. Es entstehen die typischen mehr oder weniger langweiligen, einfachen Diagramme die vermutlich jeder von uns schon 1000 mal gesehen hat und von denen ich deswegen hier keine weiteren Beispiele zeigen möchte ;-)</p>
<p>Darüber hinaus werden häufig Statistiken einfach in Form Tabellen dargelegt. Das ist wichtig und richtig, da eine Tabelle keinerlei Verfälschungen der Daten oder irgendwelche Ungenauigkeiten erzeugt. Das Problem ist allerdings meiner Meinung nach, dass Statistiken auch für die &#8220;breite Masse&#8221; sehr interessant sein könnten; hier sage ich deswegen könnten, da sich vermutlich die wenigsten nach 12 stündigen Arbeitstagen abends auf ihr Sofa setzen um dann noch eine Statistik aus einer Tabelle mit 35 Zeilen und 27 Spalten auf irgendwelche Zusammenhänge zu durchforsten.</p>
<p>Und das kann ihnen niemand übel nehmen.</p>
<p>Aber wie ich festgestellt habe, bietet Circos die Möglichkeit sehr einfach automatisch aus Graphen und/oder Tabellen sehr coole (bildlich ansprechende) Diagramme zu erzeugen und dabei muss der Benutzer definitiv kein Grafiker oder Designer sein (Anmerkung: Grafiken die „von Hand“ durch solche Personengruppen erzeugt werden, sind natürlich in der Regel noch etwas wertvoller, da sie einfach individueller und durchdachter sind). Man kann, grob ausgedrückt, die Daten im Prinzip direkt als eine, auf eine bestimmte Art und Weise sortierte, csv Datei in Circos werfen und der Rest wird von der Anwendung erledigt.</p>
<p>Aber kommen wir mal zu einem Beispiel:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/08/degree_circos_coauth_0612_t35.png"><img class="alignleft size-medium wp-image-1742" title="degree_circos_coauth_0612_t35" src="http://ddiupbblogs.files.wordpress.com/2012/08/degree_circos_coauth_0612_t35.png?w=300&#038;h=300" alt="Circos Visualisierung" width="300" height="300" /></a></p>
<p>Ich habe hier eine Circos Visualisierung von einem co-authorship Graphen, der die höchsten 35 co-authorships im Zeitraum von 2006 &#8211; 2012 zeigt. Zudem bildet der orange Ring die &#8216;degree centrality&#8217; ab (als relativen Wert) und das blaue Histogramm zeigt die Anzahl von co-authorships pro Jahr (als absoluten Wert). D.h., um noch mal auf mein Argument mit der Statistik zurückzukommen, reden wir an dieser Stelle über eine Datenmatrix mit 35 × 35 Einträgen (für die Verbindungen) plus Tabellen, die die anderen Ringe abbilden. Wenn man sich das vor Augen führt, finde ich es schon ziemlich beeindruckend, wie viele Informationen man in diese eine Grafik einfügen kann; obwohl sie einigermaßen übersichtlich bleibt (vielleicht mit etwas Übung, wie die Grafik zu lesen ist).</p>
<p>Eine solche Grafik ließe sich auch publizieren und es bestünde zumindest die Chance, dass Leute außerhalb von rein wissenschaftlichen Kreisen sich diese einmal ansehen. Bei der Datenmatrix und den Tabellen würde ich diese Chance leider nicht sehen. So gesehen ist es sicherlich kein Zufall, dass die Wired im vorletzten Jahr Circos nutzte um eine große Grafik zu erzeugen, die die Beziehungen <a href="http://www.wired.com/magazine/2010/04/ff_lost/5/">aller Charaktere aus Lost </a>zueinander zeigte.</p>
<p>&nbsp;</p>
<p>Um den Text also noch einmal in einem Satz zusammenzufassen:</p>
<p>Passende und intuitive Datenvisualisierung ist meiner Meinung nach wichtig und Circos hilft einem massiv bei der Erzeugung von eben solchen Diagrammen.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/awareness-themen/'>Awareness</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-media-themen/'>Social Media</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/circos/'>Circos</a>, <a href='http://ddiupbblogs.wordpress.com/tag/colors/'>colors</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gexf-vizz/'>GEXF Vizz</a>, <a href='http://ddiupbblogs.wordpress.com/tag/social-networking/'>Social Networking</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1739/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1739&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/08/01/gexf-vizz-warum-diagramme-nicht-immer-langweilig-sein-sollten/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/08/degree_circos_coauth_0612_t35.png?w=300" medium="image">
			<media:title type="html">degree_circos_coauth_0612_t35</media:title>
		</media:content>
	</item>
		<item>
		<title>Masterarbeit: Near Copy Detection in large text corpora (ODIN): Optimieren einer MapReduce Jobkette oder Datenstrukturen, Datenstrukturen, Datenstrukturen und an die Algorithmen denken!</title>
		<link>http://ddiupbblogs.wordpress.com/2012/07/29/masterarbeit-near-copy-detection-in-large-text-corpora-odin-optimieren-einer-mapreduce-jobkette-oder-datenstrukturen-datenstrukturen-datenstrukturen-und-an-die-algorithmen-denken/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/07/29/masterarbeit-near-copy-detection-in-large-text-corpora-odin-optimieren-einer-mapreduce-jobkette-oder-datenstrukturen-datenstrukturen-datenstrukturen-und-an-die-algorithmen-denken/#comments</comments>
		<pubDate>Sun, 29 Jul 2012 19:56:36 +0000</pubDate>
		<dc:creator>shabazza</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Learning Analytics]]></category>
		<category><![CDATA[People Tagging]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1716</guid>
		<description><![CDATA[Ich habe in letzter Zeit einen Algorithmus zur near copy detection (NCD) in MapReduce für Apache Hadoop implementiert und dabei erst richtig gelernt, was es eigentlich heißt, mit Big Data umzugehen. Ich habe den Algorithmus mittlerweile das dritte mal implementiert und unzählige (&#62; 100) Versionen, in denen immer wieder Optimierungen eingeflossen sind, erstellt. Hier ein kleine [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1716&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ich habe in letzter Zeit einen Algorithmus zur near copy detection (NCD) in MapReduce für Apache Hadoop implementiert und dabei erst richtig gelernt, was es eigentlich heißt, mit Big Data umzugehen. Ich habe den Algorithmus mittlerweile das dritte mal implementiert und unzählige (&gt; 100) Versionen, in denen immer wieder Optimierungen eingeflossen sind, erstellt. Hier ein kleine Geschichte von Datenstrukturen und Algorithmen und vielen vielen Daten.</p>
<p>Ich teste meinen Algorithmus mit einem Satz von Testdaten, der 230.000 verschiedene Sätze und 124.000 verschiedene Worte umfasst. Der Algorithmus ist eine Implementierung von Fuzzysets, die die Ähnlichkeit zwischen Sätzen berechnen. Der erste Schritt ist für jeden Satz der gegen den Hintergrundkorpus geprüft werden soll einen Liste an Zielsätze zu finden, die eine gewisse Ähnlichkeit zum Quellsatz haben, um nicht den Quellsatz gegen alle Sätze des Korpus prüfen zu müssen. Hierfür baue ich eine Lookuptabelle auf, in der alle Worte auf die Sätze abgebildet sind die sie enthalten, also ein inverser Index. Hiermit können alle Sätze ermittelt werden, die z.B. zumindest ein Wort mit dem Quellsatz gemein haben. Der nächste Schritt umfasst das Holen der Zielsätze und die Berechnung der Ähnlichkeiten zum Quellsatz. Hierfür habe ich eine Tabelle die die Termfrequenzen für alle Sätze enthält. Die Sätze haben als ID einen MD5Hash über die alphabetisch geordnete Menge der Worte des Satzes (&#8220;Das ist ein Haus und ein Auto&#8221; = MD5Hash (autodaseineinhausistund)). Dies garantiert eindeutige Hashes, da die Anordnung der Worte für Fuzzyset unwichtig ist. Als letzter Schritt sollen die Ergebnisse weggeschrieben werden. Die drei Version des Algroithmuses unterscheiden sich hauptsächlich in der Anzahl und der Funktion der MapReduce Jobs. Waren es in der erst noch drei Jobs, so waren es in der zweiten 9 und in der dritten vier. Die Ausführungszeiten und die Größe der Zwischenergebnisse unterscheiden sich in den drei Versionen drastisch, so variierte die Ausführungszeit auf meinem Testsatz zwischen 2 Stunden in der dritten Version und &gt;16Stunden in der zweiten. Auch die Größe der Zwischenergebnisse variierte drastisch. In der zweiten Version ca. 6Tb und in der dritten &lt;3Gb.</p>
<p>Ein paar Kleinigkeiten die ich schmerzlich gelernt habe stehen unter den Motto &#8220;Datenstrukturen, Datenstrukturen, Datenstrukturen und an die Algorithmen denken!&#8221;. Einige Beispiele werden im Folgenden näher erläutert:</p>
<p><strong>Datenstrukturen 1<br />
</strong>Was der Begriff BigData bedeutet, habe ich festgestellt als ich darüber nachdachte, ob ich ein Integer sparen sollte oder ob ich mir den Luxus gönne. :-) (Ich fühlte mich in die Zeit versetzt als man beim 386er jedes Byte im untern Speicherbereich gespart hat um ein bestimmtes Spiel zu starten können). Hierbei ging es um die Frage, wie ich die md5 Hashes meiner Satzids speichern sollte. Hadoop stellt ein Objekt zur Speicherung von dynamisch langen Bytearrays zur Verfügung (BytesWritable). Nach meiner ersten Implementierung der Kandidatenauswahl hatte ich 3Mrd Vergleiche von Satzpaaren, was sich in 6Mrd. Ids niederschlägt. Das ByteWirtable speichert einen Integerwert für die Länge des Bytearray und das Array an sich. Da die Länge bei md5 aber fix mit 16Byte ist, sind die 4Byte für das Längenint überflüssig. Ein anderes Objekt von Hadoop, MD5HashWritable, speichert nur ein Bytearray, mit der fixen Größe von 16Byte. Das macht 25% Overhead (24Gb) bei 96GB für die ids. Es lohnt sich über die Datenstrukturen nachzudenken, denn ein gespartes Int kann mal schnell drei DVDs ausmachen.</p>
<p><strong>Datenstrukturen 2</strong><br />
Ein weiteres Beispiel, warum es sinnvoll ist, eigene spezielle Datenstrukturen zu verwenden, anstatt von generischen, zeigt sich am Objekt MapWritable von Hadoop. Es ist zwar praktisch ein Objekt zu haben in dem die verschiedensten Writables gespeichert werden können, aber im Fall von sehr vielen kleinen Elementen auch Nachteile mit sich bringen kann. Das MapWritable speichert für jedes Key und Value jedes Elements den Datentyp als fully qualified String. Wenn beispielsweise nur IntWritable&#8217;s gespeichert werden sollen, ergibt das einen Overhead von 800% (&#8220;org.apache.hadoop.io.IntWritable&#8221; = min. 32Byte gegen Integer=4byte). Auch dies kann durch eine spezialisierte Datenstruktur vermieden werden und vermindert die Datenmenge extrem.</p>
<p><strong>Datenstruktutren 3</strong><br />
Die Laufzeit des  Sort and Shuffle Prozess, zwischen Map und Reduce, wird maßgeblich durch die Menge der zu sortierenden Daten dominiert. In einer Version habe ich in der Map Phase die Kandidaten zu einem Quellsatz gesucht und dann die ids von Quell und Zielsatz zu einem 32Byte langen Bytearray kombiniert. Dieses Bytearray habe ich dann als Key zusammen mit einem leeren Value an die Reduce Phase gesendet. Das hat den Vorteil, dass eine totale Ordnung entstand. Der Nachteil bestand darin, dass viel Zeit zum Sortieren benötigt wurde.   Des Weiteren wurde die totale Ordnung auch nicht weiter benötigt. Hierbei werden dann 6Mrd. Elemente sortiert und geshuffelt, dann wird 6Mrd. mal die reduce Methode aufgerufen mit leeren iterable Values. Im Vergleich dazu, wenn nur die Quellid als key und die Zielids als Value zur Reduce Phase übertragen wird, fallen nur ca. 200.000 zu sortierende Elemente an und die reduce Methode wird auch nur 200.000 mal aufgerufen mit gefüllten iterable Values. Das brachte eine enorme Zeitersparnis, die mehrere Stunden umfasste.</p>
<p><strong>Algrithmen<br />
</strong>Bei meinem Ansatz hat sich herausgestellt, dass der Random Access auf die Lookupdaten in HBase die meiste Zeit beanspruchte. Hier gilt es noch eine bessere Lösung zu finden. Ich denke hier könnte PIG hilfreich sein. Auch zu große Zwischenergebnisse (Mehrere TByte) oder zu viel Sortierarbeit waren ein großes Hindernis. Schlussendlich kann ich sagen, dass ich aus den vielen Wochen der Optimierungsarbeit viel über die Funktionsweise von MapReduce gelernt habe und für den nächsten Algorithmus eine komplett andere Herangehensweise benutzen würde.</p>
<p><strong>PS.: </strong>BigData stimmt bei diesem Artikel auch für die Überschrift.:-)</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/android-technologien/'>Android</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/flash-technologien/'>Flash</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/learning-analytics/'>Learning Analytics</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1716/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1716&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/07/29/masterarbeit-near-copy-detection-in-large-text-corpora-odin-optimieren-einer-mapreduce-jobkette-oder-datenstrukturen-datenstrukturen-datenstrukturen-und-an-die-algorithmen-denken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9f86327686b87edb336131af8c23977a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shabazza</media:title>
		</media:content>
	</item>
		<item>
		<title>GEXFVizz: Über Netzwerke und Kreise (Circos)</title>
		<link>http://ddiupbblogs.wordpress.com/2012/07/18/gexfvizz-uber-netzwerke-und-kreise-circos/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/07/18/gexfvizz-uber-netzwerke-und-kreise-circos/#comments</comments>
		<pubDate>Wed, 18 Jul 2012 09:59:01 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Circos]]></category>
		<category><![CDATA[gephi]]></category>
		<category><![CDATA[GEXF]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1702</guid>
		<description><![CDATA[Wie vielleicht bereits letztes Mal herausgekommen ist, beschäftige ich mich im Moment relativ viel mit der Visualisierung von Circos Daten und dem Wandeln von ,normalen‘ Graphen in eben diese Circosvisualisierung. Nun ist es so, dass wir bei einer komplexeren Visualisierung mit Circos, auch eine große Menge an verschiedenen Informationen geboten bekommen und diese auf den ersten [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1702&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wie vielleicht bereits letztes Mal herausgekommen ist, beschäftige ich mich im Moment relativ viel mit der Visualisierung von <a href="http://circos.ca/">Circos</a> Daten und dem Wandeln von ,normalen‘ Graphen in eben diese Circosvisualisierung. Nun ist es so, dass wir bei einer komplexeren Visualisierung mit Circos, auch eine große Menge an verschiedenen Informationen geboten bekommen und diese auf den ersten Blick wirklich nichts mehr mit unseren typischen und bekannten Graphen gemein hat.</p>
<p><span id="more-1702"></span></p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/07/circos_komplex.png"><img class="alignnone size-thumbnail wp-image-1630" title="Eine sehr komplexe Visualisierung mit Circos" src="http://ddiupbblogs.files.wordpress.com/2012/07/circos_komplex.png?w=150&#038;h=147" alt="" width="150" height="147" /></a></p>
<p>Allerdings können wir diese ganzen optionalen Informationen erst einmal komplett entfernen und uns den Kern des Bildes näher ansehen:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/07/ideograms.png"><img class="size-medium wp-image-1704 alignleft" title="ideograms" src="http://ddiupbblogs.files.wordpress.com/2012/07/ideograms.png?w=300&#038;h=224" alt="" width="300" height="224" /></a></p>
<p>An diesen Punkt wird das Ganze schon ein wenig klarer, denn hier sind nur noch außen die Chromosomen aufgelistet (Circos ist eigentlich für biologische Visualisierung von Genomen gedacht, aus diesem Grund hat man in den Konfigurationsdateien auch eine entsprechende Terminologie), deren Größe einen Wert des Chromosoms darstellt. Zwischen diesen Chromosomen können wir jetzt Verbindungen ziehen; und an dieser Stelle bemerkt man bereits die doch ziemlich deutliche Ähnlichkeit zu den uns bekannten Graphen.</p>
<p>Somit habe ich mittels des <a href="https://gephi.org/toolkit/">Gephi Toolkits</a> eine Klasse programmiert, die die GEXF Datei einliest und sich die Knoten und Kanten aus dem Graphen ausliest. Die Idee ist nun, dass die Knoten in einem Graphen den Chromosomen in der entsprechenden Circosvisualisierung entsprechen und die Kanten innerhalb des Graphen die Verbindungen zwischen den Chromosomen darstellen. Somit ist hier sehr einfach eine direkte Übertragung von Graph zu Circos möglich.</p>
<p>Zum Beispiel werden die Knoten in einer entsprechenden <a href="http://circos.ca/documentation/tutorials/ideograms/karyotypes/">Datei</a> wie folgt definiert:<br />
chr &#8211; hs1 1 0 22</p>
<p>Damit meint man: „Dies ist ein Chromosom mit der id „hs1“, dem Label „1“ und der Länge 22. Einfach, oder ? In Bildern ausgedrückt entsteht auf diese Art und Weise automatisch aus folgendem Graphen</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/07/gexf.png"><img class="alignnone size-thumbnail wp-image-1706" title="Sigma.js Visualisierung" src="http://ddiupbblogs.files.wordpress.com/2012/07/gexf.png?w=150&#038;h=83" alt="" width="150" height="83" /></a></p>
<p>diese Visualisierung:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/07/circos.png"><img class="alignleft" title="Automatisch generierte Circos visualisierung" src="http://ddiupbblogs.files.wordpress.com/2012/07/circos.png?w=150&#038;h=150" alt="" width="150" height="150" /></a></p>
<p>Zudem kann man die Kantenstärken direkt wieder verwenden, da auch in Circos die Verbindung unterschiedlich breit sein können. Netterweise kann man so sehr einfach Attribute der Knoten mit auftragen, indem man zum Beispiel die Chromosomen unterschiedlich groß darstellt (in meinem Fall werden bei den Chromosomen zusätzlich verschiedene SNA Metriken bestimmt und in die Größe der Chromosomen eingerechnet).</p>
<p>Allerdings habe ich in diesem Bereich noch eine Menge Arbeit vor mir, da ich die Visualisierungen noch intuitiver und aussagekräftiger werden lassen möchte &#8230; :)</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/php/'>PHP</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/circos/'>Circos</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gephi/'>gephi</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gexf/'>GEXF</a>, <a href='http://ddiupbblogs.wordpress.com/tag/toolkit/'>Toolkit</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1702/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1702&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/07/18/gexfvizz-uber-netzwerke-und-kreise-circos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/circos_komplex.png?w=150" medium="image">
			<media:title type="html">Eine sehr komplexe Visualisierung mit Circos</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/ideograms.png?w=300" medium="image">
			<media:title type="html">ideograms</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/gexf.png?w=150" medium="image">
			<media:title type="html">Sigma.js Visualisierung</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/circos.png?w=150" medium="image">
			<media:title type="html">Automatisch generierte Circos visualisierung</media:title>
		</media:content>
	</item>
		<item>
		<title>ELISMA</title>
		<link>http://ddiupbblogs.wordpress.com/2012/07/17/elisma/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/07/17/elisma/#comments</comments>
		<pubDate>Tue, 17 Jul 2012 09:14:56 +0000</pubDate>
		<dc:creator>rolwi</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Applikationsplattform]]></category>
		<category><![CDATA[architektur]]></category>
		<category><![CDATA[Berechtigungsmechanismen]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Datenbanksysteme]]></category>
		<category><![CDATA[Datenmodell]]></category>
		<category><![CDATA[e-learning]]></category>
		<category><![CDATA[ELISMA]]></category>
		<category><![CDATA[lms]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[Nachhaltigkeit]]></category>
		<category><![CDATA[Skalierbarkeit]]></category>
		<category><![CDATA[wissensmanagement]]></category>
		<category><![CDATA[Zugriffssteuerung]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1691</guid>
		<description><![CDATA[Hallo, ich bin Rolf und werde in den nächsten Monaten hier schreiben, womit ich mich bei meiner Abschlussarbeit beschäftige. Meine Masterarbeit trägt den Titel Elastic Information Structuring for Multiple Applications – Design und Entwicklung einer skalierbaren Applikationsplattform durch Bereitstellung einer Datenzugriffsschicht. Das sieht dann folgendermaßen aus. Da das Architekturdiagramm und der Titel die Arbeit schon [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1691&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Hallo,</p>
<p>ich bin Rolf und werde in den nächsten Monaten hier schreiben, womit ich mich bei meiner Abschlussarbeit beschäftige. Meine Masterarbeit trägt den Titel <em>Elastic Information Structuring for Multiple Applications – Design und Entwicklung einer skalierbaren Applikationsplattform </em><em>durch Bereitstellung einer Datenzugriffsschicht</em>. Das sieht dann folgendermaßen aus.<span id="more-1691"></span></p>
<div id="attachment_1692" class="wp-caption aligncenter" style="width: 500px"><a href="http://ddiupbblogs.files.wordpress.com/2012/07/architektur_elisma.png"><img class="size-full wp-image-1692" title="ELISMA-Architekturdiagramm" src="http://ddiupbblogs.files.wordpress.com/2012/07/architektur_elisma.png?w=490&#038;h=314" alt="ELISMA-Architekturdiagramm" width="490" height="314" /></a><p class="wp-caption-text">ELISMA-Architekturdiagramm</p></div>
<p>Da das Architekturdiagramm und der Titel die Arbeit schon recht gut beschreiben, möchte ich auf meine Motivation eingehen, eine derartige Applikationsplattform zu erstellen. Details zur Konzeption folgen in weiteren Beiträgen.</p>
<p>Zu Beginn der Suche nach einem Thema für meine Abschlussarbeit, war eine Andriod- oder Webapplikation mein Ziel. Schnell stellte sich für mich allerdings heraus, dass zur Persistierung von Daten im Netz beziehungsweise &#8220;der Cloud&#8221; keine geeigneten Lösungen exisiteren, die meinen Anforderungen gerecht werden. Es gibt zwar Datenbanksysteme, wie CouchDB, die mit einer REST-Schnittstelle einfach zu handhaben sind, aber einen komplexen Aufbau einer Anwendung mit differenzierten Berechtigungsmechanismen genauso wenig erlaubt, wie andere Datenbanksysteme. Berechtigungsmechanismen werden in der Regel in der Applikationslogik oder einer Middleware behandelt. Das eigentliche Problem sehe ich darin, dass bei der Erstellung einer Applikation eine sichere Datenhaltung entworfen und implementiert werden muss und dadurch ein großer Teil der Zeit hierfür aufgewendet wird, anstatt für die Applikation an sich.</p>
<p>Der zweite Punkt ist, dass ein Datenmodell meist nur für eine Applikation erstellt wird. Dieses Vorgehen ist zwar effizient, um schnell ans Ziel zu gelangen, aber es ist auch kurzsichtig, wenn ein Datenmodell nur ein bestimmtes Szenario abdeckt und damit an Flexibilität verliert. Eine Erweiterung der Applikation oder die Integrierung in andere wird dadurch eher schwieriger. Die Folge sind viele verschiedene Applikationen, die unabhängig voneinander sind. Eine solche lose Kopplung von Applikationen ist ein Anlass gewesen, eine Applikationsplattform erstellen zu wollen, auf der verschiedene Applikationen auf demselben Datenmodell operieren können. Das ermöglicht die Verknüpfung der Daten untereinander und erfordert kein komplett seperates und unabhängiges Datenmodell für jede Applikation.</p>
<p>Den dritten Punkt nenne ich Expandierung. Getestet werden bei Anwendungen in der Regel funktionale Anforderungen. Was aber ist mit nicht-funktionalen Anforderungen wie der Skalierbarkeit? Anwendungslogik und Datenmodell können funktional gesehen gut sein, aber sie sind ungeeignet, wenn 10 000 Nutzer nicht genau so gut bedient werden können, wie 10 Nutzer. Einige Systeme werben zwar damit, auch bei &#8220;extrem vielen&#8221; Nutzern noch uneingeschränkt operieren zu können, doch Zahlen hierzu werden nicht angegeben. Zumal haben Nutzerzahlen von Systemen im Einsatz eine beschränkte Aussagekraft, da es bei 10 000 registrierten Nutzern nur eine Handvoll aktiver Nutzer geben kann.</p>
<p>Die Applikationsplattform ELISMA soll die Entwicklung von Applikationen unter anderem im Bereich Wissensmanagement und E-Learning vereinfachen und eine nachhaltige Perspektive bezüglich der Expandierung und Erweiterung bieten. Einen Schlüsselfaktor sehe ich hierzu im Rechtemanagement, aber dazu mehr in einem anderen Beitrag.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/cloud-computing/'>Cloud Computing</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/applikationsplattform/'>Applikationsplattform</a>, <a href='http://ddiupbblogs.wordpress.com/tag/architektur/'>architektur</a>, <a href='http://ddiupbblogs.wordpress.com/tag/berechtigungsmechanismen/'>Berechtigungsmechanismen</a>, <a href='http://ddiupbblogs.wordpress.com/tag/cloud-computing-2/'>cloud computing</a>, <a href='http://ddiupbblogs.wordpress.com/tag/datenbanksysteme/'>Datenbanksysteme</a>, <a href='http://ddiupbblogs.wordpress.com/tag/datenmodell/'>Datenmodell</a>, <a href='http://ddiupbblogs.wordpress.com/tag/e-learning/'>e-learning</a>, <a href='http://ddiupbblogs.wordpress.com/tag/elisma/'>ELISMA</a>, <a href='http://ddiupbblogs.wordpress.com/tag/lms/'>lms</a>, <a href='http://ddiupbblogs.wordpress.com/tag/motivation/'>motivation</a>, <a href='http://ddiupbblogs.wordpress.com/tag/nachhaltigkeit/'>Nachhaltigkeit</a>, <a href='http://ddiupbblogs.wordpress.com/tag/skalierbarkeit/'>Skalierbarkeit</a>, <a href='http://ddiupbblogs.wordpress.com/tag/wissensmanagement/'>wissensmanagement</a>, <a href='http://ddiupbblogs.wordpress.com/tag/zugriffssteuerung/'>Zugriffssteuerung</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1691/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1691&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/07/17/elisma/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d5633bb2dfe72735b83b28fe28713bb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rolwi</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/architektur_elisma.png" medium="image">
			<media:title type="html">ELISMA-Architekturdiagramm</media:title>
		</media:content>
	</item>
		<item>
		<title>Author disambiguation</title>
		<link>http://ddiupbblogs.wordpress.com/2012/07/09/author-disambiguation/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/07/09/author-disambiguation/#comments</comments>
		<pubDate>Mon, 09 Jul 2012 21:52:09 +0000</pubDate>
		<dc:creator>sweyers</dc:creator>
				<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Map/Reduce]]></category>
		<category><![CDATA[author disambiguation]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[hbase]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1684</guid>
		<description><![CDATA[Nachdem ich mich lange mit dem Thema sehr schwer getan habe, kann ich nun endlich einen Zwischenstandsbericht abgeben. Ich schreibe eine Abschlussarbeit zum Thema &#8220;Author disambiguation&#8221;. In dieser Arbeit geht es darum, aus einer anhand von Metainformationen (in meinem konkreten Fall BibTeX) gegebenen Menge von Dokumenten mit Autorenangaben herauszufiltern, welche genannten Autoren identische bzw. verschiedene [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1684&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Nachdem ich mich lange mit dem Thema sehr schwer getan habe, kann ich nun endlich einen Zwischenstandsbericht abgeben.</p>
<p>Ich schreibe eine Abschlussarbeit zum Thema &#8220;Author disambiguation&#8221;. In dieser Arbeit geht es darum, aus einer anhand von Metainformationen (in meinem konkreten Fall BibTeX) gegebenen Menge von Dokumenten mit Autorenangaben herauszufiltern, welche genannten Autoren identische bzw. verschiedene Personen sind.</p>
<p>Nachdem ich anfangs eine Menge einschlägiger Artikel gelesen habe, bei denen fast überall externe Referenzdatenbanken (CiteSeer, Google, etc.) zur Entscheidungsfindung eingesetzt wurden &#8211; dies bei meiner Arbeit aber von vornherein ausdrücklich ausgeschlossen war &#8211; habe ich mich an ein paar &#8211; zugegebenermaßen recht naiven &#8211; eigenen Ansätzen versucht, die leider schon zu Beginn der Konzeptionsphase scheiterten.</p>
<p>Das in [1] beschriebene Framework motivierte mich dann jedoch neu, so dass ich mich daran machte, eine derartige Implementierung im Rahmen von Hadoop und HBase vorzunehmen und nun erste Ergebnisse präsentieren kann.</p>
<p>Meine derzeitige Testmenge umfasst knapp 25.000 Dokumente mit rund 80.000 Autorennamen. Diese partitioniere ich gemäß Framework in Cluster von Autoren mit (nach der Normalisierung) gleichen Nachnamen und erhalte so rund 23.000 Cluster verschiedenster Größe.  Auf jedem dieser Cluster kann man nun ein Klassifizierungsverfahren einsetzen, das die enthaltenen Autoren nach einem definieriten Ähnlichkeitsmodell gruppiert und so ein plausibles Ergebnis liefert.</p>
<p>Aufgrund der Datenmenge ist eine manuelle Überprüfung des Ergebnisses offensichtlich nicht möglich. Leider fehlt mir auch noch eine Referenzdatenmenge, mit der ich die Korrektheit des Algorithmus überprüfen kann, weshalb ich derzeit die Struktur des Codes etwas verbessere, Laufzeiten optimiere und ein Beurteilungsschema für die Qualität der Berechnung erarbeite.</p>
<p>Das Laufzeitverhalten ist trotz fehlender Optimierung recht beeindruckend für die ungeheure Datenmenge: Mein lokaler Rechner (Dual-Core, 1,8 GHz) benötigt rund 5 Minuten, um die 80.000 Autorennamen zu disambiguieren.</p>
<p>[1] L. Bolikowski, P. J. Dendek. &#8220;Towards a flexible author name disambiguation framework&#8221;, 2011.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/hadoop-technologien/'>Hadoop</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/mapreduce/'>Map/Reduce</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/author-disambiguation/'>author disambiguation</a>, <a href='http://ddiupbblogs.wordpress.com/tag/hadoop/'>hadoop</a>, <a href='http://ddiupbblogs.wordpress.com/tag/hbase/'>hbase</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1684/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1684&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/07/09/author-disambiguation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/a05d1ef832443551fa1b8a751d46b9dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sweyers</media:title>
		</media:content>
	</item>
		<item>
		<title>ADORE wird sichtbar</title>
		<link>http://ddiupbblogs.wordpress.com/2012/07/05/adore-wird-sichtbar/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/07/05/adore-wird-sichtbar/#comments</comments>
		<pubDate>Thu, 05 Jul 2012 13:23:36 +0000</pubDate>
		<dc:creator>dmmeiners</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[adore]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1637</guid>
		<description><![CDATA[ADORE macht Fortschritte: momentan stelle ich ein paar konzeptionelle Überlegungen an und schreibe diese in der Arbeit nieder. Gleichzeitig bringe ich diese Überlegungen schon in kleinen Portionen in die eigentliche Programmierung ein. Und genau davon möchte in in diesem Blogpost ein wenig zeigen. In meinem ersten Blogpost vor ein paar Wochen hatte ich ja schon [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1637&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>ADORE macht Fortschritte: momentan stelle ich ein paar konzeptionelle Überlegungen an und schreibe diese in der Arbeit nieder. Gleichzeitig bringe ich diese Überlegungen schon in kleinen Portionen in die eigentliche Programmierung ein. Und genau davon möchte in in diesem Blogpost ein wenig zeigen.<span id="more-1637"></span> In meinem <a href="http://ddiupbblogs.wordpress.com/2012/06/03/bachelor-arbeit-adore/">ersten</a> Blogpost vor ein paar Wochen hatte ich ja schon geschrieben, dass ich als Eingabedatenformat gedenke, JSON zu verwenden. Diese Idee hat sich auch nach weiteren Überlegungen als sinnvoll herausgestellt. Auch der Gedanke, die Formatierung der Darstellung per CSS zu realisieren hat sich als fruchtbar erwiesen. So ist ADORE jetzt schon in der Lage aus dem JSON-Fragment</p>
<pre style="font-size:70%;">{
    "nodes":
    [
        { "id": "author2", "label": "Author 2", "class": "author" },
        { "id": "paperA", "label": "Paper A", "class": "paper"  },
        { "id": "paperC", "label": "Paper C", "class": "paper"  },
        { "id": "conferenceA", "label": "Conf A", "class": "conference" }
    ],
    "edges":
    [
        { "id": "edge1", "from": { "$ref": "author2" },
          "to": { "$ref": "paperA" }, "class": "authorship" },
        { "id": "edge3", "from": { "$ref": "paperA" },
          "to": { "$ref": "paperC" }, "class": "citation" },
        { "id": "edge5", "from": { "$ref": "paperC" },
          "to": { "$ref": "conferenceA" }, "class": "presentation" }
    ],
    "paths":
    [
        { "id": "path1", "edges": [ { "$ref": "edge1" }, { "$ref": "edge3" },
                                    { "$ref": "edge5" } ] }
    ]
}</pre>
<p>die folgende Darstellung zu erzeugen.</p>
<div id="attachment_1662" class="wp-caption alignnone" style="width: 500px"><a href="http://ddiupbblogs.files.wordpress.com/2012/07/bare_path.png"><img class="size-full wp-image-1662" title="bare_path" src="http://ddiupbblogs.files.wordpress.com/2012/07/bare_path.png?w=490&#038;h=76" alt="Pfad-Darstellung in ADORE mit &quot;bare&quot; Skin." width="490" height="76" /></a><p class="wp-caption-text">Pfad-Darstellung in ADORE mit &#8220;bare&#8221; Skin.</p></div>
<p>Hierbei kommt der &#8220;bare&#8221; Skin zum Einsatz, ein Basis-CSS-Stylesheet, dass allein die Aufgabe hat, die Knoten und Kanten in neutraler Form darzustellen, also ohne anwendungsspezifische Formatierung. Nun kann man ein Stylesheet mit anwendungsspezifischen Formatierungen laden – hier wäre das ein Stylesheet, wie das folgende (gekürzt), das Autoren als Figuren, Papiere eben als Schriftstücke und Konferenzen durch eine Plakatwand verdeutlicht.</p>
<pre style="font-size:70%;">/* Node styles */

.author {
    background-image: url('skins/academic/img/author-node.png');
}
[...]

/* Edge styles */

._jsPlumb_connector.authorship path {
    stroke: black;
}

._jsPlumb_connector.citation path {
    stroke: green;
    stroke-dasharray: 5,5;
}

._jsPlumb_connector.presentation path {
    stroke: red;
    stroke-width: 1;
}

/* Overlay styles */

._jsPlumb_overlay.authorship {
    background-image: url('skins/academic/img/authorship-edge.png');
    background-size: 30px 30px;
    background-position: center;
    background-repeat: no-repeat;
    color: transparent;
}</pre>
<p>Die Darstellung ändert sich entsprechend:</p>
<div id="attachment_1674" class="wp-caption alignnone" style="width: 500px"><a href="http://ddiupbblogs.files.wordpress.com/2012/07/academic-path.png"><img class="size-full wp-image-1674" title="academic-path" src="http://ddiupbblogs.files.wordpress.com/2012/07/academic-path.png?w=490&#038;h=76" alt="Pfad-Darstellung in ADORE mit &quot;academic&quot; Skin." width="490" height="76" /></a><p class="wp-caption-text">Pfad-Darstellung in ADORE mit &#8220;academic&#8221; Skin.</p></div>
<p>Diese Darstellung ist in skalietrer Form sicherlich auch als Widget in einer anderen Webseite nützlich. Der offensichlichste Anwedungszweck sind hier natürlich alle Formen von Social Networking Sites und artverwandtes.</p>
<p>Die nächsten Schritte werden darin bestehen, den theoretischen Teil der Arbeit, also meine konzeptionellen Überlegungen weiterzuführen und niederzuschreiben.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-networking/'>Social Networking</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/adore/'>adore</a>, <a href='http://ddiupbblogs.wordpress.com/tag/edge/'>edge</a>, <a href='http://ddiupbblogs.wordpress.com/tag/graph/'>graph</a>, <a href='http://ddiupbblogs.wordpress.com/tag/json/'>json</a>, <a href='http://ddiupbblogs.wordpress.com/tag/node/'>node</a>, <a href='http://ddiupbblogs.wordpress.com/tag/svg/'>svg</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1637/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1637&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/07/05/adore-wird-sichtbar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3d1aca5227a01ee70023d2b2bb7087f1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dmmeiners</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/bare_path.png" medium="image">
			<media:title type="html">bare_path</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/academic-path.png" medium="image">
			<media:title type="html">academic-path</media:title>
		</media:content>
	</item>
		<item>
		<title>GEXF Vizz und die SNA Metriken</title>
		<link>http://ddiupbblogs.wordpress.com/2012/07/02/gexf-vizz-und-die-sna-metriken/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/07/02/gexf-vizz-und-die-sna-metriken/#comments</comments>
		<pubDate>Mon, 02 Jul 2012 19:08:56 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[centrality]]></category>
		<category><![CDATA[closeness]]></category>
		<category><![CDATA[java server]]></category>
		<category><![CDATA[sigma]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1628</guid>
		<description><![CDATA[Nun wollte ich mich auch mal wieder zurückmelden und in einem kurzen Blogeintrag beschreiben, was sich bei „GEXF Vizz“ in den letzten zwei Wochen geändert  hat und was sich, wie ich hoffe, in der Zukunft noch ändern wird. Zur Erinnerung: Es geht in meinem Projekt insgesamt darum, dass ich große Forschungsnetzwerke visualisieren können möchte. Insbesondere [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1628&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Nun wollte ich mich auch mal wieder zurückmelden und in einem kurzen Blogeintrag beschreiben, was sich bei „<a href="https://github.com/PlasmaLampe/GEXFVizz">GEXF Vizz</a>“ in den letzten zwei Wochen geändert  hat und was sich, wie ich hoffe, in der Zukunft noch ändern wird.</p>
<p>Zur Erinnerung: Es geht in meinem Projekt insgesamt darum, dass ich große Forschungsnetzwerke visualisieren können möchte. Insbesondere soll dies durch eine einfache Menüführung für den Benutzer so gestaltet sein, dass er in einen Auswahldialog die Konferenz und die gewünschten Jahre wählen kann und ab diesem Punkt die Webanwendung alles weitere übernimmt (das bedeutet: holen der Daten aus der MySQL Datenbank von <a href="http://ddi.uni-paderborn.de/lehre/sommersemester-2010/pg-knowaan.html">KnowAAN</a> und automatische Generierung der dazugehörigen GEXF Datei). <span id="more-1628"></span>Danach soll diese GEXF Datei automatisch durch eine Javascript Bibliothek namens <a href="http://sigmajs.org/">Sigma.js</a> angezeigt werden. Zudem sollen verschiedene <a href="http://en.wikipedia.org/wiki/Social_network_analysis">Graphmetriken</a> zu dem aktuell angezeigten Forschungsnetzwerk ausgerechnet werden (wahrscheinlich wird es hier noch einige Anpassungen geben, da es sehr gut wäre wenn auch wirklich nur die Metriken zu dem aktuellen Graphen -in diesem Zeitraum- angezeigt werden, denn es wird ja möglich sein die Zeiträume für die aktuelle Anzeige zu verändern und sich somit nur bestimmte Jahre anzeigen zu lassen). Alles in allem ist es in dieser Situation ein wenig ungünstig, wenn man nur die Metriken für den Gesamtgraphen über alle Jahre hinweg anzeigen kann.</p>
<p>Insgesamt funktioniert dies auch schon einigermaßen zuverlässig. Technisch ist die Berechnung der Metriken so gelöst, dass diese von einem Java-Server berechnet und dann per PHP über eine Rest URL abgefragt werden, um diese dem anfragenden Client anzeigen zu können. Allerdings bin ich hier auf das Problem gestoßen, dass es verschiedene Definitionen der so genannten ,closeness centrality‘ gibt. Um darauf eingehen zu können, möchte ich knapp beschreiben was diese eigentlich aussagt und danach kurz auf das Problem eingehen. Die ,closeness centrality‘ beschreibt mathematisch die Position eines einzelnen Knoten in dem gesamten Graphen. Die Idee dahinter ist, dass ein Knoten der sehr zentral in dem Netzwerk liegt, wohl auch in der Summe eine geringe Distanz zu allen anderen Knoten hat. Dafür summiert man für den einzelnen Knoten die Distanzen auf und teilt diesen Wert danach durch die Anzahl der Gesamtknoten. Ein kleines Problem bei dieser Definition ist, dass der Wert „schlechter“ wird, je größer er ist. Dies ist wiederum bei anderen Metriken nicht unbedingt so, wie zum Beispiel bei der ,degree centrality‘ für die ein „großer Wert“ gut ist; denn das bedeutet in diesem Fall, dass ein Knoten einen hohen Grad hat und damit viele Verbindungen in dem Graphen zu anderen Knoten besitzt. Natürlich gilt insbesondere in einem sozialen Netzwerk, dass eine hohe Anzahl an Verbindungskanten gut ist, da die Person dann viele Beziehungen zu anderen Personen in dem Netzwerk besitzt. Daher gibt es auch noch andere Definition von der eben genannten ,closeness centrality‘, die etwa den Kehrwert des gerade beschriebenen Wertes benutzen. In diesem Fall passt auch wieder die Intuition ins mathematische Schema. Nun habe ich ja vorhin schon geschrieben, dass diese Sachen bereits relativ zuverlässig funktionieren (es sind noch keine Tests gelaufen, aber rein von meinem Gefühl her läuft es schon relativ stabil :)).</p>
<p>Als nächstes soll nun die Ausgabe mit <a href="http://circos.ca/">Circos</a> implementiert werden. Dadurch werden kreisförmigen Visualisierung möglich, die tatsächlich ein sehr hohes ,<a href="http://www.infovis-wiki.net/index.php/Data-Ink_Ratio">data to ink</a> ratio‘ aufweisen können.</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/07/dtiratio.png"><img class="alignnone size-thumbnail wp-image-1629" title="Data to ink ratio" src="http://ddiupbblogs.files.wordpress.com/2012/07/dtiratio.png?w=150&#038;h=139" alt="" width="150" height="139" /></a></p>
<p>Das bedeutet, dass man auf sehr kleinem Raum (beziehungsweise für den Druck die namensgebende Tinte) sehr viele Informationen packen kann; trotzdem bleiben diese Visualisierung meist relativ lesbar. Insgesamt wird es nötig sein, dass mein Java-Server eine Circos Konfigurationsdatei erstellt und dann per Kommandozeile Circos mit dieser Datei als Parameter aufruft. Allerdings sind, bevor ich das vollständig umsetzen kann, noch ein paar Tests nötig, da Circos auch sehr komplexe und schwierig zu lesende Diagramme erzeugen kann und ich erst noch eine Konfiguration der Anwendung finden muss, in der einigermaßen intuitive Visualisierungen erzeugt werden. Dies ist allerdings nicht ganz leicht, da ich zum gegenwärtigen Zeitpunkt noch nicht weiß, welche Art überhaupt von den Betrachter als „intuitiv“ wahrgenommen wird. Abschließend möchte ich das „Problem“ kurz an einem Beispiel zeigen:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/07/circos_komplex.png"><img class="alignnone size-thumbnail wp-image-1630" title="Eine sehr komplexe Visualisierung mit Circos" src="http://ddiupbblogs.files.wordpress.com/2012/07/circos_komplex.png?w=150&#038;h=147" alt="" width="150" height="147" /></a></p>
<p>An diesem Beispiel kann man schön erkennen, dass man ohne eine wirklich ausführliche Beschreibung über die Art und Weise, wie diese dieses Diagramm zu lesen ist, wohl nicht mehr sonderlich viel erkennt&#8230;</p>
<p>[Anmerkung: Die beiden Bilder entstammen dem „<a href="http://circos.ca/tutorials/course/">Circos practical course</a>“]</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/php/'>PHP</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-media-themen/'>Social Media</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/centrality/'>centrality</a>, <a href='http://ddiupbblogs.wordpress.com/tag/closeness/'>closeness</a>, <a href='http://ddiupbblogs.wordpress.com/tag/java-server/'>java server</a>, <a href='http://ddiupbblogs.wordpress.com/tag/php/'>PHP</a>, <a href='http://ddiupbblogs.wordpress.com/tag/sigma/'>sigma</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1628/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1628&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/07/02/gexf-vizz-und-die-sna-metriken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/dtiratio.png?w=150" medium="image">
			<media:title type="html">Data to ink ratio</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/07/circos_komplex.png?w=150" medium="image">
			<media:title type="html">Eine sehr komplexe Visualisierung mit Circos</media:title>
		</media:content>
	</item>
		<item>
		<title>Etherpad Lite Plugins bei npmjs.org veröffentlichen</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/30/etherpad-lite-plugins-bei-npmjs-org-veroffentlichen/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/30/etherpad-lite-plugins-bei-npmjs-org-veroffentlichen/#comments</comments>
		<pubDate>Sat, 30 Jun 2012 13:50:40 +0000</pubDate>
		<dc:creator>Edy</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Server-side Javascript]]></category>
		<category><![CDATA[etherpad]]></category>
		<category><![CDATA[etherpad lite]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[publish]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1626</guid>
		<description><![CDATA[In meinen bisherigen Beiträgen in diesem Blog habe ich u.A. gezeigt, wie ein Plugin für Etherpad Lite geschrieben wird und wie die dazugehörige package.json generiert werden kann. Um das fortzusetzen, möchte ich in nun kurz zeigen, wie ein Plugin bei npm.js veröffentlicht werden kann. Vor dem Veröffentlichen des Plugins muss zuerst ein Benutzer angelegt werden. Dies [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1626&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In meinen bisherigen Beiträgen in diesem Blog habe ich u.A. gezeigt, wie ein <a href="http://ddiupbblogs.wordpress.com/2012/03/13/ein-ddi-plugin-fuer-etherpad-lite/">Plugin für Etherpad Lite</a> geschrieben wird und wie die dazugehörige <a href="http://ddiupbblogs.wordpress.com/2012/05/23/package-json-fuer-ein-node-js-modul-erstellen/">package.json generiert werden</a> kann. Um das fortzusetzen, möchte ich in nun kurz zeigen, wie ein Plugin bei <a href="http://npmjs.org">npm.js</a> veröffentlicht werden kann.<span id="more-1626"></span></p>
<p>Vor dem Veröffentlichen des Plugins muss zuerst ein Benutzer angelegt werden. Dies geschieht mit dem Befehl <code>npm adduser</code>. Daraufhin werden Benutzername, E-Mailadresse und ein Passwort abgefragt und anschließend der Benutzer auf npmjs.com angelegt.</p>
<p>Das Veröffentlichen des Plugins ist genauso einfach: dazu wird im Plugin-Verzeichnis der folgende Befehl ausgeführt: <code>npm publish</code>. Anschließend kann jeder das Plugin mit <code>npm init</code> installieren.</p>
<p>Ich habe bis jetzt zwei nützliche Plugins für Etherpad Lite veröffentlicht:<br />
<a href="http://search.npmjs.org/#/ep_latexexport">LaTeX-Export</a> und<br />
<a href="http://search.npmjs.org/#/ep_speechinput">Spracheingabe</a>.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/server-side-javascript/'>Server-side Javascript</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/etherpad/'>etherpad</a>, <a href='http://ddiupbblogs.wordpress.com/tag/etherpad-lite/'>etherpad lite</a>, <a href='http://ddiupbblogs.wordpress.com/tag/node-js/'>node.js</a>, <a href='http://ddiupbblogs.wordpress.com/tag/npm/'>npm</a>, <a href='http://ddiupbblogs.wordpress.com/tag/plugins/'>plugins</a>, <a href='http://ddiupbblogs.wordpress.com/tag/publish/'>publish</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1626/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1626&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/30/etherpad-lite-plugins-bei-npmjs-org-veroffentlichen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/5d28677d27de20cde2e49a6fb7ec2422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edy</media:title>
		</media:content>
	</item>
		<item>
		<title>Masterarbeit zum Thema &#8220;Unterstützung Team-basierter Kommunikation durch visuelle Hierarchien, innovative Gruppenbildung und People Tagging&#8221;</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/26/masterarbeit-zum-thema-unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/26/masterarbeit-zum-thema-unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/#comments</comments>
		<pubDate>Tue, 26 Jun 2012 11:10:10 +0000</pubDate>
		<dc:creator>jkostik</dc:creator>
				<category><![CDATA[People Tagging]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[User Interfaces]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Visuelle Kommunikation]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[organigramm]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[suteco]]></category>
		<category><![CDATA[Tagging]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1618</guid>
		<description><![CDATA[Im Rahmen meiner Masterarbeit beschäftige ich mich mit dem Thema „Unterstützung der teambasierten Kommunikation durch visuelle Hierarchien, People Tagging und innovative Gruppenbildung“. Meine Masterarbeit basiert auf Konzepten und Entwicklungstechniken des People Tagging und der visuellen Kommunikation, die Sabine Mers in ihrer Bachelorarbeit eingeführt und erläutert hat. Im Rahmen meiner Masterarbeit werde ich eine serverbasierte Web-Applikation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1618&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Im Rahmen meiner Masterarbeit beschäftige ich mich mit dem Thema „Unterstützung der teambasierten Kommunikation durch visuelle Hierarchien, People Tagging und innovative Gruppenbildung“.</p>
<p>Meine Masterarbeit basiert auf Konzepten und Entwicklungstechniken des <a href="http://knowledge-maturing.com/services-and-tools/tools/people-tagging" target="_blank">People Tagging</a> und der visuellen Kommunikation, die Sabine Mers in ihrer <a href="https://ddiupbblogs.wordpress.com/author/sabineupb/" target="_blank">Bachelorarbeit</a> eingeführt und erläutert hat.</p>
<p><span id="more-1618"></span></p>
<p>Im Rahmen meiner Masterarbeit werde ich eine serverbasierte Web-Applikation entwickeln, die Nachrichtenverteilung durch die graphische Darstellung einer beliebigen Organisationsstruktur (<a href="http://de.wikipedia.org/wiki/Organigramm" target="_blank">Organigramm</a>) und graphische Abbildung von gebildeten Gruppen unterstützen soll. Das Organigramm soll dabei dynamisch angeordnet werden können, z.B. durch auf- und zuklappen. Die Nachrichtenempfänger sollen visuell gewählt werde, indem man die schon bereits geschriebene Nachricht per Drag&amp;Drop auf die gewünschte Person bzw. Hierarchieebene des Organigramms zieht.</p>
<div id="attachment_1617" class="wp-caption aligncenter" style="width: 1034px"><a href="http://ddiupbblogs.files.wordpress.com/2012/06/organigramm-6-release-dialog.png"><img class="size-large wp-image-1617" title="organigramm-anschreiben-dialog" src="http://ddiupbblogs.files.wordpress.com/2012/06/organigramm-6-release-dialog.png?w=1024&#038;h=606" alt="" width="1024" height="606" /></a><p class="wp-caption-text">Abbildung 1. Verschicken einer Nachricht an die Ebene „Leitung von AGs“</p></div>
<p>Dies wird auch umgekehrt funktionieren, wenn man die gewünschte Ebene der visuellen Hierarchie bzw. einzelne Person in das Empfängerfeld der Nachricht per Drap&amp;Drop schiebt.</p>
<div id="attachment_1616" class="wp-caption aligncenter" style="width: 1034px"><a href="http://ddiupbblogs.files.wordpress.com/2012/06/myimage-1.png"><img class="size-large wp-image-1616" title="Gruppe-anschreiben" src="http://ddiupbblogs.files.wordpress.com/2012/06/myimage-1.png?w=1024&#038;h=606" alt="" width="1024" height="606" /></a><p class="wp-caption-text">Abbildung 2. Verschicken einer Nachricht an die Gruppe „Java“ und eine Person aus der Gruppe „Python“</p></div>
<p>Das People Tagging wird eingesetzt, um einzelne Personen bzw. Gruppen, an die eine Nachricht verschickt wird zu verschlagworten. Dadruch entsteht der sogenannte Kompetenzkatalog, der später einer schnellen Suche von richtigen Ansprechpartnern dienen soll. Allgemein dient dieses Prinzip der Wissenskommunikation [<a title="Bachelorarbeit von Sabine Mers" href="https://ddiupbblogs.wordpress.com/author/sabineupb/" target="_blank">BA Sabine Mers</a>].</p>
<p>Als weitere Unterstützung der Nachrichtenverteilung soll das Konzept „Folgen“ realisiert werden, das in Form einer Pinnwand auf der Profilseite jedes Benutzers erscheinen soll. Die Pinnwand soll alle Aktivitäten der verfolgten Personen bzw. Gruppen anzeigen: WER hat WEN mit welchem Tag versehen?</p>
<p>Technisch gesehen soll das System auf dem schon existierenden <a href="http://de.wikipedia.org/wiki/Active_Directory" target="_blank">ActiveDirectory</a>-Schema (Abbildung des Organigramms) basieren und dieses durch eine zusätzliche Datenbank erweitern, in der alle Tags, gebildete Gruppen und deren Relationen gespeichert werden. Clientseitige Oberflächen sollen hauptsächlich in JavaScript und im serverseitigen <a href="https://www.djangoproject.com/" target="_blank">Django</a> implementiert werden. Für die Visualisierung graphischer Oberflächen mit allen Effekten wird <a href="http://jquery.com/" target="_blank">jQuery</a> verwendet.</p>
<p>Die weiteren Mochups und Erläuterungen dazu stelle ich beim nächsten Bloggen online.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/themen/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/python/'>Python</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-networking/'>Social Networking</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/user-interfaces/'>User Interfaces</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visuelle-kommunikation/'>Visuelle Kommunikation</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/django/'>django</a>, <a href='http://ddiupbblogs.wordpress.com/tag/jquery/'>jquery</a>, <a href='http://ddiupbblogs.wordpress.com/tag/organigramm/'>organigramm</a>, <a href='http://ddiupbblogs.wordpress.com/tag/people-tagging/'>People Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/tag/python-2/'>python</a>, <a href='http://ddiupbblogs.wordpress.com/tag/suteco/'>suteco</a>, <a href='http://ddiupbblogs.wordpress.com/tag/tagging/'>Tagging</a>, <a href='http://ddiupbblogs.wordpress.com/tag/teams/'>teams</a>, <a href='http://ddiupbblogs.wordpress.com/tag/visuelle-kommunikation/'>Visuelle Kommunikation</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1618/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1618&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/26/masterarbeit-zum-thema-unterstutzung-team-basierter-kommunikation-durch-visuelle-hierarchien-innovative-gruppenbildung-und-people-tagging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e707b66db6e520cd1be54854ef9e1682?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jkostik</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/06/organigramm-6-release-dialog.png?w=1024" medium="image">
			<media:title type="html">organigramm-anschreiben-dialog</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/06/myimage-1.png?w=1024" medium="image">
			<media:title type="html">Gruppe-anschreiben</media:title>
		</media:content>
	</item>
		<item>
		<title>GEXF Vizz: Lokalität gegen Arbeitsplatzbedarf</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/24/gexf-vizz-lokalitat-gegen-arbeitsplatzbedarf/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/24/gexf-vizz-lokalitat-gegen-arbeitsplatzbedarf/#comments</comments>
		<pubDate>Sun, 24 Jun 2012 16:18:47 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[centrality]]></category>
		<category><![CDATA[javascript code]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1602</guid>
		<description><![CDATA[In diesem sehr kurzen Blogartikel möchte ich mich kurz mit dem Designkonflikt von Lokalität gegen Arbeitsplatzbedarf beschäftigen und wie man diesen leicht mit ,Twitter Bootstrap‘ bzw. mit plugins für ,Twitter Bootstrap‘ entschärfen kann.  Nun möchte ich erst einmal an dem Folgenden Screenshot mein Problem ein bisschen näher beschreiben: Ich habe hier eine Tabelle die relativ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1602&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In diesem sehr kurzen Blogartikel möchte ich mich kurz mit dem Designkonflikt von Lokalität gegen Arbeitsplatzbedarf beschäftigen und wie man diesen leicht mit ,Twitter Bootstrap‘ bzw. mit plugins für ,Twitter Bootstrap‘ entschärfen kann. <span id="more-1602"></span> Nun möchte ich erst einmal an dem Folgenden Screenshot mein Problem ein bisschen näher beschreiben:</p>
<p><a href="http://ddiupbblogs.files.wordpress.com/2012/06/ohnetooltip.png"><img class="size-full wp-image" src="http://ddiupbblogs.files.wordpress.com/2012/06/ohnetooltip.png?w=252" alt="Bild" /></a></p>
<p>Ich habe hier eine Tabelle die relativ eng ist, trotzdem wollte  ich eine Beschreibung der Metrik haben um die Oberfläche ein wenig präziser zu gestalten und dem Besucher die Möglichkeit zu geben die Metriken leicht nachschlagen zu können. Nun war aber einfach nicht genug Platz da, um diese Beschreibung direkt daneben zu platzieren (Stichwort: Lokalität). Daraufhin habe ich mir die Möglichkeiten von Twitter Bootstrap noch einmal näher angesehen und bin auf sehr einfach zu implementierende tooltips und popovers gestoßen (ganz wie es in GMMW vorgeschlagen wird, wenn man sich in diesem Designkonflikt befindet :)).</p>
<p>Als erstes binden wir die zwei <a title="Bibliotheken" href="http://twitter.github.com/bootstrap/javascript.html" target="_blank">Bibliotheken</a> (für tooltip und popover) ein. Achtung: Die popover Bibliothek benötigt die andere, auch wenn man keine tooltips sondern nur die popovers benutzen will, da sie diese nur erweitert. Danach können wir direkt mit dem Folgenden kleinen JavaScript Schnipsel unseren ,popover‘ darstellen:<br />
<code><br />
$(function ()<br />
{ $("#ccHover").popover({title: 'Closeness Centrality', content: "LOREM IPSUM."});<br />
});</code></p>
<p>Ok ok, das kleine Stück JavaScript Code braucht noch <a title="jquery" href="http://jquery.com/" target="_blank">JQuery</a>, aber ich denke mal, dass ihr das eh eingebunden habt ;-)</p>
<p>Wie man sieht war das Ganze eine Sache von 2 min und man hat nun die Möglichkeit beliebige tooltips auf seiner Oberfläche zu nutzen, um diese insgesamt zu erweitern und doch übersichtlich zu bleiben.<br />
<a href="http://ddiupbblogs.files.wordpress.com/2012/06/mittooltip.png"><img class="size-full wp-image" src="http://ddiupbblogs.files.wordpress.com/2012/06/mittooltip.png?w=541" alt="Bild" /></a></p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/bootstrap/'>bootstrap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/centrality/'>centrality</a>, <a href='http://ddiupbblogs.wordpress.com/tag/javascript-code/'>javascript code</a>, <a href='http://ddiupbblogs.wordpress.com/tag/twitter/'>twitter</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1602/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1602&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/24/gexf-vizz-lokalitat-gegen-arbeitsplatzbedarf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/06/ohnetooltip.png?w=252" medium="image">
			<media:title type="html">Bild</media:title>
		</media:content>

		<media:content url="http://ddiupbblogs.files.wordpress.com/2012/06/mittooltip.png?w=541" medium="image">
			<media:title type="html">Bild</media:title>
		</media:content>
	</item>
		<item>
		<title>Knoten und Kanten im Browser? – Ja klar! Nur womit?</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/19/knoten-und-kanten-im-browser-ja-klar-nur-womit/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/19/knoten-und-kanten-im-browser-ja-klar-nur-womit/#comments</comments>
		<pubDate>Tue, 19 Jun 2012 17:41:37 +0000</pubDate>
		<dc:creator>dmmeiners</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[adore]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1593</guid>
		<description><![CDATA[Es ist wieder an der Zeit, etwas über den Zwischenstand von ADORE zu berichten. Da ich ja mittels JavaScript im Browser Graphen, genauer Knoten und Kanten zeichnen möchte, habe ich mich in den vergangenen zwei Wochen umgesehen, welche Möglichkeiten es dazu schon gibt. Die interessantesten Graph-Bibliotheken habe ich mir dann genauer angesehen. Das war nicht [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1593&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Es ist wieder an der Zeit, etwas über den Zwischenstand von ADORE zu berichten. Da ich ja mittels JavaScript im Browser Graphen, genauer Knoten und Kanten zeichnen möchte, habe ich mich in den vergangenen zwei Wochen umgesehen, welche Möglichkeiten es dazu schon gibt. Die interessantesten Graph-Bibliotheken habe ich mir dann genauer angesehen.<span id="more-1593"></span> Das war nicht so einfach, da meine Untersuchung (Analyse möchte ich das nicht nennen) recht informal sein musste – eine genaue, qualitative Bewertung hätte harte Kriterien erfordert, wie z.B. &#8220;wie viele Mannstunden benötigt man, um Funktionalität X mit Bibliothek Y zu implementieren&#8221;. Das ist natürlich in einer Bachelor-Arbeit schon rein zeitlich nicht möglich. Schlussendlich habe ich sechs verschiedene Graph Bibliotheken betrachtet. Eigentlich würden sich alle &#8220;recht gut&#8221; bis &#8220;sehr gut&#8221; für mein Unternehmen eignen. Anhand einiger Kriterien kann man dann aber doch ein paar ausschließen, so ist die <a href="http://www.graphdracula.net/de">Dracula Graph Library</a> zwar recht übersichtlich was den Funktionsumfang angeht und daher leicht für einfache Dinge zu verwenden, allerdings fehlt die Dokumentation völlig. Das andere Extrem stellt z.B. <a href="http://d3js.org/">D3.js</a> dar, indem es einem mit verschiedensten Graph-Typen fast schon erschlägt. Die Hürde, hier eigenen Code zu schreiben ist auch recht hoch, da man sich doch recht tief in die (hier vorhandene) Dokumentation einlesen muss. Ein weiteres Kriterium ist ein technisches: so kann man Grafiken im Browser mittels SVG oder mittels <code>&lt;canvas&gt;</code> Tag und JavaScript zeichnen. Nicht alle Bibliotheken unterstützen beide Methoden. Ich habe mich auf jeden Fall entschlossen, für meine Entwicklung <a href="http://jsplumb.org/jquery/demo.html">jsPlumb</a> zu verwenden (wie schon im letzten Blogpost erwähnt) – jsPlumb stellt einen guten Kompromiss zwischen Einarbeitungsaufwand und Funktionalität dar.Einen einfachen Graphen mit zwei Knoten und einer Kante kann man relativ leicht umsetzen: die Knoten kann man per <code>&lt;div&gt;</code> Tag darstellen (plus: schön per CSS formatierbar und kann weiteren HTML-Inhalt haben), die Kante dazwischen zeichnet man dann per jsPlumb – und das ist ein Einzeiler in diesem einfachen Fall :-)</p>
<p>In den nächsten 3–4 Wochen werde ich verstärkt am <a href="https://github.com/danmei/adore">Projekt</a> programmieren, denn bald soll schon ein erster Prototyp fertig sein, der auch schon für erste Evaluationen verwendet werden soll. Alles weitere natürlich hier auf dem Blog!</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/adore/'>adore</a>, <a href='http://ddiupbblogs.wordpress.com/tag/canvas/'>canvas</a>, <a href='http://ddiupbblogs.wordpress.com/tag/edge/'>edge</a>, <a href='http://ddiupbblogs.wordpress.com/tag/graph/'>graph</a>, <a href='http://ddiupbblogs.wordpress.com/tag/node/'>node</a>, <a href='http://ddiupbblogs.wordpress.com/tag/svg/'>svg</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1593/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1593&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/19/knoten-und-kanten-im-browser-ja-klar-nur-womit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3d1aca5227a01ee70023d2b2bb7087f1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dmmeiners</media:title>
		</media:content>
	</item>
		<item>
		<title>Bachelorarbeit: GEXFVizz</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/19/bachelorarbeit-gexfvizz/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/19/bachelorarbeit-gexfvizz/#comments</comments>
		<pubDate>Tue, 19 Jun 2012 09:21:32 +0000</pubDate>
		<dc:creator>plasmalampe</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Server-side Javascript]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Circos]]></category>
		<category><![CDATA[gephi]]></category>
		<category><![CDATA[GEXF]]></category>
		<category><![CDATA[GEXFVizz]]></category>
		<category><![CDATA[research networks]]></category>
		<category><![CDATA[scientific publications]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1587</guid>
		<description><![CDATA[So, nun schreibe ich auch meine Bachelorarbeit mit dem wunderbaren Arbeitstitel „Visualizing Research Networks &#8211; Extension of a platform for analyzing scientific publications“; doch was heißt das nun konkret ? Stellen wir uns mal die alltägliche Situation vor, dass man morgens aufwacht und sich zu seinem Morgen-Kaffee überlegt, dass man doch gerne verschiedene Metriken der [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1587&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>So, nun schreibe ich auch meine Bachelorarbeit mit dem wunderbaren Arbeitstitel „Visualizing Research Networks &#8211; Extension of a platform for analyzing scientific publications“; doch was heißt das nun konkret ?</p>
<p>Stellen wir uns mal die alltägliche Situation vor, dass man morgens aufwacht und sich zu seinem Morgen-Kaffee überlegt, dass man doch gerne verschiedene Metriken der <a title="Scientometrie" href="http://de.wikipedia.org/wiki/Scientometrie?title=Scientometrie&amp;redirect=no" target="_blank">Scientometrie</a> (wie zum Beispiel ,Co-Citation‘) der eingereichten Papiere von der mlearn Konferenz aus den Jahren 2004-2006 visualisieren möchte. Zudem möchte man diese Visualisierung danach auf seinem Blog zu veröffentlichen, um irgendetwas besonderes hervorzuheben.</p>
<p><span id="more-1587"></span></p>
<p>Leider hat man nun das Problem, dass man diese Aufgabe wohl nicht bis zum Mittagessen erledigt hat, da zwar bereits eine Webplattform existiert, die die Papiere sammelt und auch teilweise einen Export zu <a title="Gephi" href="http://gephi.org/" target="_blank">Gephi</a> (einer Anwendung für die Visualisierung von Graphen) bereitstellt, aber spätestens bei dem Teil mit dem Blog wird es im Moment schon  schwierig. Und gerade diese Lücke versuche ich zu füllen.</p>
<p>Technisch gesehen, soll der Benutzer über einen Auswahldialog wählen können, welche Konferenz er in welchem Zeitraum darstellen möchte und um welche Metrik es ihm gerade geht. Danach wird die dazugehörige GEXF Datei erstellt und dem Benutzer angezeigt.</p>
<p>Da zudem ein persistenter Link generiert wird, soll das Verteilen des Links möglichst einfach gemacht werden. Immerhin ist Forschung doch immer eine kooperative Aufgabe, oder ?</p>
<p><em>[Mit den Worten von Carl Sagan, „Science is a collaborative enterprise, spanning the generations“ :) ]</em></p>
<p>Wenn man allerdings keine Visualisierung von dem gesamten Graphen möchte, dann soll sich der Benutzer auch dafür entscheiden können die Top 10/20/&#8230; in einem kreisförmigen Diagramm darstellen zu lassen. An dieser Stelle wird auf <a title="Circos" href="http://circos.ca/" target="_blank">Circos</a> zurückgegriffen, welches Tabellen in eben solche kreisförmigen Darstellungen übersetzt.</p>
<p>Insgesamt wird in dem Projekt reichlich auf JavaScript gesetzt, welches durch ein Java-Servlet in einem Tomcat Webserver unterstützt wird. Ansonsten muss für ein paar kleinere serverseitige Scripte PHP bemüht werden. Die Visualisierung der eigentlichen Graphen wird dann durch eine JavaScript Bibliothek namens <a title="Sigma.js" href="http://sigmajs.org/" target="_blank">Sigma.js</a> erledigt, welche die Sache aktuell aber wohl nur sehr rudimentär umsetzt. Ich bin da ehrlich gesagt relativ gespannt, was ich da alles „modifizieren“ muss, bis es wirklich alles passend anzeigt und der Sigma.js interne parser nicht gefühlt alle 20 Minuten stehen bleibt.</p>
<p>Insgesamt könnt ihr das Projekt auf <a title="Github" href="https://github.com/PlasmaLampe/" target="_blank">Github</a> verfolgen und natürlich halte ich euch auch auf dem Laufenden :)</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/php/'>PHP</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/server-side-javascript/'>Server-side Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/circos/'>Circos</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gephi/'>gephi</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gexf/'>GEXF</a>, <a href='http://ddiupbblogs.wordpress.com/tag/gexfvizz/'>GEXFVizz</a>, <a href='http://ddiupbblogs.wordpress.com/tag/research-networks/'>research networks</a>, <a href='http://ddiupbblogs.wordpress.com/tag/scientific-publications/'>scientific publications</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1587/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1587&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/19/bachelorarbeit-gexfvizz/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/78feb10538343a429ffda171f4720e76?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">plasmalampe</media:title>
		</media:content>
	</item>
		<item>
		<title>Coole Ressourcen für Nutzer von Twitter Bootstrap</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/12/coole-ressourcen-fur-nutzer-von-twitter-bootstrap/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/12/coole-ressourcen-fur-nutzer-von-twitter-bootstrap/#comments</comments>
		<pubDate>Tue, 12 Jun 2012 08:35:08 +0000</pubDate>
		<dc:creator>wollepb</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[User Interfaces]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1576</guid>
		<description><![CDATA[Da immer mehr Studenten auch in ihren Abschlussarbeiten das tolle Twitter Bootstrap Framework verwenden, ist hier ein Link zu 20 coolen Ressourcen rund um die Thematik. Damit wird es auch leichter eine auf Bootstrap basierende Anwendung zu bauen, die nicht sofort nach Bootstrap aussieht ;) Einsortiert unter:CSS, HTML, Javascript, User Interfaces Tagged: bootstrap, css, javascript, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1576&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Da immer mehr Studenten auch in ihren Abschlussarbeiten das tolle <a href="http://twitter.github.com/bootstrap/" target="_blank">Twitter Bootstrap</a> Framework verwenden, ist hier ein <a href="http://designshack.net/articles/css/20-awesome-resources-for-twitter-bootstrap-lovers/" target="_blank">Link zu 20 coolen Ressourcen</a> rund um die Thematik. Damit wird es auch leichter eine auf Bootstrap basierende Anwendung zu bauen, die nicht <em>sofort</em> nach Bootstrap aussieht ;)</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/user-interfaces/'>User Interfaces</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/bootstrap/'>bootstrap</a>, <a href='http://ddiupbblogs.wordpress.com/tag/css-2/'>css</a>, <a href='http://ddiupbblogs.wordpress.com/tag/javascript/'>javascript</a>, <a href='http://ddiupbblogs.wordpress.com/tag/twitter/'>twitter</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1576/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1576&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/12/coole-ressourcen-fur-nutzer-von-twitter-bootstrap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/4ad3b68d254ac91633e7cdcdf093ad71?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wollepb</media:title>
		</media:content>
	</item>
		<item>
		<title>Spracheingabe für Etherpad Lite &#8211; Wie funktioniert das eigentlich?</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/05/spracheingabe-fur-etherpad-lite-wie-funktioniert-das-eigentlich/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/05/spracheingabe-fur-etherpad-lite-wie-funktioniert-das-eigentlich/#comments</comments>
		<pubDate>Tue, 05 Jun 2012 20:24:17 +0000</pubDate>
		<dc:creator>Edy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Server-side Javascript]]></category>
		<category><![CDATA[etherpad]]></category>
		<category><![CDATA[speech input]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1570</guid>
		<description><![CDATA[Spracheingabe für Etherpad Lite &#8211; Wie funktioniert das eigentlich? Vor Kurzem habe ich ein Plugin für die Spracheingabe in Etherpad Lite veröffentlicht. Nach dem Installieren erscheint in der Button-Leiste ein weiterer Button, der bei Klick darauf die Spracherkennung startet. Doch wie funktioniert das eigentlich? Das will ich im Folgenden erläutern. Zuerst einmal: Spracheingabe funktioniert derzeit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1570&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Spracheingabe für Etherpad Lite &#8211; Wie funktioniert das eigentlich?</p>
<p>Vor Kurzem habe ich ein <a href="http://search.npmjs.org/#/ep_speechinput">Plugin für die Spracheingabe in Etherpad Lite</a> veröffentlicht. Nach dem Installieren erscheint in der Button-Leiste ein weiterer Button, der bei Klick darauf die Spracherkennung startet. Doch wie funktioniert das eigentlich? Das will ich im Folgenden erläutern.<span id="more-1570"></span></p>
<p>Zuerst einmal: Spracheingabe funktioniert derzeit nur in Google Chrome. Andere Browser werden bald sicherlich nachziehen.</p>
<p>Um einem Eingabefeld die Spracheingabe beizubringen, muss dem Eingabefeld nur das Attribut <code>x-webkit-speech</code> hinzugefügt werden. Daraufhin erscheint im Eingabefeld ein Mikrofon-Symbol, das nach einem Klick die Sprachaufzeichnung startet.</p>
<p><a href="https://ddiupbblogs.files.wordpress.com/2012/06/inputfeld.jpg"><img src="https://ddiupbblogs.files.wordpress.com/2012/06/inputfeld.jpg?w=490&#038;h=269" alt="" title="inputfeld" width="490" height="269" class="alignnone size-full wp-image-1571" /></a></p>
<p>Das ganze funktioniert technisch genauso wie &#8220;Siri&#8221; auf einem iPhone: die Aufnahme wird an einen Google-Server gesendet und dort ausgewertet. Der erkannte Text erscheint daraufhin im Eingabefeld.</p>
<h2>Das versteckte Eingabefeld</h2>
<p>Das Problem ist nun: wie schafft man es, dass nach einem Klick auf einen &#8220;normalen&#8221; Button die Sprachaufnahme gestartet wird? Die Idee dazu habe ich bei <a href="http://xing.github.com/wysihtml5/">wysihtml5</a> gefunden: Das Eingabefeld muss über dem eigentlichen Button so positioniert werden, dass das Mikrofon-Symbol genau über dem Button liegt. Anschließend wird das Eingabefeld mit <code>opacity: 0;</code> versteckt. Klicken wir also auf den Button für Spracheingabe, klicken wir eigentlich auf das Mikrofon im Eingabefeld.</p>
<p><a href="https://ddiupbblogs.files.wordpress.com/2012/06/inputfeld2.jpg"><img src="https://ddiupbblogs.files.wordpress.com/2012/06/inputfeld2.jpg?w=490" alt="" title="inputfeld2"   class="alignnone size-full wp-image-1572" /></a></p>
<p>Wird nun der gesprochene Text erkannt, erscheint er im versteckten Eingabefeld. Diesen liest mein Plugin dann aus, löscht ihn aus dem Eingabefeld und fügt ihn anschließend ins Pad ein.</p>
<p>Installiert werden kann das Plugin so: <code>npm install ep_speechinput</code></p>
<p>Weiterführende Links:<br />
<a href="http://search.npmjs.org/#/ep_speechinput">ep_speechinput bei npm</a><br />
<a href="https://github.com/edy-b/ep_speechinput">ep_speechinput bei Github</a><br />
<a href="http://slides.html5rocks.com/#speech-input">Demo von Google</a><br />
<a href="http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html">Speech Input API Specification</a></p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/server-side-javascript/'>Server-side Javascript</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/etherpad/'>etherpad</a>, <a href='http://ddiupbblogs.wordpress.com/tag/speech-input/'>speech input</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1570/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1570&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/05/spracheingabe-fur-etherpad-lite-wie-funktioniert-das-eigentlich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/5d28677d27de20cde2e49a6fb7ec2422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edy</media:title>
		</media:content>

		<media:content url="https://ddiupbblogs.files.wordpress.com/2012/06/inputfeld.jpg" medium="image">
			<media:title type="html">inputfeld</media:title>
		</media:content>

		<media:content url="https://ddiupbblogs.files.wordpress.com/2012/06/inputfeld2.jpg" medium="image">
			<media:title type="html">inputfeld2</media:title>
		</media:content>
	</item>
		<item>
		<title>Bachelor-Arbeit: ADORE</title>
		<link>http://ddiupbblogs.wordpress.com/2012/06/03/bachelor-arbeit-adore/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/06/03/bachelor-arbeit-adore/#comments</comments>
		<pubDate>Sun, 03 Jun 2012 15:32:53 +0000</pubDate>
		<dc:creator>dmmeiners</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[adore]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1558</guid>
		<description><![CDATA[Nun ist es endlich auch bei mir soweit – ich schreibe meine Abschlussarbeit! &#8220;ADORE – An Application for Drawing Object RElations&#8221; soll das gute Stück heißen und es künftig vereinfachen, Verbindungen zwischen Objekten darzustellen. Kennen tut man sowas schon in der speziellen Ausprägung &#8220;Über-wen-kenne-ich-Person-X?&#8221; aus dem ein oder anderen Sozialen Netzwerk wie z.B. StudiVZ oder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1558&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Nun ist es endlich auch bei mir soweit – ich schreibe meine Abschlussarbeit! &#8220;ADORE – An Application for Drawing Object RElations&#8221; soll das gute Stück heißen und es künftig vereinfachen, Verbindungen zwischen Objekten darzustellen. Kennen tut man sowas schon in der speziellen Ausprägung &#8220;Über-wen-kenne-ich-Person-X?&#8221; aus dem ein oder anderen Sozialen Netzwerk wie z.B. StudiVZ oder XING: hier kann man in einer Art Mini-Graph sehen, ob man eine Person noch über andere als den direkten Pfad kennt.</p>
<p><span id="more-1558"></span></p>
<p>Meine Anwendung soll diese Funktion nun verallgemeinern – statt nur Freundschaften zwischen Personen darzustellen, möchte ich einen Ansatz schaffen, um mit möglichst wenig Aufwand Verbindungen in anderen Anwendungsszenarios darzustellen. Hier kann man sich außer Sozialen Netzwerken so etwas vorstellen wie die Verbindungen zwischen Autoren, Papers, Tagungen und Zitaten in einem Research Network. Dabei soll der Ansatz so flexibel wie möglich bleiben, d.h. die Anwendung hat keine domänenspezifische &#8220;Intelligenz&#8221;. So sind auch exotische Szenarios wie z.B. die Beeinflussung von verschiedenen Musikstilen untereinander denkbar. Dazu lege ich ein Modell mit Knoten und Kanten zu Grunde, die typisiert sind. So kann ich die Kante zwischen einem Autor-Knoten und einem Paper-Knoten als &#8220;Autorenschaft&#8221; oder die Kanten von einem Paper A zu einem Paper B als &#8220;Zitat&#8221; klassifizieren.</p>
<p>Technisch soll das Ganze als Webapplikation in HTML5 und JavaScript implementiert werden, die ohne jegliche Server-seitige Verarbeitung auskommt. Die Applikation nimmt ein JSON-Datenfragment entgegen, dass Knoten, Kanten und Pfade enthält und zeichnet diese auf ein gegebenes HTML-Element (z.B. in einen <code>&lt;div&gt;</code>-Tag). Die typisierten Knoten (die auch nur <code>&lt;div&gt;</code>s sind) und Kanten werden per CSS formatiert. Die Kanten werden mittels des tollen <a href="http://jsplumb.org/jquery/demo.html">jsPlumb</a> gezeichnet. Die Idee ist es dann, für ein neues Anwendungsszenario entsprechend der typisierten Knoten und Kanten nur neue CSS-Regeln anlegen zu müssen.</p>
<p>Der aufmerksame Leser bemerkt hier natürlich, dass noch etwas fehlt: der eingegebene JSON-Datensatz muss natürlich zuerst einmal erzeugt werden. D.h. wir müssen die Daten aus dem Format der Fremd-Anwendung, z.B. aus der <a href="https://developers.facebook.com/docs/opengraph/">Facebook Open Graph API</a> oder der <a href="http://www.informatik.uni-trier.de/~ley/db/">DBLP</a> erst einmal in unser Format konvertieren und die Daten evtl. aufbereiten (z.B. Pfade finden, wenn nur Knoten und Kanten gegeben sind) – dies soll jedoch vorerst nicht Teil dieser Arbeit sein.</p>
<p>Ein weitere Teil der Arbeit wird es sein, einmal zu schauen, welche Möglichkeiten, Objektrelationen mittel JavaScript zu zeichnen, es schon gibt – das sind nämlich eine Menge. Zudem unterscheiden sich diese in ihrer Flexibilität (entweder zu speziell auf ein Anwendungsszenario bezogen oder so elementar, das es ein &#8220;JavaScript-Zeichenprogramm&#8221; ist) und der Ausgefeiltheit der Implementierung (z.B. wie stark das Paradigma Trennung von Daten, Logik und Darstellung eingehalten wurde). Dieser Teil der Arbeit ist vielleicht mit der schwierigste: die Masse an vorhandenen JavaScript-Bibliotheken zu sichten und dann ein gute Begründung finden, warum denn jetzt mein Ansatz überhaupt besser ist :-)</p>
<p>Weitere Details werde ich regelmäßig hier auf dem Blog bekannt geben und natürlich werde ich auch über das Fortkommen der Arbeit berichten, der Quellcode wird außerdem immer auf <a href="https://github.com/danmei/adore">GitHub</a> zu finden sein.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/css/'>CSS</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/html/'>HTML</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-networking/'>Social Networking</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/visualisierung/'>Visualisierung</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/adore/'>adore</a>, <a href='http://ddiupbblogs.wordpress.com/tag/graph/'>graph</a>, <a href='http://ddiupbblogs.wordpress.com/tag/html5/'>html5</a>, <a href='http://ddiupbblogs.wordpress.com/tag/javascript/'>javascript</a>, <a href='http://ddiupbblogs.wordpress.com/tag/json/'>json</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1558/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1558&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/06/03/bachelor-arbeit-adore/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3d1aca5227a01ee70023d2b2bb7087f1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dmmeiners</media:title>
		</media:content>
	</item>
		<item>
		<title>Package.json für ein node.js-Modul erstellen</title>
		<link>http://ddiupbblogs.wordpress.com/2012/05/23/package-json-fuer-ein-node-js-modul-erstellen/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/05/23/package-json-fuer-ein-node-js-modul-erstellen/#comments</comments>
		<pubDate>Wed, 23 May 2012 20:01:28 +0000</pubDate>
		<dc:creator>Edy</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Server-side Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[package]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1552</guid>
		<description><![CDATA[Wer ein Modul für node.js schreibt und es jedem öffentich zugänglich machen möchte, kommt um eine package.json nicht herum. In dieser Datei stehen Name, Versionsnummer, Autoren, Paketabhängigkeiten und viele Andere zum Modul gehörende Angaben. Da es umständlich ist, eine ganze JSON-Datei selbst zu schreiben, bietet npm ein Hilfsmitel, das einen bei der Erstellung unterstützt, indem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1552&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wer ein Modul für node.js schreibt und es jedem öffentich zugänglich machen möchte, kommt um eine package.json nicht herum. In dieser Datei stehen Name, Versionsnummer, Autoren, Paketabhängigkeiten und viele Andere zum Modul gehörende <a href="http://npmjs.org/doc/json.html">Angaben</a>.</p>
<p>Da es umständlich ist, eine ganze JSON-Datei selbst zu schreiben, bietet npm ein Hilfsmitel, das einen bei der Erstellung unterstützt, indem es Fragen zum Modul stellt, deren Antworten dann direkt in die package.json geschrieben werden: <a href="http://npmjs.org/doc/init.html">npm init</a>.</p>
<p>Leider werden bereits installierte Module, die bereits im Verzeichnis node_modules installiert sind, nicht in die package.json aufgenommen. Dazu gibt es aber auch eine einfache Lösung: beim Installieren eines Modules den Parameter <code>--save</code> benutzen: <code>npm install express --save</code>.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/server-side-javascript/'>Server-side Javascript</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/node-js/'>node.js</a>, <a href='http://ddiupbblogs.wordpress.com/tag/npm/'>npm</a>, <a href='http://ddiupbblogs.wordpress.com/tag/package/'>package</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1552/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1552&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/05/23/package-json-fuer-ein-node-js-modul-erstellen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/5d28677d27de20cde2e49a6fb7ec2422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edy</media:title>
		</media:content>
	</item>
		<item>
		<title>Socket.IO: Empfängerkreis einer Nachricht einschränken</title>
		<link>http://ddiupbblogs.wordpress.com/2012/05/08/socket-io-empfaengerkreis-einer-nachricht-einschraenken/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/05/08/socket-io-empfaengerkreis-einer-nachricht-einschraenken/#comments</comments>
		<pubDate>Tue, 08 May 2012 14:59:28 +0000</pubDate>
		<dc:creator>Edy</dc:creator>
				<category><![CDATA[Server-side Javascript]]></category>
		<category><![CDATA[Technologien]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[socket.io]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1545</guid>
		<description><![CDATA[Socket.IO eigenet sich wunderbar zur Kommunikation zwischen Client und Server. Der Client schickt dem Server eine Nachricht, der Server schickt dem Client eine Nachricht zurück. Am Besten kann man sich einen Chat vorstellen. Ich schreibe eine Nachricht und andere Benutzer sehen diese sofort. Bei meiner Arbeit an SciFlowWriter habe ich mehrere Widgets implementiert, die ebenfalls [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1545&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://socket.io/">Socket.IO</a> eigenet sich wunderbar zur Kommunikation zwischen Client und Server. Der Client schickt dem Server eine Nachricht, der Server schickt dem Client eine Nachricht zurück. Am Besten kann man sich einen Chat vorstellen. Ich schreibe eine Nachricht und andere Benutzer sehen diese sofort.<span id="more-1545"></span></p>
<p>Bei meiner Arbeit an SciFlowWriter habe ich mehrere Widgets implementiert, die ebenfalls über Socket.IO mit dem Server kommunizieren. Eins meiner Ziele war es, dass ein Benutzer z.B. eine Literaturliste pflegen und andere Benutzer die Änderungen sofort sehen können. Ansich funktioniert das wunderbar, nur leider bekamen <i>alle</i> anderen Benutzer, die mit diesem Pad nichts zu tun haben, ebenfalls diese Änderungen mit.</p>
<p>Jede Nachricht an den Server enthält eine Pad-ID. Anhand dieser ID werden die Daten in den Pads gespeichert. Nachrichten vom Server enthalten ebenfalls diese ID. Jetzt müsste ich in den Widgets einfach nur prüfen, ob die empfangene Nachricht für das Widget in einem bestimmten Pad bestimmt ist und ggf. die Nachricht verwerfen.</p>
<p>Die Bessere Lösung für das Problem sind jedoch <a href="https://github.com/learnboost/socket.io#rooms">&#8220;Räume&#8221;</a>, die in Socket.IO benutzt werden können. Jedem Pad wird also ein eigener Raum zugewiesen. Jetzt können nur die Benutzer, die sich in diesem Raum befinden, Nachrichten erhalten, die nur an diesen Raum geschickt werden.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/server-side-javascript/'>Server-side Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/'>Technologien</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/namespaces/'>namespaces</a>, <a href='http://ddiupbblogs.wordpress.com/tag/nodejs/'>NodeJS</a>, <a href='http://ddiupbblogs.wordpress.com/tag/socket-io/'>socket.io</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1545/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1545&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/05/08/socket-io-empfaengerkreis-einer-nachricht-einschraenken/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/5d28677d27de20cde2e49a6fb7ec2422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edy</media:title>
		</media:content>
	</item>
		<item>
		<title>Login mit OAuth für Node.js</title>
		<link>http://ddiupbblogs.wordpress.com/2012/04/25/login-mit-oauth-fur-node-js/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/04/25/login-mit-oauth-fur-node-js/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 13:40:39 +0000</pubDate>
		<dc:creator>Edy</dc:creator>
				<category><![CDATA[Kooperatives Schreiben]]></category>
		<category><![CDATA[Server-side Javascript]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[mendeley]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1542</guid>
		<description><![CDATA[Bei der Weiterentwickling von SciFlowWriter implementiere ich u.A. die Benutzerauthentifizierung. Dabei muss ich sicherstellen, dass nur eingeloggte Benutzer Zugriff auf ihre Dokumente bekommen. Dazu müssen sie sich mit ihrem vorhandenen twitter-, Facebook- oder Mendeley-Account einloggen. Für Node.js gibt es bereits mehrere Libraries, die OAuth unterstützen. Ich habe mir connect-auth und everyauth angesehen und mich u.A. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1542&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Bei der Weiterentwickling von SciFlowWriter implementiere ich u.A. die Benutzerauthentifizierung. Dabei muss ich sicherstellen, dass nur eingeloggte Benutzer Zugriff auf ihre Dokumente bekommen. Dazu müssen sie sich mit ihrem vorhandenen twitter-, Facebook- oder Mendeley-Account einloggen.<span id="more-1542"></span></p>
<p>Für Node.js gibt es bereits mehrere Libraries, die OAuth unterstützen. Ich habe mir <a href="https://github.com/ciaranj/connect-auth">connect-auth</a> und <a href="http://everyauth.com/">everyauth</a> angesehen und mich u.A. wegen der einfacheren Erweiterbarkeit für everyauth entschieden. Welche weitere Gründe für everyauth sprechen, hat Brian Noguchi (der Entwickler von everyauth) auf <a href="http://stackoverflow.com/a/6197767/783207">Stack Overflow</a> zusammengefasst.</p>
<p>Everyauth bietet Authentifizierung über twitter, Facebook, Google, (von mir beigesteuert und ab der nächsten Version auch) Mendeley und viele weitere bekannte Dienste.</p>
<p>Wie everyauth eingebunden wird, kann in der Dokumentation nachgelesen werden. Dort gibt es zu jedem Provider Code-Beispiele.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/themen/kooperatives-schreiben/'>Kooperatives Schreiben</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/server-side-javascript/'>Server-side Javascript</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/facebook/'>facebook</a>, <a href='http://ddiupbblogs.wordpress.com/tag/login/'>login</a>, <a href='http://ddiupbblogs.wordpress.com/tag/mendeley/'>mendeley</a>, <a href='http://ddiupbblogs.wordpress.com/tag/node-js/'>node.js</a>, <a href='http://ddiupbblogs.wordpress.com/tag/oauth/'>oauth</a>, <a href='http://ddiupbblogs.wordpress.com/tag/twitter/'>twitter</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1542/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1542/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1542&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/04/25/login-mit-oauth-fur-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/5d28677d27de20cde2e49a6fb7ec2422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edy</media:title>
		</media:content>
	</item>
		<item>
		<title>Entwicklung einer Android-Tablet-Anwendung mit Schwerpunkt auf Social Networking im Rahmen wissenschaftlicher Veranstaltungen</title>
		<link>http://ddiupbblogs.wordpress.com/2012/04/24/entwicklung-einer-android-tablet-anwendung-mit-schwerpunkt-auf-social-networking-im-rahmen-wissenschaftlicher-veranstaltungen/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/04/24/entwicklung-einer-android-tablet-anwendung-mit-schwerpunkt-auf-social-networking-im-rahmen-wissenschaftlicher-veranstaltungen/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 10:01:50 +0000</pubDate>
		<dc:creator>caiuspb</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1523</guid>
		<description><![CDATA[Das war es nun mit meiner Bachelorarbeit. Die erste Version von ginkgo mobile steht und die Präsentation habe ich gehalten. Obwohl es viel Arbeit war und ich sicherlich um ein paar Nerven ärmer bin, hat es trotzdem viel Spaß gemacht. Hier sind die Folien zu meiner Abschlusspräsentation: View more PowerPoint from caiuspb Einsortiert unter:Allgemein<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1523&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Das war es nun mit meiner Bachelorarbeit. Die erste Version von ginkgo mobile steht und die Präsentation habe ich gehalten. Obwohl es viel Arbeit war und ich sicherlich um ein paar Nerven ärmer bin, hat es trotzdem viel Spaß gemacht. </p>
<p>Hier sind die Folien zu meiner Abschlusspräsentation: </p>
<div style="width:425px;" id="__ss_12665167"> <strong><a href="http://www.slideshare.net/caiuspb/entwicklung-einer-androidtabletanwendung-mit-schwerpunkt-auf-social-networking-im-rahmen-wissenschaftlicher-veranstaltungen-12665167" target="_blank"></a></strong> <iframe src='http://www.slideshare.net/slideshow/embed_code/12665167' width='425' height='348' scrolling='no'></iframe>
<div style="padding:5px 0 12px;"> View more <a href="http://www.slideshare.net/thecroaker/death-by-powerpoint" target="_blank">PowerPoint</a> from <a href="http://www.slideshare.net/caiuspb" target="_blank">caiuspb</a> </div>
</p></div>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/allgemein/'>Allgemein</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1523/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1523&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/04/24/entwicklung-einer-android-tablet-anwendung-mit-schwerpunkt-auf-social-networking-im-rahmen-wissenschaftlicher-veranstaltungen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f443386f3a3fba74d49376190cdec95b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">caiuspb</media:title>
		</media:content>
	</item>
		<item>
		<title>Konzeption und agile Entwicklung einer REST-Schnittstelle für eine Rails-basierte Scientific Event Management Plattform</title>
		<link>http://ddiupbblogs.wordpress.com/2012/04/23/konzeption-und-agile-entwicklung-einer-rest-schnittstelle-fur-eine-rails-basierte-scientific-event-management-plattform/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/04/23/konzeption-und-agile-entwicklung-einer-rest-schnittstelle-fur-eine-rails-basierte-scientific-event-management-plattform/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 09:46:49 +0000</pubDate>
		<dc:creator>chrisupb</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[ginkgo]]></category>
		<category><![CDATA[masterarbeit]]></category>
		<category><![CDATA[präsentation]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[roar]]></category>
		<category><![CDATA[test-driven]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1514</guid>
		<description><![CDATA[Mit der Präsentation ist meine Masterarbeit nun erfolgreich beendet. Ein Konzept, anhand dessen die ginkgo-API komplett entwickelt werden kann, ist im projekteigenen Wiki vorhanden. Der zugehörige Prototyp läuft seit einigen Wochen stabil und setzt Ressourcen in den Bereichen Nutzer, wissenschaftliche Veranstaltungen, private Nachrichten, Kurznachrichten und Activity Stream um. Die rund 120 Features (dabei handelt es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1514&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Mit der Präsentation ist meine Masterarbeit nun erfolgreich beendet. Ein Konzept, anhand dessen die ginkgo-API komplett entwickelt werden kann, ist im projekteigenen Wiki vorhanden. Der zugehörige Prototyp läuft seit einigen Wochen stabil und setzt Ressourcen in den Bereichen Nutzer, wissenschaftliche Veranstaltungen, private Nachrichten, Kurznachrichten und Activity Stream um.</p>
<p>Die rund 120 Features (dabei handelt es sich um vorhandene und gewünschte Funktionalitäten aus Nutzersicht) waren ein guter Startpunkt, um die für die REST-Schnittstelle benötigten Ressourcen und Repräsentationen herzuleiten.</p>
<p>Kombiniert man das RAILS-Framework mit einer Softwarekomponente, welche die Erstellung der Repräsentationen vereinfacht (z.B. <a href="https://github.com/apotonick/roar">ROAR</a>), ist die Umsetzung einer REST-Schnittstelle sehr elegant möglich.</p>
<p>Mir persönlich hat es sehr viel Spaß gemacht, mit den für mich ganz neuen Technologien Rails und Ruby zu arbeiten und bedanke mich für die Unterstützung aus dem ginkgo-dev-Team!</p>
<p>Hier nun die Folien der Abschlusspräsentation:</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/12649542' width='425' height='348' scrolling='no'></iframe>
<p>&nbsp;</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/ruby-on-rails/'>Ruby on Rails</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/social-media-themen/'>Social Media</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/features/'>features</a>, <a href='http://ddiupbblogs.wordpress.com/tag/ginkgo/'>ginkgo</a>, <a href='http://ddiupbblogs.wordpress.com/tag/masterarbeit/'>masterarbeit</a>, <a href='http://ddiupbblogs.wordpress.com/tag/prasentation/'>präsentation</a>, <a href='http://ddiupbblogs.wordpress.com/tag/rails/'>rails</a>, <a href='http://ddiupbblogs.wordpress.com/tag/rest/'>REST</a>, <a href='http://ddiupbblogs.wordpress.com/tag/roar/'>roar</a>, <a href='http://ddiupbblogs.wordpress.com/tag/test-driven/'>test-driven</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1514/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1514/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1514&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/04/23/konzeption-und-agile-entwicklung-einer-rest-schnittstelle-fur-eine-rails-basierte-scientific-event-management-plattform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8e7c6fd961656623f5fe3c32530fc85a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisupb</media:title>
		</media:content>
	</item>
		<item>
		<title>Agile Softwareentwicklung</title>
		<link>http://ddiupbblogs.wordpress.com/2012/04/16/agile-softwareentwicklung/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/04/16/agile-softwareentwicklung/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 17:54:49 +0000</pubDate>
		<dc:creator>toschult</dc:creator>
				<category><![CDATA[tools]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[agile softwareentwicklung]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1506</guid>
		<description><![CDATA[Mir bleiben noch 2 Wochen bis zur Abgabe meiner Bachelorarbeit und zur Zeit mache ich nicht viel anderes als schreiben. Ein Teil meiner Arbeit ist der Einsatz agiler Entwicklungsmethoden. Bei der Recherche nach guten Ansätzen Scrum zu erläutern bin ich auf ein meiner Meinung nach sehr gutes Video zu dem Thema gestoßen, interessiert vielleicht auch [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1506&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Mir bleiben noch 2 Wochen bis zur Abgabe meiner Bachelorarbeit und zur Zeit mache ich nicht viel anderes als schreiben.</p>
<p>Ein Teil meiner Arbeit ist der Einsatz agiler Entwicklungsmethoden. Bei der Recherche nach guten Ansätzen Scrum zu erläutern bin ich auf ein meiner Meinung nach sehr gutes Video zu dem Thema gestoßen, interessiert vielleicht auch den Ein oder Anderen:</p>
<p><span id="more-1506"></span></p>
<p><a href="http://www.ontimenow.com/training/intro-scrum">Scrum in 10 Minutes</a></p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/tools/'>tools</a>, <a href='http://ddiupbblogs.wordpress.com/category/videos/'>Videos</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/agile-softwareentwicklung/'>agile softwareentwicklung</a>, <a href='http://ddiupbblogs.wordpress.com/tag/development/'>development</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1506/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1506&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/04/16/agile-softwareentwicklung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/45e9c3d02a89d031c3b468c87502923f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">toschult</media:title>
		</media:content>
	</item>
		<item>
		<title>UPBReader &#8211; Evaluation und Stand der Arbeit</title>
		<link>http://ddiupbblogs.wordpress.com/2012/04/16/upbreader-evaluation-und-stand-der-arbeit/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/04/16/upbreader-evaluation-und-stand-der-arbeit/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 11:02:59 +0000</pubDate>
		<dc:creator>andhof</dc:creator>
				<category><![CDATA[ePub]]></category>
		<category><![CDATA[Evaluation]]></category>
		<category><![CDATA[Mobile Computing]]></category>
		<category><![CDATA[masterarbeit]]></category>
		<category><![CDATA[upbreader]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1494</guid>
		<description><![CDATA[Zuerst nochmal Danke an alle die bei meiner Evaluierung vom UPBReader mitgemacht haben. Es sind doch echt viele gute Ideen und Anmerkungen dabei heraus gekommen. Selbstverständlich haben sich auch ein paar Bugs gezeigt, die mir bis dahin nicht aufgefallen waren. In wie weit ich die neuen Ideen noch umsetzen kann, sei mal dahin gestellt, denn [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1494&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Zuerst nochmal Danke an alle die bei meiner Evaluierung vom UPBReader mitgemacht haben. Es sind doch echt viele gute Ideen und Anmerkungen dabei heraus gekommen. <span id="more-1494"></span>Selbstverständlich haben sich auch ein paar Bugs gezeigt, die mir bis dahin nicht aufgefallen waren. In wie weit ich die neuen Ideen noch umsetzen kann, sei mal dahin gestellt, denn die Evaluierung ist nun auch schon ein paar Tage her und ich bin wieder komplett im Schreiben der Masterarbeit vertieft. Das hat momentan einfach die höchste Priorität.</p>
<p>Zu den ausstehenden Aufgaben gehören das zuende Schreiben der Grobfassung, dann der Feinschliff und anschließend noch das Korrekturlesen. Es bleiben noch genau vier Wochen dafür Zeit, die ich vermutlich auch nutzen werde. Noch lässt sich nicht absehen, ob es am Ende nochmal richtig stressig wird oder nicht aber das kann ja immer passieren. Ich denke aber, dass ich recht gut in der Zeit liege.</p>
<div id="-chrome-auto-translate-plugin-dialog" style="opacity:1!important;background-image:initial!important;background-attachment:initial!important;background-origin:initial!important;background-clip:initial!important;background-color:transparent!important;position:absolute!important;top:0;left:0;overflow-x:visible!important;overflow-y:visible!important;z-index:999999!important;text-align:left!important;display:none;background-position:initial initial!important;background-repeat:initial initial!important;padding:0!important;margin:0!important;">
<div style="max-width:300px!important;color:#fafafa!important;opacity:.8!important;border-color:#000000!important;border-width:0!important;-webkit-border-radius:10px!important;background-color:#363636!important;font-size:16px!important;padding:8px!important;overflow:visible!important;background-image:-webkit-gradient(linear,left top,right bottom,color-stop(0%,#000),color-stop(50%,#363636),color-stop(100%,#000));z-index:999999!important;text-align:left!important;"></div>
<p><img style="position:absolute!important;z-index:-1!important;right:1px!important;top:-20px!important;cursor:pointer!important;-webkit-border-radius:20px;background-color:rgba(200,200,200,0.3)!important;padding:3px 5px 0!important;margin:0!important;" src="http://www.google.com/uds/css/small-logo.png" alt="" /></div>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/epub/'>ePub</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/evaluation/'>Evaluation</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/mobile-computing/'>Mobile Computing</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/masterarbeit/'>masterarbeit</a>, <a href='http://ddiupbblogs.wordpress.com/tag/upbreader/'>upbreader</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1494/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1494&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/04/16/upbreader-evaluation-und-stand-der-arbeit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f14d3201cb243a34b42fe62b07addde0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andhof</media:title>
		</media:content>

		<media:content url="http://www.google.com/uds/css/small-logo.png" medium="image" />
	</item>
		<item>
		<title>ShareJS – Live concurrent editing</title>
		<link>http://ddiupbblogs.wordpress.com/2012/04/11/sharejs-live-concurrent-editing/</link>
		<comments>http://ddiupbblogs.wordpress.com/2012/04/11/sharejs-live-concurrent-editing/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 12:43:19 +0000</pubDate>
		<dc:creator>Edy</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Kooperatives Schreiben]]></category>
		<category><![CDATA[Server-side Javascript]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://ddiupbblogs.wordpress.com/?p=1492</guid>
		<description><![CDATA[ShareJS ist eine &#8220;Operational Transformation&#8221;-Library für Node.JS, die von einem ehemaligen Entwickler von Google Wave programmiert wurde. Genutzt werden kann Sie für gleichzeitige (mehrere Benutzer an verschiedenen Computern) Bearbeitung von Texten oder auch JSON-Objekten. Direkt auf der Startseite befindet sich ein Textfeld, in dem ShareJS getestet werden kann. Es erinnert etwas an Etherpad, lässt sich [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1492&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://sharejs.org/">ShareJS</a> ist eine <a href="http://en.wikipedia.org/wiki/Operational_transformation">&#8220;Operational Transformation&#8221;</a>-Library für Node.JS, die von einem ehemaligen Entwickler von Google Wave programmiert wurde. Genutzt werden kann Sie für gleichzeitige (mehrere Benutzer an verschiedenen Computern) Bearbeitung von Texten oder auch JSON-Objekten.<span id="more-1492"></span></p>
<p>Direkt auf der <a href="http://sharejs.org/">Startseite</a> befindet sich ein Textfeld, in dem ShareJS getestet werden kann. Es erinnert etwas an Etherpad, lässt sich jedoch mit nur vier Zeilen JavaScript-Code in eine Seite einbinden.</p>
<p>Besonders interessant ist die Unterstützung von JSON-Objekten. Das Demo-Spiel <a href="http://sharejs.org/hex.html">Hex</a> zeigt, wie JSON-Objekte zwischen den Spielern synchronisiert werden.</p>
<p>In der <a href="http://sharejs.org/demos.html">Demo-Galerie</a> finden sich weitere Beispiele, wie ShareJS genutzt werden kann. Darunter ein Code Editor und ein Wiki.</p>
<br />Einsortiert unter:<a href='http://ddiupbblogs.wordpress.com/category/technologien/javascript-technologien/'>Javascript</a>, <a href='http://ddiupbblogs.wordpress.com/category/themen/kooperatives-schreiben/'>Kooperatives Schreiben</a>, <a href='http://ddiupbblogs.wordpress.com/category/technologien/server-side-javascript/'>Server-side Javascript</a> Tagged: <a href='http://ddiupbblogs.wordpress.com/tag/node-js/'>node.js</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ddiupbblogs.wordpress.com/1492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ddiupbblogs.wordpress.com/1492/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ddiupbblogs.wordpress.com&#038;blog=23273241&#038;post=1492&#038;subd=ddiupbblogs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ddiupbblogs.wordpress.com/2012/04/11/sharejs-live-concurrent-editing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/5d28677d27de20cde2e49a6fb7ec2422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edy</media:title>
		</media:content>
	</item>
	</channel>
</rss>
