<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">

<channel>
	<title>Planet HSR</title>
	<link>http://planet-hsr.ch</link>
	<language>en</language>
	<description>Planet HSR - http://planet-hsr.ch</description>

<item>
	<title>Roman Stoffel: 티비-드라마: 혼 / TV-Series: Soul</title>
	<guid>http://www.gamlor.info/wordpress/?p=2257</guid>
	<link>http://www.gamlor.info/wordpress/2012/02/tv-series-soul/</link>
	<description>&lt;p&gt;(저는 한국어 아직 잘 못 해서 한국어로 블로그-포스트 짧아요. 근데 긴 &lt;a href=&quot;http://www.gamlor.info/wordpress/feed/#Soul-In-English&quot;&gt;영어로 밑에 있어요&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;저는 공포-영화 정말 좋아해, 그래서 이 공포-드라마 (&lt;a href=&quot;http://ko.wikipedia.org/wiki/혼&quot;&gt;위키백과&lt;/a&gt;) 봤을 때 봐야 돼요. 이 드라마에서 윤하나는 여동생 죽을 때부터 동생의 귀신 있다고 만나요. 그리고 시작 귀신 많아 지고  있다. 정말, 윤하나는 너무 뭇어워서 도움 필요해요. 그래서 프로파일러 신류 도워요. 근데 신류 하고 귀신가 나쁜 사람을 죽이고 싶어요.&lt;br /&gt;
&lt;div id=&quot;attachment_2263&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/02/soul.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/02/soul-300x177.png&quot; alt=&quot;귀신이 항상 얘기해요&quot; title=&quot;soul&quot; width=&quot;300&quot; height=&quot;177&quot; class=&quot;size-medium wp-image-2263&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;귀신이 항상 얘기해요&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;이 드라마는 좋아세요? 괜찮아요. 근대 저는 이야기가 조금 이해 못하고 조금 심심해요.&lt;br /&gt;
&lt;a name=&quot;Soul-In-English&quot;&gt;&lt;/a&gt;&lt;br /&gt;
제 평가: (2/5)&lt;/p&gt;
&lt;p&gt;Ok, here‘s the longer version my little review of Soul (혼)(&lt;a href=&quot;http://www.hancinema.net/korean_movie_HON_-_Soul.php&quot;&gt;Hancinema&lt;/a&gt;), a horror drama. I personally love Horror movies, so when I stumbled upon Soul I had to check it out.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s about Yoon Hana whose sister dies and shortly after starts to appear as ghost. Later on Yoon Hana starts to see more and more ghosts. Of course she is scared to death and seeks for help. So Shinryu, a Crime-Profiler, starts to help her. But Shinryu and the ghost also have other plans: To kill bad guys.&lt;br /&gt;
&lt;div id=&quot;attachment_2264&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/02/soul-en.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/02/soul-en-300x177.png&quot; alt=&quot;&quot; title=&quot;soul-en&quot; width=&quot;300&quot; height=&quot;177&quot; class=&quot;size-medium wp-image-2264&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Ghosts always tell stories&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Well the series starts with this stereo typical scary, black haired ghost girl stuff. At the beginning it is quite confusing and cuts between different flashbacks which make no sense what so ever. However after a few episodes a story starts to crystallize, which is actually kind of neat. It also moves away from the horror theme start to become more thriller style. Unfortunately the story is told very slowly, so it gets somewhat boring sometimes. I think this series would be much better with faster storytelling and more focus on the thriller elements.&lt;/p&gt;
&lt;p&gt;Now is it scary? No not really, but I didn&amp;#8217;t expect that from a TV series. But it has some nice atmospheric and cool scenes. I also have to mention one very strange scene from the beginning, the suicide-scene. Well, this scene is strange to me because it nearly celebrates the suicide by matrix-style slow-motion camera work. Quite unusual to put that much focus on this kind of scene.&lt;/p&gt;
&lt;p&gt;All in all, Soul is all right, but not all that great. I recommend other series  &lt;a href=&quot;http://www.gamlor.info/wordpress/2009/02/jekyll/&quot;&gt;Jekyll&lt;/a&gt;, &lt;a href=&quot;http://www.gamlor.info/wordpress/2008/11/dead-set/&quot;&gt;Dead Set&lt;/a&gt; etc. with a horror theme. Even some recent Doctor Who episodes have a moody horror atmosphere to them.&lt;/p&gt;
&lt;p&gt;Star-O-Meter: (2/5)&lt;/p&gt;
&lt;p&gt;The trailer is strange, because I think that many scenes are not present in the series:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 03 Feb 2012 01:59:14 +0000</pubDate>
</item>
<item>
	<title>Giu: Wikipedia TeX Source Extractor Bug Fix</title>
	<guid>http://giu.me/writings/Wikipedia-TeX-Source-Extractor-Bugfix</guid>
	<link>http://giu.me/writings/Wikipedia-TeX-Source-Extractor-Bugfix.html</link>
	<description>&lt;p&gt;I just pushed an updated version of the Wikipedia TeX Source Extractor userscript to both &lt;a href=&quot;http://userscripts.org/scripts/show/121713&quot;&gt;userscripts.org&lt;/a&gt; and &lt;a href=&quot;https://github.com/giu/wikipedia-tex-source-extractor&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The old version had an issue displaying the TeX source of mathematical formulas containing apostrophes (&lt;code&gt;'&lt;/code&gt;), e.g. derivations.&lt;/p&gt;

&lt;p&gt;If the TeX string contained an apostrophe, the string's part after the apostrophe (including the apostrophe itself) got cropped. For example, if the TeX source behind a derivation looked like &lt;code&gt;f\!\,'(x_0)&lt;/code&gt;, the Extractor somehow only managed to display &lt;code&gt;f\!\,&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The cause of this issue is my usage of apostrophes for the declaration of strings directly in the JavaScript code.&lt;/p&gt;

&lt;p&gt;Because of this conflict with apostrophes, the following snippet of code, in which I inject a textbox containing the TeX source didn't work as expected (shortened version):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var a = $t.attr(&quot;alt&quot;);
$t.parent().append(&quot;&amp;lt;input id='wte_texsource_&quot;+counter+&quot;' type='text' value='&quot;+a+&quot;' /&amp;gt;&quot;);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To fix the issue, I now first append the textbox without a value, and right after that I inject the TeX source, avoiding any conflicts involving apostrophes:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$t.parent().append(&quot;&amp;lt;input id='wte_texsource_&quot;+counter+&quot;' type='text' /&amp;gt;&quot;);
$(&quot;#wte_texsource_&quot;+counter).val($t.attr(&quot;alt&quot;));
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The updated version now displays any TeX source containing apostrophes correctly:&lt;/p&gt;

&lt;div&gt;
    &lt;img class=&quot;centerimage&quot; src=&quot;http://giu.me/images/entries/wikipedia-tex-source-extractor-bugfix.png&quot; alt=&quot;Wikipedia TeX Source Extractor Bugfix&quot; /&gt;
&lt;/div&gt;</description>
	<pubDate>Wed, 01 Feb 2012 00:00:00 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Running Akka 2.0 On Android (WIP)</title>
	<guid>http://www.gamlor.info/wordpress/?p=2246</guid>
	<link>http://www.gamlor.info/wordpress/2012/01/running-akka-2-0-on-android-wip/</link>
	<description>&lt;p&gt;&lt;strong&gt;This information here is allready quite outdated. With the current Akka 2.0 master snapshot some issues are gone, while new pitfalls introduced. I will update / create a new post when Akka 2.0 is close to the final release.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Akka 2.0 is available as a preview version. Here’s a short guide how to get it to run on Android. This pretty much work in progress. Maybe someone else has even has a better strategy. Let me know if that’s the case=). Also I didn’t do much with Akka 2.0 on Android yet, so maybe there are major issues yet to discover =).&lt;/p&gt;
&lt;div id=&quot;attachment_2249&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/akka20onDroid.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2249&quot; title=&quot;akka20onDroid&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/akka20onDroid-300x226.png&quot; alt=&quot;Let's master this Akka beast, little Android =)&quot; width=&quot;300&quot; height=&quot;226&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Let's master this Akka-beast, little Android =)&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;In general I just assume that you have a working Scala build and know how to include new Scala libraries. And I also assume that you are using Proguard to shrink the jar file. I use a build based on &lt;a href=&quot;https://github.com/pboos/scala-on-android-example&quot;&gt;this&lt;/a&gt;. In case you are having trouble, just ask for help =).&lt;/p&gt;
&lt;p&gt;First add the Akka 2.0 M3 jar-file to the project (The M2 bits won’t work). Make sure that it is in your directories of libraries which are compacted by Proguard. Unfortunately you will get tons of warnings by Proguard about classes which couldn’t be found, because they are not part of the Android platform. These are three categories of classes which are not available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;‘ akka.util.JMX’: There is no JMX on Android.&lt;/li&gt;
&lt;li&gt;‘sun.misc.Unsafe’: Well at first sight Android doesn’t have this implementation-detail class. Luckily it actually does have it (at least in newer versions), but it’s only available at runtime. The jars which you compile against do not have this class.&lt;/li&gt;
&lt;li&gt;‘org.omg.CORBA’-stuff. The Akka library has a UUID implementation which implements some interfaces from CORBA.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So it is time for some Proguard trickery to get rid of warnings.&lt;/p&gt;
&lt;h2&gt;Bye Bye JMX&lt;/h2&gt;
&lt;p&gt;Well there is definitely no JMX on Android. So I just excluded the JMX stuff from Akka:&lt;/p&gt;
&lt;div id=&quot;gist-1706858&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c&quot;&gt;## No JMX for Android&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;err&quot;&gt;-dontwarn&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;akka.util.JMX*&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1706858/5a340c0919a6c6284f281c25afbb3108e6d26f00/NoJMXForYou.cfg&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858#file_no_jmx_for_you.cfg&quot;&gt;NoJMXForYou.cfg&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Ignoring ‘sun.misc.Unsafe’ Warnings&lt;/h2&gt;
&lt;p&gt;The next step is to configure Proguard to ignore the ‘sun.misc.Unsafe’ warnings. It is there on the device (If not, please tell me).&lt;/p&gt;
&lt;div id=&quot;gist-1706858&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c&quot;&gt;## Unsafe is there at runtime&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;err&quot;&gt;-dontwarn&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;sun.misc.Unsafe&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;span class=&quot;err&quot;&gt;-keep&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;sun.misc.Unsafe{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;err&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;c&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1706858/48f4299d45efd0aca4a47df961f8e634c06f3070/UnsafeIsThere.cfg&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858#file_unsafe_is_there.cfg&quot;&gt;UnsafeIsThere.cfg&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Fixing the CORBA Stuff&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;982189de-8479-41c6-9cec-ab6cfca78500&quot;&gt;
&lt;p&gt;Well, just exclude the ‘com.eaio.uuid’ stuff and you should be fine. At least is looks like it when you are only using the basic functionality. (In Akka 1.2 the UUID class is central, in Akka 2.0 it has been replaced with the path system.):&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;gist-1706858&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c&quot;&gt;## UUID helpers are not used&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;err&quot;&gt;-dontwarn&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;com.eaio.uuid.**&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1706858/2a8296993ff7435b6dfb05040145cd52013210f3/UUIDHelpersNotNeeded.cfg&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858#file_uuid_helpers_not_needed.cfg&quot;&gt;UUIDHelpersNotNeeded.cfg&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Remove the FSM Forward Reference&lt;/h2&gt;
&lt;p&gt;The core Akka library contains a forward reference to its finite state machine (FSM) implementation. In a usual class loader environment this doesn’t matter, since classes are lazily loaded. However Proguard is going to bitch about it. So in case you are not using the FSM library remove that reference with Proguard:&lt;/p&gt;
&lt;div id=&quot;gist-1706858&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c&quot;&gt;## No Finate State Machines Support needed&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;err&quot;&gt;-dontwarn&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;akka.actor.FSM&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1706858/ae19d052d7712dbb3732d09e2cea54a805bac811/FSM.cfg&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858#file_fsm.cfg&quot;&gt;FSM.cfg&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Keep Important Classes&lt;/h2&gt;
&lt;p&gt;Also we need to keep some classes which are loaded at runtime. Maybe there are more required for some features, just watch for class loader errors. These are the ones you need for sure:&lt;/p&gt;
&lt;div id=&quot;gist-1706858&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c&quot;&gt;## Stuff referenced at runtime&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;err&quot;&gt;-keep&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;akka.actor.LocalActorRefProvider&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;err&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;&amp;lt;init&amp;gt;(...)&lt;/span&gt;&lt;span class=&quot;c&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&lt;span class=&quot;err&quot;&gt;-keep&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;akka.event.Logging*&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&lt;span class=&quot;err&quot;&gt;-keep&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;akka.event.Logging$LogExt{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;err&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;c&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1706858/65184b9b60e52c265146b956c90ded944122f945/KeepStuff.cfg&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858#file_keep_stuff.cfg&quot;&gt;KeepStuff.cfg&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1706858&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Work Around the Reference Configuration Issue?&lt;/h2&gt;
&lt;p&gt;I’m not sure what exactly the issue is here and probably I’m doing something wrong. At least with my setup Akka cannot find its internal reference.conf resource file. Looks like resources are only loaded from the *.apk file? Anyway, for now I just copied the reference.conf file from the Akka source code to my project (Or do it with a build task). Then everything runs.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Yes, it is a little hairy to get Akka 2.0 to run on Android. I certainly will work a little more on it. And in case it gets too bad I’ll do a shallow fork of Akka &lt;img src=&quot;http://www.gamlor.info/wordpress/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt; .&lt;/p&gt;</description>
	<pubDate>Tue, 31 Jan 2012 00:12:27 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: 리믹스하고 매시업이 만드는 사람 좋아해요: DJs From Mars / Favorite Remixer and Mashupers: DJs From Mars</title>
	<guid>http://www.gamlor.info/wordpress/?p=2235</guid>
	<link>http://www.gamlor.info/wordpress/2012/01/djs-from-mars/</link>
	<description>&lt;p&gt;리믹스하고 매시업이 만드는 사람이 너무 많아. 그리고 DJs From Mars는 가장 좋은 리믹스를 만들었어. &lt;a href=&quot;http://soundcloud.com/djsfrommars/&quot;&gt;Soundcloud에서&lt;/a&gt; 매달 음악-믹스를 업로드해요. 그 음악-믹스가는 항상 새로운 리믹스하고 매시업이 있오요.&lt;/p&gt;
&lt;p&gt;DJs From Mars는 유명한 팝 노래가  하우스 음악를 되는 걸 해요. 그래서 저 하우스 음악아랑 알려진 노래가 매우 재미있어요.&lt;/p&gt;
&lt;p&gt;그리고 난 DJs From Mars의 한번 음악-믹스 들어봤을 때  하우스-음악을 진짜 좋아해요.&lt;/p&gt;
&lt;div id=&quot;attachment_2240&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/djsfromMars.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2240&quot; title=&quot;djsfromMars&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/djsfromMars-218x300.png&quot; alt=&quot;DJs From Mars&quot; width=&quot;218&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;DJs From Mars&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;여기 음악-믹스가 하나 있어요:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are many remixers and mashup creaters. And so DJs From Mars are one of the best remix makers. On Souncloud they monthly upload a music-mix. That music-mix has always new remixes and mashups.&lt;/p&gt;
&lt;p&gt;DJs From Mars turn popular pop songs into house music. That house music with known songs is fun.&lt;/p&gt;
&lt;p&gt;And after listening to their mixes I started to really like House music.&lt;/p&gt;
&lt;p&gt;There such a music mix above.&lt;/p&gt;
&lt;p&gt;Translation of the Comic:&lt;/p&gt;
&lt;p&gt;Happy-guy: I like Pop music but don&amp;#8217;t like House music.&lt;br /&gt;
Evil-guy: I like House Music and Noise. More Noise please.&lt;br /&gt;
Happy-guy: Should we make a Remix together?&lt;br /&gt;
Evil-guy: Allright.&lt;br /&gt;
Together: We are a good team!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
	<pubDate>Fri, 27 Jan 2012 02:13:13 +0000</pubDate>
</item>
<item>
	<title>Giu: Read Through: 'Mathematics: A Very Short Introduction' by Timothy Gowers</title>
	<guid>http://giu.me/writings/Read-Through-Mathematics-A-Very-Short-Introduction-by-Timothy-Gowers</guid>
	<link>http://giu.me/writings/Read-Through-Mathematics-A-Very-Short-Introduction-by-Timothy-Gowers.html</link>
	<description>&lt;p&gt;While I was looking for a specific book in one of the math bookshelfs in the Orell Füssli bookstore at Bellevue a few weeks ago, a rather small book managed to catch my attention because of the quite unusual but striking color of its cover (unusual for a math book, that is).&lt;/p&gt;

&lt;p&gt;My first thought was simply that somebody deliberately put this book in the wrong shelf, but after picking it up and reading the title I was pleasantly surprised:&lt;/p&gt;

&lt;div&gt;
    &lt;img class=&quot;centerimage&quot; src=&quot;http://giu.me/images/mathematics_timothy_gowers.png&quot; alt=&quot;'Mathematics: A Very Short Introduction'&quot; title=&quot;'Mathematics: A Very Short Introduction'&quot; /&gt;
&lt;/div&gt;


&lt;p&gt;I already knew who Timothy Gowers is (a prominent British mathematician and recipient of the Fields Medal, which sometimes is referred to as &lt;em&gt;the Nobel Prize in Mathematics&lt;/em&gt;), since I own another excellent book written by him, namely &lt;a href=&quot;http://www.amazon.de/gp/product/0691118809?ie=UTF8&amp;tag=giusjour-21&amp;linkCode=xm2&amp;camp=1638&amp;creativeASIN=0691118809&quot;&gt;&lt;em&gt;The Princeton Companion To Mathematics&lt;/em&gt;&lt;/a&gt; (I haven't read completely through it, though).&lt;/p&gt;

&lt;p&gt;The next logical step for me after such a pleasant find was to simply purchase this conspicuously looking book, and I'm really glad I did it.&lt;/p&gt;

&lt;h2&gt;Small But Mighty&lt;/h2&gt;

&lt;p&gt;The book &lt;em&gt;Mathematics: A Very Short Introduction&lt;/em&gt;, although being an introduction to mathematics (including some advanced topics) is a rather exciting excursion and learning experience in various mathematical topics. It starts with the explanation of how abstraction can be used to build mathematical models of existing systems, and then presents the reader with chapters covering numbers, proofs, limits and infinity, dimension, geometry, estimates and approximates, and ends with some interesting frequently asked questions.&lt;/p&gt;

&lt;p&gt;Although it touches the one or other advanced mathematical topic, Mister Gowers definitely managed to do a very good job explaining the various mathematical topics as simple as possible. The various chapters are also spiked with a lot of examples, images and proofs, which help grasp the various presented concepts better.&lt;/p&gt;

&lt;p&gt;Personally, I liked the &lt;em&gt;Dimension&lt;/em&gt; chapter the most, since it was one of the more revealing chapters for me.&lt;/p&gt;

&lt;p&gt;The following is a paraphrased passage from that chapter (I read the German edition of the book):&lt;/p&gt;

