{"@attributes":{"version":"2.0"},"channel":{"title":"\/home\/robert","link":"https:\/\/auch.cool\/","description":"Recent content on \/home\/robert","generator":"Hugo -- 0.147.9","language":"en","lastBuildDate":"Tue, 10 Dec 2024 18:42:57 +0100","item":[{"title":"Clickhouse: Import compressed JSON fast","link":"https:\/\/auch.cool\/posts\/2024\/zstd-json-clickhouse-import\/","pubDate":"Mon, 21 Oct 2024 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2024\/zstd-json-clickhouse-import\/","description":"<p>The <a href=\"https:\/\/mvg.auch.cool\">MVG Observatory Project<\/a> collects real-time departure data from Munich&rsquo;s public transport system.\nThe data is organized hierarchically: the top level contains date-based folders, each containing subfolders named after station IDs.\nThese station folders hold multiple JSON files that capture departure information throughout the day.<\/p>\n<p>Each station&rsquo;s data is stored in two types of files: <code>*_body.json<\/code> and <code>*_meta.json<\/code>.\nThe body files contain either API error messages or JSON arrays of responses, which are imported into the <code>mvg.responses<\/code> table in Clickhouse.\nThe corresponding meta files store request metadata (sharing the same timestamp as their body files) and are imported into the <code>mvg.requests<\/code> table.<\/p>"},{"title":"Enten \ud83e\udd86","link":"https:\/\/auch.cool\/enten\/","pubDate":"Wed, 01 May 2024 07:24:23 +0100","guid":"https:\/\/auch.cool\/enten\/","description":"<div class=\"flourish-embed flourish-number-ticker\" data-src=\"visualisation\/17756932\"><script src=\"https:\/\/public.flourish.studio\/resources\/embed.js\"><\/script><\/div>"},{"title":"Fly with Sensible Photo Equipment","link":"https:\/\/auch.cool\/posts\/2024\/sensible-equipment\/","pubDate":"Mon, 22 Apr 2024 10:56:23 -1000","guid":"https:\/\/auch.cool\/posts\/2024\/sensible-equipment\/","description":"<p>I got dragged into the rabbit hole of taking analog photos about a year ago and enjoying it since.<\/p>\n<p>But when you want to board a plane with your camera and a bunch of film rolls you might ask yourself:\nWhat to do with it during the x-ray at the security check. Will it harm or destroy my film?<\/p>\n<h2 id=\"film-condition\">Film condition<\/h2>\n<p>This concern is valid for a film that is either new or exposed and winded back which therefore is <strong>unprocessed<\/strong>. A film that has already been processed by a lab and you have been handed the negatives back is unaffected and safe.<\/p>"},{"title":"TIL: 'dot_clean' in macOS","link":"https:\/\/auch.cool\/posts\/2023\/til-dot-clean\/","pubDate":"Fri, 07 Apr 2023 09:00:23 +0100","guid":"https:\/\/auch.cool\/posts\/2023\/til-dot-clean\/","description":"<p>When switching between multiple systems including macOS you may have notices thoses strange looking files starting with <code>._<\/code>.<\/p>\n<p>They regularely break Switch firmware upgrades and might be in the way during other filesystem operations as well.<\/p>\n<p>There are multiple solutions out there in the wild including removing them or moving them away using <code>rsync<\/code>. The most convinient way on macOS is using the <code>dot_clean<\/code> command which is shipped with macOS by default.<\/p>"},{"title":"Advent of Code - RocketLang Edition","link":"https:\/\/auch.cool\/posts\/2022\/aoc-day-1\/","pubDate":"Thu, 01 Dec 2022 08:00:23 +0100","guid":"https:\/\/auch.cool\/posts\/2022\/aoc-day-1\/","description":"<p>This years Advent of Code is a little special because I use my own language <a href=\"https:\/\/rocket-lang.org\/\">RocketLang<\/a> to solve the puzzles.\nI&rsquo;ll probably explain this in a seperate post at some point so lets have a look at the first puzzle of the year:<\/p>\n<h2 id=\"problem\">Problem<\/h2>\n<p>The task is to calculate the amount of calories they are carrying. For example:<\/p>\n<pre tabindex=\"0\"><code>1000\n2000\n3000\n\n4000\n\n5000\n6000\n\n7000\n8000\n9000\n\n10000\n<\/code><\/pre><p>This shows us 5 elves with different amount of items (with different calories each).<\/p>"},{"title":"\ud83e\udeb4 Blumentopf - Automated Plant Watering #2","link":"https:\/\/auch.cool\/posts\/2022\/blumentopf-2\/","pubDate":"Sun, 01 May 2022 09:00:23 +0100","guid":"https:\/\/auch.cool\/posts\/2022\/blumentopf-2\/","description":"<p>This post misses a lot of technical details as I reconstruct the changes and implementations out of my memory and my image archive. The latest Blumentopf iteration will contain all technical details you need.<\/p>\n<p>In 2020 I remembered a <a href=\"https:\/\/www.thingiverse.com\/thing:903411\">Self-Watering Planter<\/a> I printed a few years ago and thought it would be nice to reuse this one to replace my chunky prototype with a cleaner and more aesthetic version.<\/p>\n<p><img loading=\"lazy\" src=\"https:\/\/auch.cool\/img\/blumentopf\/01\/07.jpg\" title=\"Chunky prototype in case you have forgotten it\"><\/p>"},{"title":"\ud83e\udeb4 Blumentopf - Automated Plant Watering #1","link":"https:\/\/auch.cool\/posts\/2022\/blumentopf-1\/","pubDate":"Sun, 01 May 2022 08:00:23 +0100","guid":"https:\/\/auch.cool\/posts\/2022\/blumentopf-1\/","description":"<p>This post misses a lot of technical details as I reconstruct the changes and implementations out of my memory and my image archive. The latest Blumentopf iteration will contain all technical details you need.<\/p>\n<p>Four years ago I started working on a never ending side project with which I wanted to automate the watering of some of my plants.<\/p>\n<p>I fiddled around with a few modules from <a href=\"https:\/\/www.tinkerforge.com\/en\/\">Tinkerforge<\/a> which I love for jumping into a project. The modules are relatively pricey but have an excellent documentation and are working very well.<\/p>"},{"title":"Sous Vide Steak 1.0","link":"https:\/\/auch.cool\/posts\/2021\/sous-vide\/sous-vide-steak-1.0\/","pubDate":"Mon, 18 Oct 2021 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2021\/sous-vide\/sous-vide-steak-1.0\/","description":"<p>Recently we tried out sous vide cooking and needed quite some time to find well-sounding parameters in the internet or cookbooks.<\/p>\n<p>To preserve the tweaks we did to them I wanted to put them up here, also some of you might want to give it a try too.<\/p>\n<h2 id=\"baseline-parameters\">Baseline Parameters<\/h2>\n<p>The following parameters can be used for a cold start and might need adjustments depending on your tools and taste.<\/p>"},{"title":"Books","link":"https:\/\/auch.cool\/books\/","pubDate":"Fri, 01 Oct 2021 07:24:23 +0100","guid":"https:\/\/auch.cool\/books\/","description":"<p>I like books and sometimes I even read them!\nBelow you can find a unsorted list I&rsquo;ve read and enjoyed:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/54430395-die-redaktion\">Die Redaktion<\/a> by Benjamin Fredrich<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/2608806-na-servus\">Na Servus!: Wie Ich Lernte, Die Bayern Zu Lieben<\/a> by Sebastian Glubrecht<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/30052267-at-the-edge\">At the Edge: Riding for My Life<\/a> by Danny MacAskill<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/44290242-herr-sonneborn-geht-nach-br-ssel---abenteuer-im-europaparlament\">Herr Sonneborn geht nach Br\u00fcssel<\/a> by Martin Sonneborn<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/25541028-elon-musk\">Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future<\/a> by Ashlee Vance<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/17255186-the-phoenix-project\">The Phoenix Project<\/a> by Gene Kim, Kevin Behr, George Spafford<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/46223297-permanent-record\">Permanent Record <\/a> by Edward Snowden<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/23158207-how-google-works\">How Google Works<\/a> by Eric Schmidt and Jonathan Rosenberg<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/58990454-fritz-gegen-goliath\">fritz gegen Goliath<\/a> by Mirco Wolf Wiegert<\/li>\n<li><a href=\"https:\/\/www.goodreads.com\/book\/show\/56951280-die-kleinste-gemeinsame-wirklichkeit-wahr-falsch-plausibel-die-gr-t\">Die kleinste gemeinsame Wirklichkeit<\/a> by Mai Thi Nguyen-Kim<\/li>\n<\/ul>\n<p>Currently I am reading:<\/p>"},{"title":"Food & Drinks","link":"https:\/\/auch.cool\/food\/","pubDate":"Fri, 01 Oct 2021 07:24:23 +0100","guid":"https:\/\/auch.cool\/food\/","description":"<p>Places to eat or drink that I enjoyed and found above average.<\/p>\n<h2 id=\"canada\">Canada<\/h2>\n<ul>\n<li>Montreal\n<ul>\n<li><a href=\"https:\/\/www.thecoldroommtl.com\/\">The Coldroom<\/a> | Bar<\/li>\n<li><a href=\"https:\/\/www.jatobamontreal.com\/\">Jatoba<\/a> | Restaurant<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"germany\">Germany<\/h2>\n<ul>\n<li>Munich\n<ul>\n<li><a href=\"https:\/\/azukimunich.com\/\">Azuki<\/a> | Restaurant<\/li>\n<li><a href=\"https:\/\/bar-garcon.de\/\">Bar GAR\u00c7ON<\/a> | Bar<\/li>\n<li><a href=\"https:\/\/callsoul-breakingbar.de\/\">Call Soul<\/a> | Bar<\/li>\n<li><a href=\"http:\/\/www.pacific-times.de\/\">Pacific Times<\/a> | Bar<\/li>\n<li><a href=\"https:\/\/www.sushiya.de\/\">sansaro<\/a> | Restaurant<\/li>\n<li><a href=\"https:\/\/schreiberei-muc.de\/restaurant\">Schreiberei<\/a> | Restaurant<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"iceland\">Iceland<\/h2>\n<ul>\n<li>Akureyri\n<ul>\n<li><a href=\"https:\/\/berlinakureyri.is\/\">Cafe Berlin<\/a> | Breakfast<\/li>\n<li><a href=\"https:\/\/www.rub23.is\/en\">Rub23<\/a> | Restaurant<\/li>\n<\/ul>\n<\/li>\n<li>Reykjavik\n<ul>\n<li><a href=\"https:\/\/grillmarkadurinn.is\/en\">Grillmarka\u00f0urinn<\/a> | Restaurant<\/li>\n<li><a href=\"https:\/\/www.rokrestaurant.is\/\">ROK<\/a> | Restaurant<\/li>\n<li><a href=\"https:\/\/www.tidesrestaurant.is\/\">Tides<\/a> | Resturant<\/li>\n<\/ul>\n<\/li>\n<li>V\u00edk\n<ul>\n<li><a href=\"https:\/\/www.stayinvik.is\/menus\">Berg Restaurant<\/a> | Restaurant<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"ireland\">Ireland<\/h2>\n<ul>\n<li>Dublin\n<ul>\n<li><a href=\"https:\/\/vintagecocktailclub.com\/\">Vintage Cocktail Club<\/a> | Bar<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"usa\">USA<\/h2>\n<ul>\n<li>Honolulu\n<ul>\n<li><a href=\"https:\/\/www.deckwaikiki.com\/\">DECK<\/a> | Restaurant<\/li>\n<li><a href=\"https:\/\/eggsnthings.com\/\">Eggs &rsquo;n Things Saratoga<\/a> | Breakfast<\/li>\n<\/ul>\n<\/li>\n<li>Paia, Maui\n<ul>\n<li><a href=\"https:\/\/mamasfishhouse.com\/\">Mama&rsquo;s Fish House<\/a> | Restaurant<\/li>\n<\/ul>\n<\/li>\n<li>Wailea, Maui\n<ul>\n<li><a href=\"https:\/\/monkeypodkitchen.com\/\">Monkeypod Kitchen<\/a> | Restaurant<\/li>\n<\/ul>\n<\/li>\n<\/ul>"},{"title":"Robert","link":"https:\/\/auch.cool\/about\/","pubDate":"Fri, 01 Oct 2021 07:24:23 +0100","guid":"https:\/\/auch.cool\/about\/","description":"<p>I am tinkering on stuff that runs the internet at <a href=\"https:\/\/mozilla.org\">Mozilla<\/a>.<\/p>\n<p>Previously I broke things in parallel on a lot of servers in a\n<a href=\"https:\/\/hetzner.com\">hosting company<\/a>. I have both unconventional and practical\nsolutions for every challenge, with a preference for scalability and general applicability.\nI do temporary things that live forever occasionally too.<\/p>\n<p>Lost my heart to Ruby, love photography, mountain biking and \u201ccatching the latest flicks\u201d - as the cool kids say across the pond.<\/p>"},{"title":"Shenzhen I\/O #3 - Diagnostic Pulse Generator","link":"https:\/\/auch.cool\/posts\/2021\/shenzhen-io-3\/","pubDate":"Thu, 18 Mar 2021 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2021\/shenzhen-io-3\/","description":"<p>Another day another Shenzhen I\/O puzzle.<\/p>\n<blockquote>\n<p>In order to test some of our new manufacturing equipment, we need a pulse generator with certain requirements (specifications).\nHowever, instead of buying one at the market price, I thought we could simply create our own.\nFor this project you will need to make use of <em>conditional execution<\/em>.\nPlease continue your study of the language reference.<\/p><\/blockquote>\n<p>As a refresher, checkout the Language Reference Card <a href=\"https:\/\/auch.cool\/posts\/2021\/shenzhen-io-1\/\">in the first post<\/a>.<\/p>"},{"title":"Shenzhen I\/O #2 - Control Signal Amplifier","link":"https:\/\/auch.cool\/posts\/2021\/shenzhen-io-2\/","pubDate":"Sun, 14 Mar 2021 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2021\/shenzhen-io-2\/","description":"<p>Today we&rsquo;re doing another Shenzhen I\/O puzzle.<\/p>\n<p>As this is the second task, the puzzle is again quite simple.\nAs a reminder, we do have the following command documentation:<\/p>\n<p><img alt=\"Docs\" loading=\"lazy\" src=\"https:\/\/auch.cool\/img\/shenzhen\/shenzhen-io-0.png\"><\/p>\n<p>The task is to amplify a signal.\nAs we can see from the verification tab the output has to be higher than the input - twice as high, to be precise.<\/p>\n<p><img alt=\"Puzzle 2\" loading=\"lazy\" src=\"https:\/\/auch.cool\/img\/shenzhen\/shenzhen-io-2.png\"><\/p>\n<p>This seems fairly easy, we just need to multiply the input signal with <code>2<\/code> and output the result.\nIf we take a closer look on our commands we can find a <code>mul<\/code> operator which can take one argument.\nIt is documented with the following:<\/p>"},{"title":"Printer of Catan #1","link":"https:\/\/auch.cool\/posts\/2021\/printer-of-catan-1\/","pubDate":"Sat, 27 Feb 2021 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2021\/printer-of-catan-1\/","description":"<p><img alt=\"Filament 1\" loading=\"lazy\" src=\"https:\/\/auch.cool\/img\/catan\/header.jpg\"><\/p>\n<p>I recently stumbled over the <a href=\"https:\/\/www.thingiverse.com\/thing:2525047\">Catan style boardgame 2.0<\/a> from Dakanzla and thought it would be nice to print my own version of it.<\/p>\n<p>Doing this I noticed how hard it was to collect all information, find the right models for the version I wanted and finally printing it. Therefore I am writing this post helping others to create their version of Catan.<\/p>\n<p>This is an ongoing series of posts during the building\/printing of the game and is likely to change. While new blog posts will cover the process I&rsquo;ll keep the specs in this post up to date when I change a color or similiar.<\/p>"},{"title":"Shenzhen I\/O #1 - Security Camera","link":"https:\/\/auch.cool\/posts\/2021\/shenzhen-io-1\/","pubDate":"Wed, 24 Feb 2021 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2021\/shenzhen-io-1\/","description":"<p>A few days ago I tried out <a href=\"https:\/\/store.steampowered.com\/app\/504210\/SHENZHEN_IO\/\">SHENZHEN I\/O<\/a>. It is some kind of puzzle game in which you need to solve little tasks using assembler and programming a microcontroller.<\/p>\n<p>The solution is then ranked in three categories and compared to friends:<\/p>\n<ul>\n<li>Product Cost: depends on the hardware you did choose<\/li>\n<li>Power Usage: Is increased with more complex and expensive commands<\/li>\n<li>Lines of code<\/li>\n<\/ul>\n<p>There is no tutorial. All you have is a 50 sheet documentation about the chips an the commands. That sounds pretty shitty in the beginning but is a nice, realistic thing I started to like pretty quickly. It&rsquo;s like doing an exam with docs allowed.<\/p>"},{"title":"Advent of Code Day #6","link":"https:\/\/auch.cool\/posts\/2020\/aoc-day-6\/","pubDate":"Sun, 06 Dec 2020 07:24:23 +0100","guid":"https:\/\/auch.cool\/posts\/2020\/aoc-day-6\/","description":"<p>Day 6 is again pretty nice to solve with Ruby. Today it is all about customs declaration.<\/p>\n<p>We again have different groups seperated by a newline containing multiple lines with characters.\nEach line represents a person and each character represents a different question answered with &ldquo;yes&rdquo;.<\/p>\n<pre tabindex=\"0\"><code>abc\n\na\nb\nc\n\nab\nac\n\na\na\na\na\n<\/code><\/pre><p>In this example we do have four groups of people.\nThe first group only has one person which answered three questions.\nThe second group as three people which answered three (different) questions.\nThe third group has two people, they both answered question <code>a<\/code> and then two different questions.\nIn the fourth group every of the four people answered one (the same) question.<\/p>"},{"title":"Advent of Code Day #5","link":"https:\/\/auch.cool\/posts\/2020\/aoc-day-5\/","pubDate":"Sat, 05 Dec 2020 07:24:23 +0100","guid":"https:\/\/auch.cool\/posts\/2020\/aoc-day-5\/","description":"<p>Day five is all about the airplane seating.\nOne seat it represented by something like this: <code>FBFBBFFRLR<\/code>.\nThe first eight characters are for the row, the last three for the seat.<\/p>\n<h2 id=\"part-1\">Part 1<\/h2>\n<p>We need to find the highest seat id to solve the first part.<\/p>\n<p>The seat id is calculated with: <code>row-id * 8 + column<\/code>.<\/p>\n<p>For the rows you start with a range of <code>0<\/code> to <code>127<\/code>.<\/p>\n<ul>\n<li><code>F<\/code> means use the first half<\/li>\n<li><code>B<\/code> means use the last half<\/li>\n<\/ul>\n<p>With this in mind you need to iterate over the first eight characters to get your seat.<\/p>"},{"title":"Advent of Code Day #4","link":"https:\/\/auch.cool\/posts\/2020\/aoc-day-4\/","pubDate":"Fri, 04 Dec 2020 07:24:23 +0100","guid":"https:\/\/auch.cool\/posts\/2020\/aoc-day-4\/","description":"<p>In day 4 we need to deal with passports (yay!) and check if they are valid for given criterias.\nThe passworts do have multiple fields (<code>key:value<\/code>) and are divided by a newline.<\/p>\n<pre tabindex=\"0\"><code>ecl:gry pid:860033327 eyr:2020 hcl:#fffffd\nbyr:1937 iyr:2017 cid:147 hgt:183cm\n\niyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884\nhcl:#cfa07d byr:1929\n\nhcl:#ae17e1 iyr:2013\neyr:2024\necl:brn pid:760753108 byr:1931\nhgt:179cm\n<\/code><\/pre><p>The fields are given and expected like so:<\/p>\n<pre tabindex=\"0\"><code>byr (Birth Year)\niyr (Issue Year)\neyr (Expiration Year)\nhgt (Height)\nhcl (Hair Color)\necl (Eye Color)\npid (Passport ID)\ncid (Country ID)\n<\/code><\/pre><p>Splitting them into &ldquo;passports&rdquo; is as easy as it gets.<\/p>"},{"title":"Advent of Code Day #3","link":"https:\/\/auch.cool\/posts\/2020\/aoc-day-3\/","pubDate":"Thu, 03 Dec 2020 07:24:23 +0100","guid":"https:\/\/auch.cool\/posts\/2020\/aoc-day-3\/","description":"<p>In day 3 you have a ever repeating map with trees and free spaces.\nYou move over this map and have to count how many trees (<code>#<\/code>) you will hit.<\/p>\n<h2 id=\"part-1\">Part 1<\/h2>\n<p>Given is a pattern in which you move right and down.\nIn part 1 we start in the top left corner and always move 3 right and one down until we reach the last line.<\/p>\n<pre tabindex=\"0\"><code>..##.........##.........##.........##.........##.........##.......  ---&gt;\n#...#...#..#...#...#..#...#...#..#...#...#..#...#...#..#...#...#..\n.#....#..#..#....#..#..#....#..#..#....#..#..#....#..#..#....#..#.\n..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#\n.#...##..#..#...##..#..#...##..#..#...##..#..#...##..#..#...##..#.\n..#.##.......#.##.......#.##.......#.##.......#.##.......#.##.....  ---&gt;\n.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#\n.#........#.#........#.#........#.#........#.#........#.#........#\n#.##...#...#.##...#...#.##...#...#.##...#...#.##...#...#.##...#...\n#...##....##...##....##...##....##...##....##...##....##...##....#\n.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#  ---&gt;\n<\/code><\/pre><p>Since the map is repeating we need to reset the <code>x<\/code> position if we reach the end of the line in the given example.\nTheoretical you could achieve this with a simple modulo, but I did it without because I hadn&rsquo;t it in mind when I was in a hurry.\nThe rest of part 1 is very simple looping without any suprises.<\/p>"},{"title":"Advent of Code Day #2","link":"https:\/\/auch.cool\/posts\/2020\/aoc-day-2\/","pubDate":"Wed, 02 Dec 2020 07:24:23 +0100","guid":"https:\/\/auch.cool\/posts\/2020\/aoc-day-2\/","description":"<p>In day 2 you were given a set of rules to be parsed first. The looked like this:<\/p>\n<pre tabindex=\"0\"><code>1-3 a: abcde\n1-3 b: cdefg\n2-9 c: ccccccccc\n<\/code><\/pre><p>Each line contains two numbers, a character and a password<\/p>\n<h2 id=\"part-1\">Part 1<\/h2>\n<p>In part 1 you have to check if the given character appears at least and at most times given by the numbers.\nEach password that matches this behavior is considered valid.<\/p>\n<script src=\"https:\/\/emgithub.com\/embed-v2.js?target=https:\/\/github.com\/flipez\/advent-of-code\/blob\/master\/2020%2fday-2%2fpart_1.rb&style=agate&showLineNumbers=off&showFileMeta=on&type=code&showCopy=on\"><\/script>\n<h2 id=\"part-2\">Part 2<\/h2>\n<p>In part 2 you need to check if the given character is on <em>one<\/em> of the two given positions indicated by the numbers.\n<script src=\"https:\/\/emgithub.com\/embed-v2.js?target=https:\/\/github.com\/flipez\/advent-of-code\/blob\/master\/2020%2fday-2%2fpart_2.rb&style=agate&showLineNumbers=off&showFileMeta=on&type=code&showCopy=on\"><\/script><\/p>"},{"title":"Advent of Code Day #1","link":"https:\/\/auch.cool\/posts\/2020\/aoc-day-1\/","pubDate":"Tue, 01 Dec 2020 08:00:23 +0100","guid":"https:\/\/auch.cool\/posts\/2020\/aoc-day-1\/","description":"<p>First day was fairly simple. You need to find the two-pair combination (part 1) that sums up to 2020 and the three-pair combination (part 2).<\/p>\n<p>Then simply multiply each of the numbers within the combination. The result is the solution for the puzzle.<\/p>\n<script src=\"https:\/\/emgithub.com\/embed-v2.js?target=https:\/\/github.com\/flipez\/advent-of-code\/blob\/master\/2020%2fday-1%2fcomplete.rb&style=agate&showLineNumbers=off&showFileMeta=on&type=code&showCopy=on\"><\/script>\n<p>Unfortunately due to an <a href=\"https:\/\/www.reddit.com\/r\/adventofcode\/comments\/k4ejjz\/2020_day_1_unlock_crash_postmortem\/\">outage<\/a> day 1 will not result in any points on the leaderboards.<\/p>"},{"title":"Emgithub shortcode","link":"https:\/\/auch.cool\/posts\/2020\/emgithub\/","pubDate":"Sun, 22 Nov 2020 17:50:46 +0100","guid":"https:\/\/auch.cool\/posts\/2020\/emgithub\/","description":"<p>During the upcoming AoC I want to post some small posts about each little puzzle.\nIn preparation of this I was looking for a way in hugo to include and highlight source code from GitHub without\ncopying it to each article.<\/p>\n<p>I discovered <a href=\"https:\/\/emgithub.com\">emgithub<\/a> and wrote a little shortcode for it and you can find it <a href=\"https:\/\/github.com\/flipez\/hugo-shortcodes\/blob\/master\/emgithub.html\">here<\/a>.<\/p>\n<script src=\"https:\/\/emgithub.com\/embed-v2.js?target=https:\/\/github.com\/flipez\/hugo-shortcodes\/blob\/master\/README.md&style=agate&showLineNumbers=off&showFileMeta=on&type=code&showCopy=on\"><\/script>"},{"title":"Let's encrypt - Free, automated and open","link":"https:\/\/auch.cool\/posts\/2015\/11-17-letsencrypt\/","pubDate":"Tue, 17 Nov 2015 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2015\/11-17-letsencrypt\/","description":"Wie benutzt man eigentlich Let&#39;s encrypt?"},{"title":"Wenn Limonade in den Betatest geht..","link":"https:\/\/auch.cool\/posts\/2015\/05-03-limonade\/","pubDate":"Sun, 03 May 2015 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2015\/05-03-limonade\/","description":"<p>Heute hab ich mich mal daran versucht Limonade herzustellen. Dabei wollte ich als Geschmack vorallem Ananas, Limette und Grenadine haben. Nach einer Weile klicken im Internet hab ich eine grobe Vorstellung davon gehabt was ich denn so alles brauchen werde. Dann gab es noch einen Tipp des Diners meines Vertrauens.<\/p>\n<p>Was brauchen wir denn alles:<\/p>\n<ul>\n<li>\n<p>100 ml <em>frischer<\/em> Limettensaft (aus etwa 3 Limetten)<\/p>\n<\/li>\n<li>\n<p>200 ml Ananassaft<\/p>\n<\/li>\n<li>\n<p>1200 ml Leitungswasser<\/p>\n<\/li>\n<li>\n<p>200 ml Grenadinesirup<\/p>"},{"title":"Moar speed! moar! Geschwindigkeit mit netcat testen","link":"https:\/\/auch.cool\/posts\/2015\/04-01-nc-nettest\/","pubDate":"Wed, 01 Apr 2015 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2015\/04-01-nc-nettest\/","description":"<p>Wenn man mal wissen m\u00f6chte wie schnell das Netzwerk eigentlich ist oder ob ein Anbieter drosselt - und wann - wird meist eine Datei heruntergeladen. Nun war aber das Problem, dass diese Datei irgendwann einmal zuende ist - m\u00f6chte man nun &lsquo;unendlich&rsquo; viel Daten versenden um die Belastung lange aufrecht zu erhalten gibt es da sicherlich viele M\u00f6glichkeiten. Der erste Gedanke war, \/dev\/zero zum Symlinken und per http zur Verf\u00fcgung zu stellen - das klappte nicht so ganz. Die L\u00f6sung liegt aber n\u00e4her als man denkt: netcat!<\/p>"},{"title":"Trafficlimit mit nginx","link":"https:\/\/auch.cool\/posts\/2015\/03-29-nginx-bandwith-limit\/","pubDate":"Sun, 29 Mar 2015 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2015\/03-29-nginx-bandwith-limit\/","description":"<p>Will man nur ein grobes Limit f\u00fcr den Webservertraffic setzen, so bietet es sich an direkt die Funktionen von nginx zu nutzen.<\/p>\n<p>Man kann sehr einfach in einem Sever\/Location Block limitierungen setzen.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-nginx\" data-lang=\"nginx\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">limit_rate_after<\/span> <span class=\"mi\">300m<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">limit_rate<\/span> <span class=\"mi\">5000k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Das setzt ein Limit auf etwa 50MBit wenn mehr als 300MB von einer(!) Verbindung aus geladen werden. Die Werte muss nat\u00fcrlich jeder f\u00fcr sich selbst einstellen und dienen hier nur dem Beispiel.<\/p>\n<p>M\u00f6chte man nun aber unabh\u00e4ngig der Verbindung den Server oder die IP des Gegen\u00fcber drosseln so bieten sich die nginx Zonen an.<\/p>"},{"title":"Foobar statt Facebook - HTML spoofing mit Python","link":"https:\/\/auch.cool\/posts\/2015\/03-06-websitespoof\/","pubDate":"Fri, 06 Mar 2015 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2015\/03-06-websitespoof\/","description":"<p>Ich habe mich mal etwas mit der &lsquo;Sicherheit&rsquo; beim ausliefern von Websiten besch\u00e4ftigt und wie man dort am besten manipulieren kann. Umso mehr Kontrolle man im Netzwerk hat, umso weniger braucht man nat\u00fcrlich beachten. Generell braucht man aber eigentlich gar keine Kontrolle und arbeitet einfach mit vielen verschiedenen Methoden zusammen. Sp\u00e4testens mit arpspoof ist man dann Gateway und hat alles was man so braucht.<\/p>\n<p>Nehmen wir mal an, wir leiten per DNS alle Anfragen an &lsquo;google.de&rsquo; an einen seperaten Server. Am angegebenen Ziel haben wir einen nginx welcher wiederum die Anfragen unterschiedlich bearbeitet. Wir wollen alles, was unter Google gesucht werden soll an eine lokale Flask-App geben. Daf\u00fcr eignen sich die folgenden Locations:<\/p>"},{"title":"Netflix: Der erste Eindruck","link":"https:\/\/auch.cool\/posts\/2014\/09-25-netflix-first-impression\/","pubDate":"Thu, 25 Sep 2014 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2014\/09-25-netflix-first-impression\/","description":"<p>Seit dem 16.09.14 ist Netflix nun auch in Deutschland erreichbar. Hochgelobt und hei\u00df erwartet kann man nun auch Filme und Serien in Deutschland \u00fcber das Streamingportal sehen. Ich habe mir schon im Vorfeld das Angebot in der US-Version angeschaut und hatte, wie viele andere auch, bedenken, dass das Angebot hier in DE doch stark verschm\u00e4lert sein wird.<\/p>\n<p>Wer sich jetzt sorgt der sei beruhigt, so schlimm ist es nicht. Nat\u00fcrlich ist das Angebot - teilweise deutlich - kleiner als das &lsquo;Original&rsquo;. Nichts destro-trotz sind die Aush\u00e4ngeschilder wie House of Cards oder Orange is the new Black verf\u00fcgbar. Auch in Deutsch. Im Gegensatz zu anderen Streaminganbietern sind alle Filme und Serien auch im O-Ton verf\u00fcbar.<\/p>"},{"title":"Buffalo Linkstation entbricken","link":"https:\/\/auch.cool\/posts\/2014\/09-03-buffalo-linkstation\/","pubDate":"Wed, 03 Sep 2014 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2014\/09-03-buffalo-linkstation\/","description":"<p>Heute hab ich es endlich geschafft meine fullbricked LinkStation zu retten. Nach einigem hin und her gab es dann vom Support doch mal eine sinnvolle Anleitung. Ich dr\u00f6sel das hier etwas auf, so das ihr eigentlich direkt loslegen k\u00f6nnt.<\/p>\n<h6 id=\"was-genau-war-das-problem\">Was genau war das Problem?<\/h6>\n<p>Die LinkstationDuo (LS-WXL) speichert die Daten in irgendeinem v\u00f6llig kaputten Dateisystem. Noch schlimmer ist eigentlich nur, dass dieses elegante St\u00fcck Hardware die Firmware auf den Festplatten speichert. Das ist solange kein Problem wie man keine oder nur eine Platte tauscht. Tauscht man nun aber beide hat man eine etwas zu klobig geratene, lichschwache Diskokugel die fr\u00f6hlich mit Fehlercodes um sich wirft.<\/p>"},{"title":"Timelapse selber machen - Die Location","link":"https:\/\/auch.cool\/posts\/2013\/06-19-timelapse-location\/","pubDate":"Wed, 19 Jun 2013 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2013\/06-19-timelapse-location\/","description":"<p>Hallo Zusammen,<\/p>\n<p>heute m\u00f6chte ich mich mal einem anderen Thema widmen. Bis jetzt gibt es hier ja nur Beitr\u00e4ge \u00fcber den Raspberry Pi, das wird sich heute \u00e4ndern.<\/p>\n<p>Da ich auch in der Fotografie Hobbym\u00e4\u00dfig unterwegs bin werde ich hier in Zukunft auch einiges \u00fcber meine Erfahrungen rund um meine Spiegelreflex posten. De Anfang soll hier mein bisher gr\u00f6\u00dftes Projekt machen. Direkt gegen\u00fcber meiner Arbeitsstelle wird seit mehreren Monaten ein neues Stahlwerk errichten. Die perfekte Gelegenheit um mal etwas mit Zeitrafferaufnahmen zu experimentieren.<\/p>"},{"title":"Raspberry Pi - AirPlay","link":"https:\/\/auch.cool\/posts\/2013\/03-30-raspberry-pi-airplay\/","pubDate":"Sat, 30 Mar 2013 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2013\/03-30-raspberry-pi-airplay\/","description":"<p>Heute wollen wir uns einmal \u00fcber die Medien-Tauglichkeit des Raspberry`s unterhalten. Die Apple-J\u00fcnger unter euch wird es gefallen - heute r\u00fcsten wir den Rasperry mit AirPlay aus.<\/p>\n<p>Alles was wir dazu brauchen: Raspberry Pi, Netzwerkkabel oder USB-Wlan Stick, 3.5 Klinke Soundsystem (f\u00fcr mehr Qualit\u00e4t bieten sich USB Systeme an), ein iDevice oder iTunes.<\/p>\n<h2 id=\"schritt-1---vorbereiten\">Schritt 1 - Vorbereiten<\/h2>\n<p>Als erstes aktualisieren wir die Paketlisten:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo apt update\n<\/span><\/span><\/code><\/pre><\/div><p>Danach richten wir den Klinke Ausgang als Standard ein. In den meisten F\u00e4llen wird der Ton ja \u00fcber den HDMI Port ausgegeben.<\/p>"},{"title":"Raspberry Pi - Fernsteuern","link":"https:\/\/auch.cool\/posts\/2013\/03-18-raspberry-pi-remote\/","pubDate":"Mon, 18 Mar 2013 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2013\/03-18-raspberry-pi-remote\/","description":"<p>Im ersten Beitrag (<a href=\"https:\/\/auch.cool\/posts\/2013\/03-17-raspberry-pi-schritte\/\" title=\"Raspberry Pi - Die ersten Schritte\">hier<\/a>) haben wir uns bereits ein Raspbian installiert.\nDa man nun auch die Gr\u00f6\u00dfe des Raspberry nutzen m\u00f6chte und ihn nicht immer an einem Monitor mit Maus und Tastatur betreiben m\u00f6chte, richten wir im folgendem Beitrag den Fernzugriff ein.<\/p>\n<p>Als ersten suchen wir f\u00fcr die Pakete nach neuen Versionen und installieren diese falls vorhanden ganz einfach per<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">apt update\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apt upgrade\n<\/span><\/span><\/code><\/pre><\/div><p>Die Willkommensnachricht (motd - Message of the Day) k\u00f6nnen wir mit einem Texteditor einfach ab\u00e4ndern. Gespeichert wird mit <code>STRG + O<\/code> und mit <code>STRG + X<\/code> geht es raus.<\/p>"},{"title":"Raspberry Pi - Die ersten Schritte","link":"https:\/\/auch.cool\/posts\/2013\/03-17-raspberry-pi-schritte\/","pubDate":"Sun, 17 Mar 2013 00:00:00 +0000","guid":"https:\/\/auch.cool\/posts\/2013\/03-17-raspberry-pi-schritte\/","description":"<p>Heute wollen wir uns einmal um die minimal Installation eines Raspbian`s auf dem Raspberry k\u00fcmmern. Dazu brauchen wir ein paar Dinge:<\/p>\n<ul>\n<li>Raspberry Pi<\/li>\n<li>SD Karte + Kartenleser<\/li>\n<li>HDMI f\u00e4higen Monitor \/ Fernseher<\/li>\n<li>USB - Tastatur<\/li>\n<li>Netzwerkkabel<\/li>\n<\/ul>\n<h2 id=\"schritt-1---die-sd-karte-vorbereiten\">Schritt 1 - Die SD Karte vorbereiten<\/h2>\n<p>Als ersten formatieren wir die SD Karte ins FAT32 Format. Danach laden wir uns den Raspbian Installier herunter (<a href=\"http:\/\/www.raspbian.org\/RaspbianInstaller\" title=\"Raspian.org\">raspbian.org<\/a>)<\/p>\n<p>Dieser Installer f\u00fchrt die ersten Schritte mit Daten von der SD Karte aus und l\u00e4d` dann die ben\u00f6tigten Daten nach. Deshalb immer auf die Internetverbindung achten.<\/p>"}]}}