<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>brtmr</title>
    <description>This is my place to share and document my programming experiments and projects. I am a student, programmer, Linux enthusiast, and tinkerer. I am currently studying in the Masters program computer science at the University of Bremen. You can contact me at: mail [at] brtmr.de Also check out my github profile at: github.com/brtmr
</description>
    <link>http://brtmr.de/</link>
    <atom:link href="http://brtmr.de/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 08 Dec 2015 13:20:57 +0100</pubDate>
    <lastBuildDate>Tue, 08 Dec 2015 13:20:57 +0100</lastBuildDate>
    <generator>Jekyll v2.5.3</generator>
    
      <item>
        <title>Lets Encrypt Beta</title>
        <description>&lt;p&gt;As of today, brtmr.de is part of the &lt;a href=&quot;https://letsencrypt.org&quot;&gt;letsencrypt.org&lt;/a&gt; 
closed beta. 
If you inspect the certificate by clicking on the little lock-symbol in the 
adress bar of your browser, you should see something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/cert.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The process was mostly painless - I just cloned the github repo, as 
explained in the official documentation:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/letsencrypt/letsencrypt
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;letsencrypt&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Afterwards, installation and configuration of the required packages can be 
run with the&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./letsencrypt-auto&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;command.&lt;/p&gt;

&lt;p&gt;One issue I was not previously not aware of is that the installation of 
the client is rather memory hungry. So if you are like me, and you are 
running your site on a tiny VPS, then you might run into a rather 
cryptic error message, like 
&lt;a href=&quot;https://github.com/letsencrypt/letsencrypt/issues/1151&quot;&gt;this&lt;/a&gt;.
This problem can be fixed by 
&lt;a href=&quot;http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/&quot;&gt;creating a swapfile&lt;/a&gt;
so that the installation process does not run out of memory, as pointed 
out in this 
&lt;a href=&quot;https://github.com/letsencrypt/letsencrypt/issues/1081&quot;&gt;github-issue&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After that, everything worked smoothly. I also enabled the rewrite option, 
so that apache rewrites every http connection into https.&lt;/p&gt;

&lt;p&gt;My thanks to the people at letsencrypt for making this process easy and free, 
and providing an important step to hopefully making the web https-only.&lt;/p&gt;
</description>
        <pubDate>Sun, 29 Nov 2015 21:00:00 +0100</pubDate>
        <link>http://brtmr.de/2015/11/29/lets-encrypt-beta.html</link>
        <guid isPermaLink="true">http://brtmr.de/2015/11/29/lets-encrypt-beta.html</guid>
        
        
      </item>
    
      <item>
        <title>Introducing Eden-Tracelab</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/mergesort_small.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In this post I want to introduce a program that I wrote in the course of my 
recently finished Bachelor thesis in Computer Science. It’s called 
Eden-Tracelab, and it is an application for analyzing trace files generated 
by programs written in the Eden programming language. The Eden language is 
a dialect of Haskell, specifically designed to implement parallel programs. 
If you want to learn more about Eden, check out the 
&lt;a href=&quot;http://www.mathematik.uni-marburg.de/~eden/&quot;&gt;official website&lt;/a&gt;.
Eden-Tracelab is a tool for inspecting and debugging the runtime behavior of 
such programs. It is designed to be used in addition to the already existing 
tool 
&lt;a href=&quot;http://www.mathematik.uni-marburg.de/~eden/?content=trace_main&amp;amp;navi=trace&quot;&gt;EdenTV&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;how-it-works&quot;&gt;How it works&lt;/h1&gt;

&lt;p&gt;The program consists of three main parts: 
The first part is a command-line tool to analyze trace files, and to store the
generated information into a postgres database.
The second part is a web service to serve the event information over a 
JSON API. The final part is a web application which visualizes the trace 
analysis, and which provides the user with multiple dynamic views on the data.
The following screenshot shows an overview of the web application:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/ui.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;When opening the web interface, Eden-Tracelab will allow the user to 
chose from a list of analyzed traces.&lt;/li&gt;
  &lt;li&gt;The user can chose between three views: machines, processes and threads&lt;/li&gt;
  &lt;li&gt;Initially, the application will start with a relatively low level of detail.
 This allows for a faster overview of the trace. The level of detail can 
 be adjusted, to allow for a more thorough inspection of the trace.&lt;/li&gt;
  &lt;li&gt;The actual visualization: Shows a time line for each machine, process or
thread (depending on the view). The time line is color-coded, where each color 
corresponds to a specific state (for example, red means blocked).&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;implementation&quot;&gt;Implementation&lt;/h1&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/arch.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The tool for analyzing trace files is written in Haskell, as is the web 
service to serve event data to the front end. The HTML5 viewer is written 
in CoffeeScript, and uses an HTML5 canvas to display event data.&lt;/p&gt;