&lt;p&gt;Imagine we want to draw a simple circle. Drawing a two-dimensional circle is a rather simple task. Add an additional dimension and we are able to draw the equivalent of a circle in the third dimension, namely a sphere. The interesting question now is: what happens if we move one dimension higher and start thinking about drawing a four-dimensional sphere? Is this even possible, and if so, what is this new form called and what does it look like?&lt;/p&gt;

&lt;p&gt;This is where the author perfectly brings in the word &lt;em&gt;abstraction&lt;/em&gt;. He just describes a circle or a sphere without ever mentioning the dimensions:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;A circle or sphere is a set of points with a certain distance from a given point.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Having previously defined a distance function using the same abstraction (no mention of the dimension), we can now simply use the definition of a circle to construct spheres in the fourth or even twenty-seventh dimension.&lt;/p&gt;

&lt;p&gt;This chapter was quite the learning experience for me, because a) I never delved into higher-dimensional geometry, and b) as soon as I began reading this chapter I started thinking about the mere impossibility to picture what a four-dimensional sphere may look like, let alone the vast number of things one could do with such a &lt;em&gt;sphere&lt;/em&gt;. But right after I read the above-mentioned passage it just clicked. Why trying to do the impossible and imagine what such a figure may look like in higher dimensions? Just abstract its most important properties without ever mentioning the word &lt;em&gt;dimension&lt;/em&gt;, and work with the new definition in higher dimensions.&lt;/p&gt;

&lt;p&gt;I really enjoyed reading this book. Beside the various interesting topics the book covered, the author did a really good writing job; it is written in quite a captivating style thanks to the fact that it reflects very well Mister Gowers's appreciation for the subject.&lt;/p&gt;

&lt;p&gt;This book definitely earns 5 out of 5 stars!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.amazon.de/gp/product/0192853619/ref=as_li_tf_tl?ie=UTF8&amp;tag=giusjour-21&amp;linkCode=as2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=0192853619&quot;&gt;'&lt;em&gt;Mathematics: A Very Short Introduction&lt;/em&gt;' at Amazon.de&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.amazon.de/gp/product/3150187060/ref=as_li_tf_tl?ie=UTF8&amp;tag=giusjour-21&amp;linkCode=as2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=3150187060&quot;&gt;'&lt;em&gt;Mathematics: A Very Short Introduction&lt;/em&gt;' (German edition) at Amazon.de&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Wed, 18 Jan 2012 00:00:00 +0000</pubDate>
</item>
<item>
	<title>Giu: LaTeX: Smoothly Embedding Figures Inside the 'multicols' Environment</title>
	<guid>http://giu.me/linkings/LaTeX-Smoothly-Embedding-Figures-Inside-the-multicols-Environment</guid>
	<link>http://giu.me/linkings/LaTeX-Smoothly-Embedding-Figures-Inside-the-multicols-Environment.html</link>
	<description>&lt;p&gt;The presented LaTeX snippet is full of magic, but it will solve your '&lt;em&gt;Package multicol Warning: Floats and marginpars not allowed inside `multicols' environment!&lt;/em&gt;' problem for sure&lt;/p&gt;</description>
	<pubDate>Tue, 17 Jan 2012 00:00:00 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Soundcloud이 좋아요 / Soundcloud rocks</title>
	<guid>http://www.gamlor.info/wordpress/?p=2213</guid>
	<link>http://www.gamlor.info/wordpress/2012/01/soundcloud-is-cool/</link>
	<description>&lt;p&gt;나는 &lt;a href=&quot;http://soundcloud.com/&quot;&gt;Soundcloud을 &lt;/a&gt;진짜 좋아해요. Soundcloud는 음악 웹사이트으로, 사용자가 음악을 들을 수 있고 업로드할 수 있어요. Soundcloud에서 좋은 전자 음악가하고, 리믹스가 만드는 게하고, 매시업 만드는 게  많아요. 그라고 Soundcloud는 많이 기능이  있어요:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;검색엔진하고, 태그 구름하고,  그룹 있어서 , 새로운 음악 발견하기 쉬워요.&lt;/li&gt;
&lt;li&gt;댓글 쓰기 쉬워요. 그리고, 어떤 시간에 댓글 할 수 있어요.&lt;/li&gt;
&lt;li&gt;업로드하고 공유하기 쉬워요.&lt;/li&gt;
&lt;li&gt;트위터처럼  음악가를 팔로우해요.&lt;/li&gt;
&lt;li&gt;광고가 없어요.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;당신은 전자 음악이 좋아서  &lt;a href=&quot;http://soundcloud.com/&quot;&gt;Soundcloud을&lt;/a&gt; 봐보세요! 그리고&lt;a href=&quot;http://soundcloud.com/gamlor&quot;&gt; 내 믹스 테이프기 Soundcloud에&lt;/a&gt; 있어요 =).&lt;/p&gt;
&lt;p&gt;다음 블로그 포스트에 난 좋은 &lt;a href=&quot;http://soundcloud.com/&quot;&gt;Soundcloud&lt;/a&gt;의 사람 얘기할 거에요.&lt;/p&gt;
&lt;div id=&quot;attachment_2221&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/soundcloud.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2221&quot; title=&quot;soundcloud&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/soundcloud-300x172.png&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;172&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Soundcloud 끝내줘요&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;I really like Soundcloud. Soundcloud is a music website where users can listen and upload music. There are many good electronic music composers, remixers and mashup creators on Souncloud. And Soundcloud itself has some nice featueres:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It is easy to discover music with its search, tag-clouds and group featuers.&lt;/li&gt;
&lt;li&gt;Commenting is easy. And you even can leave a comment at a particular time.&lt;/li&gt;
&lt;li&gt;Uploading and sharing is easy.&lt;/li&gt;
&lt;li&gt;Like Twitter, you can follow artists.&lt;/li&gt;
&lt;li&gt;There are no ads.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you like electronic music you should check out &lt;a href=&quot;http://soundcloud.com/&quot;&gt;Soundcloud&lt;/a&gt;. And &lt;a href=&quot;http://soundcloud.com/gamlor&quot;&gt;my mixtapes&lt;/a&gt; are on there!&lt;/p&gt;
&lt;p&gt;In the next blog post I&amp;#8217;m going to talk about some of my favorite people on Soundcloud.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
	<pubDate>Mon, 16 Jan 2012 14:18:52 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Flower Boy Ramyun Shop</title>
	<guid>http://www.gamlor.info/wordpress/?p=2199</guid>
	<link>http://www.gamlor.info/wordpress/2012/01/flower-boy-ramyun-shop/</link>
	<description>&lt;p&gt;Boy meets Girl…trouble and fun…fall in love…yada yada yada …&lt;br /&gt;
&lt;div id=&quot;attachment_2206&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/flower-boy-ramyun-shop.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/flower-boy-ramyun-shop-300x224.png&quot; alt=&quot;Ramyun, yummie&quot; title=&quot;flower-boy-ramyun-shop&quot; width=&quot;300&quot; height=&quot;224&quot; class=&quot;size-medium wp-image-2206&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Ramyun, yummie&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Yes, Boy Ramyun Shop doesn’t need a plot description, it is a cliché driven romantic-comedy. I mean really cliché driven. This show goes along with every cheesy and formula plot point. Basically our two main characters first meet in an ‘accident’-situation. Later on they meet again in a more permanent situation. They argue and hate each other, but can&amp;#8217;t really let go of each other and fall in love. Finally they live happily ever after. Oooooooohhhh, how cute.&lt;/p&gt;
&lt;p&gt;Given this kind of show, there are countless cheesy and silly scenes. The characters are mostly naïve and fulfill some stereotype. Additionally there is a tons of overacting. Especially the lead actress overacts the shit out of her role. When you think this isn’t enough, they sometimes add small cartoon animations and comic-sound effects to underline scenes. All in all, it is way over the top.&lt;/p&gt;
&lt;p&gt;This all sounds negative, and it kind of is. However I nevertheless love ‘Flower Boy Ramyun Shop’. For me it has the exact right balance of ‘over-the-topless’, silliness, foreseeable jokes and enjoyable badness. It is somewhat a guilty pleasure. What makes this show it work for me are the likable characters. I liked all characters, including the ‘asshole’-characters. I don’t mind stereotype characters as long as I enjoy them =).&lt;/p&gt;
&lt;p&gt;Can I recommend it? Rationally: NO WAY. Had I fun watching it? HELL YES. It’s one off the funniest series I’ve watched for quite a long time. I think this series has a sharp line between being liked and hated. If you like over-the-top stuff, watch the first (half) episode and decide. Or maybe your already put off by the scenes I’ve liked below =)&lt;/p&gt;
&lt;p&gt;Rational-Star-O-Meter: (2/5)&lt;br /&gt;
Enjoyment-Star-O-Meter: (4/5)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Trailers: Again, there are no good trailers around =(&lt;/p&gt;
&lt;p&gt;Dead-boring English subtitled trailer:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Super silly over the top scene. No subtitles, but gives a better impression. (Well, there are also normal scenes =) ):&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 13 Jan 2012 01:38:35 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Annoying Void in C# / Java / alike</title>
	<guid>http://www.gamlor.info/wordpress/?p=2191</guid>
	<link>http://www.gamlor.info/wordpress/2012/01/annoying-void-in-c-java-alike/</link>
	<description>&lt;p&gt;One thing which regularly annoys me in C# and Java is the void type. Basically the void type is not a subtype of object, which makes it giant. Now when you write something which accepts a function as an argument you need two version: A version which accepts a function which returns something and a version which accepts a ‘void-returning’-function (the Action delegates in C#).&lt;/p&gt;
&lt;div id=&quot;attachment_2195&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/void-oh-void.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2195&quot; title=&quot;void-oh-void&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/void-oh-void-300x187.png&quot; alt=&quot;Void Is Not Cool Enough&quot; width=&quot;300&quot; height=&quot;187&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Void Is Not Cool Enough &lt;/p&gt;&lt;/div&gt;
&lt;p&gt;In my code I often end up doing something like this:&lt;/p&gt;
&lt;div id=&quot;gist-1597380&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;	&lt;span class=&quot;c1&quot;&gt;// Stuff like transactions, run in contexts, binding methods etc etc.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;	&lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;T&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;WithSomeContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Func&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;runInContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;	&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;		&lt;span class=&quot;c1&quot;&gt;// do magic and stuff&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;		&lt;span class=&quot;n&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;runInContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;		&lt;span class=&quot;c1&quot;&gt;// do other stuff&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;		&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;	&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;	&lt;span class=&quot;c1&quot;&gt;// Doublicate to also accept Void returns&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot;&gt;	&lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;WithSomeContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Action&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;runInContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC14&quot;&gt;	&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC15&quot;&gt;		&lt;span class=&quot;n&quot;&gt;WithSomeContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;(()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC16&quot;&gt;			&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC17&quot;&gt;				&lt;span class=&quot;n&quot;&gt;runInContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC18&quot;&gt;				&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC19&quot;&gt;			&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC20&quot;&gt;	&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC21&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC22&quot;&gt;	&lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;UseIt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC23&quot;&gt;	&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC24&quot;&gt;		&lt;span class=&quot;n&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueOne&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC25&quot;&gt;		&lt;span class=&quot;n&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueTwo&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC26&quot;&gt;		&lt;span class=&quot;c1&quot;&gt;// with return value&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC27&quot;&gt;		&lt;span class=&quot;n&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;WithSomeContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueOne&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueTwo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC28&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC29&quot;&gt;		&lt;span class=&quot;n&quot;&gt;WithSomeContext&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WriteLine&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Hi-There&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC30&quot;&gt;	&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC31&quot;&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1597380/2c7baf9becb16465b3109433f82e7965b942a407/InCSharp.cs&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1597380#file_in_c_sharp.cs&quot;&gt;InCSharp.cs&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1597380&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;That’s just boilerplate which I really don’t need. In many other languages, for example Scala, this is handled more elegantly. The void-type (often called Unit) is a regular type. And void/unit values just represent ‘void/unit‘:&lt;/p&gt;
&lt;div id=&quot;gist-1597380&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Example&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;withContext&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;runInContext&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()=&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;T&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;={&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c1&quot;&gt;// do magic and stuff&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;runInContext&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c1&quot;&gt;// do other stuff&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c1&quot;&gt;// no need for another method. &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c1&quot;&gt;// Our withContext also can accept 'void'-returns aka Unit &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;useIt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC14&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueOne&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC15&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueTwo&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC17&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;withContext&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueOne&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valueTwo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC18&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC19&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;withContext&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Hi-There&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;));&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC20&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC21&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC22&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1597380/bef752273b24b5861e717cb26f9f34d2654c2bbd/InScala.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1597380#file_in_scala.scala&quot;&gt;InScala.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1597380&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Yes, I know, it’s not the end of the (programming) world. There are tons of other issues which lead to more boiler-plate. Anyhow, it is such a little thing and still so god damn annoying. God help us that no new programming includes the same little weakness =).&lt;/p&gt;</description>
	<pubDate>Thu, 12 Jan 2012 00:26:27 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: 한국어 배우기 / Learning Korean for Fun and Profit</title>
	<guid>http://www.gamlor.info/wordpress/?p=2176</guid>
	<link>http://www.gamlor.info/wordpress/2012/01/learning-korean/</link>
	<description>&lt;p&gt;난 미쳤어요 그리고 한국어 배워요. 그래서 아직 많이 몰라요. 근데, 한국어를 배우는게 재미있어요. 먼저 난 한국 드라마하고 음악-비디오 봤어요. 잠시 후에 넌 문자를 알고 싶어서 한글을 배워봤어요. 그러면 첫 단어하고 첫 문장 배왔어요 그리고 그만둬야 안돼요. 그래서, 난 이 블로그-포스트를 써요. 더 많은 블로그-포스트를 한국어로 쓸 거에요.&lt;/p&gt;
&lt;div id=&quot;attachment_2183&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/learning-korean.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2183&quot; title=&quot;learning-korean&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2012/01/learning-korean.png&quot; alt=&quot;&quot; width=&quot;580&quot; height=&quot;374&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;한글 쉬워요!&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Ah yes, I&amp;#8217;m learning Korean. How the hell did I end up learning that? Well I wanted to learn something non-technical like a language for a long time. First wanted to relearn French or learn something easy (close to German/English) like Dutch, but never could motivate me. Then I thought that I should learn something completely different, like Russian, Chinese or whatever. Of course I never started to do it.&lt;/p&gt;
&lt;p&gt;So how did I end up with Korean? Well that one kind of sneaked onto me. While watching Korean movies and stuff I started to wonder what strange writing system they use. It didn&amp;#8217;t look anything like Chinese or Japanese, nor like anything &amp;#8216;European&amp;#8217;-like. So one day I looked it up and learned the basics of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Hangul&quot;&gt;Hangul &lt;/a&gt;writing system. And because Hangul is damn easy I kept going. Of course a writing system without words is useless, so I started to learn the first basic words. And I kind of never stopped learning. Now I find it fun to learn some bits here and there and I keep going.&lt;/p&gt;
&lt;p&gt;The original purpose of this blog was to practise English, so now I come back its roots and start practising Korean here =). For the readers sake I will add a English translation to each post. Also because my Korean is probably so wrong that it is not understandable XD. Of course the content will be very trivial, since I&amp;#8217;m a beginner.&lt;/p&gt;
&lt;h2&gt;Comic-Content&lt;/h2&gt;
&lt;p&gt;On the Board: Hangul &amp;#8216;characters&amp;#8217; with there &amp;#8216;pronounciation&amp;#8217;. Don&amp;#8217;t use this as a reference XD&lt;/p&gt;
&lt;p&gt;The Guy: What is Hangul? Learning Korean was a bad idea!&lt;/p&gt;</description>
	<pubDate>Mon, 09 Jan 2012 00:14:43 +0000</pubDate>
</item>
<item>
	<title>Giu: LaTeX error: 'Package inputenc Error: Unicode char \u8: not set up for use with LaTeX'</title>
	<guid>http://giu.me/linkings/Package-inputenc-Error-Unicode-char-u8-not-set-up-for-use-with-LaTeX</guid>
	<link>http://giu.me/linkings/Package-inputenc-Error-Unicode-char-u8-not-set-up-for-use-with-LaTeX.html</link>
	<description>&lt;p&gt;Solution: Just remove and add all the spaces again&lt;/p&gt;</description>
	<pubDate>Mon, 02 Jan 2012 00:00:00 +0000</pubDate>
</item>
<item>
	<title>Giu: Wikipedia TeX Source Extractor</title>
	<guid>http://giu.me/writings/Wikipedia-TeX-Source-Extractor</guid>
	<link>http://giu.me/writings/Wikipedia-TeX-Source-Extractor.html</link>
	<description>&lt;p&gt;Earlier today I wrote a little GreaseMonkey user script called &lt;a href=&quot;http://userscripts.org/scripts/show/121713&quot;&gt;Wikipedia TeX Source Extractor&lt;/a&gt; (WTSE).&lt;/p&gt;

&lt;p&gt;If you ever felt the need to copy the TeX source of a formula while reading various mathematical entries on Wikipedia, WTSE will help you achieve that. Once you click on the desired formula, a textbox with the formula's TeX source already selected will appear; you now only have to hit &lt;code&gt;CTRL-C&lt;/code&gt; and you're good to go. It's as simple as that.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://giu.me/images/entries/wikipedia-tex-source-extractor.png&quot; title=&quot;Screenshot of the Wikipedia TeX Source Extractor&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can &lt;a href=&quot;http://userscripts.org/scripts/show/121713&quot;&gt;install WTSE from its userscripts.org page&lt;/a&gt;, or you can fork it from &lt;a href=&quot;https://github.com/giu/wikipedia-tex-source-extractor&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Thu, 29 Dec 2011 00:00:00 +0000</pubDate>
</item>
<item>
	<title>Giu: One Up</title>
	<guid>http://giu.me/writings/One-Up</guid>
	<link>http://giu.me/writings/One-Up.html</link>
	<description>&lt;p&gt;It happened again: I decided to change my journal's layout, but this time I went further and decided to switch the backend, too. My journal doesn't run on WordPress anymore; instead, it's now served as a bunch of static HTML pages that are generated by the awesome tool that &lt;a href=&quot;http://www.jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; is.&lt;/p&gt;

