<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Devlog on mrnice.dev</title>
    <link>https://www.mrnice.dev/tags/devlog/</link>
    <description>Recent content in Devlog on mrnice.dev</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 09 Oct 2020 16:09:49 +0300</lastBuildDate>
    <atom:link href="https://www.mrnice.dev/tags/devlog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Devlog #5 | Developing a webpage as an excuse to learn Rust, Yew and WebAssembly</title>
      <link>https://www.mrnice.dev/posts/dev-log-5/</link>
      <pubDate>Fri, 09 Oct 2020 16:09:49 +0300</pubDate>
      <guid>https://www.mrnice.dev/posts/dev-log-5/</guid>
      <description>&lt;hr&gt;&#xA;&lt;p&gt;&lt;em&gt;If you haven&amp;rsquo;t read the rest of the devlogs, &lt;a href=&#34;https://www.mrnice.dev/tags/devlog/&#34;&gt;you can find them here&lt;/a&gt;. You might be missing some context if you don&amp;rsquo;t.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Also, this is an old blogpost about something that wasn&amp;rsquo;t actually released as part of the project yet. Maybe one day I&amp;rsquo;ll finish it but the documentation value is important.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;After another successful workshop,&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Another Git workshop in the books, as the game server monitoring graphs can attest ✅ So fun when things work out well and people enjoy and learn.&lt;br&gt;&lt;br&gt;(But damn, I miss in-person workshops 😣) &lt;a href=&#34;https://t.co/mKYaEfwjqp&#34;&gt;pic.twitter.com/mKYaEfwjqp&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Devlog #4 | IT&#39;S ALIIIIIIVE</title>
      <link>https://www.mrnice.dev/posts/dev-log-4/</link>
      <pubDate>Sat, 04 Jul 2020 18:53:26 +0300</pubDate>
      <guid>https://www.mrnice.dev/posts/dev-log-4/</guid>
      <description>&lt;p&gt;&lt;em&gt;If you haven&amp;rsquo;t read the rest of the devlogs, &lt;a href=&#34;https://www.mrnice.dev/tags/devlog/&#34;&gt;you can find them here&lt;/a&gt;. You might be missing some context if you don&amp;rsquo;t.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“The test of the machine is the satisfaction it gives you. There isn&amp;rsquo;t any other test. If the machine produces tranquility it&amp;rsquo;s right. If it disturbs you it&amp;rsquo;s wrong until either the machine or your mind is changed.”&lt;/p&gt;&#xA;&lt;p&gt;― Robert M. Pirsig, Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values&lt;/p&gt;</description>
    </item>
    <item>
      <title>Devlog #3 | I have grown taller from walking with the trees 🌳</title>
      <link>https://www.mrnice.dev/posts/dev-log-3/</link>
      <pubDate>Thu, 28 May 2020 18:08:50 +0300</pubDate>
      <guid>https://www.mrnice.dev/posts/dev-log-3/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;“Today I have grown taller from walking with the trees.”&lt;/p&gt;&#xA;&lt;p&gt;― Karle Wilson Baker&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://www.telegraph.co.uk/content/dam/news/2016/09/08/107667228_beech-tree-NEWS_trans_NvBQzQNjv4BqplGOf-dgG3z4gg9owgQTXEmhb5tXCQRHAvHRWfzHzHk.jpg&#34; alt=&#34;tree&#34; title=&#34;tree&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Welcome back to my devlog series, where I discuss the development of &lt;code&gt;make-git-better&lt;/code&gt; version 2 - a &lt;code&gt;git&lt;/code&gt; CTF challenge. &lt;a href=&#34;https://www.mrnice.dev/posts/dev-log-2&#34;&gt;Last time&lt;/a&gt; we finished developing a script that automated generating the main &lt;code&gt;git&lt;/code&gt; server hook for the CTF.&lt;/p&gt;&#xA;&lt;p&gt;Today we&amp;rsquo;re automating another big part of the challenge: &lt;strong&gt;creating the level browser&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#why-do-we-need-a-level-browser&#34;&gt;Why do we need a level browser?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#high-level-design-level-browser-generator&#34;&gt;High-level design: level browser generator&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#tldr&#34;&gt;TL;DR&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#more-details&#34;&gt;More details&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#how-will-the-script-work&#34;&gt;How will the script work&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#implementation&#34;&gt;Implementation&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#refactoring-the-project-structure&#34;&gt;Refactoring the project structure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#parsing-the-configuration-into-a-graph&#34;&gt;Parsing the configuration into a graph&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#example&#34;&gt;Example&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#rendering-the-graph-as-an-interactive-web-ui-element&#34;&gt;Rendering the graph as an interactive web UI element&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#outputting-the-graph-to-dot&#34;&gt;Outputting the graph to DOT&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#using-the-dot-string-to-render-a-visual-interactive-graph&#34;&gt;Using the DOT string to render a visual, interactive graph&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#unit-testing&#34;&gt;Unit testing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#whats-next&#34;&gt;What&amp;rsquo;s next&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;why-do-we-need-a-level-browser&#34;&gt;Why do we need a level browser?&lt;/h2&gt;&#xA;&lt;p&gt;When solving a CTF, I want to make sure I keep the fun/frustration factors pretty balanced. To that end, I want to communicate some things to the player, such as:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Devlog #2 | Automation applied to an efficient operation will magnify efficiency</title>
      <link>https://www.mrnice.dev/posts/dev-log-2/</link>
      <pubDate>Tue, 12 May 2020 20:20:31 +0300</pubDate>
      <guid>https://www.mrnice.dev/posts/dev-log-2/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.mrnice.dev/posts/dev-log-1&#34;&gt;Last time&lt;/a&gt; we talked a lot about the HOW. This post is about realizing some parts of that plan into a real working PoC.&lt;/p&gt;&#xA;&lt;p&gt;It only took us &lt;strong&gt;three&lt;/strong&gt; development logs to start writing code. So fast! &lt;em&gt;/s&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/xT39CVCn6Eq8Ve9FZu/giphy.gif&#34; alt=&#34;gotta go fast&#34;&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-first-step-was-doing-it-manually-once-&#34;&gt;The first step was doing it manually, once 👨🏽‍🏭⚒&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#writing-a-pre-receive-hook&#34;&gt;Writing a pre-receive hook&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#looking-at-the-push-contents-during-the-pre-receive-execution&#34;&gt;Looking at the push contents during the pre-receive execution&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#manually-performing-all-the-actions-to-deploy-a-game-server&#34;&gt;Manually performing all the actions to deploy a game server&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#starting-to-automate-&#34;&gt;Starting to automate 🤖&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#generating-the-pre-receive-hook-automatically-&#34;&gt;Generating the &lt;code&gt;pre-receive&lt;/code&gt; hook automatically 🤖&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#i-guess-im-a-rustacean-now-&#34;&gt;I guess I&amp;rsquo;m a Rustacean now 🦀&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#requirements-what-does-the-script-need-to-do&#34;&gt;Requirements: What does the script need to do&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#implementation-breaking-the-problem-into-smaller-problems-and-solving-them-one-by-one&#34;&gt;Implementation: Breaking the problem into smaller problems, and solving them one by one&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#parsing-game-configtoml&#34;&gt;Parsing &lt;code&gt;game-config.toml&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#replacing-level-titles-with-their-branches-&#34;&gt;Replacing level titles with their branches 🌿&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#output-the-result-into-a-working-pre-receive-hook-file&#34;&gt;Output the result into a working &lt;code&gt;pre-receive&lt;/code&gt; hook file&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#setting-up-the-game-inside-a-docker-container&#34;&gt;Setting up the game inside a Docker container&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#requirements-what-should-the-dockerfile-do&#34;&gt;Requirements: What should the Dockerfile do&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#implementation-what-does-the-dockerfile-actually-do&#34;&gt;Implementation: What does the Dockerfile actually do&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-can-be-improved&#34;&gt;What can be improved?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#whats-next&#34;&gt;What&amp;rsquo;s next?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;em&gt;Side note&lt;/em&gt;: This time I&amp;rsquo;ve been working with my little brother &lt;a href=&#34;https://www.bnice.xyz&#34;&gt;Barak&lt;/a&gt;. His invaluable help (and willingness to work with me) is what will probably tip the scales in favor of this project actually making it to the finish line.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Devlog #1 | The best-laid plans of mice and men</title>
      <link>https://www.mrnice.dev/posts/dev-log-1/</link>
      <pubDate>Sat, 02 May 2020 18:02:38 +0300</pubDate>
      <guid>https://www.mrnice.dev/posts/dev-log-1/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.mrnice.dev/posts/dev-log-0&#34;&gt;Last time&lt;/a&gt; we talked a lot about the WHY. This post is all about the HOW.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/3o7aD1fN85p9F0uuIM/giphy.gif&#34; alt=&#34;Let&amp;rsquo;s get down to business.&#34;&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#if-a-task-is-done-and-no-one-marks-it-in-a-ticketing-system-does-it-actually-work&#34;&gt;If a task is done and no one marks it in a ticketing system, does it actually work?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#lets-do-high-level-requirements-first&#34;&gt;Let&amp;rsquo;s do high-level requirements first&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#heres-how-a-user-will-start-playing-the-ctf&#34;&gt;Here&amp;rsquo;s how a user will start playing the CTF&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#heres-the-general-idea-for-how-a-user-plays-a-single-level&#34;&gt;Here&amp;rsquo;s the general idea for how a user plays a single level&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#hld&#34;&gt;HLD&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#planning-the-level-database&#34;&gt;Planning the level database&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-defines-level&#34;&gt;What defines &amp;ldquo;Level&amp;rdquo;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#given-this-definition-of-level-whats-the-structure-of-the-db&#34;&gt;Given this definition of &amp;ldquo;Level&amp;rdquo;, what&amp;rsquo;s the structure of the DB&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#level-db-folder-structure&#34;&gt;Level DB folder structure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#envisioning-the-project-structure&#34;&gt;Envisioning the project structure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#back-on-planet-earth-&#34;&gt;Back on planet earth&amp;hellip; 🌍&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#next-time&#34;&gt;Next time&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;if-a-task-is-done-and-no-one-marks-it-in-a-ticketing-system-does-it-actually-work&#34;&gt;If a task is done and no one marks it in a ticketing system, does it actually work?&lt;/h2&gt;&#xA;&lt;p&gt;Like I said last time, the first task was to start dumping tasks into a board; &lt;a href=&#34;https://github.com/ShayNehmad/make-git-better-2/projects/1&#34;&gt;lo and behold&lt;/a&gt;. It&amp;rsquo;s still rather empty, but at least there&amp;rsquo;s something tangible to look at.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Devlog #0 | Thoughts about doing a devlog (but not an actual devlog, that would be silly)</title>
      <link>https://www.mrnice.dev/posts/dev-log-0/</link>
      <pubDate>Sat, 11 Apr 2020 14:00:45 +0300</pubDate>
      <guid>https://www.mrnice.dev/posts/dev-log-0/</guid>
      <description>&lt;h2 id=&#34;a-devlog&#34;&gt;A Devlog?&lt;/h2&gt;&#xA;&lt;p&gt;Yes.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#a-devlog&#34;&gt;A Devlog?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#why&#34;&gt;Why?!&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#im-trying-to-save-a-side-project-from-dying&#34;&gt;I&amp;rsquo;m trying to save a side project from dying&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#im-inspired-by-someone-else&#34;&gt;I&amp;rsquo;m inspired by someone else&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#tom-randell-and-yahtzee-croshaw&#34;&gt;Tom Randell and Yahtzee Croshaw&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#uncle-bob&#34;&gt;Uncle Bob&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#seems-like-a-fun-thing-to-try&#34;&gt;Seems like a fun thing to try&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-now&#34;&gt;What now?&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-project&#34;&gt;The project&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-devlog&#34;&gt;The devlog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;Why?!&lt;/h2&gt;&#xA;&lt;h3 id=&#34;im-trying-to-save-a-side-project-from-dying&#34;&gt;I&amp;rsquo;m trying to save a side project from dying&lt;/h3&gt;&#xA;&lt;p&gt;I have a cool side project called &lt;a href=&#34;https://www.mrnice.dev/make-git-better-ctf&#34;&gt;make-git-better&lt;/a&gt;. It&amp;rsquo;s a CTF-type challenge which is meant to teach you &lt;code&gt;git&lt;/code&gt;. Right now, the project is teetering in the twilight zone of side projects. On one hand - I like it and it&amp;rsquo;s moderately successful (more than 30 people played it). On the other hand, I whipped up the first version quickly and with pretty much reckless abandon.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