&lt;p&gt;At this point, the program is still very much a work in progress, but now that 
the thesis is finished, I can finally publish the source code along with the 
thesis itself. If anyone is interested in learning more, the 
full text of the thesis is available 
&lt;a href=&quot;/assets/files/bachelor_cs.pdf&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;the-code&quot;&gt;The Code&lt;/h1&gt;

&lt;p&gt;The code for the project is available on github. The project is split into 
two repositories: One containing the 
&lt;a href=&quot;https://github.com/brtmr/Eden-Tracelab-cli-tool&quot;&gt;command line tool&lt;/a&gt;
and one containing the 
&lt;a href=&quot;https://github.com/brtmr/Eden-Tracelab-web&quot;&gt;web service and HTML5 viewer&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 17 Oct 2015 22:00:00 +0200</pubDate>
        <link>http://brtmr.de/2015/10/17/introducing-eden-tracelab.html</link>
        <guid isPermaLink="true">http://brtmr.de/2015/10/17/introducing-eden-tracelab.html</guid>
        
        
      </item>
    
      <item>
        <title>Hexagonal Langton's Ant 2 - Colors, Gliders and Highways</title>
        <description>&lt;p&gt;The rectangular version of langtons ant has a very interesting property: The ant
will, after some time, always build a highway, meaning it will embark on an
endlessly repeating pattern that takes it farther and farther away from the
origin. I was curious whether it was possible to build a highway with the ant
walking on hexagons. The rules described in the post below seemed to generate a
symmetric pattern around the origin, but not a highway going into a specific
direction.  The original ant also has a couple of variations involving multiple
colors. The idea is that instead of switching between two colors, the ant would
cycle a tile between a list of colors, each assigned with a specific direction
the ant will take when entering the tile.  The following graphic shows all the
directions the ant can take when entering a hexagon, relative to its original
direction (marked with a red arrow).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/directions.svg&quot; style=&quot;width:50%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Each direction is assigned with a name. The names are
left, right, forward, backward, starboard, port - abbreviated by their 
initials L,R,F,B,S,P.
A specific set of rules can now be described with a series of these 
names. The simple version demonstrated below can be described with the 
series RL, meaning that the first time the ant enters a space, it will
turn right, afterwards left.
Now, if we add more colors to the sequence, we can construct 
longer sequences that describe different behaviors.
You can try this in the following tool, by defining your own sequences,
and then watch the emerging patterns. 
Simply type a sequence containing the six letters in any configuration
into the input field, press the start-button, and watch the 
pattern emerge. Some sequences seem to only create chaotic growth, 
while others do indeed create highways of differing complexity.
The gallery of sequences below shows screenshots of highways created 
by different rules. The code for this interactive version can also 
be found on my 
&lt;a href=&quot;https://github.com/brtmr/hex-langton-fancy&quot;&gt;github
profile.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;input id=&quot;sequence&quot; /&gt;&lt;button id=&quot;run&quot;&gt;start&lt;/button&gt;&lt;/p&gt;
&lt;canvas id=&quot;langton_fancy&quot; width=&quot;700&quot; height=&quot;500&quot; style=&quot;border:1px solid
#e8e8e8&quot;&gt;&lt;/canvas&gt;

&lt;h3 id=&quot;fb&quot;&gt;FB&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/fb.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Super simple, and somewhat of a cheat. Creating a highway by rocking 
back and forth on each hexagon on a line.&lt;/p&gt;

&lt;h3 id=&quot;rlbf&quot;&gt;RLBF&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/rlbf.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A little more interesting - moves around chaotically for a while, but then
creates a highway with a sawtooth-like appearance.&lt;/p&gt;

&lt;h3 id=&quot;sps&quot;&gt;SPS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/sps.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My favorite pattern: Creates a triangular glider, that creates a 
dotted line along its path. Try it out to see it action.&lt;/p&gt;

&lt;h3 id=&quot;spss&quot;&gt;SPSS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/spss.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Similar to the previous one, but creates a continuous line along the 
glider’s path.&lt;/p&gt;

&lt;h3 id=&quot;sspss&quot;&gt;SSPSS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/sspss.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Similar to the previous one, but alternating colors on the highway.&lt;/p&gt;

&lt;h3 id=&quot;pss&quot;&gt;PSS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/pss.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Another highway being build by a glider.&lt;/p&gt;

&lt;h3 id=&quot;spsss&quot;&gt;SPSSS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/spsss.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The most complex highway I have found so far. Looks like a sequence
of stacked pyramids.&lt;/p&gt;

