<?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>Simon Szustkowski &#187; IT</title>
	<atom:link href="http://blog.tatonka.info/category/it/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tatonka.info</link>
	<description>IT, Urban and Politics</description>
	<lastBuildDate>Tue, 31 Aug 2010 17:56:53 +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>Bubblesort mit BinÃ¤rsuche in C</title>
		<link>http://blog.tatonka.info/it/bubblesort-mit-binarsuche-in-c/</link>
		<comments>http://blog.tatonka.info/it/bubblesort-mit-binarsuche-in-c/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 16:51:50 +0000</pubDate>
		<dc:creator>TaTonka</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[binÃ¤rsuche]]></category>
		<category><![CDATA[bubblesort]]></category>
		<category><![CDATA[c]]></category>

		<guid isPermaLink="false">http://blog.tatonka.info/?p=838</guid>
		<description><![CDATA[Wie auch schon hier beschrieben mÃ¼ssen wir fÃ¼r die Un [...]]]></description>
			<content:encoded><![CDATA[<p>Wie auch schon <a href="http://blog.tatonka.info/it/insertionsort-und-mergesort-in-c/">hier</a> beschrieben mÃ¼ssen wir fÃ¼r die Uni regelmÃ¤ÃŸig Programmieraufgaben lÃ¶sen, um Algorithmen kennenzulernen.</p>
<p>Heute mÃ¶chte ich einen Algorithmus verÃ¶ffentlichen, der sowohl Bubble-Sort implementiert, als auch eine BinÃ¤rsuche durchfÃ¼hrt, um zu einer vorgegebenen Zeit die maximale Suchmenge bestimmt, bei der der Algorithmus weniger oder genau gleich viel Zeit benÃ¶tigt. </p>
<p><span id="more-838"></span></p>
<p>Ich hoffe, es hilft euch.<br />
<a href='http://blog.tatonka.info/wp-content/uploads/2010/06/sortierung.c'>Bubble-Sort</a><br />
<a href='http://blog.tatonka.info/wp-content/uploads/2010/06/binaersuche.c'>BinÃ¤rsuche</a></p>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tatonka.info/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tatonka.info/it/bubblesort-mit-binarsuche-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Insertionsort und Mergesort in C</title>
		<link>http://blog.tatonka.info/it/insertionsort-und-mergesort-in-c/</link>
		<comments>http://blog.tatonka.info/it/insertionsort-und-mergesort-in-c/#comments</comments>
		<pubDate>Mon, 31 May 2010 18:58:15 +0000</pubDate>
		<dc:creator>TaTonka</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[insertionsort]]></category>
		<category><![CDATA[mergesort]]></category>

		<guid isPermaLink="false">http://blog.tatonka.info/?p=832</guid>
		<description><![CDATA[Wir hatten vor einigen Wochen im Laufe des Programmierp [...]]]></description>
			<content:encoded><![CDATA[<p>Wir hatten vor einigen Wochen im Laufe des Programmierpraktikums fÃ¼r <em>Datenstrukturen, Algorithmen und Programmierung 2</em> die Aufgabe, in C ein Programm zu schreiben, was ein Array aufsteigend, absteigend oder zufÃ¤llig fÃ¼llt, und ihn dann wahlweise mit Insertionsort oder Mergesort sortiert.<br />
Da solche Aufgaben, auch in den Semestern unter mir, bestimmt nochmal drankommen werden, habe ich mich entschlossen, meinen Code hier online zu stellen, damit andere Studis, oder jemand, der programmieren lernen mÃ¶chte, ihn verwenden kann.<br />
Anders als bei den anderen Mediendateien hier lasse ich fÃ¼r den Quellcode das BY-Tag der CC-Lizenz weg, unter der Bedingung, dass ihr in den Kommentaren kurz Bescheid sagt, ob euch der Code geholfen hat <img src='http://blog.tatonka.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Den Quellcode gibt&#8217;s dann <a href='http://blog.tatonka.info/wp-content/uploads/2010/05/sortierung.c'>hier.</a> </p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.14';
var flattr_uid = '9301';
var flattr_url = 'http://blog.tatonka.info';
var flattr_lng = 'de_DE';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'Simon Szustkowski';
var flattr_dsc = 'IT, Urban and Politics';
</script>
<script src="https://api.flattr.com/js/0.5.0/load.js?mode=auto" type="text/javascript"></script> <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tatonka.info/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tatonka.info/it/insertionsort-und-mergesort-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suppenkochen</title>
		<link>http://blog.tatonka.info/allgemein/suppenkochen/</link>
		<comments>http://blog.tatonka.info/allgemein/suppenkochen/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 18:18:19 +0000</pubDate>
		<dc:creator>TaTonka</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[soup]]></category>
		<category><![CDATA[tumblelog]]></category>
		<category><![CDATA[twitterfeed]]></category>

		<guid isPermaLink="false">http://blog.tatonka.info/?p=746</guid>
		<description><![CDATA[Da mir mittlerweile Twitter als Tumblelog zu eingeschrÃ [...]]]></description>
			<content:encoded><![CDATA[<p>Da mir mittlerweile Twitter als Tumblelog zu eingeschrÃ¤nkt war, habe ich mich mal entschlossen, einen Account auf soup.io zu erÃ¶ffnen.<br />
(Tumblelogs sind Logs von coolen, interessanten, &#8220;clickworthy&#8221; Sachen, auf die man so beim Surfen stÃ¶ÃŸt).</p>
<p>Falls es euch also interessiert, kÃ¶nnt ihr <a href="http://tatonka.soup.io">tatonka.soup.io</a> in eure Feedreader oder Bookmarklisten aufnehmen.</p>
<p><span id="more-746"></span></p>
<p>Durch <a href="http://www.twitterfeed.com">Twitterfeed</a> sollte das ganze jetzt auch in halbstÃ¼ndlichen Intervallen auf Twitter gepostet werden. Falls euch das nervt, dann replied einfach an mich. Ich werd nochmal sehen, ob ich dafÃ¼r irgendein tolles Sidebar-Widget fÃ¼r WordPress finde.<br />
<strong>UPDATE</strong> Ich hab die Soup jetzt per RSS-Widget in meine Sidebar eingebunden. </p>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tatonka.info/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tatonka.info/allgemein/suppenkochen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XNA Gaming Night Dortmund 2010</title>
		<link>http://blog.tatonka.info/it/xna-gaming-night-dortmund-2010/</link>
		<comments>http://blog.tatonka.info/it/xna-gaming-night-dortmund-2010/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 15:01:22 +0000</pubDate>
		<dc:creator>TaTonka</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[dortmund]]></category>
		<category><![CDATA[pong]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[xna gaming night]]></category>

		<guid isPermaLink="false">http://blog.tatonka.info/?p=717</guid>
		<description><![CDATA[Was machen Geeks, wenn die Sonne scheint? Richtig, sich [...]]]></description>
			<content:encoded><![CDATA[<p>Was machen Geeks, wenn die Sonne scheint? Richtig, sich in der Uni verkriechen, und nÃ¤chtelang irgendwelche Spiele programmieren.</p>
<p>So auch gestern. Da war nÃ¤mlich die XNA Gaming Night. Eine Veranstaltung der Microsoft Student Partner, die interessierte Teilnehmer einen kurzen Einblick in die Spieleprogrammierung mit Hilfe von C# und dem XNA Framework bieten sollte.</p>
<p><span id="more-717"></span></p>
<p>Trotz einiger technischer Startschwierigkeiten bekamen wir dann einen nicht ganz zweistÃ¼ndigen Vortrag Ã¼ber die Grundlagen der 2D-Programmierung zu hÃ¶ren, bevor es dann los ging.</p>
<p><a href="http://blog.tatonka.info/wp-content/uploads/2010/03/78758016.jpg" rel="lightbox[717]"><img src="http://blog.tatonka.info/wp-content/uploads/2010/03/78758016-300x225.jpg" alt="" title="78758016" width="300" height="225" class="alignleft size-medium wp-image-718" /></a>Unser Ziel war, ein einfaches Spiel zu programmieren, mit dem wir auch fertig werden konnten. Die Wahl ist auf Pong gefallen. WÃ¤hrend die anderen Gruppen ebenfalls nette Spiele schrieben, die zum einen grafisch ansprechend waren, aber vÃ¶llig ohne Konzept, bzw. von der Programmierung zu komplex, kamen wir mit der Zeit gut zurecht. Lediglich ein anderes Spiel wurde bis zu unserer Abgabe einigermaÃŸen fertig, nÃ¤mlich FDP-Hero. Hierbei fielen verschiedenfarbige GeldbÃ¼ndel vom Himmel, und man musste auf dem XBox-Controller die richtige Farbe drÃ¼cken, damit die GeldbÃ¼ndel ins ParteisÃ¤ckel fielen, und man einen dummen Spruch von Guido aufs Auge gedrÃ¼ckt bekam.</p>
<p>Sonstige Spiele waren sowas Ã¤hnliches wie Canabalt, so etwas wie R-Type, nur dass man den Hindernissen ausweichen musste, ein Space-Invaders-Klon, und einiges anderes mehr, was sich aber noch in der Entwicklungsphase befand.</p>
<p><img alt="" src="http://img.skitch.com/20100326-p8xs3ihw7q988j7dyngqxe342i.jpg" title="Pong" class="alignright" width="355" height="227" />Bei der Entwicklung von unserem Spiel hat sich zunÃ¤chst das Problem ergeben, dass @<a href="http://twitter.com/rene_dev" rel="nofollow" target="_blank" title="View rene_dev's Twitter Profile">rene_dev</a> sein Windows nur in einer VM am Start hatte, und da erst die 3D-Beschleunigung nicht zum laufen kriegte. Ja, Pong ist 2D, aber da es auf .NET und DirectX basiert, muss merkwÃ¼rdigerweise auch eine 3D-Beschleunigung vorhanden sein. Da ich mittlerweile den Ã¼belsten Spaghetticode geschrieben hatte, haben wir das Projekt aufgesplittet. Mein Main Goal war: Fertig werden. RenÃ©s Main Goal war: Sauberen Code schreiben. Was sich irgendwie in sehr seltsamen Verhaltensmustern in der Ballphysik niederschlug. Nichtsdestotrotz war es sehr amÃ¼sant, mal wieder was richtiges zu coden, was sich nachher auch in einem echten Kompilat niederschlug, und nicht noch immer wieder interpretiert werden musste.<br />
Gegen 3 Uhr hatte ich dann auch die Punkteanzeige und den Sound implementiert. Anzumerken ist, dass nur die Sounddateien aus fremden Quellen stammen, alles andere haben wir eben from scratch entworfen. Gut, die Schriftart lag uns als TrueType Font vor, wir mussten sie dann noch in ein Spritefont konvertieren.</p>
<p>AbschlieÃŸend kann ich sagen, dass das programmieren mit XNA wirklich sehr einfach ist. Wir kamen mit kaum Vorkenntnissen in die Veranstaltung, und haben jetzt ein voll funktionsfÃ¤higes Spiel entwickelt. Das bringt schnelle Erfolgserlebnisse. Schade, dass es sowas nicht fÃ¼r den Mac gibt.</p>
<p>So, und zu guter letzt mÃ¶chte ich euch das Spiel auch nicht vorenthalten. Die Steuerung ist recht einfach, mit Q und A steuert ihr das linke Paddle, mit O und L das rechte. Mit Space startet ihr den Ball. PunktezÃ¤hler gehen bis unendlich, wobei die Grafikengine euch da schon zurechtweisen wird, wenn die angezeigte Zahl grÃ¶ÃŸer als die Canvas ist.<br />
<a href='http://blog.tatonka.info/wp-content/uploads/2010/03/Pong.zip'>Hier</a> kÃ¶nnt ihr euch dieses wahrhaft umwerfende Spiel downloaden. Braucht wahrscheinlich aktuellstes DirectX und .NET, lÃ¤uft aber auch noch auf XP.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.14';
var flattr_uid = '9301';
var flattr_url = 'http://blog.tatonka.info';
var flattr_lng = 'de_DE';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'Simon Szustkowski';
var flattr_dsc = 'IT, Urban and Politics';
</script>
<script src="https://api.flattr.com/js/0.5.0/load.js?mode=auto" type="text/javascript"></script> <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tatonka.info/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tatonka.info/it/xna-gaming-night-dortmund-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iFreeMem</title>
		<link>http://blog.tatonka.info/it/ifreemem/</link>
		<comments>http://blog.tatonka.info/it/ifreemem/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 00:49:14 +0000</pubDate>
		<dc:creator>TaTonka</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[arbeitsspeicher]]></category>
		<category><![CDATA[freigeben]]></category>
		<category><![CDATA[ifreemem]]></category>
		<category><![CDATA[RAM]]></category>

		<guid isPermaLink="false">http://blog.tatonka.info/?p=714</guid>
		<description><![CDATA[Jeder Nutzer von Apfelcomputern kennt das Problem. Man  [...]]]></description>
			<content:encoded><![CDATA[<p>Jeder Nutzer von Apfelcomputern kennt das Problem. Man ist grad mittendrin in irgendeinem Workflow, und das System stoppt auf einmal und beginnt zu beachballen. Weiterarbeiten ist erstmal nicht mÃ¶glich. Sowas nervt.</p>
<p>Hintergrund ist: Sobald Anwendungen gestartet werden, reservieren sie sich Arbeitsspeicher. Die Anwendung kann nun mit dem Arbeitsspeicher arbeiten (im Activity Monitor als &#8220;aktiv&#8221; geflaggt), oder ihn weiterhin beanspruchen (im Activity Monitor als &#8220;inaktiv&#8221; geflaggt). Sobald man nun die Anwendung beendet, wird der reservierte RAM nicht ad hoc freigegeben, sondern erst noch vom System als reserviert markiert, sodass die Anwendung bei einem Neustart schneller auf die benutzten Ressourcen zugreifen kann (flag auf &#8220;reserviert&#8221;). Der vierte Bereich (&#8220;frei&#8221;) ist wirklich unbenutzter RAM, den nach der letzten Garbage Collection noch nie benutzt wurde. </p>
<p><span id="more-714"></span></p>
<p>De jure ist der freie RAM also die Summe aus reserviert und frei, erst wenn dieser Bereich gegen 0 tendiert, beginnt das System zwingend zu swappen. In Wirklichkeit sieht das aber anders aus. Wenn neue Anwendungen Zugriff auf den RAM fordern, verteilt das System erst den freien RAM, der ja garantiert frei ist. Sobald der allerdings verbraucht wird, wird dem zwingenden swappen vorgebeugt, und das System prÃ¼ft den reservierten RAM, ob er denn wirklich noch benÃ¶tigt wird wird (paging). WÃ¤hrenddessen wird dann auch mal der Beachball ausgepackt, weil der RAM parallel abgegriffen wird, d.h. alle Speicherzellen kriegen simultan den Abfragebefehl, und es wird gegengerechnet. </p>
<p>Sobald klar ist, was freigegeben werden kann, wird der Beachball wieder eingepackt, und der neue freie RAM an die neuen Prozesse vergeben. </p>
<p>Soweit ja ganz sinnig. Aber wenn der User grad z.B. sich im dritten Weltkrieg mit den Pixeln in Photoshop befindet, ist eine Beachballpause nervig. Man wÃ¼nscht sich, die Garbage Collection kontrollierter ablaufen lassen zu kÃ¶nnen.</p>
<p><img alt="" src="http://img.skitch.com/20100322-taj3nn9t2r9qcgqp86nqhqj8bs.jpg" title="ifreemem" class="alignleft" width="249" height="407" />Hier kommt iFreeMem ins Spiel. Das Tool quartiert sich zunÃ¤chst in der MenÃ¼leiste ein, um dort mithilfe eines Kuchendiagramms die aktuelle RAM-Belegung anzuzeigen. In der leopardigen SchwarzweiÃŸdarstellung unterscheidet es dabei nur zwischen &#8220;frei&#8221; vs. &#8220;alles andere&#8221;, allerdings kann man auch den tigermÃ¤ÃŸigen Bonbonlook aktivieren, mit dem vier verschiedenfarbige verschiedengroÃŸe KuchenstÃ¼cke angezeigt werden.</p>
<p>Wenn man nun grad drauf und dran ist, Photoshop zu Ã¶ffnen, und aber gerade erst die gigantisch groÃŸe iTunes-Library geschlossen hat, sieht man, dass der freie RAM auf ein sehr schmales KuchenstÃ¼ck reduziert ist. Nun kann man den Prozess starten. Durch Klick auf den Kuchen Ã¶ffnet man ein MenÃ¼, in dem die 4 Speicherbereiche noch einmal detailliert dargestellt werden. Der Button &#8220;Optimize Memory&#8221; ist der wichtigste. DrÃ¼ckt man ihn, fÃ¤ngt das Programm an, mÃ¶glichst viel Speicher fÃ¼r sich selbst zu beanspruchen. Sobald das geschehen ist, gibt es den Bereich wieder frei. Komplett frei, nicht reserviert. Und, zack, hat man wieder viel mehr freien Speicher. </p>
<p>Im Prinzip ist das nur der Prozess &#8220;Neues Programm starten bis RAM voll, Garbage Collection abwarten, freuen&#8221; in kurzer Form, da sofort der komplette RAM belegt wird. Der Vorteil ist allerdings, dass man diesen Prozess nun triggern kann, und in einer Leiste angezeigt wird, wie weit der Prozess schon ist. AuÃŸerdem wird man nicht aus dem Workflow rausgeworfen, da man den Prozess eben fÃ¼r ne Zigaretten- oder Pinkelpause anwerfen kann.</p>
<p>Gerade bei Ã¤lteren Maschinen unter 2GB RAM, auf denen aber eine von den Leopardendistributionen schon lÃ¤uft, werden dieses Tool zu schÃ¤tzen wissen. Der allgemeine Nachteil ist allerdings, dass es Geld kostet. Leider. Eigentlich sollte Apple solch eine Funktion schon ab Werk in ihren Betriebssystemen mitliefern.</p>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tatonka.info/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tatonka.info/it/ifreemem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
