-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.xml
More file actions
157 lines (152 loc) · 30.6 KB
/
Copy pathindex.xml
File metadata and controls
157 lines (152 loc) · 30.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>mrnice.dev</title>
<link>https://www.mrnice.dev/</link>
<description>Recent content on mrnice.dev</description>
<generator>Hugo</generator>
<language>en-us</language>
<lastBuildDate>Fri, 24 Jul 2026 15:10:11 -0700</lastBuildDate>
<atom:link href="https://www.mrnice.dev/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>🐈 TheCoreMan/cat-knip</title>
<link>https://www.mrnice.dev/posts/cat-knip/</link>
<pubDate>Fri, 24 Jul 2026 15:10:11 -0700</pubDate>
<guid>https://www.mrnice.dev/posts/cat-knip/</guid>
<description><p>I published my first <code>npm</code> package! It&rsquo;s called <a href="https://www.npmjs.com/package/cat-knip"><code>cat-knip</code></a>. It detects unused exports in NestJS applications by parsing the dependency graph. To use it:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ts" data-lang="ts"><span class="line"><span class="cl"><span class="kr">import</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">expectNoUnusedExports</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="nx">getModuleRefWithSnapshot</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span> <span class="kr">from</span> <span class="s1">&#39;cat-knip/testing&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kr">import</span> <span class="p">{</span> <span class="nx">AppModule</span> <span class="p">}</span> <span class="kr">from</span> <span class="s1">&#39;../src/app.module&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nx">it</span><span class="p">(</span><span class="s1">&#39;has no unused module exports&#39;</span><span class="p">,</span> <span class="kr">async</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="k">await</span> <span class="kr">using</span> <span class="nx">moduleRef</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">getModuleRefWithSnapshot</span><span class="p">({</span>
</span></span><span class="line"><span class="cl"> <span class="nx">imports</span><span class="o">:</span> <span class="p">[</span><span class="nx">AppModule</span><span class="p">],</span>
</span></span><span class="line"><span class="cl"> <span class="p">});</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> <span class="nx">expectNoUnusedExports</span><span class="p">(</span><span class="nx">moduleRef</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">});</span>
</span></span></code></pre></div><p>Should be simple to add - please use it, ⭐ it, open issues, etc.</p>
<p><img src="https://raw.githubusercontent.com/TheCoreMan/cat-knip/main/docs/cat-knip-logo.png" alt=""></p>
<h2 id="where-did-this-come-from">Where did this come from</h2>
<p>While commenting on a PR, I noticed that one of my teammates left an unused export in our NestJS app. We were both surprised that Knip, or NestJS itself, etc. didn&rsquo;t catch it. So I vibe-coded this library that you can drop into your NestJS tests.</p></description>
</item>
<item>
<title>At the Gates of Slop</title>
<link>https://www.mrnice.dev/posts/at-the-gates-of-slop/</link>
<pubDate>Tue, 21 Jul 2026 00:12:13 -0700</pubDate>
<guid>https://www.mrnice.dev/posts/at-the-gates-of-slop/</guid>
<description><p>The title is a riff on &ldquo;At The Gates Of Sleep&rdquo;, a banger Melodic Death Metal song by Insomnium. I was listening to it as the idea for this post came to my mind, and the pun was too good to give up. Give it a listen:</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/2Ssfhj8WDP0?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<p>My position is simple: LLMs are excellent when they amplify your own work, tolerable when they automate short-lived transactional work, and corrosive when they are used to push unreviewed cognitive labor onto people who trust you. Read on to see how I got here, and whether you&rsquo;ll land differently.</p></description>
</item>
<item>
<title>SGF Dev Night: Git internals + CTF 🚩</title>
<link>https://www.mrnice.dev/posts/sgf-dev-night-git-ctf/</link>
<pubDate>Wed, 03 Jun 2026 21:01:56 -0700</pubDate>
<guid>https://www.mrnice.dev/posts/sgf-dev-night-git-ctf/</guid>
<description></description>
</item>
<item>
<title>Some software will become more fragile - not mine</title>
<link>https://www.mrnice.dev/posts/software-will-get-more-fragile-over-time/</link>
<pubDate>Sun, 22 Mar 2026 22:43:56 -0700</pubDate>
<guid>https://www.mrnice.dev/posts/software-will-get-more-fragile-over-time/</guid>
<description><p><img src="https://brainmade.org/white-logo.svg" alt="Brainmade mark"></p>
<p>This blogpost is mostly a rant.</p>
<p>In a perfect opening note to this blog, as I was sitting down to write it, I was faced with this message in my terminal, right after typing the <code>hugo new</code> command:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">❯ hugo new posts/software-will-get-more-fragile-over-time.md
</span></span><span class="line"><span class="cl">WARN deprecated: module.mounts.excludeFiles was deprecated in Hugo v0.153.0 and will be removed in a future release. Replaced by the simpler <span class="s1">&#39;files&#39;</span> setting, see https://gohugo.io/configuration/module/#files
</span></span></code></pre></div><p>Another warning I&rsquo;ll have to fix. Throw it onto the pile. OK, let&rsquo;s run the Hugo server, then?</p></description>
</item>
<item>
<title>It's the Circle of (NestJS) Life - NestJS Lifecycle breakdown</title>
<link>https://www.mrnice.dev/posts/nestjs-lifecycle/</link>
<pubDate>Thu, 06 Mar 2025 07:14:57 -0800</pubDate>
<guid>https://www.mrnice.dev/posts/nestjs-lifecycle/</guid>
<description><p>First blogpost about stuff I&rsquo;ve learned since I (Shay Nehmad) started working at
<a href="https://www.opsinsecurity.com/">Opsin Security</a>!</p>
<p><img src="https://www.mrnice.dev/images/opsin-logo.svg" alt="opsin-logo" title="Opsin Security logo"></p>
<p>Check out this <a href="https://www.linkedin.com/posts/shay-nehmad_when-a-chance-to-rejoin-forces-with-oz-wasserman-activity-7303131853102747648-Qbbc?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAABhUF3EBK_5T2eMDpXec1Gj5D2zDHhJ62SY">post for more
details</a>.</p>
<h2 id="nestjs-lifecycle-issues">NestJS lifecycle issues</h2>
<p>Recently at work I filed a new ticket on Linear related to NestJS lifecycle. It
was a followup on a ramble on a Slack thread:</p>
<p><img src="https://www.mrnice.dev/images/nestjs/slack.png" alt="alt text"></p>
<p>When a certain shared <del>module</del> provider <em>started</em> (vagueness on purpose), even though I
wanted it to load only once, it was being loaded multiple times. In this
case it was annoying because it was the database module - and it ran migrations
multiple times each load. Here&rsquo;s how it looked in the logs (simplified):</p></description>
</item>
<item>
<title>🌘 AI Roundtables @lunar.dev</title>
<link>https://www.mrnice.dev/posts/lunar-dev-ai-roundtables/</link>
<pubDate>Fri, 10 Jan 2025 22:19:17 +0200</pubDate>
<guid>https://www.mrnice.dev/posts/lunar-dev-ai-roundtables/</guid>
<description><h2 id="thank-you-lunar-team">Thank You, Lunar Team</h2>
<p>Before diving into all the AI insights: thanks Eyal Solomon (aka <strong>Luli</strong>, CEO)
and Roy Gabbay (aka <strong>Gabbay</strong>, CTO), and <strong>Rotem</strong> (VP R&amp;D),
from <a href="https://www.lunar.dev/">lunar.dev</a> for arranging these meetups and letting
me be a part of what y&rsquo;all are building. Leading the charge on AI thought
leadership is hard with so much BS in the air.</p>
<p>I definitely learned a ton, met cool folks from the industry, and even had fun.
So thanks! 🙏</p></description>
</item>
<item>
<title>🦪 5 Shell Tricks, because why not</title>
<link>https://www.mrnice.dev/posts/shell-tricks-bag/</link>
<pubDate>Sat, 26 Oct 2024 21:28:15 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/shell-tricks-bag/</guid>
<description><p>No time, let&rsquo;s just go. This is <code>zsh</code> on MacOS.</p>
<h2 id="copy-current-dir-name">Copy current dir name</h2>
<blockquote>
<p>Useful for when you copy a pyproject from another directory and want to rename the project to the current directory</p>
</blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">basename <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span> <span class="p">|</span> pbcopy
</span></span></code></pre></div><h2 id="pomodoro-">Pomodoro 🍅</h2>
<p>added two new functions to my .zshrc file: <code>work</code> and <code>rest</code>, which give me a
built-in #pomodoro in the terminal. From <a href="https://patloeber.com/pomodoro-app-cli-macos/">Simple CLI Pomodoro timer for macOS
by Patrick Loeber</a>.
This also taught me a nice library which might be useful for work: <a href="https://github.com/julienXX/terminal-notifier">terminal-notifier</a>.</p></description>
</item>
<item>
<title>GopherCon Israel 2024</title>
<link>https://www.mrnice.dev/posts/gophercon-israel-2024/</link>
<pubDate>Mon, 09 Sep 2024 22:29:59 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/gophercon-israel-2024/</guid>
<description><p>GopherCon Israel 2024! What a fun day.</p>
<p><img src="images/01lobby.jpg" alt="Lobby" title="Lobby"></p>
<p>Started by seeing lots of familiar faces!
<a href="https://www.linkedin.com/in/mikitebeka/">Miki Tebeka</a>,
<a href="https://www.yardenlaif.com/">Yarden Laifenfeld</a>,
<a href="https://reallyliri.com/">Liri Sokol</a>,
<a href="https://www.linkedin.com/in/guy-brandwine-7316828/">Guy Brandwine</a>,
<a href="https://www.linkedin.com/in/itamark/">Itamar Knafo</a>,
<a href="https://www.linkedin.com/in/barzik/">Ran Bar-Zik</a> and more. It&rsquo;s a lot of fun
knowing people and saying hi to everyone, and meeting new people, too.</p>
<p><img src="images/03selfie.jpg" alt="Selfie" title="Selfie"></p>
<p>I arrived there and met some people from Orca Security (where I work right now).
These are my raw notes from the event, not too much editing, mostly for my peeps
from Orca&rsquo;s Golang Guild. 🐋</p></description>
</item>
<item>
<title>Book report: The Ideal Team Player</title>
<link>https://www.mrnice.dev/posts/the-ideal-team-player/</link>
<pubDate>Thu, 08 Aug 2024 21:48:01 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/the-ideal-team-player/</guid>
<description><ul>
<li><a href="#tldr">TL;DR</a>
<ul>
<li><a href="#the-three-virtues">The three virtues</a>
<ul>
<li><a href="#humility"><strong>Humility</strong></a></li>
<li><a href="#hunger"><strong>Hunger</strong></a></li>
<li><a href="#smart"><strong>Smart</strong></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#wheres-the-proof">Where&rsquo;s the proof?</a>
<ul>
<li><a href="#compared-to">Compared to</a>
<ul>
<li><a href="#turn-the-ship-around">Turn the Ship Around!</a></li>
<li><a href="#the-goal">The Goal</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#the-story">The story</a>
<ul>
<li><a href="#hiring--promoting">Hiring &amp; promoting</a></li>
<li><a href="#employee-development">Employee Development</a></li>
<li><a href="#trusted-advisors">Trusted Advisors</a></li>
</ul>
</li>
<li><a href="#what-about-performance">What about performance?</a></li>
<li><a href="#dollar-store-psychology">Dollar-store psychology</a></li>
<li><a href="#conclusion">Conclusion</a>
<ul>
<li><a href="#improve-myself">Improve myself</a></li>
<li><a href="#improve-my-team">Improve my team</a></li>
</ul>
</li>
</ul>
<p>Recently I&rsquo;ve read <a href="https://www.tablegroup.com/product/ideal-team-player/">The Ideal Team Player</a>
by Patrick Lencioni following <a href="https://www.linkedin.com/in/yoav-alon/">Yoav Alon</a>&rsquo;s recommendation.
I&rsquo;ve read it on a train: best way to read books. You can&rsquo;t do anything else, and
your fellow passengers think you&rsquo;re smart. This only works when they don&rsquo;t watch
videos on their phone with the sound on 💢😡.</p></description>
</item>
<item>
<title>DevProd Adventure</title>
<link>https://www.mrnice.dev/posts/devex-adventure/</link>
<pubDate>Thu, 18 Jul 2024 03:24:45 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/devex-adventure/</guid>
<description><h2 id="context">Context</h2>
<p>This is a presentation I gave at Angular Ventures in 2024. It&rsquo;s about the new-ish
and emerging concept of Developer Experience, and what I&rsquo;ve learned about it
over the last year of doing it.</p>
<p>It&rsquo;s a Reveal.js presentation, so you can view it in your browser on Desktop
only. Use the arrow keys and <code>Esc</code> to navigate, and press <code>s</code> to see the speaker
notes.</p>
<h2 id="presentation">Presentation</h2>
<!-- markdownlint-disable -->
<div class="shay-presentation-container" style="width: 80vw; height: 80vh; position: relative; left: -25vw">
<!--- Add the https://fonts.google.com/specimen/Silkscreen font file -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Silkscreen&display=swap" />
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/dracula.css" id="theme">
<link rel="stylesheet" href="plugin/highlight/monokai.css">
 <div class="reveal">
			<div class="slides">
 <section data-auto-animate data-background-image="images/background.png" data-background-opacity="0.1">
 <section data-auto-animate>
 <h1 class="r-fit-text">Developer Experience</h1>
 <h4>The adventure begins...</h4>
 <p>Shay Nehmad for Angular Ventures, 2024</p></description>
</item>
<item>
<title>בנינו כלי פנימי לצוותי הפיתוח שלנו, והלא ייאמן קרה: הם היו מרוצים</title>
<link>https://www.mrnice.dev/posts/how-to-build-a-command-line-aka-cli-app-with-go/</link>
<pubDate>Tue, 18 Jun 2024 09:48:22 +0200</pubDate>
<guid>https://www.mrnice.dev/posts/how-to-build-a-command-line-aka-cli-app-with-go/</guid>
<description></description>
</item>
<item>
<title>Added a Now Page to my Hugo Blog</title>
<link>https://www.mrnice.dev/posts/added-a-now-page/</link>
<pubDate>Wed, 22 May 2024 18:34:02 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/added-a-now-page/</guid>
<description><p><a href="https://www.mrnice.dev/now"><code>/now</code></a>.</p>
<p><img src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExNjJwa3l2d3oxNjBuYzliYmxiN2VmeGc0dDUzcHA2am11emd2YWUyNCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3HB4P2kNkevUGLpPSb/giphy.gif" alt="Right now?"></p>
<h2 id="whats-a-now-page">What&rsquo;s a now page?</h2>
<p>Well, the person behind it, Derek Sivers, <a href="https://sive.rs/now2">explains it best on his blog
</a>.</p>
<h2 id="how-to-add-a-now-page-for-hugo">How to add a now page for Hugo</h2>
<p>Derek&rsquo;s explanation doesn&rsquo;t include how to do it with
Hugo! Since some people might be interested in that, and it&rsquo;s not 100% the
same formula as adding a new post, here&rsquo;s how:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">hugo new now.md
</span></span></code></pre></div><p>&hellip;Wait, that&rsquo;s it 😅. Just don&rsquo;t write the <code>posts/</code> you normally do when
running <code>hugo new</code>. This <em>should</em> add a page under <code>/now</code>. I suggest adding
a link to it <em>somewhere</em> on your site for discoverability - I added mine to the
<code>/about</code> page.</p></description>
</item>
<item>
<title>Shay Nehmad's Now page</title>
<link>https://www.mrnice.dev/now/</link>
<pubDate>Wed, 22 May 2024 17:42:55 +0300</pubDate>
<guid>https://www.mrnice.dev/now/</guid>
<description>What Shay&rsquo;s up to now.</description>
</item>
<item>
<title>Quick script to refresh a Hugo Post Date</title>
<link>https://www.mrnice.dev/posts/refresh-hugo-post-date/</link>
<pubDate>Sat, 27 Apr 2024 12:10:52 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/refresh-hugo-post-date/</guid>
<description><p>I tend to go back to old, unpublished posts every now and restart my work on
them. They&rsquo;re just resting, hiding behind the <code>-D</code> flag of <code>hugo server</code>.</p>
<p>But when I want to publish said post, I want the date to be the current date,
not the creation date. So I wrote a script to update the date of a post to the
current date.</p>
<p>Here&rsquo;s the script in action:</p></description>
</item>
<item>
<title>Adding shorts to the blog</title>
<link>https://www.mrnice.dev/posts/shorts/</link>
<pubDate>Tue, 23 Apr 2024 19:31:13 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/shorts/</guid>
<description><p>So, I&rsquo;m sick. Strep. Missed the Seder, as well.</p>
<p><img src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExNjhwdDdlZWtzcWx6Y3V0Z3JocnFoOHJmOWFlb3J4em0yNW9ucGZmaiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/SCaWhPSWvBxZK/giphy.gif" alt="Skeletor is sick"></p>
<p>Taking a few days off to recover, time to play around with the blog.</p>
<h2 id="why-add-shorts-if-you-already-have-posts">Why add shorts if you already have posts?</h2>
<p>Shorts are more than a tweet, less than a post.</p>
<blockquote>
<p>Stream of consciousness notes that don&rsquo;t merit a more dedicated write-up.</p>
</blockquote>
<p>Inspired by <a href="https://brandur.org/fragments">Brandur Leach&rsquo;s fragments</a>
in his beautiful corner of the web.</p>
<p>My hope is that this short-form, more than a tweet, less than a post format will
help me publish more often. And as I really try to stay off Twitter and other
social media as much as possible, this should be a way to post more often
without worrying too much about quality.</p></description>
</item>
<item>
<title>🎧🍏 AirPods (well, any bluetooth) alias for MacOS</title>
<link>https://www.mrnice.dev/posts/airpods-alias/</link>
<pubDate>Tue, 23 Apr 2024 18:11:13 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/airpods-alias/</guid>
<description><p>So, one early morning, and I’m just getting my coffee. For fun, let’s automate
connecting to bluetooth AirPods without touching the mouse. Quick Google
brings up <a href="https://github.com/toy/blueutil"><code>blueutil</code></a>, and a tiny bit of <code>jq</code>
was all the glue needed:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">brew install blueutil
</span></span><span class="line"><span class="cl">blueutil --connect <span class="k">$(</span>blueutil --paired --format json-pretty <span class="p">|</span> jq -r <span class="s2">&#34;.[] | select(.name | contains(\&#34;Shay’s AirPods Pro\&#34;)) | .address)
</span></span></span></code></pre></div><p>The first time you run this, you&rsquo;ll need to give the terminal permission to
get access to bluetooth:</p></description>
</item>
<item>
<title>A few Go tools for production-level developer applications (Orca Meetup)</title>
<link>https://www.mrnice.dev/posts/a-few-go-tools-for-production-level-developer-applications/</link>
<pubDate>Sat, 23 Mar 2024 23:22:44 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/a-few-go-tools-for-production-level-developer-applications/</guid>
<description></description>
</item>
<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><h2 id="how-did-we-get-here">How did we get here</h2>
<p>Back when I left <a href="https://recolabs.ai/">Reco</a>, my parting gift to everyone at
the company was books 📚. At the time, these were books I haven&rsquo;t read, but were
recommended by
<a href="https://www.goodreads.com/list/show/142078.Rands_Leadership_Books_Reading_List">the interwebz</a>.
The idea was to stay in touch with the team by gifting them good books and
loaning them from time to time. That&rsquo;s how I wrote <a href="../turn-the-ship-around-a-vp-rnd-summary">a book report about
&ldquo;Turn the Ship Around&rdquo;</a>, for example.</p>
<p>As part of my work at <a href="https://orca.security/">Orca Security</a>, I&rsquo;ve been
conducting a weekly book club, where we read
<a href="https://dataintensive.net/">Designing Data-Intensive Applications</a> by Martin
Kleppmann. Well, weekly-<em>ish</em>. You know how schedules are. And it was fun!</p></description>
</item>
<item>
<title>Checking out Advent of Cyber 2023</title>
<link>https://www.mrnice.dev/posts/advent-of-cyber-2023/</link>
<pubDate>Sat, 02 Dec 2023 22:11:08 +0200</pubDate>
<guid>https://www.mrnice.dev/posts/advent-of-cyber-2023/</guid>
<description><p>To keep this spoiler-free, I&rsquo;ll be redacting the flag. Whenever you see
<code>{{ .flag }}</code> in the text, it means that I&rsquo;ve redacted the flag.</p>
<blockquote>
<p>Yes, this is go&rsquo;s text/template syntax. It&rsquo;s the best templating language on
the planet.</p>
</blockquote>
<h2 id="getting-started">Getting started</h2>
<p>The signup/login UX leaves something to be desired. You start off on the advent
page, then sign up, and after the initial signup you are not redirected to the
advent. Need to go look for it again. Then it&rsquo;s &ldquo;join room&rdquo;, whatever that means.
Anyways, not a big deal, but I thought it&rsquo;s a bit annoying.</p></description>
</item>
<item>
<title>How to add a status page to your Hugo blog</title>
<link>https://www.mrnice.dev/posts/statuspage-on-hugo/</link>
<pubDate>Sun, 17 Sep 2023 22:58:53 +0300</pubDate>
<guid>https://www.mrnice.dev/posts/statuspage-on-hugo/</guid>
<description><p>Shortest guide possible, let&rsquo;s go ⚡️</p>
<h2 id="setting-up-a-status-page">Setting up a status page</h2>
<p>I recommend <a href="https://onlineornot.com/">onlineornot.com</a>.</p>
<ol>
<li>Take your blog&rsquo;s URL. For me, that&rsquo;s
<a href="https://mrnice.dev"><code>https://mrnice.dev</code></a>.</li>
<li>Create a new <a href="https://onlineornot.com/app/checks">check</a> on that URL. Pick
&ldquo;Monitor a website&rdquo;.</li>
</ol>
<p><img src="https://www.mrnice.dev/images/statuspage/onlineornot1.png" alt="&ldquo;New check&rdquo;" title="New check"></p>
<ol>
<li>Create a <a href="https://onlineornot.com/app/status-pages">status page</a>, and choose
your subdomain. I went with <code>mrnicedev</code> ~&gt; you&rsquo;ll end up with a URL like
<a href="https://mrnicedev.onlineornot.com"><code>https://mrnicedev.onlineornot.com</code></a>.</li>
</ol>
<p>You should get something that looks like this:</p>
<p><img src="https://www.mrnice.dev/images/statuspage/statuspage.png" alt="onlineornot" title="onlineornot"></p>
<h2 id="adding-the-status-page-link-to-your-blog">Adding the status page link to your blog</h2>
<p>We&rsquo;ll do it from the <code>config.toml</code> file (so it&rsquo;s easy to change) and using a
<code>with</code> template statement (so if it&rsquo;s not set, it won&rsquo;t show up).</p></description>
</item>
</channel>
</rss>