Fix dead links
All checks were successful
Deploy / Deploy Website (push) Successful in 31s

This commit is contained in:
Joshua Goins 2025-04-08 19:53:24 -04:00
parent eddf854fab
commit b5038cd312
26 changed files with 39 additions and 28 deletions

View file

@ -20,7 +20,7 @@ $ hugo server
### Gallery System
The galleries are defined via JSON, located under `data`. The files are rarely edited by hand, I use [Redai](https://codeberg.org/redstrate/Redai) to edit these. The JSON is read by Hugo when the site is built via [Content adapters](https://gohugo.io/content-management/content-adapters/).
The galleries are defined via JSON, located under `data`. The files are rarely edited by hand, I use [Redai](https://code.ryne.moe/redstrate/redai) to edit these. The JSON is read by Hugo when the site is built via [Content adapters](https://gohugo.io/content-management/content-adapters/).
## Contributing

View file

@ -58,7 +58,7 @@ My talk [was about integrating C++, Qt, Rust (and KDE Frameworks.)](https://conf
The results of my talk I think were really cool! Within the KDE community, there seems to be some interest in picking up Rust. Lots of KDE developers were in varying stages of Rust interest. No one told me how stupid it was to glue the two together, so the general vibe I think is "it's pretty neat, let's see how well this works." ~~Unfortunately due to technical issues my talk was not recorded properly. A colleague recorded my talk on his phone, and will hand that over to the Akademy organizers soon.~~
The talk is now available on [PeerTube](https://tube.kockatoo.org/w/bdDAWwGXRyWmyVBn9mdbnP). [The slides are also available online](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf).
The talk is now available on [PeerTube](https://tube.kockatoo.org/w/hZGsQ9DbCtfp5n1sZXXi3k). [The slides are also available online](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf).
Oh yeah, and the KDE goal I'm championing ["We care about your Input"](https://phabricator.kde.org/T17433) was selected! I'm pretty excited to keep hacking away on graphics tablets in KDE Plasma. Thanks to [NLnet](https://nlnet.nl/) for sponsoring us to work on that, along with Wayland accessibility improvements.

View file

@ -24,7 +24,7 @@ The second step is adding a new JSON file which describes the artwork's attribut
* Whether the artwork is NSFW.
* What program was used.
The JSON is simple enough to write with a text editor, but I also made [a graphical application](https://codeberg.org/redstrate/redai) which makes mass editing a breeze:
The JSON is simple enough to write with a text editor, but I also made [a graphical application](https://code.ryne.moe/redstrate/redai) which makes mass editing a breeze:
![Screenshot of the art manager program. The previews are helpful for writing good alternative text.](redai.webp)

View file

@ -104,4 +104,4 @@ Slot info is always saved automatically when calling one of the save functions."
Their only custom `.sav` file seems to be "Persistent.sav", which if I had to guess without looking is where the majority of the save data lives.
**Update:** I have begun writing a parser for this format, which is [available here](https://github.com/redstrate/Ireko).
**Update:** I have begun writing a parser for this format, which is [available here](https://code.ryne.moe/redstrate/ireko).

View file

@ -36,7 +36,7 @@ OK, I can't help myself from asking questions about the hardware device they ann
---
Let's talk about [RetroDeck](https://retrodeck.net/). It's a very similar project - even down to the naming scheme - except for some differences which aren't relevant here. Like EmuDeck, they also accept donations but they link to [their donation page](https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/).
Let's talk about [RetroDeck](https://retrodeck.net/). It's a very similar project - even down to the naming scheme - except for some differences which aren't relevant here. Like EmuDeck, they also accept donations but they link to [their donation page](https://retrodeck.readthedocs.io/en/latest/wiki_about/donations-licenses/).
![The RetroDeck donation wiki page. I like how they immediately start by telling you _not_ to donate to them first.](retrodeck-wiki.webp)

View file

@ -19,7 +19,7 @@ I have slightly updated the main window design again, which simplifies a lot of
![The new design in action!](newdesign.webp)
{{< add "feature" >}} Packagers (which is mostly me) will be happy, as Astra [now has tarballs automatically generated from the latest git](https://github.com/redstrate/Astra/commit/c1646e20f6cbd711833cba1fb4fc6966d0035ee5)! This includes vendored cargo dependencies, and any git submodules I use, so it's possible to compile Astra offline again. You can find these on [xiv.zone](https://xiv.zone/astra/beta/) {{< release "0.5.0" >}}
{{< add "feature" >}} Packagers (which is mostly me) will be happy, as Astra [now has tarballs automatically generated from the latest git](https://github.com/redstrate/Astra/commit/c1646e20f6cbd711833cba1fb4fc6966d0035ee5)! This includes vendored cargo dependencies, and any git submodules I use, so it's possible to compile Astra offline again. You can find these on [xiv.zone](https://xiv.zone/astra/install) {{< release "0.5.0" >}}
{{< add "feature" >}} The [auto login](https://github.com/redstrate/Astra/commit/d39c702d0aa05e7bbf0f744a8a1f12a1fcfad961) now has more error handling, detailing why the auto login could fail. {{< release "0.5.0" >}}

View file

@ -9,9 +9,10 @@ series:
- Figure Reviews
aliases:
- /articles/figure1/
summary: "Hello again! This is my figure review of the Mari Figure from Sega."
---
Hello again! This is my figure review of the [Mari Figure from Sega](https://myfigurecollection.net/item/945032). <!--more--> She was released around 2020 as a prize
Hello again! This is my figure review of the [Mari Figure from Sega](https://myfigurecollection.net/item/945032). She was released around 2020 as a prize
figure celebrating the launch of "Evangelion 3.0+1.0", before it got pushed back to 2021. I
didn't preorder her on your typical reseller website but instead got her a little earlier by buying her on [buyee.jp](https://buyee.jp).

View file

@ -9,9 +9,10 @@ aliases:
- /articles/figure2
series:
- Figure Reviews
summary: "Today we're reviewing the Flare reissue of the YoRHa No. 2 Type B released by Square Enix, a company that despite being very, very controlling of their merchandise has the absolute worst online store ever."
---
Today we're reviewing the Flare reissue of the YoRHa No. 2 Type B released by Square Enix, a company that despite being very, very controlling of their merchandise has the absolute worst online store ever. <!--more--> This isn't just a single case, you can read online where people have similar experiences with Square Enix's online store.
Today we're reviewing the Flare reissue of the YoRHa No. 2 Type B released by Square Enix, a company that despite being very, very controlling of their merchandise has the absolute worst online store ever. This isn't just a single case, you can read online where people have similar experiences with Square Enix's online store.
# The Buying Process

View file

@ -7,11 +7,10 @@ tags:
- Review
series:
- Figure Reviews
summary: "It's time for another figure review, this time with Ryza!"
---
It's time for another figure review, this time with Ryza!
<!--more-->
Funnily enough, this figure actually convinced me to try Atelier Ryza (1) again, which runs great on the Steam Deck thanks
It's time for another figure review, this time with Ryza! Funnily enough, this figure actually convinced me to try Atelier Ryza (1) again, which runs great on the Steam Deck thanks
to the atelier-sync-fix created by doujistin, who created DXVK. Games aside, here's the figure.
The figure is around average price ($150) and was already released by the time I got around to purchasing it.

View file

@ -7,6 +7,7 @@ tags:
- Review
series:
- Figure Reviews
summary: "It's time to review another Rebuild of Evangelion figure, and this time it's Mari again!"
---
It's time to review another Rebuild of Evangelion figure, and this time it's Mari again! I was specifically drawn to [this figure](https://myfigurecollection.net/item/1090742) because it's not another plugsuit one[^1]. Yes, plugsuits are cool but I'm getting tired of seeing them in figure form. I purchased this one from AmiAmi as usual. This figure is also based off of a Takeshi Honda drawing used in a 2011 calendar:

View file

@ -16,4 +16,4 @@ If you already bought Silica Viewer, nothing will change - you can continue to r
![Screenshot of Silicate](macos.webp)
For people looking for alternative software, check out [Silicate](https://github.com/Avarel/silicate) by [Avarel](http://antran.io/). It works on more platforms than Silica Viewer, and has a better rendering engine, along with other cool features! Thank you all who have supported by using my software, as always :)
For people looking for alternative software, check out [Silicate](https://github.com/Avarel/silicate) by [Avarel](https://avarel.github.io/). It works on more platforms than Silica Viewer, and has a better rendering engine, along with other cool features! Thank you all who have supported by using my software, as always :)

View file

@ -25,7 +25,7 @@ The same bragging right from e-mail applies here too, since matrix handles are m
# Websites
My personal website has always been static or statically generated, and need very little maintenance. Since my websites are small and receive very little traffic, I'm able to host them all on the same box. Since I control the server, I can do cool stuff like [automatically updating Rust docs](https://docs.xiv.zone/docs/physis/) for my physis crate [from GitHub](https://github.com/redstrate/physis) using rsync. I also use GitHub [to update this website too](https://github.com/redstrate/redstrate.com), once I'm done developing a blog post I simply just commit to the repository and after a minute or so it's live on the Internet!
My personal website has always been static or statically generated, and need very little maintenance. Since my websites are small and receive very little traffic, I'm able to host them all on the same box. Since I control the server, I can do cool stuff like [automatically updating Rust docs](https://docs.xiv.zone/docs/physis/) for my physis crate [from GitHub](https://github.com/redstrate/physis) using rsync. I also use GitHub [to update this website too](https://code.ryne.moe/redstrate/redstrate.com), once I'm done developing a blog post I simply just commit to the repository and after a minute or so it's live on the Internet!
# Nextcloud

View file

@ -9,7 +9,7 @@ summary: "My workflow for working on Hugo websites in Kate - KDE's Text Editor."
---
I use Hugo to build my website (which you can explore the source code to
on [GitHub](https://github.com/redstrate/redstrate.com).) And because I love using
on [GitHub](https://code.ryne.moe/redstrate/redstrate.com).) And because I love using
KDE applications whenever I can, I do all of my editing - from config files, CSS
and Markdown for posts - in [Kate](https://kate-editor.org).

View file

@ -107,7 +107,7 @@ But not really, because there is no database or persistence (yet.) I also implem
}
```
I wonder why chose to use JSON here, but I suspect I'll get a better understanding soon once I implement more lobby character actions. If you're wondering what the content is, I documented [them here](https://github.com/redstrate/Kawari/blob/master/src/chara_make.rs) as the content does not have any field names, it's all arrays. Also yes, they seriously do encode all of their numbers as _strings_. So much for saving valuable space (these packets specifically can only hold 1024 characters of JSON.)
I wonder why chose to use JSON here, but I suspect I'll get a better understanding soon once I implement more lobby character actions. If you're wondering what the content is, I documented [them here](https://github.com/redstrate/Kawari/blob/master/src/lobby/chara_make.rs) as the content does not have any field names, it's all arrays. Also yes, they seriously do encode all of their numbers as _strings_. So much for saving valuable space (these packets specifically can only hold 1024 characters of JSON.)
# Documentation

View file

@ -10,7 +10,7 @@ series:
I decided to start a short series of describing weird, obscure Qt behavior! Because of my new job, I'm working with Qt even more than I did before. As I'm finding new and undocumented behavior, I feel that it's too useful to be posted on something like Mastodon and then forgotten.
A really useful component is the [DelegateChooser](https://doc.qt.io/qt-6/qml-qt-labs-qmlmodels-delegatechooser.html). Say you are building a chat application, and you need to support different types of messages (a regular text message, an image, a location and so on). In order to accomplish this in Qt Quick is to do something like this:
A really useful component is the [DelegateChooser](https://doc.qt.io/qt-6/qml-qtqml-models-delegatechooser.html). Say you are building a chat application, and you need to support different types of messages (a regular text message, an image, a location and so on). In order to accomplish this in Qt Quick is to do something like this:
```qml
DelegateChooser {
@ -39,7 +39,7 @@ DelegateChooser {
}
```
At runtime, Qt Quick will use `role` and check it against every one of the [DelegateChoice](https://doc.qt.io/qt-6/qml-qt-labs-qmlmodels-delegatechoice.html)'s `roleValue`. When it finds a match, it'll choose that component. Really useful stuff!
At runtime, Qt Quick will use `role` and check it against every one of the [DelegateChoice](https://doc.qt.io/qt-6/qml-qtqml-models-delegatechoice.html)'s `roleValue`. When it finds a match, it'll choose that component. Really useful stuff!
But today I encountered a different case, where I had a bunch of values in my role but not all of them had to be specialized. In most cases I had one component that's generalized for most of them, but only one or two that needed a different component. Curiously, the Qt documentation does not say how to accomplish something like this:
@ -74,3 +74,5 @@ DelegateChooser {
}
}
```
**Edit**: These types moved from QtLabs in Qt 6.9, and I changed the documentation links accordingly.

View file

@ -7,9 +7,9 @@ title: "Imprint"
Connections to my server may be logged for abuse, but I do not care to track you.
This website may involve connections to first-party services (they are hosted by me.) These may include:
* The content of the website, which is hosted on redstrate.com. I don't hotlink often (maybe the odd image in an embedded social media post). I also employ cross-origin policies to prevent leakages. The website source code is [available here](https://github.com/redstrate/redstrate.com) and the NGINX configuration simply serves it from a directory on the server.
* The content of the website, which is hosted on redstrate.com. I don't hotlink often (maybe the odd image in an embedded social media post). I also employ cross-origin policies to prevent leakages. The website source code is [available here](https://code.ryne.moe/redstrate/redstrate.com) and the NGINX configuration simply serves it from a directory on the server.
* The comments system, which is hosted under comments.redstrate.com. If the page you view has comments enabled, it may make requests if you have Javascript enabled. I run an [unmodified Isso instance](https://isso-comments.de/). **The data submitted to this service is anonymous - unless you identify yourself.**
* The voting system, which is hosted under voting.redstrate.com. If the page you view has voting enabled, it may make requests if you have Javascript enabled. The source code for this system is [available here](https://codeberg.org/redstrate/votingsystem). **The data submitted to this service is completely anonymous.**
* The voting system, which is hosted under voting.redstrate.com. If the page you view has voting enabled, it may make requests if you have Javascript enabled. The source code for this system is [available here](https://code.ryne.moe/redstrate/voting-system). **The data submitted to this service is completely anonymous.**
Links to external websites are clearly marked with an external link icon, although it sometimes will mark domains that are actually hosted by me.

View file

@ -122,7 +122,7 @@ Want out of the button-less shame list? Make a button!
* [Lina C.](https://udomyon.com/)
* [Devin L.](https://espi.dev/)
* [Halla R.](https://valdyas.org/fading/)
* [Felipe K.](https://ffkkinos.com/)
* [Felipe K.](https://ffkkinos.net/)
* [misyl](https://froggi.es/)
* [Nrok](https://nrok.carrd.co/)
* [Sonia L.](http://fyredrake.net/)

View file

@ -5,7 +5,7 @@ draft: false
layout: "project"
projtags:
- 3DS
source: "https://codeberg.org/redstrate/arm9switcher"
source: "https://code.ryne.moe/redstrate/arm9switcher"
license: MIT
summary: "A payload switcher for arm9loaderhax"
---

View file

@ -6,7 +6,7 @@ layout: "project"
projtags:
- Rust
license: GPLv3
source: "https://github.com/redstrate/Ireko"
source: "https://code.ryne.moe/redstrate/ireko"
summary: "Library for reading save files from Dolls Nest"
---

View file

@ -10,7 +10,7 @@ projtags:
aliases:
- /projects/libxiv
license: GPLv3
source: "https://github.com/redstrate/libxiv"
source: "https://code.ryne.moe/redstrate/libxiv"
summary: "Unmaintained FFXIV modding framework."
---

View file

@ -6,7 +6,7 @@ layout: "project"
projtags:
- CPlusPlus
- Qt
source: "https://codeberg.org/redstrate/redai"
source: "https://code.ryne.moe/redstrate/redai"
license: GPLv3
summary: "Website gallery manager"
---

View file

@ -6,4 +6,4 @@ title: "Talks"
Here is a list of the talks I've given so far:
* [C++, Rust and Qt: Easier than you think](https://conf.kde.org/event/6/contributions/203/), Akademy 2024 ([PeerTube](https://tube.kockatoo.org/w/bdDAWwGXRyWmyVBn9mdbnP), [Slides](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf))
* [C++, Rust and Qt: Easier than you think](https://conf.kde.org/event/6/contributions/203/), Akademy 2024 ([PeerTube](https://tube.kockatoo.org/w/hZGsQ9DbCtfp5n1sZXXi3k), [Slides](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf))

View file

@ -1,7 +1,7 @@
{
"alt_text": "Ryne from Final Fantasy XIV Shadowbringers. She has reddish-orange hair, and in a white dress (which is not visible.)",
"characters": [
"Ryne Waters"
"ryne"
],
"tags": ["fan art"],
"date": "2025-01-01",

View file

@ -0,0 +1,5 @@
{
"name": "Ryne Waters",
"original": false,
"origin": "FINAL FANTASY XIV ONLINE"
}

View file

@ -37,8 +37,10 @@
{{ with .Params.characters }}
<p><strong>Characters</strong></p>
<!-- characters are only localized in english -->
{{ $site := index (where $.Site.Sites "Language.Lang" "eq" "en") 0 }}
{{ range . }}
{{ with $.Site.GetPage "taxonomyTerm" (printf "characters/%s" .) }}
{{ with $site.GetPage "taxonomyTerm" (printf "characters/%s" .) }}
{{ $year := .Page.Title }}
<a class="character" href="{{ .RelPermalink }}"><img class="gallery-img" width=128 height=128 src="{{ $.Site.Params.image_host }}/chars/{{ urlize .Page.Slug }}.jpg"/><span>{{ $year }}<br></span></a>
{{ end }}

View file

@ -1,6 +1,6 @@
name = "red"
license = "MIT"
licenselink = "https://github.com/redstrate/redstrate.com/tree/main/themes/red/LICENSE"
licenselink = "https://code.ryne.moe/redstrate/redstrate.com/tree/main/themes/red/LICENSE"
description = "Custom Hugo theme for use on redstrate.com"
homepage = "https://redstrate.com/"
tags = []