<?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>Bits, Bytes and my 5 cents &#187; Patrick</title> <atom:link href="http://blog.encodingit.ch/author/admin/feed/" rel="self" type="application/rss+xml" /><link>http://blog.encodingit.ch</link> <description>Life is just a technical game</description> <lastBuildDate>Fri, 27 Aug 2010 12:13:27 +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>Nerdkäppchen &#8211; Rotkäppchen für kleine Informatiker / -innen</title><link>http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/</link> <comments>http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/#comments</comments> <pubDate>Fri, 27 Aug 2010 12:13:27 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Allgemein]]></category> <category><![CDATA[Nerd]]></category> <category><![CDATA[Nerdkäppchen]]></category> <category><![CDATA[Planet]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=1012</guid> <description><![CDATA[Es war einmal ein kleines, süßes Mädchen, das immer ein Käppchen aus rotem Samt trug. Aufgrund dieses Attributes erhielt es ein Assign unter dem symbolischen Namen Rotkäppchen.Eines Tages sprach die Mutter: Rotkäppchen, die Gesundheit deiner Großmutter hat einen Interupt bekommen. Wir müssen ein Pflegeprogramm entwickeln und zur Großmutter bringen, um das Problem zu lösen. Verirre dich jedoch nicht im Wald der alten Sprachen, sondern gehe nur strukturierte Wege. Nutze dabei immer eine Hochsprache der vierten Generation, dann geht es der Großmutter schnell wieder gut. Und achte darauf, dass dein Pflegeprogramm transaktioniert wird, damit es die Großmutter nicht noch mehr belastet.]]></description> <content:encoded><![CDATA[<p>Damit sich schon die ganz Kleinen an die IT gewöhnen können, dabei aber nicht auf Märchen verzichten müssen, gibt es hier das Nerd-Rotkäpchen <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><blockquote><p>Es war einmal ein kleines, süßes Mädchen, das immer ein Käppchen aus rotem Samt trug. Aufgrund dieses Attributes erhielt es ein Assign unter dem symbolischen Namen Rotkäppchen.</p><p>Eines Tages sprach die Mutter: Rotkäppchen, die Gesundheit deiner Großmutter hat einen Interupt bekommen. Wir müssen ein Pflegeprogramm entwickeln und zur Großmutter bringen, um das Problem zu lösen. Verirre dich jedoch nicht im Wald der alten Sprachen, sondern gehe nur strukturierte Wege. Nutze dabei immer eine Hochsprache der vierten Generation, dann geht es der Großmutter schnell wieder gut. Und achte darauf, dass dein Pflegeprogramm transaktioniert wird, damit es die Großmutter nicht noch mehr belastet.</p><p>Da der Weg zur Großmutter renetrant war, traf Rotkäppchen den Wolf. Er tat sehr benutzerfreundlich, hatte im Backround jedoch schon einen Abbruch programmiert. Während Rotkäppchen einen Go To ins Blumenfeld machte, ging der Wolf im Direktzugriff zur Großmutter und vereinnahmte Sie unverzüglich durch einen Delete. Ohne zu zögern gab er sich den Anschein kompatibel zu sein und nahm die logische Sicht der Großmutter an. Dann legte er sich in Ihren Speicherplatz.</p><p>Kurz danach lokalisierte auch Rotkäppchen die Adresse der Großmutter und trat in den Speicherraum.</p><p><span id="more-1012"></span></p><p>Vor der Installation des Pflegeprogramms machte Rotkäppchen sicherheitshalber einen Verify und fragte:</p><p>Ei Großmutter, warum hast Du so große Augen?</p><p>Weil ich zufriedene Endbenutzer gesehen habe.</p><p>Ei, Großmutter warum hast Du so große Ohren?</p><p>Damit ich die Wünsche der User besser verstehen kann.</p><p>Ei, Großmutter warum hast du so ein entsetzlich großes Maul?</p><p>Damit ich dich besser Canceln kann!</p><p>Sprachs und nahm das arme Ding als Input. Nach ein Logoff begab sich der Wolf zur Ruhe, schlief ein und begann laut zu schnarchen.</p><p>Als der Jäger auf seinem Loop durch den Wald am Haus der Großmutter vorbeikam, sah er durch sein Window den Wolf im Bett liegen.</p><p>Finde ich dich hier du alter Sünder, sprach er, ich habe dich lange gesucht! Als Kenner der Szene analysierte er sofort, dass nach den Regeln der Booleschen Algebra die Großmutter nur im Bauch des Wolfes sein konnte. Er nahm sein Messer, teilte den Bauch des Wolfes in mehrere Sektoren und machte, welch Freude, die Großmutter und das Rotkäppchen wieder zu selbstständigen Modulen.</p><p>Als Input für den Bauch des Wolfes nahmen sie viele Kilobyte Steine und beendeten die Operation mit einem Close. Als der Wolf erwachte, verursachte ihm sein dermaßen aufgeblähter Hauptspeicher solche Schmerzen, dass er an einer Storage Violation jämmerlich zugrunde ging.</p><p>Da waren alle vergnügt.</p><p>Das Pflegeprogramm aktivierte die Großmutter. Rotkäppchen aber dachte: Du willst den Lebtag nie wieder einen Go To machen, sondern nur noch strukturierte Wege gehen, wie dirs die Mutter geboten hat.</p></blockquote><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/&amp;title=Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/&amp;title=Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/&amp;t=Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen&amp;body=Link: http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Es%20war%20einmal%20ein%20kleines%2C%20s%C3%BC%C3%9Fes%20M%C3%A4dchen%2C%20das%20immer%20ein%20K%C3%A4ppchen%20aus%20rotem%20Samt%20trug.%20Aufgrund%20dieses%20Attributes%20erhielt%20es%20ein%20Assign%20unter%20dem%20symbolischen%20Namen%20Rotk%C3%A4ppchen.%0D%0A%0D%0AEines%20Tages%20sprach%20die%20Mutter%3A%20Rotk%C3%A4ppchen%2C%20die%20Gesundheit%20deiner%20Gro%C3%9Fmutter%20hat%20einen%20Interupt%20bekommen.%20Wir%20m%C3%BCssen%20ein%20Pflegeprogramm%20entwickeln%20und%20zur%20Gro%C3%9Fmutter%20bringen%2C%20um%20das%20Problem%20zu%20l%C3%B6sen.%20Verirre%20dich%20jedoch%20nicht%20im%20Wald%20der%20alten%20Sprachen%2C%20sondern%20gehe%20nur%20strukturierte%20Wege.%20Nutze%20dabei%20immer%20eine%20Hochsprache%20der%20vierten%20Generation%2C%20dann%20geht%20es%20der%20Gro%C3%9Fmutter%20schnell%20wieder%20gut.%20Und%20achte%20darauf%2C%20dass%20dein%20Pflegeprogramm%20transaktioniert%20wird%2C%20damit%20es%20die%20Gro%C3%9Fmutter%20nicht%20noch%20mehr%20belastet." rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/&amp;title=Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen&quot;+-+from+http://tinyurl.com/2bn8s5p" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/&amp;title=Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen&amp;summary=Es%20war%20einmal%20ein%20kleines%2C%20s%C3%BC%C3%9Fes%20M%C3%A4dchen%2C%20das%20immer%20ein%20K%C3%A4ppchen%20aus%20rotem%20Samt%20trug.%20Aufgrund%20dieses%20Attributes%20erhielt%20es%20ein%20Assign%20unter%20dem%20symbolischen%20Namen%20Rotk%C3%A4ppchen.%0D%0A%0D%0AEines%20Tages%20sprach%20die%20Mutter%3A%20Rotk%C3%A4ppchen%2C%20die%20Gesundheit%20deiner%20Gro%C3%9Fmutter%20hat%20einen%20Interupt%20bekommen.%20Wir%20m%C3%BCssen%20ein%20Pflegeprogramm%20entwickeln%20und%20zur%20Gro%C3%9Fmutter%20bringen%2C%20um%20das%20Problem%20zu%20l%C3%B6sen.%20Verirre%20dich%20jedoch%20nicht%20im%20Wald%20der%20alten%20Sprachen%2C%20sondern%20gehe%20nur%20strukturierte%20Wege.%20Nutze%20dabei%20immer%20eine%20Hochsprache%20der%20vierten%20Generation%2C%20dann%20geht%20es%20der%20Gro%C3%9Fmutter%20schnell%20wieder%20gut.%20Und%20achte%20darauf%2C%20dass%20dein%20Pflegeprogramm%20transaktioniert%20wird%2C%20damit%20es%20die%20Gro%C3%9Fmutter%20nicht%20noch%20mehr%20belastet.&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=Nerdk%C3%A4ppchen+-+Rotk%C3%A4ppchen+f%C3%BCr+kleine+Informatiker+%2F+-innen+-+http://tinyurl.com/2bn8s5p&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/08/nerdkappchen-rotkappchen-fur-kleine-informatiker-innen/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>alea iacta est – Teil 3</title><link>http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/</link> <comments>http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/#comments</comments> <pubDate>Thu, 19 Aug 2010 16:43:24 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Programmieren]]></category> <category><![CDATA[Wettbewerb]]></category> <category><![CDATA[Linux Magazin]]></category> <category><![CDATA[Planet]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=999</guid> <description><![CDATA[Mein Bot ist fertig und hat bereits die ersten Testläufe absolviert. Begonnen habe ich auf dem offiziellen Server, doch dummerweise ist dieser mehr als nur langsam. So kann es da problemlos mal vorkommen, dass man 15 Minuten auf ein neues Spiel wartet.]]></description> <content:encoded><![CDATA[<blockquote><p>Fortsetzung zu <a href="http://blog.encodingit.ch/2010/08/alea-iacta-est/">alea iacta est – Teil 1</a> und <a href="http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/">alea iacta est – Teil 2</a></p></blockquote><p>So nun geht es in die dritte Runde!<br /> Mein Bot ist fertig und hat bereits die ersten Testläufe absolviert. Begonnen habe ich auf dem offiziellen Server, doch dummerweise ist dieser mehr als nur langsam. So kann es da problemlos mal vorkommen, dass man 15 Minuten auf ein neues Spiel wartet.<br /> Doch glücklicherweise hat ein findiger Mitstreiter eine in Ruby implementierte Serverkopie geschrieben und veröffentlicht. Damit können problemlos 10 Spiele pro Minute gespielt werden und ist somit für Tests viel besser geeignet.<br /> Erreichbar ist dieser Server unter:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">telnet littleforumpeople.com <span style="color: #000000;">3333</span></pre></td></tr></table></div><p>Mein Bot selbst hat sich eine bereits eine nicht allzuschlechte Statistik erarbeitet:</p><blockquote><p>Gewonnen: 2258<br /> Verloren: 1542<br /> Spiele: 3800</p></blockquote><p>Daraus ergibt sich eine Erfolgsquote von ganzen 59.4%, wodurch er problemlos mit den Besten mithalten kann <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Der Bot selbst ist relativ einfach aufgebaut:</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
49
50
51
52
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#------------------------------------------------------------------------------</span>
<span style="color: #666666; font-style: italic;"># Author:	Patrick Schmid</span>
<span style="color: #666666; font-style: italic;"># Web:		http://blog.encodingit.ch</span>
<span style="color: #666666; font-style: italic;"># Version:	1.1</span>
<span style="color: #666666; font-style: italic;"># Changes:	- Grundversion (13.8.10)</span>
<span style="color: #666666; font-style: italic;">#		- Script umgestellt auf NC-Version (16.8.10)</span>
<span style="color: #666666; font-style: italic;">#------------------------------------------------------------------------------</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Umgebung festlegen</span>
<span style="color: #007800;">name</span>=<span style="color: #ff0000;">&quot;encodingit&quot;</span> <span style="color: #666666; font-style: italic;"># mein Name</span>
<span style="color: #007800;">active</span>=<span style="color: #000000;">0</span> <span style="color: #666666; font-style: italic;"># Nicht mein Zug</span>
<span style="color: #007800;">zaehler</span>=<span style="color: #000000;">0</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> play <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #666666; font-style: italic;"># Spielfunktion</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># Dies müsst ihr selbst machen ;)</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #7a0874; font-weight: bold;">command</span> a1 a2 a3
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #007800;">$command</span> <span style="color: #000000; font-weight: bold;">in</span>
		HELO<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;AUTH <span style="color: #007800;">$name</span> Ich bin bereit!&quot;</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		TURN<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			play <span style="color: #007800;">$a1</span> <span style="color: #007800;">$a2</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		THRW<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$active</span>&quot;</span> = <span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> 
			<span style="color: #000000; font-weight: bold;">then</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$a1</span>&quot;</span> = <span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
				<span style="color: #000000; font-weight: bold;">then</span>
					<span style="color: #007800;">active</span>=<span style="color: #000000;">0</span>
				<span style="color: #000000; font-weight: bold;">fi</span>
			<span style="color: #000000; font-weight: bold;">else</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$a1</span>&quot;</span> = <span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
				<span style="color: #000000; font-weight: bold;">then</span>
					<span style="color: #007800;">active</span>=<span style="color: #000000;">1</span>
				<span style="color: #000000; font-weight: bold;">fi</span>
			<span style="color: #000000; font-weight: bold;">fi</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		WIN<span style="color: #000000; font-weight: bold;">|</span>DEF<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$command</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> log
			<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;AUTH <span style="color: #007800;">$name</span> Ich bin bereit!&quot;</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
	<span style="color: #000000; font-weight: bold;">esac</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div><p>Ich denke ihr werdet verstehen, dass ich die Play-Funktion erst nach dem Abgabetermin veröffentliche.<br /> Gestartet wird das Script via netcat oder ncat:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> ncat <span style="color: #660033;">-v</span> <span style="color: #660033;">-e</span> .<span style="color: #000000; font-weight: bold;">/</span>wettbewerb.sh littleforumpeople.com <span style="color: #000000;">3333</span></pre></td></tr></table></div><p>Ich wünsche euch viel Spass beim würfeln. <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/&amp;title=alea+iacta+est+%E2%80%93+Teil+3" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/&amp;title=alea+iacta+est+%E2%80%93+Teil+3" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/&amp;t=alea+iacta+est+%E2%80%93+Teil+3" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=alea+iacta+est+%E2%80%93+Teil+3&amp;body=Link: http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Mein%20Bot%20ist%20fertig%20und%20hat%20bereits%20die%20ersten%20Testl%C3%A4ufe%20absolviert.%20Begonnen%20habe%20ich%20auf%20dem%20offiziellen%20Server%2C%20doch%20dummerweise%20ist%20dieser%20mehr%20als%20nur%20langsam.%20So%20kann%20es%20da%20problemlos%20mal%20vorkommen%2C%20dass%20man%2015%20Minuten%20auf%20ein%20neues%20Spiel%20wartet." rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/&amp;title=alea+iacta+est+%E2%80%93+Teil+3" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;alea+iacta+est+%E2%80%93+Teil+3&quot;+-+from+http://tinyurl.com/3xtj955" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/&amp;title=alea+iacta+est+%E2%80%93+Teil+3&amp;summary=Mein%20Bot%20ist%20fertig%20und%20hat%20bereits%20die%20ersten%20Testl%C3%A4ufe%20absolviert.%20Begonnen%20habe%20ich%20auf%20dem%20offiziellen%20Server%2C%20doch%20dummerweise%20ist%20dieser%20mehr%20als%20nur%20langsam.%20So%20kann%20es%20da%20problemlos%20mal%20vorkommen%2C%20dass%20man%2015%20Minuten%20auf%20ein%20neues%20Spiel%20wartet.&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=alea+iacta+est+%E2%80%93+Teil+3+-+http://tinyurl.com/3xtj955&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/feed/</wfw:commentRss> <slash:comments>30</slash:comments> </item> <item><title>alea iacta est &#8211; Teil 2</title><link>http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/</link> <comments>http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/#comments</comments> <pubDate>Tue, 17 Aug 2010 15:13:09 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Programmieren]]></category> <category><![CDATA[Wettbewerb]]></category> <category><![CDATA[Linux Magazin]]></category> <category><![CDATA[Planet]]></category> <category><![CDATA[Ubuntu]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=987</guid> <description><![CDATA[Mein Bot ist nun soweit geschrieben und mit Intelligenz gefüllt. Was ihm nun noch fehlt, sind ein paar Tests, danach werde ich (zumindest Auszüge daraus) auch hier veröffentlichen.Doch noch ein paar Worte zu meinem Vorgehen:
Eigentlich wollte ich die Kommunikation von Script zu Server via dem virtuellen Device /dev/tcp abwickeln. Schon relativ früh zeigte sicher aber; das ist so nicht lösbar!
Das Problem dabei ist, dass sobald irgendetwas auf den Device umgeleitet wird, wird die TCP-Verbindung neu aufgebaut und nach dem Senden auch gleich wieder getrennt. Geplant ist aber, dass die Verbindung nur einmal hergestellt und dann natürlich auch gehalten wird...]]></description> <content:encoded><![CDATA[<blockquote><p><em>Fortsetzung zu <a href="http://blog.encodingit.ch/2010/08/alea-iacta-est/">alea iacta est &#8211; Teil 1</a></em></p></blockquote><p>Mein Bot ist nun soweit geschrieben und mit Intelligenz gefüllt. Was ihm nun noch fehlt, sind ein paar Tests, danach werde ich (zumindest Auszüge daraus) auch hier veröffentlichen.</p><p>Doch noch ein paar Worte zu meinem Vorgehen:<br /> Eigentlich wollte ich die Kommunikation von Script zu Server via dem virtuellen Device /dev/tcp abwickeln. Schon relativ früh zeigte sicher aber; das ist so nicht lösbar!<br /> Das Problem dabei ist, dass sobald irgendetwas auf den Device umgeleitet wird, wird die TCP-Verbindung neu aufgebaut und nach dem Senden auch gleich wieder getrennt. Geplant ist aber, dass die Verbindung nur einmal hergestellt und dann natürlich auch gehalten wird&#8230;</p><p>Somit musste ich kurzerhand umdisponieren und bin auf eine andere Möglichkeit mittels Netcat ausgewichen. Dabei wird, wie <a href="http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/">hier</a> schon zu lesen war, mittels der Option -e nach dem Verbinden ein Script gestartet. Die Kommunikation verläuft dabei über die Standard-Ein- und -Ausgabe. Jegliche Teile der Verbindung werden von Netcat geregelt, wodurch ich mich voll und ganz auf die KI konzentrieren kann.</p><p>Doch nun zum Wichtigsten: <strong>Die Strategie!</strong><br /> Ich habe in ein paar kurzen, manuellen Spielen ein paar Taktiken ausprobiert. Zur Zeit umgesetzt sind:</p><blockquote><ol><li> Liege ich im Rückstand, muss ich risikofreudiger werden.</li><li> Liege ich weit vorne, kann ich sicherer spielen.</li><li> Speichert mein Gegner selten, kann ich sicherer spielen</li></ol></blockquote><p>Doch irgendwie reicht mir das noch nicht aus für meinen Bot.<br /> Wenn also jemand noch weitere Ideen hat, dann immer her damit <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Jeder Input ist willkommen!</p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/&amp;title=alea+iacta+est+-+Teil+2" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/&amp;title=alea+iacta+est+-+Teil+2" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/&amp;t=alea+iacta+est+-+Teil+2" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=alea+iacta+est+-+Teil+2&amp;body=Link: http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Mein%20Bot%20ist%20nun%20soweit%20geschrieben%20und%20mit%20Intelligenz%20gef%C3%BCllt.%20Was%20ihm%20nun%20noch%20fehlt%2C%20sind%20ein%20paar%20Tests%2C%20danach%20werde%20ich%20%28zumindest%20Ausz%C3%BCge%20daraus%29%20auch%20hier%20ver%C3%B6ffentlichen.%0D%0A%0D%0ADoch%20noch%20ein%20paar%20Worte%20zu%20meinem%20Vorgehen%3A%0D%0AEigentlich%20wollte%20ich%20die%20Kommunikation%20von%20Script%20zu%20Server%20via%20dem%20virtuellen%20Device%20%2Fdev%2Ftcp%20abwickeln.%20Schon%20relativ%20fr%C3%BCh%20zeigte%20sicher%20aber%3B%20das%20ist%20so%20nicht%20l%C3%B6sbar%21%0D%0ADas%20Problem%20dabei%20ist%2C%20dass%20sobald%20irgendetwas%20auf%20den%20Device%20umgeleitet%20wird%2C%20wird%20die%20TCP-Verbindung%20neu%20aufgebaut%20und%20nach%20dem%20Senden%20auch%20gleich%20wieder%20getrennt.%20Geplant%20ist%20aber%2C%20dass%20die%20Verbindung%20nur%20einmal%20hergestellt%20und%20dann%20nat%C3%BCrlich%20auch%20gehalten%20wird..." rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/&amp;title=alea+iacta+est+-+Teil+2" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;alea+iacta+est+-+Teil+2&quot;+-+from+http://tinyurl.com/2dkw3lv" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/&amp;title=alea+iacta+est+-+Teil+2&amp;summary=Mein%20Bot%20ist%20nun%20soweit%20geschrieben%20und%20mit%20Intelligenz%20gef%C3%BCllt.%20Was%20ihm%20nun%20noch%20fehlt%2C%20sind%20ein%20paar%20Tests%2C%20danach%20werde%20ich%20%28zumindest%20Ausz%C3%BCge%20daraus%29%20auch%20hier%20ver%C3%B6ffentlichen.%0D%0A%0D%0ADoch%20noch%20ein%20paar%20Worte%20zu%20meinem%20Vorgehen%3A%0D%0AEigentlich%20wollte%20ich%20die%20Kommunikation%20von%20Script%20zu%20Server%20via%20dem%20virtuellen%20Device%20%2Fdev%2Ftcp%20abwickeln.%20Schon%20relativ%20fr%C3%BCh%20zeigte%20sicher%20aber%3B%20das%20ist%20so%20nicht%20l%C3%B6sbar%21%0D%0ADas%20Problem%20dabei%20ist%2C%20dass%20sobald%20irgendetwas%20auf%20den%20Device%20umgeleitet%20wird%2C%20wird%20die%20TCP-Verbindung%20neu%20aufgebaut%20und%20nach%20dem%20Senden%20auch%20gleich%20wieder%20getrennt.%20Geplant%20ist%20aber%2C%20dass%20die%20Verbindung%20nur%20einmal%20hergestellt%20und%20dann%20nat%C3%BCrlich%20auch%20gehalten%20wird...&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=alea+iacta+est+-+Teil+2+-+http://tinyurl.com/2dkw3lv&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>netcat ist nicht gleich netcat</title><link>http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/</link> <comments>http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/#comments</comments> <pubDate>Tue, 17 Aug 2010 08:08:54 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[GNU]]></category> <category><![CDATA[netcat]]></category> <category><![CDATA[Planet]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=975</guid> <description><![CDATA[Wie ich soeben feststellen musste ist netcat nicht unbedingt gleich netcat. So unterscheidet man zwischen GNU Netcat und OpenBSD Netcat]]></description> <content:encoded><![CDATA[<p>Wie ich soeben feststellen musste ist netcat nicht unbedingt gleich netcat. So unterscheidet man zwischen GNU Netcat und OpenBSD Netcat.</p><p>Doch wenn man das nicht weiss, kommt es wie folgt heraus:</p><blockquote><p>Ich wusste, dass sich mittels der Option -e in Netcat nach erfolgreichem Verbinden sogleich ein Script ausführen lässt.<br /> Doch auf mir unerklärliche Art und Weise wollte mein netcat aus den Paketquellen einfach keine Option -e kennen!<br /> Beim googeln dann bin ich über GNU Netcat gestossen. Jedoch war dies nur Version 0.7.1.1 und ich hatte aus den Paketquellen Version 1.84 installiert. Dass es nicht das selbe Tool ist, war mir zu der Zeit immer noch nicht bewusst, wodurch ich zuerst weitersuchte.<br /> Die Lösung fand ich schlussendlich, ja man glaubt es kaum, auf Wikipedia <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> Da wurde ich erstmals damit konfrontiert, dass netcat eben doch nicht unbedingt gleich netcat ist.</p></blockquote><p>Wer also ein ähnliches Problem hat, der soll doch einfach mal GNU Netcat ausprobieren:</p><p><a href='http://blog.encodingit.ch/wp-content/uploads/2010/08/netcat_0.7.1-2_i386.deb'><img src="http://blog.encodingit.ch/wp-content/uploads/2010/08/deb.png" alt="" title="deb" width="62" height="50" class="alignnone size-full wp-image-982" /></a> <a href='http://blog.encodingit.ch/wp-content/uploads/2010/08/netcat-0.7.1-1.i386.rpm'><img src="http://blog.encodingit.ch/wp-content/uploads/2010/08/rpm.png" alt="" title="rpm" width="58" height="46" class="alignnone size-full wp-image-983" /></a></p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/&amp;title=netcat+ist+nicht+gleich+netcat" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/&amp;title=netcat+ist+nicht+gleich+netcat" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/&amp;t=netcat+ist+nicht+gleich+netcat" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=netcat+ist+nicht+gleich+netcat&amp;body=Link: http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Wie%20ich%20soeben%20feststellen%20musste%20ist%20netcat%20nicht%20unbedingt%20gleich%20netcat.%20So%20unterscheidet%20man%20zwischen%20GNU%20Netcat%20und%20OpenBSD%20Netcat" rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/&amp;title=netcat+ist+nicht+gleich+netcat" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;netcat+ist+nicht+gleich+netcat&quot;+-+from+http://tinyurl.com/3xraapf" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/&amp;title=netcat+ist+nicht+gleich+netcat&amp;summary=Wie%20ich%20soeben%20feststellen%20musste%20ist%20netcat%20nicht%20unbedingt%20gleich%20netcat.%20So%20unterscheidet%20man%20zwischen%20GNU%20Netcat%20und%20OpenBSD%20Netcat&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=netcat+ist+nicht+gleich+netcat+-+http://tinyurl.com/3xraapf&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>alea iacta est</title><link>http://blog.encodingit.ch/2010/08/alea-iacta-est/</link> <comments>http://blog.encodingit.ch/2010/08/alea-iacta-est/#comments</comments> <pubDate>Mon, 16 Aug 2010 06:36:09 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Programmieren]]></category> <category><![CDATA[Wettbewerb]]></category> <category><![CDATA[Linux Magazin]]></category> <category><![CDATA[Planet]]></category> <category><![CDATA[Ubuntu]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=966</guid> <description><![CDATA[Auch dieses Jahr wieder macht das Linux-Magazin einen Programmierwettbewerb. Diesmal ist ein binärer Spieler gefordert, welcher sich in einem Würfelduell mit anderen Mitstreitern messen kann.]]></description> <content:encoded><![CDATA[<p>Auch dieses Jahr wieder macht das <a href="http://www.linux-magazin.de/">Linux-Magazin</a> einen <a href="http://www.linux-magazin.de/Heft-Abo/Ausgaben/2010/09/Reiz-des-Mitmachens">Programmierwettbewerb</a>. Diesmal ist ein binärer Spieler gefordert, welcher sich in einem Würfelduell mit anderen Mitstreitern messen kann.</p><p>Die Vorgaben dabei sind ganz einfach; der Bot muss schlussendlich mit einem Make-File gestartet werden können und auf einem Ubuntu 10.04 Rechner laufen. Insofern kann die Programmiersprache also fast frei gewählt werden. Der Spielablauf wird dabei vom Server wettbewerb.linux-magazin.de über ein für menschen-lesbares TCP-Protokoll gesteuert.</p><p>Das ganze Spiel an sich ist relativ einfach gehalten. Ein Bot kann solange Würfeln, wie er keine 6 wirft oder das Spiel nicht speichert. Alle Punkte werden dabei immer zusammengezählt.<br /> Sobald jedoch eine 6 geworfen wird, so werden alle Punkte bis zum letzten Save wieder abgezogen, und der Spielzug ist beendet.<br /> Es gilt also, seinem Bot soviel Intelligenz einzuhauchen, damit dieser das optimale Mittelmass zwischen &#8220;Roll&#8221; (würfeln) und &#8220;Save&#8221; (speichern) findet.</p><p>Meinen Bot habe ich in Bash-Script begonnen und bin bislang damit ganz gut gefahren, da es sich über ein virtuelles Device ohne viel Programmieraufwand problemlos via TCP mit einem beliebigen Server kommunizieren lässt:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;alea iacta est&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tcp<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$server</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$port</span></pre></td></tr></table></div><p>Wer es noch einfacher will, und sich überhaupt nicht um jegliche Kommunikation zwischen Server und Bot bemühen will, der kann sein Script via Netcat starten und alle Kommandos über die Standard-Ein- und Ausgabe verwalten:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">nc <span style="color: #660033;">-e</span> bot.sh wettbewerb.linux-magazin.de <span style="color: #000000;">3333</span></pre></td></tr></table></div><p>Auch wer auf etwas komplexeres Zurückgreifen will, der findet auf der <a href="http://wettbewerb.linux-magazin.de/index.php/Hauptseite">offiziellen Webseite</a> bereits Beispiele in <acronym title="Pre-Hypertext Processing">PHP</acronym> und Ruby, welche man nur noch mit Intelligenz füllen muss.</p><p>Ein weiteres sehr gutes <acronym title="Pre-Hypertext Processing">PHP</acronym>-Beispiel gibt es auch auf <a href="http://blog.oncode.info/2010/08/10/ein-programmierwettbewerb-vom-linux-magazin/">blog.oncode.info</a>, dank welcher Seite ich überhaupt auf den Wettbewerb aufmerksam geworden bin.</p><p>Noch bis zum 12. September ist das Spiel für jedermann und jedefrau geöffnet! Mögen die Würfel entscheiden <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/08/alea-iacta-est/&amp;title=alea+iacta+est" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/08/alea-iacta-est/&amp;title=alea+iacta+est" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/08/alea-iacta-est/&amp;t=alea+iacta+est" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=alea+iacta+est&amp;body=Link: http://blog.encodingit.ch/2010/08/alea-iacta-est/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Auch%20dieses%20Jahr%20wieder%20macht%20das%20Linux-Magazin%20einen%20Programmierwettbewerb.%20Diesmal%20ist%20ein%20bin%C3%A4rer%20Spieler%20gefordert%2C%20welcher%20sich%20in%20einem%20W%C3%BCrfelduell%20mit%20anderen%20Mitstreitern%20messen%20kann." rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/08/alea-iacta-est/&amp;title=alea+iacta+est" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;alea+iacta+est&quot;+-+from+http://tinyurl.com/26wubw9" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/08/alea-iacta-est/&amp;title=alea+iacta+est&amp;summary=Auch%20dieses%20Jahr%20wieder%20macht%20das%20Linux-Magazin%20einen%20Programmierwettbewerb.%20Diesmal%20ist%20ein%20bin%C3%A4rer%20Spieler%20gefordert%2C%20welcher%20sich%20in%20einem%20W%C3%BCrfelduell%20mit%20anderen%20Mitstreitern%20messen%20kann.&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/08/alea-iacta-est/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=alea+iacta+est+-+http://tinyurl.com/26wubw9&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/08/alea-iacta-est/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>OpenVZ unter Debian</title><link>http://blog.encodingit.ch/2010/07/openvz-unter-debian/</link> <comments>http://blog.encodingit.ch/2010/07/openvz-unter-debian/#comments</comments> <pubDate>Tue, 06 Jul 2010 08:20:17 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Server]]></category> <category><![CDATA[OpenVZ]]></category> <category><![CDATA[Planet]]></category> <category><![CDATA[Virtualisierung]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=945</guid> <description><![CDATA[OpenVZ ist eine Virtualisierungstechnik für Linux. Damit lassen sich mehrere so genannte Virtual Private Server einrichten, die alle den Kernel und die Hardware des Host-Systems nutzen.]]></description> <content:encoded><![CDATA[<p>Neben verbreiteten Virtualisierungslösungen wie ESX, Xen und KVM existiert noch eine weitere, weniger verbreitete Methode:</p><blockquote><p>OpenVZ ist eine Virtualisierungstechnik für Linux. Damit lassen sich mehrere so genannte Virtual Private Server einrichten, die alle den Kernel und die Hardware des Host-Systems nutzen. Das Konzept ähnelt also anderen Techniken wie FreeBSD Jails und Solaris Zones. Auch als Gastsystem unterstützt OpenVZ ausschließlich Linux. Durch eine detaillierte Ressourcenaufteilung soll es möglich sein, sehr viele virtuelle Maschinen parallel auf einem physischen Computer zu betreiben, die alle streng voneinander isoliert sind. [<a href="http://www.golem.de/specials/openvz/">golem.de</a>]</p></blockquote><p>Installieren kann man OpenVZ auf viele Linux basierten Betriebssysteme direkt aus den Paketquellen; im folgenden habe ich als Beispiel ein Debian (32bit) auf meinem DL380 G3 verwendet.</p><p>Zuerst müssen die passenden Kernel und Pakete installiert werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> linux-image-openvz-<span style="color: #000000;">686</span> vzctl vzquota cstream</pre></td></tr></table></div><p>Leider ist das Tool vzdump nicht mehr in den Paketquellen enthalten, ist aber essentiell um eine virtuelle Maschine im laufenden Betrieb zu sichern:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.openvz.org<span style="color: #000000; font-weight: bold;">/</span>contrib<span style="color: #000000; font-weight: bold;">/</span>utils<span style="color: #000000; font-weight: bold;">/</span>vzdump<span style="color: #000000; font-weight: bold;">/</span>vzdump_1.2-<span style="color: #000000;">4</span>_all.deb
<span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> vzdump_1.2-<span style="color: #000000;">4</span>_all.deb</pre></td></tr></table></div><p>Danach müssen in der Datei <em>/etc/sysctl.conf</em> folgende Punkte ergänzt werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">net.ipv4.conf.default.proxy_arp = <span style="color: #000000;">0</span>
net.ipv4.conf.default.forwarding=<span style="color: #000000;">1</span>
kernel.sysrq = <span style="color: #000000;">1</span>
net.ipv4.conf.default.send_redirects = <span style="color: #000000;">1</span>
net.ipv4.conf.eth0.proxy_arp=<span style="color: #000000;">1</span></pre></td></tr></table></div><p>Nach dieser Anpassung darf nicht vergessen worden, die Konfiguration neu einzulesen:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">sysctl <span style="color: #660033;">-p</span></pre></td></tr></table></div><p>Nun muss der Server neugestartet werden, damit der OpenVZ-Kernel auch verwendet wird.</p><p>Nun ist OpenVZ soweit eingerichtet und die ersten &#8220;virtuellen&#8221; Maschinen können eingerichtet werden.<br /> Hier zeigt sich aber auch schon die erste Schwäche von dieser Virtualisierungslösung, denn entgegen anderen Methoden lassen sich mit OpenVZ nur genau das Betriebssystem mit dem Kernel für Guests verwenden, welcher auch der Host benutzt.</p><p>Nun da alles eingerichtet ist, können die ersten Templates heruntergeladen werden.<br /> Dazu müssen zuerst die Paketquellen angepasst werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;deb http://download.openvz.org/debian-systs lenny openvz&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list</pre></td></tr></table></div><p>Das der neue Eintrag problemlos funktioniert, muss noch der passende Schlüssel nachgeladen werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.openvz.org<span style="color: #000000; font-weight: bold;">/</span>debian-systs<span style="color: #000000; font-weight: bold;">/</span>dso_archiv_signing_key.asc <span style="color: #660033;">-O-</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">apt-key</span> add -
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> update</pre></td></tr></table></div><p>Nun sollten auch die passenden Templates in den Paketquellen gelistet werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-cache</span> search openvz <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> vzctl</pre></td></tr></table></div><p>Damit ein Guest mit diesem Template eingerichtet werden kann, muss er vorher natürlich noch heruntergeladen und installiert werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> vzctl-ostmpl-debian-<span style="color: #000000;">4.0</span>-i386-minimal vzctl-ostmpl-debian-<span style="color: #000000;">5.0</span>-i386-minimal</pre></td></tr></table></div><p>Nun kann auch schon mit dem Einrichten des ersten Guests begonnen werden.</p><p>Die dazu zur Verfügung stehenden Templates sind unter <em>/var/lib/vz/template/cache/</em> gelistet.<br /> Hier zeigt sich nun ein Vorteil von OpenVZ gegenüber den alternativen Virtualisierungslösungen. Das einrichten eines neuen Guest dauert hier gerade mal ein paar Sekunden, während bei ESX oder Xen normalerweise stets die gesamte Installation durchlaufen werden muss. Das eintippen eines einfachen Befehls reicht schon aus:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzctl create <span style="color: #000000;">1</span> <span style="color: #660033;">--ostemplate</span> debian-<span style="color: #000000;">5.0</span>-i386-minimal <span style="color: #660033;">--config</span> vps.basic</pre></td></tr></table></div><p>Erhält man danach eine Ausgabe, wie die folgende, so war die Aktion erfolgreich:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">Creating VE private area <span style="color: #7a0874; font-weight: bold;">&#40;</span>debian-<span style="color: #000000;">5.0</span>-i386-minimal<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Performing postcreate actions
VE private area was created</pre></td></tr></table></div><p>Nun hat man die Möglichkeit direkt Einstellungen für einen Guest vorzunehmen:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Beim Booten aufstarten</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--onboot</span> <span style="color: #c20cb9; font-weight: bold;">yes</span> <span style="color: #660033;">--save</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Hostname setzen</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--hostname</span> tux1.linux.ch <span style="color: #660033;">--save</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#IP Adresse setzen</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--ipadd</span> 192.168.0.1 <span style="color: #660033;">--save</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#DNS Server setzen</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--nameserver</span> 145.253.2.75 <span style="color: #660033;">--nameserver</span> 213.191.92.86 <span style="color: #660033;">--save</span></pre></td></tr></table></div><p>Alle nun gemachten Einstellungen werden in der Datei <em>/etc/vz/conf/1.conf</em> gespeichert.</p><p>Nun kann der Guest das erste mal gestartet und gleichzeitig auch noch das Rootpasswort angepasst werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzctl start <span style="color: #000000;">1</span>
vzctl <span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #000000;">1</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span></pre></td></tr></table></div><p>Will man den Guest direkt auf der Kommandozeile ansprechen, so kann dies entweder per <acronym title="Secure Shell">SSH</acronym> oder direkt über den Host passieren. Dazu kann folgendes Kommando verwendet werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzctl enter <span style="color: #000000;">1</span></pre></td></tr></table></div><p>Eine List mit allen virtuellen Maschinen erhält man mit dem Befehl <em>vzlist</em>:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzlist <span style="color: #660033;">-a</span></pre></td></tr></table></div><p>Weitere Informationen bekommt man durch die Manpages:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">man</span> vzctl</pre></td></tr></table></div><p>oder dem offiziellen <a href="http://wiki.openvz.org/Main_Page">Wiki</a></p><p>Was ich bisher noch nicht finden konnte ist eine Möglichkeit mit <em>vzctl set 1 &#8230;</em> den Guest zu einer dynamischen <acronym title="Internet Protocol">IP</acronym> Adresse zu zwingen.</p><p>Insgesamt ist es eine gute Möglichkeit um schnell und unkompliziert zu virtualisieren, jedoch wer viele Ansprüche hat und nicht immer das selbe Betriebssystem / die selbe Distribution verwendet, wird nie seinen Spass an OpenVZ haben.</p><p>Natürlich lässt sich alles problemlos auch auf andere Distributionen und Architekturen portieren, wobei die Namen, besonders für die Templates, angepasst werden müssen.</p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/07/openvz-unter-debian/&amp;title=OpenVZ+unter+Debian" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/07/openvz-unter-debian/&amp;title=OpenVZ+unter+Debian" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/07/openvz-unter-debian/&amp;t=OpenVZ+unter+Debian" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=OpenVZ+unter+Debian&amp;body=Link: http://blog.encodingit.ch/2010/07/openvz-unter-debian/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A OpenVZ%20ist%20eine%20Virtualisierungstechnik%20f%C3%BCr%20Linux.%20Damit%20lassen%20sich%20mehrere%20so%20genannte%20Virtual%20Private%20Server%20einrichten%2C%20die%20alle%20den%20Kernel%20und%20die%20Hardware%20des%20Host-Systems%20nutzen." rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/07/openvz-unter-debian/&amp;title=OpenVZ+unter+Debian" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;OpenVZ+unter+Debian&quot;+-+from+http://tinyurl.com/388xylj" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/07/openvz-unter-debian/&amp;title=OpenVZ+unter+Debian&amp;summary=OpenVZ%20ist%20eine%20Virtualisierungstechnik%20f%C3%BCr%20Linux.%20Damit%20lassen%20sich%20mehrere%20so%20genannte%20Virtual%20Private%20Server%20einrichten%2C%20die%20alle%20den%20Kernel%20und%20die%20Hardware%20des%20Host-Systems%20nutzen.&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/07/openvz-unter-debian/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=OpenVZ+unter+Debian+-+http://tinyurl.com/388xylj&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/07/openvz-unter-debian/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Junior Level Linux Professional</title><link>http://blog.encodingit.ch/2010/06/junior-level-linux-professional/</link> <comments>http://blog.encodingit.ch/2010/06/junior-level-linux-professional/#comments</comments> <pubDate>Thu, 24 Jun 2010 07:30:56 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Ausbildung]]></category> <category><![CDATA[LPIC]]></category> <category><![CDATA[Linux]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=923</guid> <description><![CDATA[Vor einer Woche habe ich an der Zertifikatsprüfung für LPI 102 teilgenommen und seid heute weiss ich, dass ich mit 620 von 800 Punkten bestanden habe :)]]></description> <content:encoded><![CDATA[<p>Vor einer Woche habe ich an der Zertifikatsprüfung für LPI 102 teilgenommen und seid heute weiss ich, dass ich mit 620 von 800 Punkten bestanden habe <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">Erreichte Punkte: 620
Erforderliche Punktzahl: 500
Status: Pass</pre></td></tr></table></div><p>Diese Prüfung habe ich, im Vergleich zu LPI 101, als viel einfacher empfunden.<br /> In 102 geht es Hauptsächlich um Shell-Scripting, Cron und X11, wobei das Hauptgewicht in meiner Prüfung klar auf Scripting lag:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">80% Shells, Scripting and Data Management
80% User Interfaces and Desktops
50% Administrative Tasks
80% Essential System Services
78% Networking Fundamentals
66% Security</pre></td></tr></table></div><p>Vorbereitet habe ich mich neben dem offiziellen Script auch noch mit dem Buch<a href="http://www.galileocomputing.de/2181?GPP=oplinux3"> LPIC-1</a> von Harald Maassen aus dem Galileo Computing Verlag.<br /> Für LPIC 101 habe ich zwar noch ein anderes Buch verwendet, aber wenn ich heute einen Vergleich machen und eines der beiden Bücher empfehlen müsste, so würde ich mich klar für LPIC-1 entscheiden, da es in meinen Augen den Stoff besser abdeckt und realistischere Testfragen vorweisen kann.<br /> Die Testfragen waren sogar teils so realistisch, das sie mit exakt dem Wortlaut an der Zertifizierungsprüfung vorkamen <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Mit bestandener LPIC-1 Zertifizierung konnte ich auch gleich das Novell CLA <a href="http://practicum.novell.com/LPI2CLAForm.php" target="_blank">beantragen</a>, da Novell vor etwa einem Jahr gemerkt hat, dass sich die Prüfungsinhalte von CLA mit denen von LPIC-1 überschneiden, und seither jeder mit bestandenem LPIC-1 das Novell CLA geschenkt bekommt.</p><p>Nun bleibt nicht mehr viel übrig, als auf meine Zertifikate zu warten und dann auf zu LPIC-2. Und natürlich auch <a href="http://blog.root1024.ch/betriebssystem/linux/zertifizierung-junior-level-linux-professional-lpic-1-bestanden/" target="_self">meinem Mitstreiter</a> zu gratulieren <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/06/junior-level-linux-professional/&amp;title=Junior+Level+Linux+Professional" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/06/junior-level-linux-professional/&amp;title=Junior+Level+Linux+Professional" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/06/junior-level-linux-professional/&amp;t=Junior+Level+Linux+Professional" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Junior+Level+Linux+Professional&amp;body=Link: http://blog.encodingit.ch/2010/06/junior-level-linux-professional/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Vor%20einer%20Woche%20habe%20ich%20an%20der%20Zertifikatspr%C3%BCfung%20f%C3%BCr%20LPI%20102%20teilgenommen%20und%20seid%20heute%20weiss%20ich%2C%20dass%20ich%20mit%20620%20von%20800%20Punkten%20bestanden%20habe%20%3A%29" rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/06/junior-level-linux-professional/&amp;title=Junior+Level+Linux+Professional" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;Junior+Level+Linux+Professional&quot;+-+from+http://tinyurl.com/24zlmtc" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/06/junior-level-linux-professional/&amp;title=Junior+Level+Linux+Professional&amp;summary=Vor%20einer%20Woche%20habe%20ich%20an%20der%20Zertifikatspr%C3%BCfung%20f%C3%BCr%20LPI%20102%20teilgenommen%20und%20seid%20heute%20weiss%20ich%2C%20dass%20ich%20mit%20620%20von%20800%20Punkten%20bestanden%20habe%20%3A%29&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/06/junior-level-linux-professional/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=Junior+Level+Linux+Professional+-+http://tinyurl.com/24zlmtc&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/06/junior-level-linux-professional/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Happy Birthday!!</title><link>http://blog.encodingit.ch/2010/06/happy-birthday/</link> <comments>http://blog.encodingit.ch/2010/06/happy-birthday/#comments</comments> <pubDate>Fri, 18 Jun 2010 22:54:42 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Allgemein]]></category> <category><![CDATA[Bloging]]></category> <category><![CDATA[Planet]]></category> <category><![CDATA[WWW]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=915</guid> <description><![CDATA[Dieses Blog habe ich vor zwei Jahren gegründet, um über tägliche Probleme und Situationen aus meine täglichen Leben als Informatiker zu berichten. Zu Beginn waren meine Beiträge noch hauptsächlich über Windows und haben sich dann immer mehr und mehr zu den Themen Linux und OpenSource entwickelt. Und besonders seid ich auch auf der Arbeit dem Linux / Unix-Team unterstellt bin, werden Windows-Probleme immer rarer, was ich aber nicht als besonders schlimm befinde]]></description> <content:encoded><![CDATA[<p>Ja es ist wieder soweit &#8211; ein weiteres Jahr ist vorbei. Bits, Bytes and my 5 cents wird schon ganze 2 Jahre alt!!<br /> In der Zwischenzeit und nach den 2 Jahren haben sich nicht nur viele Artikel eingefunden, es kamen auch immer mehr Leser und dadurch auch die eine oder andere interessante Diskussionen dazu <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><img class="alignnone size-full wp-image-916" title="statistik" src="http://blog.encodingit.ch/wp-content/uploads/2010/06/statistik.png" alt="" width="522" height="237" /></p><p>Dieses Blog habe ich vor zwei Jahren gegründet, um über tägliche Probleme und Situationen aus meine täglichen Leben als Informatiker zu berichten. Zu Beginn waren meine Beiträge noch hauptsächlich über Windows und haben sich dann immer mehr und mehr zu den Themen Linux und OpenSource entwickelt. Und besonders seid ich auch auf der Arbeit dem Linux / Unix-Team unterstellt bin, werden Windows-Probleme immer rarer, was ich aber nicht als besonders schlimm befinde <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><img class="alignnone size-full wp-image-920" title="ubuntu_tux" src="http://blog.encodingit.ch/wp-content/uploads/2010/06/ubuntu_tux.jpg" alt="" width="240" height="240" /></p><p>Nun bleibt mir nicht mehr viel übrig als euch für eure Treue und Unterstützung zu danken und mich auf viele weitere erfolgreiche Jahre mit euch zu freuen!!</p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/06/happy-birthday/&amp;title=Happy+Birthday%21%21" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/06/happy-birthday/&amp;title=Happy+Birthday%21%21" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/06/happy-birthday/&amp;t=Happy+Birthday%21%21" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Happy+Birthday%21%21&amp;body=Link: http://blog.encodingit.ch/2010/06/happy-birthday/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Dieses%20Blog%20habe%20ich%20vor%20zwei%20Jahren%20gegr%C3%BCndet%2C%20um%20%C3%BCber%20t%C3%A4gliche%20Probleme%20und%20Situationen%20aus%20meine%20t%C3%A4glichen%20Leben%20als%20Informatiker%20zu%20berichten.%20Zu%20Beginn%20waren%20meine%20Beitr%C3%A4ge%20noch%20haupts%C3%A4chlich%20%C3%BCber%20Windows%20und%20haben%20sich%20dann%20immer%20mehr%20und%20mehr%20zu%20den%20Themen%20Linux%20und%20OpenSource%20entwickelt.%20Und%20besonders%20seid%20ich%20auch%20auf%20der%20Arbeit%20dem%20Linux%20%2F%20Unix-Team%20unterstellt%20bin%2C%20werden%20Windows-Probleme%20immer%20rarer%2C%20was%20ich%20aber%20nicht%20als%20besonders%20schlimm%20befinde" rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/06/happy-birthday/&amp;title=Happy+Birthday%21%21" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;Happy+Birthday%21%21&quot;+-+from+http://tinyurl.com/379krph" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/06/happy-birthday/&amp;title=Happy+Birthday%21%21&amp;summary=Dieses%20Blog%20habe%20ich%20vor%20zwei%20Jahren%20gegr%C3%BCndet%2C%20um%20%C3%BCber%20t%C3%A4gliche%20Probleme%20und%20Situationen%20aus%20meine%20t%C3%A4glichen%20Leben%20als%20Informatiker%20zu%20berichten.%20Zu%20Beginn%20waren%20meine%20Beitr%C3%A4ge%20noch%20haupts%C3%A4chlich%20%C3%BCber%20Windows%20und%20haben%20sich%20dann%20immer%20mehr%20und%20mehr%20zu%20den%20Themen%20Linux%20und%20OpenSource%20entwickelt.%20Und%20besonders%20seid%20ich%20auch%20auf%20der%20Arbeit%20dem%20Linux%20%2F%20Unix-Team%20unterstellt%20bin%2C%20werden%20Windows-Probleme%20immer%20rarer%2C%20was%20ich%20aber%20nicht%20als%20besonders%20schlimm%20befinde&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/06/happy-birthday/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=Happy+Birthday%21%21+-+http://tinyurl.com/379krph&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/06/happy-birthday/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Welches ist deine Distribution?</title><link>http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/</link> <comments>http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/#comments</comments> <pubDate>Mon, 07 Jun 2010 18:10:41 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Planet]]></category> <category><![CDATA[Ubuntu]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=910</guid> <description><![CDATA[Es gibt ja mittlerweile unzählige verschiedene Linux-Distributionen und jeden Tag werden es wieder ein paar mehr.
Ich selbst habe mich im privaten Umfeld für den Desktop Ubuntu verschrieben, da Updates immer sehr schnell verteilt werden und die Repositories immer sehr aktuell sind.]]></description> <content:encoded><![CDATA[<p>Es gibt ja mittlerweile unzählige verschiedene Linux-Distributionen und jeden Tag werden es wieder ein paar mehr.<br /> Ich selbst habe mich im privaten Umfeld für den Desktop Ubuntu verschrieben, da Updates immer sehr schnell verteilt werden und die Repositories immer sehr aktuell sind.<br /> Für Server schwöre ich mittlerweile auf Debian, selten auch Ubuntu Server. Die Repositories von Debian sind zwar nicht immer ganz so aktuell wie die von Ubuntu, jedoch ist das auf einem Server ja überhaupt kein Problem.<br /> Auf der Arbeit benutze ich schon seit beginn Fedora, da all unsere Workstations auf Red Hat basieren. Und für alle RPM-Pakete eine Virtuelle Maschine zu starten, war ich zu faul <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br /> Und auf meinem Netbook lief Easy Peasy, aktuell teste ich aber Meego auf Herz und Niere.</p><p>Nun das ist so meine Geschichte. <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Und nun zu euch!<br /> Folgend kannst du die Distributionen auswählen, die du regelmässig verwendest. Interessant wäre auch noch, wieso ausgerechnet diese?</p><p><img src="http://blog.encodingit.ch/wp-content/uploads/2010/06/Bildschirmfoto.png" alt="" title="Bildschirmfoto" width="426" height="391" class="alignnone size-full wp-image-941" /></p><p>Sollte ich eine vergessen habe, sorry <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/&amp;title=Welches+ist+deine+Distribution%3F" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/&amp;title=Welches+ist+deine+Distribution%3F" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/&amp;t=Welches+ist+deine+Distribution%3F" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Welches+ist+deine+Distribution%3F&amp;body=Link: http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Es%20gibt%20ja%20mittlerweile%20unz%C3%A4hlige%20verschiedene%20Linux-Distributionen%20und%20jeden%20Tag%20werden%20es%20wieder%20ein%20paar%20mehr.%20%0D%0AIch%20selbst%20habe%20mich%20im%20privaten%20Umfeld%20f%C3%BCr%20den%20Desktop%20Ubuntu%20verschrieben%2C%20da%20Updates%20immer%20sehr%20schnell%20verteilt%20werden%20und%20die%20Repositories%20immer%20sehr%20aktuell%20sind." rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/&amp;title=Welches+ist+deine+Distribution%3F" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;Welches+ist+deine+Distribution%3F&quot;+-+from+http://tinyurl.com/2uye69e" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/&amp;title=Welches+ist+deine+Distribution%3F&amp;summary=Es%20gibt%20ja%20mittlerweile%20unz%C3%A4hlige%20verschiedene%20Linux-Distributionen%20und%20jeden%20Tag%20werden%20es%20wieder%20ein%20paar%20mehr.%20%0D%0AIch%20selbst%20habe%20mich%20im%20privaten%20Umfeld%20f%C3%BCr%20den%20Desktop%20Ubuntu%20verschrieben%2C%20da%20Updates%20immer%20sehr%20schnell%20verteilt%20werden%20und%20die%20Repositories%20immer%20sehr%20aktuell%20sind.&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=Welches+ist+deine+Distribution%3F+-+http://tinyurl.com/2uye69e&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/06/welches-ist-deine-distribution/feed/</wfw:commentRss> <slash:comments>41</slash:comments> </item> <item><title>Paketieren unter Linux</title><link>http://blog.encodingit.ch/2010/06/paketieren-unter-linux/</link> <comments>http://blog.encodingit.ch/2010/06/paketieren-unter-linux/#comments</comments> <pubDate>Fri, 04 Jun 2010 07:08:05 +0000</pubDate> <dc:creator>Patrick</dc:creator> <category><![CDATA[Fedora]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[RPM]]></category><guid isPermaLink="false">http://blog.encodingit.ch/?p=893</guid> <description><![CDATA[Vorgestern und heute konnte ich mein erstes rpm-Paket erstellen. Da ich so was noch nie gemacht hatte, war es für mich eine gewisse Herausforderung.
Das Ergebnis sollte ein RPM-Paket sein, welches beim Installieren eine Ordnerstruktur anlegt, Files kopiert und danach ein Script ausführt. Beim Deinstallieren soll zuerst ein Script ausgeführt werden und dann die Kopierten Files wieder gelöscht werden.Für jemand, der das schon ein paar mal gemacht hat, mag das einfach klingen, ich weiss - für mich war es aber alles andere als das.]]></description> <content:encoded><![CDATA[<p>Vorgestern und heute konnte ich mein erstes rpm-Paket erstellen. Da ich so was noch nie gemacht hatte, war es für mich eine gewisse Herausforderung.<br /> Das Ergebnis sollte ein RPM-Paket sein, welches beim Installieren eine Ordnerstruktur anlegt, Files kopiert und danach ein Script ausführt. Beim Deinstallieren soll zuerst ein Script ausgeführt werden und dann die Kopierten Files wieder gelöscht werden.</p><p>Für jemand, der das schon ein paar mal gemacht hat, mag das einfach klingen, ich weiss &#8211; für mich war es aber alles andere als das <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Jedoch, da ich auch schon mal für Windows paketiert habe, kann ich auch gleich einen Vergleich anstellen: Es ist viel unkomplizierter und einfacher unter Linux, wenn das SPEC-File mal steht&#8230; wenn <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Doch nun zum Vorgehen!<br /> Der Kern des Paketieren stellt das Programm rpmbuild und eine selbst erstellte SPEC-Datei dar.<br /> Die SPEC-Datei kann man dabei wie eine Art Anleitung ansehen, wo aufgeschrieben wird, wann was getan werden soll. Anhand dieser Anleitung erstellt rpmbuild dann ein Paket.</p><p>Die allgemeine Funktionsweise habe ich mir aus dem Internet angeeignet. Besonders geholfen dabei hat mir <a href="http://www.tc-world.de/RPM-build-HOWTO-german.htm">diese</a> Anleitung.</p><p>Das Problem aber, all diese Anleitungen basieren darauf, dass der Source aus dem Internet nachgeladen wird. Mein Paket musste aber alle Dateien lokal zur Verfügung haben.</p><p>Nun die erste Herausforderung: Wie mach ich das?<br /> Nach viel probieren und testen hatte ich endlich eine Lösung&#8230; Unter dem Punkt <strong>%files</strong> werden die Dateien so aufgelistet, wie sie danach beim Zielsystem kopiert werden:</p><div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">%</span>files
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>soe-rootadd
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>soe-updatepubkeys
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>prepost<span style="color: #000000; font-weight: bold;">/</span>install_post.sh
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>prepost<span style="color: #000000; font-weight: bold;">/</span>remove_post.sh
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>.sshsoe_id</pre></td></tr></table></div><p>Während dem Erstellen des Paketes mussten die Dateien aber im Ordner <strong>~/rpmbuild/BUILDROOT/Paketname/opt/itc/../</strong> liegen, damit es korrekt in das RPM integriert wird.</p><p>Die zweite Herausforderung war das Script: Unter <strong>%pre</strong>, wo ich auch alle Ordner erstellen liess, konnte ich das Script nicht starten, da zuerst <strong>%pre</strong> und danach erst <strong>%files</strong> abgearbeitet wird, wodurch das Script beim Starten noch gar nicht an seinem Platz ist.<br /> Also habe ich es kurzerhand unter <strong>%install</strong> abgelegt. Doch aus welchem Grund auch immer &#8211; da wurde es nie gestartet&#8230;<br /> Darauf habe ich ohne noch lange weiterzuprobieren, das Script unter <strong>%post</strong> abgelegt, welcher nach der Installation abgearbeitet wird.</p><p>Das die Dateien dann beim Deinstallieren wieder gelöscht werden, war ein kleines Problem. Einfach alles unter %preun eintragen und gut ist.</p><p>Mein SPEC-File sah am Schluss so aus:</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
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">...
<span style="color: #000000; font-weight: bold;">%</span>pre
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>ssh<span style="color: #000000; font-weight: bold;">/</span>pubkeys<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>prepost<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">%</span>post
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>install_post.sh
&nbsp;
<span style="color: #000000; font-weight: bold;">%</span>preun
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>remove_post.sh
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>soe-rootadd
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>soe-updatepubkeys
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>install_post.sh
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>remove_post.sh
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>.sshsoe_id
&nbsp;
<span style="color: #000000; font-weight: bold;">%</span>prep
<span style="color: #000000; font-weight: bold;">%</span>build
<span style="color: #000000; font-weight: bold;">%</span><span style="color: #c20cb9; font-weight: bold;">install</span>
<span style="color: #000000; font-weight: bold;">%</span>clean
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> <span style="color: #007800;">$RPM_BUILD_ROOT</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">%</span>files
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>soe-rootadd
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>soe-updatepubkeys
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>prepost<span style="color: #000000; font-weight: bold;">/</span>install_post.sh
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>prepost<span style="color: #000000; font-weight: bold;">/</span>remove_post.sh
<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>itc<span style="color: #000000; font-weight: bold;">/</span>.sshsoe_id</pre></td></tr></table></div><p>Beim erstellen des Paketes zeigt sich dann die Stärke von Linux. Auf dem 32Bit System, welches ich zur Erstellung verwendet habe, habe ich ohne Probleme mit dem Parameter &#8211;target x86_64 ein Paket für 64Bit Systeme erstellt.<br /> Das Begeistert mich deshalb so, denn unter Windows konnte ich auf einem 32Bit-Host auch nur ein Paket für dessen Architektur machen.<br /> Und da ich schon damit gerechnet hatte, für jede Architektur ein eigenes Hostsystem aufzusetzen, war ich umso erfreuter <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr"><ul class="socials"><li class="shr-delicious"> <a href="http://delicious.com/post?url=http://blog.encodingit.ch/2010/06/paketieren-unter-linux/&amp;title=Paketieren+unter+Linux" rel="" class="external" title="Empfehle diesen Artikel bei del.icio.us">Empfehle diesen Artikel bei del.icio.us</a></li><li class="shr-digg"> <a href="http://digg.com/submit?phase=2&amp;url=http://blog.encodingit.ch/2010/06/paketieren-unter-linux/&amp;title=Paketieren+unter+Linux" rel="" class="external" title="Digg this!">Digg this!</a></li><li class="shr-facebook"> <a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blog.encodingit.ch/2010/06/paketieren-unter-linux/&amp;t=Paketieren+unter+Linux" rel="" class="external" title="Empfehle diesen Artikel bei Facebook">Empfehle diesen Artikel bei Facebook</a></li><li class="shr-gmail"> <a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Paketieren+unter+Linux&amp;body=Link: http://blog.encodingit.ch/2010/06/paketieren-unter-linux/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Vorgestern%20und%20heute%20konnte%20ich%20mein%20erstes%20rpm-Paket%20erstellen.%20Da%20ich%20so%20was%20noch%20nie%20gemacht%20hatte%2C%20war%20es%20f%C3%BCr%20mich%20eine%20gewisse%20Herausforderung.%0D%0ADas%20Ergebnis%20sollte%20ein%20RPM-Paket%20sein%2C%20welches%20beim%20Installieren%20eine%20Ordnerstruktur%20anlegt%2C%20Files%20kopiert%20und%20danach%20ein%20Script%20ausf%C3%BChrt.%20Beim%20Deinstallieren%20soll%20zuerst%20ein%20Script%20ausgef%C3%BChrt%20werden%20und%20dann%20die%20Kopierten%20Files%20wieder%20gel%C3%B6scht%20werden.%0D%0A%0D%0AF%C3%BCr%20jemand%2C%20der%20das%20schon%20ein%20paar%20mal%20gemacht%20hat%2C%20mag%20das%20einfach%20klingen%2C%20ich%20weiss%20-%20f%C3%BCr%20mich%20war%20es%20aber%20alles%20andere%20als%20das." rel="" class="external" title="Email this via Gmail">Email this via Gmail</a></li><li class="shr-googlebookmarks"> <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://blog.encodingit.ch/2010/06/paketieren-unter-linux/&amp;title=Paketieren+unter+Linux" rel="" class="external" title="Füge hinzu zu Google Bookmarks">Füge hinzu zu Google Bookmarks</a></li><li class="shr-identica"> <a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;Paketieren+unter+Linux&quot;+-+from+http://tinyurl.com/3xfjwta" rel="" class="external" title="Sende dies zu Identica">Sende dies zu Identica</a></li><li class="shr-linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.encodingit.ch/2010/06/paketieren-unter-linux/&amp;title=Paketieren+unter+Linux&amp;summary=Vorgestern%20und%20heute%20konnte%20ich%20mein%20erstes%20rpm-Paket%20erstellen.%20Da%20ich%20so%20was%20noch%20nie%20gemacht%20hatte%2C%20war%20es%20f%C3%BCr%20mich%20eine%20gewisse%20Herausforderung.%0D%0ADas%20Ergebnis%20sollte%20ein%20RPM-Paket%20sein%2C%20welches%20beim%20Installieren%20eine%20Ordnerstruktur%20anlegt%2C%20Files%20kopiert%20und%20danach%20ein%20Script%20ausf%C3%BChrt.%20Beim%20Deinstallieren%20soll%20zuerst%20ein%20Script%20ausgef%C3%BChrt%20werden%20und%20dann%20die%20Kopierten%20Files%20wieder%20gel%C3%B6scht%20werden.%0D%0A%0D%0AF%C3%BCr%20jemand%2C%20der%20das%20schon%20ein%20paar%20mal%20gemacht%20hat%2C%20mag%20das%20einfach%20klingen%2C%20ich%20weiss%20-%20f%C3%BCr%20mich%20war%20es%20aber%20alles%20andere%20als%20das.&amp;source=Bits, Bytes and my 5 cents" rel="" class="external" title="Empfehle diesen Artikel bei LinkedIn">Empfehle diesen Artikel bei LinkedIn</a></li><li class="shr-technorati"> <a href="http://technorati.com/faves?add=http://blog.encodingit.ch/2010/06/paketieren-unter-linux/" rel="" class="external" title="Empfehle diesen Artikel bei Technorati">Empfehle diesen Artikel bei Technorati</a></li><li class="shr-twitter"> <a href="http://twitter.com/home?status=Paketieren+unter+Linux+-+http://tinyurl.com/3xfjwta&amp;source=shareaholic" rel="" class="external" title="Twittere diesen Artikel!">Twittere diesen Artikel!</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded> <wfw:commentRss>http://blog.encodingit.ch/2010/06/paketieren-unter-linux/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
<!-- Dynamic Page Served (once) in 2.069 seconds -->