&lt;h3 id=&quot;pssp&quot;&gt;PSSP&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/pssp.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Creates a highway looking like a chain.&lt;/p&gt;

&lt;h3 id=&quot;spssb&quot;&gt;SPSSB&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/spssb.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Creates a star-like structure around the origin, then creates a glider 
that rocks back and forth an creates a series of parallel pairs of hexagons.&lt;/p&gt;

&lt;h3 id=&quot;lprl&quot;&gt;LPRL&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/lplr.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Creates a highway looking like a chain.&lt;/p&gt;

&lt;h3 id=&quot;pbs-pbbs-pbbbs-pbbs&quot;&gt;PBS, PBBS, PBBBS, PB….BS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/pbs.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Creates a four tile glider. Movement speed depends on the 
number of Bs provided.&lt;/p&gt;

&lt;h3 id=&quot;lsl&quot;&gt;LSL&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/lsl.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Slowly creates a labyrinth, while constantly shifting its walls.&lt;/p&gt;

&lt;h3 id=&quot;pbpsps&quot;&gt;PBPSPS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/pbpsps.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Creates a zigzag shaped highway.&lt;/p&gt;

&lt;h3 id=&quot;lfpsps&quot;&gt;LFPSPS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/lfpsps.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Moves chaotically for a while, then creates a broad highway.&lt;/p&gt;

&lt;h3 id=&quot;pbps&quot;&gt;PBPS&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/pbps.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A glider on a highway that builds its own ‘launcher’.&lt;/p&gt;

&lt;h3 id=&quot;prl&quot;&gt;PRL&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/prl.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A two lane highway.&lt;/p&gt;

&lt;h3 id=&quot;rrp&quot;&gt;RRP&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/assets/img/patterns/rrp.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/img/patterns/rrp1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/img/patterns/rrp2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The red hexagons seem to always form closed loops, one of which contains
(almost) all the blue hexagons.&lt;/p&gt;

&lt;p&gt;All these patterns where found within in a short time through 
trial-and-error, simply through trying short, random combinations. 
I have only covered a very small part of the 4-letter search space.
If you find an interesting pattern, let me know, I would like to collect 
a more complete list! mail [at] brtmr [dot] de&lt;/p&gt;
</description>
        <pubDate>Mon, 05 Oct 2015 22:00:00 +0200</pubDate>
        <link>http://brtmr.de/2015/10/05/hexadecimal-langtons-ant-2.html</link>
        <guid isPermaLink="true">http://brtmr.de/2015/10/05/hexadecimal-langtons-ant-2.html</guid>
        
        
      </item>
    
      <item>
        <title>Hexadecimal Langtons Ant</title>
        <description>&lt;p&gt;Langtons ant is a popular cellular automaton.  It is interesting to me because I
am often fascinated by the way that complex patterns can form from a set of very
simple rules.  You can read about it on 
    &lt;a href=&quot;https://en.wikipedia.org/wiki/Langtons_ant&quot;&gt;Wikipedia.&lt;/a&gt; or watch the 
    &lt;a href=&quot;https://www.youtube.com/watch?v=NWBToaXK5T0&quot;&gt;Numberphile&lt;/a&gt; video. 
After watching the Numberphile video I got interested in the possible patterns
that might emerge when Langtons Ant is not walking atop a plane made of squares,
but out of hexagons.&lt;/p&gt;

&lt;p&gt;&lt;button id=&quot;run_simple&quot;&gt;start&lt;/button&gt;
&lt;input id=&quot;sequence_simple&quot; style=&quot;visibility:hidden&quot; /&gt;&lt;/p&gt;
&lt;canvas id=&quot;langton_simple&quot; width=&quot;700&quot; height=&quot;500&quot; style=&quot;border:1px solid
#e8e8e8&quot;&gt;&lt;/canvas&gt;

&lt;p&gt;The rules for this version are identical to the original version. 
When the ant lands on a new tile, it does the following:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Turn left or right, depending on whether the tile is black or white&lt;/li&gt;
    &lt;li&gt;Flip the color of the tile&lt;/li&gt;
    &lt;li&gt;Move one tile forward&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did not do any deep analysis on this, other than staring on the 
animation, but the pattern that emerges seems to be very symmetrical
along a diagonal axis.&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Oct 2015 22:00:00 +0200</pubDate>
        <link>http://brtmr.de/jekyll/update/2015/10/01/hexadecimal-langtons-ant.html</link>
        <guid isPermaLink="true">http://brtmr.de/jekyll/update/2015/10/01/hexadecimal-langtons-ant.html</guid>
        
        
        <category>jekyll</category>
        
        <category>update</category>
        
      </item>
    
  </channel>
</rss>
