commit: 93c09dd72d1d5694bc61685017811e6015300452
parent 5b15991b19b894dbf309e209d359caf744f33d59
Author: Drew DeVault <sir@cmpwn.com>
Date: Mon, 11 Nov 2024 17:04:22 +0100
Fix up links to l.sr.ht
Diffstat:
33 files changed, 59 insertions(+), 59 deletions(-)
diff --git a/content/blog/2022-01-15-The-RISC-V-experience.md b/content/blog/2022-01-15-The-RISC-V-experience.md
@@ -79,8 +79,8 @@ raised on GitLab today because I cannot render GitLab properly on this browser.
SourceHut mostly works, of course, but it's not exactly pleasant — I still
haven't found time to improve the SourceHut UI for NetSurf.
-<a href="https://l.sr.ht/jJWl.jpg">
- <img src="https://l.sr.ht/jJWl.jpg" alt="A picture of two computers stacked on on top of the other." style="max-width: 70%" />
+<a href="https://redacted.moe/f/6ad3d811.jpg">
+ <img src="https://redacted.moe/f/6ad3d811.jpg" alt="A picture of two computers stacked on on top of the other." style="max-width: 70%" />
</a>
<div class="text-center"><small>The lower computer is my typical x86_64
diff --git a/content/blog/2023-04-24-Who-leads-us.md b/content/blog/2023-04-24-Who-leads-us.md
@@ -7,8 +7,8 @@ Consider these two people, each captured in the midst of delivering a technical
talk.
<div class="images">
- <img src="https://l.sr.ht/AB9J.jpg" alt="A picture of a young trans woman in a red dress" />
- <img src="https://l.sr.ht/uI9v.jpg" alt="A picture of a middle-aged white man in a red shirt" />
+ <img src="https://redacted.moe/f/c34dbc20.jpg" alt="A picture of a young trans woman in a red dress" />
+ <img src="https://redacted.moe/f/bd64d141.jpg" alt="A picture of a middle-aged white man in a red shirt" />
</div>
<style>.images { display: flex; }</style>
diff --git a/content/blog/2023-08-09-Hello-from-Ares.md b/content/blog/2023-08-09-Hello-from-Ares.md
@@ -11,7 +11,7 @@ since I gave that talk on Helios at [FOSDEM] in February.
[Ares OS]: https://ares-os.org
[FOSDEM]: https://spacepub.space/w/wpKXfhqqr7FajEAf4B2Vc2
-
+
The talk I gave at FOSDEM was no doubt impressive, but it was a bit of a party
trick. The system was running on a Raspberry Pi with one process which included
diff --git a/content/blog/Alice-in-Wonderland.md b/content/blog/Alice-in-Wonderland.md
@@ -11,7 +11,7 @@ children's hearts, over almost four generations. And it has been stolen from
those generations, as part of the theft of one of these generations' greatest
treasures: the public domain.
-
+
I often use this film as an example when arguing about copyright. Almost
everyone I speak to was born well after the film's release (in fact, this is
diff --git a/content/blog/Cash-for-leftpad.md b/content/blog/Cash-for-leftpad.md
@@ -14,7 +14,7 @@ We need to figure out a way to curb this reckless behavior, but how?
I have an idea. Remember left-pad? That needs to happen more often.
-
+
I'll pay you cold hard cash to delete your npm module. The exact amount will be
determined on this equation, which is designed to offer higher payouts for
diff --git a/content/blog/Designing-a-replacement-part-for-my-truck.md b/content/blog/Designing-a-replacement-part-for-my-truck.md
@@ -34,7 +34,7 @@ was the turn signal lever snapping and becoming slack, which I fixed by pulling
open the steering column, re-aligning the lever, and tightening an internal
screw. The more interesting problem, however, was this:
-
+
This plastic part holds an arm in place, which is engaged by a lever in the
center of the window which folds closed over the truck bay. It's used to hold
@@ -49,27 +49,27 @@ pictures of it from several angles for later reference. I took some notes:
[^1]: Oh man, I've always wanted a caliper, and now I have an excuse!
-
+
Then, I used solvespace to design the following part:
-
+
This was the third iteration — I printed one version, brought it out to
the truck to compare with the broken part, made refinements to the design, then
rinse and repeat. Here's an earlier revision being compared with the broken
piece:
-
+
Finally, I arrived at a design I liked and sent it to the printer.
-
+
I took some pliers to the remaining plastic bits from the broken part, and sawed
off the rivets. I attached the replacement with superglue and ta-da!
-
+
If the glue fails, I'll drill out what's left of the rivets and secure it with
screws. This may require another revision of the design, which will also give me
diff --git a/content/blog/Himitsu.md b/content/blog/Himitsu.md
@@ -55,7 +55,7 @@ ask for the user's consent.
$ hiq -d proto=web host user password! comment?
```
-
+
```
proto=web host=example.org user=jdoe password!=hunter2
@@ -105,7 +105,7 @@ Martijn Braam has written a nice GTK+ frontend called [keyring]:
There's also a [Firefox add-on] which auto-fills forms for keys with proto=web:
[Firefox add-on]: https://addons.mozilla.org/en-US/firefox/addon/himitsu-integration/
-
+
We also have a package called [himitsu-ssh] which provides an SSH agent:
diff --git a/content/blog/History-will-not-remember-us-fondly.md b/content/blog/History-will-not-remember-us-fondly.md
@@ -64,11 +64,11 @@ discriminatory laws against LGBT Poles, and conservative populism has taken hold
of much of Italy, just to name a few more. Social and political systems are
regressing worldwide.
-<a href="https://l.sr.ht/Gd_r.png">
+<a href="https://redacted.moe/f/85f7d261.png">
<img
style="max-width: 100%"
alt="A visualization of democratic decline across Europe and Eurasia, showing that declines have outweighed gains in each of the past 10 years, demonstrating a persistent net decline in democracy."
- src="https://l.sr.ht/Gd_r.png" />
+ src="https://redacted.moe/f/85f7d261.png" />
</a>
<small style="display: block; text-align: center">Source: <a href="https://freedomhouse.org/report/nations-transit/2020/dropping-democratic-facade">Freedom House</a></small>
diff --git a/content/blog/How-to-store-data-forever.md b/content/blog/How-to-store-data-forever.md
@@ -211,4 +211,4 @@ us.
In summary: no matter what, definitely don't do this:
-
+
diff --git a/content/blog/Hyprland-toxicity.md b/content/blog/Hyprland-toxicity.md
@@ -165,12 +165,12 @@ Discord. Consider that this lacks context and apply your grain of salt
accordingly.

