<?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>javathreads.de &#187; Informatik</title>
	<atom:link href="http://javathreads.de/category/informatik/feed/" rel="self" type="application/rss+xml" />
	<link>http://javathreads.de</link>
	<description>Blog rund um Java und Web Entwicklung</description>
	<lastBuildDate>Thu, 09 Sep 2010 13:19:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Begriffe &#8220;Endlosschleife&#8221; und &#8220;Rekursion&#8221; anschaulich durch Buch Glossar erkl&#228;rt</title>
		<link>http://javathreads.de/2010/04/begriffe-endlosschleife-und-rekursion-anschaulich-durch-buch-glossar-erklaert/</link>
		<comments>http://javathreads.de/2010/04/begriffe-endlosschleife-und-rekursion-anschaulich-durch-buch-glossar-erklaert/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 04:00:24 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Endlosschleife]]></category>
		<category><![CDATA[Glossar]]></category>
		<category><![CDATA[Rekursion]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=2424</guid>
		<description><![CDATA[Habe ein eingescanntes Bild aus einem Programmier-Buch Glossar gefunden der anschaulich die &#8220;Endlosschleife&#8221; und die &#8220;Rekursion&#8221; erkl&#228;rt.
Zuerst die eingescannten Bilder f&#252;r die Endlosschleife &#8220;infinite loop&#8221;:



Und hier noch der Ausschnitt f&#252;r die Rekursion:



Wer es jetzt noch nicht verstanden hat..
]]></description>
			<content:encoded><![CDATA[<p>Habe ein eingescanntes Bild aus einem Programmier-Buch Glossar gefunden der anschaulich die &#8220;Endlosschleife&#8221; und die &#8220;Rekursion&#8221; erkl&#228;rt.</p>
<p>Zuerst die eingescannten Bilder f&#252;r die Endlosschleife &#8220;infinite loop&#8221;:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2010/04/Buch_Endlosschleife.jpg" alt="" title="Buch Glossar Endlosschleife" width="593" height="810" class="alignnone size-full wp-image-2425" />
</div>
<p>Und hier noch der Ausschnitt f&#252;r die Rekursion:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2010/04/Buch_Rekursion1.jpg" alt="" title="Buch Glossar Rekursion" width="593" height="405" class="alignnone size-full wp-image-2428" />
</div>
<p>Wer es jetzt noch nicht verstanden hat..</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2010/04/begriffe-endlosschleife-und-rekursion-anschaulich-durch-buch-glossar-erklaert/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Design Pattern Quiz</title>
		<link>http://javathreads.de/2010/01/design-pattern-quiz/</link>
		<comments>http://javathreads.de/2010/01/design-pattern-quiz/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 05:00:12 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[Quiz]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=2223</guid>
		<description><![CDATA[Wer sein Informatiker Wissen mal wieder pr&#252;fen m&#246;chte kann sich dem Design Pattern Quiz annehmen. Dabei nimmt man aus der linken Spalte ein Design Pattern und ordnet sich rechts per Drag &#038; Drop einer Design Pattern Kategorie zu. so geh&#246;rt z.B. das Design Pattern &#8220;Factory Method&#8221; der Kategorie &#8220;Creational Pattern&#8221; mit der Beschreibung &#8220;Creates an [...]]]></description>
			<content:encoded><![CDATA[<p>Wer sein Informatiker Wissen mal wieder pr&#252;fen m&#246;chte kann sich dem <a href="http://reboltutorial.com/cgi-bin/designpattern-quiz.cgi">Design Pattern Quiz</a> annehmen. Dabei nimmt man aus der linken Spalte ein Design Pattern und ordnet sich rechts per Drag &#038; Drop einer Design Pattern Kategorie zu. so geh&#246;rt z.B. das Design Pattern &#8220;Factory Method&#8221; der Kategorie &#8220;Creational Pattern&#8221; mit der Beschreibung &#8220;Creates an Instance of several derived classes&#8221; an und leuchtet nach dem Droppen gr&#252;n auf. Ist eine Zuordnung falsch wird der Balken rot aber man kann das Element wieder aufnehmen und es noch einmal probieren.</p>
<div class="singleImgDiv">
<a href="http://reboltutorial.com/cgi-bin/designpattern-quiz.cgi"><img src="http://javathreads.de/data/uploads/2010/01/DesignPatternQuiz.jpg" alt="Design Pattern Quiz" title="Design Pattern Quiz" width="600" height="320" class="alignnone size-full wp-image-2238" /></a>
</div>
<p>Eine nette kleine Spielerei um sein Design Pattern Wissen mal wieder aufzufrischen.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2010/01/design-pattern-quiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Was f&#252;r zwischendurch: &#8220;Programmierer IQ Test&#8221;</title>
		<link>http://javathreads.de/2009/10/was-fuer-zwischendurch-programmierer-iq-test/</link>
		<comments>http://javathreads.de/2009/10/was-fuer-zwischendurch-programmierer-iq-test/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 07:32:52 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Quiz]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=2153</guid>
		<description><![CDATA[&#8220;Programmierer IQ Test&#8221; &#8211; so hat die Online Ausgabe der Computerwoche ihren Programmierer Test genannt der aus 20 Fragen besteht. Neben der ersten Ausgabe gibt es mittlerweile auch schon die zweite dieses Tests und beide sind ideal f&#252;r die kleine Pause zwischendurch.
Hier dre Link zum ersten Teil des Tests sowie ein Screenshot der ersten Frage:



Und [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://www.computerwoche.de/software/software-infrastruktur/1908356/?r=855657514329608&#038;lid=57543">Programmierer IQ Test</a>&#8221; &#8211; so hat die Online Ausgabe der Computerwoche ihren Programmierer Test genannt der aus 20 Fragen besteht. Neben der ersten Ausgabe gibt es mittlerweile auch schon die zweite dieses Tests und beide sind ideal f&#252;r die kleine Pause zwischendurch.</p>
<p>Hier dre <a href="http://www.computerwoche.de/quiz/78/">Link zum ersten Teil</a> des Tests sowie ein Screenshot der ersten Frage:</p>
<div class="singleImgDiv">
<a href="http://www.computerwoche.de/quiz/78/"><img src="http://javathreads.de/data/uploads/2009/10/ProgrammiererIqTestTeil1.png" alt="Computerwoche - Programmierer IQ Test Teil 1" title="Computerwoche - Programmierer IQ Test Teil 1" width="548" height="285" class="alignnone size-full wp-image-2154" /></a>
</div>
<p>Und hier der <a href="http://www.computerwoche.de/quiz/81/">Link zum zweiten Teil</a> mit einem Screenshot der letzten Frage:</p>
<div class="singleImgDiv">
<a href="http://www.computerwoche.de/quiz/81/"><img src="http://javathreads.de/data/uploads/2009/10/ProgrammiererIqTestTeil2.png" alt="Computerwoche - Programmierer IQ Test Teil 2" title="Computerwoche - Programmierer IQ Test Teil 2" width="548" height="290" class="alignnone size-full wp-image-2155" /></a>
</div>
<p>Neben diesen beiden in den Screenshots zu sehenden Fragen rund um Java werden auch ganz andere Fragen bei der auch wirklich Informatiker-Allgemeinwissen ben&#246;tigt wird angeboten &#8211; somit viel Spass =).</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/10/was-fuer-zwischendurch-programmierer-iq-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Model View Controller in JSF &#8211; wo und was ist der Controller?</title>
		<link>http://javathreads.de/2009/10/model-view-controller-in-jsf-wo-und-was-ist-der-controller/</link>
		<comments>http://javathreads.de/2009/10/model-view-controller-in-jsf-wo-und-was-ist-der-controller/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 07:25:05 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=2122</guid>
		<description><![CDATA[Das Model View Controller (MVC) Pattern ist wohl eines der bekanntesten Architekturmuster. So ziemlich jeder Informatiker muss sich damit auseinandersetzen und nicht selten ist es f&#252;r Berufsanf&#228;nger auch eine Frage im Bewerbungsgespr&#228;ch. Unterh&#228;lt man sich mit verschiedensten, auch schon sehr erfahrenen, Leuten dar&#252;ber ist es dennoch erstaunlich wie viele unterschiedliche Auslegungen es dazu gibt.
Vor allem [...]]]></description>
			<content:encoded><![CDATA[<p>Das <strong>Model View Controller</strong> (MVC) Pattern ist wohl eines der bekanntesten Architekturmuster. So ziemlich jeder Informatiker muss sich damit auseinandersetzen und nicht selten ist es f&#252;r Berufsanf&#228;nger auch eine Frage im Bewerbungsgespr&#228;ch. Unterh&#228;lt man sich mit verschiedensten, auch schon sehr erfahrenen, Leuten dar&#252;ber ist es dennoch erstaunlich wie viele unterschiedliche Auslegungen es dazu gibt.</p>
<p>Vor allem bei der Frage was denn der Controller, gerade bei Web-Frameworks, sei gehen die Meinungen oft auseinander. W&#228;hrend man z.b. FAT Client Anwendungen den Controller oft direkt als erstes schreibt und diesen dadurch sehr genau bestimmen kann gehen die Meinungen was denn der Controller in JSF Anwendungen ist deutlich auseinander. F&#252;r JSF Anwendungen geht z.B. unter anderem die Meinung um, dass die Managed Bean (oder bei Verwendung von Seam eine Seam Action / Spring eine Spring Bean) der Controller ist. Auch die Aussage, dass die JSP/JSF/XHTML Seite oder der Browser der Controller ist (denn der Controller nimmt laut Definition die Eingaben entgegen und leitet sie weiter) waren darunter.</p>
<p>Nun bin ich bei Recherchen zu Seam &#252;ber eine <a href="http://www.slideshare.net/yuvalb/jsf-and-seam">Pr&#228;sentation von Roi Aldaag</a> gestolpert und habe dabei folgende, meiner Meinung nach wirklich passende, MVC Beschreibung f&#252;r JSF gesehen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/10/MVCJSF.jpg" alt="Model View Controller in JSF" title="MVC in JSF" width="630" height="608" class="alignnone size-full wp-image-2131" />
</div>
<p>Man sieht darin, dass der Controller in einer JSF Anwendung aus mehreren Teilen besteht. Zum einen das <code>FacesServlet</code>, welches jeden Request entgegennimmt und initial verarbeitet. Je nach Situation wird anschlie&#223;end die <code>faces-config.xml</code> verwendet um an das Model weiterzuleiten oder die in JSF m&#246;glichen Event Listener oder Action Handler aufgerufen.</p>
<p>Somit besteht der <strong>Controller</strong> aus drei Teilen:</p>
<ul>
<li>Front-Servlet (<code>FacesServlet</code>)</li>
<li>Konfiguration (<code>faces-config.xml</code> oder <code>pages.xml</code> in Seam Anwendungen)</li>
<li>Event Listener (z.B. ValueChangeListener)</li>
<li>Action Event (ausgel&#246;st durch <code>h:commandButton</code> und <code>h:commandLink</code> Actions)</li>
</ul>
<p>Gerade das in JSF vorhandene Event Modell sowie die Action Events bringen JSF noch viel n&#228;her an das MVC Pattern als die bisherigen Web-Frameworks. </p>
<p>Nur der Vollst&#228;ndigkeit halber im folgenden noch eine kurze Erl&#228;uterung zu den Teilen Model und View:<br />
Die <strong>View</strong> in einer JSF Anwendung beinhaltet:</p>
<ul>
<li>Component Tree (JSF Komponentenbaum)</li>
<li>Component Model (Java Beans als Unterst&#252;tzung f&#252;r Komponenten)</li>
<li>Delegates (Konverter, Validator oder Renderer)</li>
<li>Resources (JSP, XML, Properties)</li>
</ul>
<p>Das <strong>Model</strong> im MVC ist nicht ausschlie&#223;lich das Domain Model oder Entity Modell gemeint. Mit Modell meint man die komplette Business Logik in einer Anwendung:</p>
<ul>
<li>Pojos (bei Plain JSF / Seam Pojo Anwendung)</li>
<li>EJB, Entity Beans (bei einer JEE Anwendung)</li>
</ul>
<p>Der Screenshot der MVC Umsetzung in einer JSF Anwendung ist aus der folgenden Pr&#228;sentation mit dem Titel &#8220;JSF and Seam&#8221;:</p>
<div style="text-align:center">
<object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jsfseam-1216326203414524-8&#038;stripped_title=jsf-and-seam" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jsfseam-1216326203414524-8&#038;stripped_title=jsf-and-seam" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
</div>
<p><br/><br />
Obwohl das Thema wohl wirklich ein alter Hut ist und der ein oder andere es wohl schon zum xten mal durchgekaut hat fand ich es wichtig MVC im Rahmen von JSF noch einmal aufzuzeigen ohne direkte Widerrede zu erhalten ;). In Meetings und pers&#246;nlichen Diskussionen dar&#252;ber brechen wir meistens ab da man sich doch nicht einigen kann, die Meinungen weit auseinander gehen und die Gem&#252;ter am Ende sehr erhitzt sind. Also falls jemand eine erg&#228;nzende oder gar total andere Meinung zu MVC hat darf er sich in den Kommentaren auslassen &#8211; es wird nichts zensiert ;).</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/10/model-view-controller-in-jsf-wo-und-was-ist-der-controller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Boolsche Ausdr&#252;cke gehen sogar in if Abfragen</title>
		<link>http://javathreads.de/2009/06/boolsche-ausdruecke-gehen-sogar-in-if-abfragen/</link>
		<comments>http://javathreads.de/2009/06/boolsche-ausdruecke-gehen-sogar-in-if-abfragen/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 11:00:39 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Informatik]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1726</guid>
		<description><![CDATA[Heute mal ein kleines Fundst&#252;ck zum schmunzeln &#252;ber das ich gestolpert bin. Genauer gesagt bin ich &#252;ber das Blog Coding-Horror von Marcell Kluth gestolpert welcher sich als Entwicklungshelfer an der Front versteht. Die Beispiele und die Themen sind alle rund um die Sprachen C, C++ und C# gebaut aber es sind auch generelle, Sprachen&#252;bergreifende Hinweise [...]]]></description>
			<content:encoded><![CDATA[<p>Heute mal ein kleines Fundst&#252;ck zum schmunzeln &#252;ber das ich gestolpert bin. Genauer gesagt bin ich &#252;ber das Blog <a href="http://www.coding-horror.de">Coding-Horror</a> von Marcell Kluth gestolpert welcher sich als Entwicklungshelfer an der Front versteht. Die Beispiele und die Themen sind alle rund um die Sprachen C, C++ und C# gebaut aber es sind auch generelle, Sprachen&#252;bergreifende Hinweise zu finden wie z.B. auch dieser: <a href="http://www.coding-horror.de/?p=38">&#038;&#038; geht sogar in if(…)</a>.</p>
<p>Ich erlaube mir hier die Beispielzeilen zu kopieren und Ausschnitte seines Textes zu zitieren &#252;ber die ich beim lesen schmunzeln musste.</p>
<p>Grunds&#228;tzlich geht es um folgendes Konstrukt:</p>
<div class="codebox">
<pre style="margin:0;padding:0"><span style="color:#7F0074;"><b>if</b></span> ( A )
{
  <span style="color:#7F0074;"><b>if</b></span> ( B )
  {
    <span style="color:#7F0074;"><b>if</b></span> ( C )
    {
      D;
    }
  }
}</pre>
</div>
<p>Er zeigt sogar die optimierte Version eines ganz schlauen Expertens des obigen Ausdrucks:</p>
<div class="codebox">
<pre style="margin:0;padding:0"><span style="color:#7F0074;"><b>if</b></span> ( A ) <span style="color:#7F0074;"><b>if</b></span> ( B ) <span style="color:#7F0074;"><b>if</b></span> ( C ) D;</pre>
</div>
<p>Und hier der Kommentar zu den beiden obigen Ausdr&#252;cken:</p>
<blockquote><p>
Ich weiss nicht wie es anderen “Durchschnittsprogrammierern” geht wenn sie so etwas sehen, ich jedenfalls habe das Gef&#252;hl das sich meine Retina abl&#246;st… F&#252;r alle die noch nicht gesehen haben, warum dies Augenkrebs verursachen kann, hier nochmal der Hinweis: Es gibt f&#252;r logische Ausdr&#252;cke Boolsche-Operatoren.
</p></blockquote>
<p>Hier jetzt die vorgeschlagene und wahrscheinlich von allen Lesern als normal empfundene L&#246;sung:</p>
<div class="codebox">
<pre style="margin:0;padding:0"><span style="color:#7F0074;"><b>if</b></span> ( A &#038;&#038; B &#038;&#038; C )
{
  D;
}</pre>
</div>
<p>Und der abschlie&#223;ende Kommentar mit dem Hinweis auf die &#8220;hoheitliche Pflicht&#8221;:</p>
<blockquote><p>
Eine Ausrede die ich diesbez&#252;glich nicht mehr h&#246;ren kann ist: Ja, fr&#252;her hat ja in den if’s noch mehr dringestanden. Das ist dann alles nach und nach rausgefallen. DAS IST KEINE AUSREDE! DAS IST BULLSHIT! Wenn ich etwas aus/in einer if (oder sonstwo) l&#246;sche/&#228;ndere/hinzuf&#252;ge, habe ich nicht nur das Privileg sondern auch die hoheitliche Pflicht sich den umgebenen Quellcode anzuschauen.
</p></blockquote>
<p>Auch wenn f&#252;r den ein oder anderen es unvorstellbar ist, dass jemals solcher Qu&#228;lkot (wie es auf Coding-Horror vornehmlich <a href="http://www.coding-horror.de/?cat=11">genannt</a> wird) real aufkommen kann so ist das doch der Fall. Aber vor allem der Satz, dass man die <strong>hoheitliche Pflicht hat sich den umgebenen Quellcode anzuschauen wenn man etwas im Quellcode ver&#228;ndert hat</strong> ist meiner Meinung nach schon sehr viel Wert.</p>
<p>Der Coding-Horror Blog scheint nicht all zu oft neue Artikel zu erhalten aber ein abonnieren des RSS Feeds scheint sich zu lohnen. Der letzte Artikel &#252;brigens entspricht auch noch einem leidigen Thema welches einem auch in der Java-Welt des &#214;fteren unterkommt: die <a href="http://www.coding-horror.de/?p=67">Initialisierung von Klassenvariablen</a>. Aber dazu ein andere mal mehr.</p>
<p>Noch ein letzter Linktipp: <a href="http://stop.coding-horror.de/">Stop.Coding-Horror.de</a> &#8211; ein online Buch &#252;ber gute Softwareentwicklung mit Tods&#252;nden und Tugenden. Hier ein kleiner Auszug aus der Einleitung:</p>
<blockquote><p>
Es geht zu wie in einem Schlachthof. Zum erstenmal hatte ich das Gef&#252;hl ein &#228;chtliches, angewiedertes Knarzen im Prozessor zu vernehmen, wenn diese Softwareprodukte &#252;bersetzt und gestartet wurden.<br />
</blockquote >
<p>Bisher wurden noch nicht alle im Inhaltsverzeichnis angek&#252;ndigten Seiten ausgearbeitet aber auch die bisherigen Seiten sind schon mal eine kleine Lesepause wert.</p>
<p>In diesem Sinne &#8211; fr&#246;hliches programmieren!</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/06/boolsche-ausdruecke-gehen-sogar-in-if-abfragen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turingmaschine aus Lego</title>
		<link>http://javathreads.de/2009/02/turingmaschine-aus-lego/</link>
		<comments>http://javathreads.de/2009/02/turingmaschine-aus-lego/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 09:30:21 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[Theoretische Informatik]]></category>
		<category><![CDATA[Turing Maschine]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1019</guid>
		<description><![CDATA[Im Rahmen eines Informatik Studiums ist die Turingmaschine in Vorlesungen wie z.B. Grundlagen der Theoretische Informatik ein fester Bestandteil und auch ich musste diese Grundlagen &#252;ber mich ergehen lassen. Mit der Turing Maschine kann man mit den Operationen Lesen, Schreiben und Kopf bewegen mathematische Grundfunktionen wie Addition oder Multiplikation simulieren und das geh&#246;rt zu den [...]]]></description>
			<content:encoded><![CDATA[<p>Im Rahmen eines Informatik Studiums ist die <a href="http://de.wikipedia.org/wiki/Turingmaschine">Turingmaschine</a> in Vorlesungen wie z.B. Grundlagen der Theoretische Informatik ein fester Bestandteil und auch ich musste diese Grundlagen &#252;ber mich ergehen lassen. Mit der Turing Maschine kann man mit den Operationen Lesen, Schreiben und Kopf bewegen mathematische Grundfunktionen wie Addition oder Multiplikation simulieren und das geh&#246;rt zu den grundlegenden Konzepten der Informatik. Man k&#246;nnte fast sagen, dass es eine sehr abstrakte Version oder Vorg&#228;nger des heutigen Computers ist. Das typische Bild zu der Turingmaschine ist folgendes:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/02/turingmaschine.png" alt="Turingmaschine" title="Turingmaschine" width="301" height="167" class="borderGray alignnone size-full wp-image-1183" />
</div>
<p>Ohne an dieser Stelle genauer auf die Theorie einzugehen nur kurz der Hinweis, dass schon viele Simulatoren als Computerprogramm entwickelt worden sind somit sind solche Simulatoren eigentlich nichts besonderes mehr.</p>
<p>Das haben sich wohl auch die Jungs im Kurs &#8220;Embedded Systems &#8211; Embodied Agents&#8221; der <a href="http://www.daimi.au.dk/">Aarhus University</a> gedacht und das das Projekt &#8220;<a href="http://legoofdoom.blogspot.com">Lego of Doom</a>&#8221; gestartet. Am Ende ist eine in Lego gebaute Turing Maschine herausgekommen. Im <a href="http://legoofdoom.blogspot.com">Projektblog</a> kann man die Entwicklung und detaillierte Beschreibung finden. Zum Abschluss wurde folgendes Video erstellt was dem ganzen Projekt doch noch einmal eine extra Note gibt:</p>
<div style="text-align:center">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/cYw2ewoO6c4&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/cYw2ewoO6c4&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</div>
<p>Im Studium macht man wirklich ein paar ganz nette Dinge&#8230;</p>
<p>(via <a href="http://www.wolfgangschoch.com/blog/983-die-lego-turingmaschine.html">Wolfgang Schoch</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/02/turingmaschine-aus-lego/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Subversion unter Eclipse Ganymede konfigurieren</title>
		<link>http://javathreads.de/2008/07/subversion-unter-eclipse-ganymede-konfigurieren/</link>
		<comments>http://javathreads.de/2008/07/subversion-unter-eclipse-ganymede-konfigurieren/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 07:00:08 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Ganymede]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Subversive]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Tortoise]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=130</guid>
		<description><![CDATA[[Update 12.07.2009] Aktualisierte Installationsanleitung f&#252;r Subversion unter Eclipse Galileo (3.5)
Die Versionierungssoftware Subversion (SVN) hat mittlerweile CVS als das Tool der Wahl abgel&#246;st und ist immer mehr auf dem Vormarsch. In Eclipse Europa (Eclipse 3.3) war das Eclipse Plugin Subclipse weit verbreitet und hat gute Dienste als SVN Client geleistet.

 Mit Eclipse Ganymede (Eclipse 3.4) hat [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>[Update 12.07.2009]</em></strong> Aktualisierte Installationsanleitung f&#252;r <a href="http://javathreads.de/2009/07/subversion-unter-eclipse-galileo-konfigurieren/">Subversion unter Eclipse Galileo (3.5)</a></p>
<p>Die Versionierungssoftware <a href="http://de.wikipedia.org/wiki/Subversion_(Software)">Subversion</a> (SVN) hat mittlerweile <a href="http://de.wikipedia.org/wiki/Concurrent_Versions_System">CVS</a> als das Tool der Wahl abgel&#246;st und ist immer mehr auf dem Vormarsch. In Eclipse Europa (Eclipse 3.3) war das Eclipse Plugin <a href="http://subclipse.tigris.org/">Subclipse</a> weit verbreitet und hat gute Dienste als SVN Client geleistet.</p>
<div style="float:left; margin-right: 5px;"><img src="http://javathreads.de/data/uploads/2008/07/subversivelogo.gif" alt="" title="Subversive Logo" width="91" height="67" class="alignnone size-full wp-image-143" /></div>
<p> Mit <a href="http://javathreads.de/2008/07/eclipse-ganymede-als-jee-entwicklungsumgebung/">Eclipse Ganymede</a> (Eclipse 3.4) hat sich etwas in der SVN Unterst&#252;tzung getan. Zum einen ist bisher noch keine Unterst&#252;tzung Seitens Subclipse f&#252;r Eclipse 3.4 erschienen und zum anderen hat Eclipse in Ganymede das Konkurrenzprodukt <a href="http://www.eclipse.org/subversive/">Subversive</a> direkt integriert. Somit hat sich auch die Installation des SVN Clients in Eclipse Ganymede auch etwas ge&#228;ndert. Es wird nun zwischen dem Subversive Plugin und dem SVN Connector unterschieden. W&#228;hrend das Subversive Plugin von Eclipse entwickelt und gewartet wird, liegt der SVN Connector weiterhin in der Hand von <a href="http://www.polarion.org/index.php?page=overview&#038;project=subversive">polarion.org</a>.</p>
<p>Folgende <strong>f&#252;nf Schritte</strong> sind notwendig um das Subversive Plugin sowie den SVN Connector von Subversive in Eclipse Ganymede zu installieren.</p>
<p><span id="more-130"></span></p>
<h3>Installation von Subversion</h3>
<p><strong><em>[Update 01.10.2008]</em></strong> Nachdem mehrere Kommentare aufgetaucht sind, dass die Connectors nicht selektierbar seien oder irgendetwas anderes nicht funktioniert, habe ich den Weg nochmal bei mir druchgespielt und hier den Teil mit Screenshots geupdatet. Es waren bei mir nur <strong>f&#252;nf Schritte notwendig</strong> um mein Subversive Client zu installieren und auf mein SVN Repository zuzgreifen. Der sechste Schritt bezieht sich auf die SVN Perspektive.</p>
<ul>
<li><a href="#schritt1">Schritt 1: Update Seites hinzuf&#252;gen</a></li>
<li><a href="#schritt2">Schritt 2: Zu installierende Software selektieren</a></li>
<li><a href="#schritt3">Schritt 3: Best&#228;tigen der zu installierenden Software</a></li>
<li><a href="#schritt4">Schritt 4: Eclipse neu starten</a></li>
<li><a href="#schritt5">Schritt 5: SVN Connector ausw&#228;hlen/konfigurieren</a></li>
<li><a href="#schritt6">(Schritt 6: Mit Subversion in der SVN Perspektive arbeiten)</a></li>
</ul>
<div class="subHeadline"><a name="schritt1" class="noLink">Schritt 1: Update Seites hinzuf&#252;gen</a></div>
<p>Im Eclipse Hauptmen&#252; &#8220;<strong>Help->Software Updates&#8230;</strong>&#8221; klicken und den Reiter &#8220;<strong>Available Software</strong>&#8221; selektieren.<br />
Anschlie&#223;end auf den &#8220;<strong>Add Site</strong>&#8221; Button klicken um die Eclipse Subversive Update Seite &#8220;<a href="http://download.eclipse.org/technology/subversive/0.7/update-site/">http://download.eclipse.org/technology/subversive/0.7/update-site/</a>&#8221; hinzuzuf&#252;gen.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/10/svnaddsubversiveupdatesite.png" alt="" title="SVN Subversive Update Seite" class="borderGray alignnone size-full wp-image-504" />
</div>
<p>Anschlie&#223;end wieder mit dem Button &#8220;<strong>Add Site</strong>&#8221; noch die Subversive Connector Update Seite &#8220;<a href="http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/">http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/</a>&#8221; hinzuf&#252;gen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/10/svnaddpolarionupdatesite.png" alt="" title="SVN Polarion Connectors Update Seite" class="borderGray alignnone size-full wp-image-505" />
</div>
<div class="subHeadline"><a name="schritt2" class="noLink">Schritt 2: Zu installierende Software selektieren</a></div>
<p>Zum einen muss von der Eclipse Subversive Update Seite der &#8220;<strong>Subversive SVN Team Provider Plugin</strong>&#8221; installiert werden. Es reicht an der Stelle aus einfach das komplette Paket samt Unterpaketen zu selektieren.<br />
Zum anderen muss von der Polarion Update Seite der Subversive <strong>SVN Connector</strong> selektiert werden. Ich habe hier nur die beiden <strong>SVNKit 1.1.7 und 1.2.0</strong> selektiert. Auch hier k&#246;nnte man alle selektieren, denn der Connector der sp&#228;ter verwendet werden soll kann konfiguriert werden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/10/svnsoftwareselection.png" alt="" title="SVN Software Selektion - Subversive Plugin &#038; Connectors" class="borderGray alignnone size-full wp-image-506" />
</div>
<p>Anschlie&#223;end auf den Button &#8220;<strong>Install&#8230;</strong>&#8221; dr&#252;cken um die Installation zu starten. Es kann einen kleinen Moment dauern, bis alle Informationen aus dem Internet bezogen wurden.</p>
<div class="subHeadline"><a name="schritt3" class="noLink">Schritt 3: Best&#228;tigen der zu installierenden Software</a></div>
<p>Eigentlich nicht wirklich ein Schritt aber man sieht noch einmal deutlich, welche Packet wirklich ben&#246;tigt und installiert werden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/10/svninstallsoftware.png" alt="" title="SVN Pakete best&#228;tigen" class="borderGray alignnone size-full wp-image-507" />
</div>
<div class="subHeadline"><a name="schritt4" class="noLink">Schritt 4: Eclipse neu starten</a></div>
<p>Anschlie&#223;end Eclipse neu starten. Nach einer erfolgreichen Installation erscheint auf dem Workspace die Welcome View mit einem Subversive Eintrag.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/07/eclipseganymedesvn_welcome.png" alt="" title="Eclispe Ganymede - SVN Installation - Subversion Welcome" class="borderGray alignnone size-full wp-image-136" />
</div>
<div class="subHeadline"><a name="schritt5" class="noLink">Schritt 5: SVN Connector ausw&#228;hlen/konfigurieren</a></div>
<p>Ein SVN Connector ist bereits automatisch konfiguriert worden aber es schadet nichts das noch einmal zu &#252;berpr&#252;fen. In den <strong>Eclipse Preferences</strong> (Hauptmen&#252;->Window-Preferences) ist unter dem Eintrag &#8220;<strong>Team->SVN</strong>&#8221; das Konfigurationspanel f&#252;r die Subversion Unterst&#252;tzung zu finden. Dort kann in dem Tab &#8220;<strong>SVN Connector</strong>&#8221; der zu verwendende Connector konfiguriert werden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/10/svnselektierbaresvnconnectors.png" alt="" title="Eclispe Ganymede - SVN Installation - SVN Connector in Eclipse Preferences ausw&#228;hlen" class="borderGray alignnone size-full wp-image-508" />
</div>
<p>Hat man etwas in den Einstellungen ge&#228;ndert sollte das Preferences Fenster mit &#8220;OK&#8221; beendet werden.</p>
<div class="subHeadline"><a name="schritt6" class="noLink">Schritt 6: Mit Subversion  in der SVN Perspektive arbeiten</a></div>
<p>Um mit SVN zu arbeiten steht nun eine &#8220;<strong>SVN Repository Exploring Perspektive</strong>&#8221; und dazugeh&#246;rige Views zur Verf&#252;gung. Darin kann man nun ein Projekt aus einem SVN Repository aus- oder einchecken.</p>
<table style="width: 100%">
<tr>
<td style="text-align:center">
<img src="http://javathreads.de/data/uploads/2008/07/eclipseganymedesvn_svnperspektive.png" alt="" title="Eclipse Ganymede - SVN Installation - SVN Perspektive" class="alignnone size-full wp-image-139" />
</td>
<td style="text-align:center">
<img src="http://javathreads.de/data/uploads/2008/07/eclipseganymedesvn_svnview.png" alt="" title="Eclipse Ganymede - SVN Installation - SVN View" class="alignnone size-full wp-image-140" />
</td>
</tr>
</table>
<p>In Eclipse, bzw. unter Subversive, hat die Default-Projektstruktur immer die Strukturordner &#8220;trunk&#8221;, &#8220;branches&#8221; und &#8220;tags&#8221;. Erstellt man ein neues Projekt in einem SVN Repository (rechte Maustaste auf das Repository oder einem Pfad darunter->New->Project Structure&#8230;) so wird immer diese Projektstruktur automatisch angelegt und mit den von Subversive daf&#252;r definierten Symbolen dargestellt:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/07/eclipseganymedesvn_svnrepositoryview_projectstruktur.png" alt="" title="Eclipse Ganymede - SVN Installation - SVN Repository View - SVN Projekt Struktur" class="borderGray alignnone size-full wp-image-142" />
</div>
<p>Nun kann auch unter Eclipse Ganymede wieder mit einer ordentlichen Source-Code-Versionierung gearbeitet werden.</p>
<h3>ToroiseSVN</h3>
<p>Als kleiner Tipp noch am Rande: M&#246;chte man Subversion unter Windows auch au&#223;erhalb von Eclipse verwenden um z.B. Dokumente oder ganze Ordnerstrukturen (wie zum Beispiel f&#252;r die Entwicklung des Firefox Plugins &#8220;<a href="http://blog.openwishes.de/2008/06/firefox-add-on-openwishes-birthday-reminder/">Birthday Reminder</a>&#8220;) zu versionieren und abzusichern dann bietet sich das freie Tool <a href="http://tortoisesvn.net/">TortoiseSVN</a> an. </p>
<div class="singleImgDiv">
<a href="http://tortoisesvn.net/"><img src="http://javathreads.de/data/uploads/2008/07/tortoisesvn_logo_hor468x64.png" alt="" title="TortoiseSVN" width="468" height="64" class="borderGray alignnone size-full wp-image-144" /></a>
</div>
<p>Dieses f&#252;gt sich im Datei-Explorer in das Kontextmen&#252; (rechte Maustaste) ein. So hat man die M&#246;glichkeit direkt aus dem Datei Explorer heraus Pfade zu commiten oder zu updaten. Ein Repository Browser, Merge oder Diff Ansicht wird auch gleich mitgebracht. Einen kleinen ersten Eindruck erh&#228;lt man auch in den <a href="http://tortoisesvn.net/image/tid/13">bereitgestellten Schreenshots</a>.</p>
<h3>Freies Online-Buch &#8220;Version Control with Subversion&#8221;</h3>
<p>Als letztes noch der Hinweis auf das frei verf&#252;gbare Online-Buch &#8220;<a href="http://svnbook.red-bean.com/">Version Control with Subversion</a>&#8221; das ausf&#252;hrlich die Arbeitsweise und die Handhabung von Subversion beschreibt.</p>
<div class="singleImgDiv">
<a href="http://svnbook.red-bean.com/"><img src="http://javathreads.de/data/uploads/2008/07/oreillysvn.jpg" alt="" title="Version Control with Subversion" width="500" height="306" class="borderGray alignnone size-full wp-image-145" /></a>
</div>
<p>Das Buch ist von <a href="http://oreilly.com/catalog/9780596004484/">O&#8217;Reilly herausgegeben</a>, auf Deutsch &#252;bersetzt und kann als <a href="http://svnbook.red-bean.com/nightly/de/svn-book.html">einseitige HTML Seite</a> (ca 1.1 MB) oder <a href="http://svnbook.red-bean.com/nightly/de/index.html">mehrseitig online</a> angesehen werden. Dieser Link sollte von jedem der mit Subversion anf&#228;ngt oder arbeitet als Lesezeichen gespeichert werden.<br />
Wer lieber PDF mag kann es sich auch als <a href="http://svnbook.red-bean.com/nightly/de/svn-book.pdf">PDF ansehen oder herunterladen</a> (ca 1.3 MB). Und wer es doch lieber kaufen m&#246;chte weil er es lieber in Papierform mag kann dies nat&#252;rlich auch tun. Es ist bei <a href="http://www.amazon.de/Version-Control-with-Subversion/dp/0596510330/ref=sr_1_1?&#038;tag=webthreadsde-21&#038;ie=UTF8&#038;s=books-intl-de&#038;qid=1216709747&#038;sr=8-1">Amazon</a>zu haben.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2008/07/subversion-unter-eclipse-ganymede-konfigurieren/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
	</channel>
</rss>
