RSS Amplifier

Blog

Harmless Half-Knowledge

blog.automaton2000.comRSS feed ↗25 posts

Latest posts

The Next Step for AI - Full Personal Interaction Capture

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…

Load Local Vimrc Automatically From Parent Directories

It is common to have different indention settings for different programming projects. For example: /path/to/my/project/.vimrc: autocmd FileType cpp setl ts=4 sts=4 sw=4 expandtab 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. let…

Dell XPS 7590 SSD Benchmark

While I was shopping for a new laptop, I wanted to know which SSDs Dell includes in their XPS 15" models. So I called sales support. It turns out they don't know, and as of 2019, you lose warranty if you change any part. They should stop calling it CRU then! I don't know whether or not there is a seal or how they make sure you didn't tamper with the machine, or if this policy is even enforced. So…

Diplom Thesis: Automatic Profile-Based Characterisation of Performance Traces for Highly Parallel Applications

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. I made the defense slides , thesis , paper and source code available. Developing Vampir led us to the realization that scalability of performance analysis and visualization is fundamentally difficult.…

Costa Rica - Wildlife Refuge Laguna Urpiano

Time flies. It's been a year already. I am thoroughly enjoying my job at Oak Ridge National Lab. 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. July last year, three friends and I spent two weeks in Costa Rica volunteering at the sea turtle refuge…

Retirement Calculator

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. It's a simple python script: (GitHub link) Usage: retirement-calculator [options] Optional arguments: -h, --help Show this help message and exit --initial-savings <USD> --working-annual-return-rate <rate>…

Great Smoky Mountains / Cades Cove Hike

The Great Smoky Mountains are part of the Appalachians - 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. The following photos are from a hike on the Anthony…

Dark Souls 1 Photo Tour

After I've enjoyed all content Dark Souls 2 has to offer (photo tour) , I went back to Lordran. Here's a selection of photos I took during my stay. But first some even older photos from 2014. 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's pretty and light. You take great care setting up your…

In a Galaxy Far Far Away

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 (like these) to run better on Titan - the fastest open-science super computer of the western world and its successor Summit (POWER9+NVIDIA Volta). Needless to say that this is super-exciting…

Intel SSD 600p (1TB) Luks+Ext4 Encrypted Disk Performance

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'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. All benchmark runs were…

Race Report: 19ter Lauf in den Frühling

Am 6. Mai war es soweit, der Lauf in den Frühling stand an. Laut Trainingsplan sollten die 44 Minuten für 10km möglich sein. Andererseits ist eine 4:24min/km pace ziemlich hart. 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…

Race Report: 19ter Oberelbe-Marathon

Weil ich beim Citylauf Blut geleckt habe, besorgte ich mir darauf hin einen Trainingsplan für 10km in 44 Minuten und fing an zu trainieren. 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…

Race Report: 26ter Citylauf Dresden

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. Auf den ersten Kilometern lief es sehr gut. Nach kurzer Zeit hatte ich schon…

Thank you From Software

I recently finished Dark Souls 2 NG+4 and acquired all achievements. For this occasion, I just wanted to say thank you and share some images of my time in Drangleic. It's been a long journey Just beat Nashandra and Aldia Proof Proof #2 My level 313 Wanderer Aria Where it all started: The Old Firekeepers Home Home #2 Home #3 Home #4 Waiting for PvP... Sun Bros for Life Dragon Shrine Heide's Tower…

Error with Scripting Vim in Python - Ubuntu Xenial

While updating to Ubuntu 16.04 (Xenial Xerus) my .vimrc stopped working with the following error message: vim.error: Vim(python):E319: Sorry, the command is not available in this version: python << endpython After a bit of wrestling I found out that you have to replace python << endpython with python3 << endpython The big tell was that $ vim --version yielded, among other things, -python and…

OTF2 Knowledge: How to Match MPI Messages

OTF2 (part of Score-P ) has a terrible reader interface. This post explains one little part of boilerplate you need to write in order to process MPI messages. 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 ( 1 , 2 ) enables you to generate one list of messages to be used in your tool,…

OTF2 Knowledge: How to Process Non-Blocking MPI Messages

OTF2 (part of the Score-P ) has a terrible reader interface. This post attempts to explain one part of boilerplate you need to write in order to process MPI messages. If your tool processes MPI messages, it does not suffice to only consider MpiSend and MpiRecv records. Applications using MPI can also use non-blocking send and receive operations. Mixing blocking and non-blocking operations is…

OTF2 Knowledge: How to Map Local MPI Ranks to OTF2 Locations

OTF2 (part of the Score-P infrastructure) has a terrible reader interface. This post attempts to explain one little part of boilerplate you need to write in order to process MPI records. For example, to process an MPI_Send record you use a handler with the following signature: OTF2_CallbackCode handleMpiSend(OTF2_LocationRef sender, OTF2_TimeStamp time, void* userData, OTF2_AttributeList* a,…

Automatically flushing QTextStream

QTextStream 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: Header file: extern QTextStream qerr; extern QTextStream qout; Source file: QTextStream qerr(stderr, QIODevice::WriteOnly | QIODevice::Text); QTextStream qout(stdout, QIODevice::WriteOnly | QIODevice::Text); Unfortunately, QTextStream…

Minor Thesis - Development and Analysis of Barrier Protocols

A year ago, I defended my minor thesis (equivalently bachelor thesis or Großer Beleg) (PDF download) . The repository, including smaller course work on similar topics from before, is on GitHub: https://github.com/hydroo/barrier . Thesis Contents 1/2 Intro/Background Cache coherency and atomic operations don't scale Probabilistic synchronization is a good idea Survey of currently used barrier…

New PGP and OTR Keys

PGP key id: e94b3df55b06c8e4 OTR fingerprint: 1d070cab 116463a6 0f94b424 075b6c83 abb4a140 When in doubt, contact me some more reliable way, since this blog isn't a secure way of distributing this info.

Mouse cursor centered zooming in QGraphicsView

Zooming into and out of a QGraphicsView so that the position under the mouse cursor remains fixed is easy, right? Sadly, it isn't. I leave my best working approach here for you to enjoy and hopefully save you some time. 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. void…

Unterhaltung

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. Ein sehr schönes Spiel was ich so erworben hab' ist The Stanley Parable. Vielleicht nicht unbedingt 12€ Wert, da ziemlich kurz, aber auf…

Qt 5.2 + Android Error #1

If you make a new project and try to debug/run you might get the following error. Unable to start 'org.qtproject.example._8paint'. Debugging has failed or Starting remote process. Unable to start 'org.qtproject.example._8paint' Notice the extra underscore in front of the program name. Apparently, your program's name is not allowed to begin with a number or an underscore. edit: This error should be…

Lang lebe das Blog

Der letzte Blog-Post liegt drei Monate zurück. Ups. Ich war ziemlich gestresst vom Beleg schreiben. Mittlerweile ist der Beleg abgegeben, verteidigt und benotet. Alles lief besser als erwartet. Bin sehr zufrieden. Super! 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…