<?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>ADI64 feat. n0stradamus &#187; n0stradamus</title>
	<atom:link href="http://adrian.holfter.de/blog/tag/n0stradamus/feed/" rel="self" type="application/rss+xml" />
	<link>http://adrian.holfter.de/blog</link>
	<description>Reiche Eltern für alle!</description>
	<lastBuildDate>Wed, 04 Jan 2012 22:47:27 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Binärbaum zeichnen</title>
		<link>http://adrian.holfter.de/blog/2011/04/binarbaum-zeichnen/</link>
		<comments>http://adrian.holfter.de/blog/2011/04/binarbaum-zeichnen/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 14:52:04 +0000</pubDate>
		<dc:creator>n0stradamus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[do it yourself]]></category>
		<category><![CDATA[n0stradamus]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=465</guid>
		<description><![CDATA[In diesem Artikel möchte ich ein Verfahren erklären, der einem die links abgebildete Datenstruktur ähnlich wie bei einem Aufruf des Befehls pstree ausgiebt]]></description>
			<content:encoded><![CDATA[<p>Im Rahmen dieses Artikels möchte ich ein Verfahren erklären,<img class="alignright" src="http://www.coder-wiki.de/uploads/Algorithmen/vollstaendiger-binaerbaum.png" alt="" width="143" height="100" /> das einem die rechts abgebildete Datenstruktur bereitstellt, sodass eine Ausgabe ähnlich der von <em>pstree -A</em> wäre.</p>
<p>Das fertige Ergebnis sollte folgendermaßen aussehen (In Anlehnung an den rechts dargestellten Baum &#8211; die Nummerierung erfolgt von links nach rechts):</p>
<pre>[Wurzel] + [Blatt 1, Ebene 1] + [Blatt 1, Ebene 2] + [Blatt 1, Ebene 3]
         |                    |                    ` [Blatt 2, Ebene 3]
         |                    ` [Blatt 2, Ebene 1] + [Blatt 3, Ebene 3]
         |                                         ` [Blatt 4, Ebene 3]
         `[Blatt 2, Ebene 1] + [Blatt 3, Ebene 2] + [Blatt 5, Ebene 3]
                             |                    ` [Blatt 2, Ebene 3]
                              ` [Blatt 2, Ebene 1] + [Blatt 3, Ebene 3]
                                                    ` [Blatt 4, Ebene 3]</pre>
<p><span id="more-465"></span></p>
<p>Wir zeichnen also bei jeder Verzweigung ein Plus, dann den Namen des Blattes und immer so weiter, bis ein Blatt erreicht ist, dass sich nicht mehr verzweigt. Dann wird eine neue Zeile begonnen und so lange unter jedes Plus ein &#8220;|&#8221; geschrieben, bis man wieder auf dem Level angelangt ist, zu dem das Blatt gehört. Soweit so gut, ist ja nicht so komplex.</p>
<p>Die Probleme fingen bei mir an, als ich diese Idee in Code umsetzen musste: Ich hatte eine Liste mit Objektinstanzen, aus denen ein Baum generiert werden sollte.</p>
<p>Jedes Objekt hatte drei für die Ausgabe relevante Attribute:</p>
<pre>Objekt* child1; <span style="color: #339966;">//Der Pointer auf das erste Blatt dieser Objektinstanz</span>
Objekt* child2; <span style="color: #339966;">//Der Pointer auf das zweite Blatt dieser Objektinstanz</span>
string name; <span style="color: #339966;">// Der Name dieser Objektinstanz
//Die Pointer beziehen sich jeweils auf andere, in der Liste vorhandene Instanzen.</span></pre>
<p>Also hatte ich folgende fixe Idee: Ich baue in das Objekt eine Funktion ein, die mir den String zusammenbastelt und sich, um die Verschachtelung darzustellen, wieder selbst aufruft. Damit muss ich nicht festhalten, welche Information von welchem Blatt nun ausgegeben werden soll. Fassen wir diese Idee in Pseudo-Pseudocode zusammen:</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
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># Die Funktion erhält eine Liste, in der jeder Index eine Zeile symbolisiert</span>
<span style="color: #808080; font-style: italic;"># Zeile 1 also Index 0 usw...</span>
<span style="color: #ff7700;font-weight:bold;">def</span> generate_tree <span style="color: black;">&#40;</span>list_of_strings<span style="color: black;">&#41;</span>:
 <span style="color: #808080; font-style: italic;"># An die aktuelle Zeile den Namen unseres Blattes dranhängen</span>
 list_of_strings.<span style="color: black;">back</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span> name <span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Wenn unser Objekt ein Kind hat, dann müssen wir ein </span>
<span style="color: #808080; font-style: italic;"># Plus dranhängen und die Rekursion anstoßen.</span>
<span style="color: #808080; font-style: italic;"># Die Unterscheidung ob &quot;+&quot; oder &quot;-&quot; ist nicht notwendig, </span>
<span style="color: #808080; font-style: italic;"># sieht aber am Ende schicker aus:</span>
 <span style="color: #ff7700;font-weight:bold;">if</span> has_child1:
  <span style="color: #ff7700;font-weight:bold;">if</span> has_child2:
   list_of_strings.<span style="color: black;">back</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;+&quot;</span> <span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">else</span>:
   list_of_strings.<span style="color: black;">back</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;-&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;"># Hiermit starten wir die Rekursion</span>
  <span style="color: #808080; font-style: italic;"># Das Folgende soll einen Memberaufruf symbolisieren :)</span>
  child1.<span style="color: black;">generate_tree</span><span style="color: black;">&#40;</span> list_of_strings <span style="color: black;">&#41;</span>
&nbsp;
 <span style="color: #ff7700;font-weight:bold;">if</span> has_child2: <span style="color: #808080; font-style: italic;"># Ein Objekt kann ja bis zu zwei Kinder haben</span>
  buffer = <span style="color: #483d8b;">&quot;&quot;</span> <span style="color: #808080; font-style: italic;">#Einen Buffer anlegen</span>
  <span style="color: #808080; font-style: italic;"># Die Position des letzten Plusses rausfinden</span>
  p = list_of_strings.<span style="color: black;">back</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">find_last_of</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;+&quot;</span> <span style="color: black;">&#41;</span> 
  <span style="color: #808080; font-style: italic;"># Die Position des letzten Strichs rausfinden</span>
  k = list_of_strings.<span style="color: black;">back</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">find_last_of</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;|&quot;</span> <span style="color: black;">&#41;</span> 
&nbsp;
  <span style="color: #ff7700;font-weight:bold;">if</span> p <span style="color: #66cc66;">&lt;</span> k: <span style="color: #808080; font-style: italic;">#Den höheren Wert der beiden müssen wir nehmen</span>
   p = k
&nbsp;
<span style="color: #808080; font-style: italic;"># Von 0 bis p in Einerschritten durchgehen</span>
  <span style="color: #ff7700;font-weight:bold;">for</span> i=<span style="color: #ff4500;">0</span> | i <span style="color: #66cc66;">&lt;</span>= p | i++
   <span style="color: #ff7700;font-weight:bold;">if</span> i <span style="color: #66cc66;">&lt;</span> p:
    <span style="color: #ff7700;font-weight:bold;">if</span> list_of_strings.<span style="color: black;">back</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> == <span style="color: #483d8b;">&quot;+&quot;</span> <span style="color: #ff7700;font-weight:bold;">or</span> list_of_strings.<span style="color: black;">back</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> == <span style="color: #483d8b;">&quot;|&quot;</span>:
     buffer.<span style="color: black;">append</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;|&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
     buffer.<span style="color: black;">append</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot; &quot;</span> <span style="color: black;">&#41;</span>
   <span style="color: #ff7700;font-weight:bold;">else</span> <span style="color: #ff7700;font-weight:bold;">if</span> i == p:
    buffer.<span style="color: black;">append</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;`&quot;</span> <span style="color: black;">&#41;</span>
&nbsp;
  list_of_strings.<span style="color: black;">append</span><span style="color: black;">&#40;</span> buffer <span style="color: black;">&#41;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;"># Wieder eine Rekursion starten</span>
  <span style="color: #808080; font-style: italic;"># Das ist auch ein Memberaufruf</span>
  child2.<span style="color: black;">generate_tree</span><span style="color: black;">&#40;</span> list_of_strings <span style="color: black;">&#41;</span>
<span style="color: #808080; font-style: italic;"># ENDE der Funktion</span></pre></td></tr></table></div>

<p>So&#8230;diese Zeilen verlangen ein wenig nach Erklärung:<br />
Zeile 1: Wir hängen den Namen des Blattes an das letzte Element in der Liste dran. Es ist egal ob die aktuelle Instanz jetzt Wurzel ist oder nicht. Wichtig ist nur, dass die übergebene Liste nicht leer ist. Dafür muss beim Aufruf der Funktion beim Wurzelelement gesorgt sein.</p>
<p>Zeile 11-15: Hier wird nur unterschieden, ob die aktuelle Instanz ein oder zwei Blätter hat und dementsprechend das Verbindungszeichen gewählt</p>
<p>Zeile 19/20: Hier wird die Funktion <em>generate_tree</em> bei dem ersten Kind aufgerufen, mit Übergabe der auch von dieser Funktion verwendeten Liste. Dadurch ist gewährleistet, dass alle ersten Kinder des jeweils vorhergehenden Blatts in einer Zeile stehen.</p>
<p>Zeile 21: Nun ist die Funktion für das erste Kind durchgelaufen, wenn es ein zweites Kind gibt, wird es nun etwas schwieriger, einen String zusammenzubauen.</p>
<p>Zeile 22-26: Es wird ein Puffer angelegt (er wird am Ende die neue Zeile enthalten, die wir zusammengebaut haben), der Index des letzten Plusses und der Index des letzten senkrechten Striches herausgefunden. Zur Erinnerung: Striche sollten die Verzweigung über mehrere Zeilen hinweg kenntlich machen. Plusse sollten zeigen, dass dieses Blatt mehr als ein Kind hat.</p>
<p>Zeile 28-Ende: Die Zuweisung in Zeile 29 macht nur Sinn, wenn man sich die for-Schleife danach anschaut. Wir gehen jeden einzelnen Index der letzten Zeile in der Liste bis <em>p</em> durch. <em>p</em> ist der Index des letzten Plusses/letzten Striches, je nachdem welcher Index höher ist. Solange <em>i &lt; p </em> gilt, wird unter jeden Strich/jedes Plus ein weiterer Strich gehängt (indem man dieses Zeichen an den Puffer hängt). Haben wir <em>p</em> erreicht, so wird ein &#8220;`&#8221; an den Puffer gehängt, weil jetzt endlich der Name des zweiten Kindes kommen kann.<br />
Dazu hängen wir den Buffer an die Liste dran (er symbolisiert ja eine neue Zeile) und rufen <em>generate_tree</em> bei dem zweiten Kind auf, mit unserer Liste als Parameter.</p>
<p style="text-align: center;">&#8212;&#8211;</p>
<p style="text-align: left;">Eine Implementierung dieses Algorithmus in C++ könnte folgendermaßen aussehen: <a title="Beispiel-Implementierung" href="http://adrian.holfter.de/blog/wp-content/uploads/2011/04/objekt_de.cpp">*klick*</a></p>
<p>Die Funktion funktioniert allerdings nur unter zwei Bedingungen:</p>
<ul>
<li>Verwendung eines Monospace-Fonts bei der Ausgabe</li>
<li>Die übergebene Liste ist beim Aufruf der Funktion beim Wurzelelement NICHT leer. Sie muss mindestens einen leeren String enthalten.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/2011/04/binarbaum-zeichnen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bootsplash einrichten</title>
		<link>http://adrian.holfter.de/blog/2010/06/bootsplash-einrichten/</link>
		<comments>http://adrian.holfter.de/blog/2010/06/bootsplash-einrichten/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 14:07:09 +0000</pubDate>
		<dc:creator>n0stradamus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Archlinux]]></category>
		<category><![CDATA[do it yourself]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[fbsplash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[n0stradamus]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=237</guid>
		<description><![CDATA[Nach meinem Wechsel von Ubuntu zu Arch habe ich den Startvorgang etwas aufpeppen wollen und versucht, einen Splash beim Boot anzeigen zu lassen. Zuerst einmal hat man die Wahl zwischen splashy und fbsplash. Ich habe mich für fbsplash entschieden und werde es in diesem Artikel behandeln. fbsplash findet man im AUR und im Wiki eine [...]]]></description>
			<content:encoded><![CDATA[<p>Nach meinem Wechsel von Ubuntu zu Arch habe ich den Startvorgang etwas aufpeppen wollen und versucht, einen Splash beim Boot anzeigen zu lassen.</p>
<p>Zuerst einmal hat man die Wahl zwischen splashy und fbsplash. Ich habe mich für fbsplash entschieden und werde es in diesem Artikel behandeln.</p>
<p>fbsplash findet man im <a href="http://aur.archlinux.org/packages.php?ID=13541" target="_blank">AUR</a> und im <a href="http://wiki.archlinux.org/index.php/Fbsplash">Wiki</a> eine sehr gute Einführung dazu. Ich bin den Leitfaden mehrere Male durchgegangen und immer wieder auf die gleiche Problematik gestoßen:</p>
<ul>
<li>Beim Hochfahren bekomme ich eine Fehlermeldung: &#8216;fbsplash was unable to start&#8230;theme not found&#8217;</li>
<li>Beim Herunterfahren funktioniert der Splash</li>
</ul>
<p>Abhilfe lässt sich mit folgender kleinen Änderung an den Kernelargumenten schaffen:<span id="more-237"></span></p>
<pre>logo.nologo quiet console=tty1 vga=<span style="color: #ff0000;">792</span> splash=silent,fadein,
fadeout,theme:&lt;theme-name&gt;
</pre>
<p>Den oben rot markierten Framebuffer-Wert gilt es nun mit dem gewünschten (und vom  Theme unterstützten!) Auflösungswert zu ersetzen, damit der Framebuffer auf den Wert gesetzt ist für den das Theme in /etc/conf.d/splash konfiguriert wurde &#8211; sonst startet fbsplash einfach nicht und es gibt die bekannte Fehlermeldung. Über diesen gesuchten Wert gibt uns folgender Befehl Aufschluss:</p>
<pre># hwinfo --framebuffer
</pre>
<p style="padding-left: 30px;"><a href="http://aur.archlinux.org/packages.php?ID=14977"><em>hwinfo im AUR</em></a></p>
<p>In meinem Fall sähe die geänderte Argumentzeile folgendermaßen aus:</p>
<pre>logo.nologo quiet console=tty1 vga=0x0324 splash=silent,fadein,
fadeout,theme:archax
</pre>
<p>Natürlich kann man die 0&#215;0324 auch in 804 konvertieren und hinter vga= schreiben, das ist aber reine Geschmackssache.</p>
<p>Ich vermute, dass die Startschwierigkeiten entweder mit meiner x86_64-Version von Arch zusammenhängen oder mit meiner Hardware:</p>
<blockquote><p>AMD Phenom II X4 955 BE</p>
<p>4GB OCZ DDR3-1600</p>
<p>ATI Radeon HD 4870 Vapor-X 2GB von Sapphire</p></blockquote>
<p>Im Wiki ist nämlich auch ein Wikipedia-Artikel mit den Framebuffer-Codes verlinkt, die für 1280&#215;1024 funktionieren sollen &#8211; bei mir tun sie es _nicht_: <a href="http://en.wikipedia.org/wiki/VESA_BIOS_Extensions#Linux_video_mode_numbers">*klick*</a></p>
<p>Nachdem fbsplash nun bei mir startete, flackerte es kurz nach seinem Start und wurde nach links verschoben &#8211; irgenwdie unschön. Die einzige Lösung die ich dafür finden konnte, war folgende Änderung an /etc/mkinitcpio.conf vorzunehmen und damit den Start von fbsplash <em>hinter</em> die Änderung der Bildschirmauflösung durch den Kernel zu legen:</p>
<blockquote><p>HOOKS=&#8221;base udev <span style="color: #ff0000;">fbsplash</span> autodetect pata scsi sata filesystems&#8221;</p></blockquote>
<p>ändern zu</p>
<blockquote><p>HOOKS=&#8221;base udev autodetect pata scsi sata filesystems<span style="color: #ff0000;"> fbsplash</span>&#8220;</p></blockquote>
<p>Es funktioniert, aber man sieht eben mehr von der Konsole und weniger vom Splash.</p>
<p>Für jegliche Lösungsvorschläge bin ich dankbar!</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/2010/06/bootsplash-einrichten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qwt Libraries installieren</title>
		<link>http://adrian.holfter.de/blog/2010/06/qwt-libraries-installieren/</link>
		<comments>http://adrian.holfter.de/blog/2010/06/qwt-libraries-installieren/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 16:17:07 +0000</pubDate>
		<dc:creator>n0stradamus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[do it yourself]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[n0stradamus]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=213</guid>
		<description><![CDATA[Wer schon einmal versucht hat, Graphen in Qt zeichnen zu lassen, hat mit Sicherheit auf das Qwt-Framework zurückgegriffen. Leider lassen sich die Libs nicht so einfach in den Qt-Creator einbauen wie andere Standardlibs, zumindest war das bei mir der Fall. Für alle, die an einem nicht so wirklich richtig funktionieren Paketmanager gescheitert sind, ist hier [...]]]></description>
			<content:encoded><![CDATA[<p>Wer schon einmal versucht hat, Graphen in Qt zeichnen zu lassen, hat mit Sicherheit auf das Qwt-Framework zurückgegriffen. Leider lassen sich die Libs nicht so einfach in den Qt-Creator einbauen wie andere Standardlibs, zumindest war das bei mir der Fall.</p>
<p>Für alle, die an einem nicht so wirklich richtig funktionieren Paketmanager gescheitert sind, ist hier der Leitfaden:<span id="more-213"></span></p>
<p>1.  Qwt Libraries runterladen und entpacken in Verzeichnis <span style="color: #ff0000;">X</span>:</p>
<blockquote><p>http://www.qwt.sourceforge.net</p>
<p>tar -xzf foo.tar.gz</p></blockquote>
<p>2. Dann folgende Konsolenschritte:</p>
<blockquote><p>cd &#8216;<span style="color: #ff0000;">X</span>&#8216; <span style="color: #008000;">//Pfad in dem sich das extrahierte Qwt findet</span></p>
<p>qmake</p>
<p>sudo make</p>
<p>sudo make install</p></blockquote>
<p>3. Damit sei es getan, könnte man meinen, doch ich musste die qwt-Libraries noch vermerken und zwar in /usr/local/lib/libc.conf</p>
<blockquote><p>/usr/local/qwt-Name/lib</p>
<p><span style="color: #008000;">/*Name war in meinem Fall qwt-5.2.0*/</span></p></blockquote>
<p>4. Und zum Schluss:</p>
<blockquote><p>sudo ldconfig</p></blockquote>
<p>Teilt mir bitte Fehler mit, ich habe die Methode bisher nur ein paar Mal verwendet.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/2010/06/qwt-libraries-installieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts about&#8230; SAP-Osterpraktikum</title>
		<link>http://adrian.holfter.de/blog/2010/05/thoughts-about-sap-osterpraktikum/</link>
		<comments>http://adrian.holfter.de/blog/2010/05/thoughts-about-sap-osterpraktikum/#comments</comments>
		<pubDate>Sun, 23 May 2010 20:48:51 +0000</pubDate>
		<dc:creator>n0stradamus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[adi64]]></category>
		<category><![CDATA[Bericht]]></category>
		<category><![CDATA[n0stradamus]]></category>
		<category><![CDATA[Osterpraktikum]]></category>
		<category><![CDATA[SAP]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=198</guid>
		<description><![CDATA[SAP bietet für Schüler 3x im Jahr ein Praktikum in den Ferien an, in denen man einen Einblick in das Unternehmen bekommen kann. adi64 und n0stradamus waren beim Osterpraktikum dieses Jahr dabei und konnten sich also den Laden etwas genauer anschauen. Den ganzen Text sowie detaillierte Ausführungen zu jedem Tag gibts auf der extra Seite.]]></description>
			<content:encoded><![CDATA[<p>SAP bietet für Schüler 3x  im Jahr ein Praktikum in den Ferien an, in denen man einen Einblick  in das Unternehmen bekommen kann.</p>
<p>adi64 und n0stradamus waren beim Osterpraktikum dieses Jahr dabei und konnten sich  also den Laden etwas genauer anschauen.</p>
<p>Den ganzen Text sowie detaillierte Ausführungen zu jedem Tag gibts auf der <a href="http://adrian.holfter.de/blog/bericht-sap-praktikum/" target="_self">extra Seite</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/2010/05/thoughts-about-sap-osterpraktikum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