+called "slave labor" responds with "no way", "the computer reddit woke up"](https://redacted.moe/f/28580a3a.png)

+as if it recycles very limited context to get more clicks"](https://redacted.moe/f/0d233e9f.png)
I apologise to Vaxry for interrupting their rest, and wish them a speedy
recovery.
@@ -178,7 +178,7 @@ recovery.

+professionalism.](https://redacted.moe/f/53c4bc32.png)
[Here](https://paste.sr.ht/~sircmpwn/093af570609ec87e987af6cc69c59e9624c2b280)
is a plain text log which includes some additional discussion.
diff --git a/content/blog/In-praise-of-Postgres.md b/content/blog/In-praise-of-Postgres.md
@@ -15,7 +15,7 @@ was in July of 1996. It used this logo:
[^1]: The first release of Postgre**SQL**. Its lineage can be traced further back.
-
+
After 25 years of persistence, and a better logo design, Postgres stands today
as one of the most significant pillars of profound achievement in free software,
diff --git a/content/blog/Kernel-hacking-with-Hare-part-1.md b/content/blog/Kernel-hacking-with-Hare-part-1.md
@@ -72,7 +72,7 @@ Here's an example of what the code shown in this article is going to produce:

+brown.](https://redacted.moe/f/ad558439.png)
This is a single page of physical memory which has been allocated for the
bootinfo data, where each cell is a byte. The bootinfo structure itself comes
diff --git a/content/blog/Kernel-hacking-with-Hare-part-2.md b/content/blog/Kernel-hacking-with-Hare-part-2.md
@@ -25,7 +25,7 @@ kernel.
[0]: https://git.sr.ht/~sircmpwn/helios
[1]: https://git.sr.ht/~sircmpwn/helios/tree/master/item/vulcan
-
+
While I don't anticipate multi-threaded processes playing a huge role in the
complete Ares system in the future, they do have a place. In the long term, I
diff --git a/content/blog/Language-design-considerations.md b/content/blog/Language-design-considerations.md
@@ -110,7 +110,7 @@ The grammar for this looks like the following:[^caveat]
[^caveat]: Disregard the second case of "append-values"; it's not relevant here.
-
+
So, the proposed "append(x, \[0...\], 10)" expression is *parsed* like this:
@@ -136,7 +136,7 @@ append(x, [0...], 10); // New feature
The grammar for this is much better:
-
+
Now we can distinguish between these cases while parsing, so the first example
is parsed as:
@@ -191,10 +191,10 @@ neatly solves all of our problems. We have arrived at design which:
I daresay that, in addition to fulfilling the desired new feature, we have
improved the other cases as well. The final grammar for this is the following:
-
+
If you're curious to see more, I've extracted the relevant page of the
-specification for you to read: [download it here](https://l.sr.ht/eeta.pdf). I
+specification for you to read: [download it here](https://redacted.moe/f/9c48d5d4.pdf). I
hope you found that interesting and insightful!
*Note: Much of these details are subject to change, and we have future
diff --git a/content/blog/Organizing-my-thoughts.md b/content/blog/Organizing-my-thoughts.md
@@ -18,7 +18,7 @@ Well, like this (click for full size):
[](https://l.sr.ht/4QOL.png)
+A flowchart is shown outside of a page.](https://redacted.moe/f/920d5d58.png)](https://redacted.moe/f/920d5d58.png)
I don't have the bandwidth to take on a new project of this scope, so I'll
describe what I think this should look like in the hopes that it will inspire
diff --git a/content/blog/Our-self-hosted-parser-design.md b/content/blog/Our-self-hosted-parser-design.md
@@ -81,7 +81,7 @@ This gives us a reasonably clean path to writing a formal grammar (and
specification) for the language, which is what we did next.

+given above.](https://redacted.moe/f/00bba3bd.png)
All of these samples describe a struct type. The following example shows what
this grammar looks like in real code — starting from the word "struct" and
@@ -523,7 +523,7 @@ fn peek(
Let's say we're looking for a binding like our sample code to show up next. The
grammar from the spec is as follows:
-
+
And here's the code that parses that:
diff --git a/content/blog/Reflection.md b/content/blog/Reflection.md
@@ -104,8 +104,8 @@ is defined by the <span class="redacted">xxxx</span> specification and cannot be
overridden by the program, so no further information is necessary. The relevant
part of the spec is:
-
-
+
+
More information is provided for more complex types, such as structs.
diff --git a/content/blog/Shell-literacy.md b/content/blog/Shell-literacy.md
@@ -18,7 +18,7 @@ detail is knowing when to drop it. My daily workflow involves several open
terminals, generally one with Vim, another to run builds or daemons, and a third
which just keeps a shell handy for anything I might ask of it.
-[](https://l.sr.ht/g_oL.png)
+[](https://redacted.moe/f/1bbaf26c.png)
The shell I keep open allows me to perform complex tasks and answer complex
questions as I work. I find interesting things with [git grep][git grep],
diff --git a/content/blog/Spamtoberfest.md b/content/blog/Spamtoberfest.md
@@ -21,7 +21,7 @@ of Service (DDoS) attack is ongoing, wasting the time of thousands of free
software maintainers with an onslaught of meaningless spam. Bots are spamming
[tens of thousands][1] of pull requests like this:
-[](https://github.com/hundredrabbits/100r.co/pull/39/files)
+[](https://github.com/hundredrabbits/100r.co/pull/39/files)
[1]: https://github.com/search?q=amazing+project+is:pr&type=Issues
@@ -58,7 +58,7 @@ to maintainers, leaving them to clean up the spam. I've never been impressed
with Hacktoberfest contributions, even the ones which aren't obviously written
by a bot:
-[](https://github.com/whatwg/html/pull/5975/files)
+[](https://github.com/whatwg/html/pull/5975/files)
Hacktoberfest is, and has always been, about one thing: marketing for Digital
Ocean.
@@ -84,7 +84,7 @@ like Google Summer of Code do this better. Programs where a marketing department
spends $5,000 on T-Shirts to flood maintainers with garbage and clothe people in
ads are doing the opposite: *hurting* open source.
-[](https://l.sr.ht/KoFK.png)
+[](https://redacted.moe/f/a50f2dfc.png)
Check out [@shitoberfest on Twitter](https://twitter.com/shitoberfest) for more
Hacktoberfest garbage.
diff --git a/content/blog/Status-update-December-2021.md b/content/blog/Status-update-December-2021.md
@@ -19,7 +19,7 @@ little tetromino game (audio warning):
[libui]: https://github.com/andlabs/libui
-<video src="https://l.sr.ht/PMwA.webm" controls></video>
+<video src="https://redacted.moe/f/182e81ce.webm" controls></video>
I am developing this to flesh out the SDL wrapper and get a feel for game
development in the new language, but I also intend to take it on as a serious
diff --git a/content/blog/Status-update-June-2021.md b/content/blog/Status-update-June-2021.md
@@ -6,11 +6,11 @@ date: 2021-06-15
Hiya! Got another status update for you. First, let me share this picture that
my dad and I took on our recent astronomy trip (click for full res):
-[](https://l.sr.ht/JRTV.jpg)
+[](https://redacted.moe/f/a3b37775.jpg)
Bonus Venus:
-
+
So, what's new? With SourceHut, there are a few neat goings-on. For one, thanks
to Michael Forney putting the finishing touches on the patchset, the
diff --git a/content/blog/Status-update-June-2022.md b/content/blog/Status-update-June-2022.md
@@ -36,7 +36,7 @@ month ago (and to think it's only three months old!).
[helios]: https://drewdevault.com/2022/06/13/helios.html
-
+
There was also a lot of progress on [Himitsu], which I plan on presenting in a
video and blog post in a few days time. The Firefox add-on actually works now
@@ -61,6 +61,6 @@ architectures for now. We now have complex number support, as well as
improvements to encoding::json and net::uri.

+support](https://redacted.moe/f/737ed5b7.png)
That's all for today. Until next time!
diff --git a/content/blog/Status-update-March-2022.md b/content/blog/Status-update-March-2022.md
@@ -16,7 +16,7 @@ stack traces on assertion failures and such. I understand that someone is
working on DWARF support as well, so perhaps we'll soon be able to translate
function name + offset into a file name and line number.
-
+
I also started working on a PNG decoder this weekend, which at the time of
writing can successfully decode 77 of the 161 PNG test vectors. I am quite
diff --git a/content/blog/Status-update-May-2022.md b/content/blog/Status-update-May-2022.md
@@ -26,7 +26,7 @@ we have entered userspace. Next up is rigging up syscalls and scheduling, then
we're going to start fleshing out an L4-inspired API and writing some drivers in
userspace.
-
+
[Helios]: https://sr.ht/~sircmpwn/helios
diff --git a/content/blog/Status-update-October-2020.md b/content/blog/Status-update-October-2020.md
@@ -57,7 +57,7 @@ viewing pleasure:
[himitsu]: https://git.sr.ht/~sircmpwn/himitsu
-
+
Bonus update: two new [BARE](https://baremessages.org) implementations have
appeared: OCaml and Java.
@@ -67,5 +67,5 @@ support!
<details>
<summary>...</summary>
- <img src="https://l.sr.ht/y15d.png" alt="A screenshot of a page of a programming language specification detailing the syntax of tagged unions" />
+ <img src="https://redacted.moe/f/26c6ba23.png" alt="A screenshot of a page of a programming language specification detailing the syntax of tagged unions" />
</details>
diff --git a/content/blog/Status-update-October-2022.md b/content/blog/Status-update-October-2022.md
@@ -35,7 +35,7 @@ faults to userspace supervisor processes:

+write succeeded (because a page was mapped underneath the write).](https://redacted.moe/f/52ee4c38.png)
```hare
@test fn task::pagefault() void = {
@@ -75,9 +75,9 @@ real hardware:
[0]: https://drewdevault.com/2022/10/02/Kernel-hacking-with-Hare-part-2.html
-
+
-[Here's an ISO](https://l.sr.ht/NwsO.iso) you can boot on your own x86\_64
+[Here's an ISO](https://redacted.moe/f/f95549d6.iso) you can boot on your own x86\_64
hardware to see if it works for you, too. If you have problems, take a picture
of the issue, boot Linux and [email me](mailto:sir@cmpwn.com) said picture, the
output of lscpu, and any other details you deem relevant.
@@ -98,7 +98,7 @@ Consequently, the first Mercury driver is up and running:
[1]: https://git.sr.ht/~sircmpwn/mercury
-
+
This driver includes a simple driver manifest, which is embedded into its ELF
file and processed by the driver loader to declaratively specify the
diff --git a/content/blog/The-worlds-dumbest-IRC-bot.md b/content/blog/The-worlds-dumbest-IRC-bot.md
@@ -64,7 +64,7 @@ This has not been an entirely smart move.

+wormy claims is 367880 people as of 2009.](https://redacted.moe/f/52eb4eba.png)
One "feature", inspired by [Bryan
Cantrill](https://www.youtube.com/watch?v=30jNsCVLpAE), records every time the
diff --git a/content/blog/You-cant-capture-the-nuance.md b/content/blog/You-cant-capture-the-nuance.md
@@ -44,7 +44,7 @@ This is just for English, by the way. I often type in Japanese, which has an
entirely alien set of nuances. Here's what that looks like on Android (mobile is
another beast entirely, too!):
-<video src="https://l.sr.ht/u274.webm" muted autoplay loop controls>
+<video src="https://redacted.moe/f/2f2f6815.webm" muted autoplay loop controls>
If you're seeing this, your browser doesn't support HTML5 video, or webm, idk.
</video>
diff --git a/content/blog/git-snail-mail.md b/content/blog/git-snail-mail.md
@@ -21,7 +21,7 @@ date: 2022-04-01
[0]: https://git-send-email.io
-
+
At least, this is what I'd like to say, but I ended up cancelling the project
before it was ready for April Fool's. After my friend kline (a staffer at Libera
@@ -70,7 +70,7 @@ This is generated by my git snail-mail code and then run through pdflatex to
produce a file [like this][1]. It pipes it into lp(1) to send it to your printer
and ta-da!
-[1]: https://l.sr.ht/2VXT.pdf
+[1]: https://redacted.moe/f/3422cde8.pdf
I chose not to make the commit selection work like git send-email, because I
think that's one of the most confusing parts of git send-email. Instead I just
diff --git a/content/blog/helios.md b/content/blog/helios.md
@@ -13,7 +13,7 @@ it today.
[Hare]: https://harelang.org
[seL4]: https://sel4.systems
-
+
Drawing some inspiration from seL4, Helios uses a capability-based design for
isolation and security. The kernel offers primitives for allocating physical
diff --git a/content/blog/io_uring-finger-server.md b/content/blog/io_uring-finger-server.md
@@ -425,7 +425,7 @@ I/O they handle, plus a special case for error handling:
3. Reading from the plan file
4. Forwarding its contents to the client
-
+
Each circle in this diagram represents a point where we will submit some I/O to
our io_uring instance and return to the event loop. If any I/O resulted in an
diff --git a/content/blog/pmOS-on-xiaomi-poco-f1.md b/content/blog/pmOS-on-xiaomi-poco-f1.md
@@ -105,8 +105,8 @@ generally useful thing to have around. I think I've lent it to others more than
I've used it myself.
[4]: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/552
-[5]: https://l.sr.ht/TOL9.png
-[6]: https://l.sr.ht/6SQX.png
+[5]: https://redacted.moe/f/40dd2e96.png
+[6]: https://redacted.moe/f/ce6414d5.png
There are many other apps which work without issues. I found that [Foliate][7]
works great for reading e-books and [Evince][8] works nicely for PDFs (two
diff --git a/content/blog/stalebot.md b/content/blog/stalebot.md
@@ -12,7 +12,7 @@ course of your work.
This is a terrible, horrible, no good, very bad idea.
-
+
I'm not sure what motivates maintainers to install this on their repository,
other than the fact that GitHub recommends it to them. Perhaps it's motivated by