&lt;p&gt;If you've never heard of Jekyll, the idea behind it is quite simple: you give Jekyll various types of files (layout files, content files, etc.) written in various markup languages of choice (HTML, Markdown, Textile), and Jekyll will give you a bunch of static HTML pages in return. If you want to learn more about Jekyll, I recommend you to &lt;a href=&quot;https://github.com/mojombo/jekyll/wiki&quot;&gt;head over to its wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The approach of using Jekyll instead of WordPress brings quite some advantages along that convinced me to do the switch:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Every page is statically served, so the server will be able to a) serve the pages much faster, and b) handle quite a lot of incoming traffic should the need ever arise;&lt;/li&gt;
&lt;li&gt;I don't need a database anymore;&lt;/li&gt;
&lt;li&gt;I'm using &lt;a href=&quot;http://sublimetext.com&quot;&gt;my favourite text editor&lt;/a&gt; with &lt;a href=&quot;http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/&quot;&gt;my favourite color scheme&lt;/a&gt; configured to write this post; I'm feeling all warm and fuzzy right now because of this;&lt;/li&gt;
&lt;li&gt;I don't need to login using an unsecure connection to manage my journal, and can use &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/SSH_File_Transfer_Protocol&quot;&gt;SFTP&lt;/a&gt; or even a simple &lt;code&gt;git push&lt;/code&gt; (see &lt;a href=&quot;http://pages.github.com/&quot;&gt;GitHub User Pages&lt;/a&gt;) instead (I'm currently using SFTP), and;&lt;/li&gt;
&lt;li&gt;All I need for my new backend to work now are files containing some markup, meaning I can use &lt;a href=&quot;http://git-scm.com/&quot;&gt;git&lt;/a&gt; to put &lt;em&gt;everything&lt;/em&gt; under version control&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I've also decided to restart from scratch with this journal, meaning that you won't find most of the entries from the old journal around here anymore. If you're looking for specific entries from the past, don't hesitate to &lt;a href=&quot;http://feeds.feedburner.com/contact.html&quot;&gt;contact me&lt;/a&gt; and I'll look what I can do.&lt;/p&gt;

&lt;p&gt;My journal is still under construction at this moment, but I guess it's a good start to have something showing up again after the server transfer.&lt;/p&gt;</description>
	<pubDate>Wed, 28 Dec 2011 00:00:00 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: City Hunter</title>
	<guid>http://www.gamlor.info/wordpress/?p=2162</guid>
	<link>http://www.gamlor.info/wordpress/2011/12/city-hunter/</link>
	<description>&lt;p&gt;The Year 1983, a terrible terror attack happens: The Rangoon bombing. Shortly afterwards five officials, who assume that North Korea is behind the bombing, decide to do a secret revenge attack. They recruit some of their best soldiers and sent them to North Korea to kill military leaders. However during the operation the officials decide to back out from the illegal mission. To sweep the operation under the carpet they give the command to kill their own people. When the elite troop returns, their own allied u-boat opens fire. Everyone dies, except Lee Jin-Pyo. He swears revenge to the five officials who planned the mission. So Lee Jin-Pyo hides in the Golden Triangle in Southeast Asia. He also brings up Lee Yoon Sung, a son of his dead comrade. He trains Yoon Sung to fight to execute his revenge together. After years Lee Jin-Pyo and Lee Yoon Sung return to South Korea to finally revenge their dead comrades.&lt;/p&gt;
&lt;div id=&quot;attachment_2166&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/city-hunter.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2166&quot; title=&quot;city-hunter&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/city-hunter-300x208.png&quot; alt=&quot;Which Cities Did He Hunt?&quot; width=&quot;300&quot; height=&quot;208&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Which Cities Did He Hunt?&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;City Hunter (&lt;a href=&quot;http://www.hancinema.net/korean_drama_City_Hunter.php&quot;&gt;Hancinema&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/City_Hunter_(TV_series)&quot;&gt;Wikipedia&lt;/a&gt;) is a revenge action-romance drama, which focuses on Lee Yoon Sung&amp;#8217;s struggle between revenge and a regular life. He tries to avoid relationships to avoid bringing loved ones in danger. Of course he fails miserable. Additionally he slowly finds out that his foster-father didn’t tell the whole truth about his past.&lt;/p&gt;
&lt;p&gt;After watching the first episode I was really fired up. The episode did a great job in setting up the story, was quite action packed and promised a great, gritty and furious revenge drama. A revenge where they endlessly fight, make their lives more and more miserable, end up in a filthy prison cell where they kill each other with toothbrushes. Well the second episode quickly destroyed my hope for that, because the show started with its romance part and side stories. Actually the romance and other side stories are a big part of the content, glued together with the revenge plot. Not that the show is bad after the first episode, but I just hoped for something different. All in all it’s a show with well paced story-telling and likeable characters.&lt;/p&gt;
&lt;p&gt;Apparently the series is based on a &lt;a href=&quot;http://en.wikipedia.org/wiki/City_Hunter&quot;&gt;manga&lt;/a&gt;. Well, I haven’t read it and can’t judge how strongly it is related. My guess is that is quite loosely based and that.&lt;/p&gt;
&lt;p&gt;What my final verdict? Well I enjoyed watching City Hunter, despite my hope for a different kind of show. However I’m not sure to whom I would recommend it. For an ‘action-thriller’ oriented audience there is probably a little too much ‘romance’ in there. For a soap opera replacement is to ‘serious’. Probably you should just watch the first two to three episodes to get an impression =).&lt;/p&gt;
&lt;p&gt;Star-O-Meter: (3.5/5)&lt;/p&gt;
&lt;p&gt;Trailers, again without subtitles =(. Well the trailers are so generic anyway.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Tue, 27 Dec 2011 20:57:28 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Yeah, Akka 2.0</title>
	<guid>http://www.gamlor.info/wordpress/?p=2148</guid>
	<link>http://www.gamlor.info/wordpress/2011/12/yeah-akka-20/</link>
	<description>&lt;p&gt;The first pre release bits of Akka 2.0 have been released. Unfortunately I haven’t looked all that deep into it yet. However, what I’ve seen really impresses me. It fixes nearly all major issues which Akka 1.2 and feels way more mature in its overall design.&lt;/p&gt;
&lt;p&gt;It feels like it can be the back-bone of an application, even when you use it to organizing big chunks of distinct functionality. When you start a project / experiment now start with Akka 2.0! It’s a much better experience than 1.2!&lt;/p&gt;
&lt;div id=&quot;attachment_2154&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/akka-20.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2154&quot; title=&quot;akka-20&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/akka-20-300x132.png&quot; alt=&quot;Akka 2.0&quot; width=&quot;300&quot; height=&quot;132&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Akka 2.0 &lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;What I Really Like About it&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;No god damn Singleton anymore. In Akka 1.2 the configuration and the remoting instance where hard wired Singletons. That made it really annoying to set up elaborate test cases, shut down the system cleanly etc. In Akka 2.0 you can start up as many ‘ActorSystem’-instances as you want, each one with its own configuration, setup etc.&lt;/li&gt;
&lt;li&gt;Supervision is mandatory and easier to configure. In Akka 1.2 you can create actors without any parent and supervision. This basically also meant that errors just ‘disappeared’ and you only noticed stuff the log. In Akka 2.0 a supervision hierarchy is enforced. Error are past up to the appropriate supervisor. If you don’t specify anything the error basically will end up at the top level actor system.&lt;/li&gt;
&lt;li&gt;The path-system. Now actors are basically addressed by file-system like paths. This is handy to get to the right actors. It’s also handy for error-logs: Instead of a cryptic UUID you get a ‘human-readable’ path.&lt;/li&gt;
&lt;li&gt;Streamlined API. Nearly all API’s have been improved and streamlined.&lt;/li&gt;
&lt;/ul&gt;
&lt;div id=&quot;attachment_2155&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/supervision-in-akka.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2155&quot; title=&quot;supervision-in-akka&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/supervision-in-akka-300x209.png&quot; alt=&quot;Supervision Mandatory&quot; width=&quot;300&quot; height=&quot;209&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Supervision Mandatory&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;What I Don’t Like About It&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Many, many breaking changes in the API, behavior etc. Of course all these fundamental improvements are not possible without breaking the API. However, porting stuff to new API’s is just no fun work.&lt;/li&gt;
&lt;li&gt;The core jar is larger. Not a big deal for most cases, except for Android. Anyway, I run everything through Proguard anyway. And I believe that the internals got more efficient. =)&lt;/li&gt;
&lt;/ul&gt;
&lt;div id=&quot;attachment_2156&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/larger-akka-20.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2156&quot; title=&quot;larger-akka-20&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/larger-akka-20-249x300.png&quot; alt=&quot;Akka 2.0 is a tiny bit larger (and a lot stronger)&quot; width=&quot;249&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Akka 2.0 is a tiny bit larger (and a lot stronger)&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;Akka-Mobile and Akka 2.0&lt;/h2&gt;
&lt;p&gt;In general I’m stabilizing my Akka-Mobile code right now and fix some catastrophic bugs. After that I certainly will move everything to 2.0. I’m not planning to keep it on the 1.2/1.3 release. This is the plan:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stabilize stuff.&lt;/li&gt;
&lt;li&gt;Move to Akka 2.0&lt;/li&gt;
&lt;li&gt;Write documentation and a tiny demo App&lt;/li&gt;
&lt;li&gt;Keep on improving the thing =)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ok, this was kind of a lazy ass blog-post. For more information go the &lt;a href=&quot;http://blog.typesafe.com/akka-20-pre-release-milestone-1&quot;&gt;Akka-blog&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://akka.io/docs/akka/snapshot/index.html&quot;&gt;Snapshot&lt;/a&gt;-documentation.&lt;/p&gt;</description>
	<pubDate>Mon, 26 Dec 2011 18:21:13 +0000</pubDate>
</item>
<item>
	<title>Fabio Ferrari: Rückblick 2011</title>
	<guid>http://techtalk.fabio.li/wordpress/?p=913</guid>
	<link>http://techtalk.fabio.li/wordpress/?p=913</link>
	<description>&lt;p&gt;Das Jahr 2011 neigt sich langsam dem Ende entgegen. Zeit für einen kurzen Rückblick in Zahlen. &lt;img src=&quot;http://techtalk.fabio.li/wordpress/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;186&lt;/strong&gt; RSS Feed Subscriber (Leserinnen und Leser) meines Techtalks&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;13/13&lt;/strong&gt; Modulprüfungen im Rahmen des Masterstudiums überstanden&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;480&lt;/strong&gt; Stunden Vorlesungen gehabt&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7787&lt;/strong&gt; A4 Seiten fürs Studium gebüffelt&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;327&lt;/strong&gt; A4 Seiten Zusammenfassung geschrieben&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;170&lt;/strong&gt; Stunden für die Zusammenfassungen benötigt&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;288&lt;/strong&gt; Stunden für Prüfungen gelernt&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;14352&lt;/strong&gt; km mit dem Auto gefahren&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;712&lt;/strong&gt; Seemeilen am &amp;#8220;Böttlä&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9053&lt;/strong&gt; mein neuer Wohnort&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;23 &lt;/strong&gt; erholsame Tage in der Armee, Good bye&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1696&lt;/strong&gt; Stunden beim Arbeitgeber gearbeitet&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;913&lt;/strong&gt; Facebook &amp;#8220;Freunde, Kollegen, Bekannte&amp;#8221;&lt;/p&gt;
&lt;p&gt;Ich wünsche Euch eine schöne Weihnachtszeit und für das Jahr 2012 alles Gute.&lt;/p&gt;
&lt;p&gt;Beste Grüsse&lt;/p&gt;
&lt;p&gt;Fabio&lt;/p&gt;
 &lt;img src=&quot;http://techtalk.fabio.li/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&amp;post_id=913&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 23 Dec 2011 06:47:55 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Doctor Who Second Half of Series 6 *Spoilers*</title>
	<guid>http://www.gamlor.info/wordpress/?p=2131</guid>
	<link>http://www.gamlor.info/wordpress/2011/12/doctor-who-second-half-of-series-6/</link>
	<description>&lt;p&gt;Somehow it took a while until I’ve managed to watch the second half and write the post. Anyway, here are some thoughts about the second part.&lt;/p&gt;
&lt;div id=&quot;attachment_2136&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/series6-part2.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2136&quot; title=&quot;series6-part2&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/series6-part2.png&quot; alt=&quot;Doctor Who Series 6&quot; width=&quot;600&quot; height=&quot;534&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Doctor Who Series 6&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;Let&amp;#8217;s Kill Hitler (S06E08)&lt;/h2&gt;
&lt;p&gt;Amy and Rory call the doctor by creating crop circle. When the Doctor arrives Amy’s friend Mel forces the Doctor to go to 1938 in order to kill Hitler. However Mel is not the only one with this plan.&lt;/p&gt;
&lt;p&gt;Another fast pasted, but sometimes a little overwhelming episode.  I’ve nothing to add here.&lt;/p&gt;
&lt;div id=&quot;attachment_2137&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/lets-kill-hitler.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2137&quot; title=&quot;lets-kill-hitler&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/lets-kill-hitler-300x206.png&quot; alt=&quot;Let's Kill Hitler&quot; width=&quot;300&quot; height=&quot;206&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Let's Kill Hitler&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;Night Terrors (S06E09)&lt;/h2&gt;
&lt;p&gt;The Doctor is contacted by a little boy who’s frightened of nearly everything in his neighborhood. So the Doctor, Amy and Rory try to find out what is so frightening. Soon they discover that the boy’s fears have life threating consequences.&lt;/p&gt;
&lt;p&gt;This episode could be a horror movie. It has a dark and ‘scary’ atmosphere, an unknown thread and even a one person after another gets ‘killed’. Since I really enjoy horror movies I like such episodes. For such episodes I sometimes wish that they could target an adult only audience and be even more like a horror movie. Well that’s certainly not going happen.  And it works well without any gruesome images =).&lt;/p&gt;
&lt;div id=&quot;attachment_2138&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/night-terrors.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2138&quot; title=&quot;night-terrors&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/night-terrors-300x280.png&quot; alt=&quot;Night Terrors&quot; width=&quot;300&quot; height=&quot;280&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Night Terrors&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;The Girl Who Waited (S06E10)&lt;/h2&gt;
&lt;p&gt;Our team arrives on a top holiday planet. However all the inhabitants are gone. The only thing left are strange rooms and very ‘friendly’ robots. Soon our trio is trouble due to time-manipulations and this little trips ends in a rescue mission.&lt;/p&gt;
&lt;p&gt;Another episode with a brilliant time-traveling /-messing content. Great story with a cool concept, well executed. The only nitpicking is that the ‘moral’-talk isn’t all that great.&lt;/p&gt;
&lt;div id=&quot;attachment_2139&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/the-girl-who-waited.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2139&quot; title=&quot;the-girl-who-waited&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/the-girl-who-waited-300x211.png&quot; alt=&quot;The Girl Who Waited&quot; width=&quot;300&quot; height=&quot;211&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;The Girl Who Waited&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;The God Complex (S06E11)&lt;/h2&gt;
&lt;p&gt;The Tardis lands in a ‘cheep-looking’ Hotel. Soon our trio finds a few ‘survivor’ in the strange Hotel. Furthermore the Hotel floors seem to shift and each room contains a ‘surprise’ for a specific person. After the person sees his surprise he dies sooner or later.&lt;/p&gt;
&lt;p&gt;This is another horror-movie…eeehm….episode. It even has a cool Monster in it. Love this one!&lt;/p&gt;
&lt;div id=&quot;attachment_2140&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/the-god-complex.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2140&quot; title=&quot;the-god-complex&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/the-god-complex-300x230.png&quot; alt=&quot;The God Complex&quot; width=&quot;300&quot; height=&quot;230&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;The God Complex&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;Closing Time (S06E12)&lt;/h2&gt;
&lt;p&gt;After the Doctor left Amy &amp;amp; Rory at home he visits Greg from the series 5 ‘Lodger’ episode. And his short visits ends again in an adventure.&lt;/p&gt;
&lt;p&gt;This is super straight forward episode, nothing special.&lt;/p&gt;
&lt;div id=&quot;attachment_2141&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/closing-time.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2141&quot; title=&quot;closing-time&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/closing-time-300x231.png&quot; alt=&quot;Closing Time&quot; width=&quot;300&quot; height=&quot;231&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Closing Time&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;The Wedding of River Song (S06E13)&lt;/h2&gt;
&lt;p&gt;The final episode in which the Doctor dies, as we already know from the first episode. The Silence are back and kill the Doctor for good this time!&lt;/p&gt;
&lt;p&gt;So the final episode wraps up the story with the Silence, the Doctors death and River Song. I think it works quite well. Of course the Doctors situation gets more and more desperate and his death is unavoidable. But in the end we get some super-duper ‘the Doctor tricked everyone’ ending. I was entertained and have nothing to complain about.&lt;/p&gt;
&lt;div id=&quot;attachment_2142&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/the-wedding-of-song.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2142&quot; title=&quot;the-wedding-of-song&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/12/the-wedding-of-song-300x183.png&quot; alt=&quot;The Wedding of River Song&quot; width=&quot;300&quot; height=&quot;183&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;The Wedding of River Song&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Well first it seems that the budget of this season was a lot bigger than series 5. The production value is a lot better: Better and more variant sets, wonderful big area shots, good masks and passable CGI. Job well done.&lt;/p&gt;
&lt;p&gt;There also have been many dark, ‘horror’-style-ish episodes which I really enjoy. The ‘main’-plot episodes are often a little confusing and overwhelming. Sometimes it feels like the writers are just adding one ‘twist’ after another. You could certainly tear this stuff apart and find a quazillon plot holes. But as long as it’s fun to watch I don’t care!&lt;/p&gt;
&lt;p&gt;Here’s the trailer for the second half:&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Thu, 15 Dec 2011 23:01:21 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Akka-Mobile: First Code Snippets</title>
	<guid>http://www.gamlor.info/wordpress/?p=2113</guid>
	<link>http://www.gamlor.info/wordpress/2011/11/akka-mobile-first-code-snippet/</link>
	<description>&lt;p&gt;So far I’ve only talked about &lt;a href=&quot;http://www.gamlor.info/wordpress/2011/11/akka-mobile-unreliable-connections-and-push-messages/&quot;&gt;the idea / concept&lt;/a&gt;of the Akka-Mobile. This time I show some small code examples =). Of course the current implementation is a uncompleted prototype. The implementation itself throws not implemented exceptions around every corner or has other unknown behavior. The API is nowhere near completion or final stage. Anyhow I just want show how it ‘feels’ like and throw in a few comments. Also keep in mind that Akka 2.0 is not that far away, and I will almost certainly move to it sooner or later.&lt;/p&gt;
&lt;div id=&quot;attachment_2122&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/code-drop.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2122&quot; title=&quot;First look at code&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/code-drop-300x90.png&quot; alt=&quot;First Look at Code&quot; width=&quot;300&quot; height=&quot;90&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;First Look at Code&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;The Server&lt;/h2&gt;
&lt;p&gt;First let’s start a server. This is easily done by calling NettyRemoteServer.start() which starts up the server and listens to the specified port. Don’t confuse this with the regular Akka 1.2 remote actors. The mobile actors will use their own server-implementation. That’s also quite intentional: We want to expose only certain ‘service’ actors to our mobile clients and keep the rest internal to our cluster / internal infrastructure.&lt;/p&gt;
&lt;p&gt;After that we can register regular actor to the given server instance. These actors then are reachable by the mobile clients under the given id. For example a ultra simple actor which just echoes the request:&lt;/p&gt;
&lt;div id=&quot;gist-1387130&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chatServer&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;NettyRemoteServer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2552&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;span class=&quot;n&quot;&gt;chatServer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;register&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;chat-service&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Actor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;actorOf&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;ChatServerActor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;])&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ChatServerActor&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Actor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;protected&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;receive&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reply&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Answer for: &amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1387130/5f3e8eb7d1157e842fc000121d00cced1dad7a1f/TheServer.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130#file_the_server.scala&quot;&gt;TheServer.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Well that’s not very exiting. It’s nearly identical to the regular Akka 1.2 remote actor.&lt;/p&gt;
&lt;h2&gt;On The Android Device&lt;/h2&gt;
&lt;p&gt;Now let’s move on to the Android device. The first thing we need to do is to &lt;a href=&quot;https://github.com/pboos/scala-on-android-example#readme&quot;&gt;get Scala running&lt;/a&gt; =). Then we start with a normal ‘main’ activity. Optionally we can use the trait ‘ActivityActor’ which turns our activity into an actor. Any message send to the activity will be dispatched on the ‘activity’ thread, so that we can update the UI etc. Like this:&lt;/p&gt;
&lt;div id=&quot;gist-1387130&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;AkkaDroidActivity&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Activity&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ActivityActor&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;override&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;onCreate&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;savedInstanceState&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;Bundle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;onCreate&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;savedInstanceState&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;setContentView&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;actorOf&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;DoSomeWork&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;protected&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;receive&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;WorkDone&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;happend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inputTextBox&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;findViewById&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;enterMsgBox&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;asInstanceOf&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;EditText&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;inputTextBox&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;setText&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;happend&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC14&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC15&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC16&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC17&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC18&quot;&gt;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;WorkDone&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC19&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC20&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;DoSomeWork&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Actor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC21&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC22&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;protected&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;receive&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC23&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;Start&amp;quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC24&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;workForAWhile&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC25&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reply&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC26&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC27&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt; &lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC28&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC29&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;workForAWhile&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;={&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC30&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c1&quot;&gt;// work work &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC31&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;s&quot;&gt;&amp;quot;work-done&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC32&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC33&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1387130/d05d95f580f8c4f20bc1a313b94b541ad47a09a3/ActivityAsActor.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130#file_activity_as_actor.scala&quot;&gt;ActivityAsActor.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;Remote Actors&lt;/h3&gt;
&lt;p&gt;For remote actors we need a client instance, usually one per application. When creating such an instance we need to pass in a Android context, which allows the remote implementation to get to Android resources. The other arguments are optional or loaded from the configuration.  I’ve put my remote instance in the global application object which is then registered in the Android manifest.&lt;/p&gt;
&lt;div id=&quot;gist-1387130&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c1&quot;&gt;// Registred in the AndroidManifest as our application object&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;MyApplication&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;android&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;Application&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;lazy&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;remote&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;MobileRemoteClient&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;createClient&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nc&quot;&gt;AndroidDevice&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;))&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1387130/704d155461d09dc9b79e9ee781fbea2a96028c01/TheRemoteInterface.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130#file_the_remote_interface.scala&quot;&gt;TheRemoteInterface.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In the akka.conf we specify the host, port and preferably the Logcat logger:&lt;/p&gt;
&lt;div id=&quot;gist-1387130&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;akka {&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&amp;nbsp;&amp;nbsp;event-handlers = [&amp;quot;akka.mobile.android.LogcatLogger&amp;quot;]&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;event-handler-level = &amp;quot;DEBUG&amp;quot; # Options: ERROR, WARNING, INFO, DEBUG&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;mobile{&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;client{&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;host = &amp;quot;our.server.host&amp;quot;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port = 2552&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;}&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1387130/879374aef87d255d0f16a614fb6caecea977e614/akka.conf&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130#file_akka.conf&quot;&gt;akka.conf&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;After that we can get references to actors on the server by name and send messages to them. So we now can communicate with the actors on the server. Nice =)&lt;/p&gt;
&lt;div id=&quot;gist-1387130&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ChatClientActor&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Actor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;protected&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;receive&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;SentToServer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;	  &lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chatService&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;MyApplication&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;remote&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;actorFor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;chat-service&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;chatService&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;MessageFromServer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c1&quot;&gt;// well, show the message or do what is needed	&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt; &lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1387130/ea8ef4c8a5a3fc7e3aec0d909cb0aee3cff330d6/ChatClientActor.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130#file_chat_client_actor.scala&quot;&gt;ChatClientActor.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;‘Push’-Messages&lt;/h2&gt;
&lt;p&gt;So far so good, we’ve connected from the Android device to the server, got a reference to it and started communicating with it.&lt;/p&gt;
&lt;p&gt;But what if the server wants to initiate the communication with a client? To do that we register an actor on our remote instace! The server will later be able to contact this client-actor by its name:&lt;/p&gt;
&lt;p&gt;The first thing we need is an ‘address’ for a client. Since mobile devices are on the move, they don&amp;#8217;t permanent IP address. Akka mobile provides a ‘clientId&amp;#8217; as a replacement. You can get that id in multiple way. For example when a server-side actor is communicatong with a Android device the self-reference will contain this client id. With the trait ServiceActor you get a nice accessor:&lt;/p&gt;
&lt;div id=&quot;gist-1387130&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;TalksToMobileDevices&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Actor&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ServiceActor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;protected&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;receive&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reply&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Answer for: &amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;clientId&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;clientId&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;clientId&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;isDefined&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;){&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c1&quot;&gt;// store it in database. So that you later can talk to this client&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1387130/8f801c24faac263a9e72e22bb244e11c29f0c157/GetClientID.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130#file_get_client_id.scala&quot;&gt;GetClientID.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;As soon as we have a client id  we can get an reference for an actor running on the device and start sending messages to it.&lt;/p&gt;
&lt;div id=&quot;gist-1387130&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;clientId&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// clientId. Like from the database&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;serviceOnPhone&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chatServer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;actorOf&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;clientId&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;notifications&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;span class=&quot;n&quot;&gt;serviceOnPhone&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;Hi Phone&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1387130/face3031918ebd7023b2d6046b6a964856e82136/TalkToServiceOnPhone.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130#file_talk_to_service_on_phone.scala&quot;&gt;TalkToServiceOnPhone.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1387130&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;attachment_2123&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/c2md-support.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2123&quot; title=&quot;Pushing Messages to the Client&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/c2md-support.png&quot; alt=&quot;Pushing Messages to the Client&quot; width=&quot;500&quot; height=&quot;466&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Pushing Messages to the Client&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;But Wait, What if the Device is Offline?&lt;/h2&gt;
&lt;p&gt;Now the stuff I&amp;#8217;ve showed so far only works as long as the Phone has a connection to the Server. What if the Phone is offline? Or the application isn&amp;#8217;t running. Well here&amp;#8217;s where the C2MD integration comes in. Akka mobile can deliver messages via C2MD. Here&amp;#8217;s a short overview how it works.&lt;/p&gt;
&lt;h3&gt;Preparation on the Server&lt;/h3&gt;
&lt;p&gt;First we need to configure the Server to support C2MD: We need to add two things: The C2MD authentication key for talking to the C2MD servers and a database backend. The database backend is required to store the registration ids of all devices.&lt;/p&gt;
&lt;p&gt;So in the akka.conf configuration we add:&lt;/p&gt;
&lt;div id=&quot;gist-1428024&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;akka {&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&amp;nbsp;&amp;nbsp;event-handlers = [&amp;quot;akka.mobile.android.LogcatLogger&amp;quot;]&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;event-handler-level = &amp;quot;DEBUG&amp;quot; # Options: ERROR, WARNING, INFO, DEBUG&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;mobile{&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;client{&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;host = &amp;quot;our.server.host&amp;quot;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port = 2552&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c2md{&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;email=&amp;quot;the-c2md-email@thecompany&amp;quot;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;register-mode = &amp;quot;AUTO&amp;quot; # Possible values: MANUAL, AUTO, default is MANUAL&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC14&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC15&quot;&gt;}&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1428024/e726a78c7a45873eee25e4f6d1b4943eea6e2676/akka-conf-on-client.conf&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024#file_akka_conf_on_client.conf&quot;&gt;akka-conf-on-client.conf&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And we start the server with a given database :&lt;/p&gt;
&lt;div id=&quot;gist-1428024&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chatServer&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;NettyRemoteServer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2552&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;database&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Some&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;H2Database&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;jdbc:h2:~/apiKeyStore&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)));&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1428024/f38f63033876a91b6ceb3617734d0795e9f22c60/ServerWithDB.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024#file_server_with_db.scala&quot;&gt;ServerWithDB.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;Preparation on the Client&lt;/h3&gt;
&lt;p&gt;On the client we also update the akka.conf. We add the email for which the C2MD service is registered:&lt;/p&gt;
&lt;div id=&quot;gist-1428024&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;akka {&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobile{&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c2md{&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;key=&amp;quot;Your Application Key for C2MD&amp;quot;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;}&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1428024/9cac4dc0b3b79c06dc355c108706bf7c641ed727/akka-conf-on-server.conf&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024#file_akka_conf_on_server.conf&quot;&gt;akka-conf-on-server.conf&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Additionally we need a broad cast receiver which handles the C2MD intents. We inherit the &amp;#8216;C2MDReceiver&amp;#8217; -trait and implement the &amp;#8216;remoteClient&amp;#8217; method. In that method we return our instance of the akka-mobile remote client which our application is using. In this example I&amp;#8217;ve that instance  in the application object and get it from there (via ugly cast, don&amp;#8217;t hit me).&lt;/p&gt;
&lt;div id=&quot;gist-1428024&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;DispatchToAkka&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;C2MDReceiver&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;remoteClient&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;Context&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getApplicationContext&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;asInstanceOf&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;MyApplication&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;remote&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1428024/579c3a2b0c3f04be7365688767dbf8f64373f97b/BroadcastReceiver.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024#file_broadcast_receiver.scala&quot;&gt;BroadcastReceiver.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In the Android Manifest you need to get the permissions for C2MD and register the broadcast receiver previously created:&lt;/p&gt;
&lt;div id=&quot;gist-1428024&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;manifest&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xmlns:android=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;package=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;info.gamlor.akkamobile&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;android:versionCode=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;android:versionName=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;android:debuggable=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;uses-sdk&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:minSdkVersion=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;10&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;permission&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;info.gamlor.akkamobile.permission.C2D_MESSAGE&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:protectionLevel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;signature&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;uses-permission&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;info.gamlor.akkamobile.permission.C2D_MESSAGE&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;uses-permission&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;android.permission.INTERNET&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;uses-permission&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;com.google.android.c2dm.permission.RECEIVE&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC14&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC15&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;application&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;.MyApplication&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:label=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;@string/app_name&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:icon=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;@drawable/icon&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;android:debuggable=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC17&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Activities etc --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC18&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC19&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Our Broadcast receiver for integration C2MD with akka-mobile --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;receiver&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;.DispatchToAkka&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC21&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;android:permission=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;com.google.android.c2dm.permission.SEND&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC22&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;intent-filter&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC23&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;action&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;com.google.android.c2dm.intent.REGISTRATION&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC24&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;category&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;info.gamlor.akkamobile&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC25&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/intent-filter&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC26&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;intent-filter&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC27&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;action&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;com.google.android.c2dm.intent.RECEIVE&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC28&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;category&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;android:name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;info.gamlor.akkamobile&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC29&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/intent-filter&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC30&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/receiver&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC31&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/application&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC32&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/manifest&amp;gt;&lt;/span&gt; &lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC33&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1428024/c6ad1c8348ad20aac6e159a039003dde0a6b87cc/AndroidManifest.xml&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024#file_android_manifest.xml&quot;&gt;AndroidManifest.xml&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;After that akka mobile is ready to use C2MD. It will register the application automatically and report its registration-id to out server as soon as the remote-instance is created. Or you can optionally disable the auto-registration and use &amp;#8216;requestC2MDRegistration()&amp;#8217; to start the C2MD registration at a certain point in time.&lt;/p&gt;
&lt;h3&gt;Sending a Message over C2MD&lt;/h3&gt;
&lt;p&gt;Now messages are still not sent with C2MD if no connection is available. The reason is that akka-mobile wants to prevent that we send hundreds of messages via C2MD by accident. We should be very careful and only sent important notifications over C2MD. There are two ways to achieve that.&lt;/p&gt;
&lt;p&gt;One is to use the marker-trait  &amp;#8217;SentThroughC2MDIfNoConnectionIsAvailable&amp;#8217;  in your message. If a message implements this trait it will be delivered via C2MD if no connection is found.&lt;/p&gt;
&lt;div id=&quot;gist-1428024&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ImportantNotification&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;SentThroughC2MDIfNoConnectionIsAvailable&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1428024/d10d3b3259a5d7b5e2dac9a5a98d2329d98aa528/ForceC2MD.scala&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024#file_force_c2_md.scala&quot;&gt;ForceC2MD.scala&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1428024&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The other possibility is by using a &amp;#8216;error&amp;#8217;-handler which falls back on C2MD if no connection can be established. However I explain error-handlers next time, since they are quite central to the whole communication stack.&lt;/p&gt;
&lt;h2&gt;Stuff Still To Implement for a Proper Prototype&lt;/h2&gt;
&lt;p&gt;So, that the first look at how akka-mobile will work. There still tons of things to do. Also very basic stuff:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improve stability, test-suite and build-process.&lt;/li&gt;
&lt;li&gt;Better integration with Android, especially the connection-manager. Maybe also with power management.&lt;/li&gt;
&lt;li&gt;&amp;#8216;Session&amp;#8217; actors on the server&lt;/li&gt;
&lt;li&gt;Better serialization story. Currently only Java Serialization is supported. Java serialization always makes me nervous.&lt;/li&gt;
&lt;li&gt;Error-Handler API has to improve, a lot. More about that next time.&lt;/li&gt;
&lt;li&gt;Do some basic performance analysis.&lt;/li&gt;
&lt;li&gt;Finally start on &amp;#8216;cool&amp;#8217; features&amp;#8230;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Otherwise I&amp;#8217;ve tons of other features I want to tackle, but those above are really needed to get to a more stable state.&lt;/p&gt;
&lt;div id=&quot;attachment_2124&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/todo-akka-mobile.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2124&quot; title=&quot;todo-akka-mobile&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/todo-akka-mobile.png&quot; alt=&quot;Lot's of Things to Do&quot; width=&quot;557&quot; height=&quot;400&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Lot's of Things to Do&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;Conclusion and Next Time&lt;/h2&gt;
&lt;p&gt;So we&amp;#8217;ve seen how we can setup the akka mobile remote actors. It allows us to have nice device to server communication between actors. It also allows us to fall back on C2MD messages when a client doesn&amp;#8217;t have a connection to a server.&lt;/p&gt;
&lt;p&gt;Next time I&amp;#8217;m going to talk about error-handlers. These are responsible for managing connection loses etc.&lt;/p&gt;</description>
	<pubDate>Wed, 30 Nov 2011 22:52:53 +0000</pubDate>
</item>
<item>
	<title>Fabio Ferrari: Gelesen: Das Edison Prinzip</title>
	<guid>http://techtalk.fabio.li/wordpress/?p=887</guid>
	<link>http://techtalk.fabio.li/wordpress/?p=887</link>
	<description>&lt;p&gt;Eine Erfindung ist kein Zufall, sondern kann gelernt sein. Im Rahmen des Moduls Innovationsmanagement und hinsichtlich der bevorstehenden Masterarbeit, setze ich mich mit diesem Thema intensiv auseinander. Dies ist für einen technischen Ingenieur gar nicht so einfach, bin ich doch stark befangen von technologischen Machbarkeitsüberlegungen.&lt;/p&gt;
&lt;p&gt;Die Worte von Steve Jobs &amp;#8220;If today were the last day of my life, would I want to do what I am about to do today?&amp;#8221; bringen mich zur Überzeugung &amp;#8220;Ich habe nicht einen Tag meines Lebens gearbeitet. Es war alles Spass.&amp;#8221; und las auf Empfehlung eines Studienkollegen das Buch &amp;#8220;Das Edision Prinzip&amp;#8221;. Nachfolgend einige interessante Aussagen aus dem Buch, die bei neuen Ideen sehr zentral sind.&lt;/p&gt;
&lt;h3&gt;Kreativität&lt;/h3&gt;
&lt;p&gt;Chancen zu erkennen, die andere nicht sehen &amp;#8211; das ist der erste Schlüssel zu mehr Kreativität. Je mehr Chancen ich zu Beginn sehe, desto mehr Wege werde ich zu neuen Ideen finden. Und je mehr Wege ich finde, desto mehr Ideen kann ich entwickeln.&lt;/p&gt;
&lt;h3&gt;Vorgehensweise (Optimal wäre ein Innovationsprozess)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Erfolgschancen erkennen:&lt;/strong&gt; Was sind die Schwächen der Glühbirne? Wie könnte sie noch besser und haltbarer sein?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Denkautobahn verlassen:&lt;/strong&gt; Welche unterschiedlichen Möglichkeiten gibt es, diese Schwachpunkte zu verbessern? Welche neuen Wege habe ich noch nicht ausprobiert?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inspirtationen suchen:&lt;/strong&gt; Welche Materialien gibt es noch? Wo gibt es Ideen, die ich übertragen kann?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spannung erzeugen:&lt;/strong&gt; Wie kann ich neue Ideen durch neue Kombinationen entwickeln?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ordnen und optimieren:&lt;/strong&gt; Ist das Konzept wirklich schon das beste? Gibt es nicht doch noch ein besseres?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nutzen maximieren:&lt;/strong&gt; Wie können wir mit der Neuentwicklung unseren Vorsprung ausgbauen? Wie können wir das Gesamtsystem verbessern.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fragetechniken&lt;/h3&gt;
&lt;p&gt;Um Schwächen des Produktes aufzudecken, kann auch eine Frage gestellt werden: Was kann das Produkt NICHT?&lt;/p&gt;
&lt;p&gt;Man nehme eine Tabelle. Schreibe in die erste Spalte eine Assoziation. In der zweiten Spalte eine daraus formulierte Frage, die mit den Worten: &amp;#8220;Wie können wir &amp;#8230;? oder &amp;#8220;Wie kann ich &amp;#8230;?&amp;#8221; beginnt. Die Frageform hat eine psychologische Wirkung.  Das Gehirn wird regelrecht aufgefordert, kreativ zu werden.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-891&quot; title=&quot;Unbenannt&quot; src=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt-300x160.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;160&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Problemansatz&lt;/h3&gt;
&lt;p&gt;Ein Problem sieht nur aus der gleichen Perspektive immer gleich aus. Wenn die Sachlage aus einer anderen Perspektive betrachtet wird, sieht man es anders.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt1.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-894&quot; title=&quot;Unbenannt&quot; src=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt1-300x218.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fragen entwickeln&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt2.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-897&quot; title=&quot;Unbenannt&quot; src=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt2-300x247.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;247&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;und diese zu generellen Fragen umformulieren.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt4.jpg&quot;&gt;&lt;img title=&quot;Unbenannt&quot; src=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt4-300x168.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;168&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Abschliessend können noch Inspirationsquellen dazugenommen werden.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt5.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-901&quot; title=&quot;Unbenannt&quot; src=&quot;http://techtalk.fabio.li/wordpress/wp-content/uploads/2011/11/Unbenannt5-290x300.jpg&quot; alt=&quot;&quot; width=&quot;290&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Ideenumbennenung&lt;/h3&gt;
&lt;p&gt;Mit vielen Ideen kann man zunächst einmal nicht viel anfangen. Deshalb werden die absurden Ideen durch  Umbennen, Verändern und Weiterentwickeln wieder in den Bereich des Möglichen zurückgeführt:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Umbennen&lt;/strong&gt;: Können Sie der Idee einen anderen Namen geben, sodass sie attraktiv wird?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verändern&lt;/strong&gt;: Lassen sich die Idee oder TEile der Idee so verändern, dass die Idee in ein positives Denkschema passt?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Weiterentwickeln&lt;/strong&gt;: Ist es möglich, die Idee so weiterzuentwickeln, dass sie möglich statt unmöglich ist?&lt;/p&gt;
&lt;p&gt;Einige Beispiele&amp;#8230;&lt;/p&gt;
&lt;p&gt;Unmöglich: Reisen zu Naturkatastrophen&lt;br /&gt;
Variation: Umbenennen&lt;br /&gt;
Möglich: Vulkanreisen unter dem Motto &amp;#8220;Faszination Erde&amp;#8221;&lt;/p&gt;
&lt;p&gt;Unmöglich: Reisen in Kriegsgebiete&lt;br /&gt;
Variation: Verändern&lt;br /&gt;
Möglich: Reisen unter dem Motto &amp;#8220;Orte, die Geschichte machen&amp;#8221;&lt;/p&gt;
&lt;p&gt;Unmöglich: Alkoholiker Reisen&lt;br /&gt;
Variation: Verändern&lt;br /&gt;
Möglich: Wein-Reise in die Toskana, Reise zu Whisky-Destillerien nach Schottland&lt;/p&gt;
&lt;h3&gt;Fragen?&lt;/h3&gt;
&lt;p&gt;Mehr zu diesem Thema erhälst du bei Anfrage per Kontaktformular. Vergiss aber nicht! Wenn du eine geniale Idee hast, dann musst du diese lieben. In dir muss das Feuer ausbrechen!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 &lt;img src=&quot;http://techtalk.fabio.li/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&amp;post_id=887&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 19 Nov 2011 15:29:15 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: TV-Series Reviews and Stuff?</title>
	<guid>http://www.gamlor.info/wordpress/?p=2091</guid>
	<link>http://www.gamlor.info/wordpress/2011/11/tv-series-reviews-and-stuff/</link>
	<description>&lt;p&gt;No TV series review? Oh nooooesss. Yes, I definitely don’t watch as many TV series as I used too. I’m just too busy with other stuff.&lt;/p&gt;
&lt;p&gt;Torchwood: Miracle Day is on pause. I don&amp;#8217;t like the first three or four episodes. The story is silly (ok, that’s was also in previous series the case), too much annoying ‘morale blah-blah’-ish stuff, no ‘enemy’ or driving plot. I was bored. Has anyone watched the whole thing? Do you think it is worth finishing?&lt;/p&gt;
&lt;p&gt;I’m catching up on Doctor Who though, expect a ‘detailed’ review as always =).&lt;/p&gt;
&lt;p&gt;Anyway I did watch quite a lot of ‘new’ series, but mostly cheesy and soapy ‘romantic-comedy’ stuff. Feels like my estrogens-hormone levels have risen with every minute of watching those &lt;img src=&quot;http://www.gamlor.info/wordpress/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt; . The point is, this stuff is not review worthy.&lt;/p&gt;
&lt;p&gt;For TV related stuff you might want check out &lt;a href=&quot;http://twitter.com/#!/knightASTIC&quot;&gt;@knightASTIC&lt;/a&gt;‘s new &lt;a href=&quot;http://knightastic.blogspot.com/&quot;&gt;blog&lt;/a&gt;, he’s the bigger TV series junkie than me =).&lt;/p&gt;
&lt;h2&gt;Mixtapes&lt;/h2&gt;
&lt;p&gt;A yes, I always need to promote my mixtapes \o/. I added a ‘&lt;a href=&quot;http://www.gamlor.info/wordpress/mixtapes/&quot;&gt;Mixtape’&lt;/a&gt;-section to this page which shows the latest tapes.&lt;/p&gt;
&lt;div id=&quot;attachment_2094&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/cover.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/cover-150x150.png&quot; alt=&quot;Let's Rock&quot; title=&quot;cover&quot; width=&quot;150&quot; height=&quot;150&quot; class=&quot;size-thumbnail wp-image-2094&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/cover1.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/cover1-150x150.png&quot; alt=&quot;Mixed Bag&quot; title=&quot;cover&quot; width=&quot;150&quot; height=&quot;150&quot; class=&quot;size-thumbnail wp-image-2097&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/cover2.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/cover2-150x150.png&quot; alt=&quot;Electro-House&quot; title=&quot;cover&quot; width=&quot;150&quot; height=&quot;150&quot; class=&quot;size-thumbnail wp-image-2098&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Let&amp;#039;s Rock, Mixed Bag and Electro-House&lt;/p&gt;&lt;/div&gt;
&lt;h3&gt;Rock Edition October&lt;/h3&gt;
&lt;p&gt;Hmm, rock tapes are still annoying to do.  I’m just not skilled enough to get a good flow through the tape. Anyway this tape it very moderate and could be played on Pop radio stations. It also has some very cheesy songs in there:&lt;/p&gt;
&lt;p&gt;   &lt;span&gt;&lt;a href=&quot;http://soundcloud.com/gamlor/gamlor-rock-mixtape-october&quot;&gt;Gamlor Rock Mixtape End of October&lt;/a&gt; by &lt;a href=&quot;http://soundcloud.com/gamlor&quot;&gt;Gamlor&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;
&lt;h3&gt;November Electro Tapes&lt;/h3&gt;
&lt;p&gt;The first one is mixed bag of electro-pop, –house and other electronic music. I really like this one:&lt;br /&gt;
   &lt;span&gt;&lt;a href=&quot;http://soundcloud.com/gamlor/gamlor-mixtape-begin-november&quot;&gt;Gamlor Electro Mixtape Begin of November 2011&lt;/a&gt; by &lt;a href=&quot;http://soundcloud.com/gamlor&quot;&gt;Gamlor&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;My latest one is a straight forward Electo-House mixtape:&lt;br /&gt;
   &lt;span&gt;&lt;a href=&quot;http://soundcloud.com/gamlor/electo-house-mid-november-2011&quot;&gt;Electro-House Mid-November 2011&lt;/a&gt; by &lt;a href=&quot;http://soundcloud.com/gamlor&quot;&gt;Gamlor&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;</description>
	<pubDate>Fri, 11 Nov 2011 00:17:37 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Akka-Mobile: Unreliable Connections, Push-Messages</title>
	<guid>http://www.gamlor.info/wordpress/?p=2079</guid>
	<link>http://www.gamlor.info/wordpress/2011/11/akka-mobile-unreliable-connections-and-push-messages/</link>
	<description>&lt;p&gt;Oh, it has been a while since &lt;a href=&quot;http://www.gamlor.info/wordpress/2011/10/akka-mobile-the-idea&quot;&gt;I’ve talked about my pet project&lt;/a&gt; =). This time I’m talking about the fundamental issues I want to tackle in the project.&lt;/p&gt;
&lt;h2&gt;Client-Server Oriented Remote Actors&lt;/h2&gt;
&lt;p&gt;The regular Akka remote actors in Akka 1.2 have an almost ‘symmetric’ implementation. To get the full ‘send’, ‘reply’ behavior you have to start up &lt;a href=&quot;http://stackoverflow.com/questions/7674468/reply-is-not-transmitted-back-to-the-client-actor&quot;&gt;a full Netty server on the ‘client’ and the ‘server’&lt;/a&gt;. And with the upcoming Akka 2.0 clustering this won’t change that much.&lt;/p&gt;
&lt;p&gt;In a mobile-device scenario this is bit different. We have a clear distinction: A small, lightweight application which is the client and a server (-cluster) which runs the service. The client should be small and lightweight and usually maintains one connection to the server. The server can be large, but needs to maintain many connections to many devices.&lt;/p&gt;
&lt;p&gt;Furthermore a connection is only in one way, from the client to the server. The server cannot directly contact a client. The client has almost certainly a dynamic, no public IP which changes a lot: Walking away from your Wi-Fi at home to a mobile network to another Wi-Fi hotspot. For an implementation that means the client needs to able to reconnect on network changes back to the server. And the server needs to use the latest connection when he wants to reply to a client.&lt;/p&gt;
&lt;div id=&quot;attachment_2080&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/asymmetric.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2080&quot; title=&quot;asymmetric&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/asymmetric.png&quot; alt=&quot;Bad Company for the Server&quot; width=&quot;600&quot; height=&quot;358&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Bad Company for the Server&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Unreliable Connections&lt;/h2&gt;
&lt;p&gt;The implementation needs to deal somehow with unreliable connections. I want to have a ‘supervisior’ hierarchy in place for this. For example the first layer just tries to reconnect immediately; the second layer waits a little to reconnect. The next layer it stores the message away for later or escalates the issue to the user etc. This should be configurable of course.&lt;/p&gt;
&lt;h2&gt;Push-Notifications/Message from the Server&lt;/h2&gt;
&lt;p&gt;One thing I want have in Akka-Mobile is ‘push-notification’ support. Basically I want be able to send a message to a mobile device and let the device react to it. The server maintains a database of known mobile devices. When he wants to notify a mobile device he grabs an Actor reference which represents that device and sends the message to the client. Then the implementation looks up if there’s an active connection available to that device. If that’s the case, it just sends the message to the device. Otherwise it will fall back to some other push-notification mechanism, for example the &lt;a href=&quot;http://code.google.com/android/c2dm/&quot;&gt;Android Cloud to Device Messaging Framework (C2MD)&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Behavior Overview&lt;/h2&gt;
&lt;p&gt;Here&amp;#8217;s a little sketch how it should work during active communication:&lt;/p&gt;
&lt;div id=&quot;attachment_2082&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/communication.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2082&quot; title=&quot;Communication With Akka Mobile&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/communication.png&quot; alt=&quot;Communication With Akka Mobile&quot; width=&quot;600&quot; height=&quot;714&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Communication With Akka Mobile&lt;/p&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;The Mobile Device / Client connects to the server, gets a reference to a remote actor, for example the actor &amp;#8220;John&amp;#8221; and sends a message to it.&lt;/li&gt;
&lt;li&gt;The server associates TCP connection with the device id (here &amp;#8220;Green Devil&amp;#8221;) and the forwards the message to the right actor.&lt;/li&gt;
&lt;li&gt;The actor does its thing. The actor can send as many messages back to the &amp;#8216;sender&amp;#8217;. It also can pass the actor reference to other actors and those actors can answer.&lt;/li&gt;
&lt;li&gt;When a message has to go back to the mobile device the server implementation looks up if there still a connection to the mobile device&amp;#8230;&lt;/li&gt;
&lt;li&gt;&amp;#8230;and sends the answers to the right actor on the mobile device.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now what happens when there&amp;#8217;s no connection from the mobile device to the server? That&amp;#8217;s when the C2MD service comes in. Then a message is send via that service to tell the mobile device that there are answers available on the server. Of course the has to be some kind of configuration which types of messages are important enough to cause this behavior. So the behaviors changes at step 4:&lt;/p&gt;
&lt;div id=&quot;attachment_2083&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/c2md.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2083&quot; title=&quot;Cloud To Mobile Device Integration&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/11/c2md.png&quot; alt=&quot;Cloud To Mobile Device Integration&quot; width=&quot;582&quot; height=&quot;1077&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Cloud To Mobile Device Integration&lt;/p&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li value=&quot;4&quot;&gt;The server detects that there is no active connection to the client. So he has to fall back to alternatives.&lt;/li&gt;
&lt;li&gt;He could issue a C2MD request to notify the client that there&amp;#8217;s stuff available for him.&lt;/li&gt;
&lt;li&gt;Let&amp;#8217;s Google do its job&lt;/li&gt;
&lt;li&gt;The client reconnects to get the answers/messages&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Akka Mobile has to deal with the changing and unreliable network topography. That&amp;#8217;s means tons of tedious implementation details and tons of work for me.&lt;/p&gt;
&lt;p&gt;Anyway, next time I will show code and talk less =)&lt;/p&gt;</description>
	<pubDate>Mon, 07 Nov 2011 19:02:06 +0000</pubDate>
</item>
<item>
	<title>Guido Zgraggen: Beach 2 Battleship</title>
	<guid>http://blog.zgraggen.name/archives/350</guid>
	<link>http://blog.zgraggen.name/archives/350</link>
	<description>&lt;p&gt;The racing season of 2011 is coming to an end. But I was going to end it with a Big Bang! My first Ironman. Yes technically it is a Iron-distance race since it is not a branded Ironman, but still the same distance.&lt;br /&gt;
After the&lt;a href=&quot;http://blog.zgraggen.name/archives/347&quot;&gt; Ironman70.3 World Championship in Las Vegas &lt;/a&gt;I didn&amp;#8217;t have time to train as much as I wanted. Moving to Seattle and starting my new Job had a big impact on my training schedule. At least I got two solid weeks with 12h of training in. That was it, after that I was tapering. In the last week before the race I had sleeping problems which is very unusual for me. I assume it was because it is a new distance and I wasn&amp;#8217;t prepared as well as I wished. But there was nothing I could do now. I arrived in Wilmington NC on Thursday and started the race preparation. This meant lots of pasta and 9h of solid sleep from Thursday to Friday. I realized that the biggest challenge will be the weather. The expected temperature in the morning was 3C together with rain and up to 30km/h wind.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swim&lt;/strong&gt;&lt;br /&gt;
It was really cold at the starting line, I couldn&amp;#8217;t wait till there was finally enough light that the Coastal Guard allowed the organizers to start the race. (15min late).&lt;br /&gt;
At the start I tried to stay calm and not get my heart rate too high. The water felt comfortable thanks to my skull cap and neoprene booties (which I bought for this race). It was pretty crowded at the beginning and a proper stroke was hard. For the first 5-10min I was constantly fighting for space. Even after that there were many people who couldn&amp;#8217;t swim a straight line and body contact was unavoidable. I tried to draft of people a couple times, but not with much luck. Swimming is my weakest part and I knew it would be a long swim since I have never swum that far before. It was a point to point swim which made it hard to judge how far along I am. While I was wondering how much of the distance I covered, I didn&amp;#8217;t pay much attention and a wave caught me off guard and I swallowed some water (ocean). I wasn&amp;#8217;t too happy about that, since I thought I wasn&amp;#8217;t even at the halfway point. But to my surprise, I realized a little later that we already passed the halfway point and were at the first turn. Wow, I guess the incoming tide is helping more than I thought. After two more turns, I was at the dock. I couldn&amp;#8217;t believe my watch. I swam the 3.8km in roughly 46min. This was about 20min faster than expected.&lt;br /&gt;
For all that I was that worried about the cold swim when I was planning this race. It turned out to be the warmest part of the race&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;T1&lt;/strong&gt;&lt;br /&gt;
This was the longest transition I ever had. The run from the dock to the bike was couple hundred meters long. But it was very nice that they offered two shower tents (one of them even warm) to wash off the salt water. As planned, I put on a bike-jersey, a bike jacket, gloves, and a cap for under the helmet. Being warm trumps being aerodynamic. &lt;img src=&quot;http://blog.zgraggen.name/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bike&lt;/strong&gt;&lt;br /&gt;
Right away on the bike I was feeling the cold weather. At least the wind wasn&amp;#8217;t too strong at the beginning. I quickly settled into my race pace at 30km/h. To my surprise my heart rate (HR) was much lower than expected. In the race preparation I decided to race by HR because the wind would make it hard to maintain a consistent speed. When I realized that my HR was lower, I kept that in mind for later on when I would be riding in the wind. Only 20min later we turned onto the highway and were facing a head wind. For some reason I had a hard time to keep my eyes open and I almost rode into a red cone which was separating the highway lane from the traffic. I tried to be more alert but a little while later it happened again. I was glad when we finally turned of the highway onto other streets where I was able to follow the white line on the curb of the rode.&lt;br /&gt;
An interesting thing which I realized was my cadence. My optimal cadence is around 90-95rpm. But due to the cold weather, I couldn&amp;#8217;t move my legs that fast and I constantly was below 85rpm. I had to focus hard to keep a higher cadence which normally is very natural for me. I remember checking my watch 2h into the race and thinking about giving up for the first time. I was miserable, I was cold, sometimes the wind would slow me down below 25km/h and that it started raining (even though very light) didn&amp;#8217;t help either. But then I remembered what I told Amy and my Parents. I made a commitment that I wouldn&amp;#8217;t give up, even if it meant that I would have to walk the whole Marathon at the end. So I was laughing it off thinking how pathetic it would be to give up only 2h into the ride.&lt;br /&gt;
I knew that key for this race would be the nutrition especially with the cold weather which doesn&amp;#8217;t make thirsty. I had to pee 3 times during the ride, which meant I was drinking enough. After 110km the clouds were clearing up. What a relieve, I started to feel better. Only 10km later we turned into a tail wind. Suddenly I was averaging &gt;40km/h with the same HR. What a great feeling and to top it off a little later the sun started shining. Live was/is good! Unbelievable that I was thinking about giving up a couple hours earlier.&lt;br /&gt;
To my surprise I started overtaking people who are doing the half distance. They started about 90min after us, but did only half the distance. I was wondering what they were thinking when we (rider from the full distance) were flying past them?&lt;br /&gt;
I was so excited to be done with the bike portion of the race that I started to go faster and my HR rose. So I had to hold myself back not to push too hard toward the end.&lt;br /&gt;
I finished the 180km in 5h43min. Even with the cold weather that was still 7min faster then I planned. Interesting fact, I consumed approximately 1800 calories during the bike ride.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;T2&lt;/strong&gt;&lt;br /&gt;
Finally in transition I jumped of the bike and noticed right away that my feet were feeling funny. They were numb from the cold and I had barely any feelings in them. So barefoot running was hard and painful. I ran to the changing tent and took of all the biking gear and put on the running shoes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Run&lt;/strong&gt;&lt;br /&gt;
I was VERY excited to start running. Finally my favorite part and besides my cold feet I was feeling great! I started off with what I considered an easy pace. Checking my HR revealed that I was just below 160 which was very reasonable. I passed the first mile marker at 7:10 which was faster then I planned, so I eased the pace a little. Originally, I had planned to run a 7:40min/mile (4:45min/km) pace, but since my HR was in check I wasn&amp;#8217;t too worried and kept a nice pace. Due to the strong wind on the bridges I lost my sun hat which I had been wearing in all my other races. I was sad about that, but since it fell into the swamp there was no way I could retrieve it. Well all the sacrifices I make for racing &lt;img src=&quot;http://blog.zgraggen.name/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
There were lots of half-distance people still on the course which were going considerable slower. All these people made it hard to count the competitors ahead of me or find someone to run with.&lt;br /&gt;
Early on in the run I decided that I am not going to walk till at least the half marathon point. I also realized that this might be a self fulfilling prophecy, which is why I added at least in there &lt;img src=&quot;http://blog.zgraggen.name/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&quot;http://blog.zgraggen.name/wp-content/uploads/img_9850_small.JPG&quot; title=&quot;Run-Beach2Battleship&quot;&gt;&lt;img src=&quot;http://blog.zgraggen.name/wp-content/uploads/img_9850_small.thumbnail.JPG&quot; alt=&quot;Run-Beach2Battleship&quot; /&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;
After 3 miles I saw my friends which were cheering for me which made me happier then I already was. I was cruising along and feeling great. In general all the cheering in downtown distracted from all the inner thinking and pain. Then suddenly my ankles started hurting but the pain went slowly away and then a mile or two later the same happened with my feet. That is when I realized that I must be getting my feeling back into my feet. What a weird experience.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;I was still focusing on nutrition and was drinking a cup of heed on every aid station (roughly every mile) even though I didn&amp;#8217;t like the taste of it.&lt;br /&gt;
Then I was at the turnaround point. I did the first 1/4 in a little over 46min. That is when my head went crazy. I could do a Boston qualifying time during an Ironman. How crazy would that be. But then I also knew that I eventually would slow down a little. So I said to myself just keep it going as far as you can and deal with it once it is not going that smooth anymore. The second half of the first lap was uneventful. I was still feeling good and having a consistent pace and HR. I started the second lap after 1h35 minutes. I was so psyched about that. I saw the race clock which said: 8h15 which meant if I would slow down less then 10min (1h45) for the second half I could finish under 10h. What a crazy though! But reality hit me soon after that. &lt;/p&gt;
&lt;p&gt;I noticed that my legs were tired and heavy so I walked a couple of steps up the next bridge but started running right after that. Then I was able to run for quite a while again, but I noticed how my legs got more and more tired. To make things worse my adductors started to cramp. I never had this muscle cramp before. Once it started cramping I walked for a bit and then started running again. I also started to take more time at the aid station. I drank some chicken-broth and coke and ate some pretzels. They also had many other things which seemed so delicious. Like Oreo cookies, I thought that wasn&amp;#8217;t fair to tease me like that and decided that I would go back and get some cookies after the race. When I was at the turnaround point, the only thing which came clear to me is that I was considerably slower and to my amusement I didn&amp;#8217;t even care. All I wanted was to finish this race and eat some pizza and Oreo cookies!&lt;br /&gt;
All the additional nutrition didn&amp;#8217;t seem to make the cramping better, except that my stomach was now upset now. At least I was still able to run at a decent pace when I was running. That is when I overtook an Asian girl who asked me on which lap I was. I signaled a #2 with my hand and she said: &amp;#8220;Wow. I would love to have your legs&amp;#8221;. I was smiling and thinking&amp;#8230; believe me you don&amp;#8217;t &lt;img src=&quot;http://blog.zgraggen.name/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
I noticed that I started to walk more frequent and also walked longer. I then attempted to only allow myself to walk if I was cramping which still happened often enough. In addition to that the wind also had picked up again. I couldn&amp;#8217;t wait to cross the finish line.&lt;br /&gt;
I finished my Marathon in 3h35min and an overall time for the whole Ironman of 10:15:24.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recovery&lt;/strong&gt;&lt;br /&gt;
I got a hot chocolate in the warming tent, received a massage, and ate 3 slices of Pizza and some Oreo cookies. The world started to look much better after that. I was pretty beat up the next day but was still able to walk more or less normal. The only thing which worried me was my ankles which started to get swollen. But now 4 days later they are almost back to normal size. I also gathered some more blue nails and a bloody blister (which I also never had before).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reflection&lt;/strong&gt;&lt;br /&gt;
Beach 2 Battleship is a very well organized race. I enjoyed it and would definitely recommend it to others, especially first timers (assumed it would be nicer weather).&lt;br /&gt;
I finished 35 out of about 500 men. After the race I was very happy with my time and that I finished it. But only two days later, I started to think that I could have done it faster if I would have been able to suffer more on the second half of the marathon. In hindsight (also considering the feedback I got from friends) it is funny that I was thinking that only two days after the race. My competitive nature plays some tricks on me sometimes. A week earlier I was worried since it was a new distance and that I didn&amp;#8217;t do proper training and then once I did it instead of enjoying my &amp;#8220;success&amp;#8221; I question myself why I had to walk that often. In either case for future races I might be worthwhile to do more mental training.&lt;/p&gt;
&lt;p&gt;Now I will have two whole weeks without a single workout. Well earned RECOVERY TIME &lt;img src=&quot;http://blog.zgraggen.name/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;HR - Chart:&lt;br /&gt;
&lt;a href=&quot;http://blog.zgraggen.name/wp-content/uploads/hr-beach2battleship.PNG&quot; title=&quot;HR-Beach2Battleship&quot;&gt;&lt;img src=&quot;http://blog.zgraggen.name/wp-content/uploads/hr-beach2battleship.thumbnail.PNG&quot; alt=&quot;HR-Beach2Battleship&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Time:&lt;br /&gt;
&lt;a href=&quot;http://blog.zgraggen.name/wp-content/uploads/timesbeach2battleship-2-cut.PNG&quot; title=&quot;Time-Beach2Battleship&quot;&gt;&lt;img src=&quot;http://blog.zgraggen.name/wp-content/uploads/timesbeach2battleship-2-cut.thumbnail.PNG&quot; alt=&quot;Time-Beach2Battleship&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks @Iris,Marcel and Melissa for the cheering. Congratulation to Adam who finished 3rd in our age group!&lt;/p&gt;</description>
	<pubDate>Thu, 03 Nov 2011 05:37:38 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Running Scala on Android</title>
	<guid>http://www.gamlor.info/wordpress/?p=2040</guid>
	<link>http://www.gamlor.info/wordpress/2011/10/running-scala-on-android/</link>
	<description>&lt;p&gt;For my little pet project &lt;a href=&quot;http://www.gamlor.info/wordpress/2011/10/akka-mobile-the-idea/&quot;&gt;Akka-Mobile&lt;/a&gt; I need to run Scala on Android. In theory this is dead simple. However in practice there are some issues. When you simply add the Scala runtime library to an Android project you will get an error during dexing. The reason is that the Scala runtime library is just too large. The way to get around this issue is to remove the class-files which aren’t required by your application. This is usually done with &lt;a href=&quot;http://proguard.sourceforge.net/&quot;&gt;Proguard&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&quot;attachment_2047&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/android-scala.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2047&quot; title=&quot;android-scala&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/android-scala-258x300.png&quot; alt=&quot;Scala on Android&quot; width=&quot;258&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Scala on Android&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;The Build Script&lt;/h2&gt;
&lt;p&gt;So you need to include Proguard in your build script. There are different ways to do it. I tried several existing build scripts from different people with mixed results. Finally I’ve settled with a script from &lt;a href=&quot;http://lamp.epfl.ch/~michelou/android/scala-to-android.html&quot;&gt;here&lt;/a&gt;. This site contains a description and steps you need to take.&lt;/p&gt;
&lt;p&gt;Basically you can download the &lt;a href=&quot;http://lampsvn.epfl.ch/svn-repos/scala/android-examples/trunk/android-sdk/HelloActivity/build-scala.xml&quot;&gt;build-scala.xml&lt;/a&gt; and the &lt;a href=&quot;http://lampsvn.epfl.ch/svn-repos/scala/android-examples/trunk/android-sdk/HelloActivity/proguard-template.cfg&quot;&gt;proguard-template&lt;/a&gt; from that website. Then you add this task to the default build.xml, right below the ‘setup’-tag:&lt;/p&gt;
&lt;div id=&quot;gist-1295985&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;setup&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;import&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;file=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;build-scala.xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Converts this project's .class files into .dex files --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;-post-compile&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;depends=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;-post-compile-scala&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1295985/e394058d6892275a8e05e12e484a10cb1dda9e61/build.xml&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985#file_build.xml&quot;&gt;build.xml&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Of course you need to set the right paths in the local.properties file on your dev machines. For example on mine:&lt;/p&gt;
&lt;div id=&quot;gist-1295985&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;na&quot;&gt;sdk.dir&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;C:\\progs\\android\\sdk&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;span class=&quot;na&quot;&gt;scala.dir&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;C:\\progs\\scala&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1295985/41eb398d426bdcaa595872b78e66d3d477aed0f8/local.properties&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985#file_local.properties&quot;&gt;local.properties&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Note that Proguard doesn’t like spaces and other special characters in file paths. I had trouble initially because of that. You either can ensure that everything is properly escaped or that you put everything in an appropriate location.&lt;/p&gt;
&lt;p&gt;I also added a newer version Proguard to my project, because the version shipped with Android had some bugs. So in the build.properties I have:&lt;/p&gt;
&lt;div id=&quot;gist-1295985&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Current proguard location for this project&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;na&quot;&gt;proguard.dir&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;./tools/proguard/&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1295985/34797e23c2fabe7c7fa9650b305875957f96e8a5/build.properties&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985#file_build.properties&quot;&gt;build.properties&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;That’s all. Of course I’ve done some project specific modifications to the original build file. Anyway, when you follow the instructions of the original page you &lt;a href=&quot;http://lamp.epfl.ch/~michelou/android/scala-to-android.html&quot;&gt;should be fine&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The IDE Setup&lt;/h2&gt;
&lt;p&gt;Of course the build script is only half the story. I want to use my IDE to edit and debug the code. I’m an IntelliJ user, so this is my IntelliJ setup. (I should check out Eclipse’s Scala support, I’ve heard that they put a lot of effort into it).&lt;/p&gt;
&lt;p&gt;First create (or import) the project like a regular Android project. Then also add the Scala facetted to the project. Now in theory you can compile and run that project. Unfortunately the dexing step will fail due to the large Scala runtime.&lt;/p&gt;
&lt;div id=&quot;attachment_2042&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/intellij-project-setup.png&quot;&gt;&lt;img class=&quot;size-full wp-image-2042&quot; title=&quot;intellij-project-setup&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/intellij-project-setup.png&quot; alt=&quot;Android and Scala Facette&quot; width=&quot;461&quot; height=&quot;224&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Android and Scala Facette&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Basically you need to replace the build step with your costume build step. I ‘unchecked’ the ‘make’ step in the run configuration and added an Ant step. Like this:&lt;/p&gt;
&lt;div id=&quot;attachment_2043&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/intellij-run-config.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2043&quot; title=&quot;intellij-run-config&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/intellij-run-config-300x190.png&quot; alt=&quot;Run Configuration&quot; width=&quot;300&quot; height=&quot;190&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Run Configuration&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can run any Ant target which builds the .apk for you. The only thing you need to ensure is that IntelliJ finds the apk-file. I created a special ‘debug-install’ target which compiles the project and copies the apk to the location where IntelliJ usually puts it. An alternative would be to configure IntelliJ to use your location. Here’s the Ant-Task for my IDE debugging:&lt;/p&gt;
&lt;div id=&quot;gist-1295985&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;debug-install&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;depends=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;debug&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;	&lt;span class=&quot;nt&quot;&gt;&amp;lt;copy&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;file=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;./bin/AkkaDroidApp-debug.apk&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;		&lt;span class=&quot;na&quot;&gt;tofile=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;./out/production/AkkaDroidApp/AkkaDroidApp.apk&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/target&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1295985/4227bf06d9640b03ace3bafd4912bbf933876504/build-2.xml&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985#file_build_2.xml&quot;&gt;build-2.xml&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1295985&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;After these steps everything should run in IntelliJ. When you use Run / Debug the Ant script will build the apk and IntelliJ will load it into the Emulator / Phone. Afterwards it just attaches to the process like normal. Everything should work, like the debugger etc.&lt;br /&gt;
&lt;a name=&quot;update40&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Update For Android 4.0 SDK&lt;/h2&gt;
&lt;p&gt;With the 4.0 SDK the standard Android build file has changed, so that the original script above doesn&amp;#8217;t seem to work anymore. You will get an error telling you that the build script is outdated. Here&amp;#8217;s what I&amp;#8217;ve done to get it to run:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I followed the instructions of the error message. I deleted the existing build.xml and then upgraded the project with: &amp;#8216;android update project &amp;#8211;path ./&amp;#8217;. (You need the android tools path in your PATH variable. Or use the complete path to the &amp;#8216;android&amp;#8217; command of your SDK).&lt;/li&gt;
&lt;li&gt;Then I re.added my Scala tasks in the build.xml:&lt;br /&gt;
&lt;div id=&quot;gist-1299279&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- version-tag: 1 --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;import&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;file=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${sdk.dir}/tools/ant/build.xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;	&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;import&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;file=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;build-scala.xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;-post-compile&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;depends=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;-post-compile-scala&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1299279/e0365dcd3bcb6c7be480ba8909b6dc8aa74d6796/build.xml&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279#file_build.xml&quot;&gt;build.xml&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Unfortunately the &amp;#8216;build-scala.xml&amp;#8217; file still had issues with the new SDK. I fixed two things. First the &amp;#8216;compile-scala&amp;#8217; task new depends on &amp;#8216;-compile&amp;#8217; instead of &amp;#8216;compile&amp;#8217;. I also removed the &amp;#8216;&amp;lt;src refid=&amp;#8221;project.libraries.src&amp;#8221;/&amp;gt;&amp;#8217; entry. Looks like this property isn&amp;#8217;t there anymore, but it wasn&amp;#8217;t used anyway in my project. The compile-scala task look now like this:&lt;br /&gt;
&lt;div id=&quot;gist-1299279&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;compile-scala&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;depends=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;-compile&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;if=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;contains.scala.sources&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;unless=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;do.not.compile&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;description=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Compiles project's .scala files into .class files&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;condition&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;property=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;logging&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;verbose&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;else=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;none&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;istrue&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${verbose}&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/condition&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;echo&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;message=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${scalac.banner}&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;level=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;info&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;taskname=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;scalac&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;scalac&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;destdir=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${out.classes.absolute.dir}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;bootclasspathref=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;android.target.classpath&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;logging=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${logging}&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;addparams=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${scalac.addparams}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;classpath=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${extensible.classpath}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;na&quot;&gt;classpathref=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;jar.libs.ref&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC14&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;src&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${source.absolute.dir}&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC15&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;src&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${gen.absolute.dir}&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;classpath&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC17&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;location=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${scala-library.jar}&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC18&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;fileset&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;dir=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${akka-lib-dir}&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;includes=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;*.jar&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/fileset&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC19&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;location=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- include compiled resources --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC21&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;location=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${out.classes.absolute.dir}&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC22&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;fileset&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;dir=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${extensible.libs.classpath}&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;includes=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;*.jar&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC23&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/classpath&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC24&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/scalac&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC25&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/target&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1299279/5982ceef638ac596131449fedec9894ef4125cf0/build-scala.xml&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279#file_build_scala.xml&quot;&gt;build-scala.xml&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;I added the property &amp;#8216;manifest.package&amp;#8217; which holds name of the top package. Looks like this property isn&amp;#8217;t defined anymore by the standard build. This property is used for Progard to keep those classes in your project. So for my project the &amp;#8216;ant.properties&amp;#8217; file now looks like this:&lt;br /&gt;
&lt;div id=&quot;gist-1299279&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;na&quot;&gt;scalac.addparams&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;-deprecation&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;&lt;span class=&quot;na&quot;&gt;proguard.dir&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;./tools/proguard&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;&lt;span class=&quot;na&quot;&gt;manifest.package&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;info.gamlor.akkamobile&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1299279/c626d919d3dc6d23cdd83cfe3f1c4df14b190d21/ant.properties&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279#file_ant.properties&quot;&gt;ant.properties&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;The last change I&amp;#8217;ve done is in the &amp;#8216;-post-compile-scala&amp;#8217; task. Here the &amp;#8216;build.mode.debug&amp;#8217; and &amp;#8216;build.mode.release&amp;#8217; flags are no longer set. Instead the &amp;#8216;build.target&amp;#8217; property contains the build type. So I&amp;#8217;ve changed that in the &amp;#8216;-post-compile-scala&amp;#8217; task:&lt;div id=&quot;gist-1299279&quot; class=&quot;gist&quot;&gt;

        &lt;div class=&quot;gist-file&quot;&gt;
          &lt;div class=&quot;gist-data gist-syntax&quot;&gt;
              &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;-post-compile-scala&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;depends=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;compile-scala&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;unless=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;do.not.compile&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot;&gt;		&lt;span class=&quot;na&quot;&gt;description=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Shrink project class files and Scala library into one .jar file&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot;&gt;	&lt;span class=&quot;nt&quot;&gt;&amp;lt;condition&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;property=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;debug.mode&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;else=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;#DEBUG#&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot;&gt;		 &lt;span class=&quot;nt&quot;&gt;&amp;lt;equals&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;arg1=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${build.target}&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;arg2=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;debug&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;	&lt;span class=&quot;nt&quot;&gt;&amp;lt;/condition&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;	&lt;span class=&quot;nt&quot;&gt;&amp;lt;condition&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;property=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;release.mode&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;else=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;#RELEASE#&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot;&gt;		 &lt;span class=&quot;nt&quot;&gt;&amp;lt;equals&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;arg1=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;${build.target}&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;arg2=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;release&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot;&gt;	&lt;span class=&quot;nt&quot;&gt;&amp;lt;/condition&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot;&gt;	&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- priority is given to local ProGuard configuration if present --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
          &lt;/div&gt;

          &lt;div class=&quot;gist-meta&quot;&gt;
            &lt;a href=&quot;https://gist.github.com/raw/1299279/4abd93117dc1abf877ed5dc3000c9301f38ce17e/build-scala-second-change.xml&quot;&gt;view raw&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279#file_build_scala_second_change.xml&quot;&gt;build-scala-second-change.xml&lt;/a&gt;
            &lt;a href=&quot;https://gist.github.com/1299279&quot;&gt;This Gist&lt;/a&gt; brought to you by &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;.
          &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Second &amp;#038; Third Update&lt;/h2&gt;
&lt;p&gt;First I&amp;#8217;ve fixed another thing above so that debugging works with the Android 4.0 SDK. Then I&amp;#8217;ve created an example project which should work with the Android 4.0 SDK and incorporates all my changes as explained above. Then Patrick Boos improved that even further. Thanks a lot. You can find the &lt;a href=&quot;https://github.com/pboos/scala-on-android-example#readme&quot;&gt;example project on GitHub (https://github.com/pboos/scala-on-android-example#readme)&lt;/a&gt; . Don&amp;#8217;t forget to fix the local.properties for your environment. And remember that Proguard doesn&amp;#8217;t like spaces in paths. My build file won&amp;#8217;t work with spaces in file paths right now =(. &lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;That’s it for now. If you know a better way, have tips or problems: Tell me =).&lt;/p&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 18 Oct 2011 21:32:27 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Athena: Goddess of War</title>
	<guid>http://www.gamlor.info/wordpress/?p=2032</guid>
	<link>http://www.gamlor.info/wordpress/2011/10/athena-goddess-of-war/</link>
	<description>&lt;p&gt;Shortly after the events of &lt;a href=&quot;http://www.gamlor.info/wordpress/2011/07/iris/&quot;&gt;Iris&lt;/a&gt; a new thread arises. South Korea is developing a new generation of nuclear reactors which outperform existing ones by an order of magnitudes. However this development in threatened by terrorists. Especially the brain behind the reactor Dr. Kwon is in danger. The job of NTS (National Anti-Terror Service) is to protect this nuclear development program against those threats. So we follow the NTS around the world defending the project against the shadowy terror organization Athena.&lt;br /&gt;
&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/athena.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/athena-300x216.png&quot; alt=&quot;&quot; title=&quot;athena&quot; width=&quot;300&quot; height=&quot;216&quot; class=&quot;aligncenter size-medium wp-image-2035&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Athena: Goddess of War ( &lt;a href=&quot;http://en.wikipedia.org/wiki/Athena:_Goddess_of_War&quot;&gt;Wikipedia&lt;/a&gt;, &lt;a href=&quot;http://asianmediawiki.com/Athena:_Goddess_of_War_(IRIS_spin-off/Korean_Drama)&quot;&gt;AsiaMediaWiki&lt;/a&gt;, &lt;a href=&quot;http://www.hancinema.net/korean_drama_ATHENA.php&quot;&gt;Hancinema&lt;/a&gt;) is a spin off / sequel to Iris. Unfortunately it is not as good as Iris. Mainly cause the story is generic and very blend. Therefore it never reaches the intensity and tension of its predecessor. What’s left is an average action thriller which doesn’t stand out of the masses. I don’t want to elaborate more details, because it will end in a list of short comings compared to Iris. So, watch Iris because it much better. Watch Athena only if you need filler and like Iris.&lt;/p&gt;
&lt;p&gt;Now the some comments about the cameos (*tiny spoilers*): First the cameo of BoA as herself. Well that was somehow random. Why the hell should terrorist hide their stuff in the stage equipment of BoA? I mean all the security and people around her surely don’t help? Furthermore the main character, Jung-woo, and BoA then just hang out together for like one episode. That felt like they just shoehorned that story arc in there to give more screen time to BoA.&lt;/p&gt;
&lt;p&gt;The second thing is the reappearance of Seon-hwa, my favorite character of Iris. They bring her back to just kill off  their family. There’s no further involvement of her in the story. That’s just pointless. Unless it’s supposed to be setup for a sequel and Seon-hwa goes on a revenge rampage there. That would be AWESOME!&lt;/p&gt;
&lt;p&gt;Star-O-Meter: (3/5)&lt;/p&gt;
&lt;h2&gt;Trailers:&lt;/h2&gt;
&lt;p&gt;Again I couldn’t find any trailers with sub titles, strange no? I also included my favorite song from the sound track.&lt;/p&gt;
&lt;p&gt;OST: Athena: Goddess of War: Please&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;40-Sec Trailer:&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;3 Minutes Trailer:&lt;br /&gt;
&lt;/p&gt;</description>
	<pubDate>Sun, 16 Oct 2011 23:26:00 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: 200 Posts, Yeah!</title>
	<guid>http://www.gamlor.info/wordpress/?p=2024</guid>
	<link>http://www.gamlor.info/wordpress/2011/10/200-posts-yeah/</link>
	<description>&lt;p&gt;Yeah, this my 200th blog post. Back when I started this blog back in 2007 I certainly didn’t anticipate that it will survive this long. However I’m still posting, on average around 4 posts a month. I’m sooo proud of myself =).&lt;br /&gt;
&lt;div id=&quot;attachment_2030&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/200thpost.png&quot;&gt;&lt;img src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/200thpost-300x174.png&quot; alt=&quot;200 posts party&quot; title=&quot;200thpost&quot; width=&quot;300&quot; height=&quot;174&quot; class=&quot;size-medium wp-image-2030&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;200 posts party&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;h2&gt;My Favorite Posts&lt;/h2&gt;
&lt;p&gt;First let’s take a look at the past. Here are some of my favorite posts from the top of my mind.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/2009/05/dollhouse/&quot;&gt;The Dollhouse Review&lt;/a&gt;: Simply because I started stick figure ‘cartoons’ with this post (I believe?). Not that these cartoons are particular funny, but at least they lighten up the dry content a little. This is actually one of my better cartoons, ‘cause it portrays this TV show well =).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/2010/11/the-wire-season-4-5/&quot;&gt;The Wire Season 4-5&lt;/a&gt;: This is one of the rare posts where I drastically corrected my rating for a TV show. The Wire is AWESOME.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/2009/09/db4o-the-basics/&quot;&gt;db4o, The Basics&lt;/a&gt;: I still think this blog post series is one of the most fun introductions to db4o =).&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;http://www.gamlor.info/wordpress/tag/doctor-who/&quot;&gt;Doctor Who posts&lt;/a&gt;, like the review of the &lt;a href=&quot;http://www.gamlor.info/wordpress/2009/11/doctor-who-2005-season-1/&quot;&gt;2005 series&lt;/a&gt;. Way to many stick figure cartoons about this crazy TV series.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;My Favorite Stick Figure Comics&lt;/h2&gt;
&lt;p&gt;I did so many stick figure drawings for this blog I can’t remember all of them. Anyway, here are some of my favorites.&lt;/p&gt;
&lt;p&gt;This one is for the review of &lt;a href=&quot;http://www.gamlor.info/wordpress/2011/06/secret-agent-miss-oh/&quot;&gt;Secret Agent Miss Oh&lt;/a&gt;. I like the simplicity of it. Just a few ‘emotions’, done. Nevertheless it’s still great impression of the main character of that show =):&lt;br /&gt;
&lt;div id=&quot;attachment_1646&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/06/talents-of-miss-oh.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-1646&quot; title=&quot;talents-of-miss-oh&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/06/talents-of-miss-oh-300x109.png&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;109&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;The Talents of Miss Oh&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Many of the &lt;a href=&quot;http://www.gamlor.info/wordpress/tag/doctor-who/&quot;&gt;Doctor Who cartoons&lt;/a&gt; are cool. Therefore I just pick one of those cartoons:&lt;br /&gt;
&lt;div id=&quot;attachment_824&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2009/11/doctor-who-the-impossible-planet.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-824&quot; title=&quot;doctor-who-the-impossible-planet&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2009/11/doctor-who-the-impossible-planet-275x300.png&quot; alt=&quot;Dr Whe vs Futurama&quot; width=&quot;275&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Dr Whe vs Futurama&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;I did cool strips for many technical articles. I picked one of the most recent ones here, the &lt;a href=&quot;http://www.gamlor.info/wordpress/2011/09/approval-testing/&quot;&gt;Approval Testing&lt;/a&gt; one. I love approval testing, I love Portal 2 and this comic combines them:&lt;br /&gt;
&lt;div id=&quot;attachment_2003&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/09/acceptance-testing.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2003&quot; title=&quot;Approval Testing&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/09/acceptance-testing-300x179.png&quot; alt=&quot;Approval Testing in Portal 2&quot; width=&quot;300&quot; height=&quot;179&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Approval Testing in Portal 2&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;h2&gt;Future Directions&lt;/h2&gt;
&lt;p&gt;Let me introduce my 5 year plan for this blog… &lt;img src=&quot;http://www.gamlor.info/wordpress/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt; . No of course there is no real plan what I do here. I will keep writing about technical- and medial stuff. I sometime think about spitting those topics into two distinct blogs, since they have a very different audience. However I’m probably too lazy to do that =).&lt;/p&gt;
&lt;p&gt;Probably there will be a little less TV series reviews, since I spend more time on other things like my mixtapes. Yeah, listen to them on &lt;a href=&quot;http://soundcloud.com/gamlor&quot;&gt;Soundcloud (only the latest)&lt;/a&gt; or &lt;a href=&quot;http://www.mixcloud.com/romanstoffel/&quot;&gt;Mixcloud (all of them)&lt;/a&gt; *shameless self promotion*.&lt;/p&gt;
&lt;h2&gt;That’s it…&lt;/h2&gt;
&lt;p&gt;…for now =). Subscribe to &lt;a href=&quot;http://feeds.feedburner.com/Gamlor&quot;&gt;this blog&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/GamlerHart&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;http://soundcloud.com/gamlor&quot;&gt;Soundcloud&lt;/a&gt; etc =). Now I’ve spread enough praise. Let’s hope for many more read-worthy posts.&lt;/p&gt;</description>
	<pubDate>Thu, 13 Oct 2011 23:30:18 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Akka-Mobile: The Idea</title>
	<guid>http://www.gamlor.info/wordpress/?p=2016</guid>
	<link>http://www.gamlor.info/wordpress/2011/10/akka-mobile-the-idea/</link>
	<description>&lt;p&gt;What is Akka-Mobile? Right now it’s an idea. It’s my semester term project at the University of Applied Science in Rapperswil. In this blog post I give a short overview of the idea.&lt;/p&gt;
