<?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>altes-kind.de - ver 6</title>
	<atom:link href="http://altes-kind.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://altes-kind.de</link>
	<description>herzlichkeit inside</description>
	<lastBuildDate>Tue, 31 Jul 2012 19:58:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>BC Bike Race 2012</title>
		<link>http://altes-kind.de/2012/07/31/bc-bike-race-2012/</link>
		<comments>http://altes-kind.de/2012/07/31/bc-bike-race-2012/#comments</comments>
		<pubDate>Tue, 31 Jul 2012 17:48:32 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=973</guid>
		<description><![CDATA[Nachdem ich 2011 als Teil des 2er-Teams &#8220;Team Ansbach&#8221; bei der Trans Andes Challenge in Chile teilgenommen hatte, ging es dieses Jahr nach Kanada zum Mountainbike-Etappenrennen BC Bike Race. Das Rennen führt in 7 Etappen durch den südlichen Teil von British Columbia, wobei im Gegensatz zu anderen vergleichbaren Rennen die einzelnen Etappenorte meist per Bus [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich 2011 als Teil des 2er-Teams &#8220;Team Ansbach&#8221; bei der Trans Andes Challenge in Chile <a href="http://altes-kind.de/2011/02/05/trans-andes-challenge-2011-in-chile/">teilgenommen hatte</a>, ging es dieses Jahr nach Kanada zum Mountainbike-Etappenrennen <a href="http://www.bcbikerace.com/">BC Bike Race</a>. </p>
<p>Das Rennen führt in 7 Etappen durch den südlichen Teil von British Columbia, wobei im Gegensatz zu anderen vergleichbaren Rennen die einzelnen Etappenorte meist per Bus und Fähre erreicht werden, um dann am jeweiligen Ort einen Rundkurs zu bestreiten. Außerdem ist das Rennen klar auf technisch zum Teil äußerst anspruchsvolle Singletrails fokusiert, d.h. das Rennen gewinnt nicht der Fahrer mit der besten Kondition auf Schotterstraßen sonderen der mit dem technisch besten (und mutigsten) Fahrstil.</p>
<p>Das Rennen selbst ist top organisiert und die technisch anspruchsvollen Trails machen richtig Spaß. Nur das Wetter hat während der ersten Tage nicht mitgespielt, so dass die Trails durch den Schlamm stellenweise nur unter größtem Krafaufwand fahrbar waren (wenn überhaupt). Trotzdem war es ein super Event und hat vor allem meiner Fahrtechnik richtig gut getan. ;) </p>
<p>Nachfolgend ein paar Fotos vom Rennen und dem Leben drumherum:</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto1.jpg" rel="lightbox[bcbikerace]" title="Das BC Bike Race Camp in Cumberland."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto1.jpg" width="80" height="60" alt="Das BC Bike Race Camp in Cumberland." title="Das BC Bike Race Camp in Cumberland." /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto3.jpg" rel="lightbox[bcbikerace]" title="Das Zieltor für den ersten Tag ist bereits aufgebaut."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto3.jpg" width="80" height="60" alt="Das Zieltor für den ersten Tag ist bereits aufgebaut" title="Das Zieltor für den ersten Tag ist bereits aufgebaut."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto2.jpg" rel="lightbox[bcbikerace]" title="Welcome to Tent City!"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto2.jpg" width="80" height="60" alt="Welcome to Tent City!" title="Welcome to Tent City!" /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto4.jpg" rel="lightbox[bcbikerace]" title="Die dunklen Wolken verheißen nichts gutes..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto4.jpg" width="80" height="60" alt="Die dunklen Wolken verheißen nichts gutes..." title="Die dunklen Wolken verheißen nichts gutes..." /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_bikerace3.jpg" rel="lightbox[bcbikerace]" title="...und so waren die ersten Tage auch vor allem eine Schammschlacht!"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__bikerace3.jpg" width="80" height="60" alt="...und so waren die ersten Tage auch vor allem eine Schammschlacht!" title="...und so waren die ersten Tage auch vor allem eine Schammschlacht!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto5.jpg" rel="lightbox[bcbikerace]" title="Zum Glück hatte ich genügend Bike-Klamotten zum Wechseln dabei. ;)"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto5.jpg" width="80" height="60" alt="Zum Glück hatte ich genügend Bike-Klamotten zum Wechseln dabei. ;)" title="Zum Glück hatte ich genügend Bike-Klamotten zum Wechseln dabei. ;)" /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_bikerace2.jpg" rel="lightbox[bcbikerace]" title="Kurze Verschnaufspause vom Singletrack. ;)" ><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__bikerace2.jpg" width="80" height="60" alt="Kurze Kurze Verschnaufspause vom Singletrack. ;)" title="Kurze Verschnaufspause vom Singletrack. ;)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto8.jpg" rel="lightbox[bcbikerace]" title="Die Renntage waren vollgepackt mit Terminen für Essen, Bus- und Fährfahrten und natürlich dem Rennen, daher hieß es jeden Morgen sehr früh aufstehen."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto8.jpg" width="80" height="60" alt="Die Renntage waren vollgepackt mit Terminen für Essen, Bus- und Fährfahrten und natürlich dem Rennen, daher hieß es jeden Morgen sehr früh aufstehen." title="Die Renntage waren vollgepackt mit Terminen für Essen, Bus- und Fährfahrten und natürlich dem Rennen, daher hieß es jeden Morgen sehr früh aufstehen." /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_bikerace1.jpg" rel="lightbox[bcbikerace]" title="Die Singletracks machen Spaß..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__bikerace1.jpg" width="80" height="60" alt="Die Singletracks machen Spaß..." title="Die Singletracks machen Spaß..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_bikerace4.jpg" rel="lightbox[bcbikerace]" title="...erfordern aber auch dauernde Konzentration!"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__bikerace4.jpg" width="80" height="60" alt="...erfordern aber auch dauernde Konzentration!" title="...erfordern aber auch dauernde Konzentration!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto11.jpg" rel="lightbox[bcbikerace]" title="Nach den ersten 3, 4 stressigen Tagen wird man langsam müde..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto11.jpg" width="80" height="60" alt="Nach den ersten 3, 4 stressigen Tagen wird man langsam müde..." title="Nach den ersten 3, 4 stressigen Tagen wird man langsam müde..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto10.jpg" rel="lightbox[bcbikerace]"  title="...zum Glück ist die zweite Wochenhälfte zumindest sonniger geworden :)"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto10.jpg" width="80" height="60" alt="...zum Glück ist die zweite Wochenhälfte zumindest sonniger geworden :)" title="...zum Glück ist die zweite Wochenhälfte zumindest sonniger geworden :)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto15.jpg" rel="lightbox[bcbikerace]" title="Und so konnte man während des 'Feierabends' noch ein wenig die Sonne genießen!"  ><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto15.jpg" width="80" height="60" alt="Und so konnte man während des 'Feierabends' noch ein wenig die Sonne genießen!" title="Und so konnte man während des 'Feierabends' noch ein wenig die Sonne genießen!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto16.jpg" rel="lightbox[bcbikerace]" title="Das ist übrigens Martin Campoy (&lt;a href=&quot;http://vimeo.com/35113296&quot; target=&quot;_blank&quot;&gt;http://vimeo.com/35113296&lt;/a&gt;) mit einem Sandman Bike."  ><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto16.jpg" width="80" height="60" alt="Das ist übrigens Martin Campoy (http://vimeo.com/35113296) mit einem Sandman Bike." title="Das ist übrigens Martin Campoy (http://vimeo.com/35113296) mit einem Sandman Bike."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto17.jpg" rel="lightbox[bcbikerace]" title="Der insgesamt schönsten Tag bzgl. Trails und Camp war in Squamish."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto17.jpg" width="80" height="60" alt="Der insgesamt schönsten Tag bzgl. Trails und Camp war in Squamish." title="Der insgesamt schönsten Tag bzgl. Trails und Camp war in Squamish."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_foto18.jpg" rel="lightbox[bcbikerace]" title="Finisher-Foto nach sieben Tagen BC Bike Race im (ansonsten leider sehr langweiligen) Touristen-Ort Whistler. :)"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__foto18.jpg" width="80" height="60" alt="Finisher-Foto nach sieben Tagen BC Bike Race im (ansonsten leider sehr langweiligen) Touristen-Ort Whistler. :)" title="Finisher-Foto nach sieben Tagen BC Bike Race im (ansonsten leider sehr langweiligen) Touristen-Ort Whistler. :)" /></a></p>
<p>Da ich mir vor ein paar Monaten außerdem eine <a href="http://gopro.com/">GoPro Kamera</a> gekauft habe, gibt es viele Stunden persönliches Videomaterial vom Rennen. Hier schon mal mein erstes GoPro Video vom letzten Tag in Whistler &#8211; watch in HD! ;)</p>
<p><iframe src="https://docs.google.com/file/d/0B_R4ERtTM2_IWi1LNThTZUtGWXM/preview" width="400" height="330" frameborder="0"></iframe></p>
<p>Da außerdem mehrere professionelle Kamerateams anwesend waren, gibts es auch eine ganze Reihe an <a href="http://www.bcbikerace.com/news-and-media/videos/2012-videos">wirklich sehenswerten Videos</a>, unter anderem mein Lieblings-Video: </p>
<p><iframe width="400" height="280" src="http://www.youtube.com/embed/XDLrvNj6PyQ" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2012/07/31/bc-bike-race-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Winterflucht nach Indien</title>
		<link>http://altes-kind.de/2012/02/07/winterflucht-nach-indien/</link>
		<comments>http://altes-kind.de/2012/02/07/winterflucht-nach-indien/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 22:11:35 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=948</guid>
		<description><![CDATA[Nachdem mein Blog in den letzten Monaten ein wenig eingeschlafen ist, gibt es mal wieder ein Update mit Reisefotos. Meine Weihnachtsreise hat mich in diesem Jahr nach Indien geführt, wobei ich &#8211; da die Reise bewusst als &#8220;Bade-/Entspannungsurlaub&#8221; geplant war &#8211; nur einen sehr kleinen Teil des Landes gesehen habe. Hier nun ein paar bunt [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem mein Blog in den letzten Monaten ein wenig eingeschlafen ist, gibt es mal wieder ein Update mit Reisefotos. Meine Weihnachtsreise hat mich in diesem Jahr nach Indien geführt, wobei ich &#8211; da die Reise bewusst als &#8220;Bade-/Entspannungsurlaub&#8221; geplant war &#8211; nur einen sehr kleinen Teil des Landes gesehen habe. Hier nun ein paar bunt gemischte Fotos aus Delhi, Jaipur, Goa und Gokarna &#8211; wobei ich darauf geachtet habe die allseits vorhanden Plastikmüllberge nicht zu prominent zu fotografieren. ;)</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india1.JPG" rel="lightbox[india]" title="Delhi ist wie alle anderen asiatischen Städte auch: groß, laut und dreckig. Aber dafür gibts an jeder Ecke leckerstes Essen für ein paar Cent."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/___india1.JPG" width="80" height="60" alt="Delhi ist wie alle anderen asiatischen Städte auch: groß, laut und dreckig. Aber dafür gibts an jeder Ecke leckerstes Essen für ein paar Cent." title="Delhi ist wie alle anderen asiatischen Städte auch: groß, laut und dreckig. Aber dafür gibts an jeder Ecke leckerstes Essen für ein paar Cent."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india2.JPG" rel="lightbox[india]" title="Schöner ist es da schon in Goa..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india2.JPG" width="80" height="60" alt="Schöner ist es da schon in Goa..." title="Schöner ist es da schon in Goa..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india3.JPG" rel="lightbox[india]" title="... auch wenn zur Hauptreisezeit einige Touristen unterwegs sind."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india3.JPG" width="80" height="60" alt="... auch wenn zur Hauptreisezeit einige Touristen unterwegs sind." title="... auch wenn zur Hauptreisezeit einige Touristen unterwegs sind."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india4.JPG" rel="lightbox[india]" title="Wer allerdings ein wenig läuft..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india4.JPG" width="80" height="60" alt="Wer allerdings ein wenig läuft..." title="Wer allerdings ein wenig läuft..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india5.JPG" rel="lightbox[india]" title="... und die ausgetretenen Touristenpfade verlässt..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india5.JPG" width="80" height="60" alt="... und die ausgetretenen Touristenpfade verlässt..." title="... und die ausgetretenen Touristenpfade verlässt..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india6.JPG" rel="lightbox[india]" title="... findet auch in Goa noch ruhige und wenig frequentierte Strände."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india6.JPG" width="80" height="60" alt="... findet auch in Goa noch ruhige und wenig frequentierte Strände." title="... findet auch in Goa noch ruhige und wenig frequentierte Strände."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india7.JPG" rel="lightbox[india]" title="Abendatmosphäre in Goa"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india7.JPG" width="80" height="60" alt="Abendatmosphäre in Goa" title="Abendatmosphäre in Goa"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india8.JPG" rel="lightbox[india]" title="Einsame Strände in Goa"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india8.JPG" width="80" height="60" alt="Einsame Strände in Goa" title="Einsame Strände in Goa"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india9.JPG" rel="lightbox[india]" title="Kühe sind in Indien ja bekanntlich heilig..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/___india9.JPG" width="80" height="60" alt="Kühe sind in Indien ja bekanntlich heilig..." title="Kühe sind in Indien ja bekanntlich heilig..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india10.JPG" rel="lightbox[india]" title="... vor allem in ebenso heiligen Orten wie Gokarna."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india10.JPG" width="80" height="60" alt="... vor allem in ebenso heiligen Orten wie Gokarna." title="... vor allem in ebenso heiligen Orten wie Gokarna."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india11.JPG" rel="lightbox[india]" title="In Gokarna findet man auch viele wunderschön gelegene Tempel."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/___india11.JPG" width="80" height="60" alt="In Gokarna findet man auch viele wunderschön gelegene Tempel." title="In Gokarna findet man auch viele wunderschön gelegene Tempel."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india12.JPG" rel="lightbox[india]" title="Indien ist ja für den Zugverkehr bekannt. Wer trotzdem mit dem Bus reist..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india12.JPG" width="80" height="60" alt="Indien ist ja für den Zugverkehr bekannt. Wer trotzdem mit dem Bus reist..." title="Indien ist ja für den Zugverkehr bekannt. Wer trotzdem mit dem Bus reist..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india13.JPG" rel="lightbox[india]" title="... muss sich auf teilweise katastrophal heruntergekommene Busse gefasst machen."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/___india13.JPG" width="80" height="60" alt="... muss sich auf teilweise katastrophal heruntergekommene Busse gefasst machen." title="... muss sich auf teilweise katastrophal heruntergekommene Busse gefasst machen."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india14.JPG" rel="lightbox[india]" title="Die Sonnenuntergänge hingegen..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india14.JPG" width="80" height="60" alt="Die Sonnenuntergänge hingegen..." title="Die Sonnenuntergänge hingegen..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india15.JPG" rel="lightbox[india]" title="... sind wunderschön in Indien..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india15.JPG" width="80" height="60" alt="... sind wunderschön in Indien..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india16.JPG" rel="lightbox[india]" title="... und ideal um richtig in Urlaubsstimmung zu kommen."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india16.JPG" width="80" height="60" alt="... und ideal um richtig in Urlaubsstimmung zu kommen." title="... und ideal um richtig in Urlaubsstimmung zu kommen."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india17.JPG" rel="lightbox[india]" title="Die Ruhe ist allerdings vorbei sobald man wieder in größere Städte kommt..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/___india17.JPG" width="80" height="60" alt="Die Ruhe ist allerdings vorbei sobald man wieder in größere Städte kommt..." title="Die Ruhe ist allerdings vorbei sobald man wieder in größere Städte kommt..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india18.JPG" rel="lightbox[india]" title="... auch wenn es dort - wie hier in Jaipur - auch nette Ecken gibt."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__india18.JPG" width="80" height="60" alt="... auch wenn es dort - wie hier in Jaipur - auch nette Ecken gibt." title="... auch wenn es dort - wie hier in Jaipur - auch nette Ecken gibt."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india19.JPG" rel="lightbox[india]" title="Absolutes Highlight ist ist jedoch das indische Essen, ..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/___india19.JPG" width="80" height="60" alt="Absolutes Highlight ist ist jedoch das indische Essen, ..." title="Absolutes Highlight ist ist jedoch das indische Essen, ..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_india20.JPG" rel="lightbox[india]" title="... das immer perfekt gewürzt und einfach nur richtig lecker ist!"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/___india20.JPG" width="80" height="60" alt="... das immer perfekt gewürzt und einfach nur richtig lecker ist!" title="... das immer perfekt gewürzt und einfach nur richtig lecker ist!"  /></a></p>
<p>Ich werde Indien sicher nochmals bereisen, dann aber wohl den Norden Richtung Himalaya.</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2012/02/07/winterflucht-nach-indien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trans Andes Challenge 2011 in Chile</title>
		<link>http://altes-kind.de/2011/02/05/trans-andes-challenge-2011-in-chile/</link>
		<comments>http://altes-kind.de/2011/02/05/trans-andes-challenge-2011-in-chile/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 16:56:23 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=875</guid>
		<description><![CDATA[Ende Januar habe ich mit einem ehemaligen Kommilitonen der FH Ansbach bei der diesjährigen Trans Andes Challenge in Chile teilgenommen. Die Trans Andes Challenge ist ein 6-tägiges Mountainbike Etappenrennen in den südlichen Anden von Chile (allerdings nicht direkt in Patagonien, wie es der Werbeslogon &#8220;The Epic Mountainbike Race in Patagonia&#8221; vermuten lässt). Das Rennen richtet [...]]]></description>
			<content:encoded><![CDATA[<p>Ende Januar habe ich mit einem ehemaligen Kommilitonen der <a href="http://www.hs-ansbach.de/">FH Ansbach</a> bei der diesjährigen <a href="http://www.transandeschallenge.com/">Trans Andes Challenge</a> in Chile teilgenommen. Die Trans Andes Challenge ist ein 6-tägiges Mountainbike Etappenrennen in den südlichen Anden von Chile (allerdings nicht direkt in Patagonien, wie es der Werbeslogon &#8220;The Epic Mountainbike Race in Patagonia&#8221; vermuten lässt). Das Rennen richtet sich ausdrücklich nicht nur an Profifahrer, sondern will vielmehr auch ein Abenteuerrennen für ambitionierte Amateur-Mountainbikefahrer sein. Und somit waren neben Profis wie z. B. <a href="http://www.benjamin-sonntag.de/">Ben Sonntag</a>, <a href="http://www.evalechner.it/">Eva Lechner</a> oder <a href="http://www.nathalieschneitter.ch">Nathalie Schneitter</a> auch zwei ehemaligen FH Ansbach Studenten am Start. ;-)</p>
<p>Nachdem die Organisation im Vorfeld (d.h. Online-Registrierung, Website usw.) bei uns nicht den besten Eindruck hinterlassen hatte, war das Event vor Ort dann allerdings wirklich gut und profesionell organisiert. Einzig die etwas häufigen Änderungen bei den Streckenführungen (Strecken im Internet &plusmn; Strecken im Roadbook &plusmn; Strecken beim abendlichen Racemeeting &plusmn; tatsächlich gefahrene Strecken) waren dann doch manchmal etwas zuviel. Ansonsten hat die Organisation (Verpflegung, Campsites, Fotografen, Videoteams, medizinische Versorgung, technischer Service, Verpflegungsstationen während des Rennens usw.) nicht die geringsten Wünschen offen gelassen, so dass die (knappe) Freizeit neben den Rennen völlig stressfrei ablaufen konnte.</p>
<p>Nachfolgend einige Fotos der insgesamt 2 1/2 Wochen in Chile:</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_1.jpg" title="Die ersten Trainingsrunden im Regen in Pucon." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_1.jpg" width="80" height="60" alt="Die ersten Trainingsrunden im Regen in Pucon." title="Die ersten Trainingsrunden im Regen in Pucon."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_2.jpg" title="Überlebenstraining im Dschungel. :-(" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__transandes_2.jpg" width="80" height="60" alt="Überlebenstraining im Dschungel. :-(" title="Überlebenstraining im Dschungel. :-("  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_3.jpg" title="Lebensretter..." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_3.jpg" width="80" height="60" alt="Lebensretter..." title="Lebensretter..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_4.jpg" title="Dem Dschungel nochmal entkommen!" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_4.jpg" width="80" height="60" alt="Dem Dschungel nochmal entkommen!" title="Dem Dschungel nochmal entkommen!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_5.jpg" title="Glasklare Seen..." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_5.jpg" width="80" height="60" alt="Glasklare Seen..." title="Glasklare Seen..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_6.jpg" title="...die dann auch zum Baden einladen!" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_6.jpg" width="80" height="60" alt="...die dann auch zum Baden einladen!" title="...die dann auch zum Baden einladen!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_7.jpg" title="&quot;Deutsches&quot; Bier in Chile. :-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_7.jpg" width="80" height="60" alt="&quot;Deutsches&quot; Bier in Chile. :-)" title="&quot;Deutsches&quot; Bier in Chile. :-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_8.jpg" title="Südamerikanische Rindersteaks zur Stärkung für die Trans Andes. ;-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_8.jpg" width="80" height="60" alt="Südamerikanische Rindersteaks zur Stärkung für die Trans Andes. ;-)" title="Südamerikanische Rindersteaks zur Stärkung für die Trans Andes. ;-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_9.jpg" title="Die letzten Tage vor dem Rennen galt es ein wenig die Beine auszuruhen..." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_9.jpg" width="80" height="60" alt="Die letzten Tage vor dem Rennen galt es ein wenig die Beine auszuruhen..." title="Die letzten Tage vor dem Rennen galt es ein wenig die Beine auszuruhen..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_10.jpg" title="...und die Umgebung von Pucon per Mietauto zu erkunden!" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_10.jpg" width="80" height="60" alt="...und die Umgebung von Pucon per Mietauto zu erkunden!" title="...und die Umgebung von Pucon per Mietauto zu erkunden!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_11.jpg" title="Registierung für die Trans Andes in Huilo Huilo." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_11.jpg" width="80" height="60" alt="Registierung für die Trans Andes in Huilo Huilo." title="Registierung für die Trans Andes in Huilo Huilo."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_12.jpg" title="Mein altes und billiges Cube neben &gt;4000 EUR Bikes." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_12.jpg" width="80" height="60" alt="Mein altes und billiges Cube neben &gt;4000 EUR Bikes." title="Mein altes und billiges Cube neben &gt;4000 EUR Bikes."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_13.jpg" title="Letzter Abend vor dem Rennen... noch konnte man lachen! ;-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_13.jpg" width="80" height="60" alt="Letzter Abend vor dem Rennen... noch konnte man lachen! ;-)" title="Letzter Abend vor dem Rennen... noch konnte man lachen! ;-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_14.jpg" title="Start und Ziel der ersten Etappe bei Huilo Huilo." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_14.jpg" width="80" height="60" alt="Start und Ziel der ersten Etappe bei Huilo Huilo." title="Start und Ziel der ersten Etappe bei Huilo Huilo."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_15.jpg" title="Die sechs Etappen der Trans Andes führten öfters direkt durch wunderschöne Nationalparks. :-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_15.jpg" width="80" height="60" alt="Die sechs Etappen der Trans Andes führten öfters direkt durch wunderschöne Nationalparks. :-)" title="Die sechs Etappen der Trans Andes führten öfters direkt durch wunderschöne Nationalparks. :-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_16.jpg" title="Ab und an gab es während des Rennens auch Schiebepassagen..." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_16.jpg" width="80" height="60" alt="Ab und an gab es während des Rennens auch Schiebepassagen..." title="Ab und an gab es während des Rennens auch Schiebepassagen..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_17.jpg" title="...und oben in den Bergen immer fazinierende Wälder..." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_17.jpg" width="80" height="60" alt="...und oben auf den Bergen immer fazinierende Wälder..." title="...und oben auf den Bergen immer fazinierende Wälder..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_18.jpg" title="...und wunderschöne Aussichten! :-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__transandes_18.jpg" width="80" height="60" alt="...und wunderschöne Aussichten! :-)" title="...und wunderschöne Aussichten! :-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_19.jpg" title="Highlight von Tag 5 war die Überquerung einer extrem wackligen Hängebrücke." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__transandes_19.jpg" width="80" height="60" alt="Highlight von Tag 5 war die Überquerung einer extrem wackligen Hängebrücke." title="Highlight von Tag 5 war die Überquerung einer extrem wackligen Hängebrücke."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_20.jpg" title="Während des Rennen wurde in Zelten in der Nähe von großen Thermalanlagen geschlafen." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_20.jpg" width="80" height="60" alt="Während des Rennen wurde in Zelten in der Nähe von großen Thermalanlagen geschlafen." title="Während des Rennen wurde in Zelten in der Nähe von großen Thermalanlagen geschlafen."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_21.jpg" title="Die Campingatmosphäre war immer sehr relaxed. ;-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__transandes_21.jpg" width="80" height="60" alt="Die Campingatmosphäre war immer sehr relaxed.  ;-)" title="Die Campingatmosphäre war immer sehr relaxed. ;-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_22.jpg" title="Für Notfälle waren mehrere Ärzte und &quot;Rettungswagen&quot; im Einsatz." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_22.jpg" width="80" height="60" alt="Für Notfälle waren mehrere Ärzte und &quot;Rettungswagen&quot; im Einsatz." title="Für Notfälle waren mehrere Ärzte und &quot;Rettungswagen&quot; im Einsatz."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_23.jpg" title="Außerdem gab es ein großes medizinisches Zelt zur Behandlung kleinerer und größerer Verletzungen." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__transandes_23.jpg" width="80" height="60" alt="Außerdem gab es ein großes medizinisches Zelt zur Behandlung kleinerer und größerer Verletzungen." title="Außerdem gab es ein großes medizinisches Zelt zur Behandlung kleinerer und größerer Verletzungen."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_24.jpg" title="Das in jedem Etappenort vorhandene &quot;Raceoffice&quot; hat zum Smalltalk mit den Organisatoren und anderen Fahrern eingeladen." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_24.jpg" width="80" height="60" alt="Das in jedem Etappenort vorhandene &quot;Raceoffice&quot; hat zum Smalltalk mit den Organisatoren und anderen Fahrern eingeladen." title="Das in jedem Etappenort vorhandene &quot;Raceoffice&quot; hat zum Smalltalk mit den Organisatoren und anderen Fahrern eingeladen."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_25.jpg" title="Nach 6 Tagen Rennen war unser eigens designtes Trikot &quot;leicht&quot; verschmutzt... ;-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__transandes_25.jpg" width="80" height="60" alt="Nach 6 Tagen Rennen war unser eigens designtes Trikot &quot;leicht&quot; verschmutzt... ;-)" title="Nach 6 Tagen Rennen war unser eigens designtes Trikot &quot;leicht&quot; verschmutzt... ;-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_26.jpg" title="...und die Bikes mussten wieder für die lange Reise nach Deutschland verpackt werden." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_26.jpg" width="80" height="60" alt="...und die Bikes mussten wieder für die lange Reise nach Deutschland verpackt werden." title="...und die Bikes mussten wieder für die lange Reise nach Deutschland verpackt werden."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_27.jpg" title="Am letzten Abend gab es dann noch ein großes BBQ..." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_27.jpg" width="80" height="60" alt="Am letzten Abend gab es dann noch ein großes BBQ..." title="Am letzten Abend gab es dann noch ein großes BBQ..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_28.jpg" title="... und anschließend die große Siegerehrung!" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_28.jpg" width="80" height="60" alt="... und anschließend die große Siegerehrung!" title="... und anschließend die große Siegerehrung!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_29.jpg" title="&quot;Natürlich&quot; sind wir in unsere Altersklasse auf Platz 1 gefahren! ;-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_29.jpg" width="80" height="60" alt="&quot;Natürlich&quot; sind wir in unsere Altersklasse auf Platz 1 gefahren! ;-)" title="&quot;Natürlich&quot; sind wir in unsere Altersklasse auf Platz 1 gefahren! ;-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_30.jpg" title="Anschließend gab es eine große Party! Zunächst mit ein paar Chilenen aus dem Trans Andes Organisationsteam..." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_30.jpg" width="80" height="60" alt="Anschließend gab es eine große Party! Zunächst mit ein paar Chilenen aus dem Trans Andes Organisationsteam..." title="Anschließend gab es eine große Party! Zunächst mit ein paar Chilenen aus dem Trans Andes Organisationsteam..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_31.jpg" title="... und dann noch mit den vielen lustigen &quot;Vögeln&quot; der Trans Andes Teilnehmer! ;-)" rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_transandes_31.jpg" width="80" height="60" alt="... und dann noch mit den vielen lustigen &quot;Vögeln&quot; der Trans Andes Teilnehmer! ;-)" title="... und dann noch mit den vielen lustigen &quot;Vögeln&quot; der Trans Andes Teilnehmer! ;-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/transandes_32.jpg" title="Aussicht auf Santiago de Chile vom Cerro San Cristobal Park." rel="lightbox[transandes2011]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__transandes_32.jpg" width="80" height="60" alt="Aussicht auf Santiago de Chile vom Cerro San Cristobal Park." title="Aussicht auf Santiago de Chile vom Cerro San Cristobal Park."  /></a><br />
Einen guten Eindruck vom Rennen vermitteln auch die von <a href="http://www.teamjamis.com/wp/">Team Jamis</a> (den späteren Gesamtsiegern) über eine Helmkamera aufgenommenen Videos (bei <a href="http://vimeo.com/user1104260">Vimeo</a> gibts noch mehr davon):</p>
<p><iframe src="http://player.vimeo.com/video/19343352" width="400" height="300" frameborder="0"></iframe></p>
<p><iframe src="http://player.vimeo.com/video/19342980" width="400" height="300" frameborder="0"></iframe></p>
<p>Da die Trans Andes Challenge mein erstes Mountainbike Etappenrennen war, kann ich sie nicht mit in Deutschland etablierten Veranstaltungen wie der <a href="http://www.bike-transgermany.de/">Trans Germany</a> oder <a href="http://www.bike-magazin.de/event/bike-transalp/">Trans Alp</a> vergleichen. Allerdings habe ich von anderen Fahrern gehört, dass die Trails der Trans Anders Challenge deutlich anspruchsvoller sind als bei gewöhnlichen Etappenrennen. Und auch ich war durchaus überascht ob der technischen Schwierigkeit in vielen Streckenabschnitten, da ich im Vorfeld eigentlich mit leichter zu fahrenden Wegen gerechnet hatte (mich dann aber natürlich trotzdem über die vielen anspruchvollen Trails gefreut habe).</p>
<p>Insgesamt kann die Trans Andes Challenge als Mountainbike Etappenrennen also absolut empfohlen werden &#8211; mir hat es jedenfalls super viel Spaß gemacht! :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2011/02/05/trans-andes-challenge-2011-in-chile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ein paar Fotos aus Indonesien</title>
		<link>http://altes-kind.de/2011/01/13/ein-paar-fotos-aus-indonesien-2/</link>
		<comments>http://altes-kind.de/2011/01/13/ein-paar-fotos-aus-indonesien-2/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 13:43:40 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=858</guid>
		<description><![CDATA[Meine vielen Fotos aus Indoensien habe ich noch nicht so richtig sondiert, aber ein paar kleine Schnappschüsse kann ich bereits präsentieren. Die Reisezeit im Dezember/Januar kann man übrigens durchaus empfehlen: es ist zwar Regenzeit, aber dafür sind deutlich weniger Touristen als zur Hautsaison zu sehen und die Preise für Unterkunft, Essen und Transport sind oftmals [...]]]></description>
			<content:encoded><![CDATA[<p>Meine vielen Fotos aus Indoensien habe ich noch nicht so richtig sondiert, aber ein paar kleine Schnappschüsse kann ich bereits präsentieren. Die Reisezeit im Dezember/Januar kann man übrigens durchaus empfehlen: es ist zwar Regenzeit, aber dafür sind deutlich weniger Touristen als zur Hautsaison zu sehen und die Preise für Unterkunft, Essen und Transport sind oftmals um mehr als 50% günstiger. Und trotz Regenzeit scheint so gut wie immer die Sonne, auch wenn es meistens leicht diesig ist.</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0281.JPG" rel="lightbox[indonesien]" title="Jakarta ist vor allem eins: langweilig!" title="Jakarta ist vor allem eins: langweilig!"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0281.JPG" width="80" height="60" alt="Jakarta ist vor allem eins: langweilig!" title="Jakarta ist vor allem eins: langweilig!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0322.JPG" rel="lightbox[indonesien]" title="Tut-tuk fahren macht aber auch in Jakarta Spass :-)"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0322.JPG" width="80" height="60" alt="Tut-tuk fahren macht aber auch in Jakarta Spass :-)" title="Tut-tuk fahren macht aber auch in Jakarta Spass :-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0393.JPG" rel="lightbox[indonesien]" title="Der berühmte Surfspot Uluwatu auf Bali. Die Wellen waren höher als es auf dem Bild den Anschein hat."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0393.JPG" width="80" height="60" alt="Der berühmte Surfspot Uluwatu auf Bali. Die Wellen waren höher als es auf dem Bild den Anschein hat." title="Der berühmte Surfspot Uluwatu auf Bali. Die Wellen waren höher als es auf dem Bild den Anschein hat."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0517.JPG" rel="lightbox[indonesien]" title="Island Hopping zwischen Bali und Lombok."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0517.JPG" width="80" height="60" alt="Island Hopping zwischen Bali und Lombok" title="Island Hopping zwischen Bali und Lombok"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0533.JPG" rel="lightbox[indonesien]" title="Yeah... so sollte Strandurlaub sein! :-)"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0533.JPG" width="80" height="60" alt="Yeah... so sollte Strandurlaub sein! :-)" title="Yeah... so sollte Strandurlaub sein! :-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0534.JPG" rel="lightbox[indonesien]" title="Eine der Gili Islands in der Nähe von Lombok."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/__DSCN0534.JPG" width="80" height="60" alt="Eine der Gili Islands in der Nähe von Lombok." title="Eine der Gili Islands in der Nähe von Lombok."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0540.JPG" rel="lightbox[indonesien]" title="Zeit für Mittagessen... :-)"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0540.JPG" width="80" height="60" alt="Zeit für Mittagessen... :-)" title="Zeit für Mittagessen... :-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0637.JPG" rel="lightbox[indonesien]" title="Das Leben wie es sein sollte! :-)"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0637.JPG" width="80" height="60" alt="Das Leben wie es sein sollte! :-)" title="Das Leben wie es sein sollte! :-)"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0602.JPG" rel="lightbox[indonesien]" title="Ein aktuelles Selbstportrait aus Indonesien."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0602.JPG" width="80" height="60" alt="Ein aktuelles Selbstportrait aus Indonesien." title="Ein aktuelles Selbstportrait aus Indonesien."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0656.JPG" rel="lightbox[indonesien]" title="Auf Lombok findet man noch viele vollkommen unberührte Strände..."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0656.JPG" width="80" height="60" alt="Auf Lombok findet man noch viele vollkommen unberührte Strände..." title="Auf Lombok findet man noch viele vollkommen unberührte Strände..."  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0665.JPG" rel="lightbox[indonesien]" title="... und auch - wie in ganz Indonesien - viele, viele Reisfelder!"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0665.JPG" width="80" height="60" alt="... und auch - wie in ganz Indonesien - viele, viele Reisfelder!" title="... und auch - wie in ganz Indonesien - viele, viele Reisfelder!"  /></a><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/DSCN0702.JPG" rel="lightbox[indonesien]" title="Am Ende des Urlaubs ging es zum Shopping wieder in touristischere Gegenden."><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_DSCN0702.JPG" width="80" height="60" alt="Am Ende des Urlaubs ging es zum Shopping wieder in touristischere Gegenden." title="Am Ende des Urlaubs ging es zum Shopping wieder in touristischere Gegenden."  /></a></p>
