Weekly Brain Dump #30
At a Glance
- Playing with Ghidra Looking to see if it would be feasible to decompile a certain block stacking game
- Building Desktop Applications with Neutralino Making a pomodoro timer widget for OBS
- Interesting Links Cool things I found this week
- Comments
Playing with Ghidra
I’ve been getting annoyed that there’s no legal way for me to play a certain third entry in a block stacking series and I had the idea of seeing how hard it would be to decompile. Obviously I haven’t gone into this with the expectation of completing this project, but it’s certainly going to be interesting to just have a futz around and see.
So far I can safely say I have no idea what I’m doing but it’s fun to click around and see what Ghidra spits out.
Building Desktop Applications with Neutralino
My wife asked me to help her with a pomodoro timer that she bought. It’s a simple JavaScript timer that works through Stream Elements. This means you need to use chat commands in your stream to control it. She wanted to configure it more than it allowed and asked for my help. I had a look but it was going to basically be a rewrite to get the features she wanted, so naturally I thought “I should write my own!”.
I’m really glad I had that thought, it’s one of the few times I’ve been right to think it. Not just because I’ve built something pretty nice but because it was a set of skills I really wanted to learn.
A desktop application in front of a Firefox browser. I launch the timer from the desktop application into the browser and then start the timer. It counts down briefly before getting paused and resumed. I change the amount of work sessions and re-launch and rerun the timer. I then run the test suite inside the desktop application.
The tech stack I’ve ended up with is:
- ESBuild to compile the JavaScript
- Neutralino for the server and web view
- Mithril as the frontend framework
- Bulma to make design easy
- QUnit for testing
Neutralino is a very cool bit of tech, I’ve wanted to play with this for ages but never had a reason. It’s a little C++ web server that launches a web view on whatever platform you are on. It also handles bundling up for the different supported platforms.
Mithril is my preferred frontend framework. It’s really simple to use and works the way my brain expects. It’s a mature framework that has stayed stable for a long time now. It’s also nice and lightweight.
Bulma has become my favourite CSS framework as it’s nice and clean with a sensible set of defaults.
QUnit is the real curve ball here. I actually tried to go with Jest but couldn’t get it to work through ESBuild, it wanted to handle compiling the JavaScript itself which felt weird to me. QUnit also has the benefit of running inside the browser so I can actually run the test suite on all the different web views to ensure it works as expected on every platform.
Interesting Links
Report: How developers react to AI-scented blog posts: I'm not surprised by these results at all, people want to read what humans wrote.
The Omni-Death of Gaming: I like this retrospective of gaming culture, it's heartwarming.
Very Average Prototypes: It makes sense that LLMs would generate statistically average game prototypes.
Genders.WTF: This site is a gold mine of terrible user interfaces. Good for a hearty chuckle.
Payphone Tag: Conquer territories by using payphones in Australia.
How to call Linux code from a Wine process: This is the sort of deranged nonsense I live for.