<?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>shirubas boredom &#187; Tutorials</title>
	<atom:link href="http://blog.shiruba.net/archives/category/tutorials/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.shiruba.net</link>
	<description>Family killed by Ninjas - Need money for Karate lessons</description>
	<lastBuildDate>Tue, 24 Aug 2010 17:57:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Samsung Galaxy i7500+HTC Hero Sense ROM Tutorial</title>
		<link>http://blog.shiruba.net/archives/548</link>
		<comments>http://blog.shiruba.net/archives/548#comments</comments>
		<pubDate>Sat, 26 Dec 2009 10:01:35 +0000</pubDate>
		<dc:creator>shiruba</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[galaxy]]></category>
		<category><![CDATA[hdblog]]></category>
		<category><![CDATA[hero]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[receptorblog]]></category>
		<category><![CDATA[recovery]]></category>
		<category><![CDATA[rom]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[sense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.shiruba.net/?p=548</guid>
		<description><![CDATA[Heute, am ersten Weihnachtstag, hatte ich mal genug Muße, mein Samsung Galaxy i7500 von der Original-Software auf eine andere Firmware zu flashen. Weiter unten gibt es nun eine Anleitung, die zwar bei mir funktioniert hat, aber nur zu Ansichtszwecken veröffentlicht wird. Ich übernehme also keine Haftung für eventuell entstehende Schäden am Telefon!]]></description>
			<content:encoded><![CDATA[<h1>Einleitung</h1>
<p>Heute, am ersten Weihnachtstag, hatte ich mal genug Muße, mein Samsung Galaxy i7500 von der Original-Software auf eine andere Firmware zu flashen. Weiter unten gibt es nun eine Anleitung, die zwar bei mir funktioniert hat, aber nur zu Ansichtszwecken veröffentlicht wird. Ich übernehme also keine Haftung für eventuell entstehende Schäden am Telefon!</p>
<h1>Anleitung</h1>
<h2>Vorgehensweise</h2>
<ol>
<li>Download der benötigten Software</li>
<li>Installation des Android Developer SDKs</li>
<li>Flashen des Recovery-Image</li>
<li>Flashen der Firmware</li>
</ol>
<h2>Download der benötigten Software</h2>
<p>Ich habe die Prozedur unter Ubuntu 9.10 i386 ausgeführt.  Folgende Dateien benötigt man dazu:</p>
<ul>
<li>Android SDK für Linux von <a href="http://developer.android.com/sdk/download.html?v=android-sdk_r04-linux_86.tgz">http://developer.android.com/sdk/download.html?v=android-sdk_r04-linux_86.tgz</a></li>
<li>Ersatz für die ADB-Binary: <a href="http://www.google.com/url?sa=D&amp;q=http://floe.butterbrot.org/external/adb.gz&amp;usg=AFQjCNEV7e0j0ArEesn69DCkOZf__L5avg" target="_blank">http://floe.butterbrot.org/external/adb.gz</a></li>
<li>Fastboot von http://android-dls.com/files/linux/fastboot</li>
<li>Root/recovery image 4.4 von <a href="http://forum.hdblog.it/showthread.php?t=3995">http://forum.hdblog.it/showthread.php?t=3995</a> (vorher registrieren)</li>
<li>GalaxHero ROM von <a href="http://forum.hdblog.it/showthread.php?t=5348">http://forum.hdblog.it/showthread.php?t=5348</a></li>
<li>Originale II5-Firmware von Samsung; etwas selber suchen, z.B. hier: <a href="http://www.android-hilfe.de/root-hacking-modding-fuer-samsung-galaxy/6010-fuer-profis-updates-customroms-fuer-galaxy-mit-odin-mulit-downloader-einspielen.html">http://www.android-hilfe.de/root-hacking-modding-fuer-samsung-galaxy/6010-fuer-profis-updates-customroms-fuer-galaxy-mit-odin-mulit-downloader-einspielen.html</a>)</li>
<li>ION-Update von http://developer.htc.com/google-io-device.html</li>
</ul>
<h2>Installation des Android Developer SDKs</h2>
<p>Da das Samsung Galaxy nicht sofort von der Android Developer Bridge (adb) erkannt wird, muss erst eine udev-Regel erstellt warden mit folgendem Inhalt:</p>
<p>“<code>SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"</code>”</p>
<p>Anschließend sollte der udev-Daemon einmal neugestartet werden.</p>
<p>Das Android SDK muss irgendwo entpackt werden und im Ordner “tools” (den man bequem in den PATH kann) sollte adb durch die neu heruntergeladene ersetzt werden. Der Befehl “sudo adb devices” müsste jetzt das Samsung Galaxy anzeigen.</p>
<h2>Flashen des Recovery-Image</h2>
<p>Nun kann es losgehen:  Entpackt das Recovery-Image in einen Ordner eurer Wahl und navigiert über die Shell dorthin.</p>
<p>Nun bootet mit gleichzeitigem gedrückt Halten der Anruf- und Powerbuttons das Samsung in den Recovery-Modus, einmal dort angekommen, kann man mit dem Befehl “fastboot flash recovery recovery.img” den ersten Schritt tun. Ist dieser Vorgang abgeschlossen, geht es mit “adb push RECTOOLS.tar.gz /sdcard/” weiter, dieser Vorgang sollte mal zweimaligen OKAY quittiert werden.</p>
<p>“adb shell sync” und “adb shell reboot recovery” sind die abschließenden Arbeiten, welche das neu geflashte Recovery-System booten.</p>
<h2>Flashen der Firmware</h2>
<p>Jetzt gehts ans Eingemachte: Das Ersetzen der Original-Firmware. Zuallererst sollte man im Menü des Recovery-Systems mit nandroid ein komplettes Backup seines Telefons machen, falls später etwas schief geht.</p>
<p>Weiter gehts mit entpacken GalaxHero-Firmware und umbenennen der folgenden Dateien:</p>
<ul>
<li>Die Original-Firmware von Samsung: Neuer Name ist II5.tar</li>
<li>Das ION-Update: Neuer Name ist HTC.zip</li>
</ul>
<p>Danach sollen alle Dateien mit den folgenden Befehlen auf das Handy übertragen werden:</p>
<ul>
<li>GalaxHero Firmware: adb push update.zip /sdcard/</li>
<li>Samsung Original-Firmware: adb push II5.tar /sdcard/</li>
<li>ION-Update: adb push HTC.zip /sdcard/</li>
</ul>
<p>Sind diese Schritte durchgeführt worden, kann man über das Recovery-Menü im Telefon folgende Schritte durchführen:</p>
<ul>
<li>Flashen mit der update.zip</li>
<li>Restore der G.Apps</li>
<li>Restore der libhgl</li>
</ul>
<p>Anschließend sollte über das Menu neugestartet werden, der erste Boot dauert erfahrungsgemäß ein bisschen länger, da die Anwendungen initialisiert warden müssen. Viel Spaß!</p>
<h2>Quellen</h2>
<p>Diese Anleitung ist eine Zusammenstellung aus der hervorragenden Vorleistung der Jungs bei hdblog.it, welche sowohl das Recovery-Image, als auch die GalaxHero-Firmware bereitstellen.</p>
<p>Original-Link zum Flashen des Recovery Image:</p>
<p><a href="http://forum.hdblog.it/showthread.php?t=3995">http://forum.hdblog.it/showthread.php?t=3995</a></p>
<p>Original-Link zum Flashen der Firmware:</p>
<p><a href="http://forum.hdblog.it/showthread.php?t=5348">http://forum.hdblog.it/showthread.php?t=5348</a></p>
<p>Original-Link zum deutschen Root-Howto:</p>
<p><a href="http://www.receptorblog.com/wordpress/german-howto-root-fur-das-samsung-galaxy">http://www.receptorblog.com/wordpress/german-howto-root-fur-das-samsung-galaxy</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shiruba.net/archives/548/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO-friendly URLs in PHP (5) w/o mod_rewrite</title>
		<link>http://blog.shiruba.net/archives/483</link>
		<comments>http://blog.shiruba.net/archives/483#comments</comments>
		<pubDate>Wed, 08 Jul 2009 12:24:40 +0000</pubDate>
		<dc:creator>shiruba</dc:creator>
				<category><![CDATA[Entdeckungen]]></category>
		<category><![CDATA[Lesenswertes]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://blog.shiruba.net/?p=483</guid>
		<description><![CDATA[I showed Sebastian my little SEO-friendly PHP example, so why shouldn&#8217;t I share it with you people? Many of you know one or more PHP frameworks like Zend, CakePHP or Symfony which provide SEO-friendy URLs via so called routing functions. Routing it is, because there is a centralized object instance, which delegates function calls to]]></description>
			<content:encoded><![CDATA[<p>I showed Sebastian my little SEO-friendly PHP example, so why shouldn&#8217;t I share it with you people?</p>
<p>Many of you know one or more PHP frameworks like Zend, CakePHP or Symfony which provide SEO-friendy URLs via so called routing functions. Routing it is, because there is a centralized object instance, which delegates function calls to the appropiate class. Implementing this is quite easy with PHP 5 which provides autoloading of classes and (due to its typeless language structure) function loading on demand via &#8220;string&#8221; variables.</p>
<p>Lets start with a simple class named booking:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> booking
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$params</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$params</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Constructor of class booking. &lt;br /&gt;'</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> sayHello<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Hello World in class booking. &lt;br /&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>The real logic takes place in the class router, which explodes the request uri and resolves the classes/methods we want to call:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> router
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$origUrl</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$controller</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$action</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$params</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$origUrl</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">origUrl</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$origUrl</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extractController</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> extractController<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$urlParts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index.php'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">origUrl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$mvcParts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$urlParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">controller</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mvcParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">action</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mvcParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mvcParts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$controller</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">controller</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$action</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">action</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$params</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">class_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$controller</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$controllerInstance</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000088;">$controller</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span>
		<span style="color: #009900;">&#123;</span>
			throw <span style="color: #000000; font-weight: bold;">new</span> Exception<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'There was no controller named '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$controller</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">method_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$controllerInstance</span><span style="color: #339933;">,</span> <span style="color: #000088;">$action</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$controllerInstance</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$action</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span>
		<span style="color: #009900;">&#123;</span>
			throw <span style="color: #000000; font-weight: bold;">new</span> Exception<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'There was no action named '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$action</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>This is our index.php which instantiates the router object:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'config.inc.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$router</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> router<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$router</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">connect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>And a config.inc.php, which extends our include path for classes and defines the required autoload function:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #990000;">set_include_path</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">get_include_path</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> 
	<span style="color: #339933;">.</span> PATH_SEPARATOR 
	<span style="color: #339933;">.</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span>
	<span style="color: #339933;">.</span> <span style="color: #009900; font-weight: bold;">DIRECTORY_SEPARATOR</span>
	<span style="color: #339933;">.</span> <span style="color: #0000ff;">'classes'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> __autoload<span style="color: #009900;">&#40;</span><span style="color: #000088;">$class_name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">require_once</span> <span style="color: #000088;">$class_name</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'.php'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>A call of <em>index.php/booking/sayHello/123456</em> will result in the following output:</p>
<p>
Constructor of class booking. <br />
Hello World in class booking. <br />
123456
</p>
<p>Further explanation needed? Comment please <img src='http://blog.shiruba.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>PS: Attached example files as zip.<br />
PPS: This is no production code!</p>
<p><a href='http://blog.shiruba.net/wp-content/uploads/2009/07/test.7z'>example</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shiruba.net/archives/483/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ShutDownListener in Java</title>
		<link>http://blog.shiruba.net/archives/409</link>
		<comments>http://blog.shiruba.net/archives/409#comments</comments>
		<pubDate>Wed, 29 Apr 2009 09:12:13 +0000</pubDate>
		<dc:creator>shiruba</dc:creator>
				<category><![CDATA[Entdeckungen]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Lesenswertes]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[runtime]]></category>
		<category><![CDATA[shutdownhook]]></category>
		<category><![CDATA[shutdownlistener]]></category>

		<guid isPermaLink="false">http://blog.shiruba.net/?p=409</guid>
		<description><![CDATA[Manchmal ist es in Java vernünftig, eine Art Destruktor zu schreiben, der z.B. permanent geöffnete Datenbank- oder Netzwerkverbindungen beendet. Dies kann man über einen sogenannten ShutdownHook in der Java Virtual Machine realisieren: Runtime.getRuntime&#40;&#41;.addShutdownHook&#40;new ShutdownHook&#40;&#41;&#41;; public class ShutdownHook extends Thread &#123; public void run&#40;&#41; &#123; // TODO: Implement &#125; &#125; Nachtrag: Irgendwie will mein wp-syntax keine]]></description>
			<content:encoded><![CDATA[<p>Manchmal ist es in Java vernünftig, eine Art Destruktor zu schreiben, der z.B. permanent geöffnete Datenbank- oder Netzwerkverbindungen beendet. Dies kann man über einen sogenannten ShutdownHook in der Java Virtual Machine realisieren:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Runtime</span>.<span style="color: #006633;">getRuntime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">addShutdownHook</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> ShutdownHook<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ShutdownHook <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399;">Thread</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// TODO: Implement</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Nachtrag: Irgendwie will mein wp-syntax keine Zeilenumbrüche machen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shiruba.net/archives/409/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Geburt der Rubrik &#8220;Tutorials für J2EE&#8221;</title>
		<link>http://blog.shiruba.net/archives/138</link>
		<comments>http://blog.shiruba.net/archives/138#comments</comments>
		<pubDate>Sat, 11 Oct 2008 14:10:02 +0000</pubDate>
		<dc:creator>shiruba</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.shiruba.net/?p=138</guid>
		<description><![CDATA[Da ich mich in letzter Zeit privat stärker mit J2EE-Themen auseinandersetze, möchte ich in meinem Blog in Zukunft auch einige Sachen präsentieren. Deshalb werde ich in Kürze ein kleines Tutorial zur Datenbank-Verwendung mit Hibernate in Java veröffentlichen. Nachtrag: Leider verschiebt sich die Veröffentlichung des Tutorials etwas, da ich gestern auf einen Fehler gestoßen bin, dem]]></description>
			<content:encoded><![CDATA[<p>Da ich mich in letzter Zeit privat stärker mit J2EE-Themen auseinandersetze, möchte ich in meinem Blog in Zukunft auch einige Sachen präsentieren. Deshalb werde ich in Kürze ein kleines Tutorial zur Datenbank-Verwendung mit <a title="Hibernate" href="http://hibernate.org" target="_blank">Hibernate</a> in Java veröffentlichen.</p>
<p>Nachtrag: Leider verschiebt sich die Veröffentlichung des Tutorials etwas, da ich gestern auf einen Fehler gestoßen bin, dem ich erst noch auf den Grund gehen muss.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shiruba.net/archives/138/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
