<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7350108964547171282</id><updated>2025-09-28T17:02:03.738+02:00</updated><category term="photos"/><category term="development"/><category term="vienna"/><category term="wien"/><category term="c++"/><category term="qt"/><category term="tracing"/><category term="c"/><category term="laufen"/><category term="mpi"/><category term="otf2"/><category term="performance"/><category term="race report"/><category term="running"/><category term="score-p"/><category term="sport"/><category term="sports"/><category term="vampir"/><category term="vi-hps"/><category term="benchmark"/><category term="dark souls"/><category term="disk"/><category term="dresden"/><category term="encryption"/><category term="error"/><category term="games"/><category term="messages"/><category term="python"/><category term="receive"/><category term="recv"/><category term="research"/><category term="send"/><category term="ssd"/><category term="tennessee"/><category term="test"/><category term="thesis"/><category term="vim"/><category term="vimrc"/><category term="16.04"/><category term="ai"/><category term="analyisis"/><category term="android"/><category term="anthongy creek trail"/><category term="authentication"/><category term="barrier"/><category term="cades cove"/><category term="center"/><category term="citylauf"/><category term="clustering"/><category term="concurrency"/><category term="costa rica"/><category term="cryptography"/><category term="cursor"/><category term="ext4"/><category term="filme"/><category term="finance"/><category term="freital"/><category term="hike"/><category term="hpc"/><category term="intel"/><category term="key"/><category term="knoxville"/><category term="lauf in den frühling"/><category term="ld22"/><category term="ludum dare"/><category term="luks"/><category term="minor"/><category term="mouse"/><category term="non-blocking"/><category term="oak ridge"/><category term="oberelbe-marathon"/><category term="oem"/><category term="opinion"/><category term="ornl"/><category term="otr"/><category term="pgp"/><category term="plugin"/><category term="prediction"/><category term="qgraphicsscene"/><category term="qgraphicsview"/><category term="qtextstream"/><category term="retirement"/><category term="scripting"/><category term="smoky mountains"/><category term="spiele"/><category term="synchronization"/><category term="travel"/><category term="ubuntu"/><category term="unterhaltung"/><category term="update"/><category term="vim 7.4"/><category term="xenial"/><category term="xerus"/><category term="zoom"/><title type='text'>Harmless Half-Knowledge</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default?start-index=26&amp;max-results=25'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-2601160330591720930</id><published>2025-08-08T17:26:00.001+02:00</published><updated>2025-08-08T17:26:35.013+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="opinion"/><category scheme="http://www.blogger.com/atom/ns#" term="prediction"/><title type='text'>The Next Step for AI - Full Personal Interaction Capture</title><content type='html'>&lt;p style=&quot;text-align: justify;&quot;&gt;The open web has been and will continue to decline. The incentives to create content are further decreasing due to AI tools that answer user questions based on web search and content. Even just maintaining public access to existing content will not be obviously economical in the medium term. The text part of the web is mostly captured, images and video are under way. Since killing the open web and future content for AI training is bad, I wondered what the next big step is. The step that puts the AI data feedback loop on a sustainable path.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;In my view the main goal is to capture all personal input and output via microphone, camera and computer-use observation. This would represent a step-up in data set size and quality, and get AI closer to human performance. The value add would be a cooperative AI integrated in this manner. I.e. it listens, watches and contributes through loud speakers and computer/phone use.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;With this, AI platforms will cocreate and try to fully predict the article that a person has not written yet, and the book that may be written one day. Perhaps this would even yield better results as these are often unnecessarily verbose. Besides, most people won’t read the whole piece anyways. So some meta version, adapted to personal preference when viewed, seems better. Such a system requires profit sharing as an incentive or perhaps platforms can get away with just taking it. The implications for sovereignty and law are big.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;When the conversations, computer-use and cameras of a large group of people (ultimately everyone) is digested, it would likely become possible to rediscover or redefine the social hierarchy. On the surface, the AI does not immediately know the relative importance of what it is looking at. It is implicit in page rank, titles, relationships, money, job descriptions, followers, social standing, contracts and labels. But it should be possible to find this relationship in the training data, and even generate a novel, perhaps more equitable, version. This could facilitate connecting skill, ideas and capital more efficiently. Again the implications are enormous.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;The only company within reach of capturing all personal input and output, as well as being able to fully integrate AI cooperation is Apple. They have the devices, smart glasses on the horizon and a basic foundation with &lt;a href=&quot;https://www.apple.com/macos/continuity/&quot;&gt;Continuity&lt;/a&gt; for seamless, cross-device, personal AI cooperation.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/2601160330591720930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2025/08/the-next-step-for-ai-full-personal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/2601160330591720930'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/2601160330591720930'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2025/08/the-next-step-for-ai-full-personal.html' title='The Next Step for AI - Full Personal Interaction Capture'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-8598159338760049754</id><published>2020-02-17T07:00:00.000+01:00</published><updated>2020-02-29T00:04:33.473+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="vim"/><category scheme="http://www.blogger.com/atom/ns#" term="vimrc"/><title type='text'>Load Local Vimrc Automatically From Parent Directories</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
It is common to have different indention settings for different programming projects. For example:&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /path/to/my/project/.vimrc:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; autocmd FileType cpp setl ts=4 sts=4 sw=4 expandtab&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Add the following snippet to the end of your Vimrc, so that when opening Vim, it will traverse all parent directories and open any local Vimrc file it finds. To avoid infinite recursion, traversal ends in $HOME.&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; let b:dir=resolve(expand(&#39;%:p:h&#39;))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;let b:home=resolve($HOME)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while b:dir != $HOME &amp;amp;&amp;amp; b:dir != &#39;/&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;if (filereadable(b:dir.&#39;/.vimrc&#39;))&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execute &#39;source &#39;.b:dir.&#39;/.vimrc&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let b:dir=fnamemodify(b:dir, &#39;:h&#39;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;endwhile&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Note that the starting directory is of the first file in your Vim command. Not the current directory, and not all directories of all files given.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I prefer simple solutions over plugins, but for completeness sake I need to mention that &lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://www.vim.org/scripts/script.php?script_id=3393&quot;&gt;localrc.vim&lt;/a&gt; and &lt;a href=&quot;https://www.vim.org/scripts/script.php?script_id=441&quot;&gt;localvimrc&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; do the same, and likely better.&lt;br /&gt;
&lt;span class=&quot;pl-k&quot;&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/8598159338760049754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2020/02/load-local-vimrc-automatically-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/8598159338760049754'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/8598159338760049754'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2020/02/load-local-vimrc-automatically-from.html' title='Load Local Vimrc Automatically From Parent Directories'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-1269760886201333015</id><published>2019-12-19T12:33:00.001+01:00</published><updated>2019-12-19T12:33:41.045+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="benchmark"/><category scheme="http://www.blogger.com/atom/ns#" term="disk"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="ssd"/><category scheme="http://www.blogger.com/atom/ns#" term="test"/><title type='text'>Dell XPS 7590 SSD Benchmark</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
While I was shopping for a new laptop, I wanted to know which SSDs Dell includes in their XPS 15&quot; models. So I called sales support. It turns out they don&#39;t know, and as of 2019, you lose warranty if you change any part. They should stop calling it CRU then! I don&#39;t know whether or not there is a seal or how they make sure you didn&#39;t tamper with the machine, or if this policy is even enforced.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
So going with the included, unspecified disk was the only safe option. In my case it turned out to be a Micron 2200S NVMe disk, which is likely the same as the &lt;a href=&quot;https://www.micron.com/products/solid-state-drives/product-lines/2200&quot;&gt;2200&lt;/a&gt;. According to &lt;a href=&quot;https://www.anandtech.com/show/14098/micron-introduces-2200-client-nvme-ssd-with-new-inhouse-controller&quot;&gt;AnandTech&lt;/a&gt; the warranty endurance is 300 TB written, which is OK for a 1TB disk. A Samsung 970 Evo Plus has 600, my old &lt;a href=&quot;https://blog.automaton2000.com/2017/02/intel-ssd-600p-1tb-luks-ext4-encrypted-disk-performance.html&quot;&gt;Intel 600p&lt;/a&gt; has 200 TB.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxjI3uIlGl9ndW8WkzYKXhWsq1uqcEQ_30ywVnL-eiIrRPai9rZ7gvujnURHUYahvh6Voav7b2KBbJtaPZdrX-jlkG9lgIam1QMcGYTlZslL3mMWIyu1DWXBCca0bb3-yvIxHqt3mzUsis/s1600/crystal-mark-micron-2200s-ssd.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;860&quot; data-original-width=&quot;1204&quot; height=&quot;456&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxjI3uIlGl9ndW8WkzYKXhWsq1uqcEQ_30ywVnL-eiIrRPai9rZ7gvujnURHUYahvh6Voav7b2KBbJtaPZdrX-jlkG9lgIam1QMcGYTlZslL3mMWIyu1DWXBCca0bb3-yvIxHqt3mzUsis/s640/crystal-mark-micron-2200s-ssd.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
It took me a while to figure out which laptop to get. In short, for me, Dell&#39;s XPS 15&quot; cost 700€ less than the Lenovo X1 Extreme or P1 and Dell offers US international keyboards. Lenovo offers only European layouts in Germany. And you can&#39;t change them yourself in these two models.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In hindsight I&#39;m not sure about my choice, anymore. The 4K screen is badly supported in KDE/Kubuntu. Everything is off, dialog sizes are weird, all icon sizes are weird, margins and icon placement in buttons is off. The mouse cursor switches between normal-size and half-size depending on the window you are hovering over. And if you attach an external monitor, KDE&#39;s settings offer only one global scaling factor for all screens. I.e. everything is huge if you set it 2x for the 4K internal display. The keyboard is way worse than Lenovo&#39;s and is missing the Home, End, Page-Up and Page-Down keys that I heavily use(d).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Maybe going with the Lenovo X1 Extreme or P1 with a more affordable 1080p screen and the English (EU) layout would have worked out better.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/1269760886201333015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2019/12/dell-xps-7590-ssd-benchmark.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/1269760886201333015'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/1269760886201333015'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2019/12/dell-xps-7590-ssd-benchmark.html' title='Dell XPS 7590 SSD Benchmark'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxjI3uIlGl9ndW8WkzYKXhWsq1uqcEQ_30ywVnL-eiIrRPai9rZ7gvujnURHUYahvh6Voav7b2KBbJtaPZdrX-jlkG9lgIam1QMcGYTlZslL3mMWIyu1DWXBCca0bb3-yvIxHqt3mzUsis/s72-c/crystal-mark-micron-2200s-ssd.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-7676445526692373420</id><published>2018-11-30T23:04:00.000+01:00</published><updated>2018-11-30T23:19:22.156+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="analyisis"/><category scheme="http://www.blogger.com/atom/ns#" term="clustering"/><category scheme="http://www.blogger.com/atom/ns#" term="hpc"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="research"/><category scheme="http://www.blogger.com/atom/ns#" term="thesis"/><category scheme="http://www.blogger.com/atom/ns#" term="tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="vampir"/><title type='text'>Diplom Thesis: Automatic Profile-Based Characterisation of Performance Traces for Highly Parallel Applications</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
About four years ago I defended my diplom thesis. The title is quite a mouthful. Another way to put it is: We came up with a new way to cluster threads of execution for performance analysis.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I made the &lt;a href=&quot;https://github.com/hydroo/diplom-thesis-structural-clustering/raw/master/defense-presentation/slides.pdf&quot;&gt;defense slides&lt;/a&gt;, &lt;a href=&quot;https://github.com/hydroo/diplom-thesis-structural-clustering/raw/master/report/diploma-thesis.pdf&quot;&gt;thesis&lt;/a&gt;, &lt;a href=&quot;http://automaton2000.com/publications/2016-ipdps-structural-clustering-a-new-approach-to-support-performance-analysis-at-scale.pdf&quot;&gt;paper&lt;/a&gt; and &lt;a href=&quot;https://github.com/hydroo/diplom-thesis-structural-clustering&quot;&gt;source code&lt;/a&gt; available.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Developing &lt;a href=&quot;https://vampir.eu/&quot;&gt;Vampir&lt;/a&gt; led us to the realization that scalability of performance analysis and visualization is fundamentally difficult. Information about more and more processing elements needs to be processed and displayed in a limited number of pixels on the screen.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Around 2012 we started exploring what you can do with &lt;i&gt;differences&lt;/i&gt; between program execution traces. One thing we did was to use &lt;a href=&quot;https://en.wikipedia.org/wiki/Sequence_alignment&quot;&gt;sequence alignment&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Diff&quot;&gt;diff&lt;/a&gt; algorithms to compute the difference between two function call stacks over time &lt;a href=&quot;http://automaton2000.com/publications/2012-ispa-trace-file-comparison-with-a-hierarchical-sequence-alignment-algorithm.pdf&quot;&gt;[1]&lt;/a&gt; &lt;a href=&quot;https://doi.org/10.1007/978-3-642-40047-6_6&quot;&gt;[2]&lt;/a&gt;. This technique is rather expensive, but for example allows comparing the function-call-by-function-call timing of two threads of execution.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Two ways to tackle visual complexity is through folding similar executions into one &lt;a href=&quot;https://doi.org/10.1109/IPDPSW.2015.47&quot;&gt;[3]&lt;/a&gt;, and e.g. by using edge bundling to cluster inter-process communication &lt;a href=&quot;http://automaton2000.com/publications/2016-sc-vpa-workshop-edge-bundling-for-visualizing-communication-behavior.pdf&quot;&gt;[4]&lt;/a&gt;. The problems these two ideas address are specific to our tools, and might not be a problem for e.g. profile-based visualizations.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Throughout the rest of the article I&#39;ll use the word &lt;i&gt;process &lt;/i&gt;as a short form for thread, process and MPI rank.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Before I started working on my thesis, as part of an independent study course, I explored some more what kind of differences you can derive from processes and how to visualize them &lt;a href=&quot;https://github.com/hydroo/diplom-thesis-structural-clustering/raw/master/hs14-visualizing-structural-differences/presentation/slides.pdf&quot;&gt;(slides)&lt;/a&gt;, &lt;a href=&quot;https://github.com/hydroo/diplom-thesis-structural-clustering/raw/master/hs14-visualizing-structural-differences/report/report.pdf&quot;&gt;(report)&lt;/a&gt;. One thing I tried was using &lt;a href=&quot;https://en.wikipedia.org/wiki/Box_plot&quot;&gt;box plots&lt;/a&gt; / &lt;a href=&quot;https://en.wikipedia.org/wiki/Percentile&quot;&gt;percentiles&lt;/a&gt; to draw profiles on a per-process basis, instead of summing or averaging function timings across processes. The other main thing I investigated was whether to use flat function profiles, call trees, or something in between for comparing processes. One bucket in a flat function profile is a function, irrespective of which arguments it is called with, and what the call stack leading up to the call is. E.g. all calls to a matrix-matrix multiplication function are lumped into one bucket, regardless of the matrix size. A call tree profile retains the call stack for each bucket and thus provides more context. Comparing two call tree profiles is not that intuitive, and dealing with recursion is awkward. In between the two sits the idea of using the pair of functions of who-calls-whom. That provides some context, and works well with recursion. For each of these three profile types, the buckets are (1) a function, (2) a sequence of functions, and (3) a pair of functions. I also spent some time visualizing this so-called &lt;i&gt;call matrix&lt;/i&gt;. It didn&#39;t work well. Not intuitive enough.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The important realization for my diplom thesis is that I can apply &lt;a href=&quot;https://en.wikipedia.org/wiki/Formal_concept_analysis&quot;&gt;formal concept analysis&lt;/a&gt; to sets of function pairs to derive a kind-of hierarchy of processes. Each process is characterized by its set of function pairs (which function calls which), disregarding invocation counts and timing.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE_L-T50lefhAy5GLnaajnajIhuGUsW5nLVNLf1lEeykfp_cUzMIo_gPhvkbXvdWLJblvFPzcVzp4elqmYPcOsiuOKORWe-vNin1b1OVAnYzQiHLd7LoVZ6LJ1iRogmunJZCeq8Od1QYRq/s1600/wrf-hybrid-16p-user-presentable-concept-lattice.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;302&quot; data-original-width=&quot;395&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE_L-T50lefhAy5GLnaajnajIhuGUsW5nLVNLf1lEeykfp_cUzMIo_gPhvkbXvdWLJblvFPzcVzp4elqmYPcOsiuOKORWe-vNin1b1OVAnYzQiHLd7LoVZ6LJ1iRogmunJZCeq8Od1QYRq/s320/wrf-hybrid-16p-user-presentable-concept-lattice.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This example is a weather simulation using four MPI ranks with three threads each. All processes and threads call the top set of functions. The threads do not call any MPI or I/O functions. Process 0, on top of what processes 1-3 do also performs I/O. (The percentage displayed is the ratio of function pairs in the node to all function pairs. E.g. 37% of the pairs are shared between all processes and threads. 41% are unique to processes 1-3.)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
To iron out small dissimilarities introduced by performance recording technicalities, you use the transitive closure of the function pair sets, rather than the sets themselves. Then the above example becomes three nodes on top of each other, the top-most being the threads. Thus, process 0 subsumes all other processes and threads, and process 1-3 subsume all threads. &lt;i&gt;The threads are spawned by process 0-3! &lt;/i&gt;(The &lt;a href=&quot;https://github.com/hydroo/diplom-thesis-structural-clustering/raw/master/defense-presentation/slides.pdf&quot;&gt;defense slides&lt;/a&gt;, specifically slides 16-18 and 26, have some more detail and examples on this.)&lt;br /&gt;
&lt;i&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The thesis devotes much space to demonstrating the techniques on many real world examples and investigating two representatives in greater detail.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The expected complexity of creating the &lt;i&gt;concept lattice&lt;/i&gt; (above graph) is linear in the number of processes. But the worst-case complexity is exponential, because the maximum number of nodes is. For that to happen you need a certain pattern of differences, and every process needs to have a different function pair set. In normal applications, and especially &lt;a href=&quot;https://en.wikipedia.org/wiki/SPMD&quot;&gt;SPMD&lt;/a&gt; programs this never happens.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But there are three scenarios where the approach does not perform well:&lt;/div&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;The function call sequence becomes kind of random if you observe scheduling.&lt;/li&gt;
&lt;li&gt;Load-balancing can lead to the same.&lt;/li&gt;
&lt;li&gt;An application assigns a different cell of a space to each process. The space contains objects. As the simulation progresses objects interact and move between cells/processes. Then each process can call different functions depending on what happens within each cell. &lt;a href=&quot;http://paradis.stanford.edu/&quot;&gt;ParaDiS&lt;/a&gt; does something like that.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Thus the technique does not work on every code, but most. You&#39;d need to implement fall backs to handle those gracefully.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
To summarize, the technique takes the set of function pairs for each process and creates a concept lattice. This lattice represents a clustering with an attached hierarchy.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can also use processes from multiple application runs, and not only compare processes within one run. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Clustering processes is a promising avenue that, to my knowledge, no performance analysis tool has taken, yet. Every performance tool presents a profile accumulated or averaged across all processes. With this they lump together profiles of processes that perform different work. You want to create one profile per group of processes that performs similar work. In the above example you would perhaps have one for process 0, one for process 1-3 and one for the threads. &lt;i&gt;The difference between threads that share memory, and processes which communicate across nodes should be considered!&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Or for example, if you think about our sequence alignment work, you don&#39;t want to align dissimilar processes, because that would result in an alignment that is just not useful. Instead you use our technique to cluster processes and then only align and compare detailed timings of similar ones.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can also use the clustering to safe screen space by only displaying information about one representative of each group, perhaps with an indicator for timing variance.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This concludes the walkthrough of what we did. There are two things I want to mention: In the code on GitHub, I was experimenting with a more C-style C++ with templates. I don&#39;t endorse that style.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Secondly, the above technique is rather heavy-weight. You can get pretty far by just hashing the function pair set. Equal sets share the hash, unequal sets don&#39;t. Clustering done. (Then you can e.g. compute similarity between each group) This approach is easier to implement and does not have the exponential worst-case complexity. But you lose the the hierarchy. My above example talks about the process 0 vs process 1-3 vs threads relationship which is rather simplistic. A performance monitor or runtime should be able to know about this. But then again, if your analysis technique automatically yields that and more intricate relationships, that&#39;s pretty cool, too.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/7676445526692373420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2018/11/diplom-thesis-automatic-profile-based-characterisation-of-performance-traces-for-highly-parallel-applications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/7676445526692373420'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/7676445526692373420'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2018/11/diplom-thesis-automatic-profile-based-characterisation-of-performance-traces-for-highly-parallel-applications.html' title='Diplom Thesis: Automatic Profile-Based Characterisation of Performance Traces for Highly Parallel Applications'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE_L-T50lefhAy5GLnaajnajIhuGUsW5nLVNLf1lEeykfp_cUzMIo_gPhvkbXvdWLJblvFPzcVzp4elqmYPcOsiuOKORWe-vNin1b1OVAnYzQiHLd7LoVZ6LJ1iRogmunJZCeq8Od1QYRq/s72-c/wrf-hybrid-16p-user-presentable-concept-lattice.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-3019424428681811448</id><published>2018-03-15T19:04:00.000+01:00</published><updated>2018-03-15T19:04:15.149+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="costa rica"/><category scheme="http://www.blogger.com/atom/ns#" term="photos"/><category scheme="http://www.blogger.com/atom/ns#" term="travel"/><title type='text'>Costa Rica - Wildlife Refuge Laguna Urpiano</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Time flies. It&#39;s been a year already. I am thoroughly enjoying my job at Oak Ridge National Lab.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I got used to much of the U.S. American weirdness and other differences to home. Deep-fried sushi, deep-fried pickles, shitty bread, disgusting tap water, cars everywhere, lots of driving and so on.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
July last year, three friends and I spent two weeks in &lt;a href=&quot;https://en.wikipedia.org/wiki/Costa_Rica&quot;&gt;Costa Rica&lt;/a&gt; volunteering at the sea turtle refuge &lt;a href=&quot;http://lagunaurpiano.org/&quot;&gt;Laguna Urpiano&lt;/a&gt; - a breathtaking experience. I&#39;m not sure where to start. The refuge is located on the eastern side of the country without any direct access except through a canal. There is no sewage, no tap water, no electricity. The refuge has a well, runs a generator to pump water, and some solar cells that charge batteries for lighting at night, and smart phones.&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA2AYsq2-JZ0SUcGEU-zpAypv_MiS_NB0_2LDW6nEP7WlpUiAJcm6sHcg4Dzd5NeXjps5fESwfftwpeITsqttgCAcXfx5AQVI-5dTZJ4saYHzbu6djyJw8rMQ7OPPlsf6VksbbRa5Vey9F/s1600/00-costa-rica-matina-maybe.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;827&quot; data-original-width=&quot;1600&quot; height=&quot;330&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA2AYsq2-JZ0SUcGEU-zpAypv_MiS_NB0_2LDW6nEP7WlpUiAJcm6sHcg4Dzd5NeXjps5fESwfftwpeITsqttgCAcXfx5AQVI-5dTZJ4saYHzbu6djyJw8rMQ7OPPlsf6VksbbRa5Vey9F/s640/00-costa-rica-matina-maybe.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;On the way to the refuge&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY7t0JLLMlG4Hyxj49aJqfuyfUXz2LPnVEuR-hc6Qmf-4PD4sp251pzbTgriev4ysQpZ5LK4PDpJnieBd0U6vWsHhE8jkn5FawoM4XH5q1znL-qgocTl_bM1SslFYr9P7qnd_UM-qZJv98/s1600/01-costa-rica-canal.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY7t0JLLMlG4Hyxj49aJqfuyfUXz2LPnVEuR-hc6Qmf-4PD4sp251pzbTgriev4ysQpZ5LK4PDpJnieBd0U6vWsHhE8jkn5FawoM4XH5q1znL-qgocTl_bM1SslFYr9P7qnd_UM-qZJv98/s640/01-costa-rica-canal.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The canal&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI9II2x2dHMb4Pdh46nd0HLfzoeZOAsVMwx8C7KFoxJMXIU0yHtq6fzC4mK6gv2d_3ADx6RaewOT_C0T1h7qIQvBpmVxL_HSRwZaxOp3vLleWgT8p7GU80h9viQfiC34MqsXO8ribPvW-E/s1600/01b-costa-rica-canal-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI9II2x2dHMb4Pdh46nd0HLfzoeZOAsVMwx8C7KFoxJMXIU0yHtq6fzC4mK6gv2d_3ADx6RaewOT_C0T1h7qIQvBpmVxL_HSRwZaxOp3vLleWgT8p7GU80h9viQfiC34MqsXO8ribPvW-E/s640/01b-costa-rica-canal-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivNS2w73kCWkGRcP2hBSBLhcGYPFHqmoQkaVR32whZENQuzppARTYXMyGavAR-XAjc5XdzSkgnQWNAbrTrnhgOqWhSc_g8GdM8Wt6RDe2KhmhBw2Up_RnXW1O9upw8cZZ0zBeF1ElHhTbT/s1600/02-costa-rica-refuge-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;904&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivNS2w73kCWkGRcP2hBSBLhcGYPFHqmoQkaVR32whZENQuzppARTYXMyGavAR-XAjc5XdzSkgnQWNAbrTrnhgOqWhSc_g8GdM8Wt6RDe2KhmhBw2Up_RnXW1O9upw8cZZ0zBeF1ElHhTbT/s640/02-costa-rica-refuge-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The toilets, showers and a little shack at the refuge&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5eFuHJdW1BHapVKNTQUfKIQVqTOkYvyXeynxtAOtYVF2-1PsNxdCXT2567DZdWgNxMa1v7pGwcL2PqpCmsxqnfMnf-TuhvBLwyHL2EtLzvZe4IrFYIWwgC7SwgOKWxKOaMfItuVgtOPSw/s1600/03b-costa-rica-refuge-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;810&quot; data-original-width=&quot;1600&quot; height=&quot;324&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5eFuHJdW1BHapVKNTQUfKIQVqTOkYvyXeynxtAOtYVF2-1PsNxdCXT2567DZdWgNxMa1v7pGwcL2PqpCmsxqnfMnf-TuhvBLwyHL2EtLzvZe4IrFYIWwgC7SwgOKWxKOaMfItuVgtOPSw/s640/03b-costa-rica-refuge-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The housing is simple wood with a metal roof, not completely closed. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoX8zVlc79nl1G_ObXL4LBHlUvb_lwKD3COUFeRcKnnyuJ0GUTINP511KC6VDiU2PXVsABHmJ3PM6OIGUj7mGfrooeXhOvAXTMxy1etksQfXxs4DlYomaVveJUxIg3mMI5ISF87HSTwSNV/s1600/03-costa-rica-refuge-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;907&quot; data-original-width=&quot;1600&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoX8zVlc79nl1G_ObXL4LBHlUvb_lwKD3COUFeRcKnnyuJ0GUTINP511KC6VDiU2PXVsABHmJ3PM6OIGUj7mGfrooeXhOvAXTMxy1etksQfXxs4DlYomaVveJUxIg3mMI5ISF87HSTwSNV/s640/03-costa-rica-refuge-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Early morning, and sometimes during the day Howler Monkeys made a lot of noise. They live high in the trees so you can&#39;t see them well. But you can definitely hear them, when they argue with their neighbors! It&#39;s not that bad, though. You get used to it.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/QuEp_wQ5dWY/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/QuEp_wQ5dWY?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
We spent our days planting trees, helping out with work at the refuge, relaxing, drinking fresh coconut milk, and most importantly guarding one kilometer of beach every night from about 22:00 to 4:00, if I remember correctly. Napping during the day is mandatory.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Sea turtle eggs and, depending on the species, parts of the turtle are valuable. If countries like Costa Rica would not try to secure breeding grounds for sea turtles, they would go extinct. Sea turtles are very vulnerable when they lay eggs. Plus, laying eggs takes long and poachers can most of the time easily find the nests.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
So we went out every night, traversing the same one kilometer every 30 minutes. When we found a turtle, we took its eggs and brought them to the refuge and built a new nest there. When we encountered a poacher, we would wait for him or her to pass. The idea is to try and be the first at the nest. The unspoken rule is that you leave the finder alone with its nest. No guns, just a machete for safety and perhaps sticks.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I can&#39;t show you any pictures of our nightly walks, and no turtles, because turtles only come ashore at night. And they use the moon for navigation. We needed to be dressed darkly and use no light except a bit of red light for writing into a notebook. No flashes allowed.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
There are a few different species of sea turtles landing here, but during early July only the &lt;a href=&quot;https://en.wikipedia.org/wiki/Leatherback_sea_turtle&quot;&gt;Leatherback&lt;/a&gt; visits (You can find some pictures here: &lt;a href=&quot;https://www.postandcourier.com/news/world-s-largest-sea-turtle-could-come-off-endangered-list/article_78502726-fb8c-11e7-83f8-47ad53a43a6f.html&quot;&gt;(1)&lt;/a&gt;, &lt;a href=&quot;http://www.animalspot.net/leatherback-turtle.html&quot;&gt;(2)&lt;/a&gt;, &lt;a href=&quot;http://www.leatherback.org/why-leatherbacks/life-cycle-of-leatherbacks&quot;&gt;(3)&lt;/a&gt;). It can grow to around 2m and 700kg. We saw just two in all our time, but during high season there are lot more. Both turtles were around 1.6m long. Impressive animals - Huge!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is the trail of a Leatherback to its nest. The actual nest is a 20 by 20 by 40 cm hole. The rest is dug up sand to hide its exact location.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrtoqy7ROZ7sptv4fe0xQIEgN_nsaCycIfB8YVE8y-o1aojsqDX5r1eod9v_mYB-rhRQUpD8cW8TbANFw7JE0842vp3nAx0BqxGMV8Ek3mKSDs7vAMf1CZV8vyIuUjK3phdnXJLBGkIetx/s1600/04-costa-rica-the-beach-after-the-turtle-night-1-poached-nest.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrtoqy7ROZ7sptv4fe0xQIEgN_nsaCycIfB8YVE8y-o1aojsqDX5r1eod9v_mYB-rhRQUpD8cW8TbANFw7JE0842vp3nAx0BqxGMV8Ek3mKSDs7vAMf1CZV8vyIuUjK3phdnXJLBGkIetx/s640/04-costa-rica-the-beach-after-the-turtle-night-1-poached-nest.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2p9E6_Cmfb3WlT5GSBwmJxtV3mFxWOoiYqU6yPAsGNrGFz8T51ZVT22hP37Ifar2CYJAnzW_Kte1mOm2N2qqmmp8L6uhttoThhoxG0p7CydqewEvOf5CrmaYlcT-H-Vr0-dpxlDY02SI2/s1600/05-costa-rica-the-beach-after-the-turtle-night-2-poached-nest.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2p9E6_Cmfb3WlT5GSBwmJxtV3mFxWOoiYqU6yPAsGNrGFz8T51ZVT22hP37Ifar2CYJAnzW_Kte1mOm2N2qqmmp8L6uhttoThhoxG0p7CydqewEvOf5CrmaYlcT-H-Vr0-dpxlDY02SI2/s640/05-costa-rica-the-beach-after-the-turtle-night-2-poached-nest.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is the remains of a fight with the sea. A Leatherback turtle decided to lay its eggs in a bad spot. The waves came in too far. If the nest / the turtle gets wet in process, the turtle aborts its mission, goes back into the sea and takes a new attempt in the next few hours or days. So we fortified the position in hopes to keep the water in check. ...But to no avail. The turtle went back without laying its eggs.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwi93T4pRszDdFDELodlycW_dDep9LB6au_U16pBVp7NzQBQiaWOe41I_SbxH7DWscSwhpwx2mi9nIL6bjRQ5LvqH6Zq1A3ewZhq9DImXaQn-RpFaWciwgbIWc6Zwc_vz7mq6ku17BidF_/s1600/06-costa-rica-the-beach-after-the-turtle-night-7-flooded-nest.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwi93T4pRszDdFDELodlycW_dDep9LB6au_U16pBVp7NzQBQiaWOe41I_SbxH7DWscSwhpwx2mi9nIL6bjRQ5LvqH6Zq1A3ewZhq9DImXaQn-RpFaWciwgbIWc6Zwc_vz7mq6ku17BidF_/s640/06-costa-rica-the-beach-after-the-turtle-night-7-flooded-nest.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Another day we were lucky and witnessed everything. It was amazing! Such a huge animal. Paddling across the beach, inch by inch. Then it used its back fins to dig the nest hole and put the eggs in. We saw the strain on her face from the exertion. By the way, the head of such a turtle is as large as a human&#39;s. I felt deeply in awe. After that the turtle did what looks like a dance and dug up sand here and there to hide the true position of the nest.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifQDclUE4k_Im4WNkt2btpPQE0WmIi_8VmyVHWj_E55BeLCtQzZpSMm-q6E5bcZdAgLa1evYQWhe9iu4te8L5GFUJfdRpFExbgtJZ-i7ITQxjSYZWA2cWgnmyCOGI5kGajJjlrD1Ltw38l/s1600/06b-costa-rica-hatchery.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifQDclUE4k_Im4WNkt2btpPQE0WmIi_8VmyVHWj_E55BeLCtQzZpSMm-q6E5bcZdAgLa1evYQWhe9iu4te8L5GFUJfdRpFExbgtJZ-i7ITQxjSYZWA2cWgnmyCOGI5kGajJjlrD1Ltw38l/s640/06b-costa-rica-hatchery.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The refuge&#39;s hatchery&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The beach was littered with crabs that would hide in little holes and come out if no one is around. A bit like Whack-a-Mole where they hide when you are near. Another type of crab repeatedly rides in on a wave and tries to catch small insects like flies. Then it stands there and watches and eventually runs back into the ocean. It was a fun pass time chasing them. ... Wave comes, wave retreats, crab remains on the beach and watches around, I run in between it and the sea to try and cut it off. If that was successful, which it rarely was, I&#39;d chase it around and try to catch it :D. And of course I&#39;d just free it again, afterwards. I admit I injured one in the process once.&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWf7qRFmOJKaV86No_SZx9CjonQpTX9yZl9lhNjAaGx4NDvD-il8F6ZplRnieXBqpzxfJ9fQm_oyKiKVNz1fuLT-Fsy_gQl3Dm1T81GfYV7winLzbKn0mVYmMWk4VcRx8wqJMpH6bHCemq/s1600/07-costa-rica-crabs.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;618&quot; data-original-width=&quot;1330&quot; height=&quot;296&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWf7qRFmOJKaV86No_SZx9CjonQpTX9yZl9lhNjAaGx4NDvD-il8F6ZplRnieXBqpzxfJ9fQm_oyKiKVNz1fuLT-Fsy_gQl3Dm1T81GfYV7winLzbKn0mVYmMWk4VcRx8wqJMpH6bHCemq/s640/07-costa-rica-crabs.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Marinera crab in its hole&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAYFACT-quBW-WZ4wC7HK1iLhggFlYBgHwMkzGRPrt1zAk0J9w0RJE4OYUqcntHYFjpiyburx87HtH18Cc5N4Rtxv23iNsCaL59-pBqHy7fYxVHPc-EFf1PlSi2GiCtdalU7rT_aUxOl_7/s1600/08-costa-rica-crabs.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;570&quot; data-original-width=&quot;1600&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAYFACT-quBW-WZ4wC7HK1iLhggFlYBgHwMkzGRPrt1zAk0J9w0RJE4OYUqcntHYFjpiyburx87HtH18Cc5N4Rtxv23iNsCaL59-pBqHy7fYxVHPc-EFf1PlSi2GiCtdalU7rT_aUxOl_7/s640/08-costa-rica-crabs.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkSo8RMl5Vremt3O6aZWm9fjjqzjIDzKY8zKlnFPF-rJVicRNTAzzbGXckMrScNIcrNx6_PNhZTM945FGLwBaUaTxqhXi7qRJvDgkaQ2nSKzSjfEaOUjG92fgq7p10PbBM8WkIx7nAh1K1/s1600/09-costa-rica-salamander.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;535&quot; data-original-width=&quot;1600&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkSo8RMl5Vremt3O6aZWm9fjjqzjIDzKY8zKlnFPF-rJVicRNTAzzbGXckMrScNIcrNx6_PNhZTM945FGLwBaUaTxqhXi7qRJvDgkaQ2nSKzSjfEaOUjG92fgq7p10PbBM8WkIx7nAh1K1/s640/09-costa-rica-salamander.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAg8j6SnM1l-bF3s8HYkGUEgpolyvA0tSRZZkcY31sF-tTzloZMHdT1o-QHS4BogKZCcJKJ3ZY5MqRh-NoDmsd36WBka6WxBSll_5AqmlFVykGSzlYOucoSWUAUQjfwjOZ6DQcQjgYV8fd/s1600/10-costa-rica-grass-hopper.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;625&quot; data-original-width=&quot;1600&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAg8j6SnM1l-bF3s8HYkGUEgpolyvA0tSRZZkcY31sF-tTzloZMHdT1o-QHS4BogKZCcJKJ3ZY5MqRh-NoDmsd36WBka6WxBSll_5AqmlFVykGSzlYOucoSWUAUQjfwjOZ6DQcQjgYV8fd/s640/10-costa-rica-grass-hopper.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0wwvm2ss3FCPBesfAZVbpCFVeulPQQORN5QgPOPIBjiolbwDfoWsIqbs9QPRz_PgvkaOP20-MYGltHOV42b8M__33cMC_btlmK0x-3xRJ1GPLSejiC-OsZpowsL3PVzl_0Xh2UmM4-xu6/s1600/11-costa-rica-pineapple.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0wwvm2ss3FCPBesfAZVbpCFVeulPQQORN5QgPOPIBjiolbwDfoWsIqbs9QPRz_PgvkaOP20-MYGltHOV42b8M__33cMC_btlmK0x-3xRJ1GPLSejiC-OsZpowsL3PVzl_0Xh2UmM4-xu6/s640/11-costa-rica-pineapple.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A pineapple plant&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1diN6N1xZv8g4gejbx9EtESpkrITWEFIYx2SSY1g-JQxLUFRLNYFYi5Me2oW0VHcoYq_5e2kmoiRLHgQql5hcp9V0GkYRLRoox82Wi9fmtUkXmPPow0AwmZCBCumbdK7hjM6OlEnHrUb6/s1600/11b-costa-rica-refuge-sign.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1diN6N1xZv8g4gejbx9EtESpkrITWEFIYx2SSY1g-JQxLUFRLNYFYi5Me2oW0VHcoYq_5e2kmoiRLHgQql5hcp9V0GkYRLRoox82Wi9fmtUkXmPPow0AwmZCBCumbdK7hjM6OlEnHrUb6/s640/11b-costa-rica-refuge-sign.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
We spent the last few days in &lt;a href=&quot;https://en.wikipedia.org/wiki/Puerto_Viejo_de_Talamanca&quot;&gt;&lt;span data-original-name=&quot;Puerto Viejo de Talamanca&quot;&gt;Puerto Viejo&lt;/span&gt;&lt;/a&gt;&lt;span data-original-name=&quot;Puerto Viejo de Talamanca&quot;&gt;, a very touristy place. Lots of surfers, lots of Germans.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp1bWkrKuI4NHzF67oRI6ApCKd2sQpALZg6EJVaY08BsfUJ37teIZYMcpTIR5QXfH2VZ2-wiUqcNV9SP-n8c4b6MmDme53CmMRjDLLo3B5NMEQy072JPxTVGgJdJJuhwRB8WNjOzFRGhye/s1600/12a-costa-rica-puerto-viejo-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp1bWkrKuI4NHzF67oRI6ApCKd2sQpALZg6EJVaY08BsfUJ37teIZYMcpTIR5QXfH2VZ2-wiUqcNV9SP-n8c4b6MmDme53CmMRjDLLo3B5NMEQy072JPxTVGgJdJJuhwRB8WNjOzFRGhye/s640/12a-costa-rica-puerto-viejo-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi38DuYYsQphH68TlM0deACWT3PkWdpTG0EW7_4__2XQufm0HYoIlMS8ipfCxObB4_kGntAralyEsX3bbgIwyclMB4BC6WonPwyx2eJYDfWhyu1_g0qHibbLRhBHrlHrAZEtD5ECnjfBlWV/s1600/12b-costa-rica-puerto-viejo-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi38DuYYsQphH68TlM0deACWT3PkWdpTG0EW7_4__2XQufm0HYoIlMS8ipfCxObB4_kGntAralyEsX3bbgIwyclMB4BC6WonPwyx2eJYDfWhyu1_g0qHibbLRhBHrlHrAZEtD5ECnjfBlWV/s640/12b-costa-rica-puerto-viejo-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBHZ6mNazEASTxFzIDiwhS1HnoSdYNLeGtRRKscj5hYv1q-tyBRCiyjpvy-Mn5gg6AaiwnRs6BAlYvsx9uO8cI8ExsfKM6LnaP-4FBdIYhDo0L2o0_FoxrZDbRwVcqzX_ZJLiTkHDNYfQr/s1600/12c-costa-rica-puerto-viejo-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBHZ6mNazEASTxFzIDiwhS1HnoSdYNLeGtRRKscj5hYv1q-tyBRCiyjpvy-Mn5gg6AaiwnRs6BAlYvsx9uO8cI8ExsfKM6LnaP-4FBdIYhDo0L2o0_FoxrZDbRwVcqzX_ZJLiTkHDNYfQr/s640/12c-costa-rica-puerto-viejo-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVnUIXt1K5O9-h3zlUTxD3_O65F-uIkqZ9eo5iONTltJqOrbWzEWkj4feZJhdV0mvkE1bd6WavtxQly-1RHsaj9NZLFcAjRlEbv_4UeVTRbQ710Ekr8oiR9zXHXr10Jo6sq2u4J84XzZn8/s1600/13-costa-rica-jagugar-rescue-center-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;614&quot; data-original-width=&quot;1600&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVnUIXt1K5O9-h3zlUTxD3_O65F-uIkqZ9eo5iONTltJqOrbWzEWkj4feZJhdV0mvkE1bd6WavtxQly-1RHsaj9NZLFcAjRlEbv_4UeVTRbQ710Ekr8oiR9zXHXr10Jo6sq2u4J84XzZn8/s640/13-costa-rica-jagugar-rescue-center-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The prime customer in the rescue center is the sloth, because it&#39;s too slow to cross the street quickly, and often gets electrocuted while climbing an electric pole.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEPi5WVafCbZORzsWd9Nd-bZ2pJlwQyelrSIkQbCE2oLYzqr5p3MfcyG9Ph-3tftQMEv3OpEx9-n-JVXOqF4vwwlWs-ldk8d7aHdYwA5JhGC2-PP8QrvJ1uzCIoxikfn-NfW6pOg8wKMYS/s1600/14-costa-rica-jagugar-rescue-center-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;904&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEPi5WVafCbZORzsWd9Nd-bZ2pJlwQyelrSIkQbCE2oLYzqr5p3MfcyG9Ph-3tftQMEv3OpEx9-n-JVXOqF4vwwlWs-ldk8d7aHdYwA5JhGC2-PP8QrvJ1uzCIoxikfn-NfW6pOg8wKMYS/s640/14-costa-rica-jagugar-rescue-center-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWKu7uZ6nxvFQCRKSv-AYZYdpKDs0ikOZFja52Lr4z8EsRisAvsHUy-SMJK3ojZCIoLPp3M4OOw37pCr0SjfQwqkRtpkFgHyQWLhtnelBiFlnuqvXlJ46fUFcgrOYE0h-0a2XyoOuuHDe8/s1600/15-costa-rica-jagugar-rescue-center-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;912&quot; data-original-width=&quot;1600&quot; height=&quot;364&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWKu7uZ6nxvFQCRKSv-AYZYdpKDs0ikOZFja52Lr4z8EsRisAvsHUy-SMJK3ojZCIoLPp3M4OOw37pCr0SjfQwqkRtpkFgHyQWLhtnelBiFlnuqvXlJ46fUFcgrOYE0h-0a2XyoOuuHDe8/s640/15-costa-rica-jagugar-rescue-center-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh3bc19tEspLy6n46nmuGy42GGTIul5y2uo8ZASiXzR_VDj08TMwWkhy3HOXqt4O-eNuGlKmZ_yoN9lR9wciV8Mx5o76dw1OWtqhXz7XPT_AcSgd_kA4A1godPETATQfTebGdyUMTNOm-W/s1600/16-costa-rica-jagugar-rescue-center-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;757&quot; data-original-width=&quot;1600&quot; height=&quot;302&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh3bc19tEspLy6n46nmuGy42GGTIul5y2uo8ZASiXzR_VDj08TMwWkhy3HOXqt4O-eNuGlKmZ_yoN9lR9wciV8Mx5o76dw1OWtqhXz7XPT_AcSgd_kA4A1godPETATQfTebGdyUMTNOm-W/s640/16-costa-rica-jagugar-rescue-center-4.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
These volunteers socialize with monkey children. Monkeys need that to grow up healthy.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1X6lHim7yVTAUcNwrXQqNccPmtq3ErCfiZflNRkcf8RkeRjQsMLTm-8VYIj7Vnpd_Gdvcj_JUgKTyRh1UDtbKMdezCqSK153phNKoJ-8iM7Rd0iWZ1SLnUXUJDMjf5l4Xfj7At2-CEm9Q/s1600/17-costa-rica-jagugar-rescue-center-5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;902&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1X6lHim7yVTAUcNwrXQqNccPmtq3ErCfiZflNRkcf8RkeRjQsMLTm-8VYIj7Vnpd_Gdvcj_JUgKTyRh1UDtbKMdezCqSK153phNKoJ-8iM7Rd0iWZ1SLnUXUJDMjf5l4Xfj7At2-CEm9Q/s640/17-costa-rica-jagugar-rescue-center-5.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span data-original-name=&quot;Puerto Viejo de Talamanca&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span data-original-name=&quot;Puerto Viejo de Talamanca&quot;&gt;And then it was already time to go to San Jose, and catch the flight home.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kVxscjX8IJOvhFC6gPHtKqh6048tHkTu6uBUMby5ACyqTKjutE65tiZkmHSNnRmbMcx7a3y6Q_tXFAnm6ywtmNb9a5f82bb6z73NmxVUVbm-NKIh3m18tNsIsOwHmX2v8b4pKhxZfM9q/s1600/18-costa-rica-san-jose-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;697&quot; data-original-width=&quot;1600&quot; height=&quot;278&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kVxscjX8IJOvhFC6gPHtKqh6048tHkTu6uBUMby5ACyqTKjutE65tiZkmHSNnRmbMcx7a3y6Q_tXFAnm6ywtmNb9a5f82bb6z73NmxVUVbm-NKIh3m18tNsIsOwHmX2v8b4pKhxZfM9q/s640/18-costa-rica-san-jose-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge5RAEGwnPTYeMgnMNUCKZr5khqRcXLfdCjsIiH7CkupudeIEaWo3PutsHDdBoyMclDvGi8q-LNQqU54pnpjiH7YQSt3-Z6V_n7c4aqiqcVvUoOZKdBl5qFl0DaiIv6CsN-R-kyIeyGFrl/s1600/19-costa-rica-san-jose-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;790&quot; data-original-width=&quot;1600&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge5RAEGwnPTYeMgnMNUCKZr5khqRcXLfdCjsIiH7CkupudeIEaWo3PutsHDdBoyMclDvGi8q-LNQqU54pnpjiH7YQSt3-Z6V_n7c4aqiqcVvUoOZKdBl5qFl0DaiIv6CsN-R-kyIeyGFrl/s640/19-costa-rica-san-jose-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJTuBFsgioq2SbMBbe6ay80fEYitXKIhrBdwPXiu2t_jMxhMt6KTEuZgMhn9wkqOYeixTfGmfLVU1DSQ-ErebmknOFLquTgOryYM0DAF3WkDt7fwTXf1UUZ1c37DdrjEmxDMHWcnmiK-WX/s1600/20-costa-rica-san-jose-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJTuBFsgioq2SbMBbe6ay80fEYitXKIhrBdwPXiu2t_jMxhMt6KTEuZgMhn9wkqOYeixTfGmfLVU1DSQ-ErebmknOFLquTgOryYM0DAF3WkDt7fwTXf1UUZ1c37DdrjEmxDMHWcnmiK-WX/s640/20-costa-rica-san-jose-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6DeuRrgF1f-36L9CWO7AmpCm70mnk93zJ0imb2VvTLMWxcpAKAGkKHCkUqiCFiWD_s6Akv2ONCjCJKJ3Q_FOW2-uiLpe9jzxUcXik3pPiX6txizarXNO5hUJBbT7DjSpZtORLlrbbPUeu/s1600/21-costa-rica-san-jose-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;972&quot; data-original-width=&quot;1600&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6DeuRrgF1f-36L9CWO7AmpCm70mnk93zJ0imb2VvTLMWxcpAKAGkKHCkUqiCFiWD_s6Akv2ONCjCJKJ3Q_FOW2-uiLpe9jzxUcXik3pPiX6txizarXNO5hUJBbT7DjSpZtORLlrbbPUeu/s640/21-costa-rica-san-jose-4.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio_hhfC6CogFV1C1dHScG74xPnhTCFhT0i3B7RbAWnz2NYM4kVg9hBvF_iK64Ci3x230MIxOLnBXxUiclhA7MKkRm__jOU73Fo_iO9AW-X6_Cno53mTcCdqeGD4ErAvNixMBnm7LB1rQTS/s1600/22-costa-rica-san-jose-5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio_hhfC6CogFV1C1dHScG74xPnhTCFhT0i3B7RbAWnz2NYM4kVg9hBvF_iK64Ci3x230MIxOLnBXxUiclhA7MKkRm__jOU73Fo_iO9AW-X6_Cno53mTcCdqeGD4ErAvNixMBnm7LB1rQTS/s640/22-costa-rica-san-jose-5.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span data-original-name=&quot;Puerto Viejo de Talamanca&quot;&gt;I really enjoyed my time in Costa Rica, and recommend spending a vacation there. The people at the refuge took great care of us and helped us navigate the country.&lt;br /&gt;&lt;br /&gt;Thank you Barbara, Johnny, Emilia, Pedro, Eliseo, Alan, Maylin, Elena, Suzette and Claire!&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/3019424428681811448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2018/03/costa-rica-wildlife-refuge-laguna-urpiano.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/3019424428681811448'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/3019424428681811448'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2018/03/costa-rica-wildlife-refuge-laguna-urpiano.html' title='Costa Rica - Wildlife Refuge Laguna Urpiano'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA2AYsq2-JZ0SUcGEU-zpAypv_MiS_NB0_2LDW6nEP7WlpUiAJcm6sHcg4Dzd5NeXjps5fESwfftwpeITsqttgCAcXfx5AQVI-5dTZJ4saYHzbu6djyJw8rMQ7OPPlsf6VksbbRa5Vey9F/s72-c/00-costa-rica-matina-maybe.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-7629855243913081766</id><published>2018-03-09T17:12:00.000+01:00</published><updated>2018-03-16T16:50:31.471+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="finance"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="retirement"/><title type='text'>Retirement Calculator</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
I made my own little retirement calculator, because I was dissatisfied with how the calculators I checked do the math. And I added a bit more flexibility to play with the numbers.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
It&#39;s a simple python script: &lt;a href=&quot;https://github.com/hydroo/retirement-calculator&quot;&gt;(GitHub link)&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usage: retirement-calculator [options]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Optional arguments:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -h, --help&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; Show this help message and exit&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; --initial-savings&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;USD&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; --working-annual-return-rate &amp;lt;rate&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; --retired-annual-return-rate &amp;lt;rate&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; --inflation&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;lt;rate&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; --working&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&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;years&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; --retired&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&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; &amp;lt;years&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;--working-annual-savings&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;lt;USD&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; --retired-annual-withdraw&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt; &amp;lt;USD&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp; --verbose&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The calculation works as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; savings=initial_savings&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for year in range(1, working+1):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return = savings * working_annual_return_rate&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; savings += return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; savings += working_annual_savings&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; savings *= (1-inflation)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
And in retirement:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for year in range(1, retired+1):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; savings -= retired_annual_withdraw&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return = savings * retired_annual_return_rate&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; savings += return&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; savings *= (1-inflation)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
To help with picking values for annual return rates and inflation, the calculator provides some historic data. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
One consideration I glossed over is taxation. Depending on your account type (brokerage, IRA, Roth IRA, ...) you do or do not pay certain taxes like capital gain tax on your realized gains or income tax on your retirement income. Keep that in mind when looking at the numbers.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The other thing I simplified is that you would normally gradually move your investments towards safer options as you get closer to your retirement date. The calculator assumes a hard switch in annual return rate at the start of retirement.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Note that all numbers are in today&#39;s US Dollars. That also means that the calculator assumes you increase your annual savings to match the rate of inflation.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
For example, if you work for 35 years, save $6000 a year, assume an annual return rate of 7% during work life and 5% during retirement and 3% annual rate of inflation, you end up with $411020 of today&#39;s US Dollars, and an initial annual return of $19351 at the start of retirement. With that you can roughly withdraw $17000 per year for 30 years.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
So that&#39;s no good.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The difficult part is estimating future returns on your investments.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Playing with the numbers, I&#39;d say if you want to be safe, saving $10000 to $15000 per year seems to be about right. The more the better.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Here is a sample output: &lt;a href=&quot;https://pastebin.com/67WTj4Zq&quot;&gt;(link)&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/7629855243913081766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2018/03/retirement-calculator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/7629855243913081766'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/7629855243913081766'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2018/03/retirement-calculator.html' title='Retirement Calculator'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-1527290362502468229</id><published>2017-05-18T07:00:00.000+02:00</published><updated>2017-05-18T07:00:11.791+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="anthongy creek trail"/><category scheme="http://www.blogger.com/atom/ns#" term="cades cove"/><category scheme="http://www.blogger.com/atom/ns#" term="hike"/><category scheme="http://www.blogger.com/atom/ns#" term="photos"/><category scheme="http://www.blogger.com/atom/ns#" term="smoky mountains"/><category scheme="http://www.blogger.com/atom/ns#" term="tennessee"/><title type='text'>Great Smoky Mountains / Cades Cove Hike</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
The &lt;a href=&quot;https://en.wikipedia.org/wiki/Great_Smoky_Mountains&quot;&gt;Great Smoky Mountains&lt;/a&gt; are part of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Appalachian_Mountains&quot;&gt;Appalachians&lt;/a&gt; - a system of mountains in the east of the U.S., ranging from the bottom all the way to the top. Notably in the Smokies, you can oftentimes see wild black bears. Bears aside, there are a number of dangerous animals living in Tennessee, e.g. Rattlesnakes, Copperheads and venomous spiders.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The following photos are from a hike on the Anthony Creek Trail in Cades Cove. At the end of the trail we met a guy who hikes the whole &lt;a href=&quot;https://en.wikipedia.org/wiki/Appalachian_Trail&quot;&gt;Appalachian Trail&lt;/a&gt; from Georgia all the way up to Maine. That is 3500km and takes five to seven months - Holy shit!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-YHqrBqEFx0r941FyXzdN3HO8BgYC24ws7knpRTspZh32TxWa81_dy_UxecSi3D3jTr06yV79C4T8BCas5gWGvJu7gJOcl1WGASTswpxHqTnn65EpdT0W_Xrm-1c4LEINL6umaJNgD87g/s1600/0-on-our-way.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-YHqrBqEFx0r941FyXzdN3HO8BgYC24ws7knpRTspZh32TxWa81_dy_UxecSi3D3jTr06yV79C4T8BCas5gWGvJu7gJOcl1WGASTswpxHqTnn65EpdT0W_Xrm-1c4LEINL6umaJNgD87g/s640/0-on-our-way.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;On our way&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghdABNbQe3_Jj9z7d7gjCaVnPBs8esZ_1aPqC9yMRZQHR5n-GyDgQ4i2VwZ-Shi0f38aPi5_E73vikGUk4SBr75nTp6kMWOPm1oS7wUqIHkfNsNYIFRpSd6LtwtsMrDfXpi992WrnXm-Ur/s1600/1-foggy.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghdABNbQe3_Jj9z7d7gjCaVnPBs8esZ_1aPqC9yMRZQHR5n-GyDgQ4i2VwZ-Shi0f38aPi5_E73vikGUk4SBr75nTp6kMWOPm1oS7wUqIHkfNsNYIFRpSd6LtwtsMrDfXpi992WrnXm-Ur/s640/1-foggy.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Lots of fog and rain on our way up&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGHmtXowgxVGqMVMtQ12dWjkjwGLVUeoVqZvlV5tJalMposs8TitMx15KlD3y6ZqtwGVVncUSVnlTDsbYUKCgtRKLykc-FmWcISIIWvkCW6isd9Ejj6dNHfOmzeALHO0bRB_U7td3wUY1Z/s1600/2-upup.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGHmtXowgxVGqMVMtQ12dWjkjwGLVUeoVqZvlV5tJalMposs8TitMx15KlD3y6ZqtwGVVncUSVnlTDsbYUKCgtRKLykc-FmWcISIIWvkCW6isd9Ejj6dNHfOmzeALHO0bRB_U7td3wUY1Z/s640/2-upup.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGAhm2M7ogcYr8-30xo8Sj5cyF7YUZb6Oc04cOfn7cn3KaNY2ObOmPUOMHN4D5QzUzYspd6sDlc2HRmJmm6Hp-6ulnZhq1KoDEAwK54TRxxLRHUZzJZxbISEBja2pHrlKzFphH3qbrDK1H/s1600/3-end-of-trail.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGAhm2M7ogcYr8-30xo8Sj5cyF7YUZb6Oc04cOfn7cn3KaNY2ObOmPUOMHN4D5QzUzYspd6sDlc2HRmJmm6Hp-6ulnZhq1KoDEAwK54TRxxLRHUZzJZxbISEBja2pHrlKzFphH3qbrDK1H/s640/3-end-of-trail.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Reached the end of the trail&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7akt-X3fNtzU8_2aNjAtJYk1dVvUEfvl0g3R0zELqDCG0Xjmm2p-md5MUdtkmOGPElUx49Dnrbk9PS38XG08J_GLkwydDm1p66st4KvGECtKUYTGFWBoVOMUuPRlrfW868_Ubt-BwMiSA/s1600/4-a-pretty-tree.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7akt-X3fNtzU8_2aNjAtJYk1dVvUEfvl0g3R0zELqDCG0Xjmm2p-md5MUdtkmOGPElUx49Dnrbk9PS38XG08J_GLkwydDm1p66st4KvGECtKUYTGFWBoVOMUuPRlrfW868_Ubt-BwMiSA/s640/4-a-pretty-tree.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A colorful tree in the middle of green, brown and gray&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5nkcDkQkdcTMMBXb8z4Hn9GoFG1Da7GXmtA4RJ0sHEzDIPT57ZwflAFV7zbuK-WwP1-U7_-y99t2re0aoOaKR3g37OFt9vFBtS2Qs9QuyP9lN_OHz-SnJ-XrA252RE39OHk-HGZmImTiE/s1600/5-millipede-xystodesmidae-sigmoria.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;384&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5nkcDkQkdcTMMBXb8z4Hn9GoFG1Da7GXmtA4RJ0sHEzDIPT57ZwflAFV7zbuK-WwP1-U7_-y99t2re0aoOaKR3g37OFt9vFBtS2Qs9QuyP9lN_OHz-SnJ-XrA252RE39OHk-HGZmImTiE/s640/5-millipede-xystodesmidae-sigmoria.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A creepy millipede - &lt;a href=&quot;https://en.wikipedia.org/wiki/Xystodesmidae&quot;&gt;Xystodesmidae&lt;/a&gt; / &lt;a href=&quot;https://en.wikipedia.org/wiki/Apheloria&quot;&gt;Apheloria&lt;/a&gt; perhaps?&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS5021gVYlVN1u3kXwsCgaSHypHOqkA_ghAVev7bw0LW7g1EYPBii0_THw0c3mkBmZMIxtTtxxcELyeAqK9YIjlGSgkfopWWKX_RPmyvlWnSGniaI0HgFvoDvwW-w_wi4CqZLhpHx0bd9G/s1600/6-creek.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS5021gVYlVN1u3kXwsCgaSHypHOqkA_ghAVev7bw0LW7g1EYPBii0_THw0c3mkBmZMIxtTtxxcELyeAqK9YIjlGSgkfopWWKX_RPmyvlWnSGniaI0HgFvoDvwW-w_wi4CqZLhpHx0bd9G/s640/6-creek.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlcVIKcbWa7akX2bly-B4l6cpxDMfPl4P8izjSROYX4ETESNU0036ZGxvZ42MzKUXjbruaLAmvSaeJdu7BBRgj5HJmPKKCE6STO07TTWJ-VnXMmwCHx_R-A-AIz2PAZRCBjtZhJ5Swmn_V/s1600/8-more-mountains.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlcVIKcbWa7akX2bly-B4l6cpxDMfPl4P8izjSROYX4ETESNU0036ZGxvZ42MzKUXjbruaLAmvSaeJdu7BBRgj5HJmPKKCE6STO07TTWJ-VnXMmwCHx_R-A-AIz2PAZRCBjtZhJ5Swmn_V/s640/8-more-mountains.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSrViXOQm5EjLKSOIehz-xnIgHMcg-n7JUJOpfCruiqimbYSDWvJ8aH3SplUpGqiFcmUrbaChN5sQKTb9EY8RLdXtD1X4CZnn_w1ZaJzNtiHcRKQDPn87Zz9uT46v05GhcZZE6aCZIdN9-/s1600/9-near-visitor-center.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSrViXOQm5EjLKSOIehz-xnIgHMcg-n7JUJOpfCruiqimbYSDWvJ8aH3SplUpGqiFcmUrbaChN5sQKTb9EY8RLdXtD1X4CZnn_w1ZaJzNtiHcRKQDPn87Zz9uT46v05GhcZZE6aCZIdN9-/s640/9-near-visitor-center.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;At the visitor center - a friend wanted to collect the stamp for this national park.&lt;br /&gt;
Her goal is to visit each national park and collect all 59 stamps.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://automaton2000.com/uploads/10-blog-panorama-smoky-mountains-cades-cove.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://automaton2000.com/uploads/10-blog-panorama-smoky-mountains-cades-cove.jpg&quot; height=&quot;198&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/1527290362502468229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2017/05/great-smoky-mountains-cades-cove-hike.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/1527290362502468229'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/1527290362502468229'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2017/05/great-smoky-mountains-cades-cove-hike.html' title='Great Smoky Mountains / Cades Cove Hike'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-YHqrBqEFx0r941FyXzdN3HO8BgYC24ws7knpRTspZh32TxWa81_dy_UxecSi3D3jTr06yV79C4T8BCas5gWGvJu7gJOcl1WGASTswpxHqTnn65EpdT0W_Xrm-1c4LEINL6umaJNgD87g/s72-c/0-on-our-way.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-325475810713533750</id><published>2017-05-08T07:00:00.000+02:00</published><updated>2017-05-14T23:26:58.483+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dark souls"/><category scheme="http://www.blogger.com/atom/ns#" term="games"/><category scheme="http://www.blogger.com/atom/ns#" term="photos"/><title type='text'>Dark Souls 1 Photo Tour</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
After I&#39;ve enjoyed all content Dark Souls 2 has to offer &lt;a href=&quot;http://blog.automaton2000.com/2016/05/thank-you-from-software.html&quot;&gt;(photo tour)&lt;/a&gt;, I went back to Lordran. Here&#39;s a selection of photos I took during my stay.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But first some even older photos from 2014.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Let me introduce my Wanderer, sporting the Uchigatana and the Grass Crest Shield. I stuck to the basic wanderer armor as much as possible, because it&#39;s pretty and light.&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrn8Tntz1Ex3PymW2F_5Appp8JHLS-0Tz37YfOcLsM60EFeUL2LeFOJACGkZaF5TrAQUjSZdXX3T6Ak0MXCXCVJ9A8FirZiAULwDuIBRLc5SOcmg3vnLNT_tFytoGZ-Dd42TZZJ3bEXohx/s1600/1-2014-beef-jerky-wanderer-uchigatana-grass-crest-shield.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrn8Tntz1Ex3PymW2F_5Appp8JHLS-0Tz37YfOcLsM60EFeUL2LeFOJACGkZaF5TrAQUjSZdXX3T6Ak0MXCXCVJ9A8FirZiAULwDuIBRLc5SOcmg3vnLNT_tFytoGZ-Dd42TZZJ3bEXohx/s640/1-2014-beef-jerky-wanderer-uchigatana-grass-crest-shield.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;You take great care setting up your character, and then spend most of the time&lt;br /&gt;
as a beef jerky zombie. *sigh*&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFLzfpT3r-B4E4HZUkBQqdJgTiGm_5RT9pk6wPmPGNIyAlvMJVkfqhdy1zR0OU_wdLPOSo4p0lbPrhwmE4zRN1PNMFLd4p5ozpbQlhDYT8eF_pjVKtjuNKiA0PHDu3XT0sg57AuNTlr4_e/s1600/2-2014-beef-jerky-wanderer-uchigatana-grass-crest-shield.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFLzfpT3r-B4E4HZUkBQqdJgTiGm_5RT9pk6wPmPGNIyAlvMJVkfqhdy1zR0OU_wdLPOSo4p0lbPrhwmE4zRN1PNMFLd4p5ozpbQlhDYT8eF_pjVKtjuNKiA0PHDu3XT0sg57AuNTlr4_e/s640/2-2014-beef-jerky-wanderer-uchigatana-grass-crest-shield.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Up there lives the giant archer Hawkeye Gough who can shoot down dragons.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHaRfosup423wqHeDsVomN-AwJnqKlLSgmcE2FoHujNWTUkRs7JvyfSOzreWU0K8WcVeVLo_4d7HG1cRzMb738T6lhDH_lVjpA31zgmuWvKGKKTDdxZYIyRoaMTQgvLRd7kBAvPeCq7IOx/s1600/3-2014-solaire-of-astora.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHaRfosup423wqHeDsVomN-AwJnqKlLSgmcE2FoHujNWTUkRs7JvyfSOzreWU0K8WcVeVLo_4d7HG1cRzMb738T6lhDH_lVjpA31zgmuWvKGKKTDdxZYIyRoaMTQgvLRd7kBAvPeCq7IOx/s640/3-2014-solaire-of-astora.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;My friend Solaire of Astora - One of the most popular characters in Dark Souls.&lt;br /&gt;
He spends a lot of time looking at the sun and musing.&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJGFQITuckf4rvCme27mtM38V2GuDraVz39SiBNHKGAfyBgp46rg-UKh2KeLYSrlfd18sKKDI1pOyBkKEtGZ69YGoT2YrRUudBYpGNm0HCWbYktuey0chcwbd8lwUo7H5LObCum7oftqy7/s1600/4-tomb-of-the-giants.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJGFQITuckf4rvCme27mtM38V2GuDraVz39SiBNHKGAfyBgp46rg-UKh2KeLYSrlfd18sKKDI1pOyBkKEtGZ69YGoT2YrRUudBYpGNm0HCWbYktuey0chcwbd8lwUo7H5LObCum7oftqy7/s640/4-tomb-of-the-giants.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Tomb of Giants - The Skull Lantern lights the way in this godforsaken place.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYdNDXzHGCvE0E5OJJwIqbMx_MaqdLsf_vdjwUE6IYsXPCSorVRyimIi1sYB1Xfnt_6qkwwVXnixqapFULXqGN2ad4DL72K9ycU0elbXslJ-w53OIJkvPUfslYBsjUpaqoZJIgQyU4dJFa/s1600/5-Vamos-Smith-Catacombs.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYdNDXzHGCvE0E5OJJwIqbMx_MaqdLsf_vdjwUE6IYsXPCSorVRyimIi1sYB1Xfnt_6qkwwVXnixqapFULXqGN2ad4DL72K9ycU0elbXslJ-w53OIJkvPUfslYBsjUpaqoZJIgQyU4dJFa/s640/5-Vamos-Smith-Catacombs.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Blacksmith Vamos&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Now for the new photos after my return:&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGxiN9s0Orq0lRNYly7FElbOwaP3W4NjnLJ7Uek3deAZ81frZ14BiLuBpAFpOoIK1tmQlfQZvnJnUGgTG1NPzx3un-SBxp-tWAD7HWljqIvpT3ZB96QYg92bL5Qu0Nwg2_0GeSa5tpgb3S/s1600/6-the-dukes-archives.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;368&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGxiN9s0Orq0lRNYly7FElbOwaP3W4NjnLJ7Uek3deAZ81frZ14BiLuBpAFpOoIK1tmQlfQZvnJnUGgTG1NPzx3un-SBxp-tWAD7HWljqIvpT3ZB96QYg92bL5Qu0Nwg2_0GeSa5tpgb3S/s640/6-the-dukes-archives.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;I am in The Duke&#39;s Archives. Alright, bring it on!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0A4FflXS7At-1R4Xsy1rgo6LtfUF5uyiIU6HeMD36Ts_scvh7vhVjiHHcVonDsnJkB7YETSm0QFrVzM-3Ra6AmM_6QKn2BE2CrBS1s-R4rIFdDX7fZFUeHV3xaHStpitKD1aFRKwgAOPI/s1600/07-seath-the-scaleless.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;368&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0A4FflXS7At-1R4Xsy1rgo6LtfUF5uyiIU6HeMD36Ts_scvh7vhVjiHHcVonDsnJkB7YETSm0QFrVzM-3Ra6AmM_6QKn2BE2CrBS1s-R4rIFdDX7fZFUeHV3xaHStpitKD1aFRKwgAOPI/s640/07-seath-the-scaleless.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Enjoying the cutscene&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyKCV5kByIXIoHSRslYR0fo7IQ32aIlX8OQjJnfOv_fWC_rU9f4XEap3WigdlFfmJbHZ2xFYAKouU4A86r-X1IfOmNFQDJfpuEwdh2G4xwvrNyTUYSxZSFEsBU4zTddpUVR0m9-QsT2QLd/s1600/08-seath-the-scaleless.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;368&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyKCV5kByIXIoHSRslYR0fo7IQ32aIlX8OQjJnfOv_fWC_rU9f4XEap3WigdlFfmJbHZ2xFYAKouU4A86r-X1IfOmNFQDJfpuEwdh2G4xwvrNyTUYSxZSFEsBU4zTddpUVR0m9-QsT2QLd/s640/08-seath-the-scaleless.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Seath the Scaleless who betrayed his fellow dragons&lt;br /&gt;
and thus helped end their rule and bring about the age of fire.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjklORUMjOAqeLQ-syjSyLK68wGVbBZs523yRzZ-2IZreWiusVqVIHR_t5N6bsNl3YOLpGO2ZKs97r1VjwcR41dFjKub0Pj9s0Qo7Ty-MQ_KHDt4BsseVSbXQ2LGspP6rTJIPoNtZncNz0x/s1600/09-siegmeyer-of-catarina-onion-knight.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;368&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjklORUMjOAqeLQ-syjSyLK68wGVbBZs523yRzZ-2IZreWiusVqVIHR_t5N6bsNl3YOLpGO2ZKs97r1VjwcR41dFjKub0Pj9s0Qo7Ty-MQ_KHDt4BsseVSbXQ2LGspP6rTJIPoNtZncNz0x/s640/09-siegmeyer-of-catarina-onion-knight.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Siegmeyer of Catarina, a.k.a. The Onion Knight&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNHtCOhfjrS_uyBYYTUV_GZUYdf16AOdurqCZU87mXh3w29uVhAM2glprug4F1hNNOsvRFHId9nSQUJsoWuvrUl2ACJmi2mEyxiEjCu0FxqV_iAdhyphenhyphenJGaha-GGptu9AZhwOPajmWs7Osia/s1600/09b-onion-armor.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;368&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNHtCOhfjrS_uyBYYTUV_GZUYdf16AOdurqCZU87mXh3w29uVhAM2glprug4F1hNNOsvRFHId9nSQUJsoWuvrUl2ACJmi2mEyxiEjCu0FxqV_iAdhyphenhyphenJGaha-GGptu9AZhwOPajmWs7Osia/s640/09b-onion-armor.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;I can be an onion, too.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaggZfkg0UjshlmfUVnQ_a-d0r7VF4ygcmM_MkvtZxlEJCBquDtTmruT4n6M9Abh4Z3k0rsk_g2jQ9KA3DcXXSt8_Qkf7hAK4pZ9qMXBKl6qUu3PxU5SWtByw43SKQk2JurJ-ekhv7oriI/s1600/10-darkstalker-kaathe-lord-vessel.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaggZfkg0UjshlmfUVnQ_a-d0r7VF4ygcmM_MkvtZxlEJCBquDtTmruT4n6M9Abh4Z3k0rsk_g2jQ9KA3DcXXSt8_Qkf7hAK4pZ9qMXBKl6qUu3PxU5SWtByw43SKQk2JurJ-ekhv7oriI/s640/10-darkstalker-kaathe-lord-vessel.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;My tour guide Darkstalker Kaathe goofs around&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1IPaalQ8dNjf1iC520yFVA0KXpATTjAKe5VbD9jt1NMohgWcKvcDOTaLSrxbGNucATyNKrwzuQ8pDNY8zxeOvYCt_XoFHh4-iXLUijmW62ujerw44XCVj9xGQBovSHTZBeby74b_XOf9z/s1600/10b-painted-world.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1IPaalQ8dNjf1iC520yFVA0KXpATTjAKe5VbD9jt1NMohgWcKvcDOTaLSrxbGNucATyNKrwzuQ8pDNY8zxeOvYCt_XoFHh4-iXLUijmW62ujerw44XCVj9xGQBovSHTZBeby74b_XOf9z/s640/10b-painted-world.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Painted World of Ariamis is guarded by a beautiful dragon+human-hybrid woman.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOl-FteLCsz5TR_GDFEO98L5LcpWh07UQ_E1tsS_ioCwHQeyVwawyGIvKNupkWP8MXIowelX_K1u2RUXTL-wiwMbfFrUvnBVIej312jOxMz-n5eNbaT6bIcKEAnhWVL2wnjxioamFLY4Wv/s1600/10c-painted-world.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOl-FteLCsz5TR_GDFEO98L5LcpWh07UQ_E1tsS_ioCwHQeyVwawyGIvKNupkWP8MXIowelX_K1u2RUXTL-wiwMbfFrUvnBVIej312jOxMz-n5eNbaT6bIcKEAnhWVL2wnjxioamFLY4Wv/s640/10c-painted-world.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-aRpeSIr4juvc_Voq8mMOnxMaO_dPszBk0mDYYL7zZRd3LkSogiuqJ1ljZ3B-0HYi077otGttThYif2BCRpT78kXNGEbfgCgqYm_Dor1pL5_Iw23tBcTzMSIFHuMZ_EE-8eju4hyphenhyphenqRaT5/s1600/11-tis-but-a-scratch.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-aRpeSIr4juvc_Voq8mMOnxMaO_dPszBk0mDYYL7zZRd3LkSogiuqJ1ljZ3B-0HYi077otGttThYif2BCRpT78kXNGEbfgCgqYm_Dor1pL5_Iw23tBcTzMSIFHuMZ_EE-8eju4hyphenhyphenqRaT5/s640/11-tis-but-a-scratch.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Tis but a scratch.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUGB5u24UHGM0Ximkod32dEoDjCb_AI5TjGpusSf2KVXym4rNfqEIYc1ys_nhim7rkqo2MYiqp4hBdJ6hICmtrMAA6pv2PDJM7Cs91SeOc8DUj7FKblRmUA6SXnpq_DMuNdBiIh6lGqmU8/s1600/12-ash-lake.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUGB5u24UHGM0Ximkod32dEoDjCb_AI5TjGpusSf2KVXym4rNfqEIYc1ys_nhim7rkqo2MYiqp4hBdJ6hICmtrMAA6pv2PDJM7Cs91SeOc8DUj7FKblRmUA6SXnpq_DMuNdBiIh6lGqmU8/s640/12-ash-lake.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Since I&#39;m not perfect at the game, I had to learn some magic, get heavier armors&lt;br /&gt;
and specialized gear.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiUsjlhPdJGjhCawvaNQ1RXsr1ExinxcYcQ2lEztdVlq79o_F8Bc6XAthUAq-uVj49oKavcIuWTZSQiWlsx118stjiulFR6sEckKVkM-IkQUab8Grcg_qnKdDvTWQ8PCQdhbIFuExu-F0-/s1600/13-demon-ruins.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiUsjlhPdJGjhCawvaNQ1RXsr1ExinxcYcQ2lEztdVlq79o_F8Bc6XAthUAq-uVj49oKavcIuWTZSQiWlsx118stjiulFR6sEckKVkM-IkQUab8Grcg_qnKdDvTWQ8PCQdhbIFuExu-F0-/s640/13-demon-ruins.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Demon Ruins&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7bN38kQEQVw1zzzqEL_59Oe6W_NYucqcJRpHT4LmA_NYZJLryNn37zcprPfR7saAWCNd16JL8oUQBM0Mdzr3U1GtgqYJcevSkH-tiAuGjBF4LfomhkOS5Gauq92Kou827O1eC18I7Gi8I/s1600/14-jolly-coop.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7bN38kQEQVw1zzzqEL_59Oe6W_NYucqcJRpHT4LmA_NYZJLryNn37zcprPfR7saAWCNd16JL8oUQBM0Mdzr3U1GtgqYJcevSkH-tiAuGjBF4LfomhkOS5Gauq92Kou827O1eC18I7Gi8I/s640/14-jolly-coop.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Solaire joins for some jolly cooperation. \[T]/&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWdsz7ff9uVgZrR9xRM9XGegBpJ0sYQld636heteEshvbnDTtROqPbPXA60QqhNP0jd2-qdKqfoUBDo_Swkt7lpf1bDsdGdrFO1WYfjha5KpvBeYfgxP_zMtAnC6doa8i9MVy20cciWv5Y/s1600/14b-ash-lake.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWdsz7ff9uVgZrR9xRM9XGegBpJ0sYQld636heteEshvbnDTtROqPbPXA60QqhNP0jd2-qdKqfoUBDo_Swkt7lpf1bDsdGdrFO1WYfjha5KpvBeYfgxP_zMtAnC6doa8i9MVy20cciWv5Y/s640/14b-ash-lake.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Ash Lake - It&#39;s far underground and has a beach and a sky...&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRcx83257_dwsWnp5q2RCg_bq_zI16rE1Ytss8zjaFGnRWaqND3SGgnUxl6MYJs-HQzm8JHYHKfaMQRZVAiEJPRtkX-q0ySAGeH55Qs6KXccKl7vmg6hTZP7XrxzUsM-N6XwdWk5cqYIPU/s1600/14c-stone-dragon.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRcx83257_dwsWnp5q2RCg_bq_zI16rE1Ytss8zjaFGnRWaqND3SGgnUxl6MYJs-HQzm8JHYHKfaMQRZVAiEJPRtkX-q0ySAGeH55Qs6KXccKl7vmg6hTZP7XrxzUsM-N6XwdWk5cqYIPU/s640/14c-stone-dragon.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Stone Dragon - He initiates you into the Path of The Dragon covenant.&lt;br /&gt;
In this covenant you basically fight other players in return for shiny gear.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjykYxex_uW5V-2Kwf8JI8klQG9eB5nTVum11wYePJJITif4E-n4G1c8raRUuRzUIlDeLlXbNYODW09HPQrHR2dFrE14sLWCx0ptsahk7jaYxAMyFSFDOEtyyrll5OCwaOdrw0JdsobwVbH/s1600/15-kiln-of-first-flame.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjykYxex_uW5V-2Kwf8JI8klQG9eB5nTVum11wYePJJITif4E-n4G1c8raRUuRzUIlDeLlXbNYODW09HPQrHR2dFrE14sLWCx0ptsahk7jaYxAMyFSFDOEtyyrll5OCwaOdrw0JdsobwVbH/s640/15-kiln-of-first-flame.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Eventually, I gathered all boss souls and opened the gate to the last area ...&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNVCuMRyV_xWFAeGiAyxYR45MJiFzbrtiiTPptZ5DoQWdj1VxbnkmpsD5L1pamKFhr8UEJ9PNoChNGzpmgJXO5wpASvDsw06Iy5GafrNvrFyVL4H3mZVmMocAJQxVYWzgBaCSwCVfZ8uMQ/s1600/15b-kiln-of-first-flame.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNVCuMRyV_xWFAeGiAyxYR45MJiFzbrtiiTPptZ5DoQWdj1VxbnkmpsD5L1pamKFhr8UEJ9PNoChNGzpmgJXO5wpASvDsw06Iy5GafrNvrFyVL4H3mZVmMocAJQxVYWzgBaCSwCVfZ8uMQ/s640/15b-kiln-of-first-flame.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;... The Kiln of the First Flame&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZBuwjNlcxebHuN6QpND4Cp4rb84oddhm5mweZUM7tMx5Jy126tLGZ_zOJRpwOhUfVE9Z0bs8e8hmZ0H8QmAHjIikQbKgN5MysOB9NipffNV0d2a_HLKi_cU-UX8PiNkMnCpnUBQ_tILF/s1600/16-gwyn-lord-of-cinder.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZBuwjNlcxebHuN6QpND4Cp4rb84oddhm5mweZUM7tMx5Jy126tLGZ_zOJRpwOhUfVE9Z0bs8e8hmZ0H8QmAHjIikQbKgN5MysOB9NipffNV0d2a_HLKi_cU-UX8PiNkMnCpnUBQ_tILF/s640/16-gwyn-lord-of-cinder.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The last boss took me a week or two. Good dammit!&lt;br /&gt;
Finally, with the help of the strongest and heaviest armor,&lt;br /&gt;
I was able to beat him. Not pretty, but it worked.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9BD603aXnFH3YgRttOjnyxni8Aj-4VdiB0O1-PxKJ9pIykeS-pxHpUD4r7t-HhSGW5izpCbBrkseM_HpDwGZwENe30l0gCJopN96CFK3-_SX1diim0kJXPxHBcnGXYp_FZMbq-BFMo-Cz/s1600/17-end.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9BD603aXnFH3YgRttOjnyxni8Aj-4VdiB0O1-PxKJ9pIykeS-pxHpUD4r7t-HhSGW5izpCbBrkseM_HpDwGZwENe30l0gCJopN96CFK3-_SX1diim0kJXPxHBcnGXYp_FZMbq-BFMo-Cz/s640/17-end.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Like so many other players before you get to decide whether you offer your soul&lt;br /&gt;
to rekindle the flame and thus extend the age of fire,&lt;br /&gt;
or bring about the ultimately inevitable - the age of darkness.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIhi94ic-8eF_BII4sMNOrUfqwFQQHC_b8Wk79kV6-anhk-6QyFR1RC9MbtKexIgla9yvePWMtpSenBncU5Pf4qxC3QMtjfynE49-zMgWJYvC0Ssn_8oC5ZKFNBNnR9eH-peS0BTdEdMHM/s1600/18-end.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIhi94ic-8eF_BII4sMNOrUfqwFQQHC_b8Wk79kV6-anhk-6QyFR1RC9MbtKexIgla9yvePWMtpSenBncU5Pf4qxC3QMtjfynE49-zMgWJYvC0Ssn_8oC5ZKFNBNnR9eH-peS0BTdEdMHM/s640/18-end.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;In the end it doesn&#39;t matter. Nothing you did matters.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0XPkihxk-6guHOrOXgRDD554ytoa0bKshju3tKQTvcCWx9e9wTJY4YwJLA1ETRtokOdZc0QwHzeaky9Df55xk68ujKyxYYJJObSoN1x0EGlmYg1ap4fw2hla74pSgLw_OX22QAJ0uEUuU/s1600/19-ng-plus-plus.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0XPkihxk-6guHOrOXgRDD554ytoa0bKshju3tKQTvcCWx9e9wTJY4YwJLA1ETRtokOdZc0QwHzeaky9Df55xk68ujKyxYYJJObSoN1x0EGlmYg1ap4fw2hla74pSgLw_OX22QAJ0uEUuU/s640/19-ng-plus-plus.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;And thus repeats the cycle.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
New Game Plus is over, and NG++ starts. Everything repeats, except you keep your character and every enemy is stronger.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ymmuJ-VoFkNtlF9ZgoAZ77cp1uZ7V3NKHIeOGF6chs5m140JM5otUJL5EAA4K_5wMvTfGTcI6pFFjVaD-5bftS5A83uhm-rKkHsgNOsUJgR05uPJVCdpMTl7h9B6cmYVDXoyPxDZmJgj/s1600/20-giant-crow.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;364&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ymmuJ-VoFkNtlF9ZgoAZ77cp1uZ7V3NKHIeOGF6chs5m140JM5otUJL5EAA4K_5wMvTfGTcI6pFFjVaD-5bftS5A83uhm-rKkHsgNOsUJgR05uPJVCdpMTl7h9B6cmYVDXoyPxDZmJgj/s640/20-giant-crow.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Once the tutorial is done, a giant crow carries you away.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikIwr5FEVMnlNC43aXO-kEQgXEXzFP-qe5Z6NpPpG0a3SIOIZmvcV_q1ZXvPjzwMSbKGszwYLu0SJs6oy3YN_ouZOCYXA3A7ZE_pAEUWCmdPIQf5bQJMjvFCXy4jJopN6i8YrOjeNnZ5nY/s1600/21-lordran.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikIwr5FEVMnlNC43aXO-kEQgXEXzFP-qe5Z6NpPpG0a3SIOIZmvcV_q1ZXvPjzwMSbKGszwYLu0SJs6oy3YN_ouZOCYXA3A7ZE_pAEUWCmdPIQf5bQJMjvFCXy4jJopN6i8YrOjeNnZ5nY/s640/21-lordran.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Enjoy the scenery of Lordran while you can.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvFEwynaozWk7a4olJsUprWWB1lA1GFS4UEjgIuKz53kFmYF9S0vU80ysX3318HMVaez3jangqYsOZ3RmiBF2iEgEzlK9bIDz_VJo-9EWu71BDRhj_6lN6BVTSpvqQ3f1SSkbOXy8Z6hgz/s1600/22-fire-link-shrine.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvFEwynaozWk7a4olJsUprWWB1lA1GFS4UEjgIuKz53kFmYF9S0vU80ysX3318HMVaez3jangqYsOZ3RmiBF2iEgEzlK9bIDz_VJo-9EWu71BDRhj_6lN6BVTSpvqQ3f1SSkbOXy8Z6hgz/s640/22-fire-link-shrine.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;This is your home: the Firelink Shrine. The guy on the right already lost his mind.&lt;br /&gt;
Most characters in Dark Souls are crazy or lose it later on,&lt;br /&gt;
because the world is ruthless and there is no hope.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCA1tK4wXBYj56bqXCxzDVwpzImikNcr07ZpcMoUZ3hKU_4P0DyanfFRKJiWp5TbBEAwe31y5kXBz6RJfWZG9aCtaiZ0M3Q7cN77HTaA_PGsXqZ5tMgFn1v8itIH0mDIYpOwRRLUn8_P8G/s1600/23-bell-gargoyles.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCA1tK4wXBYj56bqXCxzDVwpzImikNcr07ZpcMoUZ3hKU_4P0DyanfFRKJiWp5TbBEAwe31y5kXBz6RJfWZG9aCtaiZ0M3Q7cN77HTaA_PGsXqZ5tMgFn1v8itIH0mDIYpOwRRLUn8_P8G/s640/23-bell-gargoyles.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;This Gargoyle guards one of two Bells of Awakening.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBE6DgS_4O4LpuhoY_fXtOHFWq4eCQIFoBTTJVjPsi6TBfGO77ptwu2BfK0kMefhM47Mo_X7xUgEhWp9_dgqJRKCo9K1Yu5rx-qXpF-qzu1NftNvT42CJcnC2WJkGj3OWDg4xCu88kmCic/s1600/24-bell-of-awakening.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBE6DgS_4O4LpuhoY_fXtOHFWq4eCQIFoBTTJVjPsi6TBfGO77ptwu2BfK0kMefhM47Mo_X7xUgEhWp9_dgqJRKCo9K1Yu5rx-qXpF-qzu1NftNvT42CJcnC2WJkGj3OWDg4xCu88kmCic/s640/24-bell-of-awakening.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Ringing the Bell of Awakening.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnQf9GBv6bx3RIEkOeV2lfF2tykq37fDEpDLX8BozGpUNUdWAI_Lm3Y3xZ1xYrnCNYWYrCrUZmD49W89Lyee3R2C8T6X69vSs4lZpJu_E-ON3pGlg2d016U6zCdQLbhCqzfg-1Hw4FKW_O/s1600/24b-anor-londo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnQf9GBv6bx3RIEkOeV2lfF2tykq37fDEpDLX8BozGpUNUdWAI_Lm3Y3xZ1xYrnCNYWYrCrUZmD49W89Lyee3R2C8T6X69vSs4lZpJu_E-ON3pGlg2d016U6zCdQLbhCqzfg-1Hw4FKW_O/s640/24b-anor-londo.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Anor Londo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8EhT9LDhyZcgZcwib4aqUUcD0UHkVmPhz7tQLHFLMtwzIk7piHsV41YLnOA5Akf_A8RQQULo8TN51tdiVsg8Cv1O1JURwGVPJLJsp48EDYKZOW-jfCEsh6NJ_ZVEaYbKcRNxMOVhCeeYT/s1600/25a-amazing-chest-ahead.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8EhT9LDhyZcgZcwib4aqUUcD0UHkVmPhz7tQLHFLMtwzIk7piHsV41YLnOA5Akf_A8RQQULo8TN51tdiVsg8Cv1O1JURwGVPJLJsp48EDYKZOW-jfCEsh6NJ_ZVEaYbKcRNxMOVhCeeYT/s640/25a-amazing-chest-ahead.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&quot;Amazing chest ahead&quot; - Gwynevere, Princess of Sunlight
                        &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbx2NKX3CVDwyM2TdYhXiff4bteR7GzlixI7a9f6F1F4V9izBNMnX1OgfhajD21FIklRGap4K6T4rkhbcGTd_FD6fCNpg7sRGXH_9LBVj9o6cuoNPWx6KP0JPFOBlvLePs5cONd8EGvs5R/s1600/25b-lord-vessel-firelink-shrine.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbx2NKX3CVDwyM2TdYhXiff4bteR7GzlixI7a9f6F1F4V9izBNMnX1OgfhajD21FIklRGap4K6T4rkhbcGTd_FD6fCNpg7sRGXH_9LBVj9o6cuoNPWx6KP0JPFOBlvLePs5cONd8EGvs5R/s640/25b-lord-vessel-firelink-shrine.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4RDTrPIAd8GoxMyT0pL4VycOqwRNOFc0sE85D6KE-eQsW5bPIGQnq24hAn1BE3bmWG-oKrQXJja1p7y3GX5QxH1ehsN3SjxqCmRInA7SrVPr5R4J56t94ovpoh4AUBH6C-oGdKzOV25Q/s1600/26-seath-the-scaleless.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4RDTrPIAd8GoxMyT0pL4VycOqwRNOFc0sE85D6KE-eQsW5bPIGQnq24hAn1BE3bmWG-oKrQXJja1p7y3GX5QxH1ehsN3SjxqCmRInA7SrVPr5R4J56t94ovpoh4AUBH6C-oGdKzOV25Q/s640/26-seath-the-scaleless.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Seath once more&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Z0iqHMQU92gXz86JJ2RYBl_wQtw0IF2vpeuKz5CebPHU_YxF2p6I0vmxW28zO7iuQM3iMiWfHujszMdlO6uzQFa9RoZLoswa3xH09AOZFo_aLRnZHyoC-H7BTdIFV-_fkgnlgEwatpmg/s1600/27-seath-the-scaleless.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Z0iqHMQU92gXz86JJ2RYBl_wQtw0IF2vpeuKz5CebPHU_YxF2p6I0vmxW28zO7iuQM3iMiWfHujszMdlO6uzQFa9RoZLoswa3xH09AOZFo_aLRnZHyoC-H7BTdIFV-_fkgnlgEwatpmg/s640/27-seath-the-scaleless.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiykB-AzUICOfe_-Rax_wAHJ6X50nvS-Hd6omXHNUe1KGAOVtACmX9dhau1qL8xIYDwLQ6hJCV_jBt9VxxNSyLgClONkOYK1nYIuB-Jkb1y-v3_VnnSw54bnaW5W3tYNVYl_NnhyyW__8k/s1600/28-praise-the-sun.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiykB-AzUICOfe_-Rax_wAHJ6X50nvS-Hd6omXHNUe1KGAOVtACmX9dhau1qL8xIYDwLQ6hJCV_jBt9VxxNSyLgClONkOYK1nYIuB-Jkb1y-v3_VnnSw54bnaW5W3tYNVYl_NnhyyW__8k/s640/28-praise-the-sun.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Praise the sun \[T]/&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/325475810713533750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2017/05/dark-souls-1-photo-tour.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/325475810713533750'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/325475810713533750'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2017/05/dark-souls-1-photo-tour.html' title='Dark Souls 1 Photo Tour'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrn8Tntz1Ex3PymW2F_5Appp8JHLS-0Tz37YfOcLsM60EFeUL2LeFOJACGkZaF5TrAQUjSZdXX3T6Ak0MXCXCVJ9A8FirZiAULwDuIBRLc5SOcmg3vnLNT_tFytoGZ-Dd42TZZJ3bEXohx/s72-c/1-2014-beef-jerky-wanderer-uchigatana-grass-crest-shield.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-655382197740826702</id><published>2017-04-08T19:40:00.000+02:00</published><updated>2019-05-15T17:33:14.705+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="knoxville"/><category scheme="http://www.blogger.com/atom/ns#" term="oak ridge"/><category scheme="http://www.blogger.com/atom/ns#" term="ornl"/><category scheme="http://www.blogger.com/atom/ns#" term="photos"/><category scheme="http://www.blogger.com/atom/ns#" term="tennessee"/><title type='text'>In a Galaxy Far Far Away</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
As many of you already know, at the beginning of the year I joined Oak Ridge National Laboratory as a Research Associate. My job is to use my knowledge in HPC performance analysis to enable scientific codes &lt;a href=&quot;https://www.olcf.ornl.gov/caar/&quot;&gt;(like these)&lt;/a&gt; to run better on &lt;a href=&quot;https://www.top500.org/system/177975&quot;&gt;Titan&lt;/a&gt; - the fastest open-science super computer of the western world and its successor &lt;a href=&quot;https://www.olcf.ornl.gov/summit/&quot;&gt;Summit&lt;/a&gt; (POWER9+NVIDIA Volta). Needless to say that this is super-exciting work!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
As a result, I now live in &lt;a href=&quot;https://www.google.com/maps/place/Knoxville,+TN/@35.9142792,-86.1865257,6.75z/data=!4m5!3m4!1s0x885c162246ce42a9:0x7bea92dac4f534c5!8m2!3d35.9606384!4d-83.9207392&quot;&gt;Knoxville&lt;/a&gt;/Tennessee and there is so much to talk about :). This is not a coherent post. More like a fact and opinion rapid-fire.&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC_BXVOORb2tU0wP6kOad1PyaOj9iT0iAyBhIU2aThlgjZxrfcLBDPtnR3JsV7mqxupwxPaHA-mZMX7ytcuPROgSw0IR-kZ_R2kVuA1AuZdGaCSRVq10sIxTezQ-Gq-wyCFTIzd9tWYEEi/s1600/flag-map-and-ornl-logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;123&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC_BXVOORb2tU0wP6kOad1PyaOj9iT0iAyBhIU2aThlgjZxrfcLBDPtnR3JsV7mqxupwxPaHA-mZMX7ytcuPROgSw0IR-kZ_R2kVuA1AuZdGaCSRVq10sIxTezQ-Gq-wyCFTIzd9tWYEEi/s640/flag-map-and-ornl-logo.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The flag of Tennessee, where it is on the map, and the ORNL Logo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Everything feels around 1.5x as expensive as in Germany. Around what I would expect if the exchange rate to Euro would have stayed where it initially was. Gas costs 53&lt;span class=&quot;st&quot;&gt;¢&lt;/span&gt;/l. Electricity costs 9.8&lt;span class=&quot;st&quot;&gt;¢/kWh. Let that sink in for a second - Electricity and gas are practically dirt-cheap. A full tank costs me $23. No wonder people drive these giant-ass pickup trucks.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;Houses are generally cheaply made - starting at ~$50k. &lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&lt;span class=&quot;st&quot;&gt;In my apartment the air conditioning system both cools and heats. &lt;/span&gt;This combination of cheap housing and super-inefficient heating resulted in my first two month&#39;s electricity bills being around $40 (~400kWh). And this has to be just heating and maybe the fridge (It&#39;s a biiiig fridge). Although electricity is cheaper, I managed to pay more than a single-person household would pay in Germany. Electricity is so cheap people don&#39;t even bother getting LED light bulbs.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;Wow, just wow.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;Meat, especially beef is a lot cheaper. You can get a decent steak for $15 per kg. In general beef tastes a lot lot better than what you can get in Germany. It&#39;s seriously amazing. Beans and rice are also cheap. Ben &amp;amp; Jerry&#39;s costs $4-5, which is a blessing :).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggLCXJ-ZZvaRC6apWiyC_vk4lyaTEtFvmCfh80UCIwQ-oM-t4KH8Ymr8dPhmo6xEC2CtdUzZNPgMFz8SGuYzqdUKd6e7-WP5Fm4_Ey0tONFcUMRWQLyE3ihYVUWEvalog8h6CoBlSvRRgW/s1600/steak-before.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggLCXJ-ZZvaRC6apWiyC_vk4lyaTEtFvmCfh80UCIwQ-oM-t4KH8Ymr8dPhmo6xEC2CtdUzZNPgMFz8SGuYzqdUKd6e7-WP5Fm4_Ey0tONFcUMRWQLyE3ihYVUWEvalog8h6CoBlSvRRgW/s640/steak-before.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A gigantic T-bone steak&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKhfX-tMJ5jdmBcllFTT2XhIAdrIuzMFjUxVGxUp0Xcql6dkurBQJoBPlz5nhd1kzParkMpU5iLv5tzSUVd0s2yMSjsn-8KtcpgUE4bUXgLKoLBF39CNNGj91XhLBSuYlTL-RchiXw_HYB/s1600/steak-after.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKhfX-tMJ5jdmBcllFTT2XhIAdrIuzMFjUxVGxUp0Xcql6dkurBQJoBPlz5nhd1kzParkMpU5iLv5tzSUVd0s2yMSjsn-8KtcpgUE4bUXgLKoLBF39CNNGj91XhLBSuYlTL-RchiXw_HYB/s640/steak-after.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Dinner time &amp;lt;3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span class=&quot;st&quot;&gt;My phone bill is around $30 for 20 minutes, 30 messages and 550MB, and Comcast wants $70 for 25/5MBit. Comcast has the worst customer service I have ever seen. I spent many attempts and a total of 2-3 hours to get two things sorted out. It&#39;s actually ridiculous how unhelpful their customer support is.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;The typical rent in Oak Ridge/Knoxville ranges between $500 and $1000 for a normal sized flat.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;st&quot;&gt;
&lt;span class=&quot;st&quot;&gt;Spatially, everything here is very very spread out. 
Knoxville has a population of 185k on roughly Dresden&#39;s area, and Knox 
County has 430k on five times that area. Oak Ridge has 30k people on 
3/4ths the area of Dresden. &lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&lt;span class=&quot;st&quot;&gt;In order to go downtown I need to drive about 8km. To the next mall I need somewhere between 2 and 8km depending on which. &lt;/span&gt;The
 only thing where I can really walk to is the gas station down the road.
 Sidewalks are rare, almost non-existent. Only downtown is it possible 
to get anywhere without a car. That makes having a car essential. This also
 means you cannot run, bike or take a decent walk from your door step, 
but rather have to drive somewhere and then go from there. It&#39;s annoying
 having to drive, go for a run, and then drive home all sweaty.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;st&quot;&gt;So I had to buy a car. The best option turned out to be
 to just buy it from a friend who left the country at the time I 
arrived. It&#39;s a shiny 2015 Ford Focus Sedan 6-shift manual.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHLLHY25NScJ3IXOC1TFCoURYeTsWg4WZyTKHMzpISrg5fIDhVZ5YhIDe24q1oWW-8EgoNtlzDD-PxXLc6aeDEQ2LpbTw6baTK2e6-h5Qa8RxmEBNn64JaUnxq4rijlTKbGQ3oLt2AGYxh/s1600/my-car.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;251&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHLLHY25NScJ3IXOC1TFCoURYeTsWg4WZyTKHMzpISrg5fIDhVZ5YhIDe24q1oWW-8EgoNtlzDD-PxXLc6aeDEQ2LpbTw6baTK2e6-h5Qa8RxmEBNn64JaUnxq4rijlTKbGQ3oLt2AGYxh/s640/my-car.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGCooaCqtl85lAP4PIM_HkSb62xO2sns-XHBrlZ6BwMKD2OYgrNAtOD4ICssReNNEZHem3yBWCA74GmiyWW-y4oPsKpmC_FwdCrdH59eFUs7yGCmT14yDOhvrew6MBIO0ThSB3b2DErbIm/s1600/car.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGCooaCqtl85lAP4PIM_HkSb62xO2sns-XHBrlZ6BwMKD2OYgrNAtOD4ICssReNNEZHem3yBWCA74GmiyWW-y4oPsKpmC_FwdCrdH59eFUs7yGCmT14yDOhvrew6MBIO0ThSB3b2DErbIm/s640/car.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;When I arrived in the USA, I used a rental car for while. During that time I came to like automatic transmission. Sadly this one is a manual. Well, at least no one will be able to steal it - &lt;a href=&quot;http://abc13.com/news/carjacker-kills-father-because-car-isnt-an-automatic-/1796915/&quot;&gt;although&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;I think Focus sedans don&#39;t exist in Germany. Overall there are more big cars on the road here and most of them are sedans and pickup trucks. Hatchbacks are very rare. Almost no one drives small cars. Very rarely do you see a Smart, a Fiesta or a Golf.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;I bought a dash cam to play around with and for insurance purposes&lt;span class=&quot;st&quot;&gt;. People here are bad drivers: No signaling, random lane switching, overtaking on the right. Something like the TÜV does not exist. There are cars driving around where you are surprised they are able to drive at all. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&lt;span class=&quot;st&quot;&gt;&lt;span class=&quot;st&quot;&gt;&lt;span class=&quot;st&quot;&gt;This also means there is no emission checking. I saw couple of cars that emitted pitch-black fumes. What the hell. &lt;/span&gt;&lt;/span&gt;Getting a driver&#39;s 
license is very easy, and costs just $30. Many don&#39;t 
even have car insurance. Phoning while driving is allowed. Texting is not.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;In Tennessee, you can film anywhere where people have no reasonable expectation of privacy. Which is (almost?) everywhere in public. Everywhere else you are allowed to record conversations of where you have at least the consent of one involved party, for example yourself.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;st&quot;&gt;When you go shopping, everything is put into bags for you by the cashier. Bags bags bags. One notable exception is Aldi. Here&#39;s a picture of the result of my first shopping tour in the US.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8SHsn95cPaxbPP7wlfYQiKi7NpwwbyS6oPa9wz6S7X2m3TSnDX0p-RUse_kkvSjlzTi5ZTVhonINM-xF7orXkl6L6m3TN3_z_MMsvFDDxlMNFZA0SxS-ijpPik_PmWmb4gAvPJTQdZTfF/s1600/first-walmart-shopping.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8SHsn95cPaxbPP7wlfYQiKi7NpwwbyS6oPa9wz6S7X2m3TSnDX0p-RUse_kkvSjlzTi5ZTVhonINM-xF7orXkl6L6m3TN3_z_MMsvFDDxlMNFZA0SxS-ijpPik_PmWmb4gAvPJTQdZTfF/s640/first-walmart-shopping.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;No one recycles. In order to recycle you need to drive to the next recycling center - 7km for me. It&#39;s just a simple place with big containers for each kind of waste. Before I began recycling, I created at least four times the amount of trash I generated in Germany, which is crazy.&amp;nbsp; Separating biodegradable waste is not a thing at all.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;Many stores are open every day and for way longer than in Germany. For example at Walmart you can go shopping 24/7.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;st&quot;&gt;Tennessee sees extremely quick weather changes, I think because it&#39;s continental and the mountain ranges are vertical so that weather coming in from north and south passes through quickly. One day it&#39;s 0°C, the next day it&#39;s 10&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&lt;span class=&quot;st&quot;&gt;°C&lt;/span&gt; and a few days later it can be more than 20°C. And then suddenly a thunderstorm with 1cm hails lasting for just one hour shows up.&amp;nbsp; Ughh. I feel like I have seen more extreme weather in four months than my hole life. &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;st&quot;&gt;Here&#39;s nine people blowing leafs around the apartment complex towards their truck. I would expect rakes, but no.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwFVXTAP_Ovj6Cd5F1EVKqzklsoL19mUNWeGVWD1WRPTiaWrHBF2NI_aMBj6t064J0dK9WcKiCPE3Om-DrJPxc6w8j_ugTqbbmcKchASgMQpOP2vDwWxxpvT-NlTE6ZvPlk5TTbGU6jMP7/s1600/leaf-blowers.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;249&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwFVXTAP_Ovj6Cd5F1EVKqzklsoL19mUNWeGVWD1WRPTiaWrHBF2NI_aMBj6t064J0dK9WcKiCPE3Om-DrJPxc6w8j_ugTqbbmcKchASgMQpOP2vDwWxxpvT-NlTE6ZvPlk5TTbGU6jMP7/s640/leaf-blowers.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Another peculiarity is beer. The old opinion that American beer is bad does not hold anymore. Actually, I think it&#39;s overall better than in Germany. Mainly because the variety is so large. There are many small breweries creating all kinds of beers - IPAs, Ales, Stouts, Lagers, Pilseners. Their Pilseners are terrible in comparison to ours, though. One big downside is that I get headaches very quickly from their stuff. Not sure what exactly causes this. Perhaps it&#39;s the added sugar in some of them. The price for beer starts at around $1-1.5 for a 350ml bottle of industrial beer. A beer at a bar is usually between $4 and $6.&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw0KP-JFYjicVNKq2zufLD721lvlYVlbDlBiojzEINzZxBl82JLZknL5J87AW59lHb19FBTyyXjz9Ecw0MoVqq9drrNDJLSKK3V7_ssq5TyV59zhC8VDksaysu_2ZcSLuDSmtP31Ohg30n/s1600/a-million-beers-on-tap.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;423&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw0KP-JFYjicVNKq2zufLD721lvlYVlbDlBiojzEINzZxBl82JLZknL5J87AW59lHb19FBTyyXjz9Ecw0MoVqq9drrNDJLSKK3V7_ssq5TyV59zhC8VDksaysu_2ZcSLuDSmtP31Ohg30n/s640/a-million-beers-on-tap.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A bazillion beers on tap. Every time a barrel is emptied,&lt;br /&gt;
they add a different beer. Great! &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfj2v0GmmOPan23q8pH-CRnbgGN8gGBqHCHgLTrOdK5Ux-XNQGVqIk6Tbf7tA7r-uk-TeXy0CI-N69Sbjj-NGgvM6Xh6opKnUxqI481gFxRkEDypWfdyjviiJhFNQLo1cho9Gk_65M7T0S/s1600/beers-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfj2v0GmmOPan23q8pH-CRnbgGN8gGBqHCHgLTrOdK5Ux-XNQGVqIk6Tbf7tA7r-uk-TeXy0CI-N69Sbjj-NGgvM6Xh6opKnUxqI481gFxRkEDypWfdyjviiJhFNQLo1cho9Gk_65M7T0S/s640/beers-4.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;They ship this to here!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8rAPXi1H_Qud6gPkgGwNP6R7r4YzPYkGle9cI944wofr43OtSFRwQOuu4baVyJpVgky6zsVr073ZPv9oK1p6mrVbQ4g-FktOmV1Xs3tjB8ezxJ0R1KdNsjwG-hYGV3qgqeITpPsqWygY0/s1600/beers-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;449&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8rAPXi1H_Qud6gPkgGwNP6R7r4YzPYkGle9cI944wofr43OtSFRwQOuu4baVyJpVgky6zsVr073ZPv9oK1p6mrVbQ4g-FktOmV1Xs3tjB8ezxJ0R1KdNsjwG-hYGV3qgqeITpPsqWygY0/s640/beers-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Create your own six-pack for $10 at Kroger.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_TZkI2x_5gjXioPBuUgUlzwpCF6C5tanjBjk1NPsx5Vv8j0YgP8uPandNWruJvpo6iKFdn45a1qFcHl743rgk1gYpYT1EJ_bfuRHzD405AmKvf0t6oh7lsceeVPduvDaCXfx-U_ltXjOS/s1600/beers-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_TZkI2x_5gjXioPBuUgUlzwpCF6C5tanjBjk1NPsx5Vv8j0YgP8uPandNWruJvpo6iKFdn45a1qFcHl743rgk1gYpYT1EJ_bfuRHzD405AmKvf0t6oh7lsceeVPduvDaCXfx-U_ltXjOS/s640/beers-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The German/Austrian beers at Bearden Beer Market.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Trivia is a big thing around here. Lots of bars do it on a weekly basis. Our moderator Will at Hops and Hollers does an awesome job at it. Trivia is awesome! You have to collectively find the right answer, and betting-rounds or be-as-close-as-you-can-to-the-correct-answer increase tension and fun. Since I&#39;m here we managed to win twice, and perhaps we will make it to a second-tier tournament later this year. Our strong suits are science, music, movies, history, religion, alcohol, geography, everything German / European. We are reasonable good at sports and suck a lot at Celebrities, TV and commercials.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Imperial units. Some call them freedom units or retard units. Only a handful of countries still use them. I got used to them more quickly than I expected. You only convert when you need to be exact. Most of the time you don&#39;t convert at all. On the road 10 miles is far, a quarter mile is soon, 1000 feet is sooner and 100 feet is very soon. An ounce is 30 grams. A pound is half a kilogram. A quarter pound is 100g, 12 fluid ounces is a can, a freedom pint is 16floz which is around 500ml. Yes, an American pint is really smaller than an imperial pint. A gallon is four liters.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
While I&#39;m here I have the goal to try as much local things as possible. I tried Pop Tarts, Twinkies, steak, philly cheese steak sandwich, mac &amp;amp; cheese, burger, hot dog, pizza, salsa, tortillas, tacos, quesadillas, chicken wings, and all those food chains like Chipotle, Five Guys, Blaze Pizza, Wendy&#39;s etc. There is actually quite a few things that are super-tasty!&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZzAE26zRNNnhw9FUc5xOKwV54G6ictbBrbmzUjlOYHeC_E9HU77KFXrnDSSfCC9pQSkkSi7gMXtvLJGBrhWHs66fzqo9Fs2-GAPcgTDZVdxaQba1_HSHDTbXnl_PFVbCLIuYs_cIklzQV/s1600/twinkies.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZzAE26zRNNnhw9FUc5xOKwV54G6ictbBrbmzUjlOYHeC_E9HU77KFXrnDSSfCC9pQSkkSi7gMXtvLJGBrhWHs66fzqo9Fs2-GAPcgTDZVdxaQba1_HSHDTbXnl_PFVbCLIuYs_cIklzQV/s640/twinkies.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Twinkies do have an expiration date!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Among other things I also want to see a rocket launch, go to a republican rally and to the shooting range. That&#39;s going to be interesting!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Since the election of Donald Trump politics has been a big shitfest. While Germany wrangles over sharing passport data with the police and meta data retention, things like these happen here:&lt;/div&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nytimes.com/2017/01/27/us/politics/refugee-muslim-executive-order-trump.html?_r=1&quot;&gt;Immigration-limiting executive order&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/tech-policy/2017/03/for-sale-your-private-browsing-history/&quot;&gt;Bill that allows ISPs to sell your browsing history&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/science/2017/03/companies-want-employees-genetic-info-new-bill-lets-them-take-it-by-force/&quot;&gt;Companies might soon be able to force genetic tests on employees and share the results with third parties&lt;/a&gt;.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;a href=&quot;https://arstechnica.com/science/2017/03/trump-flips-science-the-bird-with-new-budget/&quot;&gt;Trump&#39;s budget proposal would cut science by $50B and increase military spending from $550B to $600B&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arstechnica.co.uk/tech-policy/2017/02/nasa-scientist-detained-us-border/&quot;&gt;JPL scientist had to unlock his work phone at the airport&lt;/a&gt;. The aftermath is a big discussion on how to travel with electronics to and from the USA.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2017/01/26/trump-order-strips-privacy-rights-from-non-u-s-citizens-could-nix-eu-us-data-flows/&quot;&gt;Executive order to remove the privacy-rights of foreigners living in the US&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/science/2017/03/trumps-executive-order-on-climate-change-finally-drops/&quot;&gt;Executive order to ignore climate change in favor of helping coal and oil&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I hope that voters pick up on these things and react accordingly.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Oak Ridge National Laboratory, short &lt;i&gt;the lab&lt;/i&gt;, is a very interesting place to work at. It is located on a 40km&lt;span class=&quot;_Tgc&quot;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/span&gt; patch of land in the middle of nowhere surrounded by mountain ranges. To get to it you need to drive at least 10km. My commute from Knoxville is about 30km. The nearest airport is 45km away.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Historically it is one of the sites created for the Manhattan Project. More specifically, the lab was tasked with creating large amounts of weapons-grade plutonium.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
During this time the city of Oak Ridge has been established.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Today the lab still has the old &lt;a href=&quot;https://en.wikipedia.org/wiki/X-10_Graphite_Reactor&quot;&gt;graphite reactor&lt;/a&gt; opened for tourists. Besides that it has a number of leading-edge science facilities. Some of them are:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;http://Spallation Neutron Source&quot;&gt;Spallation Neutron Source&lt;/a&gt; (SNS), a giant nuclear research reactor used for neutron imaging and radiation experiments by hundreds of scientists from all over the world&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://en.wikipedia.org/wiki/High_Flux_Isotope_Reactor&quot;&gt;High Flux Isotope Reactor&lt;/a&gt; (HFIR), a different kind of research reactor&lt;/li&gt;
&lt;li&gt;The infamous &lt;a href=&quot;https://en.wikipedia.org/wiki/Multiprogram_Research_Facility&quot;&gt;Building 5300&lt;/a&gt; which is right next to my workplace - Classified things are going on in there. Read the Wikipedia article for more info.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://www.olcf.ornl.gov/&quot;&gt;Oak Ridge Leadship Computing Facility&lt;/a&gt; (OLCF)&lt;/li&gt;
&lt;li&gt;And many more&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The OLCF houses &lt;a href=&quot;https://www.olcf.ornl.gov/titan/&quot;&gt;Titan&lt;/a&gt;, the #1 civil supercomputer of the western world. In the &lt;a href=&quot;https://www.top500.org/lists/2016/11/&quot;&gt;Top500&lt;/a&gt; there are two Chinese machines that score higher, but that&#39;s it. Titan consists of 200 cabinets, 18,000 nodes, 18,000 NVIDIA Kepler cards and 300,000 AMD Opteron cores.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The successor to it is &lt;a href=&quot;https://www.olcf.ornl.gov/summit/&quot;&gt;Summit&lt;/a&gt;, which will be built by IBM and will contain POWER9 processors, NVIDIA Volta cards and NVRAM. It will deliver north of 100 petaFLOPS. Before Summit starts arriving later this year, right now we have a test setup consisting of POWER8 + P100 cards and local NVMe storage to gain experience with. Shiny!&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw04lYh_7JI54gCB77CMBEsbtTCMaz5VItDYWz0eRBdjKJ7VxBX-cD6YryFIvcWPp4x7o01KT6e0HdCekVF_RGQI-W_6PpggJbtFHhnrktE4YSV9Z259v9fvFQ-MmC8U5pUPUcDdILM-JN/s1600/titan-olcf.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw04lYh_7JI54gCB77CMBEsbtTCMaz5VItDYWz0eRBdjKJ7VxBX-cD6YryFIvcWPp4x7o01KT6e0HdCekVF_RGQI-W_6PpggJbtFHhnrktE4YSV9Z259v9fvFQ-MmC8U5pUPUcDdILM-JN/s640/titan-olcf.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The lab has a staff of around 4000 people, plus 3000 guest researchers, and 500 interns annually from all around the world. It is a very diverse work place. I could not find numbers, but I would guess that at least a third are foreigners. I know people from Belgium, China, Egypt,  England, France, Germany, India, Kyrgystan, South Africa and Spain. It feels like almost everyone has a PhD, and people are generally super-smart and relaxed. I love it.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
One of the main tasks of the national labs in the USA is the maintenance of the nuclear arsenal. That includes for example simulating the decay of the weapons.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The nature of interactions at the lab is a bit different from what I am used to. Oftentimes people don&#39;t directly answer/admit something. There is a kind of double-speak depending on the subject. I can&#39;t really put a finger on it or want to give examples. It&#39;s just how it feels. I think this is a product of the type of work some people are doing, the things some people know/suspect, the fact that you should assume to be watched, and the fact that suing people is a national sport. The amount of ass-covering going on is substantial, not just at the lab, but in general. For example there is a banner in my building thanking people for millions of safe work hours. And packaging of food or hot beverages often tells you not to be an idiot.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
The lab is used both by the Department of Energy (DOE) and Department of Defense (DOD). The DOD is the parent agency of the NSA.&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I don&#39;t know how it exactly works, but I think the DOE is a rather civil branch whereas the DOD is the military. One of the tasks of the DOE is to maintain and control the nuclear stockpile together with the DOD, so that not only one department has control over it.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The median income per person in the USA is around $30k, the median household is $50k. Tennessee is a bit below that. With a master&#39;s degree I am at more than twice the per-person-median and in the top 20%. I feel the income distribution is a bit worse than in Germany, especially towards the lower end. I feel that lab employees are overall fairly rich. Rumor has it that better positions pay way way better than e.g. higher positions in German public service. It&#39;s run like a private company.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
To conclude this post, here are a few photos for you to enjoy:&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://automaton2000.com/uploads/blog-panoramic-view.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://automaton2000.com/uploads/blog-panoramic-view.jpg&quot; height=&quot;108&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A panoramic view of a few houses and the Interstate 40&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLRIVllAgltwu1LQQr0TnaO5kd5WaPNsyxZp1dKxbSfVjzCwh9JJEPqocIaFbm2ycmNsbrMli9N_orQwNDI6yGFvlqGP67i0yMsGnzUx6jYwNF2WunkHvKwiobX9_zE_7Opkw40uzV8Oop/s1600/lake-shore-park.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;249&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLRIVllAgltwu1LQQr0TnaO5kd5WaPNsyxZp1dKxbSfVjzCwh9JJEPqocIaFbm2ycmNsbrMli9N_orQwNDI6yGFvlqGP67i0yMsGnzUx6jYwNF2WunkHvKwiobX9_zE_7Opkw40uzV8Oop/s640/lake-shore-park.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Lake Shore Park is nice for running.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhydVKxuSzg9-FgaTIyIlpwXwEQm8xmHnNdLZFYpP_cx8z10Zv2resfgwbn9hqsCYboc_XJp6HeZtrAf_ITwrdPQCmX7qJIv0a4BB2OKQ3D4UUXNDrpNVbEK0S8GuA7XbrQALWxmO-bpN5C/s1600/smokies-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;299&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhydVKxuSzg9-FgaTIyIlpwXwEQm8xmHnNdLZFYpP_cx8z10Zv2resfgwbn9hqsCYboc_XJp6HeZtrAf_ITwrdPQCmX7qJIv0a4BB2OKQ3D4UUXNDrpNVbEK0S8GuA7XbrQALWxmO-bpN5C/s640/smokies-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;On our way to Ober Gatlingburg to go skiing&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAkTqu1Dm-eEVD5sBB8_6mCqfmaWvfWYXWhZKbnd7qI0FRobM_BMiMN-PjcnU9i6n_XXrJDoW-b88MriS_h3EHRbssW5vqCwijngZ4siDEvMOb613oH7vJZXh6wK_x8o1I5vS-2FtX2E_K/s1600/smokies-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAkTqu1Dm-eEVD5sBB8_6mCqfmaWvfWYXWhZKbnd7qI0FRobM_BMiMN-PjcnU9i6n_XXrJDoW-b88MriS_h3EHRbssW5vqCwijngZ4siDEvMOb613oH7vJZXh6wK_x8o1I5vS-2FtX2E_K/s640/smokies-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZeCXKmTLEC0vKkRVFpN-bE6vglLfE0clxcQIIq-ikzrt15mJY-iYAmyms57h2RSw9PfhS0nhcvQFebihO4OoY751FQI4s4FLXw49pg7v_Y7d1JrdWHJtnXJDsJdSp_btWEFq8ja3bXwL/s1600/disney-store-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;281&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPZeCXKmTLEC0vKkRVFpN-bE6vglLfE0clxcQIIq-ikzrt15mJY-iYAmyms57h2RSw9PfhS0nhcvQFebihO4OoY751FQI4s4FLXw49pg7v_Y7d1JrdWHJtnXJDsJdSp_btWEFq8ja3bXwL/s640/disney-store-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;There is a Disney store in West Town Mall&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3pzcYFVAhH82868g2VVY38PHnJ54mvKSfsb7hpZu41Y5JNnieWG7cnfeYoIej_P_NjtGvQaxRcYz_DCBT33HS3dBxs4dUF7okRevx53ZjtXp_nY0_ayCsaXxcKoJMEfhnXnJ4vhci3PGY/s1600/disney-store-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;323&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3pzcYFVAhH82868g2VVY38PHnJ54mvKSfsb7hpZu41Y5JNnieWG7cnfeYoIej_P_NjtGvQaxRcYz_DCBT33HS3dBxs4dUF7okRevx53ZjtXp_nY0_ayCsaXxcKoJMEfhnXnJ4vhci3PGY/s640/disney-store-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;It consists mainly of Star Wars merchandise and princess costumes.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipPHyA3U8w4js-SzWuDTlofvwUVW1JA6mjtbmcuV1fYDAZeIdJpcUq2MOtKwpeug2dp58g4rOiy8mki5H7hyXcILb4IgBgrJauRKlb4attXL96nIQvtwq1SmDUxyi8jlQ_2w4xGoxyLusg/s1600/pi-day.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;280&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipPHyA3U8w4js-SzWuDTlofvwUVW1JA6mjtbmcuV1fYDAZeIdJpcUq2MOtKwpeug2dp58g4rOiy8mki5H7hyXcILb4IgBgrJauRKlb4attXL96nIQvtwq1SmDUxyi8jlQ_2w4xGoxyLusg/s640/pi-day.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Pi Day!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidV7MuHtGYsV69VvLLsl5DRA-h0FnRI9aFrzDgw9B-eJWBYIz2Vif9NlsRaqz16umIdhKXrQxTZnGYkWUOfX-eURZz23mW5z4Gc0fReh6uYXXgqdEFQhDdNVLDzegngP_K10FOhtjW26Y8/s1600/authentic-german-cuisine.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;334&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidV7MuHtGYsV69VvLLsl5DRA-h0FnRI9aFrzDgw9B-eJWBYIz2Vif9NlsRaqz16umIdhKXrQxTZnGYkWUOfX-eURZz23mW5z4Gc0fReh6uYXXgqdEFQhDdNVLDzegngP_K10FOhtjW26Y8/s640/authentic-german-cuisine.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Authentic German cuisine. Haven&#39;t been there, yet.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlo3HKuyyE5OgA7VeTahTbe0jH9c3p5UBrH4GTcRPy5XShw97dwy-49yqdNtdeoUdjPOaqTYUgba78BD5La2H8pSqjSZqqN8pyj4tZkjgFnVnb8uVk6_S_5ET2hZAqAcFjf-LycIFJyhdC/s1600/muskrat.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlo3HKuyyE5OgA7VeTahTbe0jH9c3p5UBrH4GTcRPy5XShw97dwy-49yqdNtdeoUdjPOaqTYUgba78BD5La2H8pSqjSZqqN8pyj4tZkjgFnVnb8uVk6_S_5ET2hZAqAcFjf-LycIFJyhdC/s640/muskrat.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A muskrat minding its business&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3likndZSKRvpiLinZxANX2tiDfDbvAZLrFv-0-QZt2Ul_YJKAgv-3khkxv8lmSEzp5g1ZruEL6wCLKSNCa1K1JtoVgwjz8hTuEU4nqHsYxpR0m7yedfqhCpR1swWuo7JaRGGUBtRA936Z/s1600/lab-ducks-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;332&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3likndZSKRvpiLinZxANX2tiDfDbvAZLrFv-0-QZt2Ul_YJKAgv-3khkxv8lmSEzp5g1ZruEL6wCLKSNCa1K1JtoVgwjz8hTuEU4nqHsYxpR0m7yedfqhCpR1swWuo7JaRGGUBtRA936Z/s640/lab-ducks-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The lab geese are having babies! Update: The nest is gone. Investigation pending.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3E6vXbUuNpg2rBQ5LkGITqXek-ULOpM9FnEoFeqHC9R7viccXpGadxvrMfpZQw4PpTe3Mwe1Xeq-tiBEzCTeLsB2yMZrgVXFTLJy-gy3WDYAD5N6lVusOJlG0AM5B8mk3QiilxVbt7M9M/s1600/lab-ducks-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3E6vXbUuNpg2rBQ5LkGITqXek-ULOpM9FnEoFeqHC9R7viccXpGadxvrMfpZQw4PpTe3Mwe1Xeq-tiBEzCTeLsB2yMZrgVXFTLJy-gy3WDYAD5N6lVusOJlG0AM5B8mk3QiilxVbt7M9M/s640/lab-ducks-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;I wonder whether these two have names. If not I will name them.&lt;br /&gt;
Perhaps they should have badges like any other employee.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNeTHhq47DXxGEGdEjIX-ObLzPEfZlcgATrZSkISvYI2kHUalscvBeK0lL5lNFEePlMskbAcIWdIu3bVV52HmIRGcxF2ElE9bMOgAvqVAwYYNhnVZgArAiSHTSdtyNmtdnOy7tvhC2Y8mv/s1600/wernesgruener-at-aldi.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNeTHhq47DXxGEGdEjIX-ObLzPEfZlcgATrZSkISvYI2kHUalscvBeK0lL5lNFEePlMskbAcIWdIu3bVV52HmIRGcxF2ElE9bMOgAvqVAwYYNhnVZgArAiSHTSdtyNmtdnOy7tvhC2Y8mv/s640/wernesgruener-at-aldi.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A bit of Saxony far from home. Thank you Aldi.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeHGVNnJnVw-Ntei9TK3i0BavjHT_04IxxKHbtPi-ZCwxldYSu1U9NOaDtux41_tELUf0Y6C_Sx2JtApu0L2Paw18PLEF-3I7Er9GZ2DnoePED7RaK1vt5OQ6aYrsQ-Y4BwBbXNf_os9xL/s1600/freedom-sushi.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeHGVNnJnVw-Ntei9TK3i0BavjHT_04IxxKHbtPi-ZCwxldYSu1U9NOaDtux41_tELUf0Y6C_Sx2JtApu0L2Paw18PLEF-3I7Er9GZ2DnoePED7RaK1vt5OQ6aYrsQ-Y4BwBbXNf_os9xL/s640/freedom-sushi.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Freedom sushi: Deep-fried, mayo-based sauce, creem cheese.&lt;br /&gt;
A friend 
ordered tea, and the first thing offered was sweet tea, haha.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg8ddZ_uRwuEIl3ApyUfTr2S9TfqGu856JdSSuL2EyhSAUn2EzVZR04tvx-mDHK5GCO42jy62QyKtToZkbTpn7CNFizy4dYclV2Ewp9taqp7N2Glt4a7Li7zNfSSXL7FVlcObb8AykjvRy/s1600/tesla-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg8ddZ_uRwuEIl3ApyUfTr2S9TfqGu856JdSSuL2EyhSAUn2EzVZR04tvx-mDHK5GCO42jy62QyKtToZkbTpn7CNFizy4dYclV2Ewp9taqp7N2Glt4a7Li7zNfSSXL7FVlcObb8AykjvRy/s640/tesla-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Someone at the Lab drives this bad boy&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7et0Ql6hCV7enjulqTF69n6zQaXayZYvVDLiFvISzuAaXhL2CApAy4McyN1CUVgiER7hJ6wj0SSZrTMarSbYSCmEfcgXZQ-4IqnRYcNqK5Q2HLrTL2940BvdDreqa0ZTLWtEXhje7SJkD/s1600/tesla-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;338&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7et0Ql6hCV7enjulqTF69n6zQaXayZYvVDLiFvISzuAaXhL2CApAy4McyN1CUVgiER7hJ6wj0SSZrTMarSbYSCmEfcgXZQ-4IqnRYcNqK5Q2HLrTL2940BvdDreqa0ZTLWtEXhje7SJkD/s640/tesla-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I hope you are having a great time at home. So far I&#39;m having lots of fun here. Make sure to hit me up if you are nearby. I&#39;ll try to be at the Super Computing Conference later this year. Hopefully, I&#39;ll see you there. Bye!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/655382197740826702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2017/04/in-galaxy-far-far-away.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/655382197740826702'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/655382197740826702'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2017/04/in-galaxy-far-far-away.html' title='In a Galaxy Far Far Away'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC_BXVOORb2tU0wP6kOad1PyaOj9iT0iAyBhIU2aThlgjZxrfcLBDPtnR3JsV7mqxupwxPaHA-mZMX7ytcuPROgSw0IR-kZ_R2kVuA1AuZdGaCSRVq10sIxTezQ-Gq-wyCFTIzd9tWYEEi/s72-c/flag-map-and-ornl-logo.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Knoxville, TN, USA</georss:featurename><georss:point>35.9606384 -83.920739200000014</georss:point><georss:box>35.5493479 -84.566186200000018 36.3719289 -83.27529220000001</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-4731044506499440762</id><published>2017-02-13T22:13:00.000+01:00</published><updated>2017-02-13T22:13:07.772+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="benchmark"/><category scheme="http://www.blogger.com/atom/ns#" term="disk"/><category scheme="http://www.blogger.com/atom/ns#" term="encryption"/><category scheme="http://www.blogger.com/atom/ns#" term="ext4"/><category scheme="http://www.blogger.com/atom/ns#" term="intel"/><category scheme="http://www.blogger.com/atom/ns#" term="luks"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="ssd"/><category scheme="http://www.blogger.com/atom/ns#" term="test"/><title type='text'>Intel SSD 600p (1TB) Luks+Ext4 Encrypted Disk Performance</title><content type='html'>I got myself a new toy - The Intel SSD 600p 1TB M.2 NVMe disk. Before I bought it, I tried to figure out how big the performance penalty for using full disk encryption would approximately be. But I wasn&#39;t able to find much on this topic. Now that I set it up, I want to share some benchmarks of how an encrypted LUKS+Ext4 partition performs in comparison to just using Ext4. &lt;br /&gt;
&lt;br /&gt;
All benchmark runs were made with GNOME Disks on a Lenovo Thinkpad T460s with a Core i5-6200U 
CPU running Ubuntu 16.10 Yakkety Yak (Kernel 4.8.0-37-generic x86_64) and KDE. The 
encrypted partition was set up via GNOME Disks.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
LUKS+Ext4&lt;/h2&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWgdfsA9Kd2LT2WBnaE8f0I1EMK3EfJ3rDDRxRpy9WS4N1TTMA52uSiYuUe3cmAmZOBJy-sOLRBf45LQm0fV2wWKw8cXQWnP25PGbHJQoDt-a-HPXZ5KjUq0OHp9dx-wTdQkDfWdOEb2ti/s1600/intel-600p-LUKS%252Bext4-1MiB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB LUKS+Ext4 Performance at 1 MiB Block Size&quot; border=&quot;0&quot; height=&quot;557&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWgdfsA9Kd2LT2WBnaE8f0I1EMK3EfJ3rDDRxRpy9WS4N1TTMA52uSiYuUe3cmAmZOBJy-sOLRBf45LQm0fV2wWKw8cXQWnP25PGbHJQoDt-a-HPXZ5KjUq0OHp9dx-wTdQkDfWdOEb2ti/s640/intel-600p-LUKS%252Bext4-1MiB.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4g_uMB9FCX-_YKe0IBNetn7JNjh2Iljy-TWjEALRXAqxM7J_2WeinQ0dilIzmHoCgeV15w6sp1UEIgI1vh3FY9BGwIO3dQqkXur1EDDoDcgdVJVVbRtWZb967QAd8sC_fUfJ9rRN34t4Y/s1600/intel-600p-LUKS%252Bext4-10MiB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB LUKS+Ext4 Performance at 10 MiB Block Size&quot; border=&quot;0&quot; height=&quot;556&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4g_uMB9FCX-_YKe0IBNetn7JNjh2Iljy-TWjEALRXAqxM7J_2WeinQ0dilIzmHoCgeV15w6sp1UEIgI1vh3FY9BGwIO3dQqkXur1EDDoDcgdVJVVbRtWZb967QAd8sC_fUfJ9rRN34t4Y/s640/intel-600p-LUKS%252Bext4-10MiB.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;10 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKUVkAcXDsZrHciab07miVezNTCnq52xXENp8cTTGptNg9tDS59t1_ICFw6YWBC1MAq4czqp1a5SwDkd01U4Ss1XmNoEDBynlBWEfPwoNs0tDHqXRXMESEB9T8STg_YEurN2SDahue58gx/s1600/intel-600p-LUKS%252Bext4-100MiB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB LUKS+Ext4 Performance at 100 MiB Block Size&quot; border=&quot;0&quot; height=&quot;556&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKUVkAcXDsZrHciab07miVezNTCnq52xXENp8cTTGptNg9tDS59t1_ICFw6YWBC1MAq4czqp1a5SwDkd01U4Ss1XmNoEDBynlBWEfPwoNs0tDHqXRXMESEB9T8STg_YEurN2SDahue58gx/s640/intel-600p-LUKS%252Bext4-100MiB.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;100 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguegWFtvCoE89DDx82_AS1nS1XR-YtVZ-nqONQYPYDdWYOQ09CeobYR1e9nkEdhTp_publtyekV6PaxpuNevdQ1It_hgaRhQ4TSEkRNL1ekflh4jK7r7E8Tbx_NZfs1mSGs9hOTyc4iJsC/s1600/intel-600p-LUKS%252Bext4-1000MiB-1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB LUKS+Ext4 Performance at 1000 MiB Block Size #1&quot; border=&quot;0&quot; height=&quot;556&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguegWFtvCoE89DDx82_AS1nS1XR-YtVZ-nqONQYPYDdWYOQ09CeobYR1e9nkEdhTp_publtyekV6PaxpuNevdQ1It_hgaRhQ4TSEkRNL1ekflh4jK7r7E8Tbx_NZfs1mSGs9hOTyc4iJsC/s640/intel-600p-LUKS%252Bext4-1000MiB-1.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1000 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The 1000 MiB block size attempts were inconsistent. After a minute of waiting before doing another run, I got the above result. Many look like the two runs below. It is either a temperature or caching effect I guess.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVtOgFex_DpcMwvt7Ko2l5siLAhdWV-HaAWTgrNgmcR7KrDXx0hY_0wbs5WGhqEdbvPoPcn2epe_NK3EETRUFuAlGUElxZrDNy1kY9MOq_6NY11Dj4E0_burq1cUw1jdMZnChs7IExuNvo/s1600/intel-600p-LUKS%252Bext4-1000MiB-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB LUKS+Ext4 Performance at 1000 MiB Block Size #2&quot; border=&quot;0&quot; height=&quot;556&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVtOgFex_DpcMwvt7Ko2l5siLAhdWV-HaAWTgrNgmcR7KrDXx0hY_0wbs5WGhqEdbvPoPcn2epe_NK3EETRUFuAlGUElxZrDNy1kY9MOq_6NY11Dj4E0_burq1cUw1jdMZnChs7IExuNvo/s640/intel-600p-LUKS%252Bext4-1000MiB-2.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1000 MiB #2&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtW7NH43m3t8xSjKO9jgmEUQr48cDSs8tzgVetnEL0ykYhRSMD96_gVFgM28pNC1Yyiewot-LHARjELJ-OVllmgrW6-ZgJIyYHVTt8VQly3u6pqUUtac_1_C6fb3mWb12-Zk2GTmzNOtja/s1600/intel-600p-LUKS%252Bext4-1000MiB-3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB LUKS+Ext4 Performance at 1000 MiB Block Size #3&quot; border=&quot;0&quot; height=&quot;556&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtW7NH43m3t8xSjKO9jgmEUQr48cDSs8tzgVetnEL0ykYhRSMD96_gVFgM28pNC1Yyiewot-LHARjELJ-OVllmgrW6-ZgJIyYHVTt8VQly3u6pqUUtac_1_C6fb3mWb12-Zk2GTmzNOtja/s640/intel-600p-LUKS%252Bext4-1000MiB-3.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1000 MiB #3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h2&gt;
Ext4 Only&lt;/h2&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcDnjncldsFLZYfrMwwg_V92i4HVwX2YMTDUcGGTb6dvqMS23pClJ8Q3VVFYAElnM6RkqIZzF3mx6yciyZoX_uV-wDHwpXpQ7NdZ8gxN5VJ0gN9NS6Si2gQ908G7cP3yHvy_7wss-iHdmp/s1600/intel-600p-ext4-1MiB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB Ext4 Performance at 1 MiB Block Size&quot; border=&quot;0&quot; height=&quot;574&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcDnjncldsFLZYfrMwwg_V92i4HVwX2YMTDUcGGTb6dvqMS23pClJ8Q3VVFYAElnM6RkqIZzF3mx6yciyZoX_uV-wDHwpXpQ7NdZ8gxN5VJ0gN9NS6Si2gQ908G7cP3yHvy_7wss-iHdmp/s640/intel-600p-ext4-1MiB.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ObcJMYd7doLTI_smSIqrHDmNQzDoB5up2T5xt1urAQ5NckQDxrt_n0TnjFdUDZJBGKdZ5Ejm2AdCztj7qUumRieDokgSRrQcL-xU_KajaS-saWMv5x4mulSPQqxFI9_RGtq9bJMfu3vR/s1600/intel-600p-ext4-10MiB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB Ext4 Performance at 10 MiB Block Size&quot; border=&quot;0&quot; height=&quot;574&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ObcJMYd7doLTI_smSIqrHDmNQzDoB5up2T5xt1urAQ5NckQDxrt_n0TnjFdUDZJBGKdZ5Ejm2AdCztj7qUumRieDokgSRrQcL-xU_KajaS-saWMv5x4mulSPQqxFI9_RGtq9bJMfu3vR/s640/intel-600p-ext4-10MiB.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;10 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLRInMwEmaKvLKCFNQ8u7-q3eAO474dU4vUfCTIQI4SYO1SSo-OVs6GwY8J30sjqh7DOe58RGx75QKymdisZcYIIdz6XHAGaYCqwZ8pCJ0d0VFyxL1Ls4_1wtu8PL5hVNyTQPaFs4tvxWW/s1600/intel-600p-ext4-100MiB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB Ext4 Performance at 100 MiB Block Size&quot; border=&quot;0&quot; height=&quot;574&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLRInMwEmaKvLKCFNQ8u7-q3eAO474dU4vUfCTIQI4SYO1SSo-OVs6GwY8J30sjqh7DOe58RGx75QKymdisZcYIIdz6XHAGaYCqwZ8pCJ0d0VFyxL1Ls4_1wtu8PL5hVNyTQPaFs4tvxWW/s640/intel-600p-ext4-100MiB.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;100 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHU0oypSr3tQ9Qoduam9pQboeLUBYLizJmvFBQF1LA7jzFiMAsRhdC_Wn0RgVI7ZgmRHGFHxhM9TcXeUblokTug56WQEVFNhGjM7kC1GYZm_bBkmRWFvFv_LsKGCL5ZXkPfcXWYDhzrtd2/s1600/intel-600p-ext4-1000MiB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Intel 600p 1TB Ext4 Performance at 1000 MiB Block Size&quot; border=&quot;0&quot; height=&quot;574&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHU0oypSr3tQ9Qoduam9pQboeLUBYLizJmvFBQF1LA7jzFiMAsRhdC_Wn0RgVI7ZgmRHGFHxhM9TcXeUblokTug56WQEVFNhGjM7kC1GYZm_bBkmRWFvFv_LsKGCL5ZXkPfcXWYDhzrtd2/s640/intel-600p-ext4-1000MiB.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1000 MiB Block Size&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;
&amp;nbsp;Evaluation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Just reading/writing data at 1.8/0.6 GB per second takes CPU time, regardless of whether encryption is enabled or not&lt;/li&gt;
&lt;li&gt;LUKS+Ext4 incurs signifcant extra CPU work over just using Ext4. Notice that the CPU uses all four threads for the encrypted partition, but just one or two threads for the unencrypted one.&lt;/li&gt;
&lt;li&gt;Access time according to GNOME disks is similar. The difference is less than a factor of 2 in all cases. &lt;/li&gt;
&lt;li&gt;1 MiB Block Size: Encryption incurs a bandwidth penalty of factor 2 to 4.&lt;/li&gt;
&lt;li&gt;10 MiB: There is a read slow down factor of 2 with encryption. Writing is not much slower.&lt;/li&gt;
&lt;li&gt;100 MiB: The encrypted drive alternates between 1.7 GB/s and 1.0 GB/s read speed for some reason. Writing looks OK.&lt;/li&gt;
&lt;li&gt;1000 MiB: You get almost full speed.&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/4731044506499440762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2017/02/intel-ssd-600p-1tb-luks-ext4-encrypted-disk-performance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/4731044506499440762'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/4731044506499440762'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2017/02/intel-ssd-600p-1tb-luks-ext4-encrypted-disk-performance.html' title='Intel SSD 600p (1TB) Luks+Ext4 Encrypted Disk Performance'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWgdfsA9Kd2LT2WBnaE8f0I1EMK3EfJ3rDDRxRpy9WS4N1TTMA52uSiYuUe3cmAmZOBJy-sOLRBf45LQm0fV2wWKw8cXQWnP25PGbHJQoDt-a-HPXZ5KjUq0OHp9dx-wTdQkDfWdOEb2ti/s72-c/intel-600p-LUKS%252Bext4-1MiB.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-4588689848760221312</id><published>2016-05-30T06:00:00.000+02:00</published><updated>2016-05-30T06:00:00.827+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="freital"/><category scheme="http://www.blogger.com/atom/ns#" term="lauf in den frühling"/><category scheme="http://www.blogger.com/atom/ns#" term="laufen"/><category scheme="http://www.blogger.com/atom/ns#" term="race report"/><category scheme="http://www.blogger.com/atom/ns#" term="running"/><category scheme="http://www.blogger.com/atom/ns#" term="sport"/><category scheme="http://www.blogger.com/atom/ns#" term="sports"/><title type='text'>Race Report: 19ter Lauf in den Frühling</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Am 6. Mai war es soweit, der &lt;a href=&quot;http://www.laufindenfruehling.de/&quot;&gt;Lauf in den Frühling&lt;/a&gt; stand an. Laut Trainingsplan sollten die 44 Minuten für 10km möglich sein. Andererseits ist eine 4:24min/km pace ziemlich hart.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp547698u_8JdcowpLEdJ48-9fegGYOG1OV9V7TnPElQEmBgdgMDmHG0lIT43CuqPNlbg0i7oNN5VacC2DrzCOERjSz0kS9WtMSBdpOZHn0RIwGVjU9dndWYKc_DOCxiqtoYk-Ti-O-Btf/s1600/19ter-lauf-in-den-fruhling.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;334&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp547698u_8JdcowpLEdJ48-9fegGYOG1OV9V7TnPElQEmBgdgMDmHG0lIT43CuqPNlbg0i7oNN5VacC2DrzCOERjSz0kS9WtMSBdpOZHn0RIwGVjU9dndWYKc_DOCxiqtoYk-Ti-O-Btf/s640/19ter-lauf-in-den-fruhling.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nachdem die Kleinen jeweils 800m und 2km gelaufen, sind gehen die Großen an den Start. Ich war schon ein bisschen nervös. Vorsichtshalber habe ich mich weiter vorn postiert damit ich dann nicht so viel überholen muss. Kurz vor dem Start erfuhr ich noch dass es keine Kilometermarken gibt. Das bedeutet ich werde die ganze Zeit nur eine wage Ahnung haben wie schnell oder langsam ich bin. Ärgerlich.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Los geht&#39;s.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die ersten paar Kilometer sind sehr flott und gehen gut von der Hand. Das Höhenprofil in Kombination mit dem Tempo macht den Lauf anstrengend.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi64h6sFfQY0rYjcy0L0KN7Ee47csTRBHxyqka1zpe4Urq8G_JffDvB4k_mZ36w5RcQ4bBkfB86Tg0eEy9wfmNaIQP9ZVYMe47wnjg-_wm_9pEeTMAql6fWhcCZXKUimftbliEsLI-q42bk/s1600/19ter-lauf-in-den-fruhling-hohen-profil.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;96&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi64h6sFfQY0rYjcy0L0KN7Ee47csTRBHxyqka1zpe4Urq8G_JffDvB4k_mZ36w5RcQ4bBkfB86Tg0eEy9wfmNaIQP9ZVYMe47wnjg-_wm_9pEeTMAql6fWhcCZXKUimftbliEsLI-q42bk/s640/19ter-lauf-in-den-fruhling-hohen-profil.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die ersten fünf Kilometer gehen zügig vorüber. Nach dem ersten Wendepunkt (Spitze des Berges) auf dem Weg zurück treffe ich die Kollegen recht spät. Ich bin wohl ziemlich ziemlich schnell.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ab Kilometer 7 geht mir dann langsam die Puste aus. Ein bisschen langsamer machen. Ab dann wird es stückweise immer anstrengender und ich werde gefühlt immer langsamer. Wie langsam? Keine Ahnung. Wohl immer noch schneller als 5:00min/km.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ungefähr bei Kilometer 8 kann ich in der Ferne das Ziel sehen. Aber dort muss jeder nochmal zum zweiten Wendepunkt abbiegen. Der Körper würde aber gern aufhören. Puh. Durchhalten. Auf den letzten drei Kilometern haben mich circa zehn Läufer überholt :(.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
500m vor dem Finish steht fest: Ich schaffe die 44:00. Entspannung setzt ein und das Tempo sinkt noch ein wenig. Im Ziel sind es dann 43:12 (4:19min/km, 13.9km/h) Wohoo \o/. Die Platzierung ist auch ordentlich, sodass ich als einer der ersten 100 im Ziel ein T-Shirt gewinne.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnChRVMjj9SegA5Y0rDc3N50KKtihwGeAxg9QLMKMGfSfDUT4v4p9d6bye_WYi2c4DaDq4pKETEN7whyMCWwf2IoYDzVv-PerpyI5TixEyPmcIrnCRhWrNM6m6SivH8ADfcvTVPGjxjntJ/s1600/19ter-lauf-in-den-fruhling-zieleinlauf-ronny-brendel.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;310&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnChRVMjj9SegA5Y0rDc3N50KKtihwGeAxg9QLMKMGfSfDUT4v4p9d6bye_WYi2c4DaDq4pKETEN7whyMCWwf2IoYDzVv-PerpyI5TixEyPmcIrnCRhWrNM6m6SivH8ADfcvTVPGjxjntJ/s640/19ter-lauf-in-den-fruhling-zieleinlauf-ronny-brendel.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die drei Kollegen kommen bei 47 bis 50 Minuten ins Ziel. Leider haben nur zwei von uns ein T-Shirt gewonnen. Ist aber auch nicht schlimm, weil nur Werbung in textmarker-grün drauf ist. Nichtmal &quot;Lauf in den Frühling&quot; oder etwas ähnliches steht drauf.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Danach geht&#39;s ins &lt;a href=&quot;http://www.hains.de/&quot;&gt;Hains&lt;/a&gt; noch eine Stunde planschen. Das war im Startpreis inbegriffen. Super! Zwei neue Rutschen gilt es auszuprobieren. Eine rutscht man in einem Luftring herunter. Die andere ist eine Paarrutsche mit Zeitnahme, wo zwischen den beiden Bahnen teilweise nur eine transparente Wand ist sodass man den Anderen sieht. Yeah! Vier 30+-Männer haben lauthals ihren Spaß. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Alles ein allem ein Top-Lauf, von der Orga, den Bedingungen, und der eigenen Leistung her. Und die Startgebühr war so gering dass mit dem freien Eintritt und dem T-Shirt es sich sogar gelohnt hat ;).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nächstes Jahr gerne wieder!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Dieses mal hat mich mein Puls und meine Geschwindigkeit auf der Strecke wirklich interessiert. Aber bisher laufe ich zum Wettkampf nur mit der Vivosmart HR.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzIA70srbFdybcpBQ_GXDLLrBECjd3TlkWbCsWmSreFN9I975nlnnLbTCp3VTlvz_M2nCWfCTgRD4HOOPTL9OxV0biX57UvN8_iWIaCKttokh58Vqkl3v3xv-v_q8fj66JVGW0dGGmp6y2/s1600/19ter-lauf-in-den-fruhling-heart-rate.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;58&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzIA70srbFdybcpBQ_GXDLLrBECjd3TlkWbCsWmSreFN9I975nlnnLbTCp3VTlvz_M2nCWfCTgRD4HOOPTL9OxV0biX57UvN8_iWIaCKttokh58Vqkl3v3xv-v_q8fj66JVGW0dGGmp6y2/s640/19ter-lauf-in-den-fruhling-heart-rate.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die Kurve muss man mit Vorsicht genießen, weil der optische Heartrate-Sensor nicht so gut ist - vor allem bei Tempo- und Temperaturvariation. Die Zahlen bis Minute 9 sind zum Beispiel komplett falsch. Die maxHR von 188 bei ca 21 Minuten stimmt wohl und dass ich bis Kilometer 7 mit immer über 180 ordentlich gelitten habe bzw. zu schnell gelaufen bin klingt auch richtig.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/4588689848760221312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2016/05/race-report-19ter-lauf-in-den-fruhling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/4588689848760221312'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/4588689848760221312'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2016/05/race-report-19ter-lauf-in-den-fruhling.html' title='Race Report: 19ter Lauf in den Frühling'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp547698u_8JdcowpLEdJ48-9fegGYOG1OV9V7TnPElQEmBgdgMDmHG0lIT43CuqPNlbg0i7oNN5VacC2DrzCOERjSz0kS9WtMSBdpOZHn0RIwGVjU9dndWYKc_DOCxiqtoYk-Ti-O-Btf/s72-c/19ter-lauf-in-den-fruhling.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-928504802356039946</id><published>2016-05-17T06:00:00.000+02:00</published><updated>2016-05-17T06:00:15.165+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dresden"/><category scheme="http://www.blogger.com/atom/ns#" term="laufen"/><category scheme="http://www.blogger.com/atom/ns#" term="oberelbe-marathon"/><category scheme="http://www.blogger.com/atom/ns#" term="oem"/><category scheme="http://www.blogger.com/atom/ns#" term="race report"/><category scheme="http://www.blogger.com/atom/ns#" term="running"/><category scheme="http://www.blogger.com/atom/ns#" term="sport"/><category scheme="http://www.blogger.com/atom/ns#" term="sports"/><title type='text'>Race Report: 19ter Oberelbe-Marathon</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Weil ich beim &lt;a href=&quot;http://blog.automaton2000.com/2016/05/race-report-26ter-citylauf-dresden.html&quot;&gt;Citylauf&lt;/a&gt; Blut geleckt habe, besorgte ich mir darauf hin einen Trainingsplan für 10km in 44 Minuten und fing an zu trainieren.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Fünf Wochen später am 24. April fand dann der 19te Oberelbe-Marathon statt. Die Kollegen waren schon länger für den Halbmarathon angemeldet und ich habe mich dann entschieden mitzumachen als ich im Training die Sicherheit gewonnen hatte dass meine Knie und Sehnen die Strecke auch wirklich aushalten.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Kurz vor dem Rennen haben wir die persönlichen Ziele gesteckt und festgelegt dass jeder sein eigenes Tempo läuft, weil unsere Geschwindigkeiten zu unterschiedlich sind. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Los geht&#39;s mit 2100 anderen Startern von Pirna nach Dresden. Ich laufe wieder relativ langsam los um mich nicht schon am Anfang zu übernehmen. 21.1km sind nämlich ziemlich ziemlich lang.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVy3WbTAVqIcgqoVlDUemaniQ3fQYGR_4hjkkmCyRzn2m-yNnXTo8e68iYSUrfExuXsibnNJPoce86ZKUHhd6FdOnxoSUW7Rq7buTU_-jkaKf4wsuXVMF7eOo-ZUYvrCbi4EbRzXb_Zsdc/s1600/19ter-oberelbe-marathon-start-halbmarathon.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVy3WbTAVqIcgqoVlDUemaniQ3fQYGR_4hjkkmCyRzn2m-yNnXTo8e68iYSUrfExuXsibnNJPoce86ZKUHhd6FdOnxoSUW7Rq7buTU_-jkaKf4wsuXVMF7eOo-ZUYvrCbi4EbRzXb_Zsdc/s640/19ter-oberelbe-marathon-start-halbmarathon.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nach 5 Kilometern brechen die Ersten ein und die Überholrate steigt.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nach 6 Kilometern kassiere ich den 1:45:00 pacemaker - Wohoo, super!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Da ich bisher selten lange Strecken gelaufen bin, hatte ich vor allem Angst dass irgendwann die Energie alle ist und ich einbreche. Im Training hatte ich mal ein Tief nach 13 Kilometern. Puls und Atmung waren immer OK, aber davor hatte ich ein bisschen Angst.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifBu9_ZAuqIUxOsnesLPAgWj40M982zxeOAReuaFFF6wMrY8sc8uWf1_JxsdXZYwF8yqF6Qc-wI4YkZCrLet-6uQ7GAliGKZNBdWRPE7UrpInSeIkI4PHmCAl1EgM1klEtZCRBTX-a_6jz/s1600/19ter-oberelbe-marathon-halbmarathon-auf-der-strecke.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifBu9_ZAuqIUxOsnesLPAgWj40M982zxeOAReuaFFF6wMrY8sc8uWf1_JxsdXZYwF8yqF6Qc-wI4YkZCrLet-6uQ7GAliGKZNBdWRPE7UrpInSeIkI4PHmCAl1EgM1klEtZCRBTX-a_6jz/s640/19ter-oberelbe-marathon-halbmarathon-auf-der-strecke.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Auf den folgenden vielen Kilometern genieße ich die Aussicht, überhole viel und freue mich über die zahlreichen Familien, Omas und Opas mit Plakaten, Rasseln und Trillerpfeifen die uns anfeuern. Manche haben mich sogar persönlich angefeuert weil ja mein Name auf der Startnummer steht. FeelsGoodMan.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nach etwa 12 Kilometern fiel die Entscheidung nicht mehr auf die Uhr zu schauen. Das Umrechnen auf Gesamtzeit und pace ist ad hoc zu schwierig und es stört den Rhythmus - Einfach laufen. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Das Tief blieb glücklicherweise aus. Vielleicht hat es auch an den zwei Gels gelegen die ich mir nach 10 und 15 Kilometern reingezogen habe. Ekelhaftes Zeug. Bah!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nervig waren noch etwas die Verpflegungsstationen. Bei 12km/h einen Becher zu greifen und zu trinken ist schwer. Da geht der Großteil einfach vorbei am Mund. Danach war man aus dem Rhythmus und musste erst einmal wieder den Puls und die Atmung unter Kontrolle bekommen. Ging aber irgendwie.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die letzten Kilometer haben sich in die Länge gezogen, versuchte Temposteigerungen auf den letzten zwei Kilometern wurden schnell wieder abgebrochen, und auch der Zielsprint wurde nach fünf Sekunden abgesagt - Puh, war ich kaputt.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Als ich über dem Zielbereich die Bruttozeit von 1:39:xy sehe freue ich mich riesig - 1:45:00 war das ursprüngliche Ziel.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die Nettozeit betrug am Ende 1:38:29 (4:40min/km, 12.9km/h). Das war also fast die gleiche Geschwindigkeit wie bei den 10km vor 5 Wochen - Wahnsinn, gigantisch gut.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Platz 251 von 1500 Männern. \o/&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die Kollegen habe ihre eigenen Rekorde auch alle verbessert, außer Ronny. Der hatte Knie und musste deswegen langsam machen. Weil er beim Citylauf so locker dabei war, hatte ich mich schon darauf gefreut ihm dieses mal Konkurrenz zu machen und ihn leiden zu sehen. Aber daraus wurde nichts. Najo, beim nächsten mal dann.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Das Wetter während des Laufs war übrigens scheußlich: Gegenwind an der Elbe, Regen, Hagel und Sonne im Wechsel.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Alles in allem war das Event super und alle sind Happy mit ihrem Ergebnis.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Danke an alle am Lauf beteiligten!&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO0E-wzIYGsqsi5xD0GGTe2FrvWfBb9WM4HDrSTS7mjfX9jiutrXAljqiPnEwxmEEv8VIbdR6N9-4PdShtvIhmS_G-HArdpIkIPqWbaG_q2e6Yf9VOh_Yh7LCpHuWtMYkY3FXxeoMRUfN9/s1600/oberelbe-marathon-zieleinlauf-ronny-brendel.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;281&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO0E-wzIYGsqsi5xD0GGTe2FrvWfBb9WM4HDrSTS7mjfX9jiutrXAljqiPnEwxmEEv8VIbdR6N9-4PdShtvIhmS_G-HArdpIkIPqWbaG_q2e6Yf9VOh_Yh7LCpHuWtMYkY3FXxeoMRUfN9/s400/oberelbe-marathon-zieleinlauf-ronny-brendel.png&quot; title=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/928504802356039946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2016/05/race-report-19ter-oberelbe-marathon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/928504802356039946'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/928504802356039946'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2016/05/race-report-19ter-oberelbe-marathon.html' title='Race Report: 19ter Oberelbe-Marathon'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVy3WbTAVqIcgqoVlDUemaniQ3fQYGR_4hjkkmCyRzn2m-yNnXTo8e68iYSUrfExuXsibnNJPoce86ZKUHhd6FdOnxoSUW7Rq7buTU_-jkaKf4wsuXVMF7eOo-ZUYvrCbi4EbRzXb_Zsdc/s72-c/19ter-oberelbe-marathon-start-halbmarathon.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-6878297420357855634</id><published>2016-05-09T06:00:00.000+02:00</published><updated>2016-05-09T06:00:00.306+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="citylauf"/><category scheme="http://www.blogger.com/atom/ns#" term="dresden"/><category scheme="http://www.blogger.com/atom/ns#" term="laufen"/><category scheme="http://www.blogger.com/atom/ns#" term="race report"/><category scheme="http://www.blogger.com/atom/ns#" term="running"/><category scheme="http://www.blogger.com/atom/ns#" term="sport"/><category scheme="http://www.blogger.com/atom/ns#" term="sports"/><title type='text'>Race Report: 26ter Citylauf Dresden</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Kurz vorm 19. März haben mich die Kollegen überredet beim 26ten Citylauf Dresden mitzumachen. Da ich ab und an laufe war von vornherein klar, dass ich die 10km zumindest schaffe. Die große Frage war: Wie schnell?. Letztendlich haben wir uns (Matthias, Ronny und Ronny) vorgenommen unter 50 Minuten (5min/km) zu bleiben.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Auf den ersten Kilometern lief es sehr gut. Nach kurzer Zeit hatte ich schon eine Minute Vorsprung auf die 50 Minuten herausgelaufen.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Bei Kilometer 5 habe ich dann Matthias und Ronny, die schneller angelaufen sind, eingeholt. Ronny hängte sich dann an mich. Oder ist zwischen uns gependelt? Er sah jedenfalls viel viel zu entspannt aus.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Die letzten drei Kilometer waren eine ziemliche Quälerei. Im Zielsprint hat mich Ronny noch abgehängt und sah dabei immer noch entspannt aus.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Letztendlich waren es 46:24 (4:39min/km, 12,9km/h) Nettozeit - Ein Spitzenergebnis für mich. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Für ein Event mit 2600 Läufern (1500 auf der 10km Strecke) war alles überraschend entspannt.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Alles in allem war meine erste Lauferfahrung super :)!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Danke an Matthias und Ronny und alle am Lauf Beteiligten! &lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHhi5C2bf32DCRQn0o1cg1hRirDSpEjF8yBpxZZ-dkli01DchwSriKyEvNcO2jslbzkKmulPSNqq0BUIDefWfA0rF-zS7RpVlH9hfH527_vygEPfN8pNAzlAZyUkhTHorBGEV_yi4kpROL/s1600/citylauf-zieleinlauf-ronny-brendel.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;303&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHhi5C2bf32DCRQn0o1cg1hRirDSpEjF8yBpxZZ-dkli01DchwSriKyEvNcO2jslbzkKmulPSNqq0BUIDefWfA0rF-zS7RpVlH9hfH527_vygEPfN8pNAzlAZyUkhTHorBGEV_yi4kpROL/s400/citylauf-zieleinlauf-ronny-brendel.png&quot; title=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/6878297420357855634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2016/05/race-report-26ter-citylauf-dresden.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6878297420357855634'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6878297420357855634'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2016/05/race-report-26ter-citylauf-dresden.html' title='Race Report: 26ter Citylauf Dresden'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHhi5C2bf32DCRQn0o1cg1hRirDSpEjF8yBpxZZ-dkli01DchwSriKyEvNcO2jslbzkKmulPSNqq0BUIDefWfA0rF-zS7RpVlH9hfH527_vygEPfN8pNAzlAZyUkhTHorBGEV_yi4kpROL/s72-c/citylauf-zieleinlauf-ronny-brendel.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-7572383864534580750</id><published>2016-05-02T06:00:00.000+02:00</published><updated>2017-05-14T23:27:31.747+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dark souls"/><category scheme="http://www.blogger.com/atom/ns#" term="games"/><category scheme="http://www.blogger.com/atom/ns#" term="photos"/><title type='text'>Thank you From Software</title><content type='html'>I recently finished Dark Souls 2 NG+4 and acquired all achievements.&lt;br /&gt;
&lt;br /&gt;
For this occasion, I just wanted to say thank you and share some images of my time in Drangleic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIhNJ93UOM04ISxF-T_4MEiHYk2F8ylDSq0Cqgkx94yehPNvqr_mnAFpK4-h52cIvHj3OOZ60tMMEiGnHaT1FHWU_i_-PvHOtwNS3_h5j-43X1kBdmlEyx7E9apzVznaTB5S_OnEB8lQ33/s1600/dark-souls-2-hours.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;132&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIhNJ93UOM04ISxF-T_4MEiHYk2F8ylDSq0Cqgkx94yehPNvqr_mnAFpK4-h52cIvHj3OOZ60tMMEiGnHaT1FHWU_i_-PvHOtwNS3_h5j-43X1kBdmlEyx7E9apzVznaTB5S_OnEB8lQ33/s640/dark-souls-2-hours.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;It&#39;s been a long journey&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWlCzvqK3pZEBDmdgWwmpxIM-wvf5Nk6iTdDccnnwBBC43lIOUvq31jgxYIOjuGU5wvmqIiiA2z-rcy6Ee2zpgMvqDWZl9ChyphenhyphenHfKJeHwiC2PE-A8GBPSDIxSOsxXKAacLNADHAkjQO4hPB/s1600/dark-souls-2such-is-our-face.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWlCzvqK3pZEBDmdgWwmpxIM-wvf5Nk6iTdDccnnwBBC43lIOUvq31jgxYIOjuGU5wvmqIiiA2z-rcy6Ee2zpgMvqDWZl9ChyphenhyphenHfKJeHwiC2PE-A8GBPSDIxSOsxXKAacLNADHAkjQO4hPB/s640/dark-souls-2such-is-our-face.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Just beat Nashandra and Aldia&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYdlvJXcmi7afAE-_VF_WNwPq1zFGx0-acNnTcfzCtRYw4nMHKfKn-3SLgfljf31oIAUQd_SAqSaaAI2ZDwOot1dztR-_qJHckPpkdvXdLEcvqUAKPcNFh6YNH3TtqHefh2GUPLRdKR-eK/s1600/dark-souls-all-achievements.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYdlvJXcmi7afAE-_VF_WNwPq1zFGx0-acNnTcfzCtRYw4nMHKfKn-3SLgfljf31oIAUQd_SAqSaaAI2ZDwOot1dztR-_qJHckPpkdvXdLEcvqUAKPcNFh6YNH3TtqHefh2GUPLRdKR-eK/s640/dark-souls-all-achievements.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Proof&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHgxwmet0gOEnbW8YMspFn_-CAFP08uJHvhBWuctgKBw3HgNOmVCWxtZ8xtGAOVGdw-b0EJeWnsv18Dejg2efsBJLUOnr5XNcBRN0FFWlea9Fp6az63qXJNSWXuOMImhmQ0yh731_86EKV/s1600/dark-souls-ng%252B4-done.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHgxwmet0gOEnbW8YMspFn_-CAFP08uJHvhBWuctgKBw3HgNOmVCWxtZ8xtGAOVGdw-b0EJeWnsv18Dejg2efsBJLUOnr5XNcBRN0FFWlea9Fp6az63qXJNSWXuOMImhmQ0yh731_86EKV/s640/dark-souls-ng%252B4-done.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Proof #2&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirQluA-rgsDc-H8Iet9bezDRu2HUs8jUTpaUvU_4yM0l0hpiFUZHiAwzeezsrGhD-WOybjLe1QyVRJNSZVFQp-UtklqBCSGBYgV0-eJqOu0EBBn9cvUIMpRjI1WYiG0fVQQjxxpCFYWrlq/s1600/dark-souls-level-313-wanderer.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirQluA-rgsDc-H8Iet9bezDRu2HUs8jUTpaUvU_4yM0l0hpiFUZHiAwzeezsrGhD-WOybjLe1QyVRJNSZVFQp-UtklqBCSGBYgV0-eJqOu0EBBn9cvUIMpRjI1WYiG0fVQQjxxpCFYWrlq/s640/dark-souls-level-313-wanderer.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;My level 313 Wanderer Aria&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinr5O5DolTlgxPCOKVuc3WTok3IcsR-L5e4EeGncPMKmpctvWQD_R_0OKGRtrAkwAqKfO9aQSaF2ClB25aXdOXE_bFQMauWtkBh2Vp_KiHSk1T6Q-Uhmg-pRY-uCmt1CtcXMUv7oqQ9zAw/s1600/dark-souls-2-firekeepers.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinr5O5DolTlgxPCOKVuc3WTok3IcsR-L5e4EeGncPMKmpctvWQD_R_0OKGRtrAkwAqKfO9aQSaF2ClB25aXdOXE_bFQMauWtkBh2Vp_KiHSk1T6Q-Uhmg-pRY-uCmt1CtcXMUv7oqQ9zAw/s640/dark-souls-2-firekeepers.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Where it all started: The Old Firekeepers&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsOeRAlNlP4Tafbedi05BZbhtYoCjl81hd5ae34uQBzpw8qHAMFDDlmOvfiKSlspUEbfOZQGqTxEBlZj1FIrJWOqYoN_WJaw0gRUe-3aXZ9c41Hl9rCh_hQZ-FQCwsRNVTdOPX2yN5FB2y/s1600/dark-souls-2-majula.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsOeRAlNlP4Tafbedi05BZbhtYoCjl81hd5ae34uQBzpw8qHAMFDDlmOvfiKSlspUEbfOZQGqTxEBlZj1FIrJWOqYoN_WJaw0gRUe-3aXZ9c41Hl9rCh_hQZ-FQCwsRNVTdOPX2yN5FB2y/s640/dark-souls-2-majula.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Home&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhK3ioI0cwpvChuItb_lplkrjPY2bk38n4wymQyF0az0TXWbKAT-f5apXb7b4wuvI8HwRQFQNCwSpdqWG2QtKEXKn7foEzdOl0-S3l5QRE7VC6J4LZwuhvunfWD8Lk5lJC7z-r46vKjH4B/s1600/dark-souls-majula-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhK3ioI0cwpvChuItb_lplkrjPY2bk38n4wymQyF0az0TXWbKAT-f5apXb7b4wuvI8HwRQFQNCwSpdqWG2QtKEXKn7foEzdOl0-S3l5QRE7VC6J4LZwuhvunfWD8Lk5lJC7z-r46vKjH4B/s640/dark-souls-majula-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Home #2&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_EaSMuGMzo8VvlASD8I_eiMckNqvM6DTziULiKIU0GUHbJQKJ6Fk-J_r6DOe4Y9CX-14Lu7vdeh7eri53QpvcTGuz7aWrGRy3pmI9rMQnsqHS3UhobkJ9iKKB4OBv_jO4lWaWge7WAfi5/s1600/dark-souls-majula-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_EaSMuGMzo8VvlASD8I_eiMckNqvM6DTziULiKIU0GUHbJQKJ6Fk-J_r6DOe4Y9CX-14Lu7vdeh7eri53QpvcTGuz7aWrGRy3pmI9rMQnsqHS3UhobkJ9iKKB4OBv_jO4lWaWge7WAfi5/s640/dark-souls-majula-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Home #3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnAICyc2ZLf4hJ7FkhvryaUBsdo6mpUJUksfMZo585hWe5iYTiQ02GJQyrLTaH_vX97u487oEJ30AnD-LQoLEZg1DbJRf02f4hQ7MbsEJ4exiYwrzsUoN_1Lnq4aZo8TvF8t88oFiy8FW5/s1600/dark-souls-2-majula-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnAICyc2ZLf4hJ7FkhvryaUBsdo6mpUJUksfMZo585hWe5iYTiQ02GJQyrLTaH_vX97u487oEJ30AnD-LQoLEZg1DbJRf02f4hQ7MbsEJ4exiYwrzsUoN_1Lnq4aZo8TvF8t88oFiy8FW5/s640/dark-souls-2-majula-4.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Home #4&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZ0zzuX0c0jPnyAg-hh4xYwF8OdNibmFqyrvbfK5mGPAbzhA3OVTsU2XXFh29iaECSoFJOk69s48vip8R6JI432dXDHKwU7cvsFWty1Q6hTckUw0R99EkCMsr83gCqLPinfdH2t6LJC-D/s1600/dark-souls-2-belfry-sol.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZ0zzuX0c0jPnyAg-hh4xYwF8OdNibmFqyrvbfK5mGPAbzhA3OVTsU2XXFh29iaECSoFJOk69s48vip8R6JI432dXDHKwU7cvsFWty1Q6hTckUw0R99EkCMsr83gCqLPinfdH2t6LJC-D/s640/dark-souls-2-belfry-sol.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Waiting for PvP...&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhETYyAn2Q4nPuhprsGxF-qgVSW3xc3opRxMUFwN6VcKQjLTjJYr3j4hezxmJUI7hM8E4byhrGTKv-aqsNhyKgum-qefb8vUq8VlSeExlgd48Qaj0uAYLmnFmRwn-6cdI5vZJGp7QcBC8Mc/s1600/dark-souls-2-heirs-of-the-sun.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhETYyAn2Q4nPuhprsGxF-qgVSW3xc3opRxMUFwN6VcKQjLTjJYr3j4hezxmJUI7hM8E4byhrGTKv-aqsNhyKgum-qefb8vUq8VlSeExlgd48Qaj0uAYLmnFmRwn-6cdI5vZJGp7QcBC8Mc/s640/dark-souls-2-heirs-of-the-sun.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Sun Bros for Life&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioA2zirtbpbCEjWL0qZDFxhbHHHZ2F7oBx_Qs_NhsvbOw2hg_FKH9I6huJ52uVsTP3R_cTM0PRFx26uqXQHtMZNeZdSdhoHMx5PPBum7wbejSCoP8wePXyr93KJrRBdnm8daZXazWb_f4Y/s1600/dark-souls-dragon-shrine.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;353&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioA2zirtbpbCEjWL0qZDFxhbHHHZ2F7oBx_Qs_NhsvbOw2hg_FKH9I6huJ52uVsTP3R_cTM0PRFx26uqXQHtMZNeZdSdhoHMx5PPBum7wbejSCoP8wePXyr93KJrRBdnm8daZXazWb_f4Y/s640/dark-souls-dragon-shrine.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Dragon Shrine&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzCQHzXakw36PQv3T-WZXbuuVh1ZH1TeNoEGsRDs-xugNw5UM3DtfhkCRwMwtxKKNbAXKwZx9luBzG7Qdpm9UXdpELx4eV_EQB8K0cW3mBxaY_BhGjMkdN78G0InJMTk1vTnGS4Pt05QuV/s1600/dark-souls-2-heide%2527s-tower-of-flame.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzCQHzXakw36PQv3T-WZXbuuVh1ZH1TeNoEGsRDs-xugNw5UM3DtfhkCRwMwtxKKNbAXKwZx9luBzG7Qdpm9UXdpELx4eV_EQB8K0cW3mBxaY_BhGjMkdN78G0InJMTk1vTnGS4Pt05QuV/s640/dark-souls-2-heide%2527s-tower-of-flame.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Heide&#39;s Tower of Flame&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZL84sfvOwqED39KSLo30BXb2rIDLWwH_CcNuuQ_vRzbVoDcYPLt_MSkI3VykiuAmUyDedXKMZltWmAph_ok-BaqUYkpqCOpytdg9FL_zvmLK-K1uJQIrHo5MO4u2OTddb1fKizz93ZOcj/s1600/dark-souls-2-ancient-dragon-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZL84sfvOwqED39KSLo30BXb2rIDLWwH_CcNuuQ_vRzbVoDcYPLt_MSkI3VykiuAmUyDedXKMZltWmAph_ok-BaqUYkpqCOpytdg9FL_zvmLK-K1uJQIrHo5MO4u2OTddb1fKizz93ZOcj/s640/dark-souls-2-ancient-dragon-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Hello darkness my old friend: The Ancient Dragon&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLn0UXJSigzfKq2ttuxNm4cXdNaQRD1kb5oIOTrbWZBTZ2SCVNns-n9JeGklTuSq4iwXLP47DY6awIlYLLwDEft4-ZLNWiRWwqB3WPjoew_HjopguDMmH24ppcV-vXuZVxgOac35T26bFQ/s1600/dark-souls-2-ancient-dragon.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;355&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLn0UXJSigzfKq2ttuxNm4cXdNaQRD1kb5oIOTrbWZBTZ2SCVNns-n9JeGklTuSq4iwXLP47DY6awIlYLLwDEft4-ZLNWiRWwqB3WPjoew_HjopguDMmH24ppcV-vXuZVxgOac35T26bFQ/s640/dark-souls-2-ancient-dragon.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;I&#39;m about as big as his foot&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqW62LoKH-y25LUms_GwG6RVoOOJvoVoZW3OllFc0oJHyVXz27uT68Wd2kDLxS094ijMdP1ennuEvbv4IV-T8lKokNV_bUtjDAnJSB4nSmJuUAkEvNtoldr0a2lds_jUimpRUD6JvkhHLV/s1600/dark-souls-2-praise-the-sun.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqW62LoKH-y25LUms_GwG6RVoOOJvoVoZW3OllFc0oJHyVXz27uT68Wd2kDLxS094ijMdP1ennuEvbv4IV-T8lKokNV_bUtjDAnJSB4nSmJuUAkEvNtoldr0a2lds_jUimpRUD6JvkhHLV/s640/dark-souls-2-praise-the-sun.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Praise the Sun \[T]/ &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Next up I&#39;ll be going back to Dark Souls 1 and continue my Level 142 character in NG+.&lt;br /&gt;
&lt;br /&gt;
If you&#39;ve played these games for long enough, they are more soothing and relaxing than stressful. I love coming back to Drangleic and Lordran to calm down after a long day of work.&lt;br /&gt;
&lt;br /&gt;
Thank you From Software&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/7572383864534580750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2016/05/thank-you-from-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/7572383864534580750'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/7572383864534580750'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2016/05/thank-you-from-software.html' title='Thank you From Software'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIhNJ93UOM04ISxF-T_4MEiHYk2F8ylDSq0Cqgkx94yehPNvqr_mnAFpK4-h52cIvHj3OOZ60tMMEiGnHaT1FHWU_i_-PvHOtwNS3_h5j-43X1kBdmlEyx7E9apzVznaTB5S_OnEB8lQ33/s72-c/dark-souls-2-hours.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-559987956945922440</id><published>2016-03-10T18:21:00.000+01:00</published><updated>2016-03-10T18:21:33.451+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="16.04"/><category scheme="http://www.blogger.com/atom/ns#" term="error"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="scripting"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="update"/><category scheme="http://www.blogger.com/atom/ns#" term="vim"/><category scheme="http://www.blogger.com/atom/ns#" term="vim 7.4"/><category scheme="http://www.blogger.com/atom/ns#" term="vimrc"/><category scheme="http://www.blogger.com/atom/ns#" term="xenial"/><category scheme="http://www.blogger.com/atom/ns#" term="xerus"/><title type='text'>Error with Scripting Vim in Python - Ubuntu Xenial</title><content type='html'>While updating to Ubuntu 16.04 (Xenial Xerus) my &lt;a href=&quot;https://github.com/hydroo/config-files/blob/master/home/brendel/.vimrc&quot;&gt;.vimrc&lt;/a&gt; stopped working with the following error message:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vim.error: Vim(python):E319: Sorry, the command is not available&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; in this version: python &amp;lt;&amp;lt; endpython&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;After a bit of wrestling I found out that you have to replace&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;python &amp;lt;&amp;lt; endpython&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;with&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;python3 &amp;lt;&amp;lt; endpython&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The big tell was that &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ vim --version&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; yielded, among other things, &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;-python&lt;/span&gt; and &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;+python3&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/559987956945922440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2016/03/ubuntu-xenial-vim-python-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/559987956945922440'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/559987956945922440'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2016/03/ubuntu-xenial-vim-python-error.html' title='Error with Scripting Vim in Python - Ubuntu Xenial'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-6444017100099360978</id><published>2015-07-26T10:00:00.000+02:00</published><updated>2016-05-07T14:00:27.076+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c"/><category scheme="http://www.blogger.com/atom/ns#" term="c++"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="messages"/><category scheme="http://www.blogger.com/atom/ns#" term="mpi"/><category scheme="http://www.blogger.com/atom/ns#" term="otf2"/><category scheme="http://www.blogger.com/atom/ns#" term="receive"/><category scheme="http://www.blogger.com/atom/ns#" term="recv"/><category scheme="http://www.blogger.com/atom/ns#" term="score-p"/><category scheme="http://www.blogger.com/atom/ns#" term="send"/><category scheme="http://www.blogger.com/atom/ns#" term="tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="vampir"/><category scheme="http://www.blogger.com/atom/ns#" term="vi-hps"/><title type='text'>OTF2 Knowledge: How to Match MPI Messages</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://silc.zih.tu-dresden.de/otf2-current/&quot;&gt;OTF2 &lt;/a&gt;(part of &lt;a href=&quot;http://www.vi-hps.org/projects/score-p/&quot;&gt;Score-P&lt;/a&gt;) has a terrible reader interface. This post explains one little part of boilerplate you need to write in order to process &lt;a href=&quot;http://www.mpi-forum.org/&quot;&gt;MPI&lt;/a&gt; messages.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
To properly process MPI send and receive, you need to determine which send belongs to which receive. This in conjunction with the previous two posts (&lt;a href=&quot;http://blog.automaton2000.com/2015/05/how-to-map-local-mpi-ranks-to-otf2-locations.html&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;http://blog.automaton2000.com/2015/07/otf2-how-to-process-non-blocking-mpi-messages.html&quot;&gt;2&lt;/a&gt;) enables you to generate one list of messages to be used in your tool, subsequently.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Note that the following explanation also applies to &lt;a href=&quot;http://tu-dresden.de/zih/otf&quot;&gt;OTF&lt;/a&gt; and likely to processing MPI send and receive events in general.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Formally, given: &lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct SentMessage {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender, receiver, time, communicator, length, tag }&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct ReceivedMessage {&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; receiver, sender, time, communicator, length, tag }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; list&amp;lt;SentMessage&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sentMessages&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; list&amp;lt;ReceivedMessage&amp;gt; receivedMessages&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Where both sent and received messages are ordered according to when these operations where issued, we want to determine:&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct Message { sender, receiver, time, duration, length }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; list&amp;lt;Message&amp;gt; messages&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
First, we transform the received messages into another data structure:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; struct Key { sender, receiver, communicator, tag }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; map&amp;lt;Key, queue&amp;lt;ReceivedMessage&amp;gt;&amp;gt; receivedMessagesMap&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Second, we iterate over all sent messages and index into the received messages map, to find the matching receive.&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;For each sent message&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Use its sender, receiver, communicator and tag fields to index into&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; receivedMessagesMap&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;&lt;/span&gt;and retrieve the queue&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Is there an item in the queue? Yes:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The first item in the queue is the receive that matches to this send &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Append the matched message to &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;messages&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;. D&lt;/span&gt;uration is the difference between sent and receive time.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Dequeue&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;th&lt;span style=&quot;font-family: inherit;&quot;&gt;is&lt;/span&gt; item&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;If &lt;span style=&quot;font-family: inherit;&quot;&gt;duration &lt;/span&gt;
   ≤
  0: Warning: A message should be received later than it has been sent. We have undefined/infinite or negative bandwidth.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;If send length &amp;gt; receive length: Warning: &lt;a href=&quot;http://www.open-mpi.de/doc/v1.8/man3/MPI_Recv.3.php#toc7&quot;&gt;A sent message is not allowed to be larger than the receive assumes&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;No:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Warning: Missing receive&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Print out a condensed version of the above warnings&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;We use one queue per sender, receiver, communicator and tag, because a send belongs to a receive only if all of the four coincide.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Recording the warnings/errors makes sense, because MPI libraries are less strict than the standard. For example, if you send messages and never receive them and just exit &lt;span style=&quot;font-family: inherit;&quot;&gt;the&lt;/span&gt; program, neither the MPI library nor Score-P might care and thus you have missing receives. I can confirm that this&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;happens sometimes. Therefore, you should not disallow missing receives.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Also, be aware that durations will likely be &lt;span style=&quot;font-family: inherit;&quot;&gt;zero&lt;/span&gt; or negative from time to time. Time depends on the clocks used. Clocks across different nodes/processes can yield values that imply zero or negative durations. Score-P does not sanitize time values. Thus, it is left to the tools developer to decide how to handle th&lt;span style=&quot;font-family: inherit;&quot;&gt;is&lt;/span&gt; situation.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;With these three posts you can now properly process MPI messages, for example to compute correct bandwidths, or to visualize them:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtbXJ-eD5EE0Vh1gm86GBjXw7Bqchdykx_BbHq7o4bzToQUAIJP8z_2Bwpx4qwABEW70fdJOdzaCEWS8NWP-omNPYR0ysdrXplBRfdTQWn6gYThQa8oCIyVojm8cUvwRcI_WqdfiXcWVNi/s1600/mpi-message-visualization.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtbXJ-eD5EE0Vh1gm86GBjXw7Bqchdykx_BbHq7o4bzToQUAIJP8z_2Bwpx4qwABEW70fdJOdzaCEWS8NWP-omNPYR0ysdrXplBRfdTQWn6gYThQa8oCIyVojm8cUvwRcI_WqdfiXcWVNi/s1600/mpi-message-visualization.png&quot; title=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Happy coding!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/6444017100099360978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2015/07/otf2-how-to-match-mpi-messages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6444017100099360978'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6444017100099360978'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2015/07/otf2-how-to-match-mpi-messages.html' title='OTF2 Knowledge: How to Match MPI Messages'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtbXJ-eD5EE0Vh1gm86GBjXw7Bqchdykx_BbHq7o4bzToQUAIJP8z_2Bwpx4qwABEW70fdJOdzaCEWS8NWP-omNPYR0ysdrXplBRfdTQWn6gYThQa8oCIyVojm8cUvwRcI_WqdfiXcWVNi/s72-c/mpi-message-visualization.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-6973183351948758031</id><published>2015-07-05T16:18:00.001+02:00</published><updated>2016-05-07T14:30:16.331+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c"/><category scheme="http://www.blogger.com/atom/ns#" term="c++"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="messages"/><category scheme="http://www.blogger.com/atom/ns#" term="mpi"/><category scheme="http://www.blogger.com/atom/ns#" term="non-blocking"/><category scheme="http://www.blogger.com/atom/ns#" term="otf2"/><category scheme="http://www.blogger.com/atom/ns#" term="receive"/><category scheme="http://www.blogger.com/atom/ns#" term="recv"/><category scheme="http://www.blogger.com/atom/ns#" term="score-p"/><category scheme="http://www.blogger.com/atom/ns#" term="send"/><category scheme="http://www.blogger.com/atom/ns#" term="tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="vampir"/><category scheme="http://www.blogger.com/atom/ns#" term="vi-hps"/><title type='text'>OTF2 Knowledge: How to Process Non-Blocking MPI Messages</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div&gt;
&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://silc.zih.tu-dresden.de/otf2-current/&quot; target=&quot;_blank&quot;&gt;OTF2 &lt;/a&gt;(part of the &lt;a href=&quot;http://www.vi-hps.org/projects/score-p/&quot; target=&quot;_blank&quot;&gt;Score-P&lt;/a&gt;) has a terrible reader interface. This post attempts to explain one part of boilerplate you need to write in order to process &lt;a href=&quot;http://www.mpi-forum.org/&quot; target=&quot;_blank&quot;&gt;MPI&lt;/a&gt; messages.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span&gt;If your tool &lt;span&gt;processes &lt;/span&gt;MPI messages, it does not suffice to only consider MpiSend and MpiRecv&lt;/span&gt;&lt;/span&gt;
 records. Applications using MPI can also use non-blocking send and 
receive operations. Mixing blocking and non-blocking operations is 
possible as well. In order to handle MPI messages correctly, you need to
 consider all of the following records:&lt;/div&gt;
&lt;span data-reactid=&quot;.1.0&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode &lt;b&gt;handleMpiSend&lt;/b&gt;(OTF2_LocationRef sender,&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_TimeStamp time, void* userData, OTF2_AttributeList* a,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t receiver, OTF2_CommRef com, uint32_t tag,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint64_t length)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode &lt;b&gt;handleMpiIsend&lt;/b&gt;(OTF2_LocationRef sender,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_TimeStamp time, void *userData, OTF2_AttributeList *a,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint32_t receiver, OTF2_CommRef com, uint32_t tag,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint64_t length, uint64_t requestId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode &lt;b&gt;handleMpiIsendComplete&lt;/b&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_LocationRef sender, OTF2_TimeStamp time,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void *userData, OTF2_AttributeList *a,&lt;b&gt; &lt;/b&gt;uint64_t requestId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode &lt;b&gt;handleMpiRecv&lt;/b&gt;(OTF2_LocationRef receiver,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_TimeStamp time, void* userData, OTF2_AttributeList* a,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t sender, OTF2_CommRef com, uint32_t tag,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint64_t length)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode &lt;b&gt;handleMpiIrecv&lt;/b&gt;(OTF2_LocationRef receiver,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_TimeStamp time, void *userData, OTF2_AttributeList *a,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t sender, OTF2_CommRef com, uint32_t tag,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint64_t length, uint64_t requestId)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode &lt;b&gt;handleMpiIrecvRequest&lt;/b&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_LocationRef receiver, OTF2_TimeStamp time,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void *userData, OTF2_AttributeList *a, uint64_t requestId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode &lt;b&gt;handleMpiRequestCancelled&lt;/b&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_LocationRef location, OTF2_TimeStamp time,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void *userData, OTF2_AttributeList *a, uint64_t requestId)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
This
 post explains how to translate non-blocking send and receive records to
 normal/blocking send and receives, so that your tool can subsequently 
process all types of messages in a homogenous way&lt;span&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;In a &lt;a href=&quot;http://blog.automaton2000.com/2015/05/how-to-map-local-mpi-ranks-to-otf2-locations.html&quot; target=&quot;_blank&quot;&gt;previous post&lt;/a&gt; I explained a detail you need know for this to work.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span data-reactid=&quot;.1.0&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;h2&gt;
Explaining the Involved Records&lt;span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Send&lt;/span&gt;: Is issued when &lt;span&gt;MPI_Send&lt;/span&gt; is called&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Isend&lt;/span&gt;: Is issued when &lt;span&gt;MPI_Isend&lt;/span&gt; is called&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;IsendComplete&lt;/span&gt;: Is issued when an &lt;span&gt;MPI_Wait&lt;/span&gt;, &lt;span&gt;MPI_Test&lt;/span&gt; or a similar function confirms that the Isend operation has been completed&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Receive&lt;/span&gt;: Is issued when &lt;span&gt;MPI_Recv&lt;/span&gt; is called&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;IreceiveRequest&lt;/span&gt;: &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Is issued when &lt;span&gt;MPI_Irecv&lt;/span&gt; is called&lt;/li&gt;
&lt;li&gt;Similar
 to the Isend record, except you don&#39;t yet know the tag, communicator 
and length of the to-be-received message, because of possible wildcards 
for tags and communicators in such requests&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Ireceive&lt;/span&gt;: &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Issued when an &lt;span&gt;MPI_Wait&lt;/span&gt;, &lt;span&gt;MPI_Test&lt;/span&gt; or a similar function confirms that the Ireceive operation has been completed &lt;/li&gt;
&lt;li&gt;Similar
 to IsendComplete, except it contains the parameters of the received 
message, whereas Isend itself (not the complete) contains them &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;RequestCancelled&lt;/span&gt;: Can cancel Isends and IreceiveRequests, and other maybe not-recorded requests.&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
The
 naming scheme of these records is a bit confusing. A more consistent 
scheme would have been: &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Isend&lt;/span&gt;, &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;IsendComplete&lt;/span&gt;, &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Ireceive &lt;/span&gt;(=&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;IreceiveRequest
&lt;/span&gt; here), &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;IreceiveComplete &lt;/span&gt;(=&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Ireceive &lt;/span&gt;here).&lt;/div&gt;
&lt;span data-reactid=&quot;.1.0&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;h2&gt;
Data Structures&lt;/h2&gt;
&lt;h3&gt;
Send/Receive&lt;/h3&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct SentMessage {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time, sender, receiver, communicator, length, tag }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct ReceivedMessage {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time, receiver, sender , communicator, length, tag } &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
Non-blocking&lt;/h3&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct Isend { time, sender, receiver, com, length,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;tag, requestId, queue&amp;lt;SentMessage&amp;gt; blockedSends }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct IreceiveRequest { requestId,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queue&amp;lt;ReceivedMessage&amp;gt; blockedReceives }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; map&amp;lt;process, queue&amp;lt;Isend&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isends&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; map&amp;lt;process, queue&amp;lt;IreceiveRequest&amp;gt;&amp;gt; ireceiveRequests&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;
The Algorithm&lt;span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;
Send&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span&gt;isends&lt;/span&gt;&lt;/span&gt;&amp;nbsp;for this process is empty &lt;ul&gt;
&lt;li&gt;Record the sent message &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Otherwise &lt;ul&gt;
&lt;li&gt;Append this Send to the latest &lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;isends[sender]&lt;/span&gt;&lt;/span&gt;&#39;s &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span&gt;blockedSends&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Explanation:
 To preserve the correct ordering of messages, previously issued Isends 
have to be processes before this Send. We can only process Isends that 
are completed, because they might be cancelled subsequently. We 
therefore enqueue this Send until all previous Isends are processed. &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Isend&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Append this Isend to &lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;isends[sender]&lt;/span&gt;&lt;/span&gt; with an empty queue &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
IsendComplete&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Search for a matching Isend on this process &lt;/li&gt;
&lt;li&gt;If it matches the first in the queue &lt;ul&gt;
&lt;li&gt;Record the sent message (time is Isend&#39;s time) &lt;/li&gt;
&lt;li&gt;For each blocked Send in the attached queue &lt;ul&gt;
&lt;li&gt;Record the sent message &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Otherwise &lt;ul&gt;
&lt;li&gt;Append this completed Send to the previous Isend&#39;s blocked queue &lt;/li&gt;
&lt;li&gt;Append the blocked queue of the completed Send to the previous Isend&#39;s queue as well&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;remove this entry from&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span&gt;isends[sender]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span&gt;Explanation:
 An Isend has been completed. Therefore, we have a succesfully sent 
message that we can record unless there are previously issued, 
uncompleted Isends (similar to when Send happens). If we completed the 
earliest remaining Isend&lt;/span&gt;, we can now process all messages that 
have been blocked by it. If we completed an Isend that has previous 
other Isends, then we complete this Send and enqueue everything to the 
previous Isend&#39;s queue, because we can only process these messages when 
this previous Isend has been completed.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The 
receive records will be handled similarly, with some slight 
modifications due to differences in whether information is known during 
the request start or completion.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Receive&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
If &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ireceiveRequests&lt;/span&gt; for this process is empty&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Record the received message &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
Otherwise&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Append this Receive to the latest &lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ireceiveRequests[receiver]&lt;/span&gt;&lt;/span&gt;&#39;s &lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;blockedReceives&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
IreceiveRequest&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Append the request to &lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ireceiveRequest[receiver]&lt;/span&gt;&lt;/span&gt; with an empty queue.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Ireceive&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Search for a matching IreceiveRequest on this process &lt;/li&gt;
&lt;li&gt;If it matches the first in the queue &lt;ul&gt;
&lt;li&gt;Record the received message (time is Ireceive&#39;s time) &lt;/li&gt;
&lt;li&gt;For each blocked Receive in the attached queue &lt;ul&gt;
&lt;li&gt;Record the received message &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Otherwise &lt;ul&gt;
&lt;li&gt;Append this completed Receive &lt;span&gt;to the previous IreceiveRequest&#39;s blocked q&lt;/span&gt;ueue &lt;/li&gt;
&lt;li&gt;Append the queue of the completed Receive to the previous request&#39;s queue as well&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Remove this entry from &lt;span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ireceiveRequests[receiver]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
RequestCancelled&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If it matches an Isend&#39;s requestId&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Handle the same as IsendComplete, but without recording this send&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;If it matches an IreceiveRequest&#39;s requestId&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Handle the same as Ireceive, but without recording this receive&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;It should never be both, but can be neither &lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Wrap Up&lt;/h2&gt;
&lt;div&gt;
A
 sent message has the timestamp of the initial Isend. A receive has the 
timestamp of the completed Ireceive. Thus, we take the timestamp of the 
earliest possible sending moment and the latest possible receiving 
moment, because the message is actually transmitted sometime during this
 interval. This is as accurate as it gets in OTF2. Because of this, 
IreceiveRequest&#39;s and IsendComplete&#39;s timestamps are ignored. This also 
means that the order in which you process the records is not necessarily
 chronological for receives, but it is for sends.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
After
 applying the above algorithm you have a list of sent and received MPI 
messages. You don&#39;t yet know which send belongs to which receive. 
Determining this relationship is called message matching. I intend to 
explain how it works in a future blog post.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Once this is done, you have one list of messages with correct durations, that can finally be used in your tool.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Happy Coding!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span data-reactid=&quot;.1.0&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
P.S.: I used OTF2 version 1.5.1&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/6973183351948758031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2015/07/otf2-how-to-process-non-blocking-mpi-messages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6973183351948758031'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6973183351948758031'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2015/07/otf2-how-to-process-non-blocking-mpi-messages.html' title='OTF2 Knowledge: How to Process Non-Blocking MPI Messages'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-6469876091280375999</id><published>2015-05-29T08:18:00.000+02:00</published><updated>2016-05-07T14:14:34.998+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c"/><category scheme="http://www.blogger.com/atom/ns#" term="c++"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="mpi"/><category scheme="http://www.blogger.com/atom/ns#" term="otf2"/><category scheme="http://www.blogger.com/atom/ns#" term="score-p"/><category scheme="http://www.blogger.com/atom/ns#" term="tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="vi-hps"/><title type='text'>OTF2 Knowledge: How to Map Local MPI Ranks to OTF2 Locations</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://silc.zih.tu-dresden.de/otf2-current/&quot; target=&quot;_blank&quot;&gt;OTF2 &lt;/a&gt;(part of the &lt;a href=&quot;http://www.vi-hps.org/projects/score-p/&quot; target=&quot;_blank&quot;&gt;Score-P&lt;/a&gt;
 infrastructure) has a terrible reader interface. This post attempts to 
explain one little part of boilerplate you need to write in order to 
process &lt;a href=&quot;http://www.mpi-forum.org/&quot; target=&quot;_blank&quot;&gt;MPI &lt;/a&gt;records.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
For example, to process an MPI_Send record you use a handler with the following signature:&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode handleMpiSend(OTF2_LocationRef sender,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; OTF2_TimeStamp time, void* userData,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_AttributeList* a, uint32_t receiver,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CommRef com, uint32_t tag, uint64_t length);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Notice
 that the data type of the sender and receiver processes are not the 
same. This is because the event is recorded as is during tracing, 
without trying to match MPI-specific, communicator-dependent identifiers
 to communicator-independent OTF2 ones. Since Score-P/OTF2 does not have
 a post-processing step, the connection between these identifiers and 
the OTF2 locations is never established. It is left to the programmer to
 apply this mapping while reading the trace.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Required Handlers&lt;/h2&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode handleOtf2DefGroup(void *userData,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; OTF2_GroupRef group, OTF2_StringRef name,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; OTF2_GroupType groupType, OTF2_Paradigm paradigm,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; OTF2_GroupFlag groupFlags, uint32_t memberCount,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; const uint64_t* members);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_CallbackCode handleOtf2DefCommunicator(void *userData,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; OTF2_CommRef com, OTF2_StringRef name,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_GroupRef group, OTF2_CommRef parent);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Data Structures&lt;/h2&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; map&amp;lt;OTF2_CommRef, OTF2_GroupRef&amp;gt; communicatorToGroup;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; map&amp;lt;OTF2_GroupRef, map&amp;lt;uint32_t /*local rank*/,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; uint64_t /*rank in comm world*/&amp;gt;&amp;gt; localRankToGlobalRank;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTF2_GroupRef mpiLocationGroup;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
The Algorithm&lt;/h2&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;
DefGroup&lt;/h3&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; localRankToGlobalRank[group] = {};&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (uint32_t i = 0; i &amp;lt; memberCount; i += 1) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; localRankToGlobalRank[group][i] = members[i];&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt; if (type == OTF2_GROUP_TYPE_COMM_LOCATIONS &amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paradigm ==&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;OTF2_PARADIGM_MPI) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; mpiLocationGroup = group;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt; } &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
DefCommunicator&lt;/h3&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt; communicatorToGroup[com] = group&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Mapping Local MPI Ranks to OTF2 Locations&lt;/h3&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Input: local MPI rank rank, MPI communicator of this rank com &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Output: OTF2 location&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Procedure: First, map the local MPI rank to the rank in comm world. Next map this rank to the OTF2 location using the magic group mpiLocationGroup:&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;    localRankToGlobalRank[mpiLocationGroup[localRankToGlobalRank&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;[&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;communicatorToGroup[com]][rank]]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Happy Coding!&lt;br /&gt;
&lt;br /&gt;
ps: I used OTF2 version 1.5.1 
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/6469876091280375999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2015/05/how-to-map-local-mpi-ranks-to-otf2-locations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6469876091280375999'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/6469876091280375999'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2015/05/how-to-map-local-mpi-ranks-to-otf2-locations.html' title='OTF2 Knowledge: How to Map Local MPI Ranks to OTF2 Locations'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-4055568186064769421</id><published>2015-05-09T22:16:00.000+02:00</published><updated>2016-05-07T14:19:40.626+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c++"/><category scheme="http://www.blogger.com/atom/ns#" term="qt"/><category scheme="http://www.blogger.com/atom/ns#" term="qtextstream"/><title type='text'>Automatically flushing QTextStream</title><content type='html'>&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;QTextStream&lt;/span&gt; is way more convenient for printing to console than C++ streams are. Therefore, I usually replace cerr and cout by qerr and qout in projects using Qt:&lt;br /&gt;
&lt;br /&gt;
Header file:&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier new, courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern QTextStream qerr;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;courier new&#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;extern QTextStream qout;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Source file:&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier new, courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;QTextStream qerr(stderr, QIODevice::WriteOnly | QIODevice::Text);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier new, courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;QTextStream qout(stdout, QIODevice::WriteOnly | QIODevice::Text);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, QTextStream buffers and is not able to automatically flush. This means it may print a message later than expected or not at all if the program crashes. This is obviously undesirable for a cerr replacement.&lt;br /&gt;
&lt;br /&gt;
One way to work around this is by intercepting all stream operator calls and adding a call to &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;flush()&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
Header file:&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; class AutoFlushingQTextStream : public QTextStream {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; public:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AutoFlushingQTextStream(FILE* f, QIODevice::OpenMode o)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : QTextStream(f, o) {}&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; template&amp;lt;typename T&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AutoFlushingQTextStream&amp;amp; operator&amp;lt;&amp;lt;(T&amp;amp;&amp;amp; s) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *((QTextStream*) this) &amp;lt;&amp;lt; std::forward&amp;lt;T&amp;gt;(s);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flush();&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return *this;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; extern AutoFlushingQTextStream qerr;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; extern QTextStream qout;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Source file:&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; AutoFlushingQTextStream qerr(stderr, QIODevice::WriteOnly | QIODevice::Text);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; QTextStream qout(stdout, QIODevice::WriteOnly | QIODevice::Text);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Any Tips for improving the code are very much appreciated.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/4055568186064769421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2015/05/automatically-flushing-qtextstream.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/4055568186064769421'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/4055568186064769421'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2015/05/automatically-flushing-qtextstream.html' title='Automatically flushing QTextStream'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-562206932804890756</id><published>2015-02-04T15:35:00.000+01:00</published><updated>2018-11-19T22:33:57.943+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="barrier"/><category scheme="http://www.blogger.com/atom/ns#" term="concurrency"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="minor"/><category scheme="http://www.blogger.com/atom/ns#" term="research"/><category scheme="http://www.blogger.com/atom/ns#" term="synchronization"/><category scheme="http://www.blogger.com/atom/ns#" term="thesis"/><title type='text'>Minor Thesis - Development and Analysis of Barrier Protocols</title><content type='html'>A year ago, I defended my minor thesis (equivalently bachelor thesis or Großer Beleg) &lt;a href=&quot;https://github.com/hydroo/barrier/raw/master/report/report.pdf&quot;&gt;(PDF download)&lt;/a&gt;. The repository, including smaller course work on similar topics from before, is on GitHub: &lt;a href=&quot;https://github.com/hydroo/barrier&quot;&gt;https://github.com/hydroo/barrier&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;b&gt;Thesis&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Contents&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1/2 Intro/Background&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Cache coherency and atomic operations don&#39;t scale&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Probabilistic synchronization&lt;/i&gt; is a good idea&lt;/li&gt;
&lt;li&gt;Survey of currently used barrier protocols and of general ways to implement barriers&lt;/li&gt;
&lt;li&gt;Detailed look at &lt;a href=&quot;http://www.mpi-forum.org/docs/docs.html&quot;&gt;MPI 3&lt;/a&gt;&#39;s remote memory access API for implementing less deterministic barrier/synchronization protocols&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;3 Three Novel Barrier Protocols&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;MGB Barrier: Inspired by Nicholas Mc Guire&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;B1 Barrier: The opposite of the Central Counter Barrier&lt;/li&gt;
&lt;li&gt;B2 Barrier: Variant of the B1 Barrier that computes more and communicates less&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;4 Evaluation&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Central Counter Barrier vs B1 Barrier&lt;/li&gt;
&lt;li&gt;Dissemination Barrier vs B2 Barrier&lt;/li&gt;
&lt;li&gt;Some high-level observations about the four protocols&lt;/li&gt;
&lt;li&gt;Verify correctness of the protocols via &lt;a href=&quot;http://en.wikipedia.org/wiki/Model_checking&quot;&gt;model checking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Compare the speed and energy consumption of the four barriers using quantitative model checking&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Personal Comment&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
Sadly, I had to prioritize model checking over measurement-based analysis.&lt;br /&gt;
Therefore, I have little confidence in the quantitative model checking results. Aside from that, I quite like the thesis, and think there are valuable ideas in there. Especially:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The so-called &lt;i&gt;progress problem&lt;/i&gt; that most barriers have. It is explained in Section 4.1.&lt;/li&gt;
&lt;li&gt;The B1 and B2 Barrier can be faster than every other barrier protocol. Depending on the computation speed and communication latency different variants of them should be used. They avoid the progress problem. They have their weaknesses, too. More analysis is required to definitely state if the additional resource requirements outweigh the speed advantage.&lt;/li&gt;
&lt;li&gt;The so-called &lt;i&gt;barrier building blocks&lt;/i&gt; (Section 2.3)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;Repository&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Abstract&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
This is a semi-organized repository of ~1 year of university work. During this time I:&lt;br /&gt;
&lt;ul class=&quot;task-list&quot;&gt;
&lt;li&gt;Surveyed existing barrier protocols&lt;/li&gt;
&lt;li&gt;Surveyed actual implementations&lt;/li&gt;
&lt;li&gt;Surveyed what low-level tools are available 
to develop synchronization primitives, and in particular barriers&lt;/li&gt;
&lt;li&gt;Invented new protocols&lt;/li&gt;
&lt;li&gt;Analyzed/modelchecked/benchmarked them&lt;/li&gt;
&lt;li&gt;In-depth look
 at &lt;a href=&quot;http://www.mpi-forum.org/docs/docs.html&quot;&gt;MPI 3&lt;/a&gt;&#39;s remote memory access API and its suitability for implementing (less deterministic) barriers and other synchronization protocols&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
License&lt;/h2&gt;
&lt;div&gt;
Everything is licensed under the &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/4.0/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0&lt;/a&gt; license. If this licensing scheme is a problem for your intentions, please contact me. I&#39;m open to suggestions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Why upload the whole thing?&lt;/h2&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Because there are few reasons not to&lt;/li&gt;
&lt;li&gt;I would oftentimes be very happy, if I could dig through the source code of someone&#39;s research&lt;/li&gt;
&lt;li&gt;For people interested in researching barrier protocols and synchronization primitives in general&lt;/li&gt;
&lt;li&gt;For the useful code snippets contained&lt;/li&gt;
&lt;li&gt;As a portfolio entry so potential employers can see what I did and how I did it&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;ul class=&quot;task-list&quot;&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/562206932804890756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2015/02/minor-thesis-development-and-analysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/562206932804890756'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/562206932804890756'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2015/02/minor-thesis-development-and-analysis.html' title='Minor Thesis - Development and Analysis of Barrier Protocols'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-3588211432662074639</id><published>2015-01-30T16:04:00.000+01:00</published><updated>2015-01-30T16:11:55.618+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="authentication"/><category scheme="http://www.blogger.com/atom/ns#" term="cryptography"/><category scheme="http://www.blogger.com/atom/ns#" term="encryption"/><category scheme="http://www.blogger.com/atom/ns#" term="key"/><category scheme="http://www.blogger.com/atom/ns#" term="otr"/><category scheme="http://www.blogger.com/atom/ns#" term="pgp"/><title type='text'>New PGP and OTR Keys</title><content type='html'>PGP key id: &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;a href=&quot;http://wwwkeys.pgp.net/pks/lookup?op=get&amp;amp;search=0xE94B3DF55B06C8E4&quot;&gt;e94b3df55b06c8e4&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
OTR fingerprint: &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;1d070cab 116463a6 0f94b424 075b6c83 abb4a140&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
When in doubt, contact me some more reliable way, since this blog isn&#39;t a secure way of distributing this info.</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/3588211432662074639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2015/01/new-pgp-and-otr-keys.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/3588211432662074639'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/3588211432662074639'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2015/01/new-pgp-and-otr-keys.html' title='New PGP and OTR Keys'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-2120544070162869217</id><published>2014-04-11T16:19:00.000+02:00</published><updated>2016-05-07T14:59:53.678+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="center"/><category scheme="http://www.blogger.com/atom/ns#" term="cursor"/><category scheme="http://www.blogger.com/atom/ns#" term="mouse"/><category scheme="http://www.blogger.com/atom/ns#" term="qgraphicsscene"/><category scheme="http://www.blogger.com/atom/ns#" term="qgraphicsview"/><category scheme="http://www.blogger.com/atom/ns#" term="qt"/><category scheme="http://www.blogger.com/atom/ns#" term="zoom"/><title type='text'>Mouse cursor centered zooming in QGraphicsView</title><content type='html'>Zooming into and out of a &lt;a href=&quot;http://doc.qt.io/qt-5/qgraphicsview.html&quot;&gt;QGraphicsView&lt;/a&gt; so that the position under the mouse cursor remains fixed is easy, right? Sadly, it isn&#39;t. I leave my best working approach here for you to enjoy and hopefully save you some time.&lt;br /&gt;
&lt;br /&gt;
Before coming up with this, I browsed the interwebs and tried a few other things. I always ended up with not-working code or a slight drift while repeatedly zooming.&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;void GraphicsView::wheelEvent(QWheelEvent* e) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((e-&amp;gt;modifiers()&amp;amp;Qt::ControlModifier) == Qt::ControlModifier&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&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;amp;&amp;amp; e-&amp;gt;angleDelta().x() == 0) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; QPoint &amp;nbsp;pos &amp;nbsp;= e-&amp;gt;pos();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; QPointF posf = this-&amp;gt;mapToScene(pos);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double by;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double angle = e-&amp;gt;angleDelta().y();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;nbsp; &amp;nbsp; &amp;nbsp;(angle &amp;gt; 0) { by = 1 + ( angle / 360 * 0.1); }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (angle &amp;lt; 0) { by = 1 - (-angle / 360 * 0.1); }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ by = 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this-&amp;gt;scale(by, by);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double w = this-&amp;gt;viewport()-&amp;gt;width();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double h = this-&amp;gt;viewport()-&amp;gt;height();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double wf = this-&amp;gt;mapToScene(QPoint(w-1, 0)).x()&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&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; - this-&amp;gt;mapToScene(QPoint(0,0)).x();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double hf = this-&amp;gt;mapToScene(QPoint(0, h-1)).y()&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&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; - this-&amp;gt;mapToScene(QPoint(0,0)).y();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double lf = posf.x() - pos.x() * wf / w;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double tf = posf.y() - pos.y() * hf / h;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* try to set viewport properly */&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this-&amp;gt;ensureVisible(lf, tf, wf, hf, 0, 0);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; QPointF newPos = this-&amp;gt;mapToScene(pos);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* readjust according to the still remaining offset/drift&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* I don&#39;t know how to do this any other way */&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this-&amp;gt;ensureVisible(QRectF(QPointF(lf, tf) - newPos + posf,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&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; QSizeF(wf, hf)), 0, 0);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e-&amp;gt;accept();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((e-&amp;gt;modifiers()&amp;amp;Qt::ControlModifier) != Qt::ControlModifier) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* no scrolling while control is held */&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; QGraphicsView::wheelEvent(e);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Any Tipps to make this shorter/better are very much appreciated.&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/2120544070162869217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2014/04/mouse-centered-zooming-in-qgraphicsview.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/2120544070162869217'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/2120544070162869217'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2014/04/mouse-centered-zooming-in-qgraphicsview.html' title='Mouse cursor centered zooming in QGraphicsView'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-5964702233214682383</id><published>2014-02-04T00:00:00.000+01:00</published><updated>2014-02-04T00:00:00.851+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="filme"/><category scheme="http://www.blogger.com/atom/ns#" term="spiele"/><category scheme="http://www.blogger.com/atom/ns#" term="unterhaltung"/><title type='text'>Unterhaltung</title><content type='html'>Als mir erklärt wurde dass Spiele der Steam wishlist hinzuzufügen bedeutet dass man eine E-Mail bekommt wenn jenes Spiel im Angebot ist, habe ich das direkt genutzt um (hoffentlich) gute Spiele drauf zu packen damit ich die für wenig Geld mal ausprobieren kann. &lt;br /&gt;
&lt;br /&gt;
Ein sehr schönes Spiel was ich so erworben hab&#39; ist The Stanley Parable. Vielleicht nicht unbedingt 12€ Wert, da ziemlich kurz, aber auf jeden Fall ein sehr &quot;interessantes&quot; und unterhaltsames Werk.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/Z1S796fXtl4?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Weiterhin bin ich auch mal durch Mass Effect 1&amp;amp;2 durchgerannt. Für 10€ ein guter Deal. Kurz gesagt ist Mass Effect ist ein stark gehypter 3rd person shooter der viel Wert auf Story und Auswahlmöglichkeiten legt.&lt;br /&gt;
Nachdem ich durch beide Spiele in weniger als 40h durch bin, war ich ein wenig enttäuscht, weil die Story nicht super ist (Für Neuere-Videospiel-Verhältnisse aber trotzdem eine der besten) und die übertriebene Dramatik der letzten Mission von Mass Effect 2 mich abgeschreckt hat.&lt;br /&gt;
Die letzte Mission war definitiv cool und packend, aber irgendwie hat mir das hinarbeiten auf den Klimax gefehlt. Bis zu dem Punkt war alles recht eintönig. Crew-Mitglieder kennenlernen. Loyalität mit einer einzigen Mission je Mitglied erarbeiten. Upgrades kaufen. Leveln. Usw. &lt;br /&gt;
Nach ein bisschen Recherche und Reden mit Freunden musste ich feststellen, dass ich die Auswahlmöglichkeiten und die verschiedenen Versionen der Story unterschätzt habe (z.B. hier das Video &lt;a href=&quot;http://www.youtube.com/watch?v=pRHhdc53Od8&quot;&gt;der schlimmsten Version der letzten Mission in ME2&lt;/a&gt;). Vielleicht spiele ich es demnächst nochmal durch, schlage dabei einen anderen Pfad ein und lass&#39; mir etwas mehr Zeit dabei.&lt;br /&gt;
Glänzen können beide Spiele durch gute Charaktere, eine gute Steuerung, eine schöne Inszenierung, super Synchronsprecher und einen absolut genialen Soundtrack. Fazit: Absolut spielenswert.&lt;br /&gt;
&lt;br /&gt;
Teil 3 liegt auch schon bereit. Man will ja wissen wie&#39;s weitergeht. Nur habe ich zur Zeit kein DVD-Laufwerk und EA&#39;s Steam-Konkurrenz namens Origin werde ich mir hoffentlich nie installieren. Einige EA-Titel wie z.B. Battlefield 4 und Mass Effect 3 sind nicht auf Steam verfügbar sondern nur auf Origin.&lt;br /&gt;
&lt;br /&gt;
Vorgestern ist dann noch Mirror&#39;s Edge zur Sammlung, für 2,50€, dazu gekommen. Mirror&#39;s Edge ist ein first person shooter mit wenig shooting und setzt den Fokus auf Parkour als Spielemechanik. Nach den ersten paar Missionen muss ich sagen: fetzt. Mal sehen wie&#39;s weitergeht.&lt;br /&gt;
&lt;br /&gt;
Zum Abschluss habe ich für alle die, wie ich, das Gefühl haben schon jeden neueren Sci-Fi-Film gesehen zu haben noch eine kleine Empfehlung: &lt;a href=&quot;http://www.imdb.com/title/tt0096754/?ref_=nv_sr_1&quot;&gt;The Abyss&lt;/a&gt;. Unbedingt die ungeschnittene / non-Hollywood Variante ansehen.</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/5964702233214682383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2014/02/unterhaltung.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/5964702233214682383'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/5964702233214682383'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2014/02/unterhaltung.html' title='Unterhaltung'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-172594763593013999</id><published>2014-01-21T16:37:00.000+01:00</published><updated>2014-02-02T14:41:37.219+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="error"/><category scheme="http://www.blogger.com/atom/ns#" term="qt"/><title type='text'>Qt 5.2 + Android Error #1</title><content type='html'>&lt;div style=&quot;-qt-block-indent: 0; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;FreeMono&#39;; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;If you make a new project and try to debug/run you might get the following error.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;margin: 0px; text-indent: 0px;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Unable to start &#39;org.qtproject.example._8paint&#39;. Debugging has failed&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;margin: 0px; text-indent: 0px;&quot;&gt;
or&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Starting remote process. Unable to start &#39;org.qtproject.example._8paint&#39;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Notice the extra underscore in front of the program name. Apparently, your program&#39;s name is not allowed to begin with a number or an underscore.&lt;br /&gt;
&lt;br /&gt;
edit: This error should be resolved in Qt 5.3</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/172594763593013999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2014/01/qtandroid-error-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/172594763593013999'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/172594763593013999'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2014/01/qtandroid-error-1.html' title='Qt 5.2 + Android Error #1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350108964547171282.post-1500407965302969964</id><published>2014-01-17T11:59:00.001+01:00</published><updated>2014-12-20T15:22:05.333+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vienna"/><category scheme="http://www.blogger.com/atom/ns#" term="wien"/><title type='text'>Lang lebe das Blog</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Der letzte Blog-Post liegt drei Monate zurück. Ups. Ich war ziemlich gestresst vom Beleg schreiben.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Mittlerweile ist der Beleg abgegeben, verteidigt und benotet. Alles lief besser als erwartet. Bin sehr zufrieden. Super!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Jetzt, da ich wieder in Wien bin und den Kopf einigermaßen frei habe, werde ich mal die Dinge in Angriff nehmen für die ich keine Nerven hatte. Meinen CV neu machen und auf github laden, Bürokram machen, zum Arzt gehen wegen meiner immernoch anhaltenden Fußverletzung, den Ungelesene-Bücher-Stapel verkleinern, bloggen und generell eigene Interessen verfolgen.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Bin erst ein paar Tage wieder in Österreich. Daher gibt es nichts zu berichten außer dass ich mal ein österreichisches Nationalgetränk ausprobiert habe. Hat, laut Aufdruck, sogar viele Vitamine! Schmeckt aber wie Zuckerwasser ohne definierbaren Geschmack. Nicht so toll. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHfGX8zkcUvs95C3adLhaWV74T35XyjPnX4rHE_EZIfCFtb3cr_1_-7g1X3NuMO0YulseP-2xCwjsmEzcFYVemnwGIhQMnbpL2XwUSvi-z6hsGpvqGDOhUzQETV-EnhGXClcaXF_H7NYw7/s1600/redbull.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHfGX8zkcUvs95C3adLhaWV74T35XyjPnX4rHE_EZIfCFtb3cr_1_-7g1X3NuMO0YulseP-2xCwjsmEzcFYVemnwGIhQMnbpL2XwUSvi-z6hsGpvqGDOhUzQETV-EnhGXClcaXF_H7NYw7/s1600/redbull.jpg&quot; height=&quot;150&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Im Steam-Weihnachts-Sale habe ich mir Mass Effect 1 und 2, geholt und&lt;u&gt; &lt;/u&gt;bisher die 1 durchgespielt und die 2 angefangen. Ziemlich ziemlich gut. Viel Story. Gute Story. Gute Dialoge. Gutes Gameplay. Keine auffälligen/nervigen Macken, abgesehen davon dass jeder Abschnitt komplett schlauchförmig ist. Fetzt.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
EvE Online habe ich in letzter Zeit weniger gespielt. Sehenswert ist das folgende Video. Rooks and Kings stellt den remote starburst vor. Capital ships beschleunigen dabei auf 10,000 m/s und spielen Billard!&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/Zj5ltxQgtAg?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Vom 5.1. bis 11.1 fand der alljährliche Speedrun-Marathon &lt;a href=&quot;http://gamesdonequick.com/&quot;&gt;Awesome Games Done Quick&lt;/a&gt; in Washington DC statt. Insgesamt wurde rund eine Million Dollar für die Prevent Cancer Foundation gesammelt. Alle Runs kann man &lt;a href=&quot;http://www.reddit.com/r/speedrun/comments/1ui4dn/agdq_vods_thread/&quot;&gt;hier&lt;/a&gt; finden. Ein paar ausgewählte runs:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Mike Tyson&#39;s Punchout!! (Ja, mit Ausrufezeichen im Titel), von Sinister1,&amp;nbsp; mit verbundenen Augen. Genial!&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/0ebFqyr41H0?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;Direkt danach kam noch die Steigerung (was ich nicht für möglich gehalten habe bei dem letzten run): Super Punch-Out!!, von Zallard1, mit verbundenen Augen. Spoiler: &lt;span style=&quot;color: white;&quot;&gt;Er schafft es als erster überhaupt es durchzuspielen!&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/ak1EocJWqnw?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;Minecraft speedrun! Mit festem seed, FYI. Ich wusste gar nicht, dass man es überhaupt rennen kann. Aber der junge Mann schafft es in unter 30 Minuten den Drachen zu besiegen. &lt;a href=&quot;http://www.twitch.tv/speeddemosarchivesda/b/494361211?t=13h20m43s&quot;&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
Von Ghost in the Shell gibt es eine neue übrigens eine neue Prequel-Reihe, die sich damit beschäftigt wie der Major zu Section 9 kommt und sein Team zusammenstellt. Bisher sind zwei Filme veröffentlicht worden. &lt;a href=&quot;http://anidb.net/perl-bin/animedb.pl?show=anime&amp;amp;aid=9658&quot;&gt;link&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Die neue Anime-Season ist armselig, genau wie die Letzte. Viel Schul-Anime, Slapstick-Zeug und schlechte Dialoge. Schade.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Isaac Assimov&#39;s sieben Foundation Series-Bücher habe ich fast fertig gelesen. Der Mann hat&#39;s schwer drauf. Trotzdem habe ich das Gefühl dass die jungeren Bücher nicht so gut sind wie die ersten paar. Dennoch sehr lesenswert, genau wie die Robot-Geschichten.&lt;/div&gt;
&lt;br /&gt;
Das war&#39;s erstmal. Bis demnächst!</content><link rel='replies' type='application/atom+xml' href='https://blog.automaton2000.com/feeds/1500407965302969964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://blog.automaton2000.com/2014/01/lang-lebe-das-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/1500407965302969964'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7350108964547171282/posts/default/1500407965302969964'/><link rel='alternate' type='text/html' href='https://blog.automaton2000.com/2014/01/lang-lebe-das-blog.html' title='Lang lebe das Blog'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHfGX8zkcUvs95C3adLhaWV74T35XyjPnX4rHE_EZIfCFtb3cr_1_-7g1X3NuMO0YulseP-2xCwjsmEzcFYVemnwGIhQMnbpL2XwUSvi-z6hsGpvqGDOhUzQETV-EnhGXClcaXF_H7NYw7/s72-c/redbull.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Vienna, Austria</georss:featurename><georss:point>48.2081743 16.37381890000006</georss:point><georss:box>47.8696338 15.728371900000059 48.546714800000004 17.019265900000061</georss:box></entry></feed>