&lt;h2&gt;What is Akka?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://akka.io&quot;&gt;Akka&lt;/a&gt; is a framework for Scala (and also Java) to bring Erlang style actors (and tons of other things) to the JVM. In the &lt;a href=&quot;http://en.wikipedia.org/wiki/Actor_model&quot;&gt;actor model&lt;/a&gt; we have actors which communicate through message passing with each other. Each actor can react to messages, do some computation and sent messages to other actors which he knows. The message passing it the only way actors can communicate, there not shared state or other communication channels.&lt;/p&gt;
&lt;h2&gt;Why Actors?&lt;/h2&gt;
&lt;p&gt;I just cite from the Akka website:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it&amp;#8217;s because we are using the wrong tools and the wrong level of abstraction.  Akka is here to change that.  Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;And:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“For fault-tolerance we adopt the &amp;#8220;Let it crash&amp;#8221; / &amp;#8220;Embrace failure&amp;#8221; model which have been used with great success in the telecom industry to build applications that self-heal, systems that never stop.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;Akka Mobile?&lt;/h2&gt;
&lt;p&gt;The Actor Model works well for distributed, ‘event’-oriented and fault tolerant environments. Where do we have such systems? Yes, in the mobile space! Think about all the phones our there running tons of applications. Many of these applications communicate with a central service or even between devices. Think about all the applications on your phone which have ‘real-time’ communication features? Chat apps, social apps like Facebook &amp;amp; Twitter, GPS apps which incorporates the latest traffic information etc. And all these applications have to deal with network faults, message delivery and coordination.&lt;/p&gt;
&lt;p&gt;So I think the Actor model is a good fit for these kinds of ‘real time’ applications on the phone. That’s why I want to get the Actor goodness on the phone.&lt;/p&gt;
&lt;div id=&quot;attachment_2018&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/actors-phones.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2018&quot; title=&quot;actors-phones&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/actors-phones-300x137.png&quot; alt=&quot;Actors and Phones Don't Get Along (Yet)&quot; width=&quot;300&quot; height=&quot;137&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Actors and Phones Don't Get Along (Yet)&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;30’000 Feet Overview&lt;/h2&gt;
&lt;p&gt;Ok, the basic idea is very simple. We simply bring the actors to the phone. These actors can communication locally or with a remote service. On the phone we can send messages to some actors running on the Server. On the server we can access each phone like an actor and send messages to it.&lt;/p&gt;
&lt;p&gt;For example on the phone we simply can send a message to the server like this:&lt;/p&gt;
&lt;p&gt;theServiceOnTheServer ! “Hi”&lt;/p&gt;
&lt;p&gt;And on the server we can react to this and reply:&lt;/p&gt;
&lt;p&gt;onMessage “Hi” =&amp;gt;  reply(“Hi there”)&lt;/p&gt;
&lt;p&gt;These messages are then delivered to each mailbox of the actors running on the server and phone. There the actors then can read and reacht to these messages. The framework handles the communication, failures, etc. of the messages. Of course it won’t be a silver bullet and you still need to deal with errors. However with an Actor model dealing with errors is easier than with more traditional models (like exceptions).&lt;/p&gt;
&lt;div id=&quot;attachment_2019&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/actor-communication.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2019&quot; title=&quot;actor-communication&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/10/actor-communication-300x134.png&quot; alt=&quot;Actor Communication&quot; width=&quot;300&quot; height=&quot;134&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Actor Communication&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Tons of Details&lt;/h2&gt;
&lt;p&gt;While the actor model provides are very simple model, there are tons of details which need to go into the implementation. How do deal with connection losses and offline devices? How are communication errors exposed to the actors? And of course additions for the mobile space should also be considered. For example messages which are only delivered when the device is actively used and other messages which are always delivered.&lt;/p&gt;
&lt;h2&gt;Back To Akka&lt;/h2&gt;
&lt;p&gt;Now of course I could go with a green field approach and implement everything from scratch, but that would be a lot of wasted effort. Akka already has solid implemented Actors including remote communications. However Akka is intended for servers and clusters. The current remote implementation isn’t really intended to be used on mobile devices. So my goal it the change that and bring parts of the Akka goodness to the mobile space.&lt;/p&gt;
&lt;h2&gt;Conclusion &amp;amp; Next Time&lt;/h2&gt;
&lt;p&gt;Ok, I want bring Akka actors to the mobile space. The motivation for this is that the actor model is a good fit for complex distributed computing, like in the mobile space.&lt;/p&gt;
&lt;p&gt;Anyway, I will go into more details in future posts. Next time I will explain how to get Scala running on Android.&lt;/p&gt;</description>
	<pubDate>Mon, 10 Oct 2011 23:26:56 +0000</pubDate>
