<?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>Reality.SYS</title>
	<atom:link href="http://www.brakmic.de/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brakmic.de</link>
	<description>is corrupted! Reboot Universe? (y/n)</description>
	<lastBuildDate>Wed, 14 Oct 2009 19:31:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Du bist Terrorist!</title>
		<link>http://www.brakmic.de/index.php/2009/10/14/du-bist-terrorist/</link>
		<comments>http://www.brakmic.de/index.php/2009/10/14/du-bist-terrorist/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 19:31:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conspiracy]]></category>
		<category><![CDATA[Must See]]></category>
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=404</guid>
		<description><![CDATA[
Du bist Terrorist (You are a Terrorist) english subtitles from alexanderlehmann on Vimeo.
]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="230" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4632310&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="230" src="http://vimeo.com/moogaloop.swf?clip_id=4632310&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/4632310">Du bist Terrorist (You are a Terrorist) english subtitles</a> from <a href="http://vimeo.com/user221974">alexanderlehmann</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/10/14/du-bist-terrorist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Armstrong on Software: Erlang &amp; SMP</title>
		<link>http://www.brakmic.de/index.php/2009/02/28/armstrong-on-software-erlang-smp/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/28/armstrong-on-software-erlang-smp/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 10:17:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[COP]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=395</guid>
		<description><![CDATA[
Nachdem der ganze Wahnsinn in Sachen immer-schnellere-CPUs-jedes-Jahr an physikalischen Grenzen scheiterte, werden neue (bzw. seit langem bekannte, aber nicht beachtete) Wege beschritten. Joe Armstrong hat in seinem Vortrag bei der Erlang Exchange 2008 über skalierbare Software, Concurrency und Fehlertoleranz gesprochen. Die Slides findet man hier.
]]></description>
			<content:encoded><![CDATA[<p><object width="443" height="329" data="http://video.google.com/googleplayer.swf?docid=-1363340548829250196&amp;hl=un&amp;fs=true" type="application/x-shockwave-flash"><param name="id" value="VideoPlayback" /><param name="src" value="http://video.google.com/googleplayer.swf?docid=-1363340548829250196&amp;hl=un&amp;fs=true" /></object></p>
<p>Nachdem der ganze Wahnsinn in Sachen immer-schnellere-CPUs-jedes-Jahr an physikalischen Grenzen scheiterte, werden neue (bzw. seit langem bekannte, aber nicht beachtete) Wege beschritten. Joe Armstrong hat in seinem Vortrag bei der Erlang Exchange 2008 über skalierbare Software, Concurrency und Fehlertoleranz gesprochen. Die Slides findet man <a href="http://skillsmatter.com/custom/presentations/keynote_joearmstrong.pdf" target="_blank">hier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/28/armstrong-on-software-erlang-smp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a transactional distributed data store with Erlang</title>
		<link>http://www.brakmic.de/index.php/2009/02/28/building-a-transactional-distributed-data-store-with-erlang/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/28/building-a-transactional-distributed-data-store-with-erlang/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 09:54:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[COP]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=388</guid>
		<description><![CDATA[
Bei der Erlang Exchange 2008 Konferenz wurde das vom Zuse Institut Berlin und onScale Solutions GmbH entwickelte data-store System vorgestellt. Im Vortrag kommen so wichtige Themen wie Distributed Hashtables (DHTs), transaction layer und schnelle application layer für tausendfache Lese-/Schreibzugriffe vor. Weitere Podcasts zum Thema Erlang, fehlertolerante Systeme und Concurrency kann man hier abrufen. Der originale [...]]]></description>
			<content:encoded><![CDATA[<p><object width="463" height="337" data="http://video.google.com/googleplayer.swf?docid=6981137233069932108&amp;hl=un&amp;fs=true" type="application/x-shockwave-flash"><param name="id" value="VideoPlayback" /><param name="src" value="http://video.google.com/googleplayer.swf?docid=6981137233069932108&amp;hl=un&amp;fs=true" /></object></p>
<p>Bei der Erlang Exchange 2008 Konferenz wurde das vom Zuse Institut Berlin und onScale Solutions GmbH entwickelte data-store System vorgestellt. Im Vortrag kommen so wichtige Themen wie Distributed Hashtables (DHTs), transaction layer und schnelle application layer für tausendfache Lese-/Schreibzugriffe vor. Weitere Podcasts zum Thema Erlang, fehlertolerante Systeme und Concurrency kann man <a href="http://skillsmatter.com/go/erlang" target="_blank">hier</a> abrufen. Der originale Link zum obigen Podcast ist <a href="http://skillsmatter.com/podcast/erlang/building-a-transactional-distributed-data-store-with-erlang" target="_blank">hier </a>zu finden und die Slides <a href="http://skillsmatter.com/custom/presentations/reinefeld_erlang_exchange.pdf" target="_blank">hier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/28/building-a-transactional-distributed-data-store-with-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exploring Erlang</title>
		<link>http://www.brakmic.de/index.php/2009/02/28/exploring-erlang/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/28/exploring-erlang/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 09:40:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[vortrag]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=386</guid>
		<description><![CDATA[
Slides befinden sich hier, sowie als gezipptes File hier. Da im Video nicht immer alle Slides eingeblendet werden, ist es zu empfehlen, parallel zu diesem die Slides zu halten, sonst ist es recht schwierig, dem (ausgezeichneten!) Vortrag zu folgen.
]]></description>
			<content:encoded><![CDATA[<p><object width="437" height="369" data="http://www.viddler.com/player/4b93caa4/" type="application/x-shockwave-flash"><param name="id" value="viddler" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="src" value="http://www.viddler.com/player/4b93caa4/" /><param name="name" value="viddler" /><param name="allowfullscreen" value="true" /></object></p>
<p>Slides befinden sich <a href="http://undefined.org/c4-1/slides/slides.html" target="_blank">hier</a>, sowie als gezipptes File <a href="http://undefined.org/c4-1/slides/slides.html" target="_blank">hier</a>. Da im Video nicht immer alle Slides eingeblendet werden, ist es zu empfehlen, parallel zu diesem die Slides zu halten, sonst ist es recht schwierig, dem (ausgezeichneten!) Vortrag zu folgen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/28/exploring-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Komfortables Erlang-Coding mit Distel und Emacs</title>
		<link>http://www.brakmic.de/index.php/2009/02/22/komfortables-erlang-coding-mit-distel-und-emacs/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/22/komfortables-erlang-coding-mit-distel-und-emacs/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 13:05:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[distel]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=342</guid>
		<description><![CDATA[Die Erlang-Shell ist zu Anfang sicherlich völlig ausreichend, um sich mit der Sprache vertraut zu machen, im weiteren Verlauf aber wird man früher oder später eine passende IDE benötigen. Für Erlang existiert zwar (glücklicherweise!) keine &#8220;Standard IDE&#8221;, jedoch hat sich Emacs als de-facto Stadard-Editor durchgesetzt. Daher wird dieser hier vorgestellt, wie auch eine Emacs-Erweiterung namens [...]]]></description>
			<content:encoded><![CDATA[<p>Die Erlang-Shell ist zu Anfang sicherlich völlig ausreichend, um sich mit der Sprache vertraut zu machen, im weiteren Verlauf aber wird man früher oder später eine passende IDE benötigen. Für Erlang existiert zwar (glücklicherweise!) keine &#8220;Standard IDE&#8221;, jedoch hat sich Emacs als de-facto Stadard-Editor durchgesetzt. Daher wird dieser hier vorgestellt, wie auch eine Emacs-Erweiterung namens &#8220;Distel&#8221;, welche nützliche Emacs um nützliche Funktionen erweitert. So kann man nach Distel-Installation von Emacs aus die Erlang-Shells starten, Compilieren, Debuggen etc.</p>
<p>Als Erstes benötigen wir Emacs, welcher für verschiedene Betriebssysteme bereits vorkompiliert im Netz gefunden werden kann. Ich bevorzuge <a href="http://ourcomments.org/Emacs/EmacsW32.html" target="_blank">EmacsW32</a>, wenn ich unter Windows entwickle, aber dies sich ja nur eine Geschmackssache. Auf jeden Fall wird Emacs benötigt.</p>
<p>Danach holen wir uns mit Subversion die Distel-Sourcen:<br />
<strong>svn checkout http://distel.googlecode.com/svn/trunk/ distel</strong></p>
<p>Diese Sourcen werden mit &#8220;make&#8221; kompiliert. Unter Unix/Linux geht dies recht einfach, für Windows muss zuerst die passende POSIX-Umgebung geschaffen werden. Mit Cygwin geht dies am besten und einfachsten. Für alle, die wenig Lust auf Cygwin und die ganzen Compile-Vorgänge haben, gibt es ein <a href="http://www.brakmic.de/download/erlang/distel.zip">Zip-Paket zum Download</a>, welches die ganze Distel-Verzeichnisstruktur beinhaltet (mit bereits kompilierten Dateien). Meine Erlang-Version zum Zeitpunkt der Kompilierung war 5.6.5.</p>
<p>Nachdem Distel-Sourcen übersetzt bzw. heruntergeladen worden sind, sollen diese im Verzeichnis<strong> ERLANG_HOME</strong>\lib\distel abgelegt werden.</p>
<p>Am Ende solltet ihr eine solche Struktur haben:</p>
<p><img class="alignnone size-full wp-image-343" title="distel_pfad" src="http://www.brakmic.de/wp-content/2009/02/distel_pfad.jpg" alt="distel_pfad" width="343" height="410" /></p>
<p>Jetzt müssen wir der Erlang-Umgebung einen Pfad mehr verpassen, damit die Distel-Binaries verfügbar sind. Im Verzeichnis <strong>ERLANG_HOME</strong>\usr wird eine Datei namens <strong>.erlang</strong> (Punkt nicht vergessen!) angelegt, sofern sie nicht bereits vorhanden ist. Diese erweitert man um folgenden Eintrag</p>
<p><strong>code:add_pathz(&#8221;<span style="color: #ff0000;">ERLANG_HOME</span>/lib/distel/ebin&#8221;).</strong></p>
<p>Jezt passen wir Emacs an und erstellen, sofern nicht vorhanden, eine Datei namens<strong> .emacs</strong> in eurem Benutzer-Homeverzeichnis. Wenn man sich nicht sicher ist, wie das Homeverzeichnis heißt, einfach auf der Kommandozeile Folgendes eingeben: <strong>echo %HOME%</strong></p>
<p>Bei Unix/Linux-Usern schaut das Ganze <em>ein bisserl</em> anders aus. <img src='http://www.brakmic.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Dort hilft ein &#8220;env&#8221; auf der Konsole bzw. <strong>echo $HOME</strong>.</p>
<p>Im Home-Verzeichnis wird die zuvor erwähnte Datei um folgende Einträge erweitert:</p>
<p><span style="color: #339966;">;; Erlang Paths</span><span style="color: #808000;"><br />
(setq load-path (cons  &#8220;</span><span style="color: #808000;"><span style="color: #ff0000;"><strong>ERLANG_HOME</strong></span></span><span style="color: #808000;">/</span><span style="color: #808000;">lib/tools-2.6.2/emacs&#8221; load-path))<br />
(setq erlang-root-dir &#8220;</span><span style="color: #808000;"><span style="color: #ff0000;"><strong>ERLANG_HOME</strong></span></span><span style="color: #808000;">&#8220;)<br />
(setq exec-path (cons &#8220;</span><span style="color: #808000;"><span style="color: #ff0000;"><strong>ERLANG_HOME</strong></span></span><span style="color: #808000;"><strong></strong>/bin&#8221; exec-path))<br />
(require &#8216;erlang-start)</span></p>
<p><span style="color: #339966;">;; This is needed for Distel setup</span><br />
<span style="color: #808000;">(let ((distel-dir &#8220;<span style="color: #ff0000;"><strong>ERLANG_HOME</strong></span>/lib/distel/elisp&#8221;))<br />
(unless (member distel-dir load-path)<br />
<span style="color: #339966;">;; Add distel-dir to the end of load-path</span><br />
(setq load-path (append load-path (list distel-dir)))))<br />
(require &#8216;distel)<br />
(distel-setup)</span></p>
<p><span style="color: #339966;">;; Some Erlang customizations</span><br />
<span style="color: #808000;">(add-hook &#8216;erlang-mode-hook<br />
(lambda ()<br />
<span style="color: #339966;">;; when starting an Erlang shell in Emacs, default in the node name</span><br />
(setq inferior-erlang-machine-options &#8216;(&#8221;-sname&#8221; &#8220;emacs&#8221;))<br />
<span style="color: #339966;">;; add Erlang functions to an imenu menu</span><br />
(imenu-add-to-menubar &#8220;imenu&#8221;)))</span></p>
<p><span style="color: #339966;">;; A number of the erlang-extended-mode key bindings are useful in the shell too</span><br />
<span style="color: #808000;">(defconst distel-shell-keys<br />
&#8216;((&#8221;\C-\M-i&#8221;   erl-complete)<br />
(&#8221;\M-?&#8221;      erl-complete)<br />
(&#8221;\M-.&#8221;      erl-find-source-under-point)<br />
(&#8221;\M-,&#8221;      erl-find-source-unwind)<br />
(&#8221;\M-*&#8221;      erl-find-source-unwind))</span><br />
<span style="color: #339966;">;; Additional keys to bind when in Erlang shell.&#8221;)</span><br />
<span style="color: #808000;">(add-hook &#8216;erlang-shell-mode-hook<br />
(lambda ()<br />
<span style="color: #339966;">;; add some Distel bindings to the Erlang shell</span><br />
(dolist (spec distel-shell-keys)<br />
(define-key erlang-shell-mode-map (car spec) (cadr spec)))))</span></p>
<p>Ein Beispiel für <span style="color: #ff0000;"><strong>ERLANG_HOME</strong></span> wäre <strong>C:/Programme/erl5.6.5</strong></p>
<p><span style="color: #808000;"><span style="color: #000000;">Und auch für diesen Schritt habe ich ein entsprechendes <a href="http://www.brakmic.de/download/erlang/config_files.zip">Download</a> vorbereitet, falls man doch wenig Lust hat, sich in die Emacs-Lisp-Syntax einzuarbeiten. <img src='http://www.brakmic.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Jedoch sollten die Pfade angepasst werden und auch muss man daraus achten, dass die eventuell vorhandenen Leerzeilen in Windows Pfaden umgangen werden. </span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Jetzt können wir Emacs starten und sich mit dem neue Erlang-Modus vertraut machen. Um diesen zu aktivieren, muss eine *.erl-Datei geladen werden.</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-345" title="emacs_erlang_mode1" src="http://www.brakmic.de/wp-content/2009/02/emacs_erlang_mode1.jpg" alt="emacs_erlang_mode1" width="696" height="352" /><br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Daneben ist noch ein weiteres Menü namens <em>imenu</em> vorhanden, welches vor allem bei umfangreichen Quellcodes recht nützlich ist, da es sämtliche Funktionen auflistet, die aktuell vorhanden sind. Diese kann man dann direkt ansteuern. Um eine Erlang-Shell zu starten, wählt man den Menüpunkt <em>Shell/Start New Shel</em>l aus.</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-346" title="start_new_shell" src="http://www.brakmic.de/wp-content/2009/02/start_new_shell.jpg" alt="start_new_shell" width="696" height="362" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Als Ergebnis erhält man automatisch eine neue Shell innerhalb der Emacs-Umgebung.</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-347" title="new_shell" src="http://www.brakmic.de/wp-content/2009/02/new_shell.jpg" alt="new_shell" width="696" height="293" /><br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">In dieser kann man z.B. die über Emacs kompilierten Erlang-Quellcodes starten. Würden wir den angezeigten Code kompilieren wollen, so wäre die Vorgehensweise wie folgt:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-348" title="compile_buffer" src="http://www.brakmic.de/wp-content/2009/02/compile_buffer.jpg" alt="compile_buffer" width="695" height="368" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Übrigens: das Wechseln zwischen verschiedenen &#8220;Buffers&#8221;, denn auch eine Erlang-Shell in Emacs ist &#8220;nur&#8221; ein weiterer Buffer, geschieht über den Menüpunkt &#8220;Buffers&#8221;. Dort wählt man einfach den gewünschten Buffer aus (hier den Quellcode) und anschließend startet man das Kompilieren desselben über <em>Erlang/Compile/Compile Buffer</em>. Wenn alles ordentlich verlaufen ist, erhält man folgendes Ergebnis:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-349" title="compile_ergebnis" src="http://www.brakmic.de/wp-content/2009/02/compile_ergebnis.jpg" alt="compile_ergebnis" width="656" height="744" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Es wird also die zuvor geöffnete Shell benutzt, um den Quellcode zu kompilieren. Hätten wir keine Shell zuvor aufgemacht, so würde Emacs automatisch eine entsprechende starten. Jetzt können wir auch direkt in derselben Shell das Kompilat starten:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-350" title="kompilat_starten" src="http://www.brakmic.de/wp-content/2009/02/kompilat_starten.jpg" alt="kompilat_starten" width="656" height="366" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Dies wäre ein typischer Vorgang beim Entwickeln unter Emacs/Distel. Zuerst den Code im Buffer eingeben (oder Teile davon) und dann schrittweise testen. Ferner bietet Distel auch die Möglichkeit an, bestimmte Code-Skeletons automatisch einzufügen. Hier ein Beispiel mit einem einfachen Server-Skeleton:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-351" title="small_server_skeleton" src="http://www.brakmic.de/wp-content/2009/02/small_server_skeleton.jpg" alt="small_server_skeleton" width="699" height="742" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Ein weiteres, äußerst nützliches Feature von Distel ist die Debugging-Funktionalität. Um diese zu nützen benötigt man neben einem geladenen Quellcode auch eine laufende Erlang-Shell. Sind diese vorhanden, wird aus dem Quellcode-Buffer (dieser muss über Buffer-Menü gewählt werden!)  eine Connection zur bereits gestarteten Shell aufgebaut. Dazu bedient man sich des folgenden Menüpunktes:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-353" title="conntect_to_node" src="http://www.brakmic.de/wp-content/2009/02/conntect_to_node.jpg" alt="conntect_to_node" width="656" height="366" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><em>Es ist natürlich auch möglich, all diese Optionen direkt über Tasktenkombinationen auszuwählen.</em> <img src='http://www.brakmic.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Direkt nachdem wir die Option aktiviert haben, werden wir nach dem Namen des Erlang-Nodes gefragt, welcher in der unten eingeblendeten Zeile eingegeben werden muss. Der Node-Name setzt sich immer aus <em>Node-Name@Maschinen-Name</em> zusammen. Am einfachsten ist es, sich über das Buffer-Menü zu vergewissern wie der Node heißt. Und falls wir mehrere haben, wählt man einen aus.<br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-354" title="node_eingeben" src="http://www.brakmic.de/wp-content/2009/02/node_eingeben.jpg" alt="node_eingeben" width="694" height="101" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Nachdem der Node konnektiert wurde, muss natürlich der Quellcode kompiliert werden, damit das Debugging auch einen Sinn macht. Jedoch werden wir diesmal nicht den Menüpunk <em>Erlang/Compile/Compile Buffer</em> wählen, sondern direkt über die Erlang-Shell kompilieren. Dies hat damit zu tun, dass wir für das Debugging zusätzliche Informationen in unserem Kompilat bereitstellen müssen (sog. Debug-Infos). Deswegen brauchen wird einen leicht erweiterten Kommandoaufruf in der Zeile. Wir wählen also die Erlang-Shell und geben Folgendes ein (&#8221;func1&#8243; wird natürlich nicht immer vorkommen müssen, sondern der Name eurer *.erl-Datei):</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-360" title="compile_mit_debug_info1" src="http://www.brakmic.de/wp-content/2009/02/compile_mit_debug_info1.jpg" alt="compile_mit_debug_info1" width="695" height="216" /><br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Danach müss das fertig kompilierte Modul neu geladen werden. Dies erfolgt über folgenden Menüpunkt:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-356" title="module_neu_laden" src="http://www.brakmic.de/wp-content/2009/02/module_neu_laden.jpg" alt="module_neu_laden" width="681" height="574" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Und auch hier muss der Name des Moduls in unten eingeblendeter Zeile eingegeben werden. Standardmäßig wird das aktuell kompilierte Modul vorgeschlagen, sodass man diesen nur noch bestätigen muss. Ist alles erfolgreich verlaufen, wird in der Zeile folgende Nachricht angezeigt (mit entsprechendem Modulnamen):</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-357" title="module_neu_laden_ok" src="http://www.brakmic.de/wp-content/2009/02/module_neu_laden_ok.jpg" alt="module_neu_laden_ok" width="694" height="94" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Jetzt aktivieren wir das Debugging:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-358" title="debugging_aktivieren" src="http://www.brakmic.de/wp-content/2009/02/debugging_aktivieren.jpg" alt="debugging_aktivieren" width="844" height="609" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Ist alles gut verlaufen, meldet sich Emacs mit folgender Meldung zurück:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-361" title="interpreting_started" src="http://www.brakmic.de/wp-content/2009/02/interpreting_started.jpg" alt="interpreting_started" width="694" height="65" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Danach können wir in unserem Quellcode z.B. einen Breakpoint setzen, welcher dann zur Laufzeit die Abarbeitung anhalten wird. Dazu setzen wird den Cursor an die gewünschte Position und wählen diesen Menüpunkt aus:</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-363" title="breakpoint_menu" src="http://www.brakmic.de/wp-content/2009/02/breakpoint_menu.jpg" alt="breakpoint_menu" width="694" height="574" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Automatisch wird die ausgesuchte Zeile rot markiert. Will man den Breakpoint entfernen, muss nur derselbe Menüpunkt gewählt werden (oder, wie immer, die passende Tastenkombination eingegeben werden).</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-364" title="breakpoint_setzen1" src="http://www.brakmic.de/wp-content/2009/02/breakpoint_setzen1.jpg" alt="breakpoint_setzen1" width="695" height="397" /><br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"> Jetzt rufen wir die markierte Funktion in der Erlang-Shell auf. Direkt nachdem sie gestartet wurde, wird ein neuer Debug-Buffer aktiviert, in welchem die Infos zu unserem Breakpoint und seiner momentanen Ausführung aufgelistet sind.</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-366" title="debug_konsole1" src="http://www.brakmic.de/wp-content/2009/02/debug_konsole1.jpg" alt="debug_konsole1" width="694" height="411" /></span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Man sieht unten, dass noch kein Ergebnis der Funktion double(12) zurückgegeben worden ist. Dies ist ein Zeichen, dass die weitere Ausführung ab jetzt auch schrittweise erfolgen kann. Um den angezeiten Prozess manuell zu debuggen, positioniert man den Cursor auf die gewünschte Zeile (in diesemFalle ist es nur eine, was aber nicht immer sein muss). Dann drück man einmal auf ENTER und automatisch wechselt Emacs zum Quellcode genau an die Stelle wo das Debugging markiert wurde. Man erkennt es auch am grünen Pfeil direkt neben der Quellcode-Zeile. In der unteren Fensterhälfte sieht man den momentanen Status der eingesetzten Variablen (in diesem Falle ist X = 12, was unserer Eingabe beim Funktionsaufruf entspricht).<br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;"><img class="alignnone size-full wp-image-367" title="in_debugging_mode" src="http://www.brakmic.de/wp-content/2009/02/in_debugging_mode.jpg" alt="in_debugging_mode" width="696" height="664" /><br />
</span></span></p>
<p><span style="color: #808000;"><span style="color: #000000;">Jetzt hat man die Wahl zwischen diesen Optionen, welche über die Tastatur eingegeben werden:</span></span></p>
<ul>
<li><strong>h</strong>: Anzeige verfügbarer Kommandos.</li>
<li><strong>q</strong>: Debug-Anzeige beenden (der gedebuggte Prozess wird aber nicht geschlossen)</li>
<li><strong>SPC</strong>: Nächster Schritt.</li>
<li><strong>n</strong>: Über den Ausdruck hinausgehen.</li>
<li><strong>u</strong>: Nach oben zum nächsten Stack-Frame.</li>
<li><strong>d</strong>: Nach unten zum nächsten Stack-Frame.</li>
<li><strong>c</strong>: Fortsetzen bis zum (eventuell) nächsten Breakpoint.</li>
<li><strong>b</strong>: Breakpoint auf der aktuellen Zeile setzen/entfernen.</li>
</ul>
<h3>Man sieht, dass eine schnelle und komfortable Entwicklung auch mit Erlang möglich ist. <img src='http://www.brakmic.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </h3>
<h3>Viel Spaß mit Erlang, Emacs &amp; Distel!</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/22/komfortables-erlang-coding-mit-distel-und-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scripting mit der Erlang VM</title>
		<link>http://www.brakmic.de/index.php/2009/02/22/scripting-mit-der-erlang-vm/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/22/scripting-mit-der-erlang-vm/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 09:06:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[COP]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=339</guid>
		<description><![CDATA[Für alle die sich mit der recht ungewöhnlichen Erlang-Syntax nicht anfreunden können, ist die Skriptsprache &#8220;Reia&#8221; zu empfehlen. Diese bildet einen zusätzlichen Layer auf der Erlang VM und ermöglich so das Coden in einer Python/Ruby-ähnlichen Syntax. D.h, dass alles was man bisher kannte wie z.B. Klassen, Methoden, Vererbung, String-Verarbeitung etc. jetzt auch in einer Erlang-Umgebung [...]]]></description>
			<content:encoded><![CDATA[<p>Für alle die sich mit der recht ungewöhnlichen Erlang-Syntax nicht anfreunden können, ist die Skriptsprache &#8220;Reia&#8221; zu empfehlen. Diese bildet einen zusätzlichen Layer auf der Erlang VM und ermöglich so das Coden in einer Python/Ruby-ähnlichen Syntax. D.h, dass alles was man bisher kannte wie z.B. Klassen, Methoden, Vererbung, String-Verarbeitung etc. jetzt auch in einer Erlang-Umgebung verwirklicht werden kann.</p>
<p>Mehr Infos gibt es <a href="http://wiki.reia-lang.org/wiki/Reia_Programming_Language" target="_blank">hier</a>, <a href="http://github.com/tarcieri/reia/tree/master" target="_blank">hier</a> und <a href="http://reia.lighthouseapp.com/projects/19319-reia/overview" target="_blank">hier</a>. Eine <a href="http://groups.google.com/group/reia" target="_blank">Google-Group</a> ist ebenfalls vorhanden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/22/scripting-mit-der-erlang-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simon Thompson &#8211; Erlang &amp; Functional Programming</title>
		<link>http://www.brakmic.de/index.php/2009/02/03/simon-thompson-erlang-functional-programming/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/03/simon-thompson-erlang-functional-programming/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 20:55:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Standard]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[COP]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=284</guid>
		<description><![CDATA[
In diesem Interview geht es vor allem um die aktuellen IT-Probleme wie Concurrency/Parallelism und die Vorteile der funktionalen Programmierung beim Lösen derselben.
Da mittlerweile auch die günstigsten Notebooks über einen Dual-Core-Prozessor verfügen, ist es nur eine Frage der Zeit, bis Concurrency denselben Stellenwert einnimmt wie zuvor die GHz-Zahl oder die RAM-Größe.
Da es schon seit geraumer Zeit [...]]]></description>
			<content:encoded><![CDATA[<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/UMwDOcLALfU&#038;hl=de&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/UMwDOcLALfU&#038;hl=de&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="400"></embed></object></p>
<p>In diesem Interview geht es vor allem um die aktuellen IT-Probleme wie Concurrency/Parallelism und die Vorteile der funktionalen Programmierung beim Lösen derselben.</p>
<p>Da mittlerweile auch die günstigsten Notebooks über einen Dual-Core-Prozessor verfügen, ist es nur eine Frage der Zeit, bis Concurrency denselben Stellenwert einnimmt wie zuvor die GHz-Zahl oder die RAM-Größe.</p>
<p>Da es schon seit geraumer Zeit keine &#8220;doppelt-so-schnell-wie-letztes-Jahr&#8221; CPUs mehr gibt, geht der Trend in Richtung mehr Kerne pro CPU, was wiederum neue Software auf den Plan ruft, die solche technischen Möglichkeiten ausreizen kann. Bisher hat man wohl zu 99% nur für single CPUs programmiert und auch nur solche Sprachen gelernt. Früher oder später wird man &#8220;dazulernen&#8221; müssen, wenn man es nicht schon seit LISP, Smalltalk und ADA kennt. Oder zumindest ein bisschen Haskell spricht. <img src='http://www.brakmic.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/03/simon-thompson-erlang-functional-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joe Armstrong discusses Erlang</title>
		<link>http://www.brakmic.de/index.php/2009/02/03/joe-armstrong-discusses-erlang/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/03/joe-armstrong-discusses-erlang/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 20:39:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[COP]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=277</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/cbtu15hrqRU&amp;hl=de&amp;fs=1" /><embed type="application/x-shockwave-flash" width="500" height="400" src="http://www.youtube.com/v/cbtu15hrqRU&amp;hl=de&amp;fs=1" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/03/joe-armstrong-discusses-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Homegrown Erlang</title>
		<link>http://www.brakmic.de/index.php/2009/02/02/homegrown-erlang/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/02/homegrown-erlang/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 22:54:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Standard]]></category>
		<category><![CDATA[COP]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[multicore]]></category>
		<category><![CDATA[parallel]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=272</guid>
		<description><![CDATA[
 


]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brakmic.de/wp-content/2009/02/02022009328.jpg"><img class="alignnone size-full wp-image-274" title="Homegrown_Overlook" src="http://www.brakmic.de/wp-content/2009/02/02022009328.jpg" alt="" width="693" height="463" /></a></p>
<p> </p>
<p><a href="http://www.brakmic.de/wp-content/2009/02/02022009327.jpg"><img class="alignnone size-full wp-image-273" title="Homegrown_Slide" src="http://www.brakmic.de/wp-content/2009/02/02022009327.jpg" alt="" width="694" height="491" /></a></p>
<p><a href="http://www.brakmic.de/wp-content/2009/02/02022009329.jpg"><img class="alignnone size-full wp-image-275" title="Multicore_CPUs" src="http://www.brakmic.de/wp-content/2009/02/02022009329.jpg" alt="" width="698" height="666" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/02/homegrown-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joe Armstrong About Erlang</title>
		<link>http://www.brakmic.de/index.php/2009/02/02/joe-armstrong-about-erlang/</link>
		<comments>http://www.brakmic.de/index.php/2009/02/02/joe-armstrong-about-erlang/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 22:39:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[COP]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.brakmic.de/?p=265</guid>
		<description><![CDATA[Von InfoQ:
In this interview filmed during QCon London 2008, Joe Armstrong, designer of Erlang, speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days due to its native ability to scale on multi core systems.
Joe Armstrong is the principle inventor [...]]]></description>
			<content:encoded><![CDATA[<p>Von <a href="http://www.infoq.com">InfoQ</a>:</p>
<p><a href="http://www.infoq.com/interviews/Erlang-Joe-Armstrong">In this interview filmed during QCon London 2008</a>, <strong>Joe Armstrong</strong>, designer of Erlang, speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days due to its native ability to scale on multi core systems.</p>
<p>Joe Armstrong is the principle inventor of Erlang and coined the term &#8220;Concurrency Oriented Programming&#8221;. At Ericsson he developed Erlang and was chief architect of the <strong>Erlang/OTP system</strong>. In 1998 he formed Bluetail, which developed all its products in Erlang. In 2003 he obtain his PhD from the Royal Institute of Technology, Stockholm. He is author of the book &#8220;<a href="http://www.pragprog.com/titles/jaerlang/programming-erlang">Software for a concurrent world</a>&#8220;. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brakmic.de/index.php/2009/02/02/joe-armstrong-about-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
