14
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?
I have various
ideasabandoned projects that I probably won't do because I'm lazy, so here are a few out for anyone to do if they wish:A new Linux init system, which I briefly talked about on the Fediverse (new account btw plx follow thx bye)
Make the fediverse comment system I shared on ~tech/py5 into a reusable widget
Update and complete the Firefox patchset I talked about in ~tech/jzr
Continue work on Task Studio for Tasker
Make a FOSS Philips Hue control app
I'm in the process of writing a parser for a programming language. The language was used in a 20 year old programming game, and I hope to eventually help the original author of the game with creating a modern version of it.
The approach I'm using is based on Parser combinators.
The idea behind parser combinators is, as the name suggests, combining parsers:
You start with a single, simple parser
any()
that can either return the next character or error out if there is nothing left to parse.You can then recognize specific characters using the
satisfy
combinator that takes a predicate and returns a character only if it matches:function char(c) { return satisfy(any(), (char) => char === c); }
You can then combine single characters into tokens using the
sequenceOf
combinator:function foo() { return sequenceOf([char("f"), char("o"), char("o")]); }
Combinators like
many
andmany1
are used for repetition (analogous to the*
and+
operators in regular expressions), andoneOf
chooses between alternatives. That makes it straightforward to translate between a grammar and the implementation.Each function-layer you build up recognizes a more abstract concept than the ones below,
and you eventually end up with a single function parsing the entire program.
I started this project today: https://github.com/Apostolique/MotivationTracker.
The idea is to set a goal. Every day that you achieve that goal, you get to highlight the day. It makes for a simple motivational daily wallpaper. I got my inspiration from this kickstarter project: https://www.kickstarter.com/projects/simonegiertz/the-every-day-calendar
Right now my project looks like this (I randomly highlighted days): https://i.imgur.com/Fqt9qUG.png
I'm putting off my creative project with looking into a Box86 build for Android.
https://github.com/ptitSeb/box86
It can be built within a 32bit Chroot for Android, and doesn't really complain, so that's promising, and all that would have to be figured out is pretty much everything else. I think the best bet for now is to start with the xSDL app and see what do.