</item>
<item>
	<title>Fabio Ferrari: Steve Jobs’s Stanford Commencement Speech</title>
	<guid>http://techtalk.fabio.li/wordpress/?p=879</guid>
	<link>http://techtalk.fabio.li/wordpress/?p=879</link>
	<description>&lt;p&gt;Interessante Aussagen von Steve Jobs.  Gerade in Bezug auf Innvoation&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Love What You Do&lt;/h3&gt;
&lt;p&gt;“…sometimes life is going to hit you in the head with a brick, don’t lose faith. I’m convinced that the only thing that kept me going was that I loved what I did. You’ve got to find what you love, and that is as true for work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied, is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking, and don’t settle. As with all matters of the heart, you’ll know it when you find it. And like any great relationship it just get’s better and better, as the years roll on. So keep looking. Don’t settle.”&lt;/p&gt;
&lt;h3&gt;Live Each Day Like it’s Your Last&lt;/h3&gt;
&lt;p&gt;“When I was seventeen I read a quote that went something like, ‘if you live each day as if it was your last, someday you’ll most certainly be right’. It made an impression on me, and since then for the past thirty three years, I’ve looked in the mirror every morning and asked myself, ‘If today were the last day of my life, would I want to do what I am about to do today?’ Whenever the answer has been ‘NO’ for too many days in a row, I know I need to change something.”&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;read the hole speech&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;span id=&quot;more-879&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m honored to be with you today for your commencement from one of the finest universities in the world. Truth be told, I never graduated from college, and this is the closest I&amp;#8217;ve ever gotten to a college graduation. Today, I want to tell you three stories from my life. That&amp;#8217;s it. No big deal. Just three stories.&lt;/p&gt;
&lt;p&gt;The first story is about connecting the dots. I dropped out of Reed College after the first six months, but then stayed around as a drop-in for another 18 months or so before I really quit. So why did I drop out?&lt;/p&gt;
&lt;p&gt;It started before I was born. My biological mother was a young, unwed graduate student, and she decided to put me up for adoption. She felt very strongly that I should be adopted by college graduates, so everything was all set for me to be adopted&lt;br /&gt;
at birth by a lawyer and his wife except that when I popped out they decided at the last minute that they really wanted a girl.&lt;/p&gt;
&lt;p&gt;So my parents, who were on a waiting list, got a call in the middle of the night asking, &amp;#8220;We&amp;#8217;ve got an unexpected baby boy; Do you want him?&amp;#8221; They said, &amp;#8220;Of course.&amp;#8221; My biological mother found out later that my mother had never graduated from college&lt;br /&gt;
and that my father had never graduated from high school. She refused to sign the final adoption papers. She only relented a few months later when my parents promised that I would go to college. This was the start in my life.&lt;/p&gt;
&lt;p&gt;And 17 years later I did go to college. But I naively chose a college that was almost as expensive as Stanford, and all of my working-class parents&amp;#8217; savings were being spent on my college tuition. After six months, I couldn&amp;#8217;t see the value in it. I had no idea what I wanted to do with my life and no idea how college was going to help me figure it out. And here I was spending all of the money my parents had saved their entire life.&lt;/p&gt;
&lt;p&gt;So I decided to drop out and trust that it would all work out okay. It was pretty scary at the time, but looking back it was one of the best decisions I ever made. The minute I dropped out I could stop taking the required classes that didn&amp;#8217;t interest me, and&lt;br /&gt;
begin dropping in on the ones that looked far more interesting.&lt;/p&gt;
&lt;p&gt;It wasn&amp;#8217;t all romantic. I didn&amp;#8217;t have a dorm room, so I slept on the floor in friends&amp;#8217; rooms. I returned coke bottles for the five cent deposits to buy food with, and I would walk the seven miles across town every Sunday night to get one good meal a week at&lt;br /&gt;
the Hare Krishna temple. I loved it. And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on.&lt;/p&gt;
&lt;p&gt;Let me give you one example:&lt;/p&gt;
&lt;p&gt;Reed College at that time offered perhaps the best calligraphy instruction in the country. Throughout the campus every poster, every label on every drawer, was beautifully hand calligraphed. Because I had dropped out and didn&amp;#8217;t have to take the normal classes, I decided to take a calligraphy class to learn how to do this. I learned about serif and san serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. It was beautiful, historical, artistically subtle in a way that science can&amp;#8217;t capture, and I found it fascinating.&lt;/p&gt;
&lt;p&gt;None of this had even a hope of any practical application in my life. But ten years later, when we were designing the first Macintosh computer, it all came back to me. And we designed it all into the Mac. It was the first computer with beautiful&lt;br /&gt;
typography. If I had never dropped in on that single course in college, the &amp;#8220;Mac&amp;#8221; would have never had multiple typefaces or proportionally spaced fonts. And since Windows just copied the Mac, it&amp;#8217;s likely that no personal computer would have them.&lt;br /&gt;
If I had never dropped out, I would have never dropped in on that calligraphy class, and personal computers might not have the wonderful typography that they do. Of course it was impossible to connect the dots looking forward when I was in college.&lt;br /&gt;
But it was very, very clear looking backwards 10 years later.&lt;/p&gt;
&lt;p&gt;Again, you can&amp;#8217;t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something your gut, destiny, life, karma, whatever because believing that the dots will connect down the road will give you the confidence to follow your heart, even when it leads you off the wellworn path, and that will make all the difference.&lt;/p&gt;
&lt;p&gt;My second story is about love and loss.&lt;/p&gt;
&lt;p&gt;I was lucky I found what I loved to do early in life. Woz¹ and I started Apple in my parents&amp;#8217; garage when I was 20. We worked hard, and in 10 years Apple had grown from just the two of us in a garage into a two billion dollar company with over 4000&lt;br /&gt;
employees. We&amp;#8217;d just released our finest creation the Macintosh a year earlier, and I had just turned 30.&lt;/p&gt;
&lt;p&gt;And then I got fired. How can you get fired from a company you started? Well, as Apple grew we hired someone who I thought was very talented to run the company with me, and for the first year or so things went well. But then our visions of the future began to diverge and eventually we had a falling out. When we did, our Board of Directors sided with him. And so at 30, I was out. And very publicly out. What had been the focus of my entire adult life was gone, and it was devastating.&lt;/p&gt;
&lt;p&gt;I really didn&amp;#8217;t know what to do for a few months. I felt that I had let the previous generation of entrepreneurs down &amp;#8211;that I had dropped the baton as it was being passed to me. I met with David Packard and Bob Noyce and tried to apologize for screwing up so badly. I was a very public failure, and I even thought about running away from the valley. But something slowly began to dawn on me: I still loved what I did. The turn of events at Apple had not changed that one bit. I had been rejected, but I was still in love. And so I decided to start over.&lt;/p&gt;
&lt;p&gt;I didn&amp;#8217;t see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to&lt;br /&gt;
enter one of the most creative periods of my life.&lt;/p&gt;
&lt;p&gt;During the next five years, I started a company named NeXT; another company named Pixar, and fell in love with an amazing woman who would become my wife. Pixar went on to create the world&amp;#8217;s first computer animated feature film, Toy Story, and is now the most successful animation studio in the world. In a remarkable turn of events, Apple bought NeXT, and I retuned to Apple, and the technology we developed at NeXT is at the heart of Apple&amp;#8217;s current renaissance. And Laurene and I have a wonderful family together.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m pretty sure none of this would have happened if I hadn&amp;#8217;t been fired from Apple. It was awful tasting medicine, but I guess the patient needed it. Sometime life sometimes life&amp;#8217;s going to hit you in the head with a brick. Don&amp;#8217;t lose faith. I&amp;#8217;m convinced that the only thing that kept me going was that I loved what I did. You&amp;#8217;ve got to find what you love.&lt;/p&gt;
&lt;p&gt;And that is as true for work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven&amp;#8217;t found it yet, keep looking and &amp;#8211;don&amp;#8217;t settle. As with all matters of the heart, you&amp;#8217;ll know when you find it. And like any great relationship, it just gets better and better as the years roll on. So keep looking don&amp;#8217;t settle.&lt;/p&gt;
&lt;p&gt;My third story is about death.&lt;/p&gt;
&lt;p&gt;When I was 17, I read a quote that went something like: &amp;#8220;If you live each day as if it was your last, someday you&amp;#8217;ll most certainly be right.&amp;#8221; It made an impression on me, and since then, for the past 33 years, I&amp;#8217;ve looked in the mirror every morning and asked myself: &amp;#8220;If today were the last day of my life, would I want to do what I am about to do today?&amp;#8221; And whenever the answer has been &amp;#8220;No&amp;#8221; for too many days in a row, I know I need to change something.&lt;/p&gt;
&lt;p&gt;Remembering that I&amp;#8217;ll be dead soon is the most important tool I&amp;#8217;ve ever encountered to help me make the big choices in life. Because almost everything all external expectations, all pride, all fear of embarrassment or failure these things just fall away&lt;br /&gt;
in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.&lt;/p&gt;
&lt;p&gt;About a year ago I was diagnosed with cancer. I had a scan at 7:30 in the morning, and it clearly showed a tumor on my pancreas. I didn&amp;#8217;t even know what a pancreas was. The doctors told me this was almost certainly a type of cancer that is incurable, and that I should expect to live no longer than three to six months. My doctor advised me to go home and get my affairs in order, which is doctor&amp;#8217;s code for &amp;#8220;prepare to die.&amp;#8221; It means to try and tell your kids everything you thought you&amp;#8217;d have the next 10 years to tell them in just a few months. It means to make sure everything is buttoned up so that it will be as easy as possible for your family. It means to say your goodbyes.&lt;/p&gt;
&lt;p&gt;I lived with that diagnosis all day. Later that evening I had a biopsy, where they stuck an endoscope down my throat, through my stomach into my intestines, put a needle into my pancreas and got a few cells from the tumor. I was sedated, but my wife, who was there, told me that when they viewed the cells under a microscope the doctors started crying because it turned out to be a very rare form of pancreatic cancer that is curable with surgery. I had the surgery and, thankfully, I&amp;#8217;m fine now.&lt;/p&gt;
&lt;p&gt;This was the closest I&amp;#8217;ve been to facing death, and I hope it&amp;#8217;s the closest I get for a few more decades. Having lived through it, I can now say this to you with a bit more certainty than when death was a useful but purely intellectual concept: No one wants&lt;br /&gt;
to die. Even people who want to go to heaven don&amp;#8217;t want to die to get there.&lt;/p&gt;
&lt;p&gt;And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It&amp;#8217;s Life&amp;#8217;s change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it&amp;#8217;s quite true.&lt;/p&gt;
&lt;p&gt;Your time is limited, so don&amp;#8217;t waste it living someone else&amp;#8217;s life. Don&amp;#8217;t be trapped by dogma which is living with the results of other people&amp;#8217;s thinking. Don&amp;#8217;t let the noise of others&amp;#8217; opinions drown out your own inner voice.&lt;/p&gt;
&lt;p&gt;And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.&lt;/p&gt;
&lt;p&gt;When I was young, there was an amazing publication called The Whole Earth Catalogue, which was one of the &amp;#8220;bibles&amp;#8221; of my generation. It was created by a fellow named Stewart Brand not far from here in Menlo Park, and he brought it to life with&lt;br /&gt;
his poetic touch. This was in the late 60s, before personal computers and desktop publishing, so it was all made with typewriters, scissors, and Polaroid cameras. It was sort of like Google in paperback form, 35 years before Google came along. It was idealistic, overflowing with neat tools and great notions.&lt;/p&gt;
&lt;p&gt;Stewart and his team put out several issues of The Whole Earth Catalog, and then when it had run its course, they put out a final issue. It was the mid1970s, and I was your age. On the back cover of their final issue was a photograph of an early morning&lt;br /&gt;
country road, the kind you might find yourself hitchhiking on if you were so adventurous.&lt;/p&gt;
&lt;p&gt;Beneath it were the words:  &amp;#8220;Stay Hungry. Stay Foolish.&amp;#8221; It was their farewell message as they signed off. Stay Hungry. Stay Foolish. And I&amp;#8217;ve always wished that for myself. And now, as you graduate to begin a new, I wish that for you. Stay Hungry.&lt;br /&gt;
Stay Foolish.&lt;/p&gt;
&lt;p&gt;Thank you all very much.&lt;/p&gt;
 &lt;img src=&quot;http://techtalk.fabio.li/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&amp;post_id=879&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 06 Oct 2011 18:20:23 +0000</pubDate>
