8
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
A little of this and a little of that.
I updated Bandcamp Volume Control and published it to the Chrome Web Store (previously only on AMO) and updated the documentation so people can build it themselves. — Thanks to a user on IRC (many moons ago!) I was able to discover that you need node 10.x to build this because it uses some specific crap that broke in later versions. (I forked this project and updated it, I did not write it.)
I think it's probably a stretch to call CSS programming, but it did feel good to finally take some of my random shit I've done in Stylus and push somewhere other than my browser. I made themes for TeslaMate, Caddy's "browse" (similar to nginx's fancyindex), APOD, and touched up someone else's work on TVmaze.
I still have some more I need to touch up and publish, but it's a start.
I've done a lot of work on my custom plugins for the Sopel IRC bot. The vast, overwhelming majority of it is on
custom.py
which is really hyper-specific to my community's IRC server, but I did also add some stuff tonsfy.py
recently so it can also do some specific Reddit scrapes. Up next I'll have it so users can put in their own search terms and what not so there's some more variety. Also probably imgur/google images scraping or some such.Someone also pointed me towards autopep8 so I can make everything (other than
custom.py
) actually readable to people other than myself. :PEdit: My crowing achievement today was probably getting (almost) all of Smite VGS in the bot: smite_vgs.py
Some progress on making Gurlic's backend use the matrix protocol. Current challenges are mainly lack of time, and a long backlog of Gurlic feature requests and bugs to fix, which doesn't leave much time to work on the matrix move. Took me a while to wrap my head around the Matrix spec and figure out which bits work best for federated communities. The slight inconsistencies in the client/server implementations also tripped me up. Anyway, will report back when I have more.
These are not very technically-complex, but are programming-related:
I am using both of these resources to help teach and mentor members of a free and open hacker/programmer collective I founded called the Electric Hive.
I made a modest contribution to my video editor of choice, kdenlive. https://invent.kde.org/multimedia/kdenlive/-/merge_requests/163 It was accepted and merged, too.
I tend to go in circles on my side projects. I'm back to working on tilings. This time I'm working on Wang tiles. I haven't yet tried to generate an aperiodic tiling, just a tiling that is non-periodic within the window I'm looking at. It's been an interesting read about them. It turns out they're really useful in games for generating non-repeating terrain out of a few small bits of terrain.
I did it! I've been thinking about a problem for a pretty long time, I posted about it a while ago here: snip. After months and months of tinkering with the API, trying some way too complicated ways to solve this problem and failing, I finally released version 2.0 of my input library for MonoGame. Apos.Input
It's a polling-based input library. I managed to solve the problem of handling input conflicts. The solution was to add a tracker. For example:
Then you can poll the inputs wherever it seems most appropriate in a game loop. When run is triggered, walk will never trigger.
Before, the code to do the same thing looked like (but not as well since specific inputs weren't tracked):
Every function in my game that processed an input needed to pass that
isUsed
bool around. It made inputs really awkward because a single input consumed would block all other inputs for the rest of the frame even if there wasn't really any conflict.With the tracking system, I don't have to manage any of that. It's all seamless. It looks really simple, but that frees my code base from the input cancer.
I've also restarted streaming consistently on Twitch and YouTube. Tomorrow will my 200th gamedev stream!
I've been spending the last month or so slowly working on a Virtual Tabletop tool in Godot. I started playing D&D 5e in about October or so, and am in 3 campaigns now, of which I host two. Needless to say, I quickly decided I wanted to automate stuff, and what with none of the available VTTs being ideal for me (D&D Beyond's tools are alright at least) I made my own.
It's extremely barebones still, what with how I'd had no experience with multiplayer development at all until this point, but I did recently reach a first usable version recently that has decent chat and dice-rolling support. I'm not sure how far I'll take the project – it's more of a for-fun hobby project than anything right now – but I'm hoping to get somewhere decent with it sometime. Livestreaming Inkscape over Discord is only so effective, after all!