Compare commits
7 commits
d15d7e06ba
...
7a52aa296c
Author | SHA1 | Date | |
---|---|---|---|
7a52aa296c | |||
00dc6b83b6 | |||
edda46356e | |||
57ea6fde81 | |||
4fd47f9ae3 | |||
160b0d65f1 | |||
e5e5dfa72a |
12 changed files with 137 additions and 1 deletions
BIN
content/blog/2025/05/05/butterrobot-0.4.0/domainblocker.gif
Normal file
BIN
content/blog/2025/05/05/butterrobot-0.4.0/domainblocker.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 MiB |
21
content/blog/2025/05/05/butterrobot-0.4.0/index.md
Normal file
21
content/blog/2025/05/05/butterrobot-0.4.0/index.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
+++
|
||||
title = "Butterrobot 0.4.0"
|
||||
date = 2025-05-05
|
||||
tags = ["butterrobot", "golang", "projects", "releases"]
|
||||
+++
|
||||
|
||||
That was fast! From the moment I refactored the code to Golang and started using it some new features arrived that I have been making use.
|
||||
|
||||
The last release adds two plugins:
|
||||
|
||||
- **Domain blocker**: Allows adding the plugin to a channel and set up a list of domains to block. If a message contains a link to one of those domains, the message is deleted and the user warned.
|
||||
|
||||

|
||||
|
||||
- **Remind me**: Allows users to reply a message with `!remindme X` (where `X` is a relative time like `3d`) so the bot can remind the user when that amount of time has happened of the message they replied to.
|
||||
|
||||