<p>Am Sonntag geht es für mich übrigens gleich weiter auf die andere Seite der Weltkugel: nach Chile zur <a href="http://www.transandeschallenge.com">Trans Andes Challenge 2011</a>! :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2011/01/13/ein-paar-fotos-aus-indonesien-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Masterstudium Advanced Computer Science an der Hochschule Furtwangen (Erfahrungsbericht)</title>
		<link>http://altes-kind.de/2010/11/30/masterstudium-advanced-computer-science-an-der-hochschule-furtwangen-erfahrungsbericht/</link>
		<comments>http://altes-kind.de/2010/11/30/masterstudium-advanced-computer-science-an-der-hochschule-furtwangen-erfahrungsbericht/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 08:49:43 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=778</guid>
		<description><![CDATA[Wie berichtet, habe ich mich im September 2009 und rund vier Jahre nach meinem Wirtschaftsinformatik Diplom in Ansbach für den Masterstudiengang Advanced Computer Science an der Hochschule Furtwangen eingeschrieben. Da ich das Studium mittlerweile erfolgreich abgeschlossen habe, möchte ich an dieser Stelle einen kurzen Erfahrungsbericht über das Studium geben. Hochschule: Die Hochschule Furtwangen genießt für [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_hs_furtwangen.jpg" width="80" height="34" alt="Hochschule Furtwangen" title="Hochschule Furtwangen" align="right" />Wie <a href="http://altes-kind.de/2009/09/09/masterstudium_advanced_computer_science_an_der_hochschule_furtwangen">berichtet</a>, habe ich mich im September 2009 und rund vier Jahre nach meinem Wirtschaftsinformatik Diplom in Ansbach für den Masterstudiengang <a href="http://www.hs-furtwangen.de/fachbereiche/in/deutsch/studienangebote/acm/?tg=0">Advanced Computer Science</a> an der <a href="http://www.hs-furtwangen.de">Hochschule Furtwangen</a> eingeschrieben. Da ich das Studium mittlerweile erfolgreich abgeschlossen habe, möchte ich an dieser Stelle einen kurzen Erfahrungsbericht über das Studium geben.</p>
<p><strong>Hochschule:</strong> Die Hochschule Furtwangen genießt für Informatik Studiengänge einen sehr guten Ruf, was auch durch verschiedene Hochschulrankings regelmäßig belegt wird. Die in Furtwangen (die Hochschule hat auch Standorte in anderen Städten) ansässigen Fakultäten sind dabei allgemein relativ technik-orientiert &#8211; was den guten Bewertungen in den Rankings sicher zuträglich ist, allerdings auch zu einem relativ hohen &#8220;Nerd-Faktor&#8221; unter den Studierenden führt.<br />
Die Hochschule selbst habe ich als sehr sympathisch erlebt, auch weil ein eigener Charakter deutlich erkennbar war und grundsätzlich ein sehr persönlicher Umgangston gepflegt wird. Auch nimmt die Forschung in Furtwangen einen für (Fach-)Hochschulen sehr großen Stellenwert ein und es wird ebenfalls großen Wert auf Internationalität und Beziehungen zu ausländischen Partnerhochschulen gelegt &#8211; beides Punkte die ich in Ansbach so nicht erlebt habe.</p>
<p><strong>Studium:</strong> Da mir aufgrund meines Diploms das erste Semester erlassen wurde, kann ich nur Teile des Advanced Computer Science Studiums bewerten. Die Theoriesemester sind in jeweils 3 Module mit insgesamt 30 Credit Points aufgeteilt, welche wiederum in jeweils 3 Veranstaltungen (Vorlesung (4 Credit Points), Workshop (3 Credit Points) und Seminar (3 Credit Points)) aufgeteilt sind. Die Vorlesungen schließen mit einer Prüfung ab, im Workshop und Seminar muss jeweils eine schriftliche wissenschaftliche Arbeit erstellt und diese auch präsentiert werden.<br />
Die Semester sind dabei als Vollzeitstudium konzipiert, allerdings habe ich das theoretische Semester im Vergleich zu meiner beruflichen Projektarbeit als relativ entspannend erlebt. Den effektiven Zeitaufwand für das Studium würde ich &#8211; mit dem Anspruch die Fächer jeweils möglichst sehr gut abzuschließen &#8211; über das Semester verteilt mit gut 30h/Woche angeben. Allerdings hatte ich aufgrund entsprechender Berufserfahrung oftmals schon praktische Erfahrungen mit in den Vorlesungen behandelten Themen, so dass der Lernaufwand ohne diese Vorkenntnisse auch deutlich höher sein kann.<br />
Das Niveau und die Qualität der Vorlesungen hängt &#8211; wie an anderen Hochschulen auch &#8211; stark vom jeweiligen Professor ab. Mir persönlich ist dabei vor allem wichtig, dass bei den Professoren auch Motivation zu erkennen ist, was in Furtwangen größtenteils auch so war. Allerdings waren für mich &#8211; bedingt durch meine Berufserfahrung &#8211;  viele Themen nicht neu, so dass ich mir manchmal noch etwas weitergehende und vertiefende Informationen gewünscht hätte.<br />
Die Master-Thesis habe ich in den letzten Monaten parallel zu meinem Job als Consultant hauptsächlich am Wochenende geschrieben. Der Aufwand für die Thesis darf aber auf keinen Fall unterschätzt werden &#8211; und obwohl ich hier mit Bestnote abgeschnitten habe, würde ich das Schreiben der Thesis neben dem Beruf nicht empfehlen. Das funktioniert wirklich nur, wenn man seine Freizeit quasi vollständig aufgibt, was ich über die letzten Monate hinweg persönlich als sehr hart empfunden habe.</p>
<p><strong>Fazit:</strong> Das Advanced Computer Science Studium an der Hochschule Furtwangen ist empfehlenswert &#8211; auch für Studenten sie ursprünglich nicht in Furtwangen studiert haben. Wer außerdem bereits ein Diplom hat, kann das Studium in nur zwei Semester abschließen und so in relativ kurzer Zeit den Master of Science (M.Sc.) Grad erlangen. Mit entsprechender Berufserfahrung ist das Studium auch relativ einfach zu bewältigen, obwohl man in Furtwangen nichts geschenkt bekommt und für sehr gute Noten auch richtig arbeiten muss. Insbesondere der Aufwand für die abschließende Master-Thesis sollte nicht unterschätzt werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2010/11/30/masterstudium-advanced-computer-science-an-der-hochschule-furtwangen-erfahrungsbericht/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Persistenz mit JPA und Google App Engine</title>
		<link>http://altes-kind.de/2010/01/12/persistenz-mit-jpa-und-google-app-engine/</link>
		<comments>http://altes-kind.de/2010/01/12/persistenz-mit-jpa-und-google-app-engine/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 12:09:47 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=639</guid>
		<description><![CDATA[JPA (Java Persistence API) ist der aktuelle Java-Standard für Persistenz und kann neben JDO (Java Data Objects) zum Zugriff auf den Google App Engine Datastore genutzt werden. Die JPA Implementierung basiert dabei auf der DataNucleus Access Platform. Da der Datastore allerdings keine klassische relationale Datenbank ist, gibt es leider auch einige nicht unterstützte Featurs von [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine.png" width="70" height="53" alt="Google App Engine" title="Google App Engine" align="right" /><a href="http://java.sun.com/javaee/technologies/persistence.jsp">JPA</a> (Java Persistence API) ist der aktuelle Java-Standard für Persistenz und kann neben JDO (Java Data Objects) zum Zugriff auf den Google App Engine Datastore <a href="http://code.google.com/appengine/docs/java/datastore/usingjpa.html">genutzt werden</a>. Die JPA Implementierung basiert dabei auf der <a href="http://www.datanucleus.org/">DataNucleus Access Platform</a>. Da der Datastore allerdings keine klassische relationale Datenbank ist, gibt es leider auch einige nicht <a href="http://code.google.com/intl/de-DE/appengine/docs/java/datastore/usingjpa.html#Unsupported_Features_of_JPA">unterstützte Featurs von JPA</a>, die bei der Entwicklung berücksichtigt werden müssen.</p>
<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_netbeans.gif" width="80" height="17" alt="NetBeans" title="NetBeans" align="right" />Ausgangspunkt für das folgende Tutorial ist das <a href="http://altes-kind.de/data/java/GoogleAppEngine_JSF20.zip">NetBeans Projekt</a> aus dem <a href="http://altes-kind.de/2009/12/28/jsf-2-0-mit-netbeans-6-8-und-google-appengine/">JSF 2.0 mit NetBeans 6.8 und Google App Engine</a> Tutorial. Das Tutorial ist dabei wieder bewusst detailliert gehalten, um neben der Implementierung für die Google App Engine auch möglichst viele nützliche Features und Wizards von NetBeans vorzustellen.</p>
<p><strong>1. Erstellen der Persistence Unit</strong><br />
Durch einen Rechtsklick auf das Projekt und &#8220;New > Other&#8230;&#8221; und dann &#8220;Persistence > Persistence Unit&#8221; wird diese für das Projekt erstellt. Leider erlaubt es der NetBeans Wizard nicht, eine Persistence Unit ohne Database Connection zu erstellen. Daher in der Dropdown-Liste für Database Connection einfach eine bestehende Connection (z.B. &#8220;sample&#8221;) auswählen und &#8220;Finish&#8221; klicken. </p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jpa_1.png" rel="lightbox[appengine_jpa]" title="Erstellen der PersistanceUnit mit NetBeans"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jpa_1.png" width="395" height="204" alt="Erstellen der PersistanceUnit mit NetBeans" title="Erstellen der PersistanceUnit mit NetBeans" /></a><br />
Trotz dieser &#8220;falschen&#8221; Angabe ist die durch das Google App Engine Plugin erstellte Persistence Unit (fast) korrekt. Nur die Zeile &#8220;&lt;exclude-unlisted-classes&gt;false&lt;/exclude-unlisted-classes&gt;&#8221; hat bei mir im weiteren Verlauf folgende Exception verursacht und sollte daher entfernt werden.</p>
<p><code>java.lang.IllegalArgumentException: Type ("de.alteskind.appengine.jpa.Message") is not that of an entity but needs to be for this operation<br />
&nbsp;<br />
Caused by: org.datanucleus.exceptions.NoPersistenceInformationException: The class "de.alteskind.appengine.jpa.Message" is required to be persistable yet no Meta-Data/Annotations can be found for this class. Please check that the Meta-Data/annotations is defined in a valid file location.</code></p>
<p>Die korrekte Persistence Unit ist in folgendem Listing aufgeführt:</p>
<p><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;persistence version=&quot;1.0&quot;<br />
&nbsp;&nbsp;xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot;<br />
&nbsp;&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;<br />
&nbsp;&nbsp;xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence<br />
&nbsp;&nbsp;http://java.sun.com/xml/ns/persistence/<br />
&nbsp;&nbsp;persistence_1_0.xsd&quot;&gt;<br />
&nbsp;&nbsp;&lt;persistence-unit name=&quot;GoogleAppEngine_JSF20PU&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;transaction-type=&quot;RESOURCE_LOCAL&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;provider&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.datanucleus.store.appengine.jpa.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DatastorePersistenceProvider<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/provider&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;properties&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name=&quot;datanucleus.ConnectionURL&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&quot;appengine&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name=&quot;datanucleus.NontransactionalRead&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&quot;true&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name=&quot;datanucleus.NontransactionalWrite&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&quot;true&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/properties&gt;<br />
&nbsp;&nbsp;&lt;/persistence-unit&gt;<br />
&lt;/persistence&gt;</code></p>
<p><strong>2. Implementieren der Entity Klasse</strong><br />
In unserem Beispiel erstellen wir durch einen Rechtsklick auf das Projekt und &#8220;New > Entity Class&#8230;&#8221; eine einfache Entität mit dem Namen &#8220;Message&#8221;. Als Package kann z.B. &#8220;de.alteskind.appengine.jpa&#8221; angegeben werden. Zu dem bereits bestehenden Feld &#8220;id&#8221; werden nun noch die Felder &#8220;message&#8221; (String), &#8220;ip&#8221; (String) und &#8220;dateTime&#8221; (java.util.Date) hingzugefügt. Die Getter und Setter können durch einen rechten Mausklick in den Editor und dann &#8220;Insert Code&#8230; > Getter and Setter&#8230;&#8221; generiert werden.<br />
NetBeans zeigt nun im Editor für das Feld dateTime einen Fehler (&#8220;A temporal attribute must be marked with the @Temporal attribute&#8221;) an. Durch einen Klick auf den Fehler kann mit &#8220;Create @Temporal annotation&#8221; eine passende Annotation erstellt werden. Da in unserem Fall ein Timestamp gesetzt werden soll, könnte als TemporalType auch direkt &#8220;TIMESTAMP&#8221; gewählt werden. Leider wird das durch die Google App Engine Implementierung von DataNucleus Access Platform nicht unterstützt, so dass der Timestamp später im Code manuell gesetzt werden muss.<br />
Für die Implementierung der Entity Klassen sind wie bereits beschrieben außerdem einige <a href="http://code.google.com/intl/de-DE/appengine/docs/java/datastore/usingjpa.html#Unsupported_Features_of_JPA">Beschränkungen der Google App Engine JPA Implementierung</a> zu beachten. So wird z.B. in der @GeneratedValue Annotation nur die Strategie &#8220;GenerationType.IDENTITY&#8221; unterstützt, so dass auch diese Annotation entsprechend angepasst werden muss.</p>
<p><code>package de.alteskind.appengine.jpa;<br />
&nbsp;<br />
import java.io.Serializable;<br />
import java.util.Date;<br />
import javax.persistence.Entity;<br />
import javax.persistence.GeneratedValue;<br />
import javax.persistence.GenerationType;<br />
import javax.persistence.Id;<br />
import javax.persistence.Temporal;<br />
import javax.persistence.TemporalType;<br />
&nbsp;<br />
@Entity<br />
public class Message implements Serializable {<br />
&nbsp;<br />
&nbsp;private static final long serialVersionUID = 1L;<br />
&nbsp;<br />
&nbsp;@Id<br />
&nbsp;@GeneratedValue(strategy = GenerationType.IDENTITY)<br />
&nbsp;private Long id;<br />
&nbsp;<br />
&nbsp;private String message;<br />
&nbsp;<br />
&nbsp;private String ip;<br />
&nbsp;<br />
&nbsp;@Temporal(TemporalType.DATE)<br />
&nbsp;private Date dateTime;<br />
&nbsp;<br />
&nbsp;public Long getId() {<br />
&nbsp;&nbsp;return id;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void setId(Long id) {<br />
&nbsp;&nbsp;this.id = id;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public String getIp() {<br />
&nbsp;&nbsp;return ip;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void setIp(String ip) {<br />
&nbsp;&nbsp;this.ip = ip;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public String getMessage() {<br />
&nbsp;&nbsp;return message;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void setMessage(String message) {<br />
&nbsp;&nbsp;this.message = message;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public Date getDateTime() {<br />
&nbsp;&nbsp;return dateTime;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void setDateTime(Date dateTime) {<br />
&nbsp;&nbsp;this.dateTime = dateTime;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;@Override<br />
&nbsp;public int hashCode() {<br />
&nbsp;&nbsp;int hash = 0;<br />
&nbsp;&nbsp;hash += (id != null ? id.hashCode() : 0);<br />
&nbsp;&nbsp;return hash;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;@Override<br />
&nbsp;public boolean equals(Object object) {<br />
&nbsp;&nbsp;if (!(object instanceof Message)) {<br />
&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;Message other = (Message) object;<br />
&nbsp;&nbsp;if ((this.id == null &#038;&#038; other.id != null) ||<br />
&nbsp;&nbsp;&nbsp;(this.id != null &#038;&#038; !this.id.equals(other.id))) {<br />
&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;}<br />
&nbsp;return true;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;@Override<br />
&nbsp;public String toString() {<br />
&nbsp;&nbsp;return "de.alteskind.appengine.jpa.Message"<br />
&nbsp;&nbsp;&nbsp;+ "[id=" + id + "]";<br />
&nbsp;}<br />
}</code></p>
<p><strong>3. Implementieren der JPA Controller und Entity Manager Factory Klassen</strong><br />
Nachdem die Entity erfolgreich erstellt wurde, kann nun über einen Rechtsklick auf das Projekt und &#8220;New > Other&#8230;&#8221; und dann &#8220;Persistence > JPA Controller Classes from Entity Classes&#8221; automatisch eine JPA Controller (=DAO) Klasse für die Entität erstellt werden. Als Package sollte das Package der Message Entität ausgewählt werden. </p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jpa_2.png" rel="lightbox[appengine_jpa]" title="Erstellen der JPA Controller Klasse mit dem NetBeans Wizard"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jpa_2.png" width="395" height="221" alt="Erstellen der JPA Controller Klasse mit dem NetBeans Wizard" title="Erstellen der JPA Controller Klasse mit dem NetBeans Wizard"  /></a><br />
Diese Klasse ist allerdings nicht direkt für den Einsatz in der Google App Engine geeignet, da sie folgende Exception verursacht: </p>
<p><code>java.lang.IllegalStateException: Application code attempted to create a EntityManagerFactory named GoogleAppEngine_JSF20PU, but one with this name already exists!  Instances of EntityManagerFactory are extremely slow to create and it is usually not necessary to create one with a given name more than once.  Instead, create a singleton and share it throughout your code.  If you really do need to create a duplicate EntityManagerFactory (such as for a unittest suite), set the appengine.orm.disable.duplicate.emf.exception system property to avoid this error.</code></p>
<p>Um diesen Fehler zu vermeiden, sollte &#8211; wie auch in der offiziellen Google App Engine Dokumentation <a href="http://code.google.com/intl/de-DE/appengine/docs/java/datastore/usingjpa.html#Getting_an_EntityManager_Instance">beschrieben</a> &#8211; eine Entity Manager Factory als Singelton implementiert werden.</p>
<p><code>package de.alteskind.appengine.jpa.utils;<br />
&nbsp;<br />
import javax.persistence.EntityManagerFactory;<br />
import javax.persistence.Persistence;<br />
&nbsp;<br />
public final class EMF {<br />
&nbsp;private static final EntityManagerFactory emfInstance =<br />
&nbsp;&nbsp;Persistence.<br />
&nbsp;&nbsp;createEntityManagerFactory("GoogleAppEngine_JSF20PU");<br />
&nbsp;<br />
&nbsp;private EMF() {<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public static EntityManagerFactory get() {<br />
&nbsp;&nbsp;return emfInstance;<br />
&nbsp;}<br />
}</code></p>
<p>Nun kann die durch NetBeans generierte JPA Controller Klasse geändert werden, so dass die Entity Manager Factory verwendet wird. Es muss außerdem die SELECT Abfrage geändert werden, da die Google App Engine Datanucleus Implementierung den Operator &#8220;object&#8221; nicht unterstützt und die folgende Exception verursacht.</p>
<p><code>org.datanucleus.store.appengine.query.DatastoreQuery$<br />
UnsupportedDatastoreOperatorException: Problem with query &lt;SELECT object(o) FROM Message as o&gt;: App Engine datastore does not support operator object.</code></p>
<p>Es tritt außerdem eine Exception auf, wenn versucht wird über das ResultSet des SELECT Abfrage zu iterieren (z.B. bei der Anzeige der Tabelle mit allen Messages) obwohl der EntityManager bereits geschlossen ist. </p>
<p><code>org.datanucleus.exceptions.NucleusUserException: Object Manager has been closed</code></p>
<p>Diese Verhalten ist allerdings nicht JPA konform und es existiert dazu auch bereits ein <a href="http://code.google.com/p/datanucleus-appengine/issues/detail?id=24">Bugreport</a>. Um das Problem zu umgehen kann z.B. ein neues Object mit dem ResultSet erstellt werden. Außerdem liefert die Query in der &#8220;getMessageCount&#8221; Methode ein Integer zurück, daher muss der Cast von Long auf Integer geändert werden.</p>
<p>Die korrekte und unter der Google App Engine funktionierende JPA Controller Klasse ist in folgendem Listing aufgeführt.</p>
<p><code>package de.alteskind.appengine.jpa;<br />
&nbsp;<br />
import de.alteskind.appengine.jpa.exceptions.<br />
&nbsp;&nbsp;NonexistentEntityException;<br />
import de.alteskind.appengine.jpa.utils.EMF;<br />
import java.util.ArrayList;<br />
import java.util.List;<br />
import javax.persistence.EntityManager;<br />
import javax.persistence.EntityManagerFactory;<br />
import javax.persistence.Query;<br />
import javax.persistence.EntityNotFoundException;<br />
&nbsp;<br />
public class MessageJpaController {<br />
&nbsp;<br />
&nbsp;private EntityManagerFactory emf = null;<br />
&nbsp;<br />
&nbsp;public MessageJpaController() {<br />
&nbsp;&nbsp;emf = EMF.get();<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public EntityManager getEntityManager() {<br />
&nbsp;&nbsp;return emf.createEntityManager();<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void create(Message message) {<br />
&nbsp;&nbsp;EntityManager em = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;em = getEntityManager();<br />
&nbsp;&nbsp;&nbsp;em.getTransaction().begin();<br />
&nbsp;&nbsp;&nbsp;em.persist(message);<br />
&nbsp;&nbsp;&nbsp;em.getTransaction().commit();<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;if (em != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;em.close();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void edit(Message message)<br />
&nbsp;&nbsp;throws NonexistentEntityException, Exception {<br />
&nbsp;&nbsp;EntityManager em = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;em = getEntityManager();<br />
&nbsp;&nbsp;&nbsp;em.getTransaction().begin();<br />
&nbsp;&nbsp;&nbsp;message = em.merge(message);<br />
&nbsp;&nbsp;&nbsp;em.getTransaction().commit();<br />
&nbsp;&nbsp;} catch (Exception ex) {<br />
&nbsp;&nbsp;&nbsp;String msg = ex.getLocalizedMessage();<br />
&nbsp;&nbsp;&nbsp;if (msg == null || msg.length() == 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Long id = message.getId();<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (findMessage(id) == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw new NonexistentEntityException("The message "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ "with id " + id + " no longer exists.");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;throw ex;<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;if (em != null) {<br />
&nbsp;&nbsp;&nbsp;em.close();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void destroy(Long id)<br />
&nbsp;&nbsp;throws NonexistentEntityException {<br />
&nbsp;&nbsp;EntityManager em = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;em = getEntityManager();<br />
&nbsp;&nbsp;&nbsp;em.getTransaction().begin();<br />
&nbsp;&nbsp;&nbsp;Message message;<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;message = em.getReference(Message.class, id);<br />
&nbsp;&nbsp;&nbsp;&nbsp;message.getId();<br />
&nbsp;&nbsp;&nbsp;} catch (EntityNotFoundException enfe) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;throw new NonexistentEntityException("The message "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+" with id " + id + " no longer exists.", enfe);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;em.remove(message);<br />
&nbsp;&nbsp;&nbsp;em.getTransaction().commit();<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;if (em != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;em.close();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public List<message> findMessageEntities() {<br />
&nbsp;&nbsp;return findMessageEntities(true, -1, -1);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public List</message><message> findMessageEntities(int maxResults,<br />
&nbsp;&nbsp;int firstResult) {<br />
&nbsp;&nbsp;return findMessageEntities(false, maxResults,<br />
&nbsp;&nbsp;firstResult);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;private List</message><message> findMessageEntities(boolean all,<br />
&nbsp;&nbsp;int maxResults, int firstResult) {<br />
&nbsp;&nbsp;EntityManager em = getEntityManager();<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Query q = em.createQuery("select o from Message as o");<br />
&nbsp;&nbsp;&nbsp;if (!all) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;q.setMaxResults(maxResults);<br />
&nbsp;&nbsp;&nbsp;&nbsp;q.setFirstResult(firstResult);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;return new ArrayList</message><message>(q.getResultList());<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;em.close();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public Message findMessage(Long id) {<br />
&nbsp;&nbsp;EntityManager em = getEntityManager();<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;return em.find(Message.class, id);<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;em.close();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public int getMessageCount() {<br />
&nbsp;&nbsp;EntityManager em = getEntityManager();<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Query q = em.createQuery("select count(o) from Message "<br />
&nbsp;&nbsp;&nbsp;&nbsp;+ "as o");<br />
&nbsp;&nbsp;&nbsp;return ((Integer) q.getSingleResult()).intValue();<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;em.close();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
</message></code></p>
<p><strong>4. Implementieren der JSF 2.0 Managed Bean</strong><br />
Nun kann die JSF 2.0 ManagedBean implementiert werden. Dazu wird die aus dem ersten Teil des Tutorial erstellte Klasse &#8220;HelloWorld&#8221; gelöscht und stattdessen eine Klasse &#8220;MessageView&#8221; erstellt (siehe auch <a href="http://altes-kind.de/2009/12/28/jsf-2-0-mit-netbeans-6-8-und-google-appengine/">Teil 1</a> des Tutorials). Interessant sind dabei insbesondere die Methoden &#8220;postMessage&#8221;, &#8220;deleteMessage&#8221;, &#8220;getNumberOfMessages&#8221; und &#8220;getMessages&#8221;, welche Methoden der JPA Controller Klasse aufrufen.</p>
<p><code>package de.alteskind.appengine.jsf;<br />
&nbsp;<br />
import de.alteskind.appengine.jpa.Message;<br />
import de.alteskind.appengine.jpa.MessageJpaController;<br />
import java.util.Date;<br />
import java.util.List;<br />
import javax.faces.bean.ManagedBean;<br />
import javax.faces.bean.RequestScoped;<br />
import javax.faces.component.html.HtmlDataTable;<br />
import javax.faces.context.ExternalContext;<br />
import javax.faces.context.FacesContext;<br />
import javax.servlet.http.HttpServletRequest;<br />
&nbsp;<br />
@ManagedBean(name = "MessageView")<br />
@RequestScoped<br />
public class MessageView {<br />
&nbsp;<br />
&nbsp;private String helloWorld;<br />
&nbsp;<br />
&nbsp;private HtmlDataTable dataTable;<br />
&nbsp;<br />
&nbsp;private Message message;<br />
&nbsp;<br />
&nbsp;private List<message> messages;<br />
&nbsp;<br />
&nbsp;private MessageJpaController messageJpaController;<br />
&nbsp;<br />
&nbsp;public MessageView() {<br />
&nbsp;&nbsp;this.helloWorld = "Hello World from JSF 2.0/Facelets "<br />
&nbsp;&nbsp;&nbsp;+ "and JPA on Google AppEngine!";<br />
&nbsp;&nbsp;this.message = new Message();<br />
&nbsp;&nbsp;this.messageJpaController = new MessageJpaController();<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void postMessage() {<br />
&nbsp;&nbsp;// Get HttpServletRequest object<br />
&nbsp;&nbsp;FacesContext facesContext =<br />
&nbsp;&nbsp;&nbsp;FacesContext.getCurrentInstance();<br />
&nbsp;&nbsp;ExternalContext externalContext =<br />
&nbsp;&nbsp;&nbsp;facesContext.getExternalContext();<br />
&nbsp;&nbsp;HttpServletRequest request =<br />
&nbsp;&nbsp;&nbsp;(HttpServletRequest) externalContext.getRequest();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;// Set remote host as IP<br />
&nbsp;&nbsp;message.setIp(request.getRemoteHost());<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;// Set timestamp<br />
&nbsp;&nbsp;message.setDateTime(new Date());<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;// Create message<br />
&nbsp;&nbsp;messageJpaController.create(message);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void deleteMessage()<br />
&nbsp;&nbsp;throws NonexistentEntityException {<br />
&nbsp;&nbsp;// Get message object<br />
&nbsp;&nbsp;Message message = (Message) dataTable.getRowData();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;// Destroy message<br />
&nbsp;&nbsp;messageJpaController.destroy(message.getId());<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public int getNumberOfMessages() {<br />
&nbsp;&nbsp;return messageJpaController.getMessageCount();<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public String getHelloWorld() {<br />
&nbsp;&nbsp;return helloWorld;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void setDataTable(HtmlDataTable dataTable) {<br />
&nbsp;&nbsp;this.dataTable = dataTable;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public HtmlDataTable getDataTable() {<br />
&nbsp;&nbsp;return dataTable;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public Message getMessage() {<br />
&nbsp;&nbsp;return message;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void setMessage(Message message) {<br />
&nbsp;&nbsp;this.message = message;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public List</message><message> getMessages() {<br />
&nbsp;&nbsp;return messageJpaController.findMessageEntities();<br />
&nbsp;}<br />
}</message></code></p>
<p><strong>5. Erstellen der JSF/Facelets Seite</strong><br />
Als letzter Schritt wird nun die JSF/Facelets Seite index.html angepasst, so dass der Body folgenden Code enthält:</p>
<p><code>&lt;h:form&gt;<br />
&nbsp;&lt;h:outputText value=&quot;#{MessageView.helloWorld}&quot; /&gt;<br />
&nbsp;&lt;br /&gt;&lt;br /&gt;<br />
&nbsp;&lt;h:outputLabel value=&quot;Message:&quot;/&gt;<br />
&nbsp;&lt;h:inputText value=&quot;#{MessageView.message.message}&quot;/&gt;<br />
&nbsp;&lt;h:commandButton action=&quot;#{MessageView.postMessage}&quot;<br />
&nbsp;&nbsp;value=&quot;Post Message&quot;/&gt;<br />
&nbsp;&lt;br /&gt;&lt;br /&gt;<br />
&nbsp;&lt;h:dataTable value=&quot;#{MessageView.messages}&quot;<br />
&nbsp;&nbsp;binding=&quot;#{MessageView.dataTable}&quot;<br />
&nbsp;&nbsp;rendered=&quot;#{MessageView.numberOfMessages > 0}&quot;<br />
&nbsp;&nbsp;var=&quot;message&quot; border=&quot;1&quot;&gt;<br />
&nbsp;&nbsp;&lt;h:column&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;f:facet name=&quot;header&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:outputText value=&quot;ID&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/f:facet&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;h:outputText value=&quot;#{message.id}&quot; /&gt;<br />
&nbsp;&nbsp;&lt;/h:column&gt;<br />
&nbsp;&nbsp;&lt;h:column&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;f:facet name=&quot;header&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:outputText value=&quot;Message&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/f:facet&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;h:outputText value=&quot;#{message.message}&quot; /&gt;<br />
&nbsp;&nbsp;&lt;/h:column&gt;<br />
&nbsp;&nbsp;&lt;h:column&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;f:facet name=&quot;header&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:outputText value=&quot;IP&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/f:facet&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;h:outputText value=&quot;#{message.ip}&quot; /&gt;<br />
&nbsp;&nbsp;&lt;/h:column&gt;<br />
&nbsp;&nbsp;&lt;h:column&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;f:facet name=&quot;header&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:outputText value=&quot;Timestamp&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/f:facet&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;h:outputText value="#{message.dateTime}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:convertDateTime pattern="dd.MM.yyyy HH:mm" /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/h:outputText&gt;<br />
&nbsp;&nbsp;&lt;/h:column&gt;<br />
&nbsp;&nbsp;&lt;h:column&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;h:commandButton action="#{MessageView.deleteMessage}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;value="Delete"/&gt;<br />
&nbsp;&nbsp;&lt;/h:column&gt;<br />
&nbsp;&lt;/h:dataTable&gt;<br />
&lt;/h:form&gt;</code></p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jpa_3.png" rel="lightbox[appengine_jpa]" title="Scrennshot der Beispielanwendung in der lokalen Google AppEngine"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jpa_3.png" width="395" height="263" alt="Scrennshot der Beispielanwendung in der lokalen Google AppEngine" title="Scrennshot der Beispielanwendung in der lokalen Google AppEngine"  /></a><br />
Wie die große Anzahl der hier aufgeführten Exceptions zeigt, gilt es bei der Verwendung von JPA in der Google App Engine einiges zu beachten. Ich hoffe mein Blogeintrag hilft diese Probleme zu umgehen. ;-)</p>
<p>Analog zu Teil 1 des Tutorials kann das komplette NetBeans Projekt inkl. WAR-Archiv <a href="http://altes-kind.de/data/java/GoogleAppEngine_JPA.zip">hier heruntergeladen</a> sowie unter <a href="http://2.latest.altes-kind.appspot.com/">http://2.latest.altes-kind.appspot.com/</a> direkt aufgerufen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2010/01/12/persistenz-mit-jpa-und-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JSF 2.0 mit NetBeans 6.8 und Google App Engine</title>
		<link>http://altes-kind.de/2009/12/28/jsf-2-0-mit-netbeans-6-8-und-google-appengine/</link>
		<comments>http://altes-kind.de/2009/12/28/jsf-2-0-mit-netbeans-6-8-und-google-appengine/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 22:04:10 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=541</guid>
		<description><![CDATA[Nachdem ich mich in meiner Master-Thesis mit Cloud Computing und JEE befassen werde, habe ich heute meine ersten Versuche mit der Google App Engine unternommen, die ja seit einigen Monaten auch Java unterstützt und unlängst in Version 1.3.0 veröffentlicht wurde. Dabei habe ich versucht eine einfache JSF 2.0 Webanwendung für die Google App Engine mit [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine.png" width="70" height="53" alt="Google App Engine" title="Google App Engine" align="right" />Nachdem ich mich in meiner <a href="http://altes-kind.de/2009/12/01/skalierbarkeit-von-jee-in-der-cloud/">Master-Thesis mit Cloud Computing und JEE</a> befassen werde, habe ich heute meine ersten Versuche mit der <a href="http://code.google.com/intl/de/appengine/">Google App Engine</a> unternommen, die ja seit einigen Monaten auch <a href="http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html">Java unterstützt</a> und unlängst in <a href="http://googleappengine.blogspot.com/2009/12/app-engine-sdk-130-released-including.html">Version 1.3.0 veröffentlicht</a> wurde.</p>
<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_netbeans.gif" width="80" height="17" alt="NetBeans" title="NetBeans" align="right" />Dabei habe ich versucht eine einfache JSF 2.0 Webanwendung für die Google App Engine mit <a href="www.netbeans.org">NetBeans 6.8</a> (wegen dem tollen JSF 2.0 Support) zu implementieren. Da das <a href="https://sites.google.com/a/wildstartech.com/adventures-in-java/Java-Platform-Enterprise-Edition/JavaServer-Faces/sun-javaserver-faces-reference-implementation/configuring-jsf-20-to-run-on-the-google-app-engine-using-netbeans">offzielle Tutorial</a> leider nach der Einrichtung des NetBeans-Plugins abbricht, möchte ich an dieser Stelle ein vollständiges Konfigurations- und Implementierungsbeispiel sowie das abschließende Deployment in die Google App Engine aufzeigen.</p>
<p><strong>1. Einrichten der Entwicklungsumgebung</strong><br />
Um die Google App Engine nutzen zu können, muss man sich natürlich zuerst für einen Account <a href="https://appengine.google.com/">registrieren</a>. Für das JSF 2.0 Beispiel wird außerdem folgende Software benötigt:
<ul>
<li><a href="http://java.sun.com/javase/downloads/index.jsp">Java SE Development Kit (JDK) 1.6</a></li>
<li><a href="http://code.google.com/intl/de/appengine/downloads.html">Google App Engine SDK 1.3.0 für Java</a></li>
<li><a href="http://xml.apache.org/xalan-j/downloads.html">Apache Xalan-J 2.9.0</a></li>
<li>Unified Expression Language 1.1 <a href="http://download.java.net/maven/glassfish/javax/el/el-api/1.1/el-api-1.1.jar">API</a> und <a href="http://download.java.net/maven/glassfish/org/glassfish/web/el-impl/1.1/el-impl-1.1.jar">Implementation</a></li>
<li><a href="http://netbeans.org/downloads/index.html">Netbeans 6.8</a> (mit &#8220;Java Web and EE&#8221;)</li>
</ul>
<p><strong>1.1. Google App Engine Plugin für NetBeans:</strong> Nachdem NetBeans installiert wurde, wird zunächst das Google App Engine Plugin über &#8220;Tools > Plugins&#8221; installiert. Im Tab &#8220;Settings&#8221; wird dazu ein neues Update Center mit einem passendem Namen (z.B. &#8220;Google App Engine Plugin&#8221;) und folgender URL angelegt: http://kenai.com/projects/nbappengine/downloads/download/Latest_NetBeans68/updates.xml. Anschließend können im Tab &#8220;Available Plugins&#8221; alle verfügbaren Google App Engine Plugins ausgewählt und installiert werden. Nach erfolgreicher Installation sollte das Plugin im Tab &#8220;Installed&#8221; zu sehen sein.</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jsf_1.png" title="Installation des Google App Engine Plugins für NetBeans" rel="lightbox[appengine_jsf]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jsf_1.png" width="390" height="238" alt="Installation des Google App Engine Plugins für NetBeans" title="Installation des Google App Engine Plugins für NetBeans" /></a><br />
<strong>1.2. Google App Engine Server in NetBeans:</strong> Nun kann über &#8220;Tools > Server&#8221; Google App Engine als Server hinzugefügt werden, wobei das Installationsverzeichnis des Google App Engine SDK 1.3.0 angegeben werden muss. Außerdem kann im Tab &#8220;Javadoc&#8221; auf das Javadoc Verzeichnis ([GoogleAppEngineSDK]/docs/javadoc) verwiesen werden.</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jsf_2.png" title="Javadoc Verzeichnis zur Google App Engine Server Konfiguration hinzufügen" rel="lightbox[appengine_jsf]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jsf_2.png" width="390" height="193" alt="Javadoc Verzeichnis zur Google App Engine Server Konfiguration hinzufügen" title="Javadoc Verzeichnis zur Google App Engine Server Konfiguration hinzufügen" /></a><br />
<strong>1.3. Google App Engine Library in NetBeans:</strong> Da der Google App Engine Server die für den Betrieb von JSF 2.0 Webanwendungen notwendigen Libraries nicht mitbringt, muss in NetBeans über &#8220;Tools > Libraries&#8221; eine neue Library erstellt werden, die dann der Webanwendung (und somit dem WAR-Archiv) hinzugefügt werden kann. Als &#8220;Library Name&#8221; kann z.B. &#8220;GoogleAppEngine_JSF20&#8243; eingegeben werden und bei &#8220;Library Type&#8221; wird &#8220;Class Libraries&#8221; ausgewählt. Dieser Library werden dann folgende JARs hinzugefügt: Apache Xalan-J (serializer.jar, xalan.jar, xercesImpl.jar, xml-apis.jar, xsltc.jar) und Unified Expression Language (el-api-1.1.jar, el-impl-1.1.jar).</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jsf_4.png" title="Erstellen einer Library für Google App Engine in NetBeans" rel="lightbox[appengine_jsf]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jsf_4.png" width="395" height="238" alt="Erstellen einer Library für Google App Engine in NetBeans" title="Erstellen einer Library für Google App Engine in NetBeans" /></a><br />
Damit ist die Konfiguration von NetBeans für die Google App Engine erfolgreich abgeschlossen. ;-)</p>
<p><strong>2. Implementierung der JSF 2.0 Webanwendung</strong><br />
Nun kann die eigentliche Webanwendung mit JSF 2.0 und Google App Engine Support implementiert werden.</p>
<p><strong>2.1 JSF Webanwendung für Google App Engine erstellen:</strong> Durch &#8220;File > New Project&#8230;&#8221; und der Kategorie &#8220;Java Web&#8221; und &#8220;Web Application&#8221; wird der Wizard zum Erstellen einer JEE Webanwendung aufgerufen und ein passender Projektname (z.B. &#8220;GoogleAppEngine_JSF20&#8243;) vergeben. Anschließend wird als Server &#8220;Google App Engine&#8221; ausgewählt und als &#8220;ContextPath&#8221; nur &#8220;/&#8221; eingetragen.</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jsf_3.png" title="Server Einstellungen beim Erstellen des Projektes" rel="lightbox[appengine_jsf]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jsf_3.png" width="390" height="160" alt="Server Einstellungen beim Erstellen des Projektes" title="Server Einstellungen beim Erstellen des Projektes" /></a><br />
Im nächsten Schritt wird als Framework &#8220;JavaServer Faces&#8221; und &#8220;JSF 2.0&#8243; ausgewählt. Nachdem das Projekt erstellt wurde, wird durch einen Rechtsklick auf &#8220;Libraries&#8221; und &#8220;Add Library&#8230;&#8221; die oben erstellte Google App Engine Library dem Projekt hinzugefügt.</p>
<p><strong>2.2 JSF Webanwendung für Google App Engine konfigurieren:</strong> Leider gibt es zwischen der aktuellen JSF 2.0 und Google App Engine 1.3.0 noch einige <a href="https://sites.google.com/a/wildstartech.com/adventures-in-java/Java-Platform-Enterprise-Edition/JavaServer-Faces/sun-javaserver-faces-reference-implementation/configuring-jsf-20-to-run-on-the-google-appengine/javaserverfaces-20-and-google-app-engine-compatibility-issues">Kompatibilitätsprobleme</a>, welche aber durch Konfigurationseinstellungen relativ einfach behoben werden können. Die dazu erforderlichen Konfigurationsdateien sind im Projekt in NetBeans unter &#8220;Configuration Files&#8221; zu finden.</p>
<p>In der Datei &#8220;web.xml&#8221; müssen dazu folgende Zeilen hinzugefügt werden:<br />
<code>&lt;!-- Google App Engine Bug 1506 JSP 2.1 API but 2.0 Implementation --&gt;<br />
&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;com.sun.faces.expressionFactory&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;com.sun.el.ExpressionFactoryImpl&lt;/param-value&gt;<br />
&lt;/context-param&gt;<br />
&lt;!-- Google App Engine 1.3.0 appears to handle server-side state saving --&gt;<br />
&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;server&lt;/param-value&gt;<br />
&lt;/context-param&gt;<br />
&lt;!-- Accommodate Single-Threaded Requirement of Google App Engine --&gt;<br />
&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;com.sun.faces.enableThreading&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;false&lt;/param-value&gt;<br />
&lt;/context-param&gt;<br />
</code></p>
<p>Die Datei &#8220;appengine-web.xml&#8221; wird um folgenden Eintrag erweitert:<br />
<code>&lt;!-- Activate Session Support in Google App Engine --&gt;<br />
&lt;sessions-enabled&gt;true&lt;/sessions-enabled&gt;</code></p>
<p>Etwas problematischer ist die Tatsache, dass Anwendungen innerhalb der Google App Engine nur der Zugriff auf <a href="http://code.google.com/appengine/docs/java/jrewhitelist.html">bestimmte Klassen der Java Standard Library</a> erlaubt ist. Eine JSF 2.0 Webanwendung testet allerdings beim Start, ob es einen InitalContext aufbauen kann und ruft dazu diese Klasse auf, was dann zu einer Exception innerhalb der Google App Engine führt. Um dies zu verhindern muss die JSF 2.0 Implementierung gepachted werden. Dazu wird im Projekt in Netbeans über einen Rechtsklick auf das Projekt und &#8220;New > Java Package&#8221; bzw. &#8220;New > Java Class&#8221; das Package &#8220;com.sun.faces.config&#8221; und darin eine Klasse mit den Namen &#8220;WebConfiguration&#8221; und dem Inhalt <a href="http://joshjcarrier.googlecode.com/svn/trunk/Sun%20JSF%20GAE/src/com/sun/faces/config/WebConfiguration.java">dieses Links</a> erstellt. Dadurch wird die Implementierung in der jsf-impl.jar durch die gepachte Version überschrieben.</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jsf_5.png" title="Überschreiben der JSF 2.0 WebConfiguration Klasse um den Zugriff auf InitialContext zu unterbinden" rel="lightbox[appengine_jsf]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jsf_5.png" width="390" height="247" alt="Überschreiben der JSF 2.0 WebConfiguration Klasse um den Zugriff auf InitialContext zu unterbinden" title="Überschreiben der JSF 2.0 WebConfiguration Klasse um den Zugriff auf InitialContext zu unterbinden" /></a></p>
<p><strong>2.3 JSF Webanwendung implementieren:</strong><br />
JSF 2.0 bietet mit der neuen Annotation @ManagedBean die Möglichkeit, eine Klasse direkt als Managed Bean zu deklarieren. Die (umständliche) Konfiguration in einer faces-config.xml wie bei JSF 1.2 ist damit nicht mehr notwendig. Die folgende Klasse zeigt beispielhaft die Verwendung der Annotation:</p>
<p><code>package de.alteskind.appengine.jsf;<br />
&nbsp;<br />
import javax.faces.bean.ManagedBean;<br />
import javax.faces.bean.RequestScoped;<br />
&nbsp;<br />
@ManagedBean(name = "HelloWorld")<br />
@RequestScoped<br />
public class HelloWorld {<br />
&nbsp;<br />
&nbsp;private String message;<br />
&nbsp;<br />
&nbsp;public HelloWorld() {<br />
&nbsp;&nbsp;this.message = "Hello World from JSF 2.0/Facelets"<br />
&nbsp;&nbsp;&nbsp;+ "on Google App Engine!";<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public String getMessage() {<br />
&nbsp;&nbsp;return message;<br />
&nbsp;}<br />
}</code></p>
<p>In der Datei index.xhtml kann nun im Body auf die Managed Bean zugegriffen werden. NetBeans bietet dabei Code Completion, d.h. es werden automatisch alle öffentlichen Methoden und Variablen der Managed Bean angeboten. Um die &#8220;message&#8221; der Managed Bean &#8220;HelloWorld&#8221; auszugeben, kann z.B. der Tag &lt;h:outputText /&gt; verwendet werden:</p>
<p><code>&lt;h:outputText value=&quot;#{HelloWorld.message}&quot; /&gt;</code></p>
<p><strong>3.0 Deployment in Google App Engine</strong><br />
Sowohl das Lokale Deployment als auch das Remote Deployment erfolgt durch das Google App Engine Plugin komfortabel direkt aus NetBeans heraus. </p>
<p><strong>3.1 Lokales Deployment in Google App Engine</strong><br />
Das lokale Deployment wird in NetBeans durch einen Rechtsklick auf das Projekt und die Auswahl von &#8220;Run&#8221; gestartet. Nach dem Deployment wird automatisch ein Browser mit der Webanwendung geöffnet.</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jsf_6.png" title="Ausführen der JSF 2.0 Webanwendung auf dem lokalen Google App Engine Server" rel="lightbox[appengine_jsf]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jsf_6.png" width="390" height="172" alt="Ausführen der JSF 2.0 Webanwendung auf dem lokalen Google App Engine Server" title="Ausführen der JSF 2.0 Webanwendung auf dem lokalen Google App Engine Server" /></a><br />
<strong>3.1 Remote Deployment in Google App Engine</strong><br />
Um die Anwendung in der tatsächlichen Google App Engine zu veröffentlichen, muss zunächst über die Weboberfläche der Google App Engine eine Anwendung mit eindeutigem Namen erstellt werden. Dieser Name muss mit dem Namen im &#8220;application&#8221; Tag das appengine-web.xml übereinstimmen. Das eigentliche Deployment erfolgt dann mit einem rechten Mausklick auf das Projekt und der Auswahl &#8220;Deploy To Google App Engine&#8221;.</p>
<p><a href="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/appengine_jsf_7.png" title="Erstellen der Anwendung über die Google App Engine Weboberfläche" rel="lightbox[appengine_jsf]"><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_appengine_jsf_7.png" width="390" height="316" alt="Erstellen der Anwendung über die Google App Engine Weboberfläche" title="Erstellen der Anwendung über die Google App Engine Weboberfläche"  /></a><br />
Damit wurde die JSF 2.0 Webanwendung erfolgreich in der Google App Engine veröffentlicht. :-)</p>
<p>Das komplette NetBeans Projekt inkl. WAR-Archiv kann <a href="http://altes-kind.de/data/java/GoogleAppEngine_JSF20.zip">hier heruntergeladen</a> sowie unter <a href="http://1.latest.altes-kind.appspot.com/">http://1.latest.altes-kind.appspot.com/</a> direkt aufgerufen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2009/12/28/jsf-2-0-mit-netbeans-6-8-und-google-appengine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Skalierbarkeit von JEE in der Cloud</title>
		<link>http://altes-kind.de/2009/12/01/skalierbarkeit-von-jee-in-der-cloud/</link>
		<comments>http://altes-kind.de/2009/12/01/skalierbarkeit-von-jee-in-der-cloud/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 21:57:01 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=515</guid>
		<description><![CDATA[In den letzten Wochen habe ich mehr oder weniger intensiv versucht, ein für mich interessantes Thema für meine Master-Thesis im nächsten Semester zu finden bzw. konzipieren. Nach Gesprächen mit verschiedenen Professoren habe ich mich nun für ein Thema mit dem vorläufigen Titel &#8220;Skalierbarkeit von JEE in der Cloud&#8221; entschieden, das ich bei Prof. Dr. Reich [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_hs_furtwangen.jpg" width="80" height="34" alt="Hochschule Furtwangen" title="Hochschule Furtwangen" align="right" />In den letzten Wochen habe ich mehr oder weniger intensiv versucht, ein für mich interessantes Thema für meine Master-Thesis im nächsten Semester zu finden bzw. konzipieren.</p>
<p>Nach Gesprächen mit verschiedenen Professoren habe ich mich nun für ein Thema mit dem vorläufigen Titel &#8220;Skalierbarkeit von JEE in der Cloud&#8221; entschieden, das ich bei <a href="http://www.hs-furtwangen.de/fachbereiche/in/deutsch/ueberuns/mitglieder/ChristophReich.html">Prof. Dr. Reich</a> im Rahmen des <a href="http://www.wolke.hs-furtwangen.de">Cloud Research Lab</a> der <a href="http://www.hs-furtwangen.de">Hochschule Furtwangen</a> bearbeiten werde. Grundsätzlich soll die Arbeit die Skalierbarkeit von sowohl JEE Anwendungen (bzgl. EJBs, Transaktionen, Datenhaltung usw.) als auch JEE Applikationsservern (bzgl. dynamisches LoadBalancing, Konfiguration usw.) in Infrastructure as a Service (IaaS, z.B. <a href="http://aws.amazon.com/ec2/">Amazon EC2</a>) und Platform as a Service (PaaS, z.B. <a href="http://code.google.com/appengine/"> Google AppEngine</a>) Umgebungen untersuchen und somit auch &#8220;Best Practices&#8221; für JEE und Cloud Computing aufzeigen.</p>
<p>Wer sich nun für das Thema interessiert, findet einen guten Einstiegspunkt bzw. mehr Informationen in dem im Juli diesen Jahres veröffentlichtes Interview mit <a href="http://java.sun.com/developer/technicalArticles/Interviews/community/bien_qa_2009.html">Adam Bien über JEE6 und Cloud Computing</a> und in Zukunft sicher auch hier in meinem Blog (sofern meine Blogmotivation in Zukunft wieder etwas steigt). ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2009/12/01/skalierbarkeit-von-jee-in-der-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update aus Furtwangen</title>
		<link>http://altes-kind.de/2009/11/18/update-aus-furtwangen/</link>
		<comments>http://altes-kind.de/2009/11/18/update-aus-furtwangen/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 21:22:39 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=492</guid>
		<description><![CDATA[Nachdem ich mich in meinen ersten Wochen doch ganz gut an der HS Furtwangen eingelebt habe und letzte Woche bereits die ersten Prüfungen geschrieben habe, kann ich mich nun für das restliche Semester auf die Seminararbeiten konzentrieren. Dabei habe ich in den einzelnen Fächern folgende Themen: Advanced Middleware: Custom Policy Assertions Architektur komplexer Systeme: Collaboration [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_hs_furtwangen.jpg" width="80" height="34" alt="Hochschule Furtwangen" title="Hochschule Furtwangen" align="right" />Nachdem ich mich in meinen ersten Wochen doch ganz gut an der <a href="http://www.hs-furtwangen.de">HS Furtwangen</a> eingelebt habe und letzte Woche bereits die ersten Prüfungen geschrieben habe, kann ich mich nun für das restliche Semester auf die Seminararbeiten konzentrieren. Dabei habe ich in den einzelnen Fächern folgende Themen:</p>
<ul>
<li>Advanced Middleware: Custom Policy Assertions</li>
<li>Architektur komplexer Systeme: Collaboration systems for software development</li>
<li>SOA: SOA Security</li>
</ul>
<p>Zu jedem Thema muss in einem 2er-Team eine wissenschaftliche Arbeit verfasst werden und die Ergebnisse am Ende auch präsentiert werden. Besonderer Wert wird auf die wissenschaftliche und strukturierte Herangehensweise gelegt, schließlich sollen die Seminararbeiten auch als Vorbereitung auf die Master Thesis im nächsten Semester dienen.</p>
<p>Ich bin aktuell außerdem mit Professoren bzgl. einem Thema für die Master Thesis im Gespräch, so dass ich in den nächsten Wochen sicher auch das konkrete Thema verraten kann. ;-)</p>
<p>P.S. Wer Interesse am Advanced Computer Science Master in Furtwangen hat kann diesen Freitag die <a href="http://www.hs-furtwangen.de/fachbereiche/in">Informationsveranstaltung</a> besuchen.</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2009/11/18/update-aus-furtwangen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Masterstudium Advanced Computer Science an der Hochschule Furtwangen</title>
		<link>http://altes-kind.de/2009/09/09/masterstudium_advanced_computer_science_an_der_hochschule_furtwangen/</link>
		<comments>http://altes-kind.de/2009/09/09/masterstudium_advanced_computer_science_an_der_hochschule_furtwangen/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 19:27:22 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Matthias]]></category>

		<guid isPermaLink="false">http://altes-kind.de/?p=481</guid>
		<description><![CDATA[Nachdem mein Studium zum Dipl. Wirtschaftsinformatiker an der Hochschule Ansbach nun schon 4 Jahre zurück liegt, habe ich mich entschlossen nochmals ein Studium in Angriff zu nehmen und mich ab dem 27. September an der Hochschule Furtwangen für den Masterstudiengang Advanced Computer Science eingeschrieben. Da ich bereits einen Diplomstudiengang abgeschlossen habe und mir dadurch das [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://altes-kind.de/wordpress/wp-content/themes/altes-kind/images_post/_hs_furtwangen.jpg" width="80" height="34" alt="Hochschule Furtwangen" title="Hochschule Furtwangen" align="right" />Nachdem mein Studium zum Dipl. Wirtschaftsinformatiker an der <a href="http://www.hs-ansbach.de">Hochschule Ansbach</a> nun schon 4 Jahre zurück liegt, habe ich mich entschlossen nochmals ein Studium in Angriff zu nehmen und mich ab dem 27. September an der <a href="http://www.hs-furtwangen.de">Hochschule Furtwangen</a> für den Masterstudiengang <a href="http://www.hs-furtwangen.de/fachbereiche/in/deutsch/studienangebote/acm/?tg=0">Advanced Computer Science</a> eingeschrieben.</p>
<p>Da ich bereits einen Diplomstudiengang abgeschlossen habe und mir dadurch das erste Semester erlassen wird, muss ich nur ein Theoriesemester absolvieren sowie die Masterthesis verfassen. Da ich meine aktuelle Arbeitsstelle bei <a href="http://www.cirquent.de">Cirquent</a> wegen dem Studium nicht kündigen wollte, habe ich mich für das Theoriesemester beurlauben lassen und werde die Masterthesis neben der Arbeit (bei einem verringerten Wochenstundenvertrag) schreiben.</p>
<p>In Zukunft sollten an dieser Stelle also einige Einträge zum Studium folgen – und evtl. auch Fotos aus dem im Winter sicher verschneiten <a href="http://maps.google.de/maps?f=q&#038;source=s_q&#038;hl=de&#038;geocode=&#038;q=Furtwangen&#038;sll=51.151786,10.415039&#038;sspn=16.979665,46.538086&#038;ie=UTF8&#038;ll=48.052611,8.236141&#038;spn=0.070569,0.181789&#038;z=13&#038;iwloc=A">Furtwangen im Schwarzwald</a>. ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://altes-kind.de/2009/09/09/masterstudium_advanced_computer_science_an_der_hochschule_furtwangen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