</item>
<item>
	<title>Stefan Oderbolz: ZFF 2011: Turn Me On, Goddammit</title>
	<guid>http://www.readmore.ch/post/11096019623</guid>
	<link>http://www.readmore.ch/post/11096019623</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.zurichfilmfestival.org/de/programm/Filme/1896/turn-me-on-goddammit/&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsdq0air4I1qa2z4q.jpg&quot; alt=&quot;Turn Me On, Goddammit&quot; title=&quot;Turn Me On, Goddammit&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;“Turn Me On, Goddammit”&lt;/strong&gt; von Jannicke Systad Jacobsen spielt die bemerkenswerte Helene Bergsholm die 15jährige Alma, welche gerade dabei ist ihre Sexualität zu entdecken. Sie wohnt mit ihrer Mutter in einem Provinznest in Norwegen. An einer Party ereignet sich ein peinlich Vorfall mit ihrem Schwarm Artur, welchen sie brühwarm ihren Freundinnen erzählt (“He poked me with his penis!”). Niemand will ihr diese Geschichte glauben, fortan wird sie zur Aussenseiterin, die Lügengeschichten verbreitet.&lt;/p&gt;

&lt;p&gt;Auch der Zuschauer des Film wird geschickt darüber im Unklaren gelassen, ob dieses Ereignis tatsächlich stattgefunden hat oder nicht. Die Kamera schweift manchmal ins träumerische ab, indem der Fokus auf dem Vordergrund liegt und der Hintergrund stark verschwommen wird oder die Farbgebung ganz stark ist. Dieses Stilmittel setzt die Regisseur immer dann ein, wenn die Hauptdarstellerin in ihrer Fantasie ist, jedoch manchmal auch bei Ereignissen die tatsächlich stattfinden. Dadurch erscheint auch die ganze Welt des Dorfes mal romantisch, mal langweilig.&lt;/p&gt;