|
||||
|
||||
My initial idea with Butterrobot was to give users a plugin toolkit that allowed for configuration, database and storage, but since now all plugins live in the same codebase those were fairly easy to implement. Some things require a bit of polish (like the plugin configuration UI) but for now, it just works and I'm happy with it.
|
||||
|
||||
You can find the latest release for Butterrobot in [it's git repository](https://git.nakama.town/fmartingr/butterrobot)
|
BIN
content/blog/2025/05/05/butterrobot-0.4.0/remindme.png
Normal file
BIN
content/blog/2025/05/05/butterrobot-0.4.0/remindme.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 116 KiB |
43
content/blog/2025/05/05/dharma-0.1.0/index.md
Normal file
43
content/blog/2025/05/05/dharma-0.1.0/index.md
Normal file
|
@ -0,0 +1,43 @@
|
|||
+++
|
||||
title = "Dharma 0.1.0"
|
||||
date = 2025-05-05
|
||||
tags = ["projects", "dharma", "releases", "golang"]
|
||||
+++
|
||||
|
||||
I've created yet another small pet project. **Dharma** is a small CLI utility to check for broken links in web pages. I needed something like this because when I [migrated to Hugo](/blog/2024/08/09/welcome-hugo/) some leftovers where around (images, pages, old post, etc.). I wanted a way to check that easily from the CLI and also to add it as a CI step when a new version of the site is deployed.
|
||||
|
||||
This is an example output run over my blog:
|
||||
|
||||
```bash
|
||||
$ dharma --internal-only -d 10 https://fmartingr.com
|
||||
Scanning website: https://fmartingr.com
|
||||
Website scan report for: https://fmartingr.com
|
||||
Scanned at: Mon, 05 May 2025 19:48:41 CEST
|
||||
Total resources checked: 1691
|
||||
Success: 1672, Errors: 19
|
||||
Internal links: 1672 success, 19 errors
|
||||
External links: 0 success, 0 errors
|
||||
|
||||
Errors found:
|
||||
404 (link) https://fmartingr.com/tags/videogames/splash.jpg [from: https://fmartingr.com/tags/videogames/]
|
||||
404 (link) https://fmartingr.com/blog/page/5/image.jpg [from: https://fmartingr.com/blog/page/5/]
|
||||
404 (link) https://fmartingr.com/blog/2016/12/21/new-site/Lektor [from: https://fmartingr.com/blog/2016/12/21/new-site/]
|
||||
404 (link) https://fmartingr.com/made-with-open-source [from: https://fmartingr.com/blog/2016/12/21/new-site/]
|
||||
404 (link) https://fmartingr.com/blog/page/6/image.jpg [from: https://fmartingr.com/blog/page/6/]
|
||||
404 (link) http://fmartingr.com/tags/videogames/splash.jpg [from: http://fmartingr.com/tags/videogames/]
|
||||
404 (link) https://fmartingr.com/nintendo-switch [from: https://fmartingr.com/blog/2017/01/31/why-i-preordered-the-nintendo-switch/]
|
||||
404 (link) https://fmartingr.com/blog/page/7/image.jpg [from: https://fmartingr.com/blog/page/7/]
|
||||
404 (link) https://fmartingr.com/blog/page/7/splash.jpg [from: https://fmartingr.com/blog/page/7/]
|
||||
404 (link) https://fmartingr.com/blog/page/8/image.jpg [from: https://fmartingr.com/blog/page/8/]
|
||||
404 (image) https://fmartingr.com/blog/2020/08/02/july/notion-tasks-320.png [from: https://fmartingr.com/blog/2020/08/02/july/]
|
||||
404 (image) https://fmartingr.com/blog/2020/08/02/july/notion-games-320.png [from: https://fmartingr.com/blog/2020/08/02/july/]
|
||||
404 (link) https://fmartingr.com/blog/2020/06/02/june/ [from: https://fmartingr.com/blog/2020/08/02/july/]
|
||||
404 (link) http://fmartingr.com/blog/page/5/image.jpg [from: http://fmartingr.com/blog/page/5/]
|
||||
404 (link) http://fmartingr.com/blog/2016/12/21/new-site/Lektor [from: http://fmartingr.com/blog/2016/12/21/new-site/]
|
||||
404 (link) http://fmartingr.com/made-with-open-source [from: http://fmartingr.com/blog/2016/12/21/new-site/]
|
||||
404 (link) http://fmartingr.com/blog/page/6/image.jpg [from: http://fmartingr.com/blog/page/6/]
|
||||
404 (link) http://fmartingr.com/blog/page/7/splash.jpg [from: http://fmartingr.com/blog/page/7/]
|
||||
404 (link) http://fmartingr.com/blog/page/7/image.jpg [from: http://fmartingr.com/blog/page/7/]
|
||||
```
|
||||
|
||||
Dharma 0.1.0 can be found in it's [git repository](https://git.nakama.town/fmartingr/dharma).
|
BIN
content/blog/2025/05/11/i-read-half-a-king/cover.jpg
Normal file
BIN
content/blog/2025/05/11/i-read-half-a-king/cover.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 93 KiB |
19
content/blog/2025/05/11/i-read-half-a-king/index.md
Normal file
19
content/blog/2025/05/11/i-read-half-a-king/index.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
+++
|
||||
title = "I read Half a King"
|
||||
date = 2025-05-11
|
||||
tags = ["books", "I read"]
|
||||
+++
|
||||
|
||||
Half a King carries the checks of a classic adventure novel tracing the hero’s journey.
|
||||
|
||||

|
||||
|
||||
<!--more-->
|
||||
|
||||
Coming from a background of fantasy novels I expected something along the lines of what I usually read —given the comparisons and recommendations— but that wasn’t the case. There’s no magic or fantasy here; instead, we follow a crippled protagonist whose fate is to become king. Why do I mention this? Because despite the differences **Half a king kept me hooked from beginning to end**.
|
||||
|
||||
It’s thrilling —at times so intense it barely lets you breathe— introducing interesting characters whom our protagonist meets along the way. We see how he relates to them and to the world itself, with enemies who become allies and impossible romances, all set against the backdrop of a harsh land where even the simplest misstep can lead you to _death’s door_.
|
||||
|
||||
Although it’s the first book in the trilogy, it can easily be read as a standalone story since the ending ties things up clearly and leaves few loose ends.
|
||||
|
||||
Personally, I’ll definitely be reading the next one in the trilogy. A must have for fans of adventure novels.
|
BIN
content/blog/2025/05/18/i-played-dank-tomb-pico-8/cover.png
Normal file
BIN
content/blog/2025/05/18/i-played-dank-tomb-pico-8/cover.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
26
content/blog/2025/05/18/i-played-dank-tomb-pico-8/index.md
Normal file
26
content/blog/2025/05/18/i-played-dank-tomb-pico-8/index.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
+++
|
||||
title = "I played Dank Tomb (PICO-8)"
|
||||
date = 2025-05-18
|
||||
tags = ["videogames", "I played"]
|
||||
+++
|
||||
|
||||
> I bought an Anbernic device mainly to play PICO-8 games on it, but after playing two games the screen broke and I had to return it so I still have a nice backlog of PICO-8 games to go through when I sit down and set up my Retroid Pocket.
|
||||
|
||||
<figure>
|
||||
<img src="/blog/2025/05/18/i-played-dank-tomb-pico-8/cover.png" \>
|
||||
<figcaption>The cartdridge for the game... or to better put it, <a href="https://pico-8.fandom.com/wiki/P8PNGFileFormat" target="_blank">this image <strong>is the actual game!</strong></a></figcaption>
|
||||
</figure>
|
||||
|
||||
<!--more-->
|
||||
|
||||
I already knew about Dank Tomb, but little I knew how good this game was and that I was following [his author on the fediverse when I asked for Pico-8](https://fosstodon.org/@krajzeg@mastodon.gamedev.place/113459527815468345) games recommendations. He already made some awesome games, considering the pico-8 limitations.
|
||||
|
||||
Dank Tomb is a puzzle-adventure game, and a difficult one at it. Either that or I'm incredibly bad, which could be the case. You get into a tomb split into rooms _ala_ Legend of Zelda where you need to avoid dangers, solve puzzles and try no to fall to your demise. Which is the most annoying point for me in the game: I didn't quite get the hang of the jumping. Some landed perfectly, others I just died... that didn't stop me from continuing playing tho, because I was deep into making it to the end.
|
||||
|
||||
Graphics are stunning for a Pico-8 game, soundtrack a bit lacking (but understandable!) and not only that the game has some secrets you need to discover on your own.
|
||||
|
||||
Definitely a must on Pico-8.
|
||||
|
||||

|
||||
|
||||
Yes, I only got two secrets after dying 146 times. Probably I am that bad at it.
|
BIN
content/blog/2025/05/25/i-read-leviatan/cover.jpg
Normal file
BIN
content/blog/2025/05/25/i-read-leviatan/cover.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 166 KiB |
19
content/blog/2025/05/25/i-read-leviatan/index.md
Normal file
19
content/blog/2025/05/25/i-read-leviatan/index.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
+++
|
||||
title = "I Read Leviatán"
|
||||
date = 2025-05-26
|
||||
tags = ["books", "I read"]
|
||||
+++
|
||||
|
||||
A short series—quick to read, very entertaining—and it keeps you wondering: “So… what happened after that?”
|
||||
|
||||

|
||||
|
||||
<!--more-->
|
||||
|
||||
The premise is simple but told through a fascinating narrative device: a spaceship carrying middle and high‑school students crashes, and it’s assumed there are no survivors. Years later, space scavengers stumble upon the wreck and piece together events by reading one of the kids’ journals they find on board. What really happened? Is everything on the diary true? And, beyond that… what would the reader have done in the same situation? Who —or what— is the real monster here?
|
||||
|
||||
The story follows the writer’s perspective so the space scavengers piece together the events (along with us, the _real readers_) by reading the journal as they investigate the ship and keep uncovering clues. Can't say more without spoiling the story!
|
||||
|
||||
I loved it, is one of those series that being short makes it even more enjoyable, and it's capable of telling so much in _a few_ pages. Totally recommended, more so if you like the sci-fi / thriller genres.
|
||||
|
||||
The physical edition (in Spain) it’s excellent, even including full‑color pages! My only nib is that it doesn’t follow a standard format (neither kazenban nor tankōbon) so finding a protective sleeve was a bit of a challenge—but the trade‑off is that the binding doesn’t swallow any of the artwork, so I’m happy to let that slide.
|
8
content/projects/dharma.md
Normal file
8
content/projects/dharma.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
+++
|
||||
title = "Dharma"
|
||||
description = "A CLI tool to detect broken links in websites"
|
||||
layout = "projects"
|
||||
repository = "https://git.nakama.town/fmartingr/dharma"
|
||||
+++
|
||||
|
||||
A CLI tool to detect broken links in websites. It can be used to check the status of a website's internal and external links and report any broken links in JSON or friendly format. It not only follows links but also checks for scripts, `url()` and `import()` in CSS files.
|
|
@ -20,7 +20,7 @@
|
|||
{{- if in $validFormats $format }}
|
||||
{{- if gt $page.Paginator.TotalPages 1 }}
|
||||
<ul class="pagination pagination-{{ $format }}">
|
||||
{{- partial (printf "partials/inline/pagination/%s" $format) $page }}
|
||||
{{- partial (printf "inline/pagination/%s" $format) $page }}
|
||||
</ul>
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue