<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Algorithms on mrnice.dev</title>
    <link>https://www.mrnice.dev/tags/algorithms/</link>
    <description>Recent content in Algorithms on mrnice.dev</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 03 Mar 2024 02:29:20 +0200</lastBuildDate>
    <atom:link href="https://www.mrnice.dev/tags/algorithms/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Designing Data-Intensive Applications: Flashcards for a Book Club</title>
      <link>https://www.mrnice.dev/posts/designing-data-intensive-applications-bookclub-flashcards/</link>
      <pubDate>Sun, 03 Mar 2024 02:29:20 +0200</pubDate>
      <guid>https://www.mrnice.dev/posts/designing-data-intensive-applications-bookclub-flashcards/</guid>
      <description>&lt;h2 id=&#34;how-did-we-get-here&#34;&gt;How did we get here&lt;/h2&gt;&#xA;&lt;p&gt;Back when I left &lt;a href=&#34;https://recolabs.ai/&#34;&gt;Reco&lt;/a&gt;, my parting gift to everyone at&#xA;the company was books 📚. At the time, these were books I haven&amp;rsquo;t read, but were&#xA;recommended by&#xA;&lt;a href=&#34;https://www.goodreads.com/list/show/142078.Rands_Leadership_Books_Reading_List&#34;&gt;the interwebz&lt;/a&gt;.&#xA;The idea was to stay in touch with the team by gifting them good books and&#xA;loaning them from time to time. That&amp;rsquo;s how I wrote &lt;a href=&#34;../turn-the-ship-around-a-vp-rnd-summary&#34;&gt;a book report about&#xA;&amp;ldquo;Turn the Ship Around&amp;rdquo;&lt;/a&gt;, for example.&lt;/p&gt;&#xA;&lt;p&gt;As part of my work at &lt;a href=&#34;https://orca.security/&#34;&gt;Orca Security&lt;/a&gt;, I&amp;rsquo;ve been&#xA;conducting a weekly book club, where we read&#xA;&lt;a href=&#34;https://dataintensive.net/&#34;&gt;Designing Data-Intensive Applications&lt;/a&gt; by Martin&#xA;Kleppmann. Well, weekly-&lt;em&gt;ish&lt;/em&gt;. You know how schedules are. And it was fun!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Foray Into Clojure, Part 2: Polymorphism, Recursion, Debugging, and Sesame Cake | 日々是好日</title>
      <link>https://www.mrnice.dev/posts/first-foray-into-clojure-part-2/</link>
      <pubDate>Sun, 01 Aug 2021 08:32:00 +0300</pubDate>
      <guid>https://www.mrnice.dev/posts/first-foray-into-clojure-part-2/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;日々是好日&amp;rdquo; (&lt;em&gt;Nichinichi kore kōnichi&lt;/em&gt;) means &amp;ldquo;Every day is a good day&amp;rdquo;&#xA;or &amp;ldquo;Try to spend every day meaningfully&amp;rdquo;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This blog post continues directly from &lt;a href=&#34;../first-foray-into-clojure-part-1&#34;&gt;the previous&#xA;one&lt;/a&gt;, so I&amp;rsquo;ll skip the intros. Go read that&#xA;one for context. Let&amp;rsquo;s just jump into it!&lt;/p&gt;&#xA;&lt;!-- markdown-toc start - Don&#39;t edit this section. Run M-x markdown-toc-refresh-toc --&gt;&#xA;&lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#runtime-polymorphism&#34;&gt;Runtime Polymorphism&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#using-multi-arity-functions&#34;&gt;Using multi-arity functions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#value-based-polymorphism-with-defmulti&#34;&gt;Value-based polymorphism with &lt;code&gt;defmulti&lt;/code&gt;&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#comparison-to-other-languages&#34;&gt;Comparison to other languages&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#breaking-down-what-the-code-means&#34;&gt;Breaking down what the code means&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#open-to-extension&#34;&gt;Open to extension&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;#lazy-sequences&#34;&gt;Lazy Sequences&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#iterate-is-also-zero-based&#34;&gt;&lt;code&gt;iterate&lt;/code&gt; is also zero-based&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#standing-on-the-shoulders-of-giants---using-identity&#34;&gt;Standing on the shoulders of giants - using &lt;code&gt;identity&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#sequence-comprehensions&#34;&gt;Sequence Comprehensions&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#when-and-other-predefined-keyword-modifiers&#34;&gt;&lt;code&gt;:when&lt;/code&gt; and other predefined keyword modifiers&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#creating-functions&#34;&gt;Creating Functions&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-let-special-form&#34;&gt;The &lt;code&gt;let&lt;/code&gt; special form&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#function-composition-with-comp&#34;&gt;Function composition with &lt;code&gt;comp&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#recursion&#34;&gt;Recursion&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#use-comment&#34;&gt;Use &lt;code&gt;comment&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#loop-finally-with-no-for-thats-what-i-needed&#34;&gt;&lt;code&gt;loop&lt;/code&gt;?! Finally, with no &lt;code&gt;for&lt;/code&gt;, that&amp;rsquo;s what I needed&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#clojure-debugging&#34;&gt;Clojure Debugging&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;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- markdown-toc end --&gt;&#xA;&lt;h2 id=&#34;runtime-polymorphism&#34;&gt;Runtime Polymorphism&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;One day someone asked Master Yunmen, “What is the meaning of the teaching?”&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>
  </channel>
</rss>
