RSSAmplifier

Blog

HookedBehemoth's Blog

A (hopefully) mainly technical blog

boxcat.siteRSS feed ↗9 posts

Latest posts

Gnome sucks

Today I saw that Superluminal was released on linux and I wanted to try it, so I threw my latest toy project in there. I was immediately overwhelmed with a great amount of threads. I thought I was careful with my thread creation, using pools for background workers. After tagging all my own threads I was still left with 434 threads that I couldn’t identify. most of them were very short lived. They…

Software sucks

We are not multiple years into software being solved. Sadly one area that is still save from 100x improvements is user interfaces. Every day I have to deal with horribly slow software and I’m so sick of it. At work I have to deal with Windows Explorer. A piece of technology so notoriously slow that third party file explorers are now trending. At least last year Microsoft has added tabs but they…

Migrating my tag database from sqlite to postgres

I’m at the end of my last adventure and now I have a database dump with 700k entries, 300k tags and 20M link entries in my sqlite database. Working with this data has not been a concern but now I’ve written a simple website to sift through the data. Pretty quickly I’ve noticed that a few scenarios are slow: Going to the end of my list (~2 seconds) Searching for any amount of tags (~2 seconds)…

Knowing if you actually did anything with UPSERT (INSERT ... ON CONFLICT(..) DO UPDATE)

I’ve recently been collecting some data and stored it in an SQLite database. Since the primary key isn’t mine, I have to use an UPSERT statement which updates the existing entities. For logging purposes it would be nice to know what the operation actually accomplished. I’ve looked around and couldn’t find a ready done solution but poking at sqlite internals I’ve found last_inserted_rowid() which I…

Form helper for axum

🔗 Form Fields While working on a personal project that involves a website for configuring some data, I’ve grown annoyed by writing the same bad code again and again for every POST-Endpoint. Form validation is annoying to get “right”. I’ve already decided to use rust with axum for the web server and maud as the rendering part so the rough constraints were set. This was not supposed to be an…

Comment section over SSH

A while ago I saw a blog that had a comment section where you could send messages over ssh. It noted that you should use your own username but sadly it was broken by the time I found it. I wanted to implement something like this for a while and finally got to do it. You can try it now by ssh-ing into this server with the user “comment”. Username entry comes afterwards. It’s backed by a simple…

Installing Alpine Linux on a VPS without ISO

Yesterday I noticed an E-Mail I got from my VPS host, IONOS. The service I’ve been using so far is getting shut-down by the end of the month. I tried their replacement service before but since I couldn’t load a custom ISO I didn’t bother moving to it. However now, with the gun on my chest, I’ve looked into it again. After crafting a theory and asking on the #alpine-linux IRC I got a great tip from…

Fast JSON serialization in mono .NET/C#

🔗 Introduction After my last modding endevors in VRChat, Easy AntiCheat was added to it, breaking casual modding. This fiasco caused a lot of players to try the direct competitor, ChilloutVR which is developed by Alphablend Interactive (ABI). --> Sadly to this date, no ingame scripting is offered there, so I have to complain about other things. 🔗 Checking under the hood ChilloutVR is based on…

UDON: A post mortem

Note: This is my first blog post, so be forgiving. 🔗 Introduction VRChat is a social VR platform built on Unity3D . Its users can upload their 3D assets, such as Avatars and Worlds. To provide interaction, a scripting language is provided. It’s called UDON. When I was introduced to VRChat, I eventually got invited to learn the Japanese tile game Riichi Mahjong in the Chiitoitsu Parlor . The game…