<?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/"
	>

<channel>
	<title>Snackycracky Techblog &#187; Snackycracky Blog</title>
	<atom:link href="http://blog.srvme.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.srvme.de</link>
	<description>Developing with pleasure!</description>
	<lastBuildDate>Thu, 16 May 2013 14:48:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>handle broken hard drive or file system on fedora 17</title>
		<link>http://blog.srvme.de/2013/05/16/handle-broken-hard-drive-or-file-system-on-fedora-17/</link>
		<comments>http://blog.srvme.de/2013/05/16/handle-broken-hard-drive-or-file-system-on-fedora-17/#comments</comments>
		<pubDate>Thu, 16 May 2013 14:22:18 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[read-only]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=888</guid>
		<description><![CDATA[In the Fedora 17 machine, a Hard drive which was mounted on /mnt/c suddenly became read-only. The fstab contents showed the UUID of the ext4 drives. With the help of the command &#8220;blkid&#8221; I could determine that /dev/sdc1 was mounted to /mnt/c (linux-finding-using-uuids-to-update-fstab) After umounting and mounting with several commands nothing helped. Here is what i [...]]]></description>
				<content:encoded><![CDATA[<p>In the Fedora 17 machine, a Hard drive which was mounted on /mnt/c suddenly became read-only.<br />
The fstab contents showed the UUID of the ext4 drives. With the help of the command &#8220;blkid&#8221; I could determine that /dev/sdc1 was mounted to /mnt/c (<a href="http://www.cyberciti.biz/faq/linux-finding-using-uuids-to-update-fstab/">linux-finding-using-uuids-to-update-fstab</a>)</p>
<p>After umounting and mounting with several commands nothing helped. Here is what i did without success:<br />
I tried &#8220;mount -o remount, rw /dev/hdc1&#8243; which stated that i should give the filesystem type as a parameter &#8230;<br />
I tried  &#8221;umount -l /dev/hdc1&#8243; to force umounting. (<a href="http://www.sysadminslife.com/linux/umount-device-is-busy-fehler-beim-unmounten-eines-laufwerks/">umount-device-is-busy-fehler-beim-unmounten-eines-laufwerks</a>)<br />
I killed every process which was using /mnt/c (lsof | grep &#8220;mnt/c&#8221;)</p>
<p>After restarting the machine the drive was writable again but several minutes later it was back in a read-only state and even worse i could not read some directories (I/O Error). I found out, that maybe the drive was (re)mounted with the option&#8221;<code>errors=remount-ro"</code> (<a href="http://unix.stackexchange.com/a/37349">unix.stackexchange.com</a>) But the output of the command on my machine was &#8220;Errors: Continue&#8221; so this were very bad news because the filesystem or the drive must be broken.</p>
<p>The Command &#8220;fsck.ext4 -cDfty -C 0 /dev/sd&#8221; showed that there were no errors (<a href="http://justcheckingonall.wordpress.com/2010/07/18/howto-repair-broken-ext4-partitions/">howto-repair-broken-ext4-partitions</a>). I used it in a GNU Screen so that this time consuming command was not attached to a shell. (<a href="http://www.gnu.org/software/screen/">screen</a>).</p>
<p>After accessing the drive with the scp command the <strong>second time</strong> the filesystem was broken again (problem after restart identically):</p>
<pre class="brush: bash; title: ; notranslate">
[nils@gres ~]$ /usr/local/bin/bakupSql.sh
xx.xx                                         100%   23MB  11.6MB/s   00:02    
[nils@xxx ~]$  /usr/local/bin/bakupSql.sh
scp: /mnt/c/bak/xx/xx.xx: Read-only file system
scp: /mnt/c/bak/xx/xx.xx: truncate: Read-only file system
[1]+  Done                    /usr/local/bin/bakupSql.sh</pre>
<p>Several commands showed, that this drive definitely had some issues:</p>
<pre class="brush: bash; title: ; notranslate">[root@xx ~]# umount /mnt/c
umount: /mnt/c: not mounted
[root@xx ~]# mount /dev/sdc1 /mnt/c
mount: /dev/sdc1: can't read superblock
[root@xx ~]# umount /mnt/c
umount: /mnt/c: not mounted 
[root@xx ~]# fsck.ext4 -cDfty -C 0 /dev/sdc1 
e2fsck 1.42.3 (14-May-2012)
fsck.ext4: Ein Block konnte nicht in einem Zug gelesen werden beim Versuch, /dev/sdc1 zu ?ffnen
K?nnte es eine Partion der L?nge Null sein?</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2013/05/16/handle-broken-hard-drive-or-file-system-on-fedora-17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>setup abap development environment</title>
		<link>http://blog.srvme.de/2013/05/16/setup-abap-development-environment/</link>
		<comments>http://blog.srvme.de/2013/05/16/setup-abap-development-environment/#comments</comments>
		<pubDate>Thu, 16 May 2013 13:48:44 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[ides]]></category>
		<category><![CDATA[sap]]></category>
		<category><![CDATA[setup]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=871</guid>
		<description><![CDATA[install windows server 2008 r2 (standard version)  install java 1.5 download abap trial version from here and unpack on desktop execute &#8220;sapinst.exe&#8221;  in the folder \SAP_NetWeaver_702e_Installation_Master\IM_WINDOWS_X86_64 remember the password you were setting in the sap management console make the instances green by right-clicking on the server and choose &#8220;start&#8221; install sapgui from here open logonpad and click [...]]]></description>
				<content:encoded><![CDATA[<ol>
<li><span style="line-height: 13px;">install windows server 2008 r2 (standard version) </span></li>
<li>install java 1.5</li>
<li><span style="line-height: 13px;">download abap trial version from <a href="http://www.sdn.sap.com/irj/scn/nw-downloads">here</a> and unpack on desktop</span></li>
<li>execute &#8220;sapinst.exe&#8221;  in the folder \SAP_NetWeaver_702e_Installation_Master\IM_WINDOWS_X86_64
<ol>
<li>remember the password you were setting</li>
<li>in the sap management console make the instances green <img src='http://blog.srvme.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  by right-clicking on the server and choose &#8220;start&#8221;<br />
<a href="http://blog.srvme.de/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-19.14.19.png"><img class="alignnone size-full wp-image-873" alt="Screen Shot 2013-04-02 at 19.14.19" src="http://blog.srvme.de/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-19.14.19.png" width="692" height="720" /></a></li>
</ol>
</li>
<li>install sapgui from <a href="http://www.fph.at/test/sap/SAPGUI710.zip">here</a></li>
<li>open logonpad and click on &#8220;new entry&#8221;.
<ol>
<li>goto wizard step 2 and enter:</li>
<li>NSP Local, localhost, 00, NSP and leave the last field blank</li>
<li>finish the wizard</li>
</ol>
</li>
<li>dbl-click on the new entry in the logonpad.</li>
<li>login with user &#8220;ddic&#8221; and self-set-password from the sap installation</li>
<li>open TA: su01 and edit the User &#8220;BCUSER&#8221;. You have to set the passwort in the &#8220;login&#8221; Tab</li>
<li>login again with the user BCUser (Winter01)</li>
<li>goto abap objekt navigator (TA: SE80) Tools -&gt; ABAP -&gt; Overwier</li>
<li>Choose &#8220;Programm&#8221; from the Chombobox</li>
<li>Type &#8220;ZTEST&#8221; in the Textfield below and hit return.</li>
<li>Uncheck &#8220;with TOP incl.&#8221; and finish</li>
</ol>
<p><!--refs:--></p>
<h1><strong><span id="more-871"></span>refs:</strong></h1>
<p>http://scn.sap.com/community/abap/blog/2012/03/26/step-by-step-installation-guide-for-sap-netweaver-as-abap-702-sp6-32-bit-trial-version</p>
<p><a href="http://blog.srvme.de/wp-content/uploads/2013/04/ABAP-Development-Step-by-Step-Installation-Gui...-SCN.pdf">ABAP Development: Step by Step Installation Gui&#8230; | SCN</a></p>
<p><em id="__mceDel">https://fortress.wa.gov/dop/hrms/downloads/SAP%20GUI%20710%20New%20Installation%20Instructions.pdf</em></p>
<p><a href="http://blog.srvme.de/wp-content/uploads/2013/04/SAP-GUI-710-New-Installation-Instructions.pdf">SAP GUI 710 New Installation Instructions</a></p>
<p><iframe width="500" height="375" src="http://www.youtube.com/embed/5GXAFjy_Q-E?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p><a href="http://blog.srvme.de/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-18.44.44.png"><img class="alignnone  wp-image-876" alt="Screen Shot 2013-04-02 at 18.44.44" src="http://blog.srvme.de/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-18.44.44.png" width="126" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2013/05/16/setup-abap-development-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Studienarbeit zu DSLs</title>
		<link>http://blog.srvme.de/2012/02/28/studienarbeit-zu-dsls/</link>
		<comments>http://blog.srvme.de/2012/02/28/studienarbeit-zu-dsls/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 11:47:39 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[dsl]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[metaprogramming]]></category>
		<category><![CDATA[MOP]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=857</guid>
		<description><![CDATA[Untersuchung des sprachorientierten Paradigmas anhand von Metaprogrammierung und einer damit erstellten DSL für Preispolitik in einem Apartmenthaus. Abstract: Sprachorientierte Programmierung ist in dieser Arbeit betrachtet worden. Dazu wurde eine DSL mit Hilfe der Groovy-MOP erstellt, um daran das Paradigma zusammen mit dem Domänenexperten unter folgenden Gesichtspunkten zu bewerten: Lesbarkeit, intuitivem Verständnis und Flexibilität. Der Autor beschreibt intensiv [...]]]></description>
				<content:encoded><![CDATA[<h1>Untersuchung des sprachorientierten Paradigmas anhand von Metaprogrammierung und einer damit erstellten DSL für Preispolitik in einem Apartmenthaus.</h1>
<p><strong>Abstract:</strong></p>
<p>Sprachorientierte Programmierung ist in dieser Arbeit betrachtet worden. Dazu wurde eine</p>
<p>DSL mit Hilfe der Groovy-MOP erstellt, um daran das Paradigma zusammen mit dem</p>
<p>Domänenexperten unter folgenden Gesichtspunkten zu bewerten: Lesbarkeit, intuitivem</p>
<p>Verständnis und Flexibilität. Der Autor beschreibt intensiv die Erstellung der DSL und</p>
<p>damit die Metaprogrammierung der gewählten Programmiersprache.</p>
<iframe src="http://docs.google.com/viewer?url=https%3A%2F%2Fraw.github.com%2Fnilsen31%2Fpaper-dsl%2Fmaster%2Fdokumentation.pdf&hl=&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>
<p class="gde-text"><a href="https://raw.github.com/nilsen31/paper-dsl/master/dokumentation.pdf" class="gde-link">Download (PDF, 825KB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2012/02/28/studienarbeit-zu-dsls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modelgetriebenes Testen einer Webanwendung mit Hilfe von Zustandsautomaten und Testframeworks</title>
		<link>http://blog.srvme.de/2011/07/21/modelgetriebenes-testen-einer-webanwendung-mit-hilfe-von-zustandsautomaten-und-testframeworks/</link>
		<comments>http://blog.srvme.de/2011/07/21/modelgetriebenes-testen-einer-webanwendung-mit-hilfe-von-zustandsautomaten-und-testframeworks/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 07:44:20 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[atl]]></category>
		<category><![CDATA[m2m]]></category>
		<category><![CDATA[m2t]]></category>
		<category><![CDATA[mda]]></category>
		<category><![CDATA[xpand]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=850</guid>
		<description><![CDATA[Abstract—In dieser Arbeit wird das modellbasierte Testen einer Webseite durch das Zusammenspiel von einem aus dieser Applikation per Reverse Engineering entwickelten gerichteten Graphen und Testframeworks beschrieben. Um die Auswahl der gew¨unschten Testframeworks so variabel wie m¨oglich zu gestalten, wurde ein plattformunabh¨angiges Testframework-Modell erstellt, welches eine Schnittmenge der zu implementierenden Testframeworks bildet. Durch eine “Model zu [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Abstract</strong>—In dieser Arbeit wird das modellbasierte Testen<br />
einer Webseite durch das Zusammenspiel von einem aus dieser<br />
Applikation per Reverse Engineering entwickelten gerichteten<br />
Graphen und Testframeworks beschrieben. Um die Auswahl der<br />
gew¨unschten Testframeworks so variabel wie m¨oglich zu gestalten,<br />
wurde ein plattformunabh¨angiges Testframework-Modell<br />
erstellt, welches eine Schnittmenge der zu implementierenden<br />
Testframeworks bildet. Durch eine “Model zu Text” (M2T)<br />
Transformation wird das Testframework-Modell mit Hilfe einer<br />
Templatesprache in spezifischen Testcode gewandelt.<br />
Beim Durchlaufen des mit Hilfe von Reverse Engineering<br />
erstellten Graphen werden bei jedem Zustands¨ubergang Befehle<br />
f ¨ur das Testframework erstellt, um Pfade im Graphen automatisch<br />
durch M2T in Testcode umzuwandeln.</p>
<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fblog.srvme.de%2Fwp-content%2Fuploads%2F2011%2F07%2FAusarbeitung.pdf&hl=&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>
<p class="gde-text"><a href="http://blog.srvme.de/wp-content/uploads/2011/07/Ausarbeitung.pdf" class="gde-link">Download (PDF, 402KB)</a></p>
<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fblog.srvme.de%2Fwp-content%2Fuploads%2F2011%2F07%2Fgraph.pdf&hl=&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>
<p class="gde-text"><a href="http://blog.srvme.de/wp-content/uploads/2011/07/graph.pdf" class="gde-link">Download (PDF, 977KB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2011/07/21/modelgetriebenes-testen-einer-webanwendung-mit-hilfe-von-zustandsautomaten-und-testframeworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vergleich und Evaluation zwischen modernen und traditionellen Datenbankkonzepten unter den Gesichtspunkten Skalierung, Abfragemöglichkeit und Konsistenz</title>
		<link>http://blog.srvme.de/2011/07/21/vergleich-und-evaluation-zwischen-modernen-und-traditionellen-datenbankkonzepten-unter-den-gesichtspunkten-skalierung-abfragemoglichkeit-und-konsistenz/</link>
		<comments>http://blog.srvme.de/2011/07/21/vergleich-und-evaluation-zwischen-modernen-und-traditionellen-datenbankkonzepten-unter-den-gesichtspunkten-skalierung-abfragemoglichkeit-und-konsistenz/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 07:22:02 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=844</guid>
		<description><![CDATA[http://www.amazon.de/Evaluation-traditionel&#8230; &#160; Kurzbeschreibung &#160; Zehntausende Web-Services verwenden relationale Datenbanken, um Daten zu speichern und auszulesen. Im Vergleich zu modernen Konzepten können relationale Datenbanken als wichtigster Stellvertreter für &#8220;traditionelle Technologien&#8221; bezeichnet werden. Wenn man als Entwickler zu Seiten wie Google.com, Facebook.com, Amazon.com, Digg.com, Ebay.com, Yahoo.com, Twitter.com oder Dawanda.com surft, wird meist angenommen, dass eine verteilte relationale [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignnone" style="float: left;" src="http://ecx.images-amazon.com/images/I/417bew0fwaL._SL500_AA300_.jpg" alt="" width="300" height="300" /></p>
<h3><a title="auf amazon" href="http://www.amazon.de/Evaluation-traditionellen-Datenbankkonzepten-Gesichtspunkten-Abfragem%C3%B6glichkeit/sim/3842856792/2">http://www.amazon.de/Evaluation-traditionel&#8230;</a></h3>
<p>&nbsp;</p>
<h3>Kurzbeschreibung</h3>
<p>&nbsp;</p>
<div>
<p>Zehntausende Web-Services verwenden relationale Datenbanken, um Daten zu speichern und auszulesen. Im Vergleich zu modernen Konzepten können relationale Datenbanken als wichtigster Stellvertreter für &#8220;traditionelle Technologien&#8221; bezeichnet werden. Wenn man als Entwickler zu Seiten wie Google.com, Facebook.com, Amazon.com, Digg.com, Ebay.com, Yahoo.com, Twitter.com oder Dawanda.com surft, wird meist angenommen, dass eine verteilte relationale Datenbank verwendet wird. Die Annahme ist zu 50% richtig, jedoch ist die Datenhaltung meist nicht relational. Diese Großunternehmen verwalten mehrere hundert Gigabytes, bis hin zu 100.000 Gigabyte an Daten, und mussten in den letzten sechs Jahren Lösungen finden, um erfolgreich diese riesigen Datenmengen zu beherrschen. Google erfand vor ca. sieben Jahren ein Verfahren, um Datenmengen im Petabytebereich zu beherrschen. Facebook entwickelte selbst eine Datenbanktechnologie, um die Posteingänge von Benutzern verfügbar zu machen, Twitter.com adaptiert diese Technologie für andere Zwecke. Amazon.com entwickelte &#8220;Dynamo&#8221;, um Hochverfügbarkeit für deren weltgrößte E-Commerce Plattform zu schaffen. Diese und andere Eigenentwicklungen entstanden aus der Notwendigkeit heraus, riesige Datenmengen bzw. Datenbanken hoch verfügbar, konsistent und skalierbar zu machen. Seit den letzten drei Jahren sind alternative &#8220;Open-Source-Implementierungen&#8221; dieser Entwicklungen entstanden. Die Veröffentlichung der Konzepte und Technologien führten zu einer ganzen Bewegung namens &#8220;NoSQL&#8221;. Sind diese Konzepte vorteilhafter, um eine bessere und für Entwickler einfachere Skalierung, Abfragemöglichkeit und Datenkonsistenz in einem hochverfügbaren Datenbanksystem, zu gewährleisten? Wie werden komplexe Abfragen in modernen und traditionellen verteilten Systemen gemacht und wie werden diese ausgeführt? Speziell stellt sich die Frage, ob das MapReduce Verfahren ein vollständiger Ersatz für SQL ist. Für welche Einsatzzwecke sind beide besonders gut geeignet und für welche weniger? Ausgewählte Konzepte moderner, verteilter Datenbanksysteme sind zentrale Bestandteile dieser Arbeit. Dazu werden die Eigenschaften Verfügbarkeit, Konsistenz und Skalierbarkeit in den verteilten Systemen ausführlicher beschrieben, um zu analysieren, ob gegenüber relationalen Datenbanken Vorteile und Nachteile dieser Eigenschaften existieren. Ergebnisse dieser Aufgabenstellung sollen Chancen und Risiken von modernen Datenbanken aufdecken. Key-Value-Stores sind die einfachsten Vertreter moderner Datenbanken. &#8220;Riak&#8221; wird in dieser Arbeit als Implementierung moderner Konzepte benutzt. &#8220;MySQL&#8221; soll als Vertreter für relationale Datenbanken verwendet werden da dieser Vertreter eine weit verbreitete Open-Source-Implementierung von relationalen Datenbanken ist. Andere Datenbankkonzepte/Datenbanken werden in dieser Arbeit nicht behandelt. Dazu zählen unter anderem objektorientierte, objektrelationale, hierarchische, spaltenorientierte und graphenorientierte Datenbankformen, sowie Repräsentanten von relationalen Datenbanken, wie &#8220;db2&#8221;, &#8220;Sybase&#8221; oder &#8220;Oracle&#8221;, da diese nicht Open-Source sind. Das konsistente Hashfunktionsverfahren wird zuerst kurz erläutert, um theoretische Grundlagen für die Implementierung moderner und traditioneller Skalierungsmethoden zu legen. Danach werden, im Kontext moderner Datenbanktechnologien, wichtige theoretische Konzepte zur Skalierung erläutert. Dazu werden die drei wichtigsten Eigenschaften verteilter Systeme definiert und in Zusammenhang gebracht (Verfügbarkeit, Konsistenz und Partitionstoleranz). Dementsprechend wird das Prinzip &#8220;letztendliche Konsistenz&#8221; vorgestellt, welches eine zentrale Rolle bei modernen verteilten Systemen darstellt. Weiterhin wird das MapReduce-Verfahren konzeptionell vorgestellt. Es wird aus zwei Perspektiven betrachtet: Filterung von Daten durch benutzerdefinierte Funktionen anhand eines Beispiels und in diesem Zusammenhang die Ausführung des Verfahrens in verteilten Systemen. Implementierungen dieser theoretischen Ansätze werden in diesem Kapitel aufgelistet. Eine detaillierte Beschreibung von &#8220;Key-Value-Stores&#8221; (KVS) wird im nächsten Kapitel bereitgestellt. KVS sind die einfachste Form von modernen Datenbanken, an denen sich die grundlegenden Konzepte abstrakt beschreiben lassen. &#8220;Riak&#8221; ist ein wichtiger Vertreter für moderne Datenbanken und KVS. Die theoretischen Grundlagen der drei zentralen Eigenschaften verteilter System werden an dieser direkten Implementierung gefestigt und erweitert. Dem folgt eine kurze Vorstellung von relationalen Datenbanken. Dabei wird ausschließlich auf Möglichkeiten zur Skalierung eingegangen. Im letzten Kapitel werden zuerst beide Datenbanktechnologien hinsichtlich der Skalierung, Konsistenz, Verfügbarkeit und Komplexität verglichen. Weiterhin findet ein Vergleich zwischen MapReduce und SQL bzw. &#8220;benutzerdefinierten Funktionen&#8221; anhand von Einsatzmöglichkeiten, Stabilität und Komplexität statt. Der Vergleich von MySQL und Riak erfolgt durch eine Analyse der Abfragemöglichkeiten mittels Stored Procedures und MapReduce anhand mehrerer Beispiele. Hierbei sollen die zentralen Fragestellungen beantwortet werden. Abschließend werden die Ergebnisse zusammengefasst und bewertet.</p>
</div>
<h3>Über den Autor</h3>
<p>Nils M. Petersohn B.Sc., wurde 1983 in Leipzig geboren. Bereits während des Abiturs belegte der Autor zahlreiche Ihm in Deutschland und in Amerika verfügbaren Informatikkurse. Das Studium der Wirtschaftsinformatik befriedigte seine Wissbegierde nicht und er entschied sich, zu einem Studium der reinen Informatik, welches er im Herbst 2010 erfolgreich beendete. Mehr als ein Dutzend industrieller Softwareprojekte prägten seinen Erfahrungsschatz ausgiebig während des Studiums. So entstanden in den letzten 4-5 Jahren mehrere geschäftskritische Anwendungen die u.a. auf performante Datenhaltung basieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2011/07/21/vergleich-und-evaluation-zwischen-modernen-und-traditionellen-datenbankkonzepten-unter-den-gesichtspunkten-skalierung-abfragemoglichkeit-und-konsistenz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forensiche Untersuchung eines Linux Systems (Fh-Brandenburg 2011)</title>
		<link>http://blog.srvme.de/2011/06/24/forensiche-untersuchung-eines-linux-systems-fh-brandenburg-2011/</link>
		<comments>http://blog.srvme.de/2011/06/24/forensiche-untersuchung-eines-linux-systems-fh-brandenburg-2011/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 17:56:21 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[forensik]]></category>
		<category><![CDATA[proc]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=836</guid>
		<description><![CDATA[hier meine Ausarbeitung zum Thema &#8220;Linux/Unix Forensik&#8221; dieses Sommersemester für Prof Creutzburg an der Fh-Brandenburg. Ich hoffe auf positives Feedback von Ihnen Titel: Forensiche Untersuchung eines Linux Systems Abstract: Diese Arbeit soll einen hypothetischen Kriminalfall an einem Linux/Unix Serversystem näher beschreiben. Die wichtigsten Gesichtspunkte sind dabei die Möglichkeiten zur Sammlung und Interpretation von forensisch relevanten Daten. [...]]]></description>
				<content:encoded><![CDATA[<p>hier meine Ausarbeitung zum Thema &#8220;Linux/Unix Forensik&#8221; dieses Sommersemester für Prof Creutzburg an der Fh-Brandenburg. Ich hoffe auf positives Feedback von Ihnen <img src='http://blog.srvme.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div><strong>Titel:</strong></div>
<div>Forensiche Untersuchung eines Linux Systems</div>
<div><strong>Abstract:</strong></div>
<div>Diese Arbeit soll einen hypothetischen Kriminalfall an einem Linux/Unix Serversystem näher<br />
beschreiben. Die wichtigsten Gesichtspunkte sind dabei die Möglichkeiten zur Sammlung und<br />
Interpretation von forensisch relevanten Daten.<br />
Der fiktive Ermittler (Agent Mulder) soll einen Einbruch eines Cyberkriminalisten weitestgehend<br />
untersuchen und rekonstruieren. In einem realen Ermittlungsfall sind die hier<br />
genannten Methoden zur Untersuchung einsetzbar und notwendig, jedoch wird in dieser<br />
Ausarbeitung angenommen, dass alle Vorgänge ohne jeglichen Komplikationen und Umwege<br />
ablaufen. Alle bekannten Methoden und Tools können nicht vorgestellt werden. Es soll keine<br />
Untersuchung von Malware sein. Angreifbare Services werden nur erwähnt aber nicht näher<br />
dargestellt. Angreifertools und deren Bedeutung wird nur kurz erwähnt. Der Fokus liegt<br />
nicht auf einem bestimmten Unix/Linux Betriebssystem. Alle anderen Beteiligten, die in<br />
realen Ermittlungen vorkommen werden durch Symbolfiguren ersetzt. Der Ermittler steht<br />
somit für ein ganzes Ermittlungsteam.</div>
<div></div>
<div><strong>Literaturverzeichnis:</strong></div>
<div><strong><br />
</strong>[ANC11] Altheide, C. ; Nikkel, B. ; Carvey, H.: Digital Forensics With Open Source<br />
Tools: Using Open Source Platform Tools for Performing Computer Forensics on<br />
Target Systems: Windows, MAC, Linux, Unix, Etc. Syngress Media Inc, 2011<br />
[Bar04] Barrett, D.J.: Linux kurz &amp; gut. O’Reilly Germany, 2004<br />
[CAe10] Casey, E. ; Altheide, C. ; ebrary, Inc: Handbook of digital forensics and<br />
investigation. Academic, 2010<br />
[Car05] Carrier, B.: File system forensic analysis. Addison-Wesley Professional, 2005<br />
[Har00] Harvey, J.P.: Network sniffer for monitoring and reporting network information<br />
that is not privileged beyond a user’s privilege level. März 28 2000. – US Patent<br />
6,044,401<br />
[htt11] <a href="http://de.wikipedia.org/wiki/Unix:">http://de.wikipedia.org/wiki/Unix:</a> UNIX. <a href="http://de.wikipedia.org/">http://de.wikipedia.org/</a><br />
wiki/Unix. Version: 18.6. 2011<br />
[lin] Linux. <a href="http://de.wikipedia.org/wiki/Linux#Technik">http://de.wikipedia.org/wiki/Linux#Technik</a><br />
[MP01] Mandia, K. ; Prosise, C.: Incident Response: Investigating Computer Crime.<br />
(2001)<br />
[PAH08] Pogue, C. ; Altheide, C. ; Haverkos, T.: UNIX and Linux Forensic Analysis<br />
DVD Toolkit. Syngress Publishing, 2008<br />
[War11] Ward, Mark: 40 years of Unix. <a href="http://news.bbc.co.uk/2/hi/technology/">http://news.bbc.co.uk/2/hi/technology/</a><br />
8205976.stm. Version: 18.6. 2011<br />
[Wik] Wiki: Linux-Einsatzbereiche. <a href="http://de.wikipedia.org/wiki/">http://de.wikipedia.org/wiki/</a><br />
Linux-Einsatzbereiche<br />
[wik11a] ARP-Spoofing. <a href="http://de.wikipedia.org/wiki/ARP-Spoofing">http://de.wikipedia.org/wiki/ARP-Spoofing</a>. Version: 19.6.<br />
2011<br />
[wik11b] Sniffer. <a href="http://de.wikipedia.org/wiki/Sniffer">http://de.wikipedia.org/wiki/Sniffer</a>. Version: 19.6. 2011</div>
<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fblog.srvme.de%2Fwp-content%2Fuploads%2F2011%2F06%2FIT-Medienforensik_SS11_Petersohn.pdf&hl=&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>
<p class="gde-text"><a href="http://blog.srvme.de/wp-content/uploads/2011/06/IT-Medienforensik_SS11_Petersohn.pdf" class="gde-link">Download (PDF, 833KB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2011/06/24/forensiche-untersuchung-eines-linux-systems-fh-brandenburg-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install OpenKM on centos 5 / 6</title>
		<link>http://blog.srvme.de/2011/04/16/install-openkm-on-centos-5/</link>
		<comments>http://blog.srvme.de/2011/04/16/install-openkm-on-centos-5/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 11:32:09 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[openkm]]></category>
		<category><![CDATA[pdftools]]></category>
		<category><![CDATA[tesseract]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=803</guid>
		<description><![CDATA[download the latest openkm from: http://sourceforge.net/projects/openkm/files/5.0/ unpack the content heads up: execute all the following yum in one line: install java: download and install the &#8230;rpm.bin after executing the bin install the extracted rpms with &#8220;rpm -ihv *.rpm&#8221; http://www.oracle.com/technetwork/java/javase/downloads/jre6-downloads-1637595.html install tesseract ocr: install openoffice.org: install swftools install ImageMagick install ClamAV configure JBoss for a secure [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.srvme.de/wp-content/uploads/2011/04/images1.jpg"><img class="size-full wp-image-816 alignnone" title="images" src="http://blog.srvme.de/wp-content/uploads/2011/04/images1.jpg" alt="" width="252" height="59" /></a></p>
<p>download the latest openkm from: http://sourceforge.net/projects/openkm/files/5.0/<br />
unpack the content</p>
<p>heads up: execute all the following yum in one line:</p>
<pre class="brush: bash; title: ; notranslate">&lt;/pre&gt;
&lt;em&gt;cd /etc/yum.repos.d&lt;/em&gt;
&lt;em&gt;wget http://www.linux-mail.info/files/dag-clamav.repo&lt;/em&gt;
&lt;pre&gt;wget &lt;a href=&quot;http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm&quot;&gt;http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm&lt;/a&gt;
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.2-2.el6.rf.*.rpm
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm&lt;/pre&gt;
yum install  libjpeg-devel libpng-devel libtiff-devel zlib-devel gcc gcc-c++ make autoconf libtool automake openoffice.org* gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel ImageMagick amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql -y

</pre>
<h3>install java:</h3>
<p>download and install the &#8230;rpm.bin after executing the bin install the extracted rpms with &#8220;rpm -ihv *.rpm&#8221;</p>
<p>http://www.oracle.com/technetwork/java/javase/downloads/jre6-downloads-1637595.html</p>
<pre class="brush: bash; title: ; notranslate">
[root@dmsSrv Downloads]# alternatives --install /usr/bin/java java /usr/java/jre1.6.0_33/bin/java 2
[root@dmsSrv Downloads]# alternatives --config java&lt;/pre&gt;
There are 2 programs which provide 'java'.

Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
 2 /usr/java/jre1.6.0_33/bin/java

Enter to keep the current selection[+], or type selection number: 2
[root@dmsSrv Downloads]# java -version
java version &quot;1.6.0_33&quot;
Java(TM) SE Runtime Environment (build 1.6.0_33-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode) </pre>
<h3><span style="text-decoration: underline;">install tesseract ocr:</span></h3>
<pre class="brush: bash; title: ; notranslate">
sudo yum install libjpeg-devel libpng-devel libtiff-devel zlib-devel gcc gcc-c++ make autoconf libtool automake -y
wget http://www.leptonica.com/source/leptonlib-1.67.tar.gz # updated to 168 now
tar -zxvf leptonlib-1.67.tar.gz
./configure &amp;&amp; make &amp;&amp; sudo make install
wget http://tesseract-ocr.googlecode.com/files/tesseract-3.00.tar.gz # updated to 301 now
tar -zxvf tesseract-3.00.tar.gz
./autogen.sh &amp;&amp; ./configure &amp;&amp; make &amp;&amp; sudo make install
cd /usr/local/share/tessdata
sudo wget http://tesseract-ocr.googlecode.com/files/deu.traineddata.gz
sudo gunzip deu.traineddata.gz
cd -
</pre>
<h3><span style="text-decoration: underline;">install openoffice.org:</span></h3>
<pre class="brush: bash; title: ; notranslate">
yum install openoffice.org*
soffice -headless -accept=&quot;socket,host=127.0.0.1,port=8100;urp;&quot; -nofirststartwizard &amp;
</pre>
<h3><span style="text-decoration: underline;">install swftools</span></h3>
<pre class="brush: bash; title: ; notranslate">
wget http://www.swftools.org/swftools-0.9.1.tar.gz #0.9.2 is available
tar -zxvf swftools-0.9.1.tar.gz
sudo yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel -y
cd swftools-0.9.1
./configure &amp;&amp; make &amp;&amp; sudo make install
cd ..
</pre>
<h3><span style="text-decoration: underline;">install ImageMagick</span></h3>
<pre class="brush: bash; title: ; notranslate">
sudo yum install ImageMagick
which convert #will tell you where it is.
</pre>
<h3><span style="text-decoration: underline;">install ClamAV</span></h3>
<pre class="brush: bash; title: ; notranslate">
&lt;em&gt;cd /etc/yum.repos.d&lt;/em&gt; &amp;&amp; &lt;em&gt;wget http://www.linux-mail.info/files/dag-clamav.repo
&lt;/em&gt;wget &lt;a href=&quot;http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm&quot;&gt;http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm&lt;/a&gt;
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.2-2.el6.rf.*.rpm
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
sudo yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql
sudo sa-update
sudo chkconfig --levels 235 amavisd on
sudo chkconfig --levels 235 clamd on
sudo /usr/bin/freshclam
sudo /etc/init.d/amavisd start
sudo /etc/init.d/clamd start
sudo mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
sudo chown amavis /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
sudo ln -s /var/run/clamav/clamd.sock /var/spool/amavisd/clamd.sock
</pre>
<h3><span style="text-decoration: underline;">configure JBoss for a secure connection</span></h3>
<p>if not already done create a java ssl keystore:</p>
<pre class="brush: bash; title: ; notranslate">
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
</pre>
<p>and assign a password for the keystore uncomment the &#8220;SSL HTTP/1.1 Connector&#8221; element in ./jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/server.xml (around line 32) and add the xml attribute keystorePass=&#8221;changeme&#8221; to the Connector element. at the end it should look like:</p>
<pre class="brush: xml; title: ; notranslate">
        &lt;!-- Define a SSL HTTP/1.1 Connector on port 8443          This connector uses the JSSE configuration, when using APR, the           connector should be using the OpenSSL style configuration          described in the APR documentation --&gt;

</pre>
<h3>the OpenKM.cfg should look like this now:</h3>
<pre class="brush: bash; title: ; notranslate">
system.ocr=/usr/local/bin/tesseract
system.openoffice.server=http://localhost:8080/converter/convert
system.img2pdf=/usr/bin/convert
system.pdf2swf=/usr/local/bin/pdf2swf
system.antivir=/usr/bin/clamscan
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.hbm2ddl=create
application.url=http://host:8080/OpenKM/com.openkm.frontend.Main/index.jsp
system.webdav.server=on
system.webdav.fix=on
</pre>
<p>be sure to change the hibernate.hbm2ddl value to &#8220;none&#8221; without quotes later</p>
<h3><span style="text-decoration: underline;">run OpenKM</span></h3>
<pre class="brush: bash; title: ; notranslate">bin/run -b 0.0.0.0 &amp;</pre>
<h4><span style="text-decoration: underline;">on the client side:</span></h4>
<ul>
<li>for windows use <a href="http://www.netdrive.net/download.html">netdrive</a> and if you want to connect via https to the webdav service, make sure that you go to advanced settings and check the &#8220;Use HTTPS&#8221; checkbox.</li>
<li>also please don&#8217;t use the port in the &#8220;Site IP or URL&#8221; field &#8230;</li>
</ul>
<hr />
<h3><span style="text-decoration: underline;">references</span></h3>
<p>http://paramountideas.com/tesseract-ocr-30-and-leptonica-installation-centos-55-and-opensuse-113</p>
<p>http://www.betaquest.com/2010/08/how-to-install-swftools-0-9-1-on-centos-5-5/</p>
<p>http://wiki.openkm.com/index.php/WebDAV_access</p>
<p>http://stackoverflow.com/questions/4004456/centos-server-openoffice-headless</p>
<p>http://www.howtoforge.com/perfect-server-centos-5.5-x86_64-ispconfig-3-p6</p>
<p>http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2011/04/16/install-openkm-on-centos-5/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>install knowledetree community edition on a fresh vmware centos-5.4 / fedora 9</title>
		<link>http://blog.srvme.de/2011/02/09/install-knowledetree-community-edition-on-a-fresh-vmware-centos-5-4/</link>
		<comments>http://blog.srvme.de/2011/02/09/install-knowledetree-community-edition-on-a-fresh-vmware-centos-5-4/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 23:20:36 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[community edition]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[knowledetree]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=772</guid>
		<description><![CDATA[well that was a pain  but this dms has an extreme simple and nice rest connection the main reason this is so complicated is that the php version needs to be just right. 5.1&#62;x&#62;5.3 wtih the version 5.3.5 you are not able to install kt! with a version less than 5.2 you get outof memory [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.srvme.de/wp-content/uploads/2011/02/images.jpg"><img class="size-full wp-image-784 alignleft" title="images" src="http://blog.srvme.de/wp-content/uploads/2011/02/images.jpg" alt="" width="118" height="120" /></a><a href="http://blog.srvme.de/wp-content/uploads/2011/02/KnowledgeTree-Logo.png"><br />
</a><br />
well that was a pain <img src='http://blog.srvme.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  but this dms has an extreme simple and nice <a href="http://www.knowledgetree.org/REST_Web_Service">rest connection</a> <img src='http://blog.srvme.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
the main reason this is so complicated is that the php version needs to be just right. 5.1&gt;x&gt;5.3<br />
wtih the version 5.3.5 you are not able to install kt! with a version less than 5.2 you get outof memory problems at runtime!. the only version stable enough (which i tested) are: php-5.2.9-2 and 5.2.5 (cli)</p>
<p>ok lets go update system with:</p>
<p>$ yum clean all -y &amp;&amp; yum update glibc\* -y &amp;&amp; yum update yum\* rpm\* python\* -y &amp;&amp; yum clean all -y &amp;&amp; yum update -y</p>
<p># create the file /etc/yum.repos.d/centos-test.repo<br />
And add the following content:</p>
<p><code>[c5-testing]<br />
name=CentOS-5 Testing<br />
baseurl=http://dev.centos.org/centos/5/testing/$basearch/<br />
enabled=1<br />
gpgcheck=1<br />
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing<br />
</code><br />
$ yum install php-5.2* php-devel* gcc mysql mysql-server mysql-devel phpMyAdmin<br />
$ pecl install json<br />
$ cd /etc/php.d/<br />
$ cd /var/www/html/<br />
$ echo &#8220;extension=json.so&#8221; &gt;&gt; json.ini<br />
$ service httpd restart</p>
<p>open port 80</p>
<p>$ cd /var/www/html<br />
$ wget -c <a href="http://repos.knowledgetree.com/downloads/ktdms-ce-linux-src-latest">http://repos.knowledgetree.com/download &#8230; src-latest</a> #or http://srvme.de/knowledgetree/kt-src-oss-3.7.0.2.tgz<a href="http://repos.knowledgetree.com/downloads/ktdms-ce-linux-src-latest"><br />
</a>$ tar xzvf kt-src-oss-3.7.0.2.tgz<br />
$ mv ktgit-knowledgetree-c389d34 /var/www/html/kt<br />
$ cd /var/www/html<br />
$ chown -R apache:apache kt<br />
$ cd kt/</p>
<p><span style="color: #ff0000;">next steps only needed if something goes wrong:</span><br />
Modify setup/wizard/stepAction.php . Change the createStep function to the code below:</p>
<pre class="brush: php; title: ; notranslate">
public function createStep() {
  $step_class = $this-&gt;makeCamelCase($this-&gt;stepName);
  if($step_class!='')
    return new $step_class();
  else
    return new install();
}
</pre>
<p>uncommented line 41 of setup/precheckup.php (require_once(&#8216;../config/dmsDefaults.php&#8217;);)<br />
change rootUrl = default to rootUrl = kt in config/config.ini<br />
$ mysql -uroot dms &lt; sql/mysql/install/structure.sql<br />
$ mysql -uroot dms &lt; sql/mysql/install/data.sql<br />
$ php setup/upgrade.php</p>
<p>ok now <a href="http://localhost/kt">http://localhost/kt</a></p>
<p>follow the steps down in the fedora section</p>
<hr />refs:</p>
<p><a href="http://www.reviewsaurus.com/tips-tricks/how-to-install-json-support-for-php-in-centos/">http://www.reviewsaurus.com/tips-tricks/how-to-install-json-support-for-php-in-centos/</a><br />
<a href="http://forums.knowledgetree.org/viewtopic.php?f=6&amp;t=19996"> http://forums.knowledgetree.org/viewtopic.php?f=6&amp;t=19996</a><br />
<a href="http://forums.knowledgetree.org/viewtopic.php?f=6&amp;t=19974"> http://forums.knowledgetree.org/viewtopic.php?f=6&amp;t=19974</a><br />
<a href="http://programminglinuxblog.blogspot.com/2009/05/knowledgetree-manual-install.html"> http://programminglinuxblog.blogspot.com/2009/05/knowledgetree-manual-install.html</a></p>
<h1>install on fedora 9</h1>
<p>$ yum install php-5.2* php-devel* php-xmlrpc* gcc mysql mysql-server mysql-devel phpMyAdmin php-pear phpize<br />
$ pecl install json<br />
$ /sbin/service httpd restart<br />
$ /sbin/service mysqld restart</p>
<p>$ cd /var/www/html<br />
$ wget -c <a href="http://repos.knowledgetree.com/downloads/ktdms-ce-linux-src-latest">http://repos.knowledgetree.com/download &#8230; src-latest</a> #or http://srvme.de/knowledgetree/kt-src-oss-3.7.0.2.tgz<a href="http://repos.knowledgetree.com/downloads/ktdms-ce-linux-src-latest"><br />
</a>$ tar xzvf kt-src-oss-3.7.0.2.tgz<br />
$ mv ktgit-knowledgetree-c389d34 /var/www/html/kt<br />
$ cd /var/www/html<br />
$ chown -R apache:apache kt<br />
$ cd kt/</p>
<p>ok now <a href="http://localhost/kt">http://localhost/kt</a></p>
<p>change ip to the public ip: Administration -&gt; General Settings -&gt; Server Settings -&gt; external server ip</p>
<p>$ touch /etc/yum.repros.d/zend.repo<br />
content:<br />
<code>[Zend]<br />
name=Zend Server<br />
baseurl=http://repos.zend.com/zend-server/rpm/$basearch<br />
enabled=1<br />
gpgcheck=0</code></p>
<p>[Zend_noarch]<br />
name=Zend Server &#8211; noarch<br />
baseurl=http://repos.zend.com/zend-server/rpm/noarch<br />
enabled=1<br />
gpgcheck=0</p>
<p>$ yum remove php-devel<br />
$ yum install zend-server-ce-php-5.2<br />
$ /var/www/html/kt/dmsctl.sh start</p>
<p>edit /var/www/html/kt/ktwebdav/lib/KTWebDAVServer.inc.php on line 2538 and add return true;</p>
<p>to use webdav</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
refs:</p>
<p><a href="http://forums.zend.com/viewtopic.php?f=44&amp;t=2375">http://forums.zend.com/viewtopic.php?f=44&amp;t=2375</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2011/02/09/install-knowledetree-community-edition-on-a-fresh-vmware-centos-5-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Camel Example Application &#8211; Earthquake Mashup</title>
		<link>http://blog.srvme.de/2011/01/30/apache-camel-example-application-earthquake-mashup/</link>
		<comments>http://blog.srvme.de/2011/01/30/apache-camel-example-application-earthquake-mashup/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 23:44:50 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[camel]]></category>
		<category><![CDATA[aggregation]]></category>
		<category><![CDATA[camel-cxf]]></category>
		<category><![CDATA[fuse]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[splitting]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=748</guid>
		<description><![CDATA[Systemintegration is the part of a software architectur. It helps to connect components or subsystems together. Certain patterns are used in the industry today. Using and learning EIP (“Enterprise Integration Pattterns”) with Apache Camel is the goal of this Project. The Example for this project is all about earthquake data from around the world. The [...]]]></description>
				<content:encoded><![CDATA[<p>Systemintegration is the part of a software architectur. It helps to connect components or<br />
subsystems together. Certain patterns are used in the industry today. Using and learning<br />
EIP (“Enterprise Integration Pattterns”) with Apache Camel is the goal of this Project.<br />
The Example for this project is all about earthquake data from around the world. The<br />
Application is able to read earthquake data from various rss Feeds and processes it. During<br />
the processing the data will be in form of XML and Java Objects. The data will be enriched,<br />
splitted, sorted, aggregated, normalized, marshalled umarshalled and finally provided again<br />
in form of a restful service.<br />
The specified task is as follows:</p>
<ol>
<li>Read Earthquake Data continously from those two RSS Streams<br />
• http://geofon.gfz-potsdam.de/db/eqinfo.php?fmt=rss<br />
• http://earthquake.usgs.gov/eqcenter/catalogs/eqs1day-M2.5.xml</li>
<li>enrich this data with other related information like the weather in this area at this<br />
time. Data can be from here: http://www.programmableweb.com.</li>
<li>sort the earthquakes by the earthparts where they appear</li>
<li>if the earthquake has a strength of more than “M 5.5” than send an formated warning<br />
email to an email adress.</li>
<li>provide this data via a Restful interface in form of a list of the earthparts with an xlink to detailed information of the earthquakes.</li>
</ol>
<h1><a title="https://github.com/nilsen31/camelEarthquake" href="https://github.com/nilsen31/camelEarthquake">SHOW REPRO</a></h1>
<p><a href="https://github.com/nilsen31/camelEarthquake/blob/master/documentation/dokumentation.pdf">SHOW PDF</a></p>
<iframe src="http://docs.google.com/viewer?url=https%3A%2F%2Fraw.github.com%2Fnilsen31%2FcamelEarthquake%2Fmaster%2Fdocumentation%2Fdokumentation.pdf&hl=&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>
<p class="gde-text"><a href="https://raw.github.com/nilsen31/camelEarthquake/master/documentation/dokumentation.pdf" class="gde-link">Download (PDF, 849KB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2011/01/30/apache-camel-example-application-earthquake-mashup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>merge time periods</title>
		<link>http://blog.srvme.de/2010/12/11/merge-time-periods/</link>
		<comments>http://blog.srvme.de/2010/12/11/merge-time-periods/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 13:16:42 +0000</pubDate>
		<dc:creator>nils</dc:creator>
				<category><![CDATA[algorithms]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[periods]]></category>
		<category><![CDATA[time periods]]></category>

		<guid isPermaLink="false">http://blog.srvme.de/?p=742</guid>
		<description><![CDATA[if you have a list of time periods like this for example: 11.11.2010 &#8211; 13.11.2010 1.11.2010- 12.11.2010 1.1.2011 &#8211; 2.1.2011 than this class will merge them together: 1.11.2010 &#8211; 13.11.2010 1.1.2011 &#8211; 2.1.2011 the static method Dates.convert is here: working with time periods]]></description>
				<content:encoded><![CDATA[<p>if you have a list of time periods like this</p>
<p>for example:<br />
11.11.2010 &#8211; 13.11.2010<br />
1.11.2010- 12.11.2010<br />
1.1.2011 &#8211; 2.1.2011</p>
<p>than this class will merge them together:<br />
1.11.2010 &#8211; 13.11.2010<br />
1.1.2011 &#8211; 2.1.2011</p>
<p>the static method Dates.convert is here:<br />
<a href="http://blog.srvme.de/2008/09/09/working-with-dates/">working with time periods</a></p>
<pre class="brush: java; title: ; notranslate">
package inc.tiss.util;

import inc.tiss.model.Dates;

import java.util.GregorianCalendar;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = &quot;channelUpdateData&quot;, propOrder = { &quot;from&quot;, &quot;to&quot;, &quot;sent&quot;})
public class ChannelUpdateData {

	private GregorianCalendar from;
	private GregorianCalendar to;
	private GregorianCalendar sent;

	public ChannelUpdateData(GregorianCalendar start, GregorianCalendar end) {
		this.from = start;
		this.to = end;
		sent = new GregorianCalendar();
	}
	public ChannelUpdateData(GregorianCalendar start, GregorianCalendar end, GregorianCalendar sent) {
		this.from = start;
		this.to = end;
		this.sent = sent;
	}
	public GregorianCalendar getFrom() {
		return from;
	}

	public void setFrom(GregorianCalendar from) {
		this.from = from;
	}
	public GregorianCalendar getTo() {
		return to;
	}
	public void setTo(GregorianCalendar to) {
		this.to = to;
	}
	public GregorianCalendar getSent() {
		return sent;
	}
	public void setSent(GregorianCalendar sent) {
		this.sent = sent;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((from == null) ? 0 : from.hashCode());
		result = prime * result + ((to == null) ? 0 : to.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof ChannelUpdateData))
			return false;
		ChannelUpdateData other = (ChannelUpdateData) obj;
		if (from == null) {
			if (other.from != null)
				return false;
		} else if (from.compareTo(other.from)!=0)
			return false;
		if (to == null) {
			if (other.to != null)
				return false;
		} else if (to.compareTo(other.to)!=0)
			return false;
		return true;
	}
	@Override
	public String toString() {
		return &quot;ChannelUpdateData [from=&quot; + Dates.convert(from) + &quot;, to=&quot; + Dates.convert(to) + &quot;]&quot;;
	}
}

</pre>
<pre class="brush: java; title: ; notranslate">
package inc.tiss.util;

import inc.tiss.model.Dates;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

public class UpdateDataHelper {
	private static final String CHANNEL_UPDATES = &quot;channelUpdates&quot;;
	private Namespace ns = Namespace.getNamespace(&quot;x&quot;,
			&quot;http://www.w3.org/2000/10/XMLSchema-instance&quot;);

	private File file = null;
	private Set&lt;ChannelUpdateData&gt; timePeriods = new HashSet&lt;ChannelUpdateData&gt;();

	public UpdateDataHelper() {
		this.file = new File(&quot;./channelUpdate.xml&quot;);
	}

	public Set&lt;ChannelUpdateData&gt; deserialize(final boolean remove) {
		Set&lt;ChannelUpdateData&gt; cudSet = new HashSet&lt;ChannelUpdateData&gt;();
		Document doc = readOrCreateXMLFile();

		GregorianCalendar sent = null;
		Element e = null;
		for (Object o : doc.getRootElement().getContent()) {
			e = (Element) o;

			Long millis = Long.parseLong(e.getChildText(&quot;sent&quot;, ns));
			sent = new GregorianCalendar();
			sent.setTimeInMillis(millis);

			cudSet.add(new ChannelUpdateData(Dates.convert(e.getChildText(
					&quot;from&quot;, ns)), Dates.convert(e.getChildText(&quot;to&quot;, ns)), sent));

		}

		cudSet = filterRedundantDates(cudSet);

		for (ChannelUpdateData d : timePeriods) {
			System.out.println(&quot;x: &quot;+d.toString());
		}

		if(remove)
			removeCudsFromFile(doc);

		return cudSet;
	}

	private void removeCudsFromFile(Document doc) {
		doc.getRootElement().removeContent();
		writeDocument(doc);
	}

	private Set&lt;ChannelUpdateData&gt; filterRedundantDates(
			Set&lt;ChannelUpdateData&gt; cuds) {

		TreeSet&lt;GregorianCalendar&gt; allDatesInOneList = fillAllDatesAndSort(cuds);

		if (allDatesInOneList.size() &gt; 0)
			recursivIteration(allDatesInOneList);

		return timePeriods;
	}

	private void recursivIteration(TreeSet&lt;GregorianCalendar&gt; allDatesInOneList) {
		GregorianCalendar dayAfter, dayBefore, start, end, dateClone;
		List&lt;GregorianCalendar&gt; subDatesList = new ArrayList&lt;GregorianCalendar&gt;();
		final GregorianCalendar date = allDatesInOneList.first();
			dateClone = (GregorianCalendar) date.clone();
			dayAfter = (GregorianCalendar) date.clone();
			dayAfter.add(Calendar.DAY_OF_MONTH, 1);
			dayBefore = (GregorianCalendar) date.clone();
			dayBefore.add(Calendar.DAY_OF_MONTH, -1);

			for(GregorianCalendar c : allDatesInOneList){
				//System.out.println(&quot;aiol member: &quot;+Dates.convert(c));
			}

			while (allDatesInOneList.contains(dayAfter)) {
				subDatesList.add((GregorianCalendar) dayAfter.clone());
				//System.out.println(&quot;dayAfter: &quot;+Dates.convert(dayAfter));
				x: for(GregorianCalendar d : allDatesInOneList){
					//System.out.println(&quot;searching for dates: &quot;+Dates.convert(dayAfter)+&quot; or &quot;+Dates.convert(dateClone));

					if(dateClone.compareTo(d)==0){
						allDatesInOneList.remove(d);
						//System.out.println(&quot;removing: &quot;+Dates.convert(d));
						break x;
					}
				}
				y: for(GregorianCalendar d : allDatesInOneList){
					//System.out.println(&quot;searching for dates: &quot;+Dates.convert(dayAfter)+&quot; or &quot;+Dates.convert(dateClone));
					if(dayAfter.compareTo(d)==0  ){
						allDatesInOneList.remove(d);
						//System.out.println(&quot;removing: &quot;+Dates.convert(d));
						break y;
					}
				}
				dayAfter.add(Calendar.DAY_OF_MONTH, 1);
			}
			if (subDatesList.size() &gt; 0)
				////System.out.println(Dates.convert(subDatesList.get(0))+&quot; - &quot;+Dates.convert(subDatesList.get(subDatesList.size() - 1)));
				timePeriods.add(new ChannelUpdateData(dateClone,
						subDatesList.get(subDatesList.size() - 1)));

			//System.out.println(&quot;timePeriods.size(): &quot;+timePeriods.size());

			subDatesList = new ArrayList&lt;GregorianCalendar&gt;();

			//System.out.println(&quot;allDatesInOneList.size() after removal: &quot;+allDatesInOneList.size());

			if(allDatesInOneList.size()&gt;0)
				recursivIteration(allDatesInOneList);
	}

	private TreeSet&lt;GregorianCalendar&gt; fillAllDatesAndSort(
			Set&lt;ChannelUpdateData&gt; cuds) {
		TreeSet&lt;GregorianCalendar&gt; allDatesInOneList = new TreeSet&lt;GregorianCalendar&gt;(
				new Comparator&lt;GregorianCalendar&gt;() {
					public int compare(GregorianCalendar o1,
							GregorianCalendar o2) {
						return o1.compareTo(o2);
					}
				});

		for (ChannelUpdateData c : cuds) {
			for (GregorianCalendar gc : new Dates(c.getFrom(), c.getTo())
					.getEveryDayBetweenWithoutChanges()) {
				allDatesInOneList.add(gc);
			}
		}

		return allDatesInOneList;
	}

	public void serializeAndAppendToFile(final ChannelUpdateData cud) {

		Document doc = readOrCreateXMLFile();

		Element root = doc.getRootElement();

		Element from = new Element(&quot;from&quot;, ns);
		from.setText(Dates.convert(cud.getFrom()));
		Element to = new Element(&quot;to&quot;, ns);
		to.setText(Dates.convert(cud.getTo()));
		Element sent = new Element(&quot;sent&quot;, ns);
		sent.setText(cud.getSent().getTime().getTime() + &quot;&quot;);
		Element xmlcud = new Element(&quot;cud&quot;, ns);
		xmlcud.addContent(from);
		xmlcud.addContent(to);
		xmlcud.addContent(sent);

		root.addContent(xmlcud);

		writeDocument(doc);
		deserialize(false);
	}

	private void writeDocument(Document doc) {
		XMLOutputter outputter = new XMLOutputter();
		try {
			FileOutputStream fos = new FileOutputStream(file);
			outputter.output(doc, fos);
		} catch (IOException e) {
			System.err.println(e);
		}
	}

	private Document readOrCreateXMLFile() {
		SAXBuilder builder = new SAXBuilder();
		Document doc = null;
		try {
			doc = builder.build(file);
		} catch (JDOMException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			doc = new Document(new Element(CHANNEL_UPDATES, ns));
		}
		return doc;
	}
}

</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.srvme.de/2010/12/11/merge-time-periods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