&lt;p&gt;Die Hauptdarstellerin ist eine Wucht, diese junge Frau weiss genau was sie will und bewegt sich sehr natürlich vor der Kamera, das Thema Sexualität ist einfach eine Facette ihres (pubertären) Charakters, der weder übertrieben wirkt noch ins Lächerliche gezogen wird.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Leichte Erzählweise, kurzweilige, gute Unterhaltung.&lt;/em&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 06 Oct 2011 11:29:43 +0000</pubDate>
</item>
<item>
	<title>Stefan Oderbolz: ZFF 2011: Kurzes aus der Türkei</title>
	<guid>http://www.readmore.ch/post/11018892039</guid>
	<link>http://www.readmore.ch/post/11018892039</link>
	<description>&lt;p&gt;Die &lt;a href=&quot;http://www.kurzfilmtage.ch/&quot;&gt;Internationlen Kurzfilmtage Winterthur&lt;/a&gt; zeigten &lt;a href=&quot;http://www.zurichfilmfestival.org/de/programm/Filme/3025/kurzes-aus-der-turkei/&quot;&gt;Kurzfilme aus der Türkei&lt;/a&gt;, dem diesjährigen Gastland des Zurich Film Festival. Die beiden Festivals haben schon die letzten Jahre eine Zusammenarbeit gepflegt.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0984004/&quot;&gt;My Mother Learns Cinema&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0984004/&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjev5EprV1qa2z4q.jpg&quot; alt=&quot;My Mother Learns Cinema&quot; title=&quot;My Mother Learns Cinema&quot; /&gt;&lt;/a&gt; (Nesimi Yetik, 2007)&lt;/p&gt;

&lt;p&gt;Eine kleine Ode ans Kino, als ersten Schritt um das Kino kennen zu lernen, lehrt ein Sohn seiner Mutter die korrekte Aussprache einiger Regisseur.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://vimeo.com/24874194&quot;&gt;Biskilet/Bicycle&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://vimeo.com/24874194&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjgmehJbe1qa2z4q.jpg&quot; alt=&quot;Biskilet/Bicycle&quot; title=&quot;Biskilet/Bicycle&quot; /&gt;&lt;/a&gt;
(Serhat Karaaslan, 2010)&lt;/p&gt;

&lt;p&gt;Dieser Film, der ganz ohne gesprochene Sprache auskommt, erzählt von einem Jungen, der gerne ein Fahrrad hätte. Alles was ihm noch fehlt ist ein Hinterrad…&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://i-soldier-the-flag.blogspot.com/&quot;&gt;I, Soldier&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://i-soldier-the-flag.blogspot.com/&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjg6dBuRs1qa2z4q.png&quot; alt=&quot;I, Soldier&quot; title=&quot;I, Soldier&quot; /&gt;&lt;/a&gt;
(Ergun Köken, 2007)&lt;/p&gt;

&lt;p&gt;Ein ganz spezieller Film, der zum Teil aus 2 Perspektiven gefilmt wurde, wobei beide nebeneinander gezeigt werden. Die Aufnahmen sind während den Feierlichkeiten zum Unabhängigkeitstag der Türkei entstanden.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;https://www.facebook.com/pages/DEM-MOMENT/139449276104220?sk=info&quot;&gt;Dem (Moment)&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.facebook.com/pages/DEM-MOMENT/139449276104220?sk=info&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjh5zqJdl1qa2z4q.png&quot; alt=&quot;Dem (Moment)&quot; title=&quot;Dem (Moment)&quot; /&gt;&lt;/a&gt;
(Aysegül Okul, 2010)&lt;/p&gt;

&lt;p&gt;Ein Mann ist auf dem Weg zu einem Bewerbungsgespräch, unterwegs holt er sich noch einen Kaffee und trifft dabei eine Frau, welche Minuten später von einem Auto überfahren wird, Kurz darauf durchlebt der Mann die Szene nochmals, wird er diesmal das Schlimmste verhindern können?&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.madebyozlemakin.com/2009/05/gemeinschaft.html&quot;&gt;Gemeinschaft&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://www.madebyozlemakin.com/2009/05/gemeinschaft.html&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjig5oDS01qa2z4q.jpg&quot; alt=&quot;Gemeinschaft&quot; title=&quot;Gemeinschaft&quot; /&gt;&lt;/a&gt;
(Özlem Akin, 2008)&lt;/p&gt;

&lt;p&gt;In diesem kurzen Animationsfilm geht es darum als Gruppe eine unliebsame Person loszuwerden. Doch wie stellt man das an? Ein witziger Erklärungsversuch.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.feritkarahan.com/en/#/filmography/movies&quot;&gt;Xewna Yusiv  / Yusiv’s Dream&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://www.feritkarahan.com/en/#/filmography/movies&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjjulojfy1qa2z4q.png&quot; alt=&quot;Xewna Yusiv  / Yusiv's Dream&quot; title=&quot;Xewna Yusiv  / Yusiv's Dream&quot; /&gt;&lt;/a&gt;
(Ferit Karahan, 2011)&lt;/p&gt;

&lt;p&gt;Yusiv führt ein normales Leben bis seine Idylle gestört wird: er wird heimlicher Zeuge eines Mordes.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1515847/&quot;&gt;KöY (Das Dorf)&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1515847/&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjiaxZetH1qa2z4q.jpg&quot; alt=&quot;KöY (Das Dorf)&quot; title=&quot;KöY (Das Dorf)&quot; /&gt;&lt;/a&gt;
(Mustafa Dok, 2009)&lt;/p&gt;

&lt;p&gt;Der zu Beginn sehr lustig-fröhliche Film zeigt einen Mann, der es sich zur Aufgabe gemacht hat, auf einem Schild jeweils die genau Anzahl Personen die sich im Dorf befinden zu notieren. Dieser Spass wird aber jäh durchbrochen als das Militär auftaucht.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.distantdreams.de/filme/bende-sira-ich-bin-dran&quot;&gt;Bende Sira (Ich bin dran)&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://www.distantdreams.de/filme/bende-sira-ich-bin-dran&quot;&gt;&lt;img src=&quot;http://media.tumblr.com/tumblr_lsjhzyzddN1qa2z4q.jpg&quot; alt=&quot;Bende Sira (Ich bin dran)&quot; title=&quot;Bende Sira (Ich bin dran)&quot; /&gt;&lt;/a&gt;
(Ismet Ergün, 2007)&lt;/p&gt;

&lt;p&gt;Zum Abschluss gab es noch ein wahres Highlight: eine Gruppe von Jungs liebt es ins Kino zu gehen. Da sie nicht genügend Geld haben, gemeinsam zu gehen, legen sie jeweils zusammen und bestimmen wer gehen darf. Nach dem Filmbesuch, muss derjenige dann natürlich ganz genau erzählen was passiert ist.
Der Film kommt ganz ohne Untertitel aus, die Bilder sprechen für sich. Die Jungs können sehr bildgewaltig von ihren Kinoerlebnissen berichten. Ein Schmaus!&lt;/p&gt;</description>
	<pubDate>Tue, 04 Oct 2011 14:26:44 +0000</pubDate>
</item>
<item>
	<title>Roman Stoffel: Project CoPilot: Season 1, Episode 2</title>
	<guid>http://www.gamlor.info/wordpress/?p=2009</guid>
	<link>http://www.gamlor.info/wordpress/2011/09/project-copilot-season-1-episode-2/</link>
	<description>&lt;p&gt;The German Blog &lt;a href=&quot;http://abwegig.com/projekt-copilot&quot;&gt;Abwegig&lt;/a&gt; had the idea to do regular ratings of different TV series. In each round the first three episodes of three TV series are reviewed. Since I was looking for some new series I’ve taken a look at &lt;a href=&quot;http://abwegig.com/projekt-copilot-preview-september-2011-season-1-episode-2&quot;&gt;the current round&lt;/a&gt;. In the suggested series are Being Erica (&lt;a href=&quot;http://www.imdb.com/title/tt1149608/&quot;&gt;IMDb&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Being_Erica&quot;&gt;Wikipedia&lt;/a&gt;), The Shadow Line (&lt;a href=&quot;http://www.imdb.com/title/tt1701920/&quot;&gt;IMDb&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Shadow_Line_(TV_series)&quot;&gt;Wikipedia&lt;/a&gt;) and Suits (&lt;a href=&quot;http://www.imdb.com/title/tt1632701/&quot;&gt;IMDb&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Suits&quot;&gt;Wikipedia&lt;/a&gt;).&lt;/p&gt;
&lt;div id=&quot;attachment_2013&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/09/tv-junky-pilot.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-2013&quot; title=&quot;tv-junky-pilot&quot; src=&quot;http://www.gamlor.info/wordpress/wp-content/uploads/2011/09/tv-junky-pilot-300x205.png&quot; alt=&quot;TV series junkies&quot; width=&quot;300&quot; height=&quot;205&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;TV series junkies&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Being Erica&lt;/h2&gt;
&lt;p&gt;I already review it &lt;a href=&quot;http://www.gamlor.info/wordpress/2011/01/being-erica/&quot;&gt;here&lt;/a&gt;. I really like it. I think that the forth season has started, but after a weak third season I’m not sure if I keep watching it. Anyway, still good two first seasons.&lt;/p&gt;
&lt;p&gt;Start-O-Meter: (4.0/5)&lt;/p&gt;
&lt;h2&gt;The Shadow Line&lt;/h2&gt;
&lt;p&gt;After the murder of a major crime boss both sides, the police and the criminal organization start to investigate his death. On one side Jonah Gabriel, who just returned to the police after he got shot and lost his memory. On the other side Joseph Bede, who actually just wants to get done with his last deal and then leave then criminal past behind him.&lt;/p&gt;
&lt;p&gt;The Shadow Line is a dark, slowly developing drama about the police, the criminals and a concrete murder case. It’s mostly driven by its shadowy atmosphere and characters instead of  fast paced twists and turns.&lt;/p&gt;
&lt;p&gt;Anyway, I’ve seen the first three episodes and like it so far. Will watch the rest of it.&lt;/p&gt;
&lt;p&gt;Start-O-Meter: (4.0/5)&lt;/p&gt;
&lt;h2&gt;Suits&lt;/h2&gt;
&lt;p&gt;Mike Ross is a brilliant guy who unfortunately dropped out of school. He earns his living by taking exams for other people and distributing drugs. By luck he gets hired as a trainee attorney and now tries to do his best.&lt;/p&gt;
&lt;p&gt;Suits is a legal drama, it’s about arrogant people being assholes to each other, showing off, intimidate and manipulate each other. A very testosterone loaded atmosphere with tons of ‘who’s got the bigger….’.&lt;/p&gt;
&lt;p&gt;I don’t like Suits, it just bores me and I never got interested in it. The show isn’t bad, but it’s just not my cup of tea.&lt;/p&gt;
&lt;p&gt;Start-O-Meter: (2.0/5)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
	<pubDate>Fri, 30 Sep 2011 23:24:13 +0000</pubDate>
</item>

</channel>
</rss>

