<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shaddy's</title><link>http://shaddy.dev/</link><description>Recent content on Shaddy's</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 29 Mar 2026 14:11:54 +0200</lastBuildDate><atom:link href="http://shaddy.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Oliver Sacks Controversy</title><link>http://shaddy.dev/notes/oliver-sacks-controversy/</link><pubDate>Sun, 29 Mar 2026 14:11:54 +0200</pubDate><guid>http://shaddy.dev/notes/oliver-sacks-controversy/</guid><description>&lt;p>&lt;a href="https://en.wikipedia.org/wiki/Oliver_Sacks">Oliver Sacks&lt;/a>
was an extremely popular writer in 20th century psychology,
maybe the most celebrated medical storyteller of his generation.
His perhaps most famous work is the book
&lt;a href="https://en.wikipedia.org/wiki/The_Man_Who_Mistook_His_Wife_for_a_Hat">The Man Who Mistook His Wife for a Hat&lt;/a>.
Its stories are intriguing, revealing great insights into the human mind
and neurology that surprise, impress, and just improve understanding of humans.
I have read and enjoyed some of them myself.
Clearly, he has had a long and successful career, and he ran into many
curious cases that others can only dream of.
Or maybe all is not as it seems.&lt;/p></description></item><item><title>Dank Material Shell</title><link>http://shaddy.dev/notes/dank-shell/</link><pubDate>Sat, 07 Mar 2026 22:06:52 +0100</pubDate><guid>http://shaddy.dev/notes/dank-shell/</guid><description>&lt;p>I like tiling window managers like &lt;a href="https://github.com/hyprwm/Hyprland/">Hyprland&lt;/a>
or &lt;a href="https://github.com/niri-wm/niri">Niri&lt;/a> on Linux,
and I use them on all my personal machines.
They are great and give you a lot of control in how your desktop environment
should behave and feel.
But they often don&amp;rsquo;t come with batteries included.
You do not get a task bar or a system clock, an icon tray or an application launcher.
This is a blessing if you like really making things your own.
If you&amp;rsquo;re kind of lazy and just want something that&amp;rsquo;s good enough, it can be a curse.&lt;/p></description></item><item><title>Anki ownership transferred to AnkiHub</title><link>http://shaddy.dev/notes/anki-owners/</link><pubDate>Thu, 05 Feb 2026 21:42:32 +0100</pubDate><guid>http://shaddy.dev/notes/anki-owners/</guid><description>&lt;p>Anki, the spaced repetition software, has recently
&lt;a href="https://forums.ankiweb.net/t/ankis-growing-up/68610">transferred ownership&lt;/a> to AnkiHub.
AnkiHub is a separate company that has been built around the Anki ecosystem over the last couple of years.
Damien, the previous steward and main contributor has further commented on the subject &lt;a href="https://forums.ankiweb.net/t/ankis-growing-up/68610/110">here&lt;/a>.
The maybe most important points for casual users:&lt;/p>
&lt;blockquote>
&lt;p>There are zero planned changes to the revenue model:&lt;/p>
&lt;ul>
&lt;li>The computer version of Anki, and future releases of it, will remain free and open source.&lt;/li>
&lt;li>Syncing will continue to be free, supported by sales of the iOS app.&lt;/li>
&lt;li>AnkiMobile will continue to be a $25US one-time purchase.&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;p>The popular &lt;a href="https://github.com/ankidroid/Anki-Android/">AnkiDroid&lt;/a> app will, to my understanding,
continue to be independent, although there, too, the primary contributor is in discussion with joining AnkiHub.&lt;/p></description></item><item><title>Sorting Socks</title><link>http://shaddy.dev/notes/sorting-socks/</link><pubDate>Mon, 02 Feb 2026 21:35:49 +0100</pubDate><guid>http://shaddy.dev/notes/sorting-socks/</guid><description>&lt;p>Doing laundry is an annoying chore, but needs must, and so we do it.
An annoying part of the chore is matching the pairs of socks back together after the drying.
There are at least three very different ways of dealing with it.&lt;/p>
&lt;p>It should be noted that this advice is easier to apply in a single household than when you&amp;rsquo;re
sorting socks for 10 people.
Or maybe not &amp;ndash; some of this would make your life much easier if you can get everybody to agree
on what socks to wear.&lt;/p></description></item><item><title>Quoting Matt Freeman on love</title><link>http://shaddy.dev/notes/freeman-love/</link><pubDate>Fri, 30 Jan 2026 20:11:05 +0100</pubDate><guid>http://shaddy.dev/notes/freeman-love/</guid><description>&lt;p>Quoting Matt Freeman on &lt;a href="https://www.thebayesianconspiracy.com/2025/11/250-making-the-good-life-with-matt-freeman/">The Bayesian Conspiracy podcast&lt;/a>
(lightly edited for readability):&lt;/p>
&lt;blockquote>
&lt;p>The feeling of loving other people is one of
the best things in the world. And it&amp;rsquo;s kind of funny because, when you&amp;rsquo;re a kid and
when you&amp;rsquo;re growing up, maybe there&amp;rsquo;s this feeling of, like, I want to be
esteemed in other people&amp;rsquo;s eyes. I want to be loved by other people. You think you want that.
You think you want to be loved. And what I realized is, no,
being loved doesn&amp;rsquo;t really feel like anything. It feels like, oh, that&amp;rsquo;s nice. Loving others is
what feels amazing. Partially just for its own sake, but partially because it enables
what you just described where now I can feel joy about tons of things. I can feel like
combinatorially more joy than it would be possible for me to feel even if I was just like
getting shit that I wanted constantly, because I can provide other people with stuff that they want
that I don&amp;rsquo;t necessarily care about at all, but watching them love it and then feel amazing
vicarious joy and just, just joy for them. That that&amp;rsquo;s like &amp;ndash; you literally multiply the
amount of happiness that you can feel by loving other people.&lt;/p></description></item><item><title>Newcomb's empty box</title><link>http://shaddy.dev/notes/newcomb-empty/</link><pubDate>Wed, 28 Jan 2026 21:33:29 +0100</pubDate><guid>http://shaddy.dev/notes/newcomb-empty/</guid><description>&lt;p>I have written about Newcomb&amp;rsquo;s Problem &lt;a href="../newcombs-problem">before&lt;/a>.
Because the world is small, you keep stumbling over the same topics.
So a couple of days ago I watched a Computerphile video about
&lt;a href="https://www.youtube.com/watch?v=bdbhKoypnFI">LLMs and Newcomb&amp;rsquo;s Problem&lt;/a>.
They use a box of $50 that may or may not be filled depending
on whether the predictor, let&amp;rsquo;s call it oracle,
thinks you&amp;rsquo;ll also open the other box with a certain $5.&lt;/p>
&lt;p>For some reason, in my mind the choice was always between a certain
$50 and an uncertain $5 or $55 for opening both boxes.
But of course, if you don&amp;rsquo;t have faith in the oracle&amp;rsquo;s accuracy,
then you may end up with $0 if you pick the one box but
it thought you would open both.&lt;/p></description></item><item><title>Big Anki Decks</title><link>http://shaddy.dev/notes/big-anki-decks/</link><pubDate>Sun, 14 Dec 2025 15:45:08 +0100</pubDate><guid>http://shaddy.dev/notes/big-anki-decks/</guid><description>&lt;p>If you don&amp;rsquo;t know &lt;a href="https://apps.ankiweb.net/">Anki&lt;/a>,
a learning app for &lt;a href="https://en.wikipedia.org/wiki/Flashcard">flashcards&lt;/a>
and &lt;a href="https://en.wikipedia.org/wiki/Spaced_repetition">spaced repetition&lt;/a>,
I recommend checking it out.
It&amp;rsquo;s phenomenal for learning pieces of information &amp;ndash; facts,
vocabulary, lemmas, quotes.
I never got into Duolingo, but I am rather proud of my Anki streak,
which is slowly closing in on 3000.
But that is not the point of this post.
Instead, I will mostly just introduce some decks that may or may
not be useful to you and how to self-host an Anki sync server.&lt;/p></description></item><item><title>Reverdle</title><link>http://shaddy.dev/notes/reverdle/</link><pubDate>Thu, 31 Jul 2025 11:55:05 +0200</pubDate><guid>http://shaddy.dev/notes/reverdle/</guid><description>&lt;p>The usual goal in Wordle is to guess the target word in as few attempts as possible.
You don&amp;rsquo;t have to use all the information you have in every guess &amp;ndash;
even if you know the first letter is an A, you can try a word that starts with B if it gives you more information.&lt;/p>
&lt;p>Obviously the very first question for anybody who comes into contact with the game is:
what if you turn the concept around?
What is the strategy to take as many turns as possible until you hit the game
if at every attempt you HAVE to use all available information into account?
Instead of a game of reducing the options space as much as possible with every guess,
it becomes a game of shaving away as few options as possible while retaining optionality.&lt;/p></description></item><item><title>Kondo: shrinking your projects folder</title><link>http://shaddy.dev/notes/kondo/</link><pubDate>Fri, 27 Jun 2025 13:31:27 +0200</pubDate><guid>http://shaddy.dev/notes/kondo/</guid><description>&lt;p>As you gather more dev projects on your disk and keep recompiling stuff,
a lot of artefacts and dependencies tend to accumulate and take up disk space.
&lt;a href="https://github.com/tbillington/kondo">Kondo&lt;/a> is a useful tool to clean all
those in one fell swoop.
It can delete &lt;code>node_modules&lt;/code> folders or rust &lt;code>target&lt;/code> directories and more.
Just run it over your projects dir, &lt;del>confirm everything&lt;/del> review what it finds,
and suddenly &lt;del>you&lt;/del> I have a new 100gb of disk space!&lt;/p></description></item><item><title>How LLMs lose their train of thought</title><link>http://shaddy.dev/notes/alpha-poetry/</link><pubDate>Mon, 23 Jun 2025 15:59:07 +0200</pubDate><guid>http://shaddy.dev/notes/alpha-poetry/</guid><description>&lt;p>A couple of months ago in a context I don&amp;rsquo;t quite remember, I had the idea of a little challenge:
writing a coherent narrative, where each word starts with the next letter of the alphabet, beginning with &amp;ldquo;a&amp;rdquo;.
A small example would be &amp;ldquo;A bee can dance ferociously&amp;rdquo;.
If you want to be extra ambitious, you wrap the alphabet and continue with &amp;ldquo;a&amp;rdquo; after &amp;ldquo;z&amp;rdquo; and,
for extra pleasingness points, end on a &amp;ldquo;z&amp;rdquo;.&lt;/p></description></item><item><title>Thoughts on Newcombs Problem</title><link>http://shaddy.dev/notes/newcombs-problem/</link><pubDate>Sun, 22 Jun 2025 19:29:59 +0200</pubDate><guid>http://shaddy.dev/notes/newcombs-problem/</guid><description>&lt;p>Newcomb&amp;rsquo;s problem is one of these philosophical thought experiments
that I come across every now and then,
most recently on the Very Bad Wizards &lt;a href="https://verybadwizards.com/episode/episode-307-whats-in-the-box">podcast&lt;/a>.
It is also one of those problems where everybody thinks they are obviously right with their choice
and the alternative choice is irrational.
I&amp;rsquo;ve got a couple ideas that are probably novel but that I don&amp;rsquo;t often see discussed.&lt;/p>
&lt;p>Wikipedia defines the problem &lt;a href="https://en.wikipedia.org/wiki/Newcomb%27s_paradox">as follows&lt;/a>:&lt;/p>
&lt;blockquote>
&lt;p>There are two agents: a reliable predictor and a player. Two boxes are designated A and B. The player is given a choice between taking only box B or taking both boxes A and B. The player knows the following:[4]&lt;/p></description></item><item><title>Anti-natalist reading of classic church music</title><link>http://shaddy.dev/notes/anti-natalist-kind-des-zufalls/</link><pubDate>Wed, 18 Jun 2025 12:37:29 +0200</pubDate><guid>http://shaddy.dev/notes/anti-natalist-kind-des-zufalls/</guid><description>&lt;p>I grew up in a German Christian household, so I got to know the one or other German church song.
Recently, without discernible cause, the song &amp;ldquo;Vergiss es nie&amp;rdquo; (Never forget) by Jürgen Werth got stuck in my head,
but I haven&amp;rsquo;t been able to look at it the same way since a recent conversation.&lt;/p>
&lt;p>The lyrics go like this (translation below):&lt;/p>
&lt;blockquote>
&lt;ol>
&lt;li>Vergiss es nie:&lt;br>
Dass du lebst, war keine eigene Idee,&lt;br>
und dass du atmest, kein Entschluss von dir.&lt;br>
Vergiss es nie:&lt;br>
Dass du lebst, war eines anderen Idee,&lt;br>
und dass du atmest,&lt;br>
sein Geschenk an dich.&lt;/li>
&lt;/ol>
&lt;p>Ref.: Du bist gewollt, kein Kind des Zufalls,&lt;br>
keine Laune der Natur,&lt;br>
ganz egal, ob du dein Lebenslied&lt;br>
in Moll singst oder Dur.&lt;br>
Du bist ein Gedanke Gottes,&lt;br>
ein genialer noch dazu.&lt;br>
Du bist du,&lt;br>
das ist der Clou,&lt;br>
du bist du.&lt;br>
Ja, du bist du.&lt;/p></description></item><item><title>Git vanity commits</title><link>http://shaddy.dev/notes/git-collisions/</link><pubDate>Mon, 26 May 2025 15:20:24 +0200</pubDate><guid>http://shaddy.dev/notes/git-collisions/</guid><description>&lt;p>Git commits have an id that is computed as a substring of a hash over the content of the
repository at this point in time, the commit author, message, timestamp, and related metadata.
Historically, this has been done using SHA-1, although efforts to transition to SHA-256 are
&lt;a href="https://git-scm.com/docs/hash-function-transition">underway&lt;/a>.&lt;/p>
&lt;p>Typically, these ids are unique, and even its prefixes are unique.
This means that applications often only show the first couple characters to identify a commit.
Even for a very large number of commits, with 6 hexadecimal characters you can uniquely identify
$16^6=16777216$ commits (ignoring the &lt;a href="https://en.wikipedia.org/wiki/Birthday_problem">birthday problem&lt;/a>).&lt;/p></description></item><item><title>Do you know your 90% confidences?</title><link>http://shaddy.dev/notes/calibration-90/</link><pubDate>Thu, 17 Apr 2025 14:02:13 +0200</pubDate><guid>http://shaddy.dev/notes/calibration-90/</guid><description>&lt;p>Everybody &amp;ldquo;Knows&amp;rdquo; things, but how well do you know the things you know?
In other words, when you state a fact or make a prediction,
how confident are you that you&amp;rsquo;re correct?
It is very useful to be aware of this, both for knowing how much you can rely on a piece of
information in your actions and for communication.&lt;/p>
&lt;p>There is a famous table by &lt;a href="https://waf.cs.illinois.edu/visualizations/Perception-of-Probability-Words/">Fagen-Ulmschneider&lt;/a>
about what probability people tend to mean with words like &amp;ldquo;likely&amp;rdquo;.
Being aware of this information can help avoid misunderstanding.&lt;/p></description></item><item><title>tinytools: easily test your html apps</title><link>http://shaddy.dev/notes/html-test/</link><pubDate>Thu, 10 Apr 2025 14:53:34 +0200</pubDate><guid>http://shaddy.dev/notes/html-test/</guid><description>&lt;p>anthropic claude has the amazing artefact feature, which allows it to generate a web app and
immediately display it next to the chat for you to interact with.
it is phenomenal for prototyping or just iterating quickly on solving a specific problem.
unfortunately, other llms like google gemini do not have this feature
(afaik and ofc you can use alternative guis that do have it).
instead, you have to save the html locally to interact with it in your browser, which is annoying&lt;/p></description></item><item><title>persistent browser dev tool logs</title><link>http://shaddy.dev/notes/keep-dev-tool-logs/</link><pubDate>Mon, 07 Apr 2025 10:43:43 +0200</pubDate><guid>http://shaddy.dev/notes/keep-dev-tool-logs/</guid><description>&lt;p>i am not a web dev &amp;ndash; hell, i&amp;rsquo;m barely a backend dev.
but i still occasionally need to debug a website that is misbehaving (surprisingly often, in fact).
that is usually simple enough: open the dev tools and look at the console errors and web requests.
but sometimes, the website automatically redirects, eg to an error page, and your dev tools are
reset, all debug information is lost.
this generally makes sense so your dev tools capture the current page you actually care about
and not stuff from hours ago you long moved on from, but sometimes you just still need it.
this problem feels so common that actual web people HAVE to have solved it.&lt;/p></description></item><item><title>analysing tech debt as CRUFT</title><link>http://shaddy.dev/notes/cruft-debt/</link><pubDate>Tue, 25 Mar 2025 16:51:03 +0100</pubDate><guid>http://shaddy.dev/notes/cruft-debt/</guid><description>&lt;p>on the &lt;a href="https://www.twoscomplement.org">two&amp;rsquo;s complement podcast&lt;/a>, there was recently
&lt;a href="https://www.twoscomplement.org/podcast/cruft.mp3">an episode on technical debt&lt;/a>,
where they try to really dig into what technical debt actually means and how
it can be measured.
one of the hosts, ben rady, has since turned the idea into a more fleshed-out blog
post &lt;a href="https://www.benrady.com/2024/12/cruft-an-alternative-to-the-technical-debt-metaphor.html">here&lt;/a>.&lt;/p>
&lt;p>he introduces the acronym CRUFT:&lt;/p>
&lt;blockquote>
&lt;p>CRUFT represents five dimensions of technical debt:&lt;/p>
&lt;ul>
&lt;li>Complexity - How much code do we need to understand?&lt;/li>
&lt;li>Risk - What unwanted behavior do we have?&lt;/li>
&lt;li>Use - What wanted behavior do we have?&lt;/li>
&lt;li>Feedback - How fast can we learn?&lt;/li>
&lt;li>Team - Who can support the system?&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;p>the goal, then, is to optimise along those dimensions to have a usable code base that does
what you want it to do.
you&amp;rsquo;ll often need to trade off different dimensions against each other, new uses introduce
new risks, and a better team with lower bus factor reduces risk.&lt;/p></description></item><item><title>search completion explored</title><link>http://shaddy.dev/notes/search-complete/</link><pubDate>Sat, 01 Mar 2025 19:25:49 +0100</pubDate><guid>http://shaddy.dev/notes/search-complete/</guid><description>&lt;p>i recently learnt about how people implement auto completion in distributed systems.
basically, when i search &amp;ldquo;shaddy is&amp;rdquo;, the system should suggest for example a result like
&amp;ldquo;shaddy is very very smart and clever and a great guy in general&amp;rdquo;.
(that it doesn&amp;rsquo;t is a clear sign of the ongoing downfall of society)
in practice, we probably want to give the user the top 5 or so results to pick from.&lt;/p></description></item><item><title>jj tug</title><link>http://shaddy.dev/notes/jj-tug/</link><pubDate>Tue, 07 Jan 2025 16:53:45 +0100</pubDate><guid>http://shaddy.dev/notes/jj-tug/</guid><description>&lt;p>I really like working with &lt;a href="https://github.com/jj-vcs/jj">jj&lt;/a>, and I wouldn&amp;rsquo;t want to go back to pure git.
In jj, the tip of your branch doesn&amp;rsquo;t follow new commits automatically.
That means you&amp;rsquo;re often in situations like this, where you want to move your bookmark to the latest change:&lt;/p>
&lt;pre tabindex="0">&lt;code>› jj log
@ pytqprxw shaddythefirst@gmail.com 2025-01-07 17:04:59 7791efad
│ (no description set)
○ rxnmpktx shaddythefirst@gmail.com 2025-01-07 17:02:51 git_head() 9033f455
│ notes: Add jj-tug
◆ lvosywup shaddythefirst@gmail.com 2025-01-07 13:07:52 master 524578da
│ notes: Add grafana-ta
~
&lt;/code>&lt;/pre>&lt;p>For the record, I like this part.
I like that you have to consciously think about where you want your branches to point to.
However, sometimes branch names are annoying to remember, especially when they&amp;rsquo;re generated
by jj in the first place.
I always have to copy the branch name by hand from the log when I want to do something like
&lt;a href="https://jj-vcs.github.io/jj/latest/cli-reference/#jj-bookmark-move">&lt;code>jj b move push-qlonwoskvtmu --to @-&lt;/code>&lt;/a>
to make it point to my latest change.&lt;/p></description></item><item><title>Shortcut to turn Grafana relative times to absolute ones</title><link>http://shaddy.dev/notes/grafana-ta/</link><pubDate>Tue, 07 Jan 2025 12:59:17 +0100</pubDate><guid>http://shaddy.dev/notes/grafana-ta/</guid><description>&lt;p>We&amp;rsquo;re going a bit more niche today.&lt;/p>
&lt;p>Sometimes, you select a specific time frame in Grafana, like the last hour, where an event happened, to anaylse logs or metrics.
Then you refine your filters or you want to share a link with others, but turning that relative time selection into an absolute one is cumbersome.&lt;/p>
&lt;p>Well, there&amp;rsquo;s a trick.
You can press first &lt;code>t&lt;/code> and then &lt;code>a&lt;/code> to turn the selected time frame into an absolute one, see &lt;a href="https://github.com/grafana/grafana/pull/43802">here&lt;/a>.&lt;/p></description></item><item><title>LLMs can guess your nationality</title><link>http://shaddy.dev/notes/llm-nationality/</link><pubDate>Mon, 06 Jan 2025 13:01:54 +0100</pubDate><guid>http://shaddy.dev/notes/llm-nationality/</guid><description>&lt;p>Given a sample of your writing, Claude is pretty good at
&lt;a href="https://x.com/Altimor/status/1873872492412231776">guessing your nationality&lt;/a>.
Discovered via &lt;a href="https://thezvi.substack.com/p/ai-97-4">Zvi Mowshowitz&lt;/a>, who is a great source
on AI news in general.&lt;/p>
&lt;p>It guessed that I&amp;rsquo;m German when given each of my blog posts, which seems pretty impressive.
ChatGPT did significantly worse for myself and some friends I asked.&lt;/p>
&lt;p>I&amp;rsquo;m not fully confident how reliable this actually is, given that German is a simple guess
among the European languages.
When asked about what gave it away, it brought up some phrasings that it said reminded it
of a German speaker.
But then it would backtrack and say that each one was natural and could come from a native
speaker as well.&lt;/p></description></item><item><title>Frame Synchronisation with COBS</title><link>http://shaddy.dev/notes/sdr-cobs/</link><pubDate>Sat, 21 Dec 2024 21:21:51 +0100</pubDate><guid>http://shaddy.dev/notes/sdr-cobs/</guid><description>&lt;p>When sending messages as bits across the web, you need a way of deciding where one packet ends
and another begins.&lt;/p>
&lt;blockquote>
&lt;p>Consistent Overhead Byte Stuffing (COBS) is an algorithm for encoding data bytes that results in efficient, reliable, unambiguous packet framing regardless of packet content, thus making it easy for receiving applications to recover from malformed packets&lt;/p>
&lt;/blockquote>
&lt;p>See &lt;a href="https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing">Wikipedia&lt;/a>,
or, less dry, the Self-Directed Research Podcast on &lt;a href="https://sdr-podcast.com/episodes/frame-sync/">Frame Synchronization&lt;/a>.
This is not really a topic I ever think about or have worked on, but the podcast is always a great time.&lt;/p></description></item><item><title>Rich Kid Memes</title><link>http://shaddy.dev/notes/rich-kid-memes/</link><pubDate>Fri, 20 Dec 2024 20:31:12 +0100</pubDate><guid>http://shaddy.dev/notes/rich-kid-memes/</guid><description>&lt;blockquote>
&lt;p>since these affluencers have built their platforms on mocking ostentatious displays of wealth, some cast them as critics of the 1 percent. however, if these memes were really exposès aimed at shaming the ultra-rich, they’d probably be created by disapproving outsiders.&lt;/p>
&lt;p>that, clearly, is not the case. these memes are created by rich kids, for rich kids. they’re not indictments — they’re status symbols, offering the wealthy a way to display their social rank in a more subtle, creative fashion.&lt;/p></description></item><item><title>Beyond Green Policing</title><link>http://shaddy.dev/notes/green-police/</link><pubDate>Wed, 18 Dec 2024 23:12:56 +0100</pubDate><guid>http://shaddy.dev/notes/green-police/</guid><description>&lt;blockquote>
&lt;p>Greenwashing is a valid concern. It refers to companies falsely marketing products or practices as environmentally friendly for profit. However, there’s a significant difference between greenwashing and businesses taking genuine, albeit imperfect, steps towards sustainability. The latter deserves encouragement, not antagonism.&lt;/p>
&lt;p>We should strive to create a culture where businesses feel encouraged to make sustainable choices, even in small increments.&lt;/p>
&lt;/blockquote>
&lt;p>A &lt;a href="https://greenbeautycommunity.com/2024/04/green-police/">reminder&lt;/a> to encourage positive progress,
even if more would be possible.
I suppose this is related to the &lt;a href="https://thezvi.wordpress.com/2019/04/25/asymmetric-justice/">Copenhagen Interpretation of Ethics&lt;/a>.
We want to incentivise good things, so try to be positive about good imperfect things
or risk discouraging progress altogether.&lt;/p></description></item><item><title>More Ovoerconfidence</title><link>http://shaddy.dev/notes/more-ovoerconfidence/</link><pubDate>Tue, 17 Dec 2024 22:45:40 +0100</pubDate><guid>http://shaddy.dev/notes/more-ovoerconfidence/</guid><description>&lt;blockquote>
&lt;p>The problem is that the bad consequences of underconfidence and under-ambition are severe but subtle, whereas the bad consequences of overconfidence and wishful thinking are milder but more obvious. If you’re overconfident, you’ll try things that fail, and people will laugh at you. If you’re underconfident, you’ll avoid making risky bets, and miss out on the potential upside, but nobody will know for sure what you missed.&lt;/p>
&lt;p>That means it’s always tempting to do what the low-info heuristic tells you and be less ambitious—but ultimately, that ends up being worse for the world.&lt;/p></description></item><item><title>Quantity Over Quality</title><link>http://shaddy.dev/notes/quantity-over-quality/</link><pubDate>Mon, 09 Dec 2024 22:14:01 +0100</pubDate><guid>http://shaddy.dev/notes/quantity-over-quality/</guid><description>&lt;blockquote>
&lt;p>Quality over quantity. I often worry that I write too much on this blog. After all, the world has a lot of text. Does it need more? Shouldn’t I pick some small number of essays and really perfect them? Arguably, no. You’ve perhaps heard of the pottery class where students graded on quantity produced more quality than those graded on quality. (It was actually a photography class.) For scientists, the best predictor of having a highly cited paper is just writing lots of papers. As I write these words, I have no idea if any of this is good and I try not to think about it.&lt;/p></description></item><item><title>Quoting Scott Alexander on reversing advice</title><link>http://shaddy.dev/notes/reversing-advice/</link><pubDate>Wed, 04 Dec 2024 15:51:01 +0100</pubDate><guid>http://shaddy.dev/notes/reversing-advice/</guid><description>&lt;blockquote>
&lt;p>I wonder whether everyone would be better off if they automatically reversed any tempting advice that they heard (except feedback directed at them personally). Whenever they read an inspirational figure saying “take more risks”, they interpret it as “I seem to be looking for advice telling me to take more risks; that fact itself means I am probably risk-seeking and need to be more careful”. Whenever they read someone telling them about the obesity crisis, they interpret it as “I seem to be in a very health-conscious community; maybe I should worry about my weight less.”&lt;/p></description></item><item><title>Quoting Nikhil Suresh on You Must Read At Least One Book To Ride</title><link>http://shaddy.dev/notes/read-one-book/</link><pubDate>Tue, 03 Dec 2024 21:52:07 +0100</pubDate><guid>http://shaddy.dev/notes/read-one-book/</guid><description>&lt;blockquote>
&lt;p>&amp;ldquo;There are the engineers who have read 1+ books on a given topic, and sometimes on &lt;em>several&lt;/em> topics, and they all come off as extremely competent. These are, for the most part, the people that make up the audience of this blog. Of course, you do not &lt;em>literally&lt;/em> need to read a book - a sufficiently high volume of technical blogs or courses are probably the equivalent at varying levels of efficiency - but take it for granted there is some Large Sum of information that someone has studied.&lt;/p></description></item><item><title>Quoting Martin Tournoij on Against Best Practices</title><link>http://shaddy.dev/notes/quoting-against-best-practices/</link><pubDate>Mon, 02 Dec 2024 15:14:59 +0100</pubDate><guid>http://shaddy.dev/notes/quoting-against-best-practices/</guid><description>&lt;blockquote>
&lt;p>I have come to believe that by and large “best practices” are doing more harm than good. Not necessarily because they’re bad advice as such, but because they’re mostly pounded by either 1) various types of zealots, idiots, and assholes who abuse these kind of “best practices” as an argument from authority, or 2) inexperienced programmers who lack the ability to judge the applicability.&lt;/p>
&lt;/blockquote>
&lt;p>A reminder to think critically for yourself and question advice you hear.
Not necessarily because it&amp;rsquo;s wrong, but because understanding it yields even greater benefits,
and most things are contextual.
Blindly following advice without understanding leads to cargo culting.&lt;/p></description></item><item><title>Quoting John Arundel on a Career Ending Mistake</title><link>http://shaddy.dev/notes/quoting-career-ending-mistake/</link><pubDate>Mon, 02 Dec 2024 14:46:07 +0100</pubDate><guid>http://shaddy.dev/notes/quoting-career-ending-mistake/</guid><description>&lt;blockquote>
&lt;p>If you love what you’re doing now and don’t ever want to change jobs, great: you’ve reached the end of your career, even if it plays out over many decades. If you don’t love it, though, and that’s much more likely, then it’s worth asking what job you would love, and how you’re going to get it.&lt;/p>
&lt;/blockquote>
&lt;p>A reminder to go into and through your career with open ideas and an idea of what you want, where you&amp;rsquo;re going, and how to go about it.
Read the &lt;a href="https://bitfieldconsulting.com/posts/career">whole article&lt;/a> for more detail on how to plan your tech career.&lt;/p></description></item><item><title>Continue and Persist letters</title><link>http://shaddy.dev/notes/continue-and-persist/</link><pubDate>Fri, 29 Nov 2024 10:16:26 +0100</pubDate><guid>http://shaddy.dev/notes/continue-and-persist/</guid><description>&lt;blockquote>
&lt;p>Every day, thousands of Cease and Desist letters are issued, telling people to stop what they’re doing (Looking at you, David Chang). What a bummer!&lt;/p>
&lt;p>That’s why we created: The Continue and Persist Letter. A official-looking legal letter that encourages and uplifts people, one that tells people to keep doing what they’re doing! Surprise someone you appreciate by sending them a Continue and Persist Letter.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;a href="https://continueandpersist.org/">It&lt;/a>&amp;rsquo;s a fun concept of course, but there are problems with
having a third party send a Serious-Looking letter to somebody you respect.&lt;br>
Maybe we should just take this as an inspiration to show our appreciation more often.
Maybe just send an email to someone you&amp;rsquo;re thankful to or otherwise leave them a heartfelt message.
If you want to continue going with the original idea,
they also link a template &lt;a href="https://docs.google.com/document/d/1_Um9z87Zv_zLRZRRHpii-MwmNXb3S9L6VBOeFgiqEVM/edit?tab=t.0">here&lt;/a>.&lt;/p></description></item><item><title>Useful tool: Distrobox</title><link>http://shaddy.dev/notes/distrobox/</link><pubDate>Wed, 27 Nov 2024 14:25:12 +0100</pubDate><guid>http://shaddy.dev/notes/distrobox/</guid><description>&lt;p>The &lt;a href="https://github.com/89luca89/distrobox">distrobox&lt;/a> project, inspired by the similarly-named
&lt;a href="https://github.com/containers/toolbox">toolbox&lt;/a>, is a tool to easily switch to different
environments like, as the name implies, different linux distros.
It wraps around &lt;a href="https://podman.io/">Podman&lt;/a> to effectively allow using your shell to arbitrary
docker images.
For example, if you&amp;rsquo;re on debian and want to install something from the AUR, you can spin up an
arch container real quick.&lt;/p>
&lt;p>The advantage over just spinning up a container in docker or podman directly is that, firstly,
the container is long-lived, so any software you install will persist, and you can repeatedly
enter and evolve one environment over a long time frame, potentially over month.
For example, you can have one environment with all the software for a specific project
that is incompatible with the environment of yet another project, each in a different container.&lt;/p></description></item><item><title>From artists about AI art details</title><link>http://shaddy.dev/notes/ai-art-tells/</link><pubDate>Sat, 23 Nov 2024 17:14:44 +0100</pubDate><guid>http://shaddy.dev/notes/ai-art-tells/</guid><description>&lt;p>Scott Alexander quotes a friend in &lt;a href="https://www.astralcodexten.com/p/how-did-you-do-on-the-ai-art-turing">an article&lt;/a> about
recognising AI art.
I don&amp;rsquo;t see much art on social media in general, so I&amp;rsquo;m not very familiar with the topic and what to look for,
but I found this description incredibly interesting and compelling.
It makes sense that AI art would try to do details without having a coherent story to tell.&lt;/p>
&lt;blockquote>
&lt;p>I think part of the problem with AI art is that it produces stuff non-artists think look good but which on close inspection looks terrible, and so it ends up turning search results that used to be good into sifting through terrible stuff. Imagine if everyone got the ability to create mostly nutritional adequate meals for like five cents, but they all were mediocre rehydrated powder with way too much sucralose or artificial grape flavor or such. And your friends start inviting you over to dinner parties way more often because it&amp;rsquo;s so easy to deal with food now, but practically every time, they serve you sucralose protein shake. (Maybe they do so because they were used to almost never eating food? This isn&amp;rsquo;t a perfect analogy.) Furthermore, imagine people calling this the future of food and saying chefs are obsolete. You&amp;rsquo;d probably be like &amp;ldquo;wow, I&amp;rsquo;m happy that you have easy access to food you enjoy, and it is convenient for me to use sometimes, but this is kind of driving me crazy&amp;rdquo;. I feel like this is relevant to artist derangement over AI art, though of course a lot of it is economic anxiety and I&amp;rsquo;m a hobbyist who doesn&amp;rsquo;t feel like a temporarily embarrassed professional and thus can&amp;rsquo;t relate.&lt;/p></description></item><item><title>In defence of prescriptivism</title><link>http://shaddy.dev/notes/linguistic-prescriptivism/</link><pubDate>Fri, 22 Nov 2024 20:43:11 +0100</pubDate><guid>http://shaddy.dev/notes/linguistic-prescriptivism/</guid><description>&lt;p>If you&amp;rsquo;re a casual consumer of pop linguistics, you&amp;rsquo;ve probably heard the opinion that
language change and drift is natural, and so you shouldn&amp;rsquo;t prescribe how people should
speak or write correctly.
Instead, it is said, be descriptivist, describing how the language evolves,
rather than prescriptivists.&lt;/p>
&lt;p>In the video &lt;a href="https://www.youtube.com/watch?v=cQuHm0mBQ8Y">In Defence of Prescriptivism&lt;/a>,
&lt;a href="https://www.youtube.com/@kklein">K Klein&lt;/a> gives a more nuanced perspective on the topic.
They make the point that there are many things that fall under the umbrella of
prescriptivism, and not all of them are bad.
Sure, some of them are bad, but not all of them, and we should keep that in mind.&lt;br>
I don&amp;rsquo;t agree with all of their points, but the video gave me a new perspective on the topic.
If that is a topic you&amp;rsquo;re interested in, I recommend giving it a watch.&lt;/p></description></item><item><title>Chances of success for n times 1/n?</title><link>http://shaddy.dev/notes/n-times-one-nth/</link><pubDate>Thu, 21 Nov 2024 22:56:32 +0100</pubDate><guid>http://shaddy.dev/notes/n-times-one-nth/</guid><description>&lt;blockquote>
&lt;p>It&amp;rsquo;s a 1/n chance and I did it n times, so the odds should be&amp;hellip; 63%. Almost always.&lt;/p>
&lt;/blockquote>
&lt;p>Have you ever wondered about the odds of success when trying something with a 10% success probability 10 times?
Well, I guess if you seriously thought about it and spent time doing the maths, I have no news for you.
But otherwise, check out &lt;a href="https://www.lesswrong.com/posts/pNkjHuQGDetRZypmA/it-s-a-10-chance-which-i-did-10-times-so-it-should-be-100">&amp;ldquo;It&amp;rsquo;s a 10% chance which I did 10 times, so it should be 100%&amp;rdquo;&lt;/a>.&lt;/p></description></item><item><title>How to be respected as a teenage girl</title><link>http://shaddy.dev/notes/how-to-be-respected-as-teenage-girl/</link><pubDate>Tue, 19 Nov 2024 14:50:49 +0100</pubDate><guid>http://shaddy.dev/notes/how-to-be-respected-as-teenage-girl/</guid><description>&lt;p>&lt;a href="https://aella.substack.com">Aella&lt;/a>&amp;rsquo;s writing about &lt;a href="https://aella.substack.com/p/how-to-be-respected-as-a-teen-girl">How to be respected as a teenage girl&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>as a girl, like a young girl, maybe you get the impression that boys are cool in a way girls aren&amp;rsquo;t. people praise and laugh at boys for doing high risk things. boys do all the good thinking and flying planes and action movies. and they put women in action movies too but it doesn&amp;rsquo;t reflect life around you - the women you know are moms and shy and weak. you can feel the weakness emanating off of them. they do have passive endurance, of lifestyle martyrdom, of quietly putting up with so much. that’s a type of strength, they say.&lt;/p></description></item><item><title>Tinytool release: DB Ticket Price Calculator</title><link>http://shaddy.dev/notes/release-db-calc/</link><pubDate>Mon, 18 Nov 2024 19:36:34 +0100</pubDate><guid>http://shaddy.dev/notes/release-db-calc/</guid><description>&lt;p>I have, a while ago, started putting small tools that I developed with
LLM assistance into a tiny little website.
You can find it &lt;a href="https://shaddy.dev/tinytools">here&lt;/a>&lt;/p>
&lt;p>Don&amp;rsquo;t expect anything too amazing, but maybe there&amp;rsquo;s something useful for you too.&lt;/p>
&lt;p>In the spirit of &lt;a href="https://simonwillison.net/2022/Nov/6/what-to-blog-about/">talking about projects&lt;/a>,
the most recent addition is a &lt;a href="https://shaddy.dev/tinytools/?tool=db-price-calculator">DB Ticket Price Calculator&lt;/a>.
If you are in Germany and were thinking about whether a &lt;a href="https://int.bahn.de/en/offers/bahncard">Bahncard&lt;/a> is worth
the price for you, maybe it can be useful for you.&lt;/p></description></item><item><title>How to disagree on the internet</title><link>http://shaddy.dev/notes/disagree/</link><pubDate>Mon, 18 Nov 2024 19:36:19 +0100</pubDate><guid>http://shaddy.dev/notes/disagree/</guid><description>&lt;p>I just came across this old Paul Graham essay about
&lt;a href="https://www.paulgraham.com/disagree.html">how to disagree on the internet&lt;/a>.
It&amp;rsquo;s old, and many people have probably already read it, but I found it very constructive.&lt;/p>
&lt;p>The main idea is that there are different quality levels to a comment on the internet that
expresses disagreement.
From calling names, to offering a different perspective and an according argument,
to refuting the main point.&lt;/p>
&lt;p>This idea is constructive both in how you express disagreement yourself as well as in
evaluating the quality of other people&amp;rsquo;s disagreement when skimming the comments on
an interesting article.&lt;/p></description></item><item><title>Jujutsu worktrees are very convenient!</title><link>http://shaddy.dev/notes/jj-worktrees/</link><pubDate>Fri, 15 Nov 2024 00:00:00 +0000</pubDate><guid>http://shaddy.dev/notes/jj-worktrees/</guid><description>&lt;h2 id="jujutsu-worktrees-are-very-convenient">Jujutsu worktrees are very convenient!&lt;/h2>
&lt;p>In git, &lt;a href="https://git-scm.com/docs/git-worktree">worktrees&lt;/a> are an old concept.
The idea is that you can effectively work on your project in 2 different folders with different
states while sharing a single history and git state.
That means it is smaller and less work to keep up than 2 separate clones, and you can potentially
build changes in one folder on top of changes in the other.&lt;/p>
&lt;p>I usually use it when I&amp;rsquo;ve got one task I&amp;rsquo;m working on, but for some reason I cannot proceed on it
while eg the CI is running, but I also don&amp;rsquo;t want to leave the commit and close my code editor etc.
It would be simple to just stash everything and later pop the stash, but it still feels disruptive.&lt;/p></description></item><item><title>fickle direnv Nix submodule syntax</title><link>http://shaddy.dev/notes/direnv-nix-flake-syntax/</link><pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate><guid>http://shaddy.dev/notes/direnv-nix-flake-syntax/</guid><description>&lt;h2 id="fickle-direnv-nix-submodule-syntax">fickle direnv Nix submodule syntax&lt;/h2>
&lt;p>In trying to chase down a bug, I was trying to run a very old commit of a project of mine.
No problem, I thought, it&amp;rsquo;s got a Nix Flake, so it will be easy to get running again.
Turns out, I&amp;rsquo;d done some cleanup since then to significantly improve the Nix UX of the repo,
and I&amp;rsquo;d forgotten the exact incantations to get it to work.&lt;/p></description></item><item><title>Hello World</title><link>http://shaddy.dev/notes/hello-world/</link><pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate><guid>http://shaddy.dev/notes/hello-world/</guid><description>&lt;h2 id="hello-world">Hello World&lt;/h2>
&lt;p>Following the example of my blog &lt;a href="../../posts/hello-world/">hello-world&lt;/a>, I figured I&amp;rsquo;ll start with a hello world note.
I&amp;rsquo;ll just post small interesting stuff I come across that doesn&amp;rsquo;t warrant a full post, or quick notes.
They&amp;rsquo;re roughly inspired by Simon Willison&amp;rsquo;s &lt;a href="https://github.com/simonw/til">til&lt;/a>,
though I&amp;rsquo;ll mix it up with quotes and other stuff I find interesting.
I may or may not disentangle those in the future.&lt;/p></description></item><item><title>Prodding Wise Wizards – Prompt Injection in Gandalf's Game</title><link>http://shaddy.dev/posts/prodding-wizards/</link><pubDate>Thu, 20 Jul 2023 00:00:00 +0000</pubDate><guid>http://shaddy.dev/posts/prodding-wizards/</guid><description>&lt;p>If you&amp;rsquo;re following AI news and discussions, you might have heard about that &lt;a href="https://gandalf.lakera.ai">little game&lt;/a> with Gandalf trying to protect a password.
Your goal as the player is to trick the poor AI into revealing its secrets, no matter the cost.
The game is intended to teach about the concept of &lt;a href="https://simonwillison.net/2022/Sep/12/prompt-injection/">Prompt Injection&lt;/a> and to spread awareness of some weaknesses of LLMs (Large Language Models).
Honestly, it&amp;rsquo;s a lot of fun, and I want to share some of the interesting and hilarious things I have come across in the attempts of friends and myself.
I will end on some background and some personal musings about the implications and the future.&lt;/p></description></item><item><title>Divisibility Rules</title><link>http://shaddy.dev/posts/divisibility-rules/</link><pubDate>Tue, 04 Jul 2023 00:00:00 +0000</pubDate><guid>http://shaddy.dev/posts/divisibility-rules/</guid><description>&lt;p>In my post on &lt;a href="http://shaddy.dev/posts/divisible-numbers-challenge/">The Divisible Numbers Challenge&lt;/a>, I mentioned a trick for determining in your head whether a number is divisible by 4.
A friend told me that that note was silly because everybody learns that stuff in primary school, which surprised me.
While I did learn about it in primary school, for some reason, I never realised that it&amp;rsquo;s probably common knowledge.
Of course, I was aware that some things are taught pretty much universally.
For example, I assume almost everybody knows about long division, even if most people probably have it grow rusty from disuse.
I guess I just always assumed that divisibility rules are kind of a niche topic that never comes up.
It seemed like one of those factoids &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> that you can bring up to surprise people.
But even still, maybe it is as uncommon as I believed, or maybe a reader finds themselves among the &lt;a href="https://xkcd.com/1053/">lucky 10,000&lt;/a> because their school didn&amp;rsquo;t cover it, they missed it, or for some other reason I could never even guess at..&lt;/p></description></item><item><title>My Content Consumption Pipeline: Efficient Information Management</title><link>http://shaddy.dev/posts/content-consumption-pipeline/</link><pubDate>Sun, 25 Jun 2023 00:00:00 +0000</pubDate><guid>http://shaddy.dev/posts/content-consumption-pipeline/</guid><description>&lt;p>Are you overwhelmed by the vast amount of content on the internet?
Do you struggle to decide what to read while drowning in a sea of information without even remembering what you&amp;rsquo;ve read before?
Or maybe you already know what you want to read by following a couple of places you know produce great content, but you&amp;rsquo;re not sure how to keep track of them all?
It&amp;rsquo;s so much work to check on all the things regularly, and so you forget and abandon?&lt;/p></description></item><item><title>Habitual Micro Exercises</title><link>http://shaddy.dev/posts/micro-exercise-habits/</link><pubDate>Tue, 23 May 2023 00:00:00 +0000</pubDate><guid>http://shaddy.dev/posts/micro-exercise-habits/</guid><description>&lt;p>When I was a kid, maybe around 10 years ago, and my father and I were readying for some trip I don&amp;rsquo;t remember, I noticed something weird.
My father was just standing there on one leg, the other pulled close to his body, high in the air, like a flamingo.
Balancing, yet stable as a rock, his fingers skittering across his raised foot, he tied his shoe in seconds.&lt;/p>
&lt;p>&lt;img src="flamingo.png" alt="Glorious anatomically inaccurate balancing flamingo">&lt;/p></description></item><item><title>The Divisible Numbers Challenge</title><link>http://shaddy.dev/posts/divisible-numbers-challenge/</link><pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate><guid>http://shaddy.dev/posts/divisible-numbers-challenge/</guid><description>&lt;p>After recently having handed in my Master&amp;rsquo;s Thesis for my Computer Science Degree, I have found myself looking for a job.
In IT, it is not uncommon to have a technical interview about solving some algorithmic problem while talking the interviewer through your thought process.
There&amp;rsquo;s a huge industry around sites like &lt;a href="https://leetcode.com/">LeetCode&lt;/a> just to prepare for this prospect.&lt;/p>
&lt;p>One company I interviewed with was &lt;a href="https://riiico.com/">RIIICO&lt;/a>.
They&amp;rsquo;re a start-up that seeks to improve factory planning through interactive 3D scans.
The interview process was nice, and I feel like I got along well with the team.
They provided me with an interview challenge that stuck with me.
Maybe it&amp;rsquo;s because it was the only actual LeetCode-style interview I had, but there are some really interesting aspects to the problem.&lt;/p></description></item><item><title>About</title><link>http://shaddy.dev/about/</link><pubDate>Sat, 29 Apr 2023 00:00:00 +0000</pubDate><guid>http://shaddy.dev/about/</guid><description>&lt;p>You have found Shaddy&amp;rsquo;s, a place where I may or may not be writing about things.
Feel free to drop me a mail at &lt;code>blog@shaddy.dev&lt;/code> .
You can also find me on Discord on &lt;a href="https://sandwich.chat">sandwich.chat&lt;/a>.&lt;/p></description></item><item><title>highlight-extract</title><link>http://shaddy.dev/projects/highlight-extract/</link><pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/highlight-extract/</guid><description/></item><item><title>Yomi-Reader</title><link>http://shaddy.dev/projects/yomi-reader/</link><pubDate>Sat, 05 Nov 2022 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/yomi-reader/</guid><description/></item><item><title>Book-Queue</title><link>http://shaddy.dev/projects/book-queue/</link><pubDate>Fri, 01 Apr 2022 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/book-queue/</guid><description/></item><item><title> osu-api-proxy</title><link>http://shaddy.dev/projects/osu-api-proxy/</link><pubDate>Sun, 19 Sep 2021 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/osu-api-proxy/</guid><description/></item><item><title> osu!replayer</title><link>http://shaddy.dev/projects/osu-replayer/</link><pubDate>Sun, 19 Sep 2021 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/osu-replayer/</guid><description/></item><item><title>Hello World</title><link>http://shaddy.dev/posts/hello-world/</link><pubDate>Sun, 14 Feb 2021 00:00:00 +0000</pubDate><guid>http://shaddy.dev/posts/hello-world/</guid><description>&lt;h2 id="hello-world">Hello World&lt;/h2>
&lt;p>An empty blog would look a little strange.&lt;br>
But I&amp;rsquo;ve decided it&amp;rsquo;s time.
No point just letting it sit on my hard drive.&lt;br>
So here we go.
My blog is out.&lt;br>
Maybe there will be content in the future.&lt;/p></description></item><item><title>osu!top</title><link>http://shaddy.dev/projects/osu-top/</link><pubDate>Fri, 18 Sep 2020 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/osu-top/</guid><description/></item><item><title>osuWebCollections</title><link>http://shaddy.dev/projects/osuwebcollections/</link><pubDate>Mon, 06 Apr 2020 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/osuwebcollections/</guid><description/></item><item><title>osu_reader</title><link>http://shaddy.dev/projects/osu_reader/</link><pubDate>Thu, 29 Aug 2019 00:00:00 +0000</pubDate><guid>http://shaddy.dev/projects/osu_reader/</guid><description/></item><item><title>RSS Feeds</title><link>http://shaddy.dev/feeds/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://shaddy.dev/feeds/</guid><description/></item></channel></rss>