<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>5min ninja</title><link>https://5min.ninja/</link><description>Recent content on 5min ninja</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 15 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://5min.ninja/index.xml" rel="self" type="application/rss+xml"/><item><title>One does not simply prototype</title><link>https://5min.ninja/blog/what-is-this-prototyping/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/what-is-this-prototyping/</guid><description>&lt;p>I wrote about &lt;a href="../software-engineering-hermeneutics">resolving ambiguities&lt;/a>, based on a situation involving
misunderstandings about prototypes. After encountering several discussions about
them, as if they were based solely on opinions and everyone had a different one,
I started collating a list of how they are referred to.&lt;/p>
&lt;p>As I try to write about things that work in my experience, I feel compelled to
offer my prototyping methods before the list. I have worked mostly with desktop
software that is niche and domain specific. Thus, my preferred way of evaluating
a design is to create a crude but presentable version as soon as possible and
put it in front of a potential customer when that makes sense.&lt;/p></description></item><item><title>Sifting for unambiguity</title><link>https://5min.ninja/blog/software-engineering-hermeneutics/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/software-engineering-hermeneutics/</guid><description>&lt;p>Drill down on semantics and rhetoric, as software development is not an exact
science like physics. Find out what the context and meaning behind the group
talk between the stakeholders is based on. Do they understand the terms the same
way? Are we aligned with today&amp;rsquo;s priorities? What are we trying to do and why?
Breaking down ambiguity is our main game and moves the needle in myriad ways.&lt;/p>
&lt;p>Words and concepts can have surprising interpretations despite everyone in the
group being assured they share a similar understanding. Often, teams think the
context is &amp;ldquo;obvious&amp;rdquo; or that they are dealing with axiomatic concepts. However,
when asked by 5 random software engineers what agile means, you will get 5
different answers based on their background.&lt;/p></description></item><item><title>By walking, you’d already be there</title><link>https://5min.ninja/blog/should-have-walked/</link><pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/should-have-walked/</guid><description>&lt;p>&lt;img src="https://imgs.xkcd.com/comics/the_general_problem.png" alt="XKCD comic strip in which person A asks to pass the salt and person B spends 20 minutes optimizing the process">
The general problem by &lt;a href="https://xkcd.com/974/">xkcd&lt;/a>&lt;/p>
&lt;p>Getting started with a software product or project is messier and stubbornly
more manual than I would like to think. Once started, the lure of sirens
awakens: &amp;ldquo;how about generalizing this&amp;rdquo;, &amp;ldquo;refactoring that&amp;rdquo;, &amp;ldquo;come here and
optimize with us!&amp;rdquo;. Then the complexity of the project rises like Gartner&amp;rsquo;s hype
cycle on its first curve, and the progress grinds to a halt.&lt;/p></description></item><item><title>Does it need to be said?</title><link>https://5min.ninja/blog/does-it-need-to-be-said/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/does-it-need-to-be-said/</guid><description>&lt;p>One morning we had a meeting with about 10 people from our start-up. Pitching in
ideas, waving hands, connecting the dots - I thought I was on fire amid my
soliloquy - riding my train of thought to the far horizon like a legendary
cowboy of true innovation. Albeit having lost the track of time I was assured of
steering us all onto a yearned common destiny. Had I read the room, there
was probably signs of the audience&amp;rsquo;s
patience running thin: a lot of eye blinking, shifting looks,
and maybe even slight gnashing of teeth. As if accelerating past a series of
increasingly frequent flashing warning lights telling the road is ending I
steemed ahead. Nearing the end of my talk, I prepared mentally
for a couple of enthusiastic fist bumps or at least some approving head-nods. Then
nothing - a resounding and awkward silence. The rail-road bridge had been blown
up from beneath me and – as if reminiscent of &lt;a href="https://www.youtube.com/watch?v=yCH-tUmMl7Q&amp;amp;t=1m15s">Buster Keaton&amp;rsquo;s silent movie scene&lt;/a>
– I felt my thought-train crashing down in slow motion.&lt;/p></description></item><item><title>Questions that help strangers become a team</title><link>https://5min.ninja/blog/gamify-group-work/</link><pubDate>Fri, 19 Sep 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/gamify-group-work/</guid><description>&lt;p>This is a trick I used in the university. Starting group work in a setting where
everyone is a stranger these 3 questions are enough:&lt;/p>
&lt;ol>
&lt;li>What are your interests for this (when it was a cource: grade, learning about x?)&lt;/li>
&lt;li>What is your schedule like?&lt;/li>
&lt;li>What are some of the other things you do, hobbies etc.?&lt;/li>
&lt;/ol>
&lt;p>The first scopes for common grounds asking the priority of the work on a
personal level. The second helps empathize with the work load and preferred
times to work. The last breaks the ice by sharing a little personal
background.&lt;/p></description></item><item><title>Cut through grey areas with thresholds</title><link>https://5min.ninja/blog/grey-area-bias/</link><pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/grey-area-bias/</guid><description>&lt;p>Different thought patterns can lead to different results by the same person.
We may get stuck with our interpretation of a situation or circumstances just
out of habit. Similar negative pattern matching can also happen in group
environments where, for example, the work culture has adopted a negative thought
process - a time-wasting workflow.&lt;/p>
&lt;p>One of these is the never-ending vortex of &amp;ldquo;it depends&amp;rdquo;.
I call it the grey area bias. The remedy is a process of determining
threshold variables, that pivot decision making.&lt;/p></description></item><item><title>Get unstuck using LLMs</title><link>https://5min.ninja/blog/hasten-horsies-with-llms/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/hasten-horsies-with-llms/</guid><description>&lt;p>GPT comes in handy when I&amp;rsquo;m stuck with implementation details - like some C++ syntax or
Textual-package intricacies - but diving down from top-level thinking can be
jarring. I copy-paste the snippet into the chat, rubberduck my problem, or often
just write &amp;ldquo;fix this&amp;rdquo;, and it hastens up the horsies.&lt;/p>
&lt;p>When others encounter problems with LLMs going on a tangent,
is it
due to overrelying on contextual understanding? For example, prompts like
&amp;ldquo;Create a C++ framework for UI components&amp;rdquo; relate to a vast scope while
providing ambiguous contextual cues.&lt;/p></description></item><item><title>Adlib timebox like a summer intern</title><link>https://5min.ninja/blog/timeboxing/</link><pubDate>Sat, 12 Jul 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/timeboxing/</guid><description>&lt;p>Things were very hand-to-mouth when I started as the third developer in a
startup I used to work at. There were fires to put out for myriad reasons almost
every week, and any seasonal uptick would put us on our toes.&lt;/p>
&lt;p>Notably, all inbound cash flow was dependent on selling copy-protected products
on our website, which required a license purchased from our self-hosted online
store. So, that group message from our support engineering during one weekend
was not trivial:&lt;/p></description></item><item><title>RSS against doom scrolling</title><link>https://5min.ninja/blog/rss-ftw/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/rss-ftw/</guid><description>&lt;p>I used to &lt;a href="https://en.wikipedia.org/wiki/Doomscrolling">doom scroll&lt;/a>. I still
do, but I used to, too. Reddit used to be my grind in the mornings. And during
the day. And in the evening - most often until the night. On top of that, I
watched YouTube - long and short form. I had Instagram and Twitter at one point,
too. All of these took away a surprising amount of time during the day.&lt;/p>
&lt;p>It was Aaron Schwartz Memorial Day at some secluded subreddit when I remembered
he worked on RSS. Despite being a developer, I never looked into what RSS
feeds were about or how they worked.&lt;/p></description></item><item><title>Failcome</title><link>https://5min.ninja/blog/making-more-errors/</link><pubDate>Thu, 26 Jun 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/making-more-errors/</guid><description>&lt;p>I wrote about failing deliberately in &lt;a href="../making-errors">inverse educated guess&lt;/a>.
The serendipity of failing first and fixing it after helps to validate the
causality between actions and their results - it helps to learn.&lt;/p>
&lt;p>Breaking the code for the sake of bug-hunting featured in that post is a
specific case exemplifying a generic pattern; Welcome fails and mistakes:
Failcome! I don&amp;rsquo;t think that slogan is going to stick with the others of the
likes of DRY, YAGNI, or ROFLMAO.&lt;/p></description></item><item><title>Inverse educated guess</title><link>https://5min.ninja/blog/making-errors/</link><pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/making-errors/</guid><description>&lt;p>A colleague at work pitched for a quick pair-programming session to spar on a
problem he&amp;rsquo;d been dealing with without resolution. Happy to oblige, I huddled
over to his desk.&lt;/p>
&lt;p>The bug was seemingly obvious: the text input box&amp;rsquo;s caret flung to the
wrong side of the box. But only when using right-to-left scripts. Our first
guess is that a wrong index value is generated. Step-wising through the
index calculation using a debugger only cemented our conflicting conviction that it
&amp;ldquo;should be correct&amp;rdquo;.&lt;/p></description></item><item><title>Keeping house while brewing coffee</title><link>https://5min.ninja/blog/wait-coffee/</link><pubDate>Sun, 11 Aug 2019 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/wait-coffee/</guid><description>&lt;p>Making coffee takes about 5 to 15 minutes depending on your method. If it
includes waiting for the coffee to brew, use that waiting time for a
quick clean-up: wipe the counter, load the dishwasher, &amp;hellip;&lt;/p>
&lt;p>This seems trivial, but adds up. Also, deciding on doing it saves cognitive load
i.e. brain-time and it will feel like a low-effort method to keep things in order.&lt;/p>
&lt;p>It&amp;rsquo;s about turning passive wait time into care time [&lt;a class="hugo-simplecite-cite-hyperlink" href="#bibreference-1" title="K. Davis, How to keep house while drowning: a gentle approach to cleaning and organising. London: Penguin Books, 2024. ">1&lt;/a>]. Building similar microhabits has
helped me stay on top of things, for example, when working remotely.&lt;/p></description></item><item><title>File Exploration in Vim</title><link>https://5min.ninja/blog/vim-file-browsing/</link><pubDate>Tue, 02 Oct 2018 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/vim-file-browsing/</guid><description>&lt;p>Vim is a great text editor. There&amp;rsquo;s a plethora of third party plugins to extend
vim and help navigate file systems and also a heap of ways to use them. I&amp;rsquo;m not
sure, if it&amp;rsquo;s common knowledge that vim has very nifty tricks up its sleeve for
to tackle exploring the directory structures without additional plugins and
opening up remote files using your beloved vim configuration. That is, if you
are inclined to heavily configure your vim with or without plugins, then all
that sweetness can be applied to editing files remotely instead of having to use
some remote machine&amp;rsquo;s vanilla vim.&lt;/p></description></item><item><title>Coupling tmux, vim and ranger</title><link>https://5min.ninja/blog/ranger-tmux/</link><pubDate>Thu, 15 Feb 2018 00:00:00 +0000</pubDate><guid>https://5min.ninja/blog/ranger-tmux/</guid><description>&lt;p>&lt;a href="https://github.com/ranger/ranger">Ranger&lt;/a> is a console based file explorer that
uses vim bindings. This makes it a very intuitive choice for any vimmer when
they&amp;rsquo;re looking for a file explorer. I also use tmux and was wondering, if
instead of replacing the whole ranger view upon editing a file, I could open
them up in a newly split tmux pane. Here&amp;rsquo;s a quick snippet to configure
splitting a tmux window into panes from within ranger.&lt;/p></description></item><item><title>Fixing encoding in Vim</title><link>https://5min.ninja/blog/vim-encodings/</link><pubDate>Thu, 08 Feb 2018 09:49:18 +0200</pubDate><guid>https://5min.ninja/blog/vim-encodings/</guid><description>&lt;p>There were mysterious &amp;lt;92&amp;gt;, &amp;lt;93&amp;gt;, &amp;lt;94&amp;gt; and &amp;lt;96&amp;gt; tags in a text file. I found one solution to changing them from &lt;a href="https://stackoverflow.com/a/2801132">stackoverflow&lt;/a>. However I found it after landing on atomic object&amp;rsquo;s blog post about &lt;a href="https://spin.atomicobject.com/2011/06/21/character-encoding-tricks-for-vim/">character encoding tricks for vim&lt;/a> that explains how to change
encodings and check for character codes. It is as if I had learned this before, but something that I learned later pushed it away.&lt;/p>
&lt;p>Finding &amp;lt;92&amp;gt; characters:
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-vim" data-lang="vim">&lt;span style="display:flex;">&lt;span>/\%&lt;span style="color:#a6e22e">x92&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/p></description></item></channel></